Вопросы по AHK-скриптингу

Gveman

Новичок
3
0
Ищи reload, goto, gosub, или кидай фулл код скрипта
Вот фулл,удалите пожалуйста окно которое вылетает 1000 раз,и комп лагает,alt ctrl delete не спасает даже

Код:
; - Auto-МО by Dobryak v.1.0 -
; Все функции Вы сможете увидеть при вводе комманды "/helpmo" 
; Удачного использования!

#Persistent
#ifwinactive GTA:SA:MP
#include SAMP.ahk

;ini
IniRead, army, info.ini,INFO,army
IniRead, tag, info.ini,INFO,tag
IniRead, post1, info.ini,INFO,post1
IniRead, post2, info.ini,INFO,post2
IniRead, post3, info.ini,INFO,post3
IniRead, zvanie, info.ini,INFO,zvanie
IniRead, gravirovka, info.ini,INFO,gravirovka

msgbox, Auto-MO by Dobryak v.1.1 запущен! Рекомендуется запускать скрипт до запуска GTA, иначе могут не работать некоторые функции. Список функций: "/helpmo". Удачного пользования!
lastarm:=getPlayerArmor()
file = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Loop
{
; Ники и прочее...
Nick:= getUsername()
RPNick:= getUsername()
StringReplace, RPNick, RPNick,_,{SPACE}, All
Fama:= getUsername()
RegExMatch(Fama, "\Q_\E(.*)\Q\E", Fama)
StringReplace, Fama, Fama,_,, All
id:= getId()
; >> Броня
arm:=getPlayerArmor()
hp:= getPlayerHealth()
if ( hp = 0 ){
sleep 10000
} else {
if ( arm > lastarm )
{
Sendinput,{F6}/do Бронежилет в шкафчике.{ENTER}
Sendinput,{F6}/me плавным движением открыл шкафчик{ENTER}
Sendinput,{F6}/me плавным движением правой руки взял бронежилет и надел его{ENTER}
}
}
lastarm:=getPlayerArmor()
; >> Доклады
if ( dokl = 1 )
{
fileread, read, %file%
if read contains Докладыва
{
filedelete, %file%
fileappend,, %file%
SendChat("/r Доклад(ы) приняты! Продолжайте в том же духе!")
SendChat("/c 60")
Sleep, 1000
SendInput, {F8}
}
}
; >> Еда
fileread, read, %file%
if read contains %Nick% взял(а)
{
filedelete, %file%
fileappend,, %file%
Sendinput,{F6}/eat{ENTER}
}
; >> Металл
fileread, read, %file%
if read contains %Nick%[%id%] взял(а) на военном складе
{
filedelete, %file%
fileappend,, %file%
Sendinput,{F6}/do На спине у %Nick% рюкзак.{ENTER}
Sendinput,{F6}/me положил металлическую заготовку в рюкзак{ENTER}
}
; Проверка имени
if !RPNick
{
reload
}
; Авто-взятие патронов по рп
GetPlayerPos(x,y,z)
if ( x > 311.137756 and x < 312.142700 and y > -166.141953 and y < -165.718048 and autovz = 0)
{
Sendinput,{F6}/do На спине у %Nick% рюкзак.{ENTER}
Sendinput,{F6}/me набирает в рюкзак патроны{ENTER}
autovz = 1
} else {
autovz = 0
}
}
!1::
if dokl = 1
{
dokl = 0
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Авто-ответ на доклады [{FF0000}Выключён{FFFFFF}]")
}
else
{
dokl = 1
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Авто-ответ на доклады [{FF0000}Включён{FFFFFF}]")
}
return
Numpad1::
if ( anim = 1 )
{
    Sendchat("/s Здравия желаю!")
    Sendchat("/me встал по стойке «Смирно»")
    Sendchat("/me выполнил «Воинское приветствие»")
    Sendchat("/anim 58")
} else {
    Sendchat("/anim")
    sleep 1500
    Sendchat("/s Здравия желаю!")
    Sendchat("/me встал по стойке «Смирно»")
    Sendchat("/me выполнил «Воинское приветствие»")
    Sendchat("/anim 58")
    anim = 1
}
return

Numpad7::
Sendinput,{F6}/do Напротив %Nick% пульт управления КПП.{ENTER}
Sendinput,{F6}/me ввёл секретный PIN-Code, тем самым открыв/закрыв КПП{ENTER}
Sendinput,{F6}/gate{ENTER}
return

Numpad0::
Sendinput, {F6}/me взглянул на золотые часы с гравировкой "%gravirovka%"{ENTER}
Sendinput, {F6}/do Время на часах: %A_Hour%:%A_Min%.{ENTER}
SendChat("/c 60")
return

Numpad9::
Sendinput,{F6}/lock 1{ENTER}
return

Numpad5::
Sendinput,{F6}/r [%tag%]:{SPACE}
return

