#NoEnv
#Persistent
#SingleInstance, force
#Include, CRMPUDF.ahk
global mainNick := "Erik_Forest"
global chatLog := A_MyDocuments "\GTA San Andreas User Files\CR-MP\GenerationC\chatlog.txt"
global tempLog := 0
global ArrL := []
global afk_time := 0
global last_afk := 0
global last_noafk := 0
global noafk_time := 0
SetTimer, Main, 100
~F6::
~ESC::
ifWinNotActive, Criminal Russia Multiplayer Ревизия G
return
Dialog := 0
return
F3::
if (!IsSAMPAvailable())
addChatMessage("ok")
else
MsgBox, % "ok"
return
Main()
{
FileRead, tempLog, % chatLog
for k, v in StrSplit(tempLog, "`n")
{
if (RegExMatch(v, "\[(?<Time>\d+:\d+:\d+)\]\s+Администратор\s+" mainNick "\s+посадил\s+игрока\s+(?<WanNick>[A-z_]+)\s+в\s+тюрьму\.\s+Причина:\s+(?<Cause>.*)", out))
log(1, outTime, outWanNick, outCause)
if (RegExMatch(v, "\[(?<Time>\d+:\d+:\d+)\]\s+Администратор\s+" mainNick "\s+посадил\s+игрока\s+(?<WanNick>[A-z_]+)\s+в\s+Де\s+Морган\.\s+Причина:\s+(?<Cause>.*)", out))
log(2, outTime, outWanNick, outCause)
if (RegExMatch(v, "\[(?<Time>\d+:\d+:\d+)\]\s+Администратор\s+" mainNick "\s+кикнул\s+игрока\s+(?<WanNick>[A-z_]+)\.\s+Причина:\s+(?<Cause>.*)", out))
log(3, outTime, outWanNick, outCause)
if (RegExMatch(v, "\[(?<Time>\d+:\d+:\d+)\]\s+(?<WanNick>[A-z_]+)\s+получил\s+бан\s+чата\s+от\s+администратора\s+" mainNick , out))
log(4, outTime, outWanNick, 0)
if (RegExMatch(v, "\[(?<Time>\d+:\d+:\d+)\]\s+<\s+PM:\s+" mainNick "\s+игроку\s+(?<WanNick>[A-z_]+)\s+>\s+{FFFFFF}(?<Cause>.*)", out))
log(0, outTime, outWanNick, outCause)
}
afk := IsInAFK()
if (afk != -1)
{
if (afk == 1)
afk_time += 100
else if (afk == 0 && last_afk == 1)
{
log(5, afk_time, 0, 0)
afk_time := 0
}
last_afk := afk
if (afk == 0)
noafk_time += 100
else if ((afk == 1 && last_noafk == 0) || (afk == 0 && noafk_time > 10000))
{
log(6, noafk_time, 0, 0)
noafk_time := 0
}
last_noafk := afk
}else if (afk_time > 0)
afk_time := 0
else if (noafk_time > 0)
noafk_time := 0
}
log(mode, times, nick, texter)
{
dater := get("http://fforest.pro/time.php?time=MDY")
if (mode < 5)
saveCRMP(tempLog)
if (mode == 1){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish, % temp "[" times "] |Т|`t" nick "`t`t`t" texter "`n"
}else if (mode == 2){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish, % temp "[" times "] |Д|`t" nick "`t`t`t" texter "`n"
}else if (mode == 3){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish, % temp "[" times "] |К|`t" nick "`t`t`t" texter "`n"
}else if (mode == 4){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish
RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, punish, % temp "[" times "] |M|`t" nick "`t`t`t" texter "`n"
}else if (mode == 0){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, ansver
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, ansver
RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, ansver, % temp "[" times "] " nick "`t`t |О|: " texter "`n"
}else if (mode == 5){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeAfk
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeAfk
RegWrite, REG_EXPAND_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeAfk, % (temp ? temp + times : times)
}else if (mode == 6){
RegRead, temp, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeNoAfk
RegDelete, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeNoAfk
RegWrite, REG_EXPAND_SZ, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" dater, timeNoAfk, % (temp ? temp + times : times)
}
}
saveCRMP(chatlog)
{
static logschat := A_MyDocuments "\GTA San Andreas User Files\CR-MP\GenerationC\ChatLogs\"
static chat := A_MyDocuments "\GTA San Andreas User Files\CR-MP\GenerationC\chatlog.txt"
FileCreateDir , % logschat A_MM "-" A_YYYY
FileAppend , % chatlog, % logschat A_MM "-" A_YYYY "\" A_DD "." A_MM "." A_YYYY ".txt"
FileDelete , % chat
}
StrInArr(str)
{
newArr := []
for k, v in StrSplit(str, "`n")
newArr.Push(v)
return (newArr.MaxIndex() >= 1 ? newArr.MaxIndex() - 1 : "0")
}
~F2::
tempTextDial := ""
Loop, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" , 2, 1
{
RegRead, tempP, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" A_LoopRegName, punish
RegRead, tempA, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" A_LoopRegName, ansver
RegRead, tempTA, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" A_LoopRegName, timeAfk
RegRead, tempNA, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" A_LoopRegName, timeNoAfk
tempTextDial .= "Д: " A_LoopRegName " | Н: " StrInArr(tempP) " | О: " StrInArr(tempA) " | АФК: " time_afk(tempTa) " | Чистый: " time_afk(tempNA) "`n"
}
Sleep, 100
showDialog(2, "Логи", tempTextDial, "X", "X", 100)
Dialog := 1
return
~LButton::
Time := A_TickCount
while(isDialogOpen())
{
if (A_TickCount - Time > 500)
return
}
~NumpadEnter::
~Enter::
if (isDialogButton1Selected() == 1 || isDialogButton2Selected() == 1)
Dialog := 0
ifWinNotActive, Criminal Russia Multiplayer Ревизия G
return
if (Dialog == 1)
{
Dialog := 0
line_num := getDialogLineNumber()
line_text := getDialogLine(line_num)
RegExMatch(line_text, "Д:\s(?<date>[0-9.]+)\s\|\sНаказания:\s(?<pun>[0-9]+)\s\|\sОтветы:\s(?<ans>[0-9]+)\s\|\sАФК:\s(?<afk>[0-9:]+)\s\|\sЧистый:\s(?<onl>[0-9:]+)", out)
text := "Открыть лог наказаний [" outpun "]{00FF00} (Кликабельно)`nОткрыть лог ответов [" outans "]{00FF00} (Кликабельно)`nЧистый онлайн: {00FF00}~ {00FF00}" outafk " `nВремя в афк: {00FF00}~ {00FF00}" outonl
Sleep, 100
showDialog(2, outdate, text, "X", "X", 100)
Dialog:= 2
return
}
if (Dialog == 2)
{
Dialog := 0
line_num := getDialogLineNumber()
line_text := getDialogLine(line_num)
CaptionD := getDialogCaption()
if (line_num == 1){
RegRead, end, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" CaptionD, punish
Sleep, 100
showDialog(0, "Наказания", "{00FF00}Time`t`tNick`t`t`t`tPunish`n{FFFFFF}" end, "X", "X", 100)
}else if (line_num == 2){
RegRead, ender, HKEY_CURRENT_USER, % "Software\AdmLogCRMP\" CaptionD, ansver
Sleep, 100
showDialog(0, "Наказания", "{00FF00}Time Nick`t`t`tAnswer`n{FFFFFF}" ender, "X", "X", 100)
}else if (line_num > 2 )
return
}
return
time_afk(afk_time, min := 0)
{
if (!min)
{
sec := Ceil(afk_time/1000)
h := sec/3600 ^ 0
m := (sec-h*3600)/60 ^ 0
s := sec-h*3600-m*60
if (afk_time > 5)
return (h < 10 ? "0" h : h) ":" (m < 10 ? "0" m : m) ":" (s < 10 ? "0" s : s)
return -1
}
else
return isInteger((afk_time/1000)/60)
}