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

Richerd

Новичок
2
0
Здравствуйте, у меня такая проблема при команде в AHK
:?:/lc2::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, {F6}/todo Хорошо, подождите одну минуту*открывая базу данных Автошколы{Enter}
sleep, 1000
Sendinput, {F6}- Для выполнения данной услуги мне нужен ваш паспорт и мед. карта.{Enter}
return
У меня не выводит команду /todo в чате пишеться примерно так
do Хорошо, подождите одну минуту*открывая базу данных Автошколы
- Для выполнения данной услуги мне нужен ваш паспорт и мед. карта


Что делать, подскажите
 

Revalto

Известный
532
225
Здравствуйте, у меня такая проблема при команде в AHK
:?:/lc2::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, {F6}/todo Хорошо, подождите одну минуту*открывая базу данных Автошколы{Enter}
sleep, 1000
Sendinput, {F6}- Для выполнения данной услуги мне нужен ваш паспорт и мед. карта.{Enter}
return
У меня не выводит команду /todo в чате пишеться примерно так
do Хорошо, подождите одну минуту*открывая базу данных Автошколы
- Для выполнения данной услуги мне нужен ваш паспорт и мед. карта


Что делать, подскажите
Легче будет подключить SAMP UDF и воспользоваться SendChat(text) функцией...
 

kirill2106

Новичок
1
0
Как сделать ьв АХК, определённое действие на определённом человеке.
Например:
/me отдал честь
Здравия желаю, товарищ- и имя определённого человека на которого я направлю курсор ( ПКМ и на какую-нибудь букву).
Помогите пж.
 

Skiefy

Известный
23
0
С помощь чего в AHK можно реализовать авто покупку, допустим открываю диалоговое окно и при нажатии на определённую кнопку происходила бы покупка, например Аптечки(2шт.) и Маска(2шт.). Как это можно реализовать?
MiWIbtd

Imgur(https://imgur.com/a/MiWIbtd)
Это - самый простой вариант. Вместо {Down 4} - вставляешь, сколько раз надо нажать стрелку вниз, чтобы выделена была, к примеру, аптечка.
Код:
!1::
{
SendInput, {down 4}
Sleep, 150
SendInput, {Enter}
}
return
 

ErikSekret

Новичок
21
1
Допустим в окне диалога есть текст "Ищу дочку", как на скрине, мне нужно в поле ниже с помощь ahk вписать Search - Ищу дочку, как это сделать?
Либо "Куплю дом. Бюджет: 1ккк", а в поле ниже "Realty - Куплю дом"
sa_mp_002.png
 

Lennox##

Новичок
3
0
Код:
}
un:
SendMessage, 0x50,, 0x4190419,, A
("1","Причина", "Выберите причину увольнения:`n`n1- Продажа военного имущества.`n2 - Улучшение навыков стрельбы без разрешения.`n3 - Самовольное покидание части.`n4 - Самовольный перевод в ВО.`n5 - Стрельба по сослуживцам.`n6 - Неадекватное поведение.`n7 - Растрата боеприпасов.`n8 - Снятие повязки.`n9 - Нахождение в лаборатории.`n10 - Хождение по вентиляции.`n11 - Нарушение правил сна.`n12 - Езда по части.`n13 - Оскорбление.`n14 - (( Самовол сменой спавна. ))`n15 - (( Читы. ))`n16 - (( Мат в ООС. ))`n", "закрыть")
while isDialogOpen
sleep 0
if GetKeyState("Esc","p")
{
KeyWait Esc
return
}
KeyWait Enter
KeyWait NumpadEnter
goto, uval
uval:
if (prichinanumber=="")
{
AddChatMessage (" Причина увольнения не указана.")
return
}
if RegExMatch(prichinanumber, "^\d+$")
if (prichinanumber==1)
prichina = Продажа военного имущества.
if (prichinanumber==2)
prichina = Улучшение навыков стрельбы без разрешения.
if (prichinanumber==3)
prichina = Самовольное покидание части.
if (prichinanumber==4)
prichina = Самовольный перевод в ВО.
if (prichinanumber==5)
prichina = Стрельба по сослуживцам.
if (prichinanumber==6)
prichina = Неадекватное поведение.
if (prichinanumber==7)
prichina = Растрата боеприпасов.
if (prichinanumber==8)
prichina = Снятие повязки.
if (prichinanumber==9)
prichina = Нахождение в лаборатории.
if (prichinanumber==10)
prichina = Хождение по вентиляции.
if (prichinanumber==11)
prichina = Нарушение правил сна.
if (prichinanumber==12)
prichina = Езда по части.
if (prichinanumber==13)
prichina = Оскорбление.
if (prichinanumber==14)
prichina = (( Самовол сменой спавна. ))
if (prichinanumber==15)
prichina = (( Читы. ))
if (prichinanumber==16)
prichina = (( Мат в ООС. ))
else if !(prichinanumber<1 or prichinanumber<17)
{
AddChatMessage ("Причина увольнения указана неверно. Введите значение от 1 до 16, либо впишите причину словами.")
return
}
else
prichina:=prichinanumber
SendChat ("/uninvite " id1 " " prichina)
return
blc:
UrlDownloadToFile, https://docs.google.com/spreadsheets/d/1h7kmg5iE0Z_jVMtkHzIKbKo5GMhF-asB-NvIdSUARC8/export?exportFormat=csv, %A_ScriptDir%\LVABLp.txt
Sleep, 30
checkLists++
AddChatMessage ("Списки загружены.")
Return
ch:
SendMessage, 0x50,, 0x4190419,, A
if (checkLists!=1)
{
addChatMessage ("Внимание! Вы зыбыли загрузить обновлённые списки!")
goto, load
}
warn:= "Нельзя принять игрока (имеется warn)"
fraka:= "Этот игрок уже состоит в организации"
bl = % getIdByPed (getTargetPed)
if ((bl=-1) or (!bl))
{
SendInput, {F6}/bl{Space}
Input, bl, v, {Enter}{Esc}{F6}
if ErrorLevel = EndKey:Enter
{
nick = % getPlayerNameById (bl)
if (nick=-1)
{
addChatMessage ("Персонажа с ID " bl " нет в сети.")
return
}
if bl not between 0 and 999
{
addChatMessage ("{Вы ввели что-то не то.")
return
}
}
else
{
Addchatmessage ("Вы не ввели ID персонажа.")
return
}
}
else
nick = % getPlayerNameById (bl)
RegExMatch(nick, "^(.*?)_(.*?)$", nickName)
SendChat ("/me заглянул в паспорт")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
FileEncoding
FileRead, Chatloglegal, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(Chatloglegal, "m`as)^.*\[[^\r\n].*?Имя:\s" nick ".*?Законопослушность:\s*(\-?\d+)", zakon)
{
if not RegExMatch(nick, "^[A-Z][a-z]*?[a-z]\_[A-Z][a-z]*$", rpnick)
{
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("Гражданин, ваш паспорт имеет явные следы подделки. Покиньте призыв.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/b У вас не РП-ник. Обратитесь к администрации для смены ника.")
return
}
score := getPlayerScoreById (bl)
if not (score>2)
{
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat (nickName1 " " nickName2 ", вы недостаточно долго проживаете в штате.")
ping = % getPlayerPingById getUsername + 1500
Sleep, %Ping%
SendChat ("Поступить на службу можно с трёх лет проживания. Покиньте призыв.")
return
}
}
else
{
addChatMessage ("Персонаж с ID " bl " не предъявлял свой паспорт.")
return
}
SendChat (nickName1 " " nickName2 ", сейчас я проверю вас на нахождение в чёрных списках.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/me пролистал страницы чёрных списков")
Sleep, 500
FileEncoding, UTF-8-RAW
Loop, Read, %A_ScriptDir%\LVABLp.txt
{
if RegExMatch (A_LoopReadLine, "^.*" nickName1 "[\s|_]" nickName2 "\W.*,(.*?)$", reason)
{
addChatMessage (" " nickName1 " " nickName2 " [" bl "] находится в ЧС LVA. Причина:  " reason1 " .")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/do " nickName1 " " nickName2 " находится в ЧС LVA")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat (nickName1 " " nickName2 ", вы находитесь в ЧС армии Лас Вентурас. Покиньте призыв.")
return
}
}
addChatMessage (" " nickName1 " " nickName2 " [" bl "] годен.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/do " nickName1 " " nickName2 " не состоит в чёрных списках")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("Всё в порядке.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/b /time + F8 после принятия. Необходимо для дальнейшего перевода в ПД.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
pp = 0
tt = 0
FileEncoding
Loop, Read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
pp:=pp + 1
SendChat ("/invite " bl)
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
NewChatlog:=""
Loop, Read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
{
tt:=tt + 1
If (tt>pp)
NewChatlog:= NewChatlog "`n" A_LoopReadLine
}
IfInString, NewChatlog, %warn%
{
SendChat ("Погодите... " nickName1 " " nickName2 ", у вас оформлена инвалидность.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("Мы не можем принять вас на службу. Покиньте призыв.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/b У вас имеется активный варн. Нельзя принять.")
Sleep, 10
}
else
{
IfInString, NewChatlog, %fraka%
{
SendChat ("Погодите... " nickName1 " " nickName2 ", вы уже имеете работу.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("Мы не можем принять вас на службу, пока вы не уволитесь.")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
SendChat ("/b Вы уже состоите во фракции. Мы не можем вас принять.")
Sleep, 10
}
else
{
SendChat ("/me поставил штамп в паспорт")
ping = % getPlayerPingById (getUsername) + 1500
Sleep, %Ping%
FileEncoding, UTF-8-RAW
FileAppend, `n%nickName1%_%nickName2% принят %A_YYYY%-%A_MM%-%A_DD% %A_Hour%-%A_Min%-%A_Sec%, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Принятые.txt
SendChat (nickName1 " " nickName2 ", садитесь в вертолёт или хаммер. Если их нет, то подождите.")
}
}
pp = 0
tt = 0
Return
vr:
If ((tag1!="12") and (tag1!="13") and (tag1!="14") and (tag1!="15") and (tag1!="komenda"))
{
return
}
ld:
zakonitog =
FileDelete, %A_ScriptDir%\LVABLp.txt
FileDelete, %A_ScriptDir%\OBLp.txt
FileDelete, %A_ScriptDir%\GOSBLp.txt
checkLists = 0
addChatMessage ("Списки удалены.")
Return
vignat:
SendChat ("Вы числитесь в розыске. Обратитесь к офицеру полиции.")
Return
load:
UrlDownloadToFile, https://docs.google.com/spreadsheets/d/1h7kmg5iE0Z_jVMtkHzIKbKo5GMhF-asB-NvIdSUARC8/export?exportFormat=csv, %A_ScriptDir%\LVABLp.txt
Sleep, 30
checkLists++
AddChatMessage ("Списки загружены.")
return
StartCheckIn:
addChatMessage (" Поиск начался...")
i=0
If RegExMatch (CheckName, "^([A-Z][a-z]*[a-z])[_|\s]([A-Z][a-z]*[a-z])$", whoi)
NickName = %whoi1% %whoi2%
else
AddChatMessage ("Введённое вами имя некорректно.")
UrlDownloadToFile, https://docs.google.com/spreadsheets/d/1h7kmg5iE0Z_jVMtkHzIKbKo5GMhF-asB-NvIdSUARC8/export?exportFormat=csv, %A_Temp%\a5fv1c\LVABL.txt
FileEncoding, UTF-8-RAW
Loop, Read, %A_Temp%\a5fv1c\LVABL.txt
{
if RegExMatch(A_LoopReadLine, "^.*" NickName "\W.*,(.*?)$", reason)
{
i++
addChatMessage (" " NickName " находится в ЧС LVA. Причина: " reason1 ".")
}
}
FileDelete, %A_Temp%\a5fv1c\LVABL.txt
FileDelete, %A_Temp%\a5fv1c\OBL.txt
FileDelete, %A_Temp%\a5fv1c\GOSBL.txt
FileEncoding
If (i=0)
AddChatMessage (" Данный игрок не числится в Черных Списках.")
return
Здравствуйте, кто нибудь может из этого сделать так, что бы всё работало? (Знаю что тут всё паршиво).
 

SamLeo

Новичок
1
0
Приветствую, у меня такая проблема когда у меня команды с диалоговым окном, то я прописываю к примеру вот такую команду "/собес", нажимаю пробел, после чего текст пропадает(в игре). Но легкие команды работают отлично. В чём дело?
 

TopMo3

Участник
121
7
Код:
Numpad5::
SendMessage, 0x50,, 0x4090409,, A
SendMessage, 0x50,, 0x4190419,, A
showDialog(1, "{3366CC}Police - Script", "{FFFFFF}Напишите сюда ID преступника","Закрыть","Далее")
input, prich, V, {enter}
Sleep 300
SendChat("/me достал КПК из правого кармана после чего включил его")
Sleep 2100
SendChat("/me открыл базу данных МВД")
Sleep 2100
SendChat("/me вводит данные о задержанном преступнике")
Sleep 2100
SendChat("/do Дело закрыто.")
Sleep 2100
SendChat("/arrest " prich "")
Sleep 2100
SendChat("/me выключил КПК")
Sleep 2100
SendChat("/do Мини-наушник в правом ухе.")
Sleep 2100
SendChat("/me нажал на мини-наушники")
SendMessage, 0x50,, 0x4090409,, A
SendMessage, 0x50,, 0x4190419,, A
Sleep 2100
naparid := NearCopPlayersID(5)
nick := RegExReplace(getPlayerNameById(naparid), "_", " ")
SendChat("/r " RTag " Закрыто дело номер: " prich " | Напарник: " nick "")
Return
- Как сделать, чтобы при докладе писались все ники, которые были рядом в напарниках, а если есть нет, то писал бы, что их нет, кто поможет.
 

BratunaY

Новичок
1
0
Здраствуйте, не могу никак написать код на 2 действия...
Сесть в машину(клавиша G)(через 3 секунды), выйти из неё(клавиша F) и чтобы действие повторялось
 

DanilaWot

Потрачен
9
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите, какой бы простенький ахк я не написал в игру это не пишется я незнаю уже что делать, например:
!1::
SendInput, {f6}Всем привет{enter}
sleep 3000
SendInput, {f6}Всем пока{enter}
return
 

Vlad Horii

Известный
Проверенный
310
171
Помогите, какой бы простенький ахк я не написал в игру это не пишется я незнаю уже что делать, например:
!1::
SendInput, {f6}Всем привет{enter}
sleep 3000
SendInput, {f6}Всем пока{enter}
return
Кодировка ANSI-32 должно быть.
Приоритет запуска должен совпадать с игрой (если самп от имени администратора, то и скрипт должен быть запущен от имени администратора)

Здраствуйте, не могу никак написать код на 2 действия...
Сесть в машину(клавиша G)(через 3 секунды), выйти из неё(клавиша F) и чтобы действие повторялось
Повторение - loop / setTimer / while
Нажатие клавиш - send
задержка - sleep
 
Последнее редактирование модератором:

madrasso

Потрачен
883
324
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Здраствуйте, не могу никак написать код на 2 действия...
Сесть в машину(клавиша G)(через 3 секунды), выйти из неё(клавиша F) и чтобы действие повторялось
C++:
loop,
{
    sendinput, {g down}
    sleep, 200
    sendinput, {g up}
    sleep, 3000
    sendinput, {f down}
    sleep, 200
    sendinput, {f up}
    sleep, 1000
}