Вопросы по AHK-скриптингу

#Rin

Известный
Всефорумный модератор
1,214
1,043
А код писать %name%?
Проверить разве нельзя? Если будет ошибка, комп не взорвется, не бойся.
И если да, но мне нужен, чтобы мой ник писался, а не игрока
А в чем проблема заменить функции получение чужого ника, на свой?
 

TopMo3

Участник
121
7
А можно ли создать код, который будет считывать, какой у меня ранг, например, как он будет работать.
Здравствуйте, я сержант и т.д.
Когда повысили:
Здравствуйте, я прокурор и т.д.
Ну по такому типу.
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
А можно ли создать код, который будет считывать, какой у меня ранг, например, как он будет работать.
Здравствуйте, я сержант и т.д.
Когда повысили:
Здравствуйте, я прокурор и т.д.
Ну по такому типу.
Ранг нужно откуда-то считывать, диалог статистики, /find, /members и т.п.
А повышение/понижение, опять считывать диалог и т.п, или читать чат и находить строку с повышением/понижением.
 

TopMo3

Участник
121
7
Ранг нужно откуда-то считывать, диалог статистики, /find, /members и т.п.
А повышение/понижение, опять считывать диалог и т.п, или читать чат и находить строку с повышением/понижением.
А можно тогда реализовать, например, так, чтобы в коде были например
1 - Курсант
2 - Офицер l ступени
И так далее, но потом чтобы код считывал данные и вставлял например в текст, просто у меня. в /ind только ранги показывают, а в повышение через чат выводится

Нашел баг и не могу понять, что не так, первый раз все стабильно работало, а когда перезапустил скрипт, он полетел, в чем проблема.
Пишет за место имени: нечего
А за место моего ид -1

Код:
Numpad1::
targ:=getClosestPlayerId()
name:=getPlayerNameById(targ) ; SendChat(""targ)
namet := RegExReplace(getPlayerNameById(getId()), "_", " ")
myID := getId()
SendMessage, 0x50,, 0x4090409,, A ; английский
SendMessage, 0x50,, 0x4190419,, A ; русский
IniRead, PDOTag,config.ini, Text, PDOTag
IniRead, PDGTag,config.ini, Text, PDGTag
IniRead, ZTag,config.ini, Text, ZTag
Sleep 300
SendChat("/me передал удостоверение сотрудника МВД человеку напротив")
Sleep 2100
SendChat("/ud "targ)
Sleep 2100
SendInput,{F6}Здравствуйте, я %ZTag% %namet% полиции %PDGTag%{.}{Enter}
Sleep 2100
SendChat("Предьявите ваши документы. Не бойтесь, это всего лишь проверка.")
Sleep 2100
SendChat("/n /pass "myID)
return
 
Последнее редактирование модератором:

#Rin

Известный
Всефорумный модератор
1,214
1,043
И так далее, но потом чтобы код считывал данные и вставлял например в текст, просто у меня. в /ind только ранги показывают, а в повышение через чат выводится
Можно создать массив с рангами и их званиями
AutoHotKey:
rank := ["Рядовой", "Сержант"] ; Буквами
rang := 2 ; Цифрой
MsgBox, % rank[rang] ; Выведет Сержант.

Нашел баг и не могу понять, что не так, первый раз все стабильно работало, а когда перезапустил скрипт, он полетел, в чем проблема.
Пишет за место имени: нечего
А за место моего ид -1
Запуск от админа в кодировке ANSI, как самого скрипта, так и бинарника.
 

TopMo3

Участник
121
7
Можно создать массив с рангами и их званиями
AutoHotKey:
rank := ["Рядовой", "Сержант"] ; Буквами
rang := 2 ; Цифрой
MsgBox, % rank[rang] ; Выведет Сержант.


Запуск от админа в кодировке ANSI, как самого скрипта, так и бинарника.
А вот у меня один вопрос, про Ранги, я вот сделал код, и не знаю верно ли сделал:
Код:
rank := ["Курсант", "Офицер I ступени", "Офицер II ступени", "Старший Офицер", "Сержант I ступени", "Сержант II ступени", "Детектив I ступени", "Детектив II ступени", "Лейтенант", "Капитан", "Зам. Шефа", "Шеф", "Комиссар полиции"] ; Буквами
rang := 2 ; Цифрой
MsgBox, % rank[rang] ; Выведет Сержант.
Так вот, как их можно в тексте вывести например:
Код:
SendInput,{F6}Здравствуйте, я *Ранг* %namet% полиции %PDGTag%{.}{Enter}
 

maestto

Известный
93
116
Как сделать при помощи samp.udf диалог стиль 1, чтобы он считывал что там было введено и где-то это юзал, при помощи переменной.

