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

darksoor

Известный
674
353
Что тут не так?
Код:
Chat()
{
    FileRead, chatlog, % file_chat

  if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
    
        a :=b+var2
       b :=var2

    }

}
Ну например зачем ты два раза чат читаешь?)
 

Black_Bird

Участник
59
4
Ну например зачем ты два раза чат читаешь?)
делал по примеру ревалто:)
его код:
Код:
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat() {
    FileRead, chatlog, % file_chat

    if (RegExMatch(chatlog, ".* Отправил .{3,24}\[\d+\] \(тел\. (\d+)\)", chattext))
    {
        save(chatlog)
        addChatMessage(chattext1)
    }
}

Ну например зачем ты два раза чат читаешь?)
так должно быть??
Код:
Chat()
{
    FileRead, chatlog

  if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
    
        a :=b+var2
       b :=var2

    }

}
 

darksoor

Известный
674
353
делал по примеру ревалто:)
его код:
Код:
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat() {
    FileRead, chatlog, % file_chat

    if (RegExMatch(chatlog, ".* Отправил .{3,24}\[\d+\] \(тел\. (\d+)\)", chattext))
    {
        save(chatlog)
        addChatMessage(chattext1)
    }
}
FileRead и getChatLineEx() по сути одинаковые функции, отличаются только способом чтения чата (FileRead читает файл, а getChatLineEx() читает из памяти игры). Из скрипта можешь убрать FileRead.
 

Black_Bird

Участник
59
4
FileRead и getChatLineEx() по сути одинаковые функции, отличаются только способом чтения чата (FileRead читает файл, а getChatLineEx() читает из памяти игры). Из скрипта можешь убрать FileRead.
Опять не робит:)
Код:
#IfWinActive GTA:SA:MP
#NoEnv
SendMode Input
#UseHook
#SingleInstance, force
#include samp.ahk
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat()
{

  if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
     
        a:=b+var2
       b:=var2

    }

}
 

darksoor

Известный
674
353
Опять не робит:)
Код:
#IfWinActive GTA:SA:MP
#NoEnv
SendMode Input
#UseHook
#SingleInstance, force
#include samp.ahk
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat()
{

  if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
    
        a:=b+var2
       b:=var2

    }

}

Попробуй так:
Код:
#IfWinActive GTA:SA:MP
#NoEnv
SendMode Input
#UseHook
#SingleInstance, force
#include samp.ahk
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat:
if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
    
        a:=b+var2
       b:=var2

    }
Return
 

Black_Bird

Участник
59
4
Попробуй так:
Код:
#IfWinActive GTA:SA:MP
#NoEnv
SendMode Input
#UseHook
#SingleInstance, force
#include samp.ahk
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat:
if (RegExMatch(getChatLineEx(), "\{\w+\}\*\{\w+\}\s\{\w+\}\d+\{\w+\} кг груза было продано за \{\w+\}\$\w+\.\s\{\w+\}Доход\:\s\$(\d+)\s\(\$(\d+) доставлено в кассу компании\)", var))
    {
   
        a:=b+var2
       b:=var2

    }
Return
неа, сам скрипт даже не запускается
 

darksoor

Известный
674
353
неа, сам скрипт даже не запускается
Ошибку может какую выбивает?

Если нет, попробуй переустановить саму программу AutoHotKey в ANSI-32, запустить скрипт от имени администратора, отключить антивирус.
 
Последнее редактирование:

NHacker1271

Известный
156
16
Как сделать в ahk проверку на наличие текста на хостинге?
К примеру, если найдено одно слово из 4-х слов на хостинге, то скрипт пишет нашёл.
 

Overseas

Новичок
16
1
Имеется вот такой код, для отыгрыша ников напарников в доклад в то время как я кого-то посадил в КПЗ. Почему-то когда я его использую, меня периодически выкидывает из игры, без краша, чаще всего когда я сажусь в машину и в ней находятся копы, но необязательно, в машине может никого не быть вовсе. Каких-то других закономерностей не нашел. В чем может быть проблема?
Код:
#include SAMP V2.ahk
#IfWinActive GTA:SA:MP
global FileCLog:=% A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

