Исходник Гайд AHK RegExMatch | SAMP | Пишем свой авто-ответчик

Warklot123

Новичок
9
0
hello why i get this error
38999
 

Warklot123

Новичок
9
0
AutoHotKey:
#IfWinActive GTA: SA: MP

#NoEnv

#SingleInstance, force

#include SAMP.ahk

#UseHook


SetTimer, Update, 50



ChatLog = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt


Update:

badwords := " (pyderas|duxas|gaidys|naxui) "

lastline := GetNewLine(ChatLog)

if(RegExMatch(lastline, "(.*)\s\(([0-9]{1,})\)praneðta\s(.*)(.*)\s\(([0-9]{1,})\)(.*)badwords", var))

{

SendChat("/mute " var3 " 1800 automute")

}

return



GetNewLine(filename)

{

static old

static new

if !old

{

FileGetSize, old, %filename%

new := old

}

while old = new

{

sleep 100 ;Delay

FileGetSize, new, %filename%

}

old := new

Loop, read, %filename%

if A_LoopReadLine

{

last := A_LoopReadLine

}

return last

}


!end::ExitApp ;alt+end = exit

end::Reload ;end = reload
why it doesnt work
Its like automute V_P [ID] report for message V_P [ID] GAY and this scripts checks ID of reported guy and / mute ID 1800 swearing
Thomas_Macion [82] praneðta þinutë Rutis_Fresh [7]: bitch
 
Последнее редактирование:

NOOBPAndA

Участник
101
12
Hi, install samp udf.
#Include samp.ahk
If samp udf writed in code, your version samp udf not have a func with name "getnewline(chatlog)"
У меня пара вопросов по "каркасу скрипта"
От куда ты взял функцию static в 18 строке?
Объясни 16 строку, filename это переменная или путь?
 

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
264
567
У меня пара вопросов по "каркасу скрипта"
От куда ты взял функцию static в 18 строке?
Объясни 16 строку, filename это переменная или путь?
static - это тип переменной.
filename - это переменная, в которой находится путь.
Читай справку по ahk.
 

BUTCH!

Известный
20
1
Приветствую.
Строка с чатлога : [00:25:04] {FFC300}* [A] Nick_Name[915] на 30 дней. Причина: test | IP: 11.11.11.11
Как отсюда выдернуть IP, чтобы после появления данной строки открывался чат с командой и этим IP`ом?
Потому что
RegExMatch(var, "\Q[\E(.*):(.*):(.*)\Q]\E \Q{\FFC300\Q}\E\Q*\E \Q[\EA\Q]\E (.*)_(.*)\Q[\E(.*)\Q]\E (.*) (.*) (.*)\Q.\E (.*)\Q:\E (.*) \Q|\E IP\Q:\E (.*).(.*).(.*).(.*)", find)
Вот это вот - дичь, как я думаю.
 

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
264
567
Приветствую.
Строка с чатлога : [00:25:04] {FFC300}* [A] Nick_Name[915] на 30 дней. Причина: test | IP: 11.11.11.11
Как отсюда выдернуть IP, чтобы после появления данной строки открывался чат с командой и этим IP`ом?
Потому что
RegExMatch(var, "\Q[\E(.*):(.*):(.*)\Q]\E \Q{\FFC300\Q}\E\Q*\E \Q[\EA\Q]\E (.*)_(.*)\Q[\E(.*)\Q]\E (.*) (.*) (.*)\Q.\E (.*)\Q:\E (.*) \Q|\E IP\Q:\E (.*).(.*).(.*).(.*)", find)
Вот это вот - дичь, как я думаю.
Добрый день.
AutoHotKey:
var = [00:25:04] {FFC300}* [A] Nick_Name[915] на 30 дней. Причина: test | IP: 11.11.11.11
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3
 
  • Нравится
Реакции: BUTCH!

BUTCH!

Известный
20
1
Что после MsgBox тогда идти должно? Там же по идее if find3 != ?
Но тут ip и че то запутался в MsgBox`ами

Код:
loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3
    
{
   SendChat("/banip " ip1)
}
}

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
}

!end::ExitApp
end::Reload
 

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
264
567
Что после MsgBox тогда идти должно? Там же по идее if find3 != ?
Но тут ip и че то запутался в MsgBox`ами

Код:
loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3
   
{
   SendChat("/banip " ip1)
}
}

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
}

!end::ExitApp
end::Reload
Код:
loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3
    
   SendChat("/banip " ip3)
}
ip3 - ip
 
  • Нравится
Реакции: BUTCH!

BUTCH!

Известный
20
1
Код:
loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3
  
   SendChat("/banip " ip3)
}
ip3 - ip
От чего может быть? Тупо при входе в рекон выкидывает на рабочий стол.
Чё то мне кажется, я какую-то херню сделал)
43680





#Include samp.ahk
ChatLog = C:\Users\Dmitry\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3


SendChat("/banip " ip3)
}

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
}

!end::ExitApp
end::Reload
 
Последнее редактирование:

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
264
567
От чего может быть? Тупо при входе в рекон выкидывает на рабочий стол.
Чё то мне кажется, я какую-то херню сделал)
Посмотреть вложение 43680




#Include samp.ahk
ChatLog = C:\Users\Dmitry\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
{
lastline := GetNewLine(ChatLog)
RegExMatch(var, "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
MsgBox % ip1 " " ip2
MsgBox % ip3


SendChat("/banip " ip3)
}

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
}

!end::ExitApp
end::Reload
AutoHotKey:
#Include samp.ahk
ChatLog = C:\Users\Dmitry\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
 if RegExMatch(GetNewLine(ChatLog), "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
  SendChat("/banip " ip3)

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
}

!end::ExitApp
end::Reload
 
  • Нравится
Реакции: BUTCH!

BASS_DEVSOFTWARE

Известный 🇺🇦
Автор темы
Друг
264
567
А как будет выглядеть регулярка, например, для: , чтобы можно было вывести id, пытаюсь написать по Вашему примеру, не реагирует.
"\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[(\d\d?\d?)\] на \d\d? дней\. Причина: .* \| IP: (.*)"
ip3 - id
ip4 - ip
 
  • Нравится
Реакции: ProstoTakChelik

BUTCH!

Известный
20
1
AutoHotKey:
#Include samp.ahk
ChatLog = C:\Users\Dmitry\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
if RegExMatch(GetNewLine(ChatLog), "\[\d\d:\d\d:\d\d\] \{FFC300\}\* \[A\] (.*)_(.*)\[\d\d?\d?\] на \d\d? дней\. Причина: .* \| IP: (.*)", ip)
  SendChat("/banip " ip3)

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
}

!end::ExitApp
end::Reload
Сейчас буду разбираться, что не так сделал)