AutoHotKey+Samp UDF

Статус
В этой теме нельзя размещать новые ответы.

Magov1733

Новичок
Автор темы
20
0
Доброй ночи. Помогите сделать скрипт на увольнение игрока из организации.
Пример: пишем /uninvite id причину и скрипт автоматически отыгрывает:
Код:
/do ......
/me .....
/try ......
/uninvite id причина
/f Nick Name ..... Причина: .....
Подобное было в теме. Только теперь надо на uninvite с причиной.
Заранее спасибо.
 

darksoor

Известный
679
355
Доброй ночи. Помогите сделать скрипт на увольнение игрока из организации.
Пример: пишем /uninvite id причину и скрипт автоматически отыгрывает:
Код:
/do ......
/me .....
/try ......
/uninvite id причина
/f Nick Name ..... Причина: .....
Подобное было в теме. Только теперь надо на uninvite с причиной.
Заранее спасибо.

Команда /unv [id] [причина].

AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk ;подключаешь SAMP-UDF (создаёшь рядом со своим скриптом файлик SAMP-UDF.ahk, после переходишь в тему "https://blast.hk/threads/20318/"(без кавычек) и копируешь в данный файл код)

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3))
   Return
Sleep 250
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/unv")
{
    if (RegExMatch(tempText, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
    {
        Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
        SendChat("/do текст")
        Sleep, 1200
        SendChat("/me текст")
        Sleep, 1200
        SendChat("/uninvite " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
        Sleep, 1200
        SendChat("/f " Nick " был уволен по причине " out_pars2 ".")
        return
    }
    Else
        addChatMessage("Используй: " tempCmd " [Ид] [Текст]")
}
return
 
  • Нравится
Реакции: Vlad_Halai и Magov1733

Kvisk

Известный
210
222
Команда /unv [id] [причина].

AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk ;подключаешь SAMP-UDF (создаёшь рядом со своим скриптом файлик SAMP-UDF.ahk, после переходишь в тему "https://blast.hk/threads/20318/"(без кавычек) и копируешь в данный файл код)

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3))
   Return
Sleep 250
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/unv")
{
    if (RegExMatch(tempText, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
    {
        Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
        SendChat("/do текст")
        Sleep, 1200
        SendChat("/me текст")
        Sleep, 1200
        SendChat("/uninvite " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
        Sleep, 1200
        SendChat("/f " Nick " был уволен по причине " out_pars2 ".")
        return
    }
    Else
        addChatMessage("Используй: " tempCmd " [Ид] [Текст]")
}
return
Есть несколько минусов твоей активации, первое это то, что команда /unv хоть и читается, но она так же отправляется серверу, что ни есть хорошо.
Так же, зачем создавать переменную "Nick"? Если можно сразу так:
AutoHotKey:
SendChat("/f " RegExReplace(getPlayerNameById(out_pars1), "_", " ") " был уволен по причине " out_pars2 ".")
 
  • Нравится
Реакции: Vlad_Halai

darksoor

Известный
679
355
Есть несколько минусов твоей активации, первое это то, что команда /unv хоть и читается, но она так же отправляется серверу, что ни есть хорошо.
Так же, зачем создавать переменную "Nick"? Если можно сразу так:
AutoHotKey:
SendChat("/f " RegExReplace(getPlayerNameById(out_pars1), "_", " ") " был уволен по причине " out_pars2 ".")
Хм, и где же она отправляется серверу?
Читает память и выводит то, что написано в чате, но никак не отправляет что-то серверу. Выдумка, не более.

Переменную можно тут же использовать в отыгровках, в лог-файле и т.п.
 

Kvisk

Известный
210
222
Хм, и где же она отправляется серверу?
Читает память и выводит то, что написано в чате, но никак не отправляет что-то серверу. Выдумка, не более.

Переменную можно тут же использовать в отыгровках, в лог-файле и т.п.
А вот мне кажется это не выдумка, давайте посмотрим скриншет?
 

Вложения

  • sa-mp-184.png
    sa-mp-184.png
    17.4 KB · Просмотры: 483

darksoor

Известный
679
355
А вот мне кажется это не выдумка, давайте посмотрим скриншет?
И что у тебя на скриншоте? Введи в чат любую команду, которой нет на сервере - тоже самое тебе напишет. И не нужно даже использовать при этом АХК скрипт.
Покажи мне в коде, что именно отвечает за посыл введенной команды в память сервера.
 

Kvisk

Известный
210
222
И что у тебя на скриншоте? Введи в чат любую команду, которой нет на сервере - тоже самое тебе напишет. И не нужно даже использовать при этом АХК скрипт.
Покажи мне в коде, что именно отвечает за посыл введенной команды в память сервера.
лол, это чисто твой скрипт.. Просто на многих серверах если ты написал неизвестную команду серверу, то в чат нечего не выдаётся.

AutoHotKey:
#NoEnv
#SingleInstance force
#include D:\Taifyn\AutoHotKey\bind\kal.ahk

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3))
    Return
Sleep 250
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/unv")
{
    if (RegExMatch(tempText, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
    {
        Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
        addChatMessage("/do текст")
        Sleep, 1200
        addChatMessage("/me текст")
        Sleep, 1200
        addChatMessage("/uninvite " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
        Sleep, 1200
        addChatMessage("/f " Nick " был уволен по причине " out_pars2 ".")
        return
    }
    Else
        addChatMessage("Используй: " tempCmd " [Ид] [Текст]")
}
return
Зайди на любой сервер на котором тебе будет писать в чат что команда не известная и затести..
 

darksoor

Известный
679
355
лол, это чисто твой скрипт.. Просто на многих серверах если ты написал неизвестную команду серверу, то в чат нечего не выдаётся.

AutoHotKey:
#NoEnv
#SingleInstance force
#include D:\Taifyn\AutoHotKey\bind\kal.ahk

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen() && (getDialogStyle() == 1 || getDialogStyle() == 3))
    Return
Sleep 250
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
if (tempCmd == "/unv")
{
    if (RegExMatch(tempText, "^" tempCmd "\s+(\d{1,3})\s+(.{1,})$", out_pars))
    {
        Nick := RegExReplace(getPlayerNameById(out_pars1), "_", " ") ;выведет из ID ник без знака "_". EX: Pavel Pavlovich
        addChatMessage("/do текст")
        Sleep, 1200
        addChatMessage("/me текст")
        Sleep, 1200
        addChatMessage("/uninvite " out_pars1 " " out_pars2) ;out_pars1 - ID игрока, out_pars2 - причина
        Sleep, 1200
        addChatMessage("/f " Nick " был уволен по причине " out_pars2 ".")
        return
    }
    Else
        addChatMessage("Используй: " tempCmd " [Ид] [Текст]")
}
return
Зайди на любой сервер на котором тебе будет писать в чат что команда не известная и затести..

Ты мне укажи кусок кода, который посылает серверу введенную команду.
Попробовал - что с АХК, что без АХК пишет "Неизвестная команда".

Если ты так уверен в чём-то, то будь добр это доказать.
 

Kvisk

Известный
210
222
Ты мне укажи кусок кода, который посылает серверу введенную команду.
Попробовал - что с АХК, что без АХК пишет "Неизвестная команда".

Если ты так уверен в чём-то, то будь добр это доказать.
what?! Я разе говорил что твой скрипт отсылает команду?! Я сказал что у твоей активации есть недостаток, так как ты и команду серверу отправляешь и скрипт активируешь.. Твой скрипт, грубо говоря, смотрит открыт ли у тебя чат, далее смотрит что в нём написано, если написано то что нужно он активируется, если нет то нет. НО так как у тебя активация по кнопке enter, ты ещё это и серверу отправляешь(то что у тебя написано в чате). То есть ты отправил команду серверу как обычную команду и твой скрипт запустил этой же самой командой..

Что тебе доказывать нужно? я действительно не понимаю... Ты сам написал что и с акх и без акх у тебя пишет неизвестная команда.. Так что тебе ещё-то нужно ?
 

darksoor

Известный
679
355
what?! Я разе говорил что твой скрипт отсылает команду?! Я сказал что у твоей активации есть недостаток, так как ты и команду серверу отправляешь и скрипт активируешь.. Твой скрипт, грубо говоря, смотрит открыт ли у тебя чат, далее смотрит что в нём написано, если написано то что нужно он активируется, если нет то нет. НО так как у тебя активация по кнопке enter, ты ещё это и серверу отправляешь(то что у тебя написано в чате). То есть ты отправил команду серверу как обычную команду и твой скрипт запустил этой же самой командой..

Что тебе доказывать нужно? я действительно не понимаю... Ты сам написал что и с акх и без акх у тебя пишет неизвестная команда.. Так что тебе ещё-то нужно ?

Я сам тебя не понимаю, что ты несёшь вообще.

Есть несколько минусов твоей активации, первое это то, что команда /unv хоть и читается, но она так же отправляется серверу, что ни есть хорошо.

Вот этого вообще понял - что отправляется серверу? Какая тебе активация нужна и какая лучше?
Что-то там написал и толком объяснить не может.
Объясню тебе мой код:
По нажатию клавиши Enter считываем то, что отправилось в чат серверу, тобишь команду введённую пользователем (tempText), после ищем совпадения в нашем коде, а уже потом исполняем код. Где тут команда отправляется серверу? Где????
 

Kvisk

Известный
210
222
Я сам тебя не понимаю, что ты несёшь вообще.



Вот этого вообще понял - что отправляется серверу? Какая тебе активация нужна и какая лучше?
Что-то там написал и толком объяснить не может.
Объясню тебе мой код:
По нажатию клавиши Enter считываем то, что отправилось в чат серверу, тобишь команду введённую пользователем (tempText), после ищем совпадения в нашем коде, а уже потом исполняем код. Где тут команда отправляется серверу? Где????
Ахахах, ну ты же сам написал..
считываем то, что отправилось в чат серверу
Где тут команда отправляется серверу?
Суть в том что, я отправляю команду серверу и активирую твой скрипт...
(А надо так что бы данная команда не отправлялась серверу, а только запускала скрипт)
 

darksoor

Известный
679
355
Ахахах, ну ты же сам написал..
Суть в том что, я отправляю команду серверу и активирую твой скрипт...
(А надо так что бы данная команда не отправлялась серверу, а только запускала скрипт)

Через команду я другого способа не знаю, только если использовать именно командный процессор.
 

Kvisk

Известный
210
222
Через команду я другого способа не знаю, только если использовать именно командный процессор.
можно старый колхозный метод ))
AutoHotKey:
:?:/inv::
Думаю человек давно уже получил решение своей проблемы, тему можно и закрыть
 

darksoor

Известный
679
355
можно старый колхозный метод ))
AutoHotKey:
:?:/inv::
Думаю человек давно уже получил решение своей проблемы, тему можно и закрыть
Колхозный, вот именно. Да к тому ещё и не удобный.
 
  • Нравится
Реакции: Kvisk
Статус
В этой теме нельзя размещать новые ответы.