Нужна помощь с созданием АХК биндера для сампа.

IMG-PRO

Известный
Автор темы
3
0
Я могу показаться наглым, но помогите люди добрые. Дайти пожалуйста либо код, либо видео урок какой нибудь по теме. ( ЛУЧШЕ ВИДЕО УРОК )
1.Это как сделать выделение персонажа ( то есть допустим прицелился на игрока нажимаем ПКМ+Z и появляется окно с биндами )
2. Как сделать само это окно ( допустим мне нужно выполнить выдачу лицензии. не на команды выполнять бинды, а вызвал окно и там список этих биндов )
3.Как сделать так чтобы текст бинда можно было отменить или же продолжить ( допустим я прошу показать мне паспорт и бинд останавливается пока я не нажму кнопку для продолжения PageUP ( так чтобы если положительный результат бинд продолжился ) либо я нажму отмену PageDown ( и бинд выдаёт отрицательный вариант типа вы нам не подходите ) Объяснил корявенько, но те кто шарит в этом поймет меня. Заранее спасибо за помощь)
4.И как сделать изменяемый текст в бинде( То есть чтобы были настройки ника, ранга и т.д )
 
Последнее редактирование:

Kvisk

Известный
212
223
ПКМ + Z - открыть диалог
Home - Перезапуск скрипта
Тут вроде не сложно, думаю разберёшься и сделаешь то что нужно тебе, если что спрашивай.

AutoHotKey:
#NoEnv
#Include samdUDF.ahk

; Это цвета, можешь изменить их по своему вкусу *html color*
global clr_ahk := "0070BA" ; Тёмно-бирюзовый
global clr_text := "BDBDBD" ; Серый
global clr_click := "FF3333" ; Светло-красный
global clr_dialog := "C0C0C0" ; Светло-серый

; Это строки диалога. Если нужны свои, добавляй по аналогии
textDialog =
(
1. {%clr_dialog%}Поприветствовать
2. {%clr_dialog%}Показать паспорт
3. {%clr_dialog%}Спросить паспорт
)

~RButton & z::
PlayerID := getIdByPed(getTargetPed())
PlayerName := RegExReplace(getPlayerNameById(PlayerID), "_", " ")
if (PlayerID = -1) {
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Ошибка! {" clr_text "}Вы не захватили игрока.")
    return
}
ShowDialog("2", "{" clr_ahk "}[AHK Support]: {FFFF00}" getPlayerNameById(PlayerID) "[" PlayerID "]", textDialog, "OK")
tempLine := NumberLine()
if (!tempLine)
    return
if tempLine = 1
    SendChat("Добрый день " PlayerName " чем могу помочь?")
if tempLine = 2
    SendChat("/showpass " PlayerID)
if (tempLine = 3) {
    SendChat("Можно посмотреть ваши документы?")
    sleep, 1100
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Нажмите {" clr_click "}Page UP {" clr_text "}для продолжения или {" clr_click "}Page Down {" clr_text "}для остановки.")
    if (!Up_or_Down()) {
        addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Вы нажали {" clr_click "}Page Down, {" clr_text "}действие отменено.")
        return
    }
    SendChat("Хорошо, спасибо.")
    sleep, 1100
    SendChat("/me достал из под стола пакет лицензий после подписал их и передал")
    sleep, 1100
    SendChat("/getlicence " PlayerID " права") ; я хз как именно продают лицензии
}
return
Home::
addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Принудительный {" clr_text "}перезапуск скрипта!")
sleep, 300
reload
return

; это можешь не трогать это вспомогательные функции
NumberLine() {
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while (isDialogOpen())
        continue
    if (GetKeyState("Esc", "P"))
        return false
    return getDialogLineNumber()
}
Up_or_Down() {
    loop {
        if GetKeyState("sc149", "P") ; Page Up
            return true
        if GetKeyState("sc151", "P") ; Page Down
            return false
    }
}

на счёт 4 твоего пункта, вообще не понял
 
Последнее редактирование:
  • Нравится
Реакции: IMG-PRO

IMG-PRO

Известный
Автор темы
3
0
ПКМ + Z - открыть диалог
Home - Перезапуск скрипта
Тут вроде не сложно, думаю разберёшься и сделаешь то что нужно тебе, если что спрашивай.

AutoHotKey:
#NoEnv
#Include samdUDF.ahk

; Это цвета, можешь изменить их по своему вкусу *html color*
global clr_ahk := "0070BA" ; Тёмно-бирюзовый
global clr_text := "BDBDBD" ; Серый
global clr_click := "FF3333" ; Светло-красный
global clr_dialog := "C0C0C0" ; Светло-серый

; Это строки диалога. Если нужны свои, добавляй по аналогии
textDialog =
(
1. {%clr_dialog%}Поприветствовать
2. {%clr_dialog%}Показать паспорт
3. {%clr_dialog%}Спросить паспорт
)

~RButton & z::
PlayerID := getIdByPed(getTargetPed())
PlayerName := RegExReplace(getPlayerNameById(PlayerID), "_", " ")
if (PlayerID = -1) {
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Ошибка! {" clr_text "}Вы не захватили игрока.")
    return
}
ShowDialog("2", "{" clr_ahk "}[AHK Support]: {FFFF00}" getPlayerNameById(PlayerID) "[" PlayerID "]", textDialog, "OK")
tempLine := NumberLine()
if (!tempLine)
    return
if tempLine = 1
    SendChat("Добрый день " PlayerName " чем могу помочь?")
if tempLine = 2
    SendChat("/showpass " PlayerID)
if (tempLine = 3) {
    SendChat("Можно посмотреть ваши документы?")
    sleep, 1100
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Нажмите {" clr_click "}Page UP {" clr_text "}для продолжения или {" clr_click "}Page Down {" clr_text "}для остановки.")
    if (!Up_or_Down()) {
        addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Вы нажали {" clr_click "}Page Down, {" clr_text "}действие отменено.")
        return
    }
    SendChat("Хорошо, спасибо.")
    sleep, 1100
    SendChat("/me достал из под стола пакет лицензий после подписал их и передал")
    sleep, 1100
    SendChat("/getlicence " PlayerID " права") ; я хз как именно продают лицензии
}
return
Home::
addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Принудительный {" clr_text "}перезапуск скрипта!")
sleep, 300
reload
return

; это можешь не трогать это вспомогательные функции
NumberLine() {
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while (isDialogOpen())
        continue
    if (GetKeyState("Esc", "P"))
        return false
    return getDialogLineNumber()
}
Up_or_Down() {
    loop {
        if GetKeyState("sc149", "P") ; Page Up
            return true
        if GetKeyState("sc151", "P") ; Page Down
            return false
    }
}

на счёт 4 твоего пункта, вообще не понял
Спасибо за помощь дружище.
Я в 4 пункте имел ввиду как сделать настройки по запуску. Что-то вроде GUI. Я не помню как сделать именно настройки, чтобы считывались и сохранялись при изменение.
 

Бородач

Новичок
28
1
ПКМ + Z - открыть диалог
Home - Перезапуск скрипта
Тут вроде не сложно, думаю разберёшься и сделаешь то что нужно тебе, если что спрашивай.

AutoHotKey:
#NoEnv
#Include samdUDF.ahk

; Это цвета, можешь изменить их по своему вкусу *html color*
global clr_ahk := "0070BA" ; Тёмно-бирюзовый
global clr_text := "BDBDBD" ; Серый
global clr_click := "FF3333" ; Светло-красный
global clr_dialog := "C0C0C0" ; Светло-серый

; Это строки диалога. Если нужны свои, добавляй по аналогии
textDialog =
(
1. {%clr_dialog%}Поприветствовать
2. {%clr_dialog%}Показать паспорт
3. {%clr_dialog%}Спросить паспорт
)

~RButton & z::
PlayerID := getIdByPed(getTargetPed())
PlayerName := RegExReplace(getPlayerNameById(PlayerID), "_", " ")
if (PlayerID = -1) {
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Ошибка! {" clr_text "}Вы не захватили игрока.")
    return
}
ShowDialog("2", "{" clr_ahk "}[AHK Support]: {FFFF00}" getPlayerNameById(PlayerID) "[" PlayerID "]", textDialog, "OK")
tempLine := NumberLine()
if (!tempLine)
    return
if tempLine = 1
    SendChat("Добрый день " PlayerName " чем могу помочь?")
if tempLine = 2
    SendChat("/showpass " PlayerID)
if (tempLine = 3) {
    SendChat("Можно посмотреть ваши документы?")
    sleep, 1100
    addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Нажмите {" clr_click "}Page UP {" clr_text "}для продолжения или {" clr_click "}Page Down {" clr_text "}для остановки.")
    if (!Up_or_Down()) {
        addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_text "}Вы нажали {" clr_click "}Page Down, {" clr_text "}действие отменено.")
        return
    }
    SendChat("Хорошо, спасибо.")
    sleep, 1100
    SendChat("/me достал из под стола пакет лицензий после подписал их и передал")
    sleep, 1100
    SendChat("/getlicence " PlayerID " права") ; я хз как именно продают лицензии
}
return
Home::
addChatMessageEx(0x clr_ahk, "[AHK Support]: {" clr_click "}Принудительный {" clr_text "}перезапуск скрипта!")
sleep, 300
reload
return

; это можешь не трогать это вспомогательные функции
NumberLine() {
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while (isDialogOpen())
        continue
    if (GetKeyState("Esc", "P"))
        return false
    return getDialogLineNumber()
}
Up_or_Down() {
    loop {
        if GetKeyState("sc149", "P") ; Page Up
            return true
        if GetKeyState("sc151", "P") ; Page Down
            return false
    }
}

на счёт 4 твоего пункта, вообще не понял
1665092823212.png
1665092871357.png

ПОМОГИ
 

Kvisk

Известный
212
223
Для работы скрипта нужна библиотека sampUDF. Первая ошибка это попытка её подключения, а её у тебя нет. Вторая ошибка это использование функции из библиотеки, естественно скрипт не знает что это за функция.

https://www.blast.hk/threads/20318/ - Вот тема, изучай.
 
  • Нравится
Реакции: Бородач