onServerMessage

W1ll04eison

Участник
Автор темы
328
19
Версия MoonLoader
.026-beta
В чате есть строка: [Wanted 3: Nick_Name] [Офицер LS: Nick_Name] [Нападение]
Код, который я скину ниже ищет данную строку и изменяет ее(перекрашивает и добавляет доп.символы).
Но, есть такая проблема, что если в строке много символов, то оно отобразится не корректно.

Так вот, подскажите как это можно исправить

сам код:
lua:
function events.onServerMessage(color, text)
    if text:find(" %[Wanted (%d): (.+)%] %[([^:]+): ?(.+)%] %[(.+)%]") then
        local reason, nicknaryh, fracz, nickoficer, prichina = text:match("%[Wanted (%d): (.+)%] %[([^:]+): ?(.+)%] %[(.+)%]")
        idplayernaryshitel = sampGetPlayerIdByNickname(nicknaryh)
        sampAddChatMessage(string.format('[{FFFFFF}Wanted [%d]: %s[%d]{00BFFF}] [{FFFFFF}%s: %s{00BFFF}] [{FFFFFF}%s{00BFFF}]', reason, nicknaryh, idplayernaryshitel, fracz, nickoficer, prichina), 0x00BFFF)
        return false
    end

   
end

function sampGetPlayerIdByNickname(nick)
    nick = tostring(nick)
    local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
    if nick == sampGetPlayerNickname(myid) then return myid end
    for i = 0, 1003 do
      if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == nick then
        return i
      end
    end
  end
 
Последнее редактирование:

qdIbp

Автор темы
Проверенный
1,386
1,141
Lua:
function events.onServerMessage(color, text)
    if text:find("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]") then
        local reason, nicknaryh, fracz, nickoficer, prichina = text:match("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]")
        idplayernaryshitel = sampGetPlayerIdByNickname(nicknaryh)
        sampAddChatMessage('[{FFFFFF}Wanted ['..reason..']: '..nicknaryh..'{00BFFF}[{FFFFFF}'..idplayernaryshitel..'{00BFFF}] [{FFFFFF}'..fracz..': '..nickoficer..'{00BFFF}] [{FFFFFF}'..prichina..'{00BFFF}]', 0x00BFFF)
        return false
    end
end
Попробуй так
 

AnWu

Guardian of Order
Всефорумный модератор
4,686
5,166
Lua:
function events.onServerMessage(color, text)
    if text:find("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]") then
        local reason, nicknaryh, fracz, nickoficer, prichina = text:match("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]")
        idplayernaryshitel = sampGetPlayerIdByNickname(nicknaryh)
        sampAddChatMessage('[{FFFFFF}Wanted ['..reason..']: '..nicknaryh..'{00BFFF}[{FFFFFF}'..idplayernaryshitel..'{00BFFF}] [{FFFFFF}'..fracz..': '..nickoficer..'{00BFFF}] [{FFFFFF}'..prichina..'{00BFFF}]', 0x00BFFF)
        return false
    end
end
Попробуй так
Вот бы еще существовала гетидбайник(
 

W1ll04eison

Участник
Автор темы
328
19
Lua:
function events.onServerMessage(color, text)
    if text:find("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]") then
        local reason, nicknaryh, fracz, nickoficer, prichina = text:match("%[Wanted (%d): (.+)%] %[(.+): (.+)%] %[(.+)%]")
        idplayernaryshitel = sampGetPlayerIdByNickname(nicknaryh)
        sampAddChatMessage('[{FFFFFF}Wanted ['..reason..']: '..nicknaryh..'{00BFFF}[{FFFFFF}'..idplayernaryshitel..'{00BFFF}] [{FFFFFF}'..fracz..': '..nickoficer..'{00BFFF}] [{FFFFFF}'..prichina..'{00BFFF}]', 0x00BFFF)
        return false
    end
end
Попробуй так
У меня изначально так и было, тот же результат и та же проблема