Numpad6::
Sendinput,{F6}/f %army% |{SPACE}
return

NumpadDiv::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post1% | Состояние: тихо{ENTER}
return

NumpadMult::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post2% | Состояние: тихо{ENTER}
return

NumpadSub::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post3% | Состояние: тихо{ENTER}
return

NumpadAdd::
filedelete, %file%
fileappend,, %file%
GetPlayerPos(x,y,z)
if ( x > -1546.098999 and x < -1515.402710 and y > 470.475830 and y < 508.089172 )
{
Sendinput,{F6}/f %army% | Докладывает %zvanie% %Fama% | Пост: КПП(А) | Состояние: тихо{ENTER}
}
; Посты СВ
if ( x > 341.082642 and x < 348.967468 and y > 1786.131592 and y < 1809.139404 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > 313.566711 and x < 325.066895 and y > 1932.063965 and y < 1970.541748 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад | Состояние: тихо{ENTER}
}
if ( x > 259.746521 and x < 274.151611 and y > 1886.650269 and y < 1901.946045 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
if ( x > 341.072357 and x < 372.049774 and y > 2012.942139 and y < 2045.680420 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: ПВО | Состояние: тихо{ENTER}
}
if ( x > 306.399109 and x < 319.117126 and y > -169.907547 and y < -158.757004 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад(внутри) | Состояние: тихо{ENTER}
}
; Посты ВМФ
if ( x > -2256.786621 and x < -2238.514893 and y > 2379.674316 and y < 2385.826904 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Cклад | Состояние: тихо{ENTER}
}
if ( x > 217.408768 and x < 233.806213 and y > 1286.233276 and y < 1293.712280 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Cклад(Внутри) | Состояние: тихо{ENTER}
}
if ( x > -2275.697266 and x < -2272.282227 and y > 2336.769043 and y < 2365.652588 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > -2300.578857 and x < -2296.042969 and y > 2409.341309 and y < 2440.114502 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-2 | Состояние: тихо{ENTER}
}
if ( x > -2244.083496 and x < -2228.643066 and y > 2335.114746 and y < 2353.569580 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
if ( x > -2302.006348 and x < -2277.656006 and y > 2278.156250 and y < 2294.405762 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад торпед | Состояние: тихо{ENTER}
}
; ВВС
if ( x > 424.585052 and x < 441.646301 and y > 2553.743408 and y < 2580.151367 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > 413.421143 and x < 421.407745 and y > 2534.960205 and y < 2542.731201 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад(внутри) | Состояние: тихо{ENTER}
}
if ( x > 422.246429 and x < 429.501465 and y > 2531.350586 and y < 2542.289063 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад | Состояние: тихо{ENTER}
}
if ( x > 280.125031 and x < 296.717407 and y > 2548.930420 and y < 2569.548584 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-2 | Состояние: тихо{ENTER}
}
if ( x > 382.856995 and x < 392.867950 and y > 2549.834717 and y < 2559.676758 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
sleep 300
if read contains %Nick%
{

} else {
filedelete, %file%
fileappend,, %file%
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Вы стоите не на посту. Список постов - {4000FF}/moposts{FFFFFF}.")
}
return

:?:/helpmo::
KeyWait, Enter
sleep 100
ShowDialog("0", "{FFFFFF} - Auto-МО by {4000FF}Dobryak{FFFFFF} v.1.0 - ","{FFFFFF} Cписок функций: `n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая отыгровка взятия бронежилета`n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая отыгровка взятия металла`n{FFFFFF} {4000FF}•{FFFFFF} Автоматический ответ на доклад {E6E6E6}(для офицеров){FFFFFF} | Активация: {4000FF}Alt+1{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Воинское приветствие | Активация: {4000FF}NumPad 1{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Открытие КПП {E6E6E6}(/gate){FFFFFF} | Активация: {4000FF}NumPad 7{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Часы {E6E6E6}(С временем в /do){FFFFFF} | Активация: {4000FF}NumPad 0{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Открытие личного т/c {E6E6E6}(Без РП){FFFFFF} | Активация: {4000FF}NumPad 9{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Ввод в рацию с тэгом {E6E6E6}(/r){FFFFFF} | Активация: {4000FF}NumPad 5{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Ввод в рацию с тэгом армии {E6E6E6}(/f){FFFFFF} | Активация: {4000FF}NumPad 6{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Доклад со своих постов {E6E6E6}(Надо настроить посты){FFFFFF} | Активация: {4000FF}NumPad /, NumPad *, NumPad -{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Автоматических доклад с поста {E6E6E6}(Список постов - /moposts){FFFFFF} | Активация: {4000FF} NumPad +{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая запись армии и звания {E6E6E6}(В INI файл){FFFFFF} | Активация: {4000FF}/updatemo{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Показ военного билета {E6E6E6}(Через /me,/do){FFFFFF} | Активация: {4000FF}/bilet{FFFFFF}`n`n{4000FF}[i]{FFFFFF} Перед использование настройте скрипт {E6E6E6}(В файле info.ini){FFFFFF}`n{4000FF}[i]{FFFFFF} Связь в разработчиком: VK - {E6E6E6}http://vk.com/kesik.dobryak{FFFFFF}`n{4000FF}[i]{FFFFFF} Версия скрипта: 1.0 {E6E6E6}(build 1){FFFFFF}", "Закрыть")
return

:?:/moposts::
KeyWait, Enter
sleep 100
ShowDialog("0", "{FFFFFF}- Список постов - ", "{FFFFFF} Cписок постов, стоя на кототорых, нажимая кнопку NumPad + автоматически пишет пост:`n`n{FFFFFF} {4000FF}>{FFFFFF} Авианосец {E6E6E6}(Доклад в /f){FFFFFF}`n{FFFFFF} {4000FF}>{FFFFFF} Сухопутные войска:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, Склад, Склад(внутри), Вышка, ПВО`n{FFFFFF} {4000FF}>{FFFFFF} Военно-морской флот:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, КПП-2, Вышка, Склад торпед, Склад, Склад(внутри)`n{FFFFFF} {4000FF}>{FFFFFF} Военно-воздушные силы:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, КПП-2, Вышка, Склад, Склад(внутри)`n{4000FF}[!]{FFFFFF} Если Вы считаете, что тут не хватает какого-либо поста напишите мне в ВК {E6E6E6}(vk.com/kesik.dobryak){FFFFFF}", "Закрыть")
return

:?:/bilet::
KeyWait, Enter
Sendinput,{F6}/me достал из внутреннего кармана формы военное билет{ENTER}
Sendinput,{F6}/me показал билет. На нём написано...{ENTER}
Sendinput,{F6}/do "%zvanie% %Fama% | Армия: %army% | Отряд: %tag%"{ENTER}
Sendinput,{F6}/me cпрятал билет обратно{ENTER}
return

:?:/updatemo::
KeyWait, Enter
Sendinput,{F6}/pass %id%{ENTER}
Sleep, 1000
fileread, read, %file%
RegExMatch(read, "\QРабота: \E(.*)\Q  |  Организация и подразделение: \E", zvanie)
RegExMatch(read, "\Q  |  Организация и подразделение: Министерство обороны / \E(.*)\Q`n\E", army)
if ( army = Военно-морской флот )
{
army = ВМФ
}
if ( army = Военно-воздушные силы )
{
army = ВВС
}
if ( army = Сухопутные войска )
{
army = СВ
}
StringReplace, zvanie, zvanie,Работа:%A_SPACE%,, All
StringReplace, zvanie, zvanie,%A_SPACE%%A_SPACE%|  Организация и подразделение: ,, All
;StringReplace, zvanie, zvanie,%A_SPACE%,, All
IniWrite,%zvanie%,info.ini,INFO,zvanie
IniWrite,%army%,info.ini,INFO,army
filedelete, %file%
fileappend,, %file%
addChatMessageEx(0x4000FF, "[Auto-MO]{FFFFFF} Информация о фракции успешно обновлена!")
return

!2::
SendInput, {F6}/n %Nick%[%id%] взял(а) на военном складе{ENTER}
return

Так же в папке есть файл "Info" Туда я написал ник,армию.
И еще 1 файл АХК там,не знаю зачем -_-

Код:
; ####################
; #### SAMP UDF R15.1 ####
; SAMP Version: 0.3.7
; Written by Chuck_Floyd
; https://github.com/FrozenBrain
; Modified by Suchty112
; https://github.com/Suchty112
; Modified by: paul-phoenix
; https://github.com/paul-phoenix
; Modified by: Agrippa1994
; https://github.com/agrippa1994
; Modified by: RawDev and ELon
; Do not remove these lines.
; Добавлен SA-MP-UDF-Addon by [CM}MurKotik
; VK: http://vk.com/id350689538
; ####################

; SAMP-RP CHat Colors
global COLOR_DEPARTAMENT := "0xFFFF8282"
global COLOR_TIME := "0xA1C114FF"
global COLOR_WANTED := "0xFFffc801"
global COLOR_WANTEDME := "0xFFff6347"
global COLOR_NEWS := "0xFF00d900"
global COLOR_SMS := "0xFFffff00"
global COLOR_ME := "0xFFc2a2da"
global COLOR_ADMIN := "0xFFff6347"
global COLOR_MDC_HEADER := "0xFF8d8dff"
global COLOR_MDC_CONTENT := "0xFFFFFFFF"
global COLOR_CHAT1 := "0xFFc8c8c8"
global COLOR_CHAT2 := "0xFFaaaaaa"
global COLOR_CHAT3 := "0xFF6e6e6e"
global COLOR_WHISPER := "0xFF6e6e6e"
global COLOR_GOV_HEADER := "0xFFFFFFFF"
global COLOR_GOV_CONTENT := "0xFF2641fe"
global COLOR_RACION := "0xFF8d8dff"
global COLOR_AMMO_TAKE := "0xFF09b000"
global COLOR_TRY := "0xFFff8000"
global COLOR_TRY_COMPLETE := "0xFF00ab06"
global COLOR_TRY_FAILURE := "0xFFc42100"
global COLOR_ANTIFLOOD := "0xFFffd5bb"
global COLOR_PASS_HEADER := "0xFFffff00"
global COLOR_PASS_CONTENT := "0xFFf5deb3"
global COLOR_LIC_HEADER := "0xFF059bd3"
global COLOR_LIC_CONTENT := "0xFFc5eefe"

; Samp-udf-addon
global ADDR_SET_POSITION := 0xB7CD98
global ADDR_SET_POSITION_OFFSET := 0x14
global ADDR_SET_POSITION_X_OFFSET := 0x30
global ADDR_SET_POSITION_Y_OFFSET := 0x34
global ADDR_SET_POSITION_Z_OFFSET := 0x38
 
Последнее редактирование:

Usik.dm

Участник
30
0
Есть данный код:
Lua:
#Include E:\SAMP-UDF-Developer.ahk
$~NumpadEnter::
$~Enter::
If (isInChat() && !isDialogOpen())
{
Sleep 250
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if (RegExMatch(chatInput, "^\/dok (.*)", p)
    {
Sendchat("Бла-бла-бла , Жетон: " p1 "")
    }
}
return
Но что бы было по РП нужно в чат вводить /dok 3-3-3(айди пишется через дефисы). Как реализовать так , чтобы при введении /dok 333(любой айди) , в чат писалось: Бла-бла-бла , Жетон:3-3-3(по цифре через дефис)
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
Че сложного?
Тем же RegExMatch выделяешь каждый символ.
Или Loop, Parse
Или StrSplit
Документацию читай.
 

Rufles

Новичок
11
0
Ребят,привет. Захотел по изучать AHK скриптинг,и поделать свои скрипты для себя. Сейчас делаю АХК для автошколы, и мне нужно, чтобы в АХК мой id сам писался,и мне не нужно было его прописывать в ручную. К примеру: Захожу я в игру,и у меня id 228, еду в автошколу принимать экзамен,и пишу бомжу свою отыгровку,и в /n чат прошу его показать паспорт, типо /n /pass 228, и как сделать так,чтобы ахк сам определял мой id и писал его? Подскажите пожалуйста
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
Ребят,привет. Захотел по изучать AHK скриптинг,и поделать свои скрипты для себя. Сейчас делаю АХК для автошколы, и мне нужно, чтобы в АХК мой id сам писался,и мне не нужно было его прописывать в ручную. К примеру: Захожу я в игру,и у меня id 228, еду в автошколу принимать экзамен,и пишу бомжу свою отыгровку,и в /n чат прошу его показать паспорт, типо /n /pass 228, и как сделать так,чтобы ахк сам определял мой id и писал его? Подскажите пожалуйста
Скачать SAMP UDF, там на русском языке описаны функции.
В данном случае нужна функция:
AutoHotKey:
getId()
 

Rufles

Новичок
11
0
Скачать SAMP UDF, там на русском языке описаны функции.
В данном случае нужна функция:
AutoHotKey:
getId()
Спасибо

Снова я. Как писал выше,нужно чтобы АХК сам определял id, выше мне подсказали что нужно делать,но я не совсем понимаю куда нужно вставлять..
Вот это получается у меня
:?:/начало::
{
SendMessage, 0x50,, 0x4190419,, A
Sleep 2000
SendInput {F6}Здравствуйте,я Ваш инструктор Джеремес Ховкинс,я буду принимать у Вас экзамен.{enter}
Sleep 2000
SendInput {F6}Перед началом экзамена предъявите Ваш паспорт.{enter}
Sleep 2000
SendInput {F6}/n Введи команду /pass{enter}
}
return
И я не понимаю куда нужно вставить это
}

getId() {
s:=getUsername()
return getPlayerIdByName(s)
}
 
Последнее редактирование модератором:

RellaX

Известный
80
9
Вот фулл,удалите пожалуйста окно которое вылетает 1000 раз,и комп лагает,alt ctrl delete не спасает даже

Код:
; - Auto-МО by Dobryak v.1.0 -
; Все функции Вы сможете увидеть при вводе комманды "/helpmo"
; Удачного использования!

#Persistent
#ifwinactive GTA:SA:MP
#include SAMP.ahk

;ini
IniRead, army, info.ini,INFO,army
IniRead, tag, info.ini,INFO,tag
IniRead, post1, info.ini,INFO,post1
IniRead, post2, info.ini,INFO,post2
IniRead, post3, info.ini,INFO,post3
IniRead, zvanie, info.ini,INFO,zvanie
IniRead, gravirovka, info.ini,INFO,gravirovka

msgbox, Auto-MO by Dobryak v.1.1 запущен! Рекомендуется запускать скрипт до запуска GTA, иначе могут не работать некоторые функции. Список функций: "/helpmo". Удачного пользования!
lastarm:=getPlayerArmor()
file = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Loop
{
; Ники и прочее...
Nick:= getUsername()
RPNick:= getUsername()
StringReplace, RPNick, RPNick,_,{SPACE}, All
Fama:= getUsername()
RegExMatch(Fama, "\Q_\E(.*)\Q\E", Fama)
StringReplace, Fama, Fama,_,, All
id:= getId()
; >> Броня
arm:=getPlayerArmor()
hp:= getPlayerHealth()
if ( hp = 0 ){
sleep 10000
} else {
if ( arm > lastarm )
{
Sendinput,{F6}/do Бронежилет в шкафчике.{ENTER}
Sendinput,{F6}/me плавным движением открыл шкафчик{ENTER}
Sendinput,{F6}/me плавным движением правой руки взял бронежилет и надел его{ENTER}
}
}
lastarm:=getPlayerArmor()
; >> Доклады
if ( dokl = 1 )
{
fileread, read, %file%
if read contains Докладыва
{
filedelete, %file%
fileappend,, %file%
SendChat("/r Доклад(ы) приняты! Продолжайте в том же духе!")
SendChat("/c 60")
Sleep, 1000
SendInput, {F8}
}
}
; >> Еда
fileread, read, %file%
if read contains %Nick% взял(а)
{
filedelete, %file%
fileappend,, %file%
Sendinput,{F6}/eat{ENTER}
}
; >> Металл
fileread, read, %file%
if read contains %Nick%[%id%] взял(а) на военном складе
{
filedelete, %file%
fileappend,, %file%
Sendinput,{F6}/do На спине у %Nick% рюкзак.{ENTER}
Sendinput,{F6}/me положил металлическую заготовку в рюкзак{ENTER}
}
; Проверка имени
if !RPNick
{
reload
}
; Авто-взятие патронов по рп
GetPlayerPos(x,y,z)
if ( x > 311.137756 and x < 312.142700 and y > -166.141953 and y < -165.718048 and autovz = 0)
{
Sendinput,{F6}/do На спине у %Nick% рюкзак.{ENTER}
Sendinput,{F6}/me набирает в рюкзак патроны{ENTER}
autovz = 1
} else {
autovz = 0
}
}
!1::
if dokl = 1
{
dokl = 0
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Авто-ответ на доклады [{FF0000}Выключён{FFFFFF}]")
}
else
{
dokl = 1
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Авто-ответ на доклады [{FF0000}Включён{FFFFFF}]")
}
return
Numpad1::
if ( anim = 1 )
{
    Sendchat("/s Здравия желаю!")
    Sendchat("/me встал по стойке «Смирно»")
    Sendchat("/me выполнил «Воинское приветствие»")
    Sendchat("/anim 58")
} else {
    Sendchat("/anim")
    sleep 1500
    Sendchat("/s Здравия желаю!")
    Sendchat("/me встал по стойке «Смирно»")
    Sendchat("/me выполнил «Воинское приветствие»")
    Sendchat("/anim 58")
    anim = 1
}
return

Numpad7::
Sendinput,{F6}/do Напротив %Nick% пульт управления КПП.{ENTER}
Sendinput,{F6}/me ввёл секретный PIN-Code, тем самым открыв/закрыв КПП{ENTER}
Sendinput,{F6}/gate{ENTER}
return

Numpad0::
Sendinput, {F6}/me взглянул на золотые часы с гравировкой "%gravirovka%"{ENTER}
Sendinput, {F6}/do Время на часах: %A_Hour%:%A_Min%.{ENTER}
SendChat("/c 60")
return

Numpad9::
Sendinput,{F6}/lock 1{ENTER}
return

Numpad5::
Sendinput,{F6}/r [%tag%]:{SPACE}
return

Numpad6::
Sendinput,{F6}/f %army% |{SPACE}
return

NumpadDiv::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post1% | Состояние: тихо{ENTER}
return

NumpadMult::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post2% | Состояние: тихо{ENTER}
return

NumpadSub::
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: %post3% | Состояние: тихо{ENTER}
return

NumpadAdd::
filedelete, %file%
fileappend,, %file%
GetPlayerPos(x,y,z)
if ( x > -1546.098999 and x < -1515.402710 and y > 470.475830 and y < 508.089172 )
{
Sendinput,{F6}/f %army% | Докладывает %zvanie% %Fama% | Пост: КПП(А) | Состояние: тихо{ENTER}
}
; Посты СВ
if ( x > 341.082642 and x < 348.967468 and y > 1786.131592 and y < 1809.139404 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > 313.566711 and x < 325.066895 and y > 1932.063965 and y < 1970.541748 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад | Состояние: тихо{ENTER}
}
if ( x > 259.746521 and x < 274.151611 and y > 1886.650269 and y < 1901.946045 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
if ( x > 341.072357 and x < 372.049774 and y > 2012.942139 and y < 2045.680420 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: ПВО | Состояние: тихо{ENTER}
}
if ( x > 306.399109 and x < 319.117126 and y > -169.907547 and y < -158.757004 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад(внутри) | Состояние: тихо{ENTER}
}
; Посты ВМФ
if ( x > -2256.786621 and x < -2238.514893 and y > 2379.674316 and y < 2385.826904 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Cклад | Состояние: тихо{ENTER}
}
if ( x > 217.408768 and x < 233.806213 and y > 1286.233276 and y < 1293.712280 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Cклад(Внутри) | Состояние: тихо{ENTER}
}
if ( x > -2275.697266 and x < -2272.282227 and y > 2336.769043 and y < 2365.652588 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > -2300.578857 and x < -2296.042969 and y > 2409.341309 and y < 2440.114502 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-2 | Состояние: тихо{ENTER}
}
if ( x > -2244.083496 and x < -2228.643066 and y > 2335.114746 and y < 2353.569580 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
if ( x > -2302.006348 and x < -2277.656006 and y > 2278.156250 and y < 2294.405762 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад торпед | Состояние: тихо{ENTER}
}
; ВВС
if ( x > 424.585052 and x < 441.646301 and y > 2553.743408 and y < 2580.151367 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-1 | Состояние: тихо{ENTER}
}
if ( x > 413.421143 and x < 421.407745 and y > 2534.960205 and y < 2542.731201 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад(внутри) | Состояние: тихо{ENTER}
}
if ( x > 422.246429 and x < 429.501465 and y > 2531.350586 and y < 2542.289063 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Склад | Состояние: тихо{ENTER}
}
if ( x > 280.125031 and x < 296.717407 and y > 2548.930420 and y < 2569.548584 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: КПП-2 | Состояние: тихо{ENTER}
}
if ( x > 382.856995 and x < 392.867950 and y > 2549.834717 and y < 2559.676758 )
{
Sendinput,{F6}/r [%tag%]: Докладывает %zvanie% %Fama% | Пост: Вышка | Состояние: тихо{ENTER}
}
sleep 300
if read contains %Nick%
{

} else {
filedelete, %file%
fileappend,, %file%
addChatMessageEx(0x4000FF, "[Auto-MO] {FFFFFF}Вы стоите не на посту. Список постов - {4000FF}/moposts{FFFFFF}.")
}
return

:?:/helpmo::
KeyWait, Enter
sleep 100
ShowDialog("0", "{FFFFFF} - Auto-МО by {4000FF}Dobryak{FFFFFF} v.1.0 - ","{FFFFFF} Cписок функций: `n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая отыгровка взятия бронежилета`n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая отыгровка взятия металла`n{FFFFFF} {4000FF}•{FFFFFF} Автоматический ответ на доклад {E6E6E6}(для офицеров){FFFFFF} | Активация: {4000FF}Alt+1{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Воинское приветствие | Активация: {4000FF}NumPad 1{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Открытие КПП {E6E6E6}(/gate){FFFFFF} | Активация: {4000FF}NumPad 7{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Часы {E6E6E6}(С временем в /do){FFFFFF} | Активация: {4000FF}NumPad 0{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Открытие личного т/c {E6E6E6}(Без РП){FFFFFF} | Активация: {4000FF}NumPad 9{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Ввод в рацию с тэгом {E6E6E6}(/r){FFFFFF} | Активация: {4000FF}NumPad 5{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Ввод в рацию с тэгом армии {E6E6E6}(/f){FFFFFF} | Активация: {4000FF}NumPad 6{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Доклад со своих постов {E6E6E6}(Надо настроить посты){FFFFFF} | Активация: {4000FF}NumPad /, NumPad *, NumPad -{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Автоматических доклад с поста {E6E6E6}(Список постов - /moposts){FFFFFF} | Активация: {4000FF} NumPad +{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Автоматическая запись армии и звания {E6E6E6}(В INI файл){FFFFFF} | Активация: {4000FF}/updatemo{FFFFFF}`n{FFFFFF} {4000FF}•{FFFFFF} Показ военного билета {E6E6E6}(Через /me,/do){FFFFFF} | Активация: {4000FF}/bilet{FFFFFF}`n`n{4000FF}[i]{FFFFFF} Перед использование настройте скрипт {E6E6E6}(В файле info.ini){FFFFFF}`n{4000FF}[i]{FFFFFF} Связь в разработчиком: VK - {E6E6E6}http://vk.com/kesik.dobryak{FFFFFF}`n{4000FF}[i]{FFFFFF} Версия скрипта: 1.0 {E6E6E6}(build 1){FFFFFF}", "Закрыть")
return

:?:/moposts::
KeyWait, Enter
sleep 100
ShowDialog("0", "{FFFFFF}- Список постов - ", "{FFFFFF} Cписок постов, стоя на кототорых, нажимая кнопку NumPad + автоматически пишет пост:`n`n{FFFFFF} {4000FF}>{FFFFFF} Авианосец {E6E6E6}(Доклад в /f){FFFFFF}`n{FFFFFF} {4000FF}>{FFFFFF} Сухопутные войска:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, Склад, Склад(внутри), Вышка, ПВО`n{FFFFFF} {4000FF}>{FFFFFF} Военно-морской флот:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, КПП-2, Вышка, Склад торпед, Склад, Склад(внутри)`n{FFFFFF} {4000FF}>{FFFFFF} Военно-воздушные силы:`n{FFFFFF} {4000FF}>{FFFFFF} КПП-1, КПП-2, Вышка, Склад, Склад(внутри)`n{4000FF}[!]{FFFFFF} Если Вы считаете, что тут не хватает какого-либо поста напишите мне в ВК {E6E6E6}(vk.com/kesik.dobryak){FFFFFF}", "Закрыть")
return

:?:/bilet::
KeyWait, Enter
Sendinput,{F6}/me достал из внутреннего кармана формы военное билет{ENTER}
Sendinput,{F6}/me показал билет. На нём написано...{ENTER}
Sendinput,{F6}/do "%zvanie% %Fama% | Армия: %army% | Отряд: %tag%"{ENTER}
Sendinput,{F6}/me cпрятал билет обратно{ENTER}
return

:?:/updatemo::
KeyWait, Enter
Sendinput,{F6}/pass %id%{ENTER}
Sleep, 1000
fileread, read, %file%
RegExMatch(read, "\QРабота: \E(.*)\Q  |  Организация и подразделение: \E", zvanie)
RegExMatch(read, "\Q  |  Организация и подразделение: Министерство обороны / \E(.*)\Q`n\E", army)
if ( army = Военно-морской флот )
{
army = ВМФ
}
if ( army = Военно-воздушные силы )
{
army = ВВС
}
if ( army = Сухопутные войска )
{
army = СВ
}
StringReplace, zvanie, zvanie,Работа:%A_SPACE%,, All
StringReplace, zvanie, zvanie,%A_SPACE%%A_SPACE%|  Организация и подразделение: ,, All
;StringReplace, zvanie, zvanie,%A_SPACE%,, All
IniWrite,%zvanie%,info.ini,INFO,zvanie
IniWrite,%army%,info.ini,INFO,army
filedelete, %file%
fileappend,, %file%
addChatMessageEx(0x4000FF, "[Auto-MO]{FFFFFF} Информация о фракции успешно обновлена!")
return

!2::
SendInput, {F6}/n %Nick%[%id%] взял(а) на военном складе{ENTER}
return

Так же в папке есть файл "Info" Туда я написал ник,армию.
И еще 1 файл АХК там,не знаю зачем -_-

Код:
; ####################
; #### SAMP UDF R15.1 ####
; SAMP Version: 0.3.7
; Written by Chuck_Floyd
; https://github.com/FrozenBrain
; Modified by Suchty112
; https://github.com/Suchty112
; Modified by: paul-phoenix
; https://github.com/paul-phoenix
; Modified by: Agrippa1994
; https://github.com/agrippa1994
; Modified by: RawDev and ELon
; Do not remove these lines.
; Добавлен SA-MP-UDF-Addon by [CM}MurKotik
; VK: http://vk.com/id350689538
; ####################

; SAMP-RP CHat Colors
global COLOR_DEPARTAMENT := "0xFFFF8282"
global COLOR_TIME := "0xA1C114FF"
global COLOR_WANTED := "0xFFffc801"
global COLOR_WANTEDME := "0xFFff6347"
global COLOR_NEWS := "0xFF00d900"
global COLOR_SMS := "0xFFffff00"
global COLOR_ME := "0xFFc2a2da"
global COLOR_ADMIN := "0xFFff6347"
global COLOR_MDC_HEADER := "0xFF8d8dff"
global COLOR_MDC_CONTENT := "0xFFFFFFFF"
global COLOR_CHAT1 := "0xFFc8c8c8"
global COLOR_CHAT2 := "0xFFaaaaaa"
global COLOR_CHAT3 := "0xFF6e6e6e"
global COLOR_WHISPER := "0xFF6e6e6e"
global COLOR_GOV_HEADER := "0xFFFFFFFF"
global COLOR_GOV_CONTENT := "0xFF2641fe"
global COLOR_RACION := "0xFF8d8dff"
global COLOR_AMMO_TAKE := "0xFF09b000"
global COLOR_TRY := "0xFFff8000"
global COLOR_TRY_COMPLETE := "0xFF00ab06"
global COLOR_TRY_FAILURE := "0xFFc42100"
global COLOR_ANTIFLOOD := "0xFFffd5bb"
global COLOR_PASS_HEADER := "0xFFffff00"
global COLOR_PASS_CONTENT := "0xFFf5deb3"
global COLOR_LIC_HEADER := "0xFF059bd3"
global COLOR_LIC_CONTENT := "0xFFc5eefe"

; Samp-udf-addon
global ADDR_SET_POSITION := 0xB7CD98
global ADDR_SET_POSITION_OFFSET := 0x14
global ADDR_SET_POSITION_X_OFFSET := 0x30
global ADDR_SET_POSITION_Y_OFFSET := 0x34
global ADDR_SET_POSITION_Z_OFFSET := 0x38
Строчки от 77 до 80 удали, (вот причина)
Код:
if !RPNick
{
reload
}

Снова я. Как писал выше,нужно чтобы АХК сам определял id, выше мне подсказали что нужно делать,но я не совсем понимаю куда нужно вставлять..
Вот это получается у меня

И я не понимаю куда нужно вставить это
Вставить "это" в самое начало скрипта и заменить своё "/начало" на это:
Код:
:?:/начало::
{
SendMessage, 0x50,, 0x4190419,, A
Sleep 2000
SendInput {F6}Здравствуйте,я Ваш инструктор Джеремес Ховкинс,я буду принимать у Вас экзамен.{enter}
Sleep 2000
SendInput {F6}Перед началом экзамена предъявите Ваш паспорт.{enter}
Sleep 2000
SendInput {F6}/n Введи команду /pass %getId()%{enter}
}
return
 
Последнее редактирование модератором:

Rental

Участник
60
1
При запуске игры часто не работает AHK. Тоесть иногда запускаешь скрипт, заходишь в игру, а он не работает. Перезайдешь в игру и все включается. И так раза два в день бывает, есть догадки почему? В скрипте простые команды, типа нажата кнопка - действия. Samp addon'a нет. Версии udf и samp совпадают. Раньше такого не было. В игре заменены аудио файлы, карта и уст. несколько(где-то 10) скриптов. Перезагрузка скрипта(Reload) не помогает.
 

Rufles

Новичок
11
0
Вставить "это" в самое начало скрипта и заменить своё "/начало" на это:
Код:
:?:/начало::
{
SendMessage, 0x50,, 0x4190419,, A
Sleep 2000
SendInput {F6}Здравствуйте,я Ваш инструктор Джеремес Ховкинс,я буду принимать у Вас экзамен.{enter}
Sleep 2000
SendInput {F6}Перед началом экзамена предъявите Ваш паспорт.{enter}
Sleep 2000
SendInput {F6}/n Введи команду /pass %getId()%{enter}
}
return
Извини что может отвлекаю,сделал как ты написал,и вот такое вылазит - картинка
 

Cesar Ballard

Участник
81
5
B общем, мб кто-то подскажет как реализовать правильно такой прикол.
Суть скрипта: он будет анализировать состояние ХП игрока (ну т.е. моего персонажа) и когда оно будет близко к 0, или даже 0, но желательно >0 то что бы скрипт юзал опр. набор команд.
Я понял что надо работать с параметром getPlayerHealth, но ля, как лучше это реализовать.
 
Последнее редактирование:

Vlad Horii

Известный
Проверенный
310
172
B общем, мб кто-то подскажет как реализовать правильно такой прикол.
Суть скрипта: он будет анализировать состояние ХП игрока (ну т.е. моего персонажа) и когда оно будет близко к 0, или даже 0, но желательно >0 то что бы скрипт юзал опр. набор команд.
Я понял что надо работать с параметром getPlayerHealth, но ля, как лучше это реализовать.

+ Есть какой-то параметр в ЮДФе бы
ПРИМЕР СИТ.
Когда летишь, скрипт анализирует, находишся ли ты НАД каким-то пикапом\меткой, и если да, нажимает определённую клавишу
AutoHotKey:
myHP := getPlayerHealth()
if (0 >= myHP)
     msgBox, ты умер
 
  • Нравится
Реакции: Cesar Ballard

Rufles

Новичок
11
0
Что такое getId вообще? Где ты его взял?
так ты выше процитировал, там было написано это :
myID := getId()
SendInput {F6}/n Введи команду /pass %myID%{enter}
и в samp udf я видел эту штуку,как понял она нужна для определения id,или я ошибаюсь? Я в этом всём полный дуб,только вчера начал изучать АХК по видео