Хелп с OnServerMessage

Licht

Известный
Автор темы
238
32
Короче говоря не могу понять как текст ввести в переменную.. (хз как объяснить)..
-------------
Пример текста:
** [Правительство] Депутат Hannibal_Koskor[126]: Купите новую рацию **
мне надо получить переменки Фракция, Званка, Ник, id и текст..
Я сделал подобное.. но не пашет, а как надо не шарю....
Lua:
    if text:find('**') and text:find('[LSPD]') or text:find('[FBI]') or text:find('[Правительство]') or text:find('[SWAT]') or text:find('[CNN]') or text:find('[SFPD]') or text:find('[МинЗдрав]') and text:find('**') then
        local fraction, name, Zvan, id, textov = text:match('** [(.+)] (.+) (.+)[%d+]: (%S+) **')
        return {0xFFFFFFFF, '{0088ff}(({ffffff} '..fraktion..' | '..name..'| '..zvan..' {ffffff}['..id..'] '..textov..'{0088ff}))'}
    end
 
Последнее редактирование:

Aniki

🐰
Администратор
1,228
1,557
Короче говоря не могу понять как текст ввести в переменную.. (хз как объяснить)..
-------------
Пример текста:
** [Правительство] Депутат Hannibal_Koskor[126]: {FFA800}Купите новую рацию **
мне надо получить переменки Фракция, Званка, Ник, id и текст..
Я сделал подобное.. но не пашет, а как надо не шарю....
Lua:
    if text:find('**') and text:find('[LSPD]') or text:find('[FBI]') or text:find('[Правительство]') or text:find('[SWAT]') or text:find('[CNN]') or text:find('[SFPD]') or text:find('[МинЗдрав]') and text:find('**') then
        local fraction, name, Zvan, id, textov = text:match('** [(.+)] (.+) (.+)[%d+]: (%S+) **')
        return {0xFFFFFFFF, '{0088ff}(({ffffff} '..fraktion..' | '..name..'| '..zvan..' {ffffff}['..id..'] '..textov..'{0088ff}))'}
    end
Во-первых ты не заэкранировал управляющие символы
Во-вторых, если ты ничего не хочешь менять в строке, а просто записать некоторые части строки в переменную, то можно ничего не возвращать
В-третьих, лучше использовать ту же регулярку в условии на проверку что строка подходит под регулярку
В-четвертых, %S означает символы без пробела, а в тексте они очевидно могут быть
В-пятых, если собираешься использовать эти переменные вне этого if-then, то они очевидно должны быть глобальными
В-шестых, если цветовой код перед текстом вставляется сервером всегда, то лучше его вынести отдельно в регулярке, иначе он будет записываться в переменную с текстом
В-седьмых, не везде скобки сделал на выделение в переменную
Lua:
if text:match('%*%* %[.-%] .- .-%[%d-%]: {FFA800}.- %*%*') then
    fraction, name, Zvan, id, textov = text:match('%*%* %[(.-)%] (.-) (.-)%[%(d-)%]: {FFA800}(.-) %*%*')
end
 

Licht

Известный
Автор темы
238
32
Цвета там разные.. зависит от фраки и званки
-----------------------------
Короче я пиздец тупой..
сделал такую хуйню:
добавил return {и сюда всю хуйню}
.. и нихрена..
 
Последнее редактирование:

Licht

Известный
Автор темы
238
32
if text:match('%*%* %[.-%] .- .-%[%d-%]: .- %*%*') then
fraction, name, Zvan, id, textov = text:match('%*%* %[(.-)%] (.-) (.-)%[%(d-)%]: {......}(.-) %*%*')
return {'|'..fraction..'|'..zvan..'|'..name..'['..id..']: '..textov..'|'}
end
написал такое.. но как я понял не верно..
На мой текст и то что я пишу ему "пох", а когда кто то другой пишет вылет...
------------------------------------------------------------------------------------------------------------------------------------
Вот ещё примеры текстов:
Мой:
** [Правительство] Депутат Hannibal_Koskor[126]: ну тогда применим санкции.. **
Текст другого игрока:
** [FBI] Зам. Директора F.B.I. Appollinaria_Lewis[121]: Не надо нам этого.. **
 

Aniki

🐰
Администратор
1,228
1,557
if text:match('%*%* %[.-%] .- .-%[%d-%]: .- %*%*') then
fraction, name, Zvan, id, textov = text:match('%*%* %[(.-)%] (.-) (.-)%[%(d-)%]: {......}(.-) %*%*')
return {'|'..fraction..'|'..zvan..'|'..name..'['..id..']: '..textov..'|'}
end
написал такое.. но как я понял не верно..
На мой текст и то что я пишу ему "пох", а когда кто то другой пишет вылет...
------------------------------------------------------------------------------------------------------------------------------------
Вот ещё примеры текстов:
Мой:
** [Правительство] Депутат Hannibal_Koskor[126]: ну тогда применим санкции.. **
Текст другого игрока:
** [FBI] Зам. Директора F.B.I. Appollinaria_Lewis[121]: Не надо нам этого.. **
Зачем ты ретурнишь, ты хочешь как то поменять текст или что? А фейлится потому что звание не обязательно в одно слово
Попробуй так
Lua:
text:match('%*%* %[(.-)%] (.+) (.-)%[%(d-)%]: {......}(.-) %*%*')