- 34
- 0
local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
local name = sampGetPlayerName(myid)
Спасибо, и еще вопрос, как например при вводе команды допусти /ticket и трех параметров допустим [ИД] [Сумма][Причина] и после того, как игрок ввел команду с параметрами, у него проигрывалось обычное РП через /me и в конце выдавался сам штрафID:
NickLua:local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
Квадрат:Lua:local name = sampGetPlayerName(myid)
https://blast.hk/threads/13380/#post-170555
require "lib.moonloader"
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("ticket", cmd_ticket)
while true do
wait(0)
end
end
function cmd_ticket(arg)
var1, var2, var3 = string.match(arg, "(.+) (.+) (.+)")
if var1 == nil then sampAddChatMessage("/ticket [ИД] [Сумма] [Причина]", -1) --если не введён не один аргумент
else
nick = sampGetPlayerNickname(var1) --получаем ник игрока с id указанным в команде
sampSendChat(string.format('/me выдал штраф игроку %s на сумму %d с причиной: %s', nick, var2, var3))
sampSendChat(string.format('/shtraf %d %d %s', var1, var2, var3)) --допустим, чтобы выдать штраф, нужно использовать команду shtraf
end
end
Работает, но, весь текст /me закодирован, русские буквы не читает, данная проблема именно в этом куске кода, ставил перед ' u8 ничего, а так же эти символы в sampAddChatMessageLua:require "lib.moonloader" function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end while not isSampAvailable() do wait(100) end sampRegisterChatCommand("ticket", cmd_ticket) while true do wait(0) end end function cmd_ticket(arg) var1, var2, var3 = string.match(arg, "(.+) (.+) (.+)") if var1 == nil then sampAddChatMessage("/ticket [ИД] [Сумма] [Причина]", -1) --если не введён не один аргумент else nick = sampGetPlayerNickname(var1) --получаем ник игрока с id указанным в команде sampSendChat(string.format('/me выдал штраф игроку %s на сумму %d с причиной: %s', nick, var2, var3)) sampSendChat(string.format('/shtraf %d %d %s', var1, var2, var3)) --допустим, чтобы выдать штраф, нужно использовать команду shtraf end end
кодировку файла смени на Windows-1251Работает, но, весь текст /me закодирован, русские буквы не читает, данная проблема именно в этом куске кода, ставил перед ' u8 ничего, а так же эти символы в sampAddChatMessage
encoding.default = 'CP1251'кодировку файла смени на Windows-1251
ты imgui пользуешься? Скинь полностью код который у тебя сейчасencoding.default = 'CP1251'
u8 = encoding.UTF8
Вот же, я же говорю, именно в том куске кода кодировка идет, в остальных местах все работает хорошо.
Пользуюсь, в imgui тоже текст русский все хорошо работает, в коде нет ничего не обычного все работает, но в самой команде не русифицируется. И еще, как получить координаты игрока?ты imgui пользуешься? Скинь полностью код который у тебя сейчас
как получить координаты игрока?
local x, y, z = getCharCoordinates(playerPed)
Как с помощью этой функции gxtstring name = getNameOfZone(x,y,z) поулчить названия районов?Lua:local x, y, z = getCharCoordinates(playerPed)
Как с помощью этой функции gxtstring name = getNameOfZone(x,y,z) поулчить названия районов?
local xp, yp, zp = getCharCoordinates(playerPed)
zone = getNameOfZone(xp, yp, zp)
print(zone)
Смотри, с кодировкой разобрался, но на сервер стоит система антифлуда, как тогда исправить, первая строка с /me выскакивает, вторая с командой уже блокируется.Lua:require "lib.moonloader" function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end while not isSampAvailable() do wait(100) end sampRegisterChatCommand("ticket", cmd_ticket) while true do wait(0) end end function cmd_ticket(arg) var1, var2, var3 = string.match(arg, "(.+) (.+) (.+)") if var1 == nil then sampAddChatMessage("/ticket [ИД] [Сумма] [Причина]", -1) --если не введён не один аргумент else nick = sampGetPlayerNickname(var1) --получаем ник игрока с id указанным в команде sampSendChat(string.format('/me выдал штраф игроку %s на сумму %d с причиной: %s', nick, var2, var3)) sampSendChat(string.format('/shtraf %d %d %s', var1, var2, var3)) --допустим, чтобы выдать штраф, нужно использовать команду shtraf end end
сделать задержку с помощью потока. через сколько можно отправить след сообщение?Смотри, с кодировкой разобрался, но на сервер стоит система антифлуда, как тогда исправить, первая строка с /me выскакивает, вторая с командой уже блокируется.