[AHK] AutoTag

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

Lucifer Melton

Пользователь
Сообщения
292
Реакции
166
Баллы
0
Сервер
Emerald
Доброго времени суток, уважаемые игроки проекта Diamond Role Play!
Я недавно делал AutoTag на lua, и делать было нечего и я его переписал на AHK :D
Команда: /bb

Ссылку кинет модератор раздела :D
 
Последнее редактирование:

Lance Whisky

Информационные технологии Diamond RP
Пользователь
Сообщения
1,226
Реакции
1,383
Баллы
0
Сервер
Emerald
Обновлено на момент 08.21
Download
 
Последнее редактирование:

Nick_Sinner

DevTG
Пользователь
Сообщения
43
Реакции
18
Баллы
0
Сервер
Не хорошо исходник Truck Helper брать.
Вот нормальный код.
C++:
#include samp.ahk
#singleinstance force

$~Enter::
if (isInChat()) && (!isDialogOpen()) {
blockchatinput()
  sleep 250
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  if (RegExMatch(chatInput, "/rr(.*)", out)) { ; Команда: /rr текст.
    chatInput := "/r [Твой тэг]:" out1 ; Отправка в /r
    unBlockChatInput()
    SendChat(chatInput)
  }
  else if (RegExMatch(chatInput, "/ff(.*)", out)) { ; Команда: /ff текст.
    chatInput := "/f [Твой тэг]:" out1 ; Отправка в /f
    unBlockChatInput()
    SendChat(chatInput)
  }
  else {
    unBlockChatInput()
    SendChat(chatInput)
  }
}
return
 
Последнее редактирование:

Lucifer Melton

Пользователь
Сообщения
292
Реакции
166
Баллы
0
Сервер
Emerald
Не хорошо исходник Truck Helper брать.
Вот нормальный код.
C++:
#include samp.ahk
#singleinstance force

$~Enter::
blockchatinput()
if (isInChat()) && (!isDialogOpen()) {
  Sleep 250
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  if (RegExMatch(chatInput, "/rr(.*)", out)) { ; Команда: /rr текст.
    chatInput := "/r [Твой тэг]:" out1 ; Отправка в /r
    unBlockChatInput()
    SendChat(chatInput)
  }
  else if (RegExMatch(chatInput, "/ff(.*)", out)) { ; Команда: /ff текст.
    chatInput := "/f [Твой тэг]:" out1 ; Отправка в /f
    unBlockChatInput()
    SendChat(chatInput)
  }
  else {
    unBlockChatInput()
    SendChat(chatInput)
  }
}
return
эээммм, я и не брал как бы.
Ты бы сперва чекнул бы код перед тем обвинять меня.
JavaScript:
kp:
chatInput := CommandProcessor.TempText
if (RegExMatch(chatInput, "^/r")) {
    if (RegExMatch(chatInput, "^/r (.*)", out)) {
        if (TagRadioR = "") or (R = 0) {
            SendChat("/r " out1)
        } else SendChat("/r [" TagRadioR "]: " out1)
    } else AddChatMessageEx("cecfce","Используйте: /r [Текст].")
}
else if (RegExMatch(chatInput, "^/f")) {
    if (RegExMatch(chatInput, "^/f (.*)", out)) {
        if (TagRadioF = "") or (F = 0) {
            SendChat("/f " out1)
        } else SendChat("/f [" TagRadioF "]: " out1)
    } else AddChatMessageEx("cecfce","Используйте: /f [Текст].")
}
else if (chatInput == "/bb") {
    gosub, metka
    return
}
return
 

Nick_Sinner

