- 310
- 172
Ты разделом ошибсяЗдравствуйте. Нужно сделать скрипт, который при вводе /offmembers брал из диалогового окна информацию по определенному человеку( например первая строка кликабельная) и зачитывал ее в чат
Ты разделом ошибсяЗдравствуйте. Нужно сделать скрипт, который при вводе /offmembers брал из диалогового окна информацию по определенному человеку( например первая строка кликабельная) и зачитывал ее в чат
Может хотя бы скриншот крашей, или сам код покажешь? Как мы сможем помочь? :thinking:Здарова братки. Недавно наткнулся на проблему с AHK. SAMP, после небольшого времени использования AHK скрипта, сам закрывает процесс или выводит окно с логом краша. Раньше всё было нормально. Вылетает именно в момент использовании команды, которая была закреплена на действие. Пример: Ввожу команду /st 128
идёт рп отыгровка и краш. Поможет кто?
Ещё, вопрос не в тему может быть, но выбивает процесс игры когда ставлю метку на карте, есть решение?
Маленькая просьба: Как сделать что бы скрипт останавливался по нажатию кнопки?.
Подключай UDF, соответствующий твоей версии сампа: https://blast.hk/threads/20318/
Добавь функу в UDF себе. Странно, вроде же там была.Попробовал и той и другой версии по твоей ссылке. Выдает теперь такую ошибку
IsDialogButton1Selected() {
dwPointer := GetDialogStructPtr()
if (ErrorLevel || !dwPointer)
return false
dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR1_OFFSET)
if (ErrorLevel) {
ErrorLevel := ERROR_READ_MEMORY
return false
}
selected := readMem(hGTA, dwPointer + SAMP_DIALOG_BUTTON_HOVERING_OFFSET, 1, "Byte")
if (ErrorLevel) {
ErrorLevel := ERROR_READ_MEMORY
return false
}
ErrorLevel := ERROR_OK
return selected
}
Сори, скриншотов нету, ибо частые вылеты без лога краша. Просто процесс игры сам закрывается.Может хотя бы скриншот крашей, или сам код покажешь? Как мы сможем помочь? :thinking:
$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3))
Return
Sleep 250
chatinput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
if RegExMatch(chatinput, "^/hist (\d{1,3})", var)
{
name := getPlayerNameById(var1)
SendChat("/history " name)
return
}
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/mh")
if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
Sendchat("/me внимательно осмотрел пациента")
Sleep, 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
Sleep, 1000
SendChat("/do Через плечо надета медицинская сумка.")
Sleep, 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
Sleep, 500
SendChat("/medhelp " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
Sleep, 1000
random, x, 1, 2, 3
if x = 1
{
x := SendChat("Скорее поправляйтесь.")
}
if x = 2
{
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
}
if x = 3
{
x := SendChat("Всего доброго, не болейте!")
}
if x = 4
{
x := SendChat("Своевременно проходите медосмотр")
}
Sleep, 2000
SendChat("кхм..")
return
}
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/h")
if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
Sendchat("/me внимательно осмотрел пациента")
Sleep, 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
Sleep, 1000
SendChat("/do Через плечо надета медицинская сумка.")
Sleep, 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
Sleep, 500
SendChat("/heal " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
Sleep, 1000
random, x, 1, 2, 3
if x = 1
{
x := SendChat("Скорее поправляйтесь.")
}
if x = 2
{
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
}
if x = 3
{
x := SendChat("Всего доброго, не болейте!")
}
if x = 4
{
x := SendChat("Своевременно проходите медосмотр")
}
Sleep, 2000
SendChat("кхм..")
return
}
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/mhb")
if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
Sendchat("/me внимательно осмотрел пациента")
Sleep, 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
Sleep, 1000
SendChat("/pay " out_pars1 " 120")
Sleep, 3500
SendChat("/do Через плечо надета медицинская сумка.")
Sleep, 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
Sleep, 500
SendChat("/medhelp " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
Sleep, 1000
random, x, 1, 2, 3
if x = 1
{
x := SendChat("Скорее поправляйтесь.")
}
if x = 2
{
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
}
if x = 3
{
x := SendChat("Всего доброго, не болейте!")
}
if x = 4
{
x := SendChat("Своевременно проходите медосмотр")
}
Sleep, 2000
SendChat("кхм..")
return
}
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/cs")
if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
SendChat("/do Кислородная маска висит над операционным столом на крючке.")
Sleep 2000
SendChat("/me надел кислородную маску на пациента")
Sleep, 2000
SendChat("/do На столе лежит поднос с хирургическими инструментами.")
Sleep, 2000
SendChat("/do На столе лежит спиртовой раствор.")
Sleep, 2000
SendChat("/me простерилизовал руки спиртовым раствором")
Sleep, 2000
SendChat("/me надел на руки перчатки")
Sleep, 2000
SendChat("/me взял в руки заполненный шприц с наркозом")
Sleep, 2000
SendChat("/me вколол шприц в вену пациента")
Sleep, 2000
SendChat("/me начал процесс операции по смене пола")
Sleep, 2000
SendChat("/do Прошло необходимое время для операции.")
Sleep, 2000
SendChat("/do Процесс операции закончен.")
Sleep, 2000
SendChat("/do " Nick " пришел в себя?")
Sleep, 500
SendChat("/changesex " out_pars1 " " out_pars2)
return
}
Return
Если ты юзаешь AHK Protector - то да, из-за него начинают ругаться антивирусники. Компилируй обычным способом через SciteКогда сжимаю ahk, скомпилированный в .ехe, антивирусник его блокирует как вредоносный.
Подскажите пожалуйста, из-за чего это может быть.
mpress.exe, компилятор, да и весь пк в целом проверял на вирусы Касперским. Сказал всё чисто.
В несжатом состоянии:
Посмотреть вложение 25345
В сжатом: (сжимал при отключённом антивируснике, т.к иначе он его сразу удаляет)
Посмотреть вложение 25343
Как раз таки с протектором всё идеально и без вирусов. Но мне нужно чтобы код был открытым в данной ситуации.Если ты юзаешь AHK Protector - то да, из-за него начинают ругаться антивирусники. Компилируй обычным способом через Scite
Помогите с RegExMatch пожалуйста нужно из этой строки вывести все после Nick_Name
Diamond Role Play | Emerald - Nick_Name level:3 money:264485$
RegExMatch(chatlog, "Diamond Role Play \| Emerald - (\w+) (level\:(\d+)) (money\:(\d+)\$)", var) ; var1 - Nick_Name, var2 - level:3, var3 - 3 (число в level), var4 - money:228228$, var5 - 228228 (число в money)
#IfWinActive GTA:SA:MP
#Include SAMP.ahk
:?:/fastrunon::
showGameText("FastRun:ON", 500, 1)
run:
Send {Space down}
Sleep 1
Send {Space up}
Sleep 5
goto run
return
:?:/fastrunoff::
showGameText("FastRun:OFF", 500, 1)
Send {Space up}
sleep 100
Reload
команда isInChat() проверяет, открыт ли чат. Юзай её в ifПривет. Я написал скрипт который ускоряет персонажа по конманде, но столкнулся с проблемой: скрипт работает в чате. Можете подсказать как сделать так чтобы не работал в чате?
Код:#IfWinActive GTA:SA:MP #Include SAMP.ahk :?:/fastrunon:: showGameText("FastRun:ON", 500, 1) run: Send {Space down} Sleep 1 Send {Space up} Sleep 5 goto run return :?:/fastrunoff:: showGameText("FastRun:OFF", 500, 1) Send {Space up} sleep 100 Reload
Специально для тебя переписал код нормально, если есть возможность, автору сего "творения" покажи, а то ну надо же из обезьян уже эволюционировать...Сори, скриншотов нету, ибо частые вылеты без лога краша. Просто процесс игры сам закрывается.
Код от которого вылетает игра:
Код:$~NumpadEnter:: $~Enter:: if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3)) Return Sleep 250 chatinput := readString(hGTA, dwSAMP + 0x12D8F8, 256) if RegExMatch(chatinput, "^/hist (\d{1,3})", var) { name := getPlayerNameById(var1) SendChat("/history " name) return } tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256) tempCmd := StrSplit(tempText, " ")[1] if (tempCmd == "/mh") if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars)) { Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich Sendchat("/me внимательно осмотрел пациента") Sleep, 1000 Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$") Sleep, 1000 SendChat("/do Через плечо надета медицинская сумка.") Sleep, 1000 SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick) Sleep, 500 SendChat("/medhelp " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина Sleep, 1000 random, x, 1, 2, 3 if x = 1 { x := SendChat("Скорее поправляйтесь.") } if x = 2 { x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.") } if x = 3 { x := SendChat("Всего доброго, не болейте!") } if x = 4 { x := SendChat("Своевременно проходите медосмотр") } Sleep, 2000 SendChat("кхм..") return } tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256) tempCmd := StrSplit(tempText, " ")[1] if (tempCmd == "/h") if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars)) { Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich Sendchat("/me внимательно осмотрел пациента") Sleep, 1000 Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$") Sleep, 1000 SendChat("/do Через плечо надета медицинская сумка.") Sleep, 1000 SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick) Sleep, 500 SendChat("/heal " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина Sleep, 1000 random, x, 1, 2, 3 if x = 1 { x := SendChat("Скорее поправляйтесь.") } if x = 2 { x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.") } if x = 3 { x := SendChat("Всего доброго, не болейте!") } if x = 4 { x := SendChat("Своевременно проходите медосмотр") } Sleep, 2000 SendChat("кхм..") return } tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256) tempCmd := StrSplit(tempText, " ")[1] if (tempCmd == "/mhb") if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars)) { Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich Sendchat("/me внимательно осмотрел пациента") Sleep, 1000 Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$") Sleep, 1000 SendChat("/pay " out_pars1 " 120") Sleep, 3500 SendChat("/do Через плечо надета медицинская сумка.") Sleep, 1000 SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick) Sleep, 500 SendChat("/medhelp " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина Sleep, 1000 random, x, 1, 2, 3 if x = 1 { x := SendChat("Скорее поправляйтесь.") } if x = 2 { x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.") } if x = 3 { x := SendChat("Всего доброго, не болейте!") } if x = 4 { x := SendChat("Своевременно проходите медосмотр") } Sleep, 2000 SendChat("кхм..") return } tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256) tempCmd := StrSplit(tempText, " ")[1] if (tempCmd == "/cs") if (RegExMatch(chatinput, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars)) { Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich SendChat("/do Кислородная маска висит над операционным столом на крючке.") Sleep 2000 SendChat("/me надел кислородную маску на пациента") Sleep, 2000 SendChat("/do На столе лежит поднос с хирургическими инструментами.") Sleep, 2000 SendChat("/do На столе лежит спиртовой раствор.") Sleep, 2000 SendChat("/me простерилизовал руки спиртовым раствором") Sleep, 2000 SendChat("/me надел на руки перчатки") Sleep, 2000 SendChat("/me взял в руки заполненный шприц с наркозом") Sleep, 2000 SendChat("/me вколол шприц в вену пациента") Sleep, 2000 SendChat("/me начал процесс операции по смене пола") Sleep, 2000 SendChat("/do Прошло необходимое время для операции.") Sleep, 2000 SendChat("/do Процесс операции закончен.") Sleep, 2000 SendChat("/do " Nick " пришел в себя?") Sleep, 500 SendChat("/changesex " out_pars1 " " out_pars2) return } Return
#SingleInstance Force
#Persistent
#NoEnv
#Include udf.ahk
#IfWinActive GTA:SA:MP
~Enter::
if IsInChat() and !IsDialogOpen()
{
sleep 200
chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
if RegExMatch(chatInput, "i)^\/hist (\d{1,3})", var)
{
name := getPlayerNameById(var1)
SendChat("/history " name)
}
else if RegExMatch(chatInput, "i)^\/mh\s+(\d{1,3})\s+(.{1,})$", out_pars)
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ")
Sendchat("/me внимательно осмотрел пациента")
sleep 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
sleep 1000
SendChat("/do Через плечо надета медицинская сумка.")
sleep 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
sleep 500
SendChat("/medhelp " out_pars1 " " out_pars2) ; out_pars1 - ID игрока, out_pars2 - причина
sleep 1000
random, x, 1, 4
if (x = 1)
x := SendChat("Скорее поправляйтесь.")
else if (x = 2)
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
else if (x = 3)
x := SendChat("Всего доброго, не болейте!")
else if (x = 4)
x := SendChat("Своевременно проходите медосмотр")
}
else if RegExMatch(chatInput, "i)^\/h\s+(\d{1,3})\s+(.{1,})$", out_pars)
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ")
Sendchat("/me внимательно осмотрел пациента")
sleep 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
sleep 1000
SendChat("/do Через плечо надета медицинская сумка.")
sleep 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
sleep 500
SendChat("/heal " out_pars1 " " out_pars2) ; out_pars1 - ID игрока, out_pars2 - причина
sleep 1000
random, x, 1, 4
if (x = 1)
x := SendChat("Скорее поправляйтесь.")
else if (x = 2)
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
else if (x = 3)
x := SendChat("Всего доброго, не болейте!")
else if (x = 4)
x := SendChat("Своевременно проходите медосмотр")
}
else if RegExMatch(chatInput, "i)^\/mhb\s+(\d{1,3})\s+(.{1,})$", out_pars)
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ")
Sendchat("/me внимательно осмотрел пациента")
sleep 1000
Sendchat("/todo Поставив пациенту диагноз*Я выпишу вам лекарство. Его цена: " out_pars2 "$")
sleep 1000
SendChat("/pay " out_pars1 " 120")
sleep 3500
SendChat("/do Через плечо надета медицинская сумка.")
sleep 1000
SendChat("/me открыв сумку, достал от туда лекарство и передал его " Nick)
sleep 500
SendChat("/medhelp " out_pars1 " " out_pars2) ; out_pars1 - ID игрока, out_pars2 - причина
sleep 1000
random, x, 1, 4
if (x = 1)
x := SendChat("Скорее поправляйтесь.")
else if (x = 2)
x := SendChat("При возникновении вопросов, обращайтесь на регистратуру.")
else if (x = 3)
x := SendChat("Всего доброго, не болейте!")
else if (x = 4)
x := SendChat("Своевременно проходите медосмотр")
}
else if RegExMatch(chatInput, "i)^\/cs\s+(\d{1,3})\s+(.{1,})$", out_pars)
{
Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ")
SendChat("/do Кислородная маска висит над операционным столом на крючке.")
Sleep 2000
SendChat("/me надел кислородную маску на пациента")
sleep 2000
SendChat("/do На столе лежит поднос с хирургическими инструментами.")
sleep 2000
SendChat("/do На столе лежит спиртовой раствор.")
sleep 2000
SendChat("/me простерилизовал руки спиртовым раствором")
sleep 2000
SendChat("/me надел на руки перчатки")
sleep 2000
SendChat("/me взял в руки заполненный шприц с наркозом")
sleep 2000
SendChat("/me вколол шприц в вену пациента")
sleep 2000
SendChat("/me начал процесс операции по смене пола")
sleep 2000
SendChat("/do Прошло необходимое время для операции.")
sleep 2000
SendChat("/do Процесс операции закончен.")
sleep 2000
SendChat("/do " Nick " пришел в себя?")
sleep 500
SendChat("/changesex " out_pars1 " " out_pars2)
}
}
return
Врятли ему кто-то скидывал, а вот копировать не каждый сможет.Блин что за умственно отсталый тебе код скинул, это просто убожество.
Специально для тебя переписал всю эту бредятину, если есть возможность, автору кода покажи, а то ну надо же из обезьян уже эволюционировать