скрипт ахк

bogdanads2018

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

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скинь код. Очень хочется раскритиковать его также, как ты высказался по поводу моего) Только критика уже будет по факту, а не высер.
Братан, я думаю, мои 5 лет и твои пару месяцев опыта дадут о себе знать)
Жди, я не сливаюсь, сейчас выходные, у меня работа
 

Adam_Rockwell

Активный
143
26
Братан, я думаю, мои 5 лет и твои пару месяцев опыта дадут о себе знать)
Жди, я не сливаюсь, сейчас выходные, у меня работа
Дешевые понты, братан. Пятилетний опыт? Так укажи, где ты в моём коде нашёл что-то плохое или неэффективное
 
Последнее редактирование:

Randewoo

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

на те упрощенный вариант братан и не еби мозгу ок ладно
AutoHotKey:
global path := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
global old := ""

Loop {
    FileRead, chatlog, % path
    chatlog := StrSplit(chatlog, "`n")
    
    if ((string := chatlog[chatlog.MaxIndex() - 1]) != old) {
        old := string
        MsgBox, % string
    }
}
 

Adam_Rockwell

Активный
143
26
1) Метки
2) Вложенный цикл
3) Кривая регулярка в RegExReplace

на те упрощенный вариант братан и не еби мозгу ок ладно
AutoHotKey:
global path := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
global old := ""

Loop {
    FileRead, chatlog, % path
    chatlog := StrSplit(chatlog, "`n")
 
    if ((string := chatlog[chatlog.MaxIndex() - 1]) != old) {
        old := string
        MsgBox, % string
    }
}
Метки?)
Чем тебе метки не угодили? Они ничем не отличаются в производительности от того же Loop.

Вложенный цикл?
Так у тебя в коде точно такой же вложенный цикл.
Если ты имеешь ввиду, что я использую SetTimer и Loop как цикл в цикле, так это просто чтобы сбавить нагрузку, ибо она бесполезна, т.к строки в любом случае будут фиксироваться.

Кривая регулярка?
Ну напиши лучше. Уж в ней никаких особых косяков точно нет.

А по поводу твоего творения:

1) Столько памяти кушаешь, миллион раз перезаписывая массив chatlog.
Очевидно, что это менее эффективно, чем мой вариант с if (index > chatIndexTemp) and A_LoopField

2) Присвоение идёт по последней строке. Т.е при выходе двух одинаковых строк, твой скрипт их распознает как одну. А это уже весомый косяк, а не придирки.
 

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Метки?)
Чем тебе метки не угодили? Они ничем не отличаются в производительности от того же Loop.

Вложенный цикл?
Так у тебя в коде точно такой же вложенный цикл.
Если ты имеешь ввиду, что я использую SetTimer и Loop как цикл в цикле, так это просто чтобы сбавить нагрузку, ибо она бесполезна, т.к строки в любом случае будут фиксироваться.

Кривая регулярка?
Ну напиши лучше. Уж в ней никаких особых косяков точно нет.

А по поводу твоего творения:
1) Столько памяти кушаешь, миллион раз перезаписывая массив chatlog. Что-то мне подсказывает это будет менее эффективно, чем мой вариант с
if (index > chatIndexTemp) and A_LoopField

2) Присвоение идёт по последней строке. Т.е при выходе двух одинаковых строк, твой скрипт их распознает как одну. А это уже весомый косяк, а не придирки.
АХахах, какая нахуй дрочь за производительность в КОМПИЛИРУЕМОМ приложении?)))))))))))))))))))))))))))))))))))))))))))))
У меня нет вложенного цикла в коде. Гугли че это такое, ты ж у нас умный)
Расчитываю сожрать у юзера 1 тб оперативки а че)))
 

Adam_Rockwell

Активный
143
26
АХахах, какая нахуй дрочь за производительность в КОМПИЛИРУЕМОМ приложении?)))))))))))))))))))))))))))))))))))))))))))))
У меня нет вложенного цикла в коде. Гугли че это такое, ты ж у нас умный)
Расчитываю сожрать у юзера 1 тб оперативки а че)))
Ну с точки зрения алгоритма - твой алгоритм менее эффективен, чем мой. Но почему-то мой алгоритм это быдлокод, а ты у нас король автор пятилетний.
 

Randewoo

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

Adam_Rockwell

Активный
143
26
АХахах, какая нахуй дрочь за производительность в КОМПИЛИРУЕМОМ приложении?)))))))))))))))))))))))))))))))))))))))))))))
У меня нет вложенного цикла в коде. Гугли че это такое, ты ж у нас умный)
Расчитываю сожрать у юзера 1 тб оперативки а че)))
По поводу вложенных циклов. У меня Loop , и в нём if . У тебя точно также. О чём ты?
 

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Adam_Rockwell

Активный
143
26
АХахах, какая нахуй дрочь за производительность в КОМПИЛИРУЕМОМ приложении?)))))))))))))))))))))))))))))))))))))))))))))

я сказал, что твой код - не эффективен, почему - написал выше.

Всё что ты там "выше" написал, так это насмешки по поводу производительности в компилируемом приложении) Ну и про метки ещё какую-то глупость сказал. И про вложенные циклы споришь (как это влияет на производительность? тааа... каво это волнует)
ну так загугли, ну)
че я тебе должен объяснять, если ты самый умный)
SetTimer + Loop + if - если ты считаешь это вложенным циклом, то я не вижу в этом никакой неэффективности. Всё стабильно.
 

Randewoo

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

Adam_Rockwell

Активный
143
26
ну так и пиши на метках, кто тебе запрещает, че ты вообще докопался, я ранил твое чсв или че)
кроме тебя на метках еще новички вон пишут, и ниче, живут как-то
а по поводу компилируемых приложений - это бля угарно даже) ладно бы если ахк был интерпретируемым, тогда надо было бы дрочиться над оптимизацией памяти и т.д., но тут блять эта бандура компилируется)
короче ладно бывай)
А в чём проблема меток то? Чем они тебя смущают?
Разве между ними есть разница? (Извините уж, не ассемблировал, не знаю, но думаю что нет)
AutoHotKey:
Loop {
; code
}
и
AutoHotKey:
label:
; code
goto label
 

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А в чём проблема меток то? Чем они тебя смущают?
Разве между ними есть разница? (Извините уж, не ассемблировал, не знаю, но думаю что нет)
AutoHotKey:
Loop {
; code
}
и
AutoHotKey:
label:
; code
goto label
ну если ты юзаешь метки - значит не можешь выложить свой алгоритм в один цикл, логично же м)
 

Adam_Rockwell

Активный
143
26
ну если ты юзаешь метки - значит не можешь выложить свой алгоритм в один цикл, логично же м)
SetTimer потому-что работает на метках только. А использовать его удобно, т.к он создаёт мнимую многопоточность. Помимо проверки чата можно запускать другие циклы и они будут исправно работать.
 

Randewoo

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