Вопросы по 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)
Вот это вот - дичь, как я думаю.
 
  • Нравится
Реакции: ProstoTakChelik

degrando

Известный
362
127
Огонь.
Прочитал, попробовал - не сделал.

Строка с чатлога : [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)
Вот это вот - дичь, как я думаю.
Регулярку скину +- через час
 

Nail_Blade

Новичок
2
0
Пытался найти самостоятельно, но так и не раздобыл тут информацию которую мне нужно
Будьте добры пожалуйста помогите написать функцию которая будет получать ID ближайшего игрока который находится именно в транспорте
 

degrando

Известный
362
127
Пытался найти самостоятельно, но так и не раздобыл тут информацию которую мне нужно
Будьте добры пожалуйста помогите написать функцию которая будет получать ID ближайшего игрока который находится именно в транспорте
NearPlayerInCar(dist) - Определяет игрока в автомобиле рядом
 

ddq

Участник
105
3
Всем хай. Мне нужно сделать скрипт, который по нажатию ф3 парсит строку из чата (последнюю, и именно которую я укажу) потом запускает таймер в 15673 миллисекунд и в итоге нажимает Enter. Потом завершает всю последовательность (типо ещё раз нажимаешь ф3 и всё по кругу) Помогите пожалуйста
 

degrando

Известный
362
127
Помогите пожалуйста. Как сделать в автоответчике в отдельном текстовом файле заготовки, которые в любой момент можно поменять
например

Если слово нашлось в чатлоге выдаёт ответ, что стоит после знака =

Очень надеюсь на вашу помощь, получается лишь вывести 1е слово, остальное не пашет.
Заказывай, просто так никто не сделает.
Ребят, можете скинуть aimbot AHK? Буду благодарен.
ты псих?
 
  • Нравится
Реакции: BASS_DEVSOFTWARE

OPD

Новичок
1
0
Нужна такая тема, чтобы при появлении в чате в новой строке слов "Vasya_Pupkin игроку" писалась какая-то статистика. Т.е для того, чтоб подсчитать, сколько ответов на репорт в сампе я сделал. Подскажите, как написать, пожалуйста.

Всё, что получилось:
#Include samp.ahk
#IfWinActive GTA:SA:MP

