скрипт ахк

bogdanads2018

Новичок
Автор темы
2
0
Доброго времени суток! Помогите ребята пожалуйста сделать скрипт на AHK, т.к. никак не получается.
Хочу сделать следующее:
У меня запущен SAMP
Когда в чат вылетает строка например: Тестировение 1, Autotkey автоматически пишет в чат определенную команду, например:/sms.
Желательно и я думаю по факту, что это должно считываться с чатлога. Буду очень благодарен, кто поможет написать данный скрипт!
 

CaJlaT

07.11.2024 14:55
Модератор
2,835
2,673
Доброго времени суток! Помогите ребята пожалуйста сделать скрипт на AHK, т.к. никак не получается.
Хочу сделать следующее:
У меня запущен SAMP
Когда в чат вылетает строка например: Тестировение 1, Autotkey автоматически пишет в чат определенную команду, например:/sms.
Желательно и я думаю по факту, что это должно считываться с чатлога. Буду очень благодарен, кто поможет написать данный скрипт!
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP.ahk ; Подключение САМП-ЮДФ
#IfWinActive GTA:SA:MP
cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; переменная с путём к чат-логу
SetTimer, ch ,50 ; Каждые 50мс таймер будет выполнсять метку ch (В данном случае это считывание чат-лога)
ch:
{
    FileRead, chatlog, % cl
    if (RegExMatch(chatlog, "Триггер")) ; Вместо слова триггер введи нужный триггер из чата (например как у тебя "Тестирование 1")
    {
        FileDelete, % cl ; ОБЯЗАТЕЛЬНОЕ удаление чатлога
        sendchat("/sms")
        return
    }
}
 
  • Нравится
Реакции: degrando

Adam_Rockwell

Активный
143
26
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP.ahk ; Подключение САМП-ЮДФ
#IfWinActive GTA:SA:MP
cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; переменная с путём к чат-логу
SetTimer, ch ,50 ; Каждые 50мс таймер будет выполнсять метку ch (В данном случае это считывание чат-лога)
ch:
{
    FileRead, chatlog, % cl
    if (RegExMatch(chatlog, "Триггер")) ; Вместо слова триггер введи нужный триггер из чата (например как у тебя "Тестирование 1")
    {
        FileDelete, % cl ; ОБЯЗАТЕЛЬНОЕ удаление чатлога
        sendchat("/sms")
        return
    }
}
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP.ahk ; Подключение САМП-ЮДФ
#IfWinActive GTA:SA:MP
cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; переменная с путём к чат-логу
SetTimer, ch ,50 ; Каждые 50мс таймер будет выполнсять метку ch (В данном случае это считывание чат-лога)
ch:
{
    FileRead, chatlog, % cl
    if (RegExMatch(chatlog, "Триггер")) ; Вместо слова триггер введи нужный триггер из чата (например как у тебя "Тестирование 1")
    {
        FileDelete, % cl ; ОБЯЗАТЕЛЬНОЕ удаление чатлога
        sendchat("/sms")
        return
    }
}
Какой ужас, зачем учить молодых бойцов быдлокоду.
Доброго времени суток! Помогите ребята пожалуйста сделать скрипт на AHK, т.к. никак не получается.
Хочу сделать следующее:
У меня запущен SAMP
Когда в чат вылетает строка например: Тестировение 1, Autotkey автоматически пишет в чат определенную команду, например:/sms.
Желательно и я думаю по факту, что это должно считываться с чатлога. Буду очень благодарен, кто поможет написать данный скрипт!
Если тебе нужен ещё нормальный код, отпишешь.
 
  • Нравится
Реакции: Randewoo

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP.ahk ; Подключение САМП-ЮДФ
#IfWinActive GTA:SA:MP
cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; переменная с путём к чат-логу
SetTimer, ch ,50 ; Каждые 50мс таймер будет выполнсять метку ch (В данном случае это считывание чат-лога)
ch:
{
    FileRead, chatlog, % cl
    if (RegExMatch(chatlog, "Триггер")) ; Вместо слова триггер введи нужный триггер из чата (например как у тебя "Тестирование 1")
    {
        FileDelete, % cl ; ОБЯЗАТЕЛЬНОЕ удаление чатлога
        sendchat("/sms")
        return
    }
}
Зачем использовать RegExMatch без регулярных выражений? Что ща быдлокод?
 
  • Нравится
Реакции: BASS_DEVSOFTWARE

Adam_Rockwell

Активный
143
26
Зачем использовать RegExMatch без регулярных выражений? Что ща быдлокод?
а т.е тот ужас, который написал помимо этого тебя не смущает?)))
регулярка то тут как раз не помешает, ибо заместо триггера и подразумевается регулярное выражение.
 

CaJlaT

07.11.2024 14:55
Модератор
2,835
2,673
Какой ужас, зачем учить молодых бойцов быдлокоду.

Если тебе нужен ещё нормальный код, отпишешь.
Зачем использовать RegExMatch без регулярных выражений? Что ща быдлокод?
Я никогда не отрицаю, что я пишу быдлокод, но я помогаю людям
 
  • Нравится
Реакции: BASS_DEVSOFTWARE

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а т.е тот ужас, который написал помимо этого тебя не смущает?)))
регулярка то тут как раз не помешает, ибо заместо триггера и подразумевается регулярное выражение.
Про код на метках я уже молчу, нет смысла доказывать что-то кому-то
И да, подразумевается кем, я извиняюсь
Тут нет регулярных выражений, но используется функция для их воспроизведений
 

Adam_Rockwell

Активный
143
26
Я никогда не отрицаю, что я пишу быдлокод, но я помогаю людям
ты не помогаешь людям, ты выращиваешь новую партию таких же быдлокодеров xD
Ибо они будут использовать этот код и считать его адекватным

В чём проблема немного подумать и написать красиво? Например так

AutoHotKey:
#SingleInstance Force
#Persistent
#NoEnv

FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Loop, Parse, file, `n, `r
   chatIndexTemp := A_Index-1
SetTimer, checkEvent, 250
return

checkEvent:
index := 0
FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
loop, Parse, file, `n, `r
{
   index := A_Index
   if (index > chatIndexTemp) and A_LoopField
   {
      chatIndexTemp := index
      string := RegExReplace(A_LoopField, "U)^\[\d{2}:\d{2}:\d{2}\] ")
      gosub parseEvent
   }
}
if (index < chatIndexTemp)
   chatIndexTemp := 0
return

parseEvent:
msgbox % string
return
 

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ты не помогаешь людям, ты выращиваешь новую партию таких же быдлокодеров xD
Ибо они будут использовать этот код и считать его адекватным

В чём проблема немного подумать и написать красиво? Например так

AutoHotKey:
#SingleInstance Force
#Persistent
#NoEnv

FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Loop, Parse, file, `n, `r
   chatIndexTemp := A_Index-1
SetTimer, checkEvent, 250
return

checkEvent:
index := 0
FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
loop, Parse, file, `n, `r
{
   index := A_Index
   if (index > chatIndexTemp) and A_LoopField
   {
      chatIndexTemp := index
      string := RegExReplace(A_LoopField, "U)^\[\d{2}:\d{2}:\d{2}\] ")
      gosub parseEvent
   }
}
if (index < chatIndexTemp)
   chatIndexTemp := 0
return

parseEvent:
msgbox % string
return
Хтьфу, опять быдлокод
 
  • Ха-ха
Реакции: CaJlaT

Adam_Rockwell

Активный
143
26
Хтьфу, опять быдлокод
В каком месте ты увидел быдлокод то? Как по мне это самый идеальный вариант чтения чат-лога.
Умеешь лучше, так покажи, а не хатьфукай.
 
Последнее редактирование:

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В каком месте ты увидел быдлокод то? Как по мне это самый идеальный вариант чтения чат-лога.
Умеешь лучше, так покажи, а не хатьфукай.
Нахуя объявлять 2 цикла, массивы хуивы, когда код делается в 3 строки.
 

Adam_Rockwell

Активный
143
26
Нахуя объявлять 2 цикла, массивы хуивы, когда код делается в 3 строки.
Первый цикл для определения последней строки в чат-логе, второй для парса чат лога на выход новой строки.
Где ты там массивы увидал остаётся загадкой. Скорее всего ты даже не понял, как оно всё работает.

Жду «супер эффективный» прозрачный код в 3 строки.
 
Последнее редактирование:

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Первый цикл для определения последней строки в чат-логе, второй для парса чат лога на выход новой строки.
Где ты там массивы увидал остаётся загадкой. Скорее всего ты даже не понял, как оно всё работает.

Жду «супер эффективный» прозрачный код в 3 строки.
Ща жди днем скину
 

CaJlaT

07.11.2024 14:55
Модератор
2,835
2,673
Вы вообще понимаете, что человек не заходил на форум с того момента, как написал эту тему?
1581253912285.png