- Версия MoonLoader
- .026-beta
Помогиье составить регулярку...
В общем, есть информация об игроке, ip реги, настоящй ip и бла-бла-бла, мне нужно оттуда выудить текст
И как можно понять, минуса может не быть, а так же кол-во денег может быть от овер 1ккк, до овер -1ккк.
Вот что у меня получилось:
Но когда скрипт проверяет по первой регулярке, выдаёт ошибку и крашит скрипт:
Вроде кое-как составил регулярки на минусы, но вот с плюсами беда...
Ещё по какой-то причине не работает sampSendDialogResponse
Решил при помощи разбивки текста на строки, если кому-то интересно, то вот:
И вот сама разбивка на строки:
В общем, есть информация об игроке, ip реги, настоящй ip и бла-бла-бла, мне нужно оттуда выудить текст
{FF0000}Рулетка: {FFFFFF}-30 787 260$Посмотреть вложение 49877
Вот что у меня получилось:
Lua:
local textik = {}
if text:find('-(%d+) (%d+) (%d+)') then
textik[1], textik[2], textik[3] = text:match('-(%d+) (%d.) (%d+)')
print('1st') -- для удобности, чтобы знать в какой регулярке ошибка
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'kk')
elseif text:find('- (%d+) (%d+) (%d+)') then
textik[1], textik[2], textik[3] = text:match('- (%d+) (%d.) (%d+)')
print('2nd')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'kk')
elseif text:find('-(%d+) (%d+)') then
textik[1], textik[2] = text:match('-(%d+) (%d.)')
print('3rd')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'k')
elseif text:find('- (%d+) (%d+)') then
textik[1], textik[2] = text:match('- (%d+) (%d.)')
print('4st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'k')
elseif text:find('- (%d+)') then
_, textik[1], textik[2] = text:match('Рулетка:(%s+)%{FFFFFF%}- (%d+)')
print('5st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..'$')
elseif text:find('Рулетка:(%s+)%{FFFFFF%}-(%d+)') then
_, textik[1] = text:match('Рулетка:(%s+)%{FFFFFF%}-(%d+)')
print('6st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..'$')
elseif text:find('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d+) (%d+)') then
_, textik[1], textik[2], textik[3] = text:match('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d.) (%d+)')
print('7st')
print('{00FFFF}'.. tag .. textik[1] ..".".. textik[2] ..'kk')
elseif text:find('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d+)') then
_, textik[1], textik[2] = text:match('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d.)')
print('8st')
print('{00FFFF}'.. tag .. textik[1] ..".".. textik[2] ..'k')
elseif text:find('Рулетка:(%s+)%{FFFFFF%}(%d+)') then
_, textik[1], _ = text:match('Рулетка:(%s+)%{FFFFFF%}(%d+)%$(.+)')
print('9st')
print('{00FFFF}'.. tag .. textik[1] ..'$')
end
Log:
[16:34:22.974773] (script) pinfo.lua: 1st
[16:34:22.974773] (error) pinfo.lua: E:\winter gta\moonloader\pinfo.lua:42: attempt to concatenate a nil value
stack traceback:
E:\winter gta\moonloader\pinfo.lua:42: in function 'callback'
E:\winter gta\moonloader\lib\samp\events\core.lua:77: in function 'process_event'
E:\winter gta\moonloader\lib\samp\events\core.lua:100: in function 'process_packet'
E:\winter gta\moonloader\lib\samp\events\core.lua:127: in function <E:\winter gta\moonloader\lib\samp\events\core.lua:126>
[16:34:22.982773] (error) pinfo.lua: Script died due to an error. (169DE38C)
Ещё по какой-то причине не работает sampSendDialogResponse
Lua:
function samp.onShowDialog(id,s,t,b1,b2,text)
if id == 999 and pm == true then
sampSendDialogResponse(999, 1, _, _)
pm = false
local textik = {}
if text:find('-(%d+) (%d+) (%d+)') then
textik[1], textik[2], textik[3], _ = text:match('-(%d+) (%d.)')
print('1st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'kk')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'.'.. textik[2] ..'kk')
end)
elseif text:find('- (%d+) (%d+) (%d+)') then
textik[1], textik[2], textik[3] = text:match('- (%d+) (%d.) (%d+)')
print('2nd')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'kk')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'.'.. textik[2] ..'kk')
end)
elseif text:find('-(%d+) (%d+)') then
textik[1], textik[2] = text:match('-(%d+) (%d.)')
print('3rd')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'k')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'.'.. textik[2] ..'k')
end)
elseif text:find('- (%d+) (%d+)') then
textik[1], textik[2] = text:match('- (%d+) (%d.)')
print('4st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..".".. textik[2] ..'k')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'.'.. textik[2] ..'k')
end)
elseif text:find('- (%d+)') then
_, textik[1], textik[2] = text:match('Рулетка:(%s+)%{FFFFFF%}- (%d+)')
print('5st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..'$')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'$')
end)
elseif text:find('-(%d+)') then
_, textik[1], textik[2] = text:match('Рулетка:(%s+)%{FFFFFF%}-(%d+)')
print('6st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..'$')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'$')
end)
elseif text:find('Рулетка:(%s+)%{FFFFFF%}-(%d+)') then
_, textik[1] = text:match('Рулетка:(%s+)%{FFFFFF%}-(%d+)')
print('7st')
print('{00FFFF}'.. tag ..'-'.. textik[1] ..'$')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' -' .. textik[1] ..'$')
end)
elseif text:find('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d+) (%d+)') then
_, textik[1], textik[2], textik[3] = text:match('Рулетка:(%s+)%{FFFFFF%}(%d+) (%d.) (%d+)')
print('8st')
print('{00FFFF}'.. tag .. textik[1] ..".".. textik[2] ..'kk')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' ' .. textik[1] ..".".. textik[2] ..'kk')
end)
elseif text:find('(%d+) (%d+)%$') then
textik[1], textik[2] = text:match('(%d+) (%d.)')
print('9st')
print('{00FFFF}'.. tag .. textik[1] ..".".. textik[2] ..'k')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' ' .. textik[1] ..".".. textik[2] ..'k')
end)
elseif text:find('Рулетка:(%s+)%{FFFFFF%}(%d+)') then
_, textik[1], _ = text:match('Рулетка:(%s+)%{FFFFFF%}(%d+)%$(.+)')
print('10st')
print('{00FFFF}'.. tag .. textik[1] ..'$')
lua_thread.create(function ()
wait(1000)
sampSendChat('/pm '.. pid .. ' ' .. textik[1] ..'$')
end)
end
end
end
Log:
[14:51:03.784766] (script) pinfo.lua: 9st
[14:51:03.784766] (error) pinfo.lua: E:\winter gta\moonloader\pinfo.lua:105: attempt to concatenate a nil value
stack traceback:
E:\winter gta\moonloader\pinfo.lua:105: in function 'callback'
E:\winter gta\moonloader\lib\samp\events\core.lua:77: in function 'process_event'
E:\winter gta\moonloader\lib\samp\events\core.lua:100: in function 'process_packet'
E:\winter gta\moonloader\lib\samp\events\core.lua:127: in function <E:\winter gta\moonloader\lib\samp\events\core.lua:126>
[14:51:03.791766] (error) pinfo.lua: Script died due to an error. (1636254C)
{AFAFAF}IP: {FFFFFF}secret
{AFAFAF}Рег. IP: {FFFFFF}secret
{FF0000}XP за час: {FFFFFF}secret XP
{FF0000}Денег за час: {FFFFFF}secret$
{FF0000}XP от клана за час: {FFFFFFsecret XP
{FF0000}Рулетка: {FFFFFF}secret$
{FF0000}Разбанов доступно: {FFFFFF}secret
{AFAFAF}Рег. IP: {FFFFFF}secret
{FF0000}XP за час: {FFFFFF}secret XP
{FF0000}Денег за час: {FFFFFF}secret$
{FF0000}XP от клана за час: {FFFFFFsecret XP
{FF0000}Рулетка: {FFFFFF}secret$
{FF0000}Разбанов доступно: {FFFFFF}secret
Lua:
local str = {}
str[1], str[2], str[3], str[4], str[5], str[6], str[7] = text:match('%{AFAFAF%}(.+)%{AFAFAF%}(.+)%{FF0000%}(.+)%{FF0000%}(.+)%{FF0000%}(.+)%{FF0000%}(.+)%{FF0000%}(.+)')
print(str[6])-- в этом случае выводит нужную мне строку, а именно - Рулетка: {FFFFFF}secret$
Последнее редактирование: