Плагины?плагины которые я запускал туда через Run
Как сделать чтобы когда я закрываю АХК, с ним закрывались и плагины которые я запускал туда через Run ?
#NoEnv
#SingleInstance force
#Persistent
OnExit, onClose
while(true)
sleep 1
!1:: Run C:\Program Files (x86)\Sanny Builder 3\sanny.exe
onClose:
pid := DllCall("GetCurrentProcessId", "uint")
for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process Where ParentProcessId = " pid)
run % "taskkill /f /pid " process.processId,, hide
if A_ExitReason == "Reload"
Reload
ExitApp
Очень благодарен, но можно описание к коду, что что делает? :ddAutoHotKey:#NoEnv #SingleInstance force #Persistent OnExit, onClose while(true) sleep 1 !1:: Run C:\Program Files (x86)\Sanny Builder 3\sanny.exe onClose: pid := DllCall("GetCurrentProcessId", "uint") for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process Where ParentProcessId = " pid) run % "taskkill /f /pid " process.processId,, hide if A_ExitReason == "Reload" Reload ExitApp
Вот это делает:Очень благодарен, но можно описание к коду, что что делает? :dd
А так первая часть особо роли не играет.Как сделать чтобы когда я закрываю АХК, с ним закрывались и плагины которые я запускал туда через Run ?
OnExit, onClose
спа си боВот это делает:
А так первая часть особо роли не играет.
Только:
Перейдет к метки onClose, при закрытии нашего скриптаAutoHotKey:OnExit, onClose
Вторая часть это Dll вызов в WinAPI для получения нужного pid процесса.
А далее их закрытие посредством той же виндовс через taskkill.
F3::
gocmd := ""
chatlog := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
loop, read, % chatlog
{
f := Format("{:L}", A_LoopReadLine) ; переводим всё в нижний регистр для облегчения поиска
if f contains увал псж,увал меня,увал по сж,увал по собственному
{
if RegExMatch(f, "\{424242\}\(([A-zА-я0-9]+)\)\[(\d+)]", playerinfo) ; playerinfo1 - nick, playerinfo2 - id
gocmd := "/uninvite " playerinfo2 " СЖ"
}
}
if strlen(gocmd)
sendinput {f6}%gocmd%{enter}
; а лучше без {enter} и самому его нажимать, а то вдруг че
return
Это регулярки. В интернете ищи уроки.Кто может подсказать, что это такое и как с этим работать?
\{424242\}\(([A-zА-я0-9]+)\)\[(\d+)]
Вот сам код:
Код:F3:: gocmd := "" chatlog := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" loop, read, % chatlog { f := Format("{:L}", A_LoopReadLine) ; переводим всё в нижний регистр для облегчения поиска if f contains увал псж,увал меня,увал по сж,увал по собственному { if RegExMatch(f, "\{424242\}\(([A-zА-я0-9]+)\)\[(\d+)]", playerinfo) ; playerinfo1 - nick, playerinfo2 - id gocmd := "/uninvite " playerinfo2 " СЖ" } } if strlen(gocmd) sendinput {f6}%gocmd%{enter} ; а лучше без {enter} и самому его нажимать, а то вдруг че return
Sendinput, {F6}/me осмотрел пациента{ENTER}
Sleep, 1500
Sendinput, {F6}/do Медицинская сумка на плече.{ENTER}
Sleep, 1000
Sendinput, {F6}/me достал полиуретановый бинт из медицинской сумки{ENTER}
Sleep, 600
Sendinput, {F6}/try зафиксировал конечность{ENTER}
когда убили
Два разных вопроса.Вас убил
Регуляркой чат читаешь и все.Как сделать, проверку успешен ли /try или нет , если не успешен, повторять , до тех пор, пока не будет успешно.
Код:Sendinput, {F6}/me осмотрел пациента{ENTER} Sleep, 1500 Sendinput, {F6}/do Медицинская сумка на плече.{ENTER} Sleep, 1000 Sendinput, {F6}/me достал полиуретановый бинт из медицинской сумки{ENTER} Sleep, 600 Sendinput, {F6}/try зафиксировал конечность{ENTER}
Заранее спасибо за помощь)
if (isPlayerDriverMod()==1)
{
NumberPre:=NumberPre+1
if (NumberPre==2)
{
s := "0"
p := getStreamedInPlayersInfo()
For i, o in p
{
if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" getTargetVehicleModelNameById(i)!="Sultan" and isTargetInAnyVehiclebyIdMod(i)=="1" and i==IdInCar)
{
s:="1"
ModelCar:=getTargetVehicleModelNameById(IdInCar)
SendChat("/m Водитель " ModelCar "!")
sleep 1200
SendChat("/m Если вы сейчас же не остановитесь, мы будем стрелять!")
NumberPre:=0
}
}
if (s==0)
NumberPre:="1"
}
if (NumberPre==1)
{
IdInCar:=getClosestPlayerIdCar()
ModelCar:=getTargetVehicleModelNameById(IdInCar)
if (IdInCar!=-1)
{
Random rand, 1, 4
if (rand==1)
{
SendChat("/m Водитель " ModelCar "!")
sleep 1200
SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!")
}
if (rand==2)
{
SendChat("/m Водитель " ModelCar " прижмитесь к обочине")
sleep 1200
SendChat("/m В противном случае нам придется открыть огонь!")
}
if (rand==3)
{
SendChat("/m Водитель " ModelCar " сбавьте скорость!")
sleep 1200
SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!")
}
if (rand==4)
{
SendChat("/m Водитель " ModelCar " остановитесь на обочине")
sleep 1200
SendChat("/m Или нам придется открыть по вам огонь!")
}
}
else
NumberPre:="0"
}
}
if (isPlayerDriverMod()==0)
{
NumberPre:=NumberPre+1
if (NumberPre==2)
{
s := "0"
p := getStreamedInPlayersInfo()
For i, o in p
{
if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" and isTargetInAnyVehiclebyIdMod(i)=="1" and i==IdInCar)
{
s:=1
ModelCar:=getTargetVehicleModelNameById(IdInCar)
SendChat("/m Водитель " ModelCar "!")
sleep 1200
SendChat("/m Если вы сейчас же не остановитесь, мы будем стрелять!")
NumberPre:=0
}
}
if (s==0)
NumberPre:="1"
}
if (NumberPre==1)
{
model:=[]
name:=[]
s := 0
p := getStreamedInPlayersInfo()
id :=[]
MainMenu:=""
For i, o in p
{
if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" and isTargetInAnyVehiclebyIdMod(i)=="1")
{
s:=s+1
id[S] := i
model[S]:=getTargetVehicleModelNameById(i)
name[S]:=getPlayerNameById(i)
MainMenu:= MainMenu "Водитель - " name[S] ", Марка машины -" model[S] ", Введите " s ".`n"
}
}
MainMenu:= MainMenu "Для отмены операции введите 0."
if (s==0)
NumberPre:="0"
if (s==1)
{
IdInCar:=id[1]
ModelCar:=getTargetVehicleModelNameById(IdInCar)
Random rand, 1, 4
if (rand==1)
{
SendChat("/m Водитель " ModelCar "!")
sleep 1200
SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!")
}
if (rand==2)
{
SendChat("/m Водитель " ModelCar " прижмитесь к обочине")
sleep 1200
SendChat("/m В противном случае нам придется открыть огонь!")
}
if (rand==3)
{
SendChat("/m Водитель " ModelCar " сбавьте скорость!")
sleep 1200
SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!")
}
if (rand==4)
{
SendChat("/m Водитель " ModelCar " остановитесь на обочине")
sleep 1200
SendChat("/m Или нам придется открыть по вам огонь!")
}
}
if (s>1)
{
ShowDialog("1", "Выбор машины:", MainMenu, "Сообщить")
Input,vi, V, {Enter}
if (vi>=1 and vi<=s)
{
IdInCar:=id[vi]
ModelCar:=getTargetVehicleModelNameById(IdInCar)
Random rand, 1, 4
if (rand==1)
{
SendChat("/m Водитель " ModelCar "!")
sleep 1200
SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!")
}
if (rand==2)
{
SendChat("/m Водитель " ModelCar " прижмитесь к обочине")
sleep 1200
SendChat("/m В противном случае нам придется открыть огонь!")
}
if (rand==3)
{
SendChat("/m Водитель " ModelCar " сбавьте скорость!")
sleep 1200
SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!")
}
if (rand==4)
{
SendChat("/m Водитель " ModelCar " остановитесь на обочине")
sleep 1200
SendChat("/m Или нам придется открыть по вам огонь!")
}
}
else
NumberPre:="0"
}
}
}
return
Слишком по быдлокодскому, пиши функцию.Добрый день. Вот есть код, нашел на просторах ентирнета:Но он какой то не рабочий, запускаться не хочет, где тут поправки нужны ?AutoHotKey:if (isPlayerDriverMod()==1) { NumberPre:=NumberPre+1 if (NumberPre==2) { s := "0" p := getStreamedInPlayersInfo() For i, o in p { if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" getTargetVehicleModelNameById(i)!="Sultan" and isTargetInAnyVehiclebyIdMod(i)=="1" and i==IdInCar) { s:="1" ModelCar:=getTargetVehicleModelNameById(IdInCar) SendChat("/m Водитель " ModelCar "!") sleep 1200 SendChat("/m Если вы сейчас же не остановитесь, мы будем стрелять!") NumberPre:=0 } } if (s==0) NumberPre:="1" } if (NumberPre==1) { IdInCar:=getClosestPlayerIdCar() ModelCar:=getTargetVehicleModelNameById(IdInCar) if (IdInCar!=-1) { Random rand, 1, 4 if (rand==1) { SendChat("/m Водитель " ModelCar "!") sleep 1200 SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!") } if (rand==2) { SendChat("/m Водитель " ModelCar " прижмитесь к обочине") sleep 1200 SendChat("/m В противном случае нам придется открыть огонь!") } if (rand==3) { SendChat("/m Водитель " ModelCar " сбавьте скорость!") sleep 1200 SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!") } if (rand==4) { SendChat("/m Водитель " ModelCar " остановитесь на обочине") sleep 1200 SendChat("/m Или нам придется открыть по вам огонь!") } } else NumberPre:="0" } } if (isPlayerDriverMod()==0) { NumberPre:=NumberPre+1 if (NumberPre==2) { s := "0" p := getStreamedInPlayersInfo() For i, o in p { if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" and isTargetInAnyVehiclebyIdMod(i)=="1" and i==IdInCar) { s:=1 ModelCar:=getTargetVehicleModelNameById(IdInCar) SendChat("/m Водитель " ModelCar "!") sleep 1200 SendChat("/m Если вы сейчас же не остановитесь, мы будем стрелять!") NumberPre:=0 } } if (s==0) NumberPre:="1" } if (NumberPre==1) { model:=[] name:=[] s := 0 p := getStreamedInPlayersInfo() id :=[] MainMenu:="" For i, o in p { if(getTargetVehicleModelNameById(i)!="PoliceCar" and getTargetVehicleModelNameById(i)!="" and getTargetVehicleModelNameById(i)!="HPV1000" and getTargetVehicleModelNameById(i)!="Enforcer" and isTargetInAnyVehiclebyIdMod(i)=="1") { s:=s+1 id[S] := i model[S]:=getTargetVehicleModelNameById(i) name[S]:=getPlayerNameById(i) MainMenu:= MainMenu "Водитель - " name[S] ", Марка машины -" model[S] ", Введите " s ".`n" } } MainMenu:= MainMenu "Для отмены операции введите 0." if (s==0) NumberPre:="0" if (s==1) { IdInCar:=id[1] ModelCar:=getTargetVehicleModelNameById(IdInCar) Random rand, 1, 4 if (rand==1) { SendChat("/m Водитель " ModelCar "!") sleep 1200 SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!") } if (rand==2) { SendChat("/m Водитель " ModelCar " прижмитесь к обочине") sleep 1200 SendChat("/m В противном случае нам придется открыть огонь!") } if (rand==3) { SendChat("/m Водитель " ModelCar " сбавьте скорость!") sleep 1200 SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!") } if (rand==4) { SendChat("/m Водитель " ModelCar " остановитесь на обочине") sleep 1200 SendChat("/m Или нам придется открыть по вам огонь!") } } if (s>1) { ShowDialog("1", "Выбор машины:", MainMenu, "Сообщить") Input,vi, V, {Enter} if (vi>=1 and vi<=s) { IdInCar:=id[vi] ModelCar:=getTargetVehicleModelNameById(IdInCar) Random rand, 1, 4 if (rand==1) { SendChat("/m Водитель " ModelCar "!") sleep 1200 SendChat("/m Немедленно прижмитесь к обочине и остановитесь или откроем огонь!") } if (rand==2) { SendChat("/m Водитель " ModelCar " прижмитесь к обочине") sleep 1200 SendChat("/m В противном случае нам придется открыть огонь!") } if (rand==3) { SendChat("/m Водитель " ModelCar " сбавьте скорость!") sleep 1200 SendChat("/m Вам придется прижаться к обочине и остановится или начнем стрелять!") } if (rand==4) { SendChat("/m Водитель " ModelCar " остановитесь на обочине") sleep 1200 SendChat("/m Или нам придется открыть по вам огонь!") } } else NumberPre:="0" } } } return
Заранее спасибо!