ChatLog = C:\Users\User\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
{
lastline := GetNewLine(ChatLog)
;Vasya_Pupkin игроку
If expression !=
{
 

KhanWarden

Участник
42
3
АвтоХотГей:
#Include SAMP_UDF.ahk
#SingleInstance Force
#Persistent
#UseHook
#NoEnv

global position ; cоздание пустой глобальной переменной для хранение звания

IniRead, position, settings.ini, Basic, position ; читаем звание из настроек IniRead, название переменной которую ты будешь использовать, название файла, название раздела, название пункта


!1::
{
    position := ( position == "ERROR" ) ? "{FF3333}Установить." : "{228228}" position ; переменной с рангом назначаем значение - если перемення равна - ERROR(что значит что она пустая, файла настроек нет) то делаем ей значение "Установить", для красоты, если она не пустая, просто меняем ей цвет на зелёный
    ShowDialog(2, "Настройки", "Должность: " position, "Хорошо") ; Сам диалог в который просто передаёшь значение переменной, а значение появилось выше
    result := LineResult() ; даём возможность проверить какой пункт диалога мы выбрали
    if (result == 1) ; если первый
    {
        ShowDialog(1, "Настройка", "Введите новую должность", "Хорошо")  ; открываем диалог с изменением
        while (!GetKeyState("Enter", "P") && !GetKeyState("Esc", "P"))  ; если не нажат энтер и не нажат еск
            continue ; продолжаем
        if (GetKeyState("Enter", "P")) ; если нажимаем энтер
        {
            Sleep, 200
            chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)  ; читаем содержимое диалога в который ввели новое звание( читаем с памяти )
            Sleep, 100
            IniWrite, %chatInput%, settings.ini, Basic, position ; записываем новое звание в отдельный файл настроек ( ини ) \\\ IniWrite, название переменной которую хочешь записать ( в процентах %test% ), название файла, название раздела, название пункта
            global position := chatInput ; глобальной переменной тоже ставим новое звание чтобы можно было видеть его в диалоге не перезапуская скрипт
            addChatMessageEx("FFFFFF", "Вы установили новую должность {e1eaea}" chatInput) ; оповещаем игрока
        }
    }
return
}
Вот код короче. Там мне человек написал. Тут когда вписываешь в диалог что-то, то потом можно использовать эту переменную в коде, а я хочу чтобы должности можно было выбирать. То есть при нажатии Алт+1 выходил диалог > Должности: Менеджер, Инструктор, Экзаментатор и т.д. Как сделать так? И потом короче когда выбираешь должность, это сохраняется в .ini файле и в переменной. Помогите прошу.
 

DaunVkvadrate

Новичок
1
0
Нужна такая тема, чтобы при появлении в чате в новой строке слов "Vasya_Pupkin игроку" писалась какая-то статистика. Т.е для того, чтоб подсчитать, сколько ответов на репорт в сампе я сделал. Подскажите, как написать, пожалуйста.

Всё, что получилось:
#Include samp.ahk
#IfWinActive GTA:SA:MP

ChatLog = C:\Users\User\Documents\GTA San Andreas User Files\SAMP\chatlog.txt

loop
{
lastline := GetNewLine(ChatLog)
;Vasya_Pupkin игроку
If expression !=
{

Всм "какая-то статистика" если на сервере нет статистики адм/хелпера то это никак не сделаешь
 

Double Tap Inside

Известный
Проверенный
1,897
1,245
Попробуйте вникнуть в ситуацию:

У чувака Windows 7 64bit ппрфисиреаотеая, 4 гига оперативы.
Он установил себе АХК 1.1 (ansi 32)
Скрипт запускается, но не может прочитать файл с помощью Fileread или даже FileExists().
Я уверен, что путь к файлу точный, проверил через msgbox (да и у меня самого то работает).
Контроль учетных записей снижен в самый низ. Антивируса нет, даже Защитник Windows отключен.
В правах доступа во вкладке безопасность - есть полный доступ.
У него только диск C:, gta валяется в папке C:\games...
Пробовал закинуть скрипт на флешку и оттуда запустить - результат тот же, прочитать файл лежащий рядом не удалось, хоть путь верный передается.
Удалял и переустанавливал ahk - был у меня случай, когда установленыый ахк интерпритатор каким то образом мешал работать скомпилированным EXE, но
У него даже исходик не может прочитать файл через Fileread.

Я в недоумении что у него с виндой. Есть догадки, что там были применены какие то ТВИКИ ВИНДЫ, и теперь ахк или ахк-екзе нормально не работает.
Повторюсь, все пути проверены. У меня работает на такой же версии виндовс и с такой же битностью и с таким же ахк-интерпритаторм. Как исходик работает так и ЕХЕ.

Может у кого-то есть светлая мысль, потому что чувак винду переустановить не сможет.
 

index

Известный
127
83
Попробуйте вникнуть в ситуацию:

У чувака Windows 7 64bit ппрфисиреаотеая, 4 гига оперативы.
Он установил себе АХК 1.1 (ansi 32)
Скрипт запускается, но не может прочитать файл с помощью Fileread или даже FileExists().
Я уверен, что путь к файлу точный, проверил через msgbox (да и у меня самого то работает).
Контроль учетных записей снижен в самый низ. Антивируса нет, даже Защитник Windows отключен.
В правах доступа во вкладке безопасность - есть полный доступ.
У него только диск C:, gta валяется в папке C:\games...
Пробовал закинуть скрипт на флешку и оттуда запустить - результат тот же, прочитать файл лежащий рядом не удалось, хоть путь верный передается.
Удалял и переустанавливал ahk - был у меня случай, когда установленыый ахк интерпритатор каким то образом мешал работать скомпилированным EXE, но
У него даже исходик не может прочитать файл через Fileread.

Я в недоумении что у него с виндой. Есть догадки, что там были применены какие то ТВИКИ ВИНДЫ, и теперь ахк или ахк-екзе нормально не работает.
Повторюсь, все пути проверены. У меня работает на такой же версии виндовс и с такой же битностью и с таким же ахк-интерпритаторм. Как исходик работает так и ЕХЕ.

Может у кого-то есть светлая мысль, потому что чувак винду переустановить не сможет.
Может, проверить что A_LastError выводит после попыток прочитать файл?
 
  • Нравится
Реакции: Double Tap Inside

Double Tap Inside

Известный
Проверенный
1,897
1,245
Может, проверить что A_LastError выводит после попыток прочитать файл?

На компе чувака вот такое:
после fileread в A_LastError "2"
после fileExists() в A_LastError "2"

когда я на своем компе удалил файл, который надо прочитать - такая же ситуация - у меня ошибка "2".
Когда я файл кладу рядом со скриптом - ошибка "0" - ноль, я так понял нет ошибки.

ErrorLevel
2 - file is locked or inaccessible; Файл заблокирован или недоступен.
 
Последнее редактирование:

|DEVIL|

Известный
359
272
Приветствую. Ломаю голову насчёт аналогов sleep, задача моя сделать так, чтобы красный и белый отсчёты считали одновременно, но в итоге получается так что сначала считает красный отсчёт, далее когда ввожу команду красный останавливается, считает белый, когда белый досчитывает, красный продолжает. Не подскажите как реализовать одновременный отсчёт?

Код:
#include UDF.ahk

:?:/piarf::
addChatMessage("{FF0000}10")
sleep 1000
addChatMessage("{FF0000}9")
sleep 1000
addChatMessage("{FF0000}8")
sleep 1000
addChatMessage("{FF0000}7")
sleep 1000
addChatMessage("{FF0000}6")
sleep 1000
addChatMessage("{FF0000}5")
sleep 1000
addChatMessage("{FF0000}4")
sleep 1000
addChatMessage("{FF0000}3")
sleep 1000
addChatMessage("{FF0000}2")
sleep 1000
addChatMessage("{FF0000}1")

return

:?:/piarv::
addChatMessage("{FFFFFF}10")
sleep 1000
addChatMessage("{FFFFFF}9")
sleep 1000
addChatMessage("{FFFFFF}8")
sleep 1000
addChatMessage("{FFFFFF}7")
sleep 1000
addChatMessage("{FFFFFF}6")
sleep 1000
addChatMessage("{FFFFFF}5")
sleep 1000
addChatMessage("{FFFFFF}4")
sleep 1000
addChatMessage("{FFFFFF}3")
sleep 1000
addChatMessage("{FFFFFF}2")
sleep 1000
addChatMessage("{FFFFFF}1")

return
 

BASS_DEVSOFTWARE

Известный 🇺🇦
Друг
264
567
Приветствую. Ломаю голову насчёт аналогов sleep, задача моя сделать так, чтобы красный и белый отсчёты считали одновременно, но в итоге получается так что сначала считает красный отсчёт, далее когда ввожу команду красный останавливается, считает белый, когда белый досчитывает, красный продолжает. Не подскажите как реализовать одновременный отсчёт?

Код:
#include UDF.ahk

:?:/piarf::
addChatMessage("{FF0000}10")
sleep 1000
addChatMessage("{FF0000}9")
sleep 1000
addChatMessage("{FF0000}8")
sleep 1000
addChatMessage("{FF0000}7")
sleep 1000
addChatMessage("{FF0000}6")
sleep 1000
addChatMessage("{FF0000}5")
sleep 1000
addChatMessage("{FF0000}4")
sleep 1000
addChatMessage("{FF0000}3")
sleep 1000
addChatMessage("{FF0000}2")
sleep 1000
addChatMessage("{FF0000}1")

return

:?:/piarv::
addChatMessage("{FFFFFF}10")
sleep 1000
addChatMessage("{FFFFFF}9")
sleep 1000
addChatMessage("{FFFFFF}8")
sleep 1000
addChatMessage("{FFFFFF}7")
sleep 1000
addChatMessage("{FFFFFF}6")
sleep 1000
addChatMessage("{FFFFFF}5")
sleep 1000
addChatMessage("{FFFFFF}4")
sleep 1000
addChatMessage("{FFFFFF}3")
sleep 1000
addChatMessage("{FFFFFF}2")
sleep 1000
addChatMessage("{FFFFFF}1")

return
АХК однопоточный. Можно использовать settimer.