StickMellos
Пользователь
- Сообщения
- 2
- Реакции
- 0
- Баллы
- 0
Читаем первый пост - биндеры не делаю.
Когда стр в ВК разблокируют?Есть пару вопросов
Читаем первый пост - биндеры не делаю.
Если автор темы не против, можешь написать в вк мне.Когда стр в ВК разблокируют?Есть пару вопросов
Никогда, пожизненноКогда стр в ВК разблокируют?Есть пару вопросов
Такие скрипты с радостью делаю)1-Stick_Mello
2-Наверно я прошу не возможное, но мне нужен скрипт который будет писать сколько часов я нахожусь в игре
3-Нет
#SingleInstance, Force
#Persistent
#NoEnv
#Include, %A_ScriptDir%\UDF.ahk
global session := false
global time := 0
while (!IsSAMPAvailable())
continue
addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре для {8b82f5}Stick Mello {bdbdbd}| От {8b82f5}muxui")
Loop {
if (session && WinActive("GTA:SA:MP"))
time++
Sleep, 1000
}
$~vkD::
{
if (isInChat() && !isDialogOpen()) {
Sleep, 120
chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
Sleep, 50
if (RegExMatch(chatInput, "i)^\/timechecker.?$")) {
addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре " (!session ? "{6de38a}включен" : "{ff5c74}отключен")), session := !session, session ? false : time := 0
} else if (RegExMatch(chatInput, "i)^\/time.?$")) {
if (!session) {
addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре {ff5c74}отключен{BDBDBD}. Для включения введите {8b82f5}/timechecker{BDBDBD}.")
} else {
addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}За последние сутки Вы провели в игре: {8b82f5}" (floor(time / 86400) > 0 ? floor(time / 86400) " дн. " : "") (floor(mod(time, 86400) / 3600) > 0 ? floor(mod(time, 86400) / 3600) " час. " : "") (floor(mod(time, 3600) / 60) > 0 ? floor(mod(time, 3600) / 60) " мин. " : "") (time > 60 ? mod(time, 60) : time) " сек.")
}
}
}
}
return
Что значит эта строчкаТакие скрипты с радостью делаю)
Вот, пожалуйста:
Единственное, попрошу @Lance Whisky скинуть скомпилированный скрипт.JavaScript:#SingleInstance, Force #Persistent #NoEnv #Include, %A_ScriptDir%\UDF.ahk global session := false global time := 0 while (!IsSAMPAvailable()) continue addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре для {8b82f5}Stick Mello {bdbdbd}| От {8b82f5}muxui") Loop { if (session && WinActive("GTA:SA:MP")) time++ Sleep, 1000 } $~vkD:: { if (isInChat() && !isDialogOpen()) { Sleep, 120 chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256) Sleep, 50 if (RegExMatch(chatInput, "i)^\/timechecker.?$")) { addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре " (!session ? "{6de38a}включен" : "{ff5c74}отключен")), session := !session, session ? false : time := 0 } else if (RegExMatch(chatInput, "i)^\/time.?$")) { if (!session) { addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}Чекер проведенного времени в игре {ff5c74}отключен{BDBDBD}. Для включения введите {8b82f5}/timechecker{BDBDBD}.") } else { addChatMessageEx(0xBDBDBD, "{BDBDBD}• {8b82f5}[AHK] {BDBDBD}За последние сутки Вы провели в игре: {8b82f5}" (floor(time / 86400) > 0 ? floor(time / 86400) " дн. " : "") (floor(mod(time, 86400) / 3600) > 0 ? floor(mod(time, 86400) / 3600) " час. " : "") (floor(mod(time, 3600) / 60) > 0 ? floor(mod(time, 3600) / 60) " мин. " : "") (time > 60 ? mod(time, 60) : time) " сек.") } } } } return
Управление:
Для активации скрипта надо ввести команду /timechecker
Далее, при каждом вводе /time в чате будет высвечиваться, сколько ты отыграл.
Скриншот:
Посмотреть вложение 770389
chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
Чтение последней введенной строки в чат. Также сработает, если поставить эту функцию в цикл и вводить в чат - будет лайв трансляция того, что ты вводишь.Что значит эта строчка
JavaScript:chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
А эта?Чтение последней введенной строки в чат. Также сработает, если поставить эту функцию в цикл и вводить в чат - будет лайв трансляция того, что ты вводишь.
if (RegExMatch(chatInput, "i)^\/timechecker.?$"))
А эта?
C++:if (RegExMatch(chatInput, "i)^\/timechecker.?$"))
Регулярные выражения нужны лишь для поиска условно-неопределенной строки, когда часть информации заведомо неизвестна.Кстати ты в RegExMatch хорошо разбираешься, а то я прочитал 2 раза справочник так и не понял зачем эта функция, и при каких условиях ее используют.
#SingleInstance, Force
#Persistent
result := ""
Loop, Read, % A_ScriptDir "\chatlog.txt"
{
if (RegExMatch(A_LoopReadLine, "O)^\[(?P<time>\d{2}:\d{2}:\d{2})\] Администратор (?P<admin>\w+) кикнул игрока (?P<player>\w+)\. Причина: (?P<reason>.*)$", o)) {
result .= "Строка #" A_Index " | " o["time"] " | " RegExReplace(o["admin"], "([A-Z])[a-z]+_(\w+)", "$1. $2") " кикнул " RegExReplace(o["player"], "([A-Z])[a-z]+_(\w+)", "$1. $2") " | " o["reason"] "`n"
}
}
MsgBox, 64, Результат, % "Результаты запроса по кикам:`n" result
Мда, трудновато для понимания. А как долго ты эту функцию разбирал?Регулярные выражения нужны лишь для поиска условно-неопределенной строки, когда часть информации заведомо неизвестна.
Простой пример с поиском в чат-логе всех киков от администрации:
Download on G-Drive - https://drive.google.com/file/d/1D1CLAxkoA2QhfbzXvSiUb5TMpjFrY3do/view?usp=sharingJavaScript:#SingleInstance, Force #Persistent result := "" Loop, Read, % A_ScriptDir "\chatlog.txt" { if (RegExMatch(A_LoopReadLine, "O)^\[(?P<time>\d{2}:\d{2}:\d{2})\] Администратор (?P<admin>\w+) кикнул игрока (?P<player>\w+)\. Причина: (?P<reason>.*)$", o)) { result .= "Строка #" A_Index " | " o["time"] " | " RegExReplace(o["admin"], "([A-Z])[a-z]+_(\w+)", "$1. $2") " кикнул " RegExReplace(o["player"], "([A-Z])[a-z]+_(\w+)", "$1. $2") " | " o["reason"] "`n" } } MsgBox, 64, Результат, % "Результаты запроса по кикам:`n" result
Но объяснять то, что я делаю, извини, не смогу, это очень долго рассказывать, а ты еще только учишься, поэтому ничего не поймешь. Со временем тебе придет понимание, как работают регулярки, если будет желание продолжать учиться, конечно-же.
Мне же, в свое время (еще лет 5 назад, на этапе начинания) помогла вот такая шпаргалка, друзья скинули:
И есть онлайн сервисы для проверок твоих регулярок, как вариант - https://regex101.com/r/OzjEDo/2
Это далеко не функция, это отдельное ветвление логики, регулярные выражения есть практически во всех языках программирования.Мда, трудновато для понимания. А как долго ты эту функцию разбирал?