Функции

monster595

Участник
Автор темы
34
0
Подскажите, как получить ник моего персонажа, id, квадрат в котором я нахожусь и район
 

monster595

Участник
Автор темы
34
0
ID:
Lua:
local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
Nick
Lua:
local name = sampGetPlayerName(myid)
Квадрат:
https://blast.hk/threads/13380/#post-170555
Спасибо, и еще вопрос, как например при вводе команды допусти /ticket и трех параметров допустим [ИД] [Сумма][Причина] и после того, как игрок ввел команду с параметрами, у него проигрывалось обычное РП через /me и в конце выдавался сам штраф
 

svdsevcvsd

Участник
31
1
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
 
  • Нравится
Реакции: atizoff

monster595

Участник
Автор темы
34
0
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 закодирован, русские буквы не читает, данная проблема именно в этом куске кода, ставил перед ' u8 ничего, а так же эти символы в sampAddChatMessage
 

svdsevcvsd

Участник
31
1
Работает, но, весь текст /me закодирован, русские буквы не читает, данная проблема именно в этом куске кода, ставил перед ' u8 ничего, а так же эти символы в sampAddChatMessage
кодировку файла смени на Windows-1251
 

monster595

Участник
Автор темы
34
0
кодировку файла смени на Windows-1251
encoding.default = 'CP1251'
u8 = encoding.UTF8
Вот же, я же говорю, именно в том куске кода кодировка идет, в остальных местах все работает хорошо.
 

svdsevcvsd

Участник
31
1
encoding.default = 'CP1251'
u8 = encoding.UTF8
Вот же, я же говорю, именно в том куске кода кодировка идет, в остальных местах все работает хорошо.
ты imgui пользуешься? Скинь полностью код который у тебя сейчас
 

monster595

Участник
Автор темы
34
0
ты imgui пользуешься? Скинь полностью код который у тебя сейчас
Пользуюсь, в imgui тоже текст русский все хорошо работает, в коде нет ничего не обычного все работает, но в самой команде не русифицируется. И еще, как получить координаты игрока?
 
Последнее редактирование:

monster595

Участник
Автор темы
34
0
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 выскакивает, вторая с командой уже блокируется.
 

svdsevcvsd

Участник
31
1
Смотри, с кодировкой разобрался, но на сервер стоит система антифлуда, как тогда исправить, первая строка с /me выскакивает, вторая с командой уже блокируется.
сделать задержку с помощью потока. через сколько можно отправить след сообщение?