SetDefaultMouseSpeed, 0    ;Установить задержку перемещения курсора на минимум (по умолчанию стоит "2")
;-----------------------------------------------------------------------------------------------
;---------------------------- Раздел объявления переменных -------------------------------------
;-----------------------------------------------------------------------------------------------
eat:= 0
iron:= 1
wood:= 2
coal:= 3
stone:= 4
gold:= 5

;1.35
sell:= 0x008FBE34	;левая часть рынка (продажа)
buy:= 0x008FBE38	;правая часть рынка (покупка)
q:= 0x008FBE30		;количество(число) для обмена 
;1.35a
;sell:= 0x008FC014	;левая часть рынка (продажа)
;buy:= 0x008FC018	;правая часть рынка (покупка)
;q:= 0x008FC010		;количество(число) для обмена 
;Помор
;sell:= 0x008ff780	;левая часть рынка (продажа)
;buy:= 0x008ff784	;правая часть рынка (покупка)
;q:= 0x008ff788		;количество(число) для обмена.
;-----------------------------------------------------------------------------------------------
;------------------- Строка меню в трэе --------------------------------------------------------
;-----------------------------------------------------------------------------------------------
#Persistent  									; Keep the script running until the user exits it.
Menu, tray, add  								; Creates a separator line.
Menu, tray, add, Настройка, MenuHandler1 		; Creates a new menu item.
return
MenuHandler1:
Suspend, On 									;отключить обработку горячих клавиш скрипта
;MsgBox You selected %A_ThisMenuItem% from menu %A_ThisMenu%.
Gui, Add, Text,, Какую горячую клавишу заменить?
Gui, Add, Hotkey, vsText
Gui, Add, Text,, На какую?
Gui, Add, Hotkey, vrText
Gui, Add, Button, Default, OK
Gui, Show
Return
ButtonOK:										;обработка нажатия кнопки ОК
Gui, Submit 									; Сохраняем входные данные пользователя в ассоциированной переменной каждого элемента управления.
MsgBox Вы ввели "%sText% %rText%".
Script_file_path= %A_ScriptDir%\main.dat 		;записать в переменную путь к файлу с скриптами
FileRead, FileContents, %Script_file_path% 		;записать в переменную содержимое файла с скриптами
;sText := "Numpad0" 								;Искомый текст(горячая клавиша)
;rText := "Numpad1"								5;Текст (горячая клавиша) на замену
MsgBox %FileContents%
StringReplace, FileContents, FileContents, %sText%, %rText%, UseErrorLevel	;Заменить текст
MsgBox %FileContents%
FileDelete %Script_file_path% 					; Удалить старый файл с скриптами 
FileAppend , %FileContents%, %Script_file_path%	;Записать новый файл с скриптами на диск
Suspend, Off 									;включить обработку горячих клавиш скрипта
Reload
return
;-----------------------------------------------------------------------------------------------
#Include %A_ScriptDir%\main.dat
;-----------------------------------------------------------------------------------------------
;---------------------------- Раздел объявления функций ----------------------------------------
;-----------------------------------------------------------------------------------------------
wtm(Address, Data)		;объявление функции записи в память казаков (WTM - Write To Memory)
{				;ниже приведено тело функции

ProcessName = dmcr.exe		; Имя процесса.
Size = 4			; Размер переменной в байтах
VarSetCapacity(Buf,Size, 0)	; Буфер, для записываемых данных.

NumPut(Data, Buf, 0, "UInt")	; Данные - в буфер.

PROCESS_VM_WRITE = 0x20		; Права на процесс.
PROCESS_VM_OPERATION = 0x8
Process, Exist, %ProcessName%	; Поиск процесса.
PID := ErrorLevel		; Идентификатор процесса будет в ErrorLevel.

hProcess := DllCall("OpenProcess", "UInt", PROCESS_VM_WRITE | PROCESS_VM_OPERATION
                                 , "Int",  False
                                 , "UInt", PID)
Ret := DllCall("WriteProcessMemory", "UInt", hProcess
                                   , "UInt", Address
                                   , "UInt", &Buf
                                   , "UInt", Size
                                   , "UInt", 0)

DllCall("CloseHandle", "UInt", hProcess) ; Освобождение хэндла процесса.
RETURN
}
;-----------------------------------------------------------------------------------------------
confirm(nc)			;Подтверждение обмена на рынке
{
y:= A_ScreenHeight - 124	;получение У-координаты кнопки рынка "ОК" для текущего разреш.экрана.
SetMouseDelay, 30
MouseClick, left, 320, %y%,%nc%	;нажать кнопку рынка "ОК" "nc" раз
RETURN
}
;-----------------------------------------------------------------------------------------------
SetNumber(n)			;присвоение зданию цифры "n"
{
Send, {Control down}	  	;"Ctrl"
SetKeyDelay, 10, 10,		;установка времени задержки нажатия клавиш в мс
Send, %n%			;"назначаемая цифра"
Send, {Control up}
}
;-----------------------------------------------------------------------------------------------
;-------------------------------- Памятка ------------------------------------------------------
;-----------------------------------------------------------------------------------------------
;Продажа:0x008FC014- 1.35а/0x008FBE34 - Классика/0x008ff780-Помор
;Покупка:0x008FC018- Патч 1.35а/0x008FBE38-Классика/0x008ff784-Помор
;Кол-во продажи:0x008FC010 - Патч 1.35а/0x008FBE30-Классика /0x008ff788-Помор 
;0-еда 1-железо 2-дерево 3 - уголь 4- камень 5-золото
;
;y:= A_ScreenHeight - 124	;получение У-координаты кнопки рынка "ОК" для текущего разреш.экрана.
;MouseClick, left, 320, %y%	;нажать кнопку рынка "ОК"