SelectedFile = %A_MyDocuments%\Gta San Andreas User Files\samp\chatlog.txt
Loop
{
log = % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
id := NearCop()
FileRead, logchat, %log%
sleep, 100
IfInString, logchat, Арестованный
{
FileRead, info, %log%
sleep, 100
if RegExMatch(info, "\Q] \E(.*)\{FFFFFF\}\E(.*)_(.*)\Q {269BD8}\E", out)
{
Sleep, 2200
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/r Дело закрыто. Подозреваемый %out2% %out3% пойман. | Напарник(и): %id% {Enter}
Sleep, 2200
SendInput, {F6}/time{Enter}
Sleep, 400
SendInput, {F2}
sleep, 1000
FileDelete %log%
sleep, 1000
FileAppend %log%
}
}
sleep, 100
IfInString, logchat, Вы поместили
{
FileRead, info, %log%
sleep, 100
if RegExMatch(info, "\Q] \E(.*)поместили\E (.*)_(.*)\Q в\E", out)
{
Sleep, 2200
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/r Дело закрыто. Подозреваемый %out2% %out3% пойман. | Напарник(и): %id% {Enter}
Sleep, 2200
SendInput, {F6}/time{Enter}
Sleep, 400
SendInput, {F2}
sleep, 1000
FileDelete %log%
sleep, 1000
FileAppend %log%
}
}
sleep, 100
IfInString, logchat, нейтрализовал
{
FileRead, info, %log%
sleep, 100
if RegExMatch(info, "(.*)Log_Logov нейтрализовал преступника '(.*)_(.*)'", out)
{
Sleep, 2200
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/n Преступник %out2% %out3% нейтрализован. | Причина: Вооруженное сопротивление. | Напарник(и): %id% {Enter}
Sleep, 2200
SendInput, {F6}/time{Enter}
Sleep, 400
SendInput, {F2}
sleep, 1000
FileDelete %log%
sleep, 1000
FileAppend %log%
}
}
sleep, 100
IfInString, logchat, Подозреваемый
{
FileRead, info, %log%
sleep, 100
if RegExMatch(info, "\Q] \E(.*)\{FFFFFF\}\E(.*)_(.*)\Q {269BD8}\E", out)
{
Sleep, 2200
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/r Дело закрыто. Подозреваемый %out2% %out3% пойман. | Напарник(и): %id% {Enter}
Sleep, 2200
SendInput, {F6}/time{Enter}
Sleep, 400
SendInput, {F2}
sleep, 1000
FileDelete %log%
sleep, 1000
FileAppend %log%
}
}
sleep, 100
NearCop()
{
    p := getStreamedInPlayersInfo()
    sleep, 100
    If (!p)
        return
    lpos := getCoordinates()
    If (!lpos)
        return
    For i, o in p
    {
        t := getDist(lpos,o.POS)
        sleep, 100
        If (t <= 10)
        {
            Colorpl := getplayercolor(i)
            Skin := getTargetPlayerSkinIdById(i)
            If ((Colorpl = 274771114) || (Colorpl = 2054579968) AND (Skin = 265|266|267|280|281|282|283|284|285|288|300|301|302|306|307|309|310|311|295))
    sleep, 100
            {
                    NameCop := RegExReplace(o.NAME, "_", " ")
                    If NearCops
                        NearCops := % NearCops ", " NameCop
                    else
                        NearCops := NameCop
            }
        }
    }
    If not NearCops
    sleep, 100
        NearCops := "Нету"
    sleep, 100
    return NearCops
}
}
return
    sleep, 100
GetNewLine(filename)
{
static old
static new
if !old
{
FileGetSize, old, %filename%
new := old
}
while old = new
{
sleep 100
FileGetSize, new, %filename%
}
old := new
Loop, read, %filename%
if A_LoopReadLine
{
last := A_LoopReadLine
}
return last
}
 

Nifailo

Новичок
26
0
Добрый день, помогите пожалуйста.
Хочу сделать такой ахк:
NumPad4::
showDialog(2, "AHK A-LV", "[1] Приветствие", "Закрыть")
И что-бы при нажатии на Приветствие выскачивало такое приветствие
SendMessage, 0x50,, 0x4190419,, A
SendChat("Добрый день, я " rang " ш.Лас-Вентураса " nickname ".")
sleep 1
SendChat("/anim 2 2")
sleep 2000
SendChat("Ваш нужна моя помощь?")
sleep 1
return


p.s У меня ahk читает ini
 

Cod