DevTG
Пользователь
Сообщения
43
Реакции
18
Баллы
0
Сервер
эээммм, я и не брал как бы.
Ты бы сперва чекнул бы код перед тем обвинять меня.
Так я и чекнул, говори откуда udf брал. Вот твой код, большой, не правда-ли?
C++:
#include samp.ahk
IniRead, TagRadioR, %A_ScriptDir%\settings.ini, config, TagRadioR
IniRead, TagRadioF, %A_ScriptDir%\settings.ini, config, TagRadioF
IniRead, R, %A_ScriptDir%\settings.ini, function, R
IniRead, F, %A_ScriptDir%\settings.ini, function, F
CommandProcessor := new CommandProcessor()
CommandProcessor.SetStatusProcessor(true)
CommandProcessor.RegisterCommand("/r",                 "kp")
CommandProcessor.RegisterCommand("/f",                 "kp")
CommandProcessor.RegisterCommand("/bb",                "kp")
AntiCrash()
kp:
chatInput := CommandProcessor.TempText
SendChat:
if (RegExMatch(chatInput, "^/r")) {
if (RegExMatch(chatInput, "^/r (.*)", out)) {
if (TagRadioR = "") or (R = 0) {
SendChat("/r " out1)
} else SendChat("/r [" TagRadioR "]: " out1)
} else AddChatMessageEx("cecfce","Используйте: /r [Текст].")
}
else if (RegExMatch(chatInput, "^/f")) {
if (RegExMatch(chatInput, "^/f (.*)", out)) {
if (TagRadioF = "") or (F = 0) {
SendChat("/f " out1)
} else SendChat("/f [" TagRadioF "]: " out1)
} else AddChatMessageEx("cecfce","Используйте: /f [Текст].")
}
else if (chatInput == "/bb") {
metka:
{
if (R = 0) {
textR = {6495ED}Вкл/Выкл тэг рации вольный R:`t{E21F1F}[Disabled]
}
if (R = 1) {
textR = {6495ED}Вкл/Выкл тэг рации вольный R:`t{32C13E}[Enabled]
}
if (F = 0) {
textF = {6495ED}Вкл/Выкл тэг рации вольный F:`t{E21F1F}[Disabled]
}
if (F = 1) {
textF = {6495ED}Вкл/Выкл тэг рации вольный F:`t{32C13E}[Enabled]
}
ShowDialog(4, "{6495ED}Настройки скрипта | Автор: {9D633A}Lucifer Melton", "{6495ED}Изменить тэг рации вольный R:`t{32C13E}[" TagRadioR "]`n" textR "`n `n{6495ED}Изменить тэг рации вольный F:`t{32C13E}[" TagRadioF "]`n" textF "`n `n{6495ED}Перезагрузить скрипт`n{6495ED}Полностью выключить скрипт", "{6495ED}Close Esc", "")
line := LineResult()
if (!line)
return
if (line == 1) {
showDialog(1, "{6495ED}Изменить тэг рации вольный R", "{F3F3F3}Введите Вашу тэг в поле ниже и нажмите {6495ED}Enter{F3F3F3}.", "{6495ED}Выбрать", "{6495ED}Назад")
while (isDialogOpen()) {
if (GetKeyState("Escape", "P") or (isDialogButtonSelected(2) = true and GetKeyState("LButton", "P"))) {
Gosub, metka
return
}
}
TagRadioR := readString(hGTA, dwSAMP + 0x12D8F8, 256)
IniWrite, %TagRadioR%, %A_ScriptDir%\settings.ini, config, TagRadioR
Gosub, metka
return
} else if (line == 2) {
if (R = 1) {
R = 0
IniWrite, 0, %A_ScriptDir%\settings.ini, function, R
Gosub, metka
return
}
if (R = 0) {
R = 1
IniWrite, 1, %A_ScriptDir%\settings.ini, function, R
Gosub, metka
return
}
} else if (line == 3) {
addChatMessageEx("cecfce", "А тут пусто")
goto, metka
return
} else if (line == 4) {
showDialog(1, "{6495ED}Изменить тэг рации вольный F", "{F3F3F3}Введите Вашу тэг в поле ниже и нажмите {6495ED}Enter{F3F3F3}.", "{6495ED}Выбрать", "{6495ED}Назад")
while (isDialogOpen()) {
if (GetKeyState("Escape", "P") or (isDialogButtonSelected(2) = true and GetKeyState("LButton", "P"))) {
Gosub, metka
return
}
}
TagRadioF := readString(hGTA, dwSAMP + 0x12D8F8, 256)
IniWrite, %TagRadioF%, %A_ScriptDir%\settings.ini, config, TagRadioF
Gosub, metka
return
} else if (line == 5) {
if (F = 1) {
F = 0
IniWrite, 0, %A_ScriptDir%\settings.ini, function, F
Gosub, metka
return
}
if (F = 0) {
F = 1
IniWrite, 1, %A_ScriptDir%\settings.ini, function, F
Gosub, metka
return
}
} else if (line == 6) {
addChatMessageEx("cecfce", "А тут пусто")
goto, metka
return
} else if (line == 7) {
addChatMessageEx("cecfce", "Скрипт будет перезагружен.")
Sleep 200
showgametext("Reloaded", 500, 1)
Sleep 100
Reload
} else if (line == 8) {
ExitApp
}
}
return
}
return
F10::
{
addChatMessageEx("cecfce", "Скрипт будет перезагружен.")
Sleep 200
showgametext("Reloaded", 500, 1)
Sleep 100
Reload
}
return
~Enter::
if(CommandProcessor.StatusProcessor) {
if(IsChatActive()==1) {
blockChatInput()
while(IsChatActive()==1)
continue
unBlockChatInput()
TextChat := GetChatText()
if(SubStr(TextChat, 1, 1) = "/") {
InputCMD := StrSplit(TextChat, A_Space)
InputCMD := InputCMD[1]
CommandProcessor.TempCmd := InputCMD
CommandProcessor.TempText := TextChat
if(CommandProcessor.CommandArray.HasKey(InputCMD)) {
ClearTextDialog()
SetTimer, % CommandProcessor.CommandArray[InputCMD], -1
}
else
{
SendChat(TextChat)
ClearTextDialog()
}
}
else
{
if(TextChat != "") {
CommandProcessor.TempText := TextChat
SendChat(TextChat)
ClearTextDialog()
}
}
}
}
return
 

Lucifer Melton