И ещё, как сделать чтобы ахк работало только на каком-то нике, то есть оно считывало ник с сампа и если он не подходил под указанные в ахк = он не работал.
 
Последнее редактирование:
  • Нравится
Реакции: crab1k

#Rin

Известный
Всефорумный модератор
1,214
1,043
Тогда помоги мне как сделать "реакцию" на текст, например админ напишет мне: "какой сейчас месяц" и я отвечу "Май".
Читаешь чат из памяти или из chatlog.txt.
Сверяешь содержимое (if, регулярки и т.п.).
Если истина, отправляем сообщение.
Прочитай немного документацию и функции SAMP UDF.

Как сделать при помощи samp.udf диалог стиль 1, чтобы он считывал что там было введено и где-то это юзал, при помощи переменной.
ShowDialog, содержимое инпута диалога находится по такому же адресу что и содержимое чат инпута.

И ещё, как сделать чтобы ахк работало только на каком-то нике, то есть оно считывало ник с сампа и если он не подходил под указанные в ахк = он не работал
В UDF'e найди функцию получения ника локального игрока.
Сверяешь ник.
Выполняешь определенные действия.
 

TopMo3

Участник
121
7
Можно сделать к данном скрипте так, чтобы я писал например ID, а он за место ID писал ник без _
Вот код, если не трудно можете в нем сделать, я буду вам ооочень благодарен.

Код:
Numpad5::
SendMessage, 0x50,, 0x4090409,, A ; английский
SendMessage, 0x50,, 0x4190419,, A ; русский
addChatMessage("{FF294D}• {3366CC}[Police - Script] {FFFFFF}Как арестовывать правильно:")
addChatMessage("{FF294D}• {3366CC}[Police - Script] {FFFFFF}/arrest ""ID"" ""Фамилия напарника""")
SendInput,{F6}/rarrest{space}
Input, id, V, {space}
Input, id1, V, {enter}
Sleep 300
SendChat("/me достал КПК из правого кармана после чего включил его")
Sleep 2100
SendChat("/me открыл базу данных МВД")
Sleep 2100
SendChat("/me вводит данные о задержанном преступнике")
Sleep 2100
SendChat("/do Дело закрыто.")
Sleep 2100
SendChat("/me выключил КПК")
Sleep 2100
SendInput, {F6}/arrest %id%{Enter}
Sleep 2100
SendChat("/do Мини-наушник в правом ухе.")
Sleep 2100
SendChat("/me нажал на мини-наушники")
SendMessage, 0x50,, 0x4090409,, A ; английский
SendMessage, 0x50,, 0x4190419,, A ; русский
Sleep 2100
SendInput, {F6}/r %RTag% Закрыто дело номер: %id% | Напарник: %id1%{Enter}
Return
Где у меня написано %id1%, я хочу чтобы писался ник, когда я напишу его ID.
Кто поможет буду благодарен.
 

RellaX

Известный
80
9
Можно сделать к данном скрипте так, чтобы я писал например ID, а он за место ID писал ник без _
Вот код, если не трудно можете в нем сделать, я буду вам ооочень благодарен.

Код:
Numpad5::
SendMessage, 0x50,, 0x4090409,, A ; английский
SendMessage, 0x50,, 0x4190419,, A ; русский
addChatMessage("{FF294D}• {3366CC}[Police - Script] {FFFFFF}Как арестовывать правильно:")
addChatMessage("{FF294D}• {3366CC}[Police - Script] {FFFFFF}/arrest ""ID"" ""Фамилия напарника""")
SendInput,{F6}/rarrest{space}
Input, id, V, {space}
Input, id1, V, {enter}
Sleep 300
SendChat("/me достал КПК из правого кармана после чего включил его")
Sleep 2100
SendChat("/me открыл базу данных МВД")
Sleep 2100
SendChat("/me вводит данные о задержанном преступнике")
Sleep 2100
SendChat("/do Дело закрыто.")
Sleep 2100
SendChat("/me выключил КПК")
Sleep 2100
SendInput, {F6}/arrest %id%{Enter}
Sleep 2100
SendChat("/do Мини-наушник в правом ухе.")
Sleep 2100
SendChat("/me нажал на мини-наушники")
SendMessage, 0x50,, 0x4090409,, A ; английский
SendMessage, 0x50,, 0x4190419,, A ; русский
Sleep 2100
SendInput, {F6}/r %RTag% Закрыто дело номер: %id% | Напарник: %id1%{Enter}
Return
Где у меня написано %id1%, я хочу чтобы писался ник, когда я напишу его ID.
Кто поможет буду благодарен.
Какой смысл юзать функцию SendChat, а потом Sendinput???
rpnamebez := RegExReplace(getPlayerNameById(id), "_", " ")