Участник
117
15
Добрый день, помогите пожалуйста.
Хочу сделать такой ахк:
NumPad4::
showDialog(2, "AHK A-LV", "[1] Приветствие", "Закрыть")
И что-бы при нажатии на Приветствие выскачивало такое приветствие
SendMessage, 0x50,, 0x4190419,, A
SendChat("Добрый день, я " rang " ш.Лас-Вентураса " nickname ".")
sleep 1
SendChat("/anim 2 2")
sleep 2000
SendChat("Ваш нужна моя помощь?")
sleep 1
return


p.s У меня ahk читает ini
C++:
Numpad4::
{
  showDialog("2", "AHK A-LV", "[1] Приветствие", "Закрыть")
  NextStep := 1
  Result := LineResult()
  if(!Result)
    return
  if(Result == "1") {
    SendChat("Добрый день, я " rang " ш.Лас-Вентураса " nickname ".")
    Sleep, 2000
    SendChat("/anim 2 2")
    Sleep, 2000
    SendChat("Ваш нужна моя помощь?")
  }
}
return

LineResult() {
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while (isDialogOpen())
        continue
    if(GetKeyState("Esc", "P"))
        return false
    return getDialogLineNumber()
}
 

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: scrooddge.cs и Black_Bird

scrihack

Новичок
8
1
Помогите написать скрипт, нужен скрипт для информации об айпи адресах.
Пишешь команду к примеру /checkip (первый IP) (второй IP) и после ввода команды, чтобы в диалоге писали информацию о айпи: 1) Страна
2) Город, 3) Провайдер и еще чтобы 4 пунктов было какое расстояние от первого IP'a до второго IP'a. Помогите, пожалуйста.
 

#Rin

Известный
Всефорумный модератор
1,214
1,037
Помогите написать скрипт, нужен скрипт для информации об айпи адресах.
Пишешь команду к примеру /checkip (первый IP) (второй IP) и после ввода команды, чтобы в диалоге писали информацию о айпи: 1) Страна
2) Город, 3) Провайдер и еще чтобы 4 пунктов было какое расстояние от первого IP'a до второго IP'a. Помогите, пожалуйста.
IP Checker by Tumkin ищи.
 

Anton_Hamond

Новичок
13
2
Здравствуйте, помогите исправить код. Есть в машине кто-то сидит, то скрипт на него работает. А нужно чтобы работал на чела впереди меня (то есть который не сидит в моей тачки). Заранее спасибо.

AutoHotKey:
NumpadSub::
SendMessage, 0x50,, 0x4190419,, A
pog:=getClosestPlayerIdCarNotCopFBI()
if(!checkHandles())
   return
dwAddr := getVehiclePointerById(pog)
fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
fVehicleSpeed :=  sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
fVehicleSpeed := (fVehicleSpeed * 100) * 1
fVehicleSpeed := Round(fVehicleSpeed)
if (fSpeedY==0)
   {
   if (fSpeedX>0)
      fVehicleAtan:="1.57"
   else if (fSpeedX>0)
      fVehicleAtan:="-1.57"
   else if (fSpeedX==0)
      {
      AddMessageToChatWindow("Преступник не в машине или стоит на месте")
      return
      }
   }
else
   {
   fVehicledelta := fSpeedY / fSpeedX
   fVehicleAtan:=ATan(fVehicledelta)
   }
if (fSpeedX>0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="южном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="юго-восточном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="восточном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="северо-восточном"
   if (fVehicleAtan>1.1781)
      naprav:="северном"
   }
if (fSpeedX<0)
   {
   if (fVehicleAtan<-1.1781)
      naprav:="северном"
   if (fVehicleAtan>-1.1781 and fVehicleAtan<-0.3927)
      naprav:="северо-западном"
   if (fVehicleAtan>-0.3927 and fVehicleAtan<0.3927)
      naprav:="западном"
   if (fVehicleAtan>0.3927 and fVehicleAtan<1.1781)
      naprav:="юго-западном"
   if (fVehicleAtan>1.1781)
      naprav:="южном"
   }
fVehicleid := getTargetVehicleModelIdById(pog)
if (fVehicleid>400 && fVehicleid<611)
   fVehicleModel := ovehicleNamesImpad[fVehicleid-399]
else 
   fVehicleModel:="Автомобиль"
kv:=getPlayerZone()
SendChat("/m Водитель, " fVehicleModel " с номерами x" pog "yz, прижмитесь к обочине и остановитесь.")
Sleep 1200
SendChat("/m Или будем стрелять!")
return [/code