что тут не так Lua

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
почему этот скрипт крашит обосовываясь тем что authorNick это nil
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)') then
        local authorNick, authorID, suspectNick, suspectID, reportText text:match('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
украл из SF integration в консоли крч
[ML] (error) dialog — êîïèÿ.lua: D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:337: attempt to concatenate global 'authorNick' (a nil value)
stack traceback:
D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:337: in function 'callback'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:77: in function 'process_event'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:100: in function 'process_packet'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:127: in function <...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:126>
[ML] (error) dialog — êîïèÿ.lua: Script died due to an error. (101B3494)
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
убрал local теперь скрипт вообще загружатьтся не хочет
[ML] (error) dialog — копия.lua: D:\готовая норм игра мордор\moonloader\dialog — копия.lua:252: '=' expected near 'text'
[ML] (error) dialog — копия.lua: Script died due to an error. (101B1F34)
 

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
убрал local теперь скрипт вообще загружатьтся не хочет
[ML] (error) dialog — копия.lua: D:\готовая норм игра мордор\moonloader\dialog — копия.lua:252: '=' expected near 'text'
[ML] (error) dialog — копия.lua: Script died due to an error. (101B1F34)
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)') then
        authorNick, authorID, suspectNick, suspectID, reportText = text:match('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll = text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)') then
        authorNick, authorID, suspectNick, suspectID, reportText = text:match('[ЖБ] (%w+)[(%d+)] на (%w+)[(%d+)] прич.: (%w+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll = text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
добавил =, но скрипт не ловит репорт хотя должен, ошибок в косоли нет
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Заскринь как репорт выглядит
1670152110620.png

1670152127704.png


хелпппп мне срочно надо
 

Sadow

Известный
1,428
592
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('%[ЖБ%] (.+)[(%d+)] на (.+)[(%d+)] прич.: (.+)') then
        authorNick, authorID, suspectNick, suspectID, reportText = text:match('%[ЖБ%] (.+)[(%d+)] на (.+)[(%d+)] прич.: (.+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll = text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
Я конечно не эскперт, но попробуй
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('%[ЖБ%] (.+)[(%d+)] на (.+)[(%d+)] прич.: (.+)') then
        authorNick, authorID, suspectNick, suspectID, reportText = text:match('%[ЖБ%] (.+)[(%d+)] на (.+)[(%d+)] прич.: (.+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll = text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
Я конечно не эскперт, но попробуй
[ML] (error) dialog — êîïèÿ.lua: D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: attempt to concatenate global 'authorNick' (a nil value)
stack traceback:
D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: in function 'callback'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:77: in function 'process_event'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:100: in function 'process_packet'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:127: in function <...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:126>
[ML] (error) dialog — êîïèÿ.lua: Script died due to an error. (101A1C74)
 

Sadow

Известный
1,428
592
[ML] (error) dialog — êîïèÿ.lua: D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: attempt to concatenate global 'authorNick' (a nil value)
stack traceback:
D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: in function 'callback'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:77: in function 'process_event'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:100: in function 'process_packet'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:127: in function <...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:126>
[ML] (error) dialog — êîïèÿ.lua: Script died due to an error. (101A1C74)
А authorNick и остальные переменные хоть где-то используются в скрипте?
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А authorNick и остальные переменные хоть где-то используются в скрипте?
Lua:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end

это надо что бы словить репорт с диалога
 

Sadow

Известный
1,428
592
Lua:
local samp = require 'lib.samp.events'

function samp.onServerMessage(color, text)
    if text:find('%[ЖБ%] (.+)%[(%d+)%] на (.+)%[(%d+)%] прич.: (.+)') then
        authorNick, authorID, suspectNick, suspectID, reportText = text:match('%[ЖБ%] (.+)%[(%d+)%] на (.+)%[(%d+)%] прич.: (.+)')
      if text:find('Всего жалоб: (%d+)') then
        local reportAll = text:match('Всего жалоб: (%d+)')
        if reportAll then
            sampSendChat('/ar')
        end
      end
    end
end
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end
function samp.onShowDialog(id, style, title, button1, button2, text)
    if id == 988 then
        local listItem = sampGetListboxItemByText(reportAll..'|'..authorNick)
        sampSendDialogResponse(dialogId, 0, listItem, '')
    end
end
?
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
[ML] (error) dialog — êîïèÿ.lua: D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: attempt to concatenate global 'authorNick' (a nil value)
stack traceback:
D:\ãîòîâàÿ íîðì èãðà ìîðäîð\moonloader\dialog — êîïèÿ.lua:366: in function 'callback'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:77: in function 'process_event'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:100: in function 'process_packet'
...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:127: in function <...íîðì èãðà ìîðäîð\moonloader\lib\lib\samp\events\core.lua:126>
[ML] (error) dialog — êîïèÿ.lua: Script died due to an error. (101C23BC)

не работает