AHK | Как сделать, по типу в MVD helper {param1}

NetyEgo

Участник
Автор темы
164
10
Версия SA-MP
  1. CR-MP 0.3.7
Я хочу сделать скрипт схожий на MVD Helper: по типу вёл команду /pass {ID} и там всё автоматом отыграло, решил поискать как сделать, чтобы в первой строке было написано и в последней тоже самое.
Скрипт:

#Hotstring EndChars `n

:?*:/pass`n::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, /me достал паспорт и передал человеку напротив{Enter}
Sleep 3000
Sendinput, {F6}/pass{space}
Return

Чтобы активировать этот скрипт, я прописываю в чат /pass и жму Enter, всё отыгрывается и потом у меня в чате пишет /pass (И я потом вожу ID), а я хочу добавить ещё чтобы писать /pass 323(ID) и чтобы потом отыграло передачу и автоматом показала паспорт ID 323.
 

NetyEgo

Участник
Автор темы
164
10
Где я буду писать {param}, то там я должен вести ID, а где {param1} само ведётся что было вписано в {param}
Сделаю скрипт попроще:

#Hotstring EndChars `n

:?*:/cuff`n::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, /me достал наручники и надел на человека напротив{Enter}
Sleep 3000
Sendinput, {F6}/cuff {param}{space}
Sleep 3000
Sendinput, {F6}/me взял руку человека и повёл его{Enter}
Sleep 3000
Sendinput, {F6}/gotome {param1}{space}
return
 

CaJlaT

07.11.2024 14:55
Модератор
2,833
2,670
Где я буду писать {param}, то там я должен вести ID, а где {param1} само ведётся что было вписано в {param}
Сделаю скрипт попроще:

#Hotstring EndChars `n

:?*:/cuff`n::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, /me достал наручники и надел на человека напротив{Enter}
Sleep 3000
Sendinput, {F6}/cuff {param}{space}
Sleep 3000
Sendinput, {F6}/me взял руку человека и повёл его{Enter}
Sleep 3000
Sendinput, {F6}/gotome {param1}{space}
return
ща сделойу...

ничоси многа...

AutoHotKey:
#include CRMPUDF.ahk ; !!!ВАЖНО!!! или кидаешь ЮДФ в одну папку со скриптом или указываешь точный путь к ЮДФУ, например: C:\Users\user\Desktop\CRMPUDF.ahk (Рабочий стол)

$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/test") ; меняй test на свою команду активации
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ; если нашёл id после /test, то его записывает в переменную string1
    {
        SendMessage, 0x50,, 0x4190419,, A
        SendChat("/me достал наручники и надел на человека напротив")
        Sleep 3000
        Sendinput, {F6}/cuff {param}{space};не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/cuff " string1 "")
        Sleep 3000
        SendChat("/me взял руку человека и повёл его")
        Sleep 3000
        Sendinput, {F6}/gotome {param1}{space} ;не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/gotome " string1 "")
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[AHK] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [ID].")
    ;Если не нашёл ID после команды
    return
}
return
Вот СсылОчка на CRMP-UDF, если у тебя его нет (кликабельно)
 
  • Нравится
Реакции: NetyEgo

degrando

Известный
361
127
ща сделойу...


ничоси многа...

AutoHotKey:
#include CRMPUDF.ahk ; !!!ВАЖНО!!! или кидаешь ЮДФ в одну папку со скриптом или указываешь точный путь к ЮДФУ, например: C:\Users\user\Desktop\CRMPUDF.ahk (Рабочий стол)

$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/test") ; меняй test на свою команду активации
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ; если нашёл id после /test, то его записывает в переменную string1
    {
        SendMessage, 0x50,, 0x4190419,, A
        SendChat("/me достал наручники и надел на человека напротив")
        Sleep 3000
        Sendinput, {F6}/cuff {param}{space};не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/cuff " string1 "")
        Sleep 3000
        SendChat("/me взял руку человека и повёл его")
        Sleep 3000
        Sendinput, {F6}/gotome {param1}{space} ;не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/gotome " string1 "")
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[AHK] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [ID].")
    ;Если не нашёл ID после команды
    return
}
return
Вот СсылОчка на CRMP-UDF, если у тебя его нет (кликабельно)
злой ты надо было высосать с него 100р
А нах так сложно?
AutoHotKey:
~Enter::
if (IsInChat() && !IsDialogOpen()) {
blockChatInput()
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if (regexmatch(chatInput, "/tvoyacmd ([0-9]*))", tvoyacmd)) { ; команда /tvoyacmd
sendchat("Тут отыгровка")
sendchat("/cmd " tvoyacmd1 "")
}
else {
if (!isDialogOpen() && chatInput != "") {
unBlockChatInput()
SendChat(chatInput)
writeString(hGTA, dwAddress, "")
}
}
}
return
 

CaJlaT

07.11.2024 14:55
Модератор
2,833
2,670
злой ты надо было высосать с него 100р
А нах так сложно?
AutoHotKey:
~Enter::
if (IsInChat() && !IsDialogOpen()) {
blockChatInput()
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if (regexmatch(chatInput, "/tvoyacmd ([0-9]*))", tvoyacmd)) { ; команда /tvoyacmd
sendchat("Тут отыгровка")
sendchat("/cmd " tvoyacmd1 "")
}
else {
if (!isDialogOpen() && chatInput != "") {
unBlockChatInput()
SendChat(chatInput)
writeString(hGTA, dwAddress, "")
}
}
}
return
Злой ты, раз за это 100р берёшь, а сложно так, чтобы если не ввёл id выводило ошибку
 

NetyEgo

Участник
Автор темы
164
10
AutoHotKey:
#include CRMPUDF.ahk ; !!!ВАЖНО!!! или кидаешь ЮДФ в одну папку со скриптом или указываешь точный путь к ЮДФУ, например: C:\Users\user\Desktop\CRMPUDF.ahk (Рабочий стол)

$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/test") ; меняй test на свою команду активации
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ; если нашёл id после /test, то его записывает в переменную string1
    {
        SendMessage, 0x50,, 0x4190419,, A
        SendChat("/me достал наручники и надел на человека напротив")
        Sleep 3000
        Sendinput, {F6}/cuff {param}{space};не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/cuff " string1 "")
        Sleep 3000
        SendChat("/me взял руку человека и повёл его")
        Sleep 3000
        Sendinput, {F6}/gotome {param1}{space} ;не знаю, нужно ли это автоматом отправлять серверу, поэтому оставил как было
        ;если нужно отправить без твоего участия(автоматом), то замени строку выше на: SendChat("/gotome " string1 "")
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[AHK] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [ID].")
    ;Если не нашёл ID после команды
    return
}
return


Так скрипт запустился, и я вставил команду: (tempCmd == "/cuf")
Пишу в чат /cuf и пишет команда не обнаружена.
Я что-то не так делаю?
Просто не шарю в скриптах.
Изменено: я водил и просто /cuf и водил /cuf 4
и ничего.
 
Последнее редактирование:

NetyEgo

Участник
Автор темы
164
10
AHK:
#include CRMPUDF.ahk ;

$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/doce") ;
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ;
    {
        SendMessage, 0x50,, 0x4190419,, A
        SendChat("/me достал паспорт из кармана и передал его")
        Sleep 3000
        SendChat("/pass " string1 "")
        ;
        Sleep 3000
        SendChat("/me взял трудовую книгу из кармана и передал его")
        Sleep 3000
        SendChat("/showtk " string1 "")
        ;
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[AHK] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [ID].")
    ;
    return
}
return




вот скрипт который у меня в АХК.
"/doce" это выдуманная команда, я пишу /doce в чат и ничего: "Команда не обнаружена".
Я жму Enter и пишу /doce и снова жму Enter. ( Если зависит от активации)
CRMPUPF в одной папке.
Пробелы есть. просто т
 

CaJlaT

07.11.2024 14:55
Модератор
2,833
2,670
AHK:
#include CRMPUDF.ahk ;

$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/doce") ;
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ;
    {
        SendMessage, 0x50,, 0x4190419,, A
        SendChat("/me достал паспорт из кармана и передал его")
        Sleep 3000
        SendChat("/pass " string1 "")
        ;
        Sleep 3000
        SendChat("/me взял трудовую книгу из кармана и передал его")
        Sleep 3000
        SendChat("/showtk " string1 "")
        ;
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[AHK] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [ID].")
    ;
    return
}
return




вот скрипт который у меня в АХК.
"/doce" это выдуманная команда, я пишу /doce в чат и ничего: "Команда не обнаружена".
Я жму Enter и пишу /doce и снова жму Enter. ( Если зависит от активации)
CRMPUPF в одной папке.
Пробелы есть. просто т
нет, оно должно работать после нажатия на ентр (ты ввёл в чат и нажал на ентр)
А не работает наверно по тому, что адреса в крмп другие
ещё может не работать из-за этого...

AutoHotKey:
; ######################
; #### CRMP UDF R1 #####
; # CRMP Version: 0.3e #
; ######################
; Переводил: Revalto
; SAMPUDF -> CRMPUDF
; ####################
 

NetyEgo

Участник
Автор темы
164
10
нет, оно должно работать после нажатия на ентр (ты ввёл в чат и нажал на ентр)
А не работает наверно по тому, что адреса в крмп другие
ещё может не работать из-за этого...

AutoHotKey:
; ######################
; #### CRMP UDF R1 #####
; # CRMP Version: 0.3e #
; ######################
; Переводил: Revalto
; SAMPUDF -> CRMPUDF
; ####################

То есть невозможно?
 

CaJlaT

07.11.2024 14:55
Модератор
2,833
2,670
Тебе для сампа? Или для крмп?
1584116734307.png