Пользователь
Сообщения
292
Реакции
166
Баллы
0
Сервер
Emerald
эээммм, я как бы основу взял от этого уже год или пол года назад (автор Angel Jayscore),
JavaScript:
else if (RegExMatch(chatInput, "^/r")) {
    if (RegExMatch(chatInput, "^/r (.*)", out)) {
        if position =
        {
        AddChatMessageEx("9D633A","[MoD Script]{F3F3F3} Для отправки сообщения укажите должность в настройках!")
        }
        else
        {
            SendChat("/r [" position "]: " out1)
        }
    }
    else if (RegExMatch(chatInput, "^/rn (.*)", out)) {
        SendChat("/r (( " out1 " ))")
    }
else AddChatMessageEx("9D633A","[MoD Script]{F3F3F3} Используйте: {6495ED}/r [Текст]{F3F3F3} или {6495ED}/rn [Текст]{F3F3F3}.")
}
else if (RegExMatch(chatInput, "^/f")) {
    if (RegExMatch(chatInput, "^/f (.*)", out)) {
        if position =
        {
        AddChatMessageEx("9D633A","[MoD Script]{F3F3F3} Для отправки сообщения укажите должность в настройках!")
        }
        else {
            if (subdivision = "Военно-морской флот") {
                SendChat("/f [Navy | " position "]: " out1)
            }
            else if (subdivision = "Военно-воздушные силы") {
                SendChat("/f [Air Force | " position "]: " out1)
            }
            else if (subdivision = "Сухопутные войска") {
                SendChat("/f [Ground Force | " position "]: " out1)
            }
        }
    }
    else if (RegExMatch(chatInput, "^/fn (.*)", out)) {
        SendChat("/f (( " out1 " ))")
    }
else AddChatMessageEx("9D633A","[MoD Script]{F3F3F3} Используйте: {6495ED}/f [Текст]{F3F3F3} или {6495ED}/fn [Текст]{F3F3F3}.")
}
и переделал под себя в AHK.
Потом забросил AHK и пошел учить LUA и там сделал AutoTag для Advance RP, и то время я играл и на Diamond RP и кинул его сюда убрав команды /rn и /fn.
И я в теме написал "Я недавно делал AutoTag на lua, и делать было нечего и я его переписал на AHK", я просто взял свой старый AutoTag в AHK и просто подключил ему диалоги и кинул сюда.
P.S. Думаю понятно написал :D
P.S. UDF там же
 
Последнее редактирование:

coockie

Пользователь
Сообщения
57
Реакции
10
Баллы
0
Не хорошо исходник Truck Helper брать.
Вот нормальный код.
C++:
#include samp.ahk
#singleinstance force

$~Enter::
blockchatinput()
if (isInChat()) && (!isDialogOpen()) {
  sleep 250
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  if (RegExMatch(chatInput, "/rr(.*)", out)) { ; Команда: /rr текст.
    chatInput := "/r [Твой тэг]:" out1 ; Отправка в /r
    unBlockChatInput()
    SendChat(chatInput)
  }
  else if (RegExMatch(chatInput, "/ff(.*)", out)) { ; Команда: /ff текст.
    chatInput := "/f [Твой тэг]:" out1 ; Отправка в /f
    unBlockChatInput()
    SendChat(chatInput)
  }
  else {
    unBlockChatInput()
    SendChat(chatInput)
  }
}
return
А если юзер не ввел команду из условий - у него так и остается заблокированный чат. xD
Поэтому сделай лучше так:

JavaScript:
if (isInChat() && !isDialogOpen()) {
    blockChatInput()
    ; дальше твой код с chatInput и все дела
}
 

Nick_Sinner

DevTG
Пользователь
Сообщения
43
Реакции
18
Баллы
0
Сервер
А если юзер не ввел команду из условий - у него так и остается заблокированный чат. xD
Поэтому сделай лучше так:

JavaScript:
if (isInChat() && !isDialogOpen()) {
    blockChatInput()
    ; дальше твой код с chatInput и все дела
}
Был сонный когда писал код, спасибо что подметил.
 

БОБРЫК

a.k.a. Rafiik
Заблокированный
Пользователь
Сообщения
108
Реакции
4
Баллы
0
Сервер
Доброго времени суток, уважаемые игроки проекта Diamond Role Play!
Я недавно делал AutoTag на lua, и делать было нечего и я его переписал на AHK :D
Команда: /bb

Ссылку кинет модератор раздела :D
А можно ссылочку на луа плагин?
 

Lucifer Melton

Пользователь
Сообщения
292
Реакции
166
Баллы
0
Сервер
Emerald
Update:D
добавлено эРПэ :D и можно его изменять, выключать.
и с нуля переписан код диалога, наверно вам на это плевать :D
и наверно из за этого будет крашить AHK или иногда игра :D Если крашить AHK нажмите F10 это перезагрузить AHK
 
Последнее редактирование:

seeth

Ст. Модератор форума
Сообщения
2,224
Реакции
1,470
Баллы
425
Неактуально
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху