Краш

Сергей

Известный
Автор темы
150
9
Версия MoonLoader
.027.0-preview
Lua:
require"lib.sampfuncs"
require'lib.moonloader' -- подгрузка основной библиотеки
local sampev = require 'lib.samp.events' -- подгрузка библиотеки ивентов
local key = require 'vkeys'
local imgui = require 'imgui'        -- загрузка имгуи
local encoding = require 'encoding' -- загрузка библиотеки encoding
encoding.default = 'CP1251' -- кодировка по умолчанию
u8 = encoding.UTF8  -- псевдоним для кодировки
local samp = require ('samp.events')
local working = true
local answer =  0
local inicfg = require 'inicfg'
local mem = require "memory"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('nrpnick', nicks)
end
function nicks()
    for i = 0, sampGetMaxPlayerId(false) do
        if not sampGetPlayerNickname(i):match('_') then
            print(i, sampGetPlayerNickname(i))
            sampAddChatMessage(string.format('%d %s', i, sampGetPlayerNickname(i)), -1)
        end
    end
end
После воода команды /nrpnick происходит краш игры.
Адрес сбоя: 0x689652B0
Причина сбоя: нарушение прав доступа

Значение регистров:
EAX: 0x00000000 ECX: 0x00000000
EDX: 0x00000000 EBX: 0x044601C0
ESP: 0x0177ECD0 EBP: 0x01A24650
ESI: 0x0177EB1C EDI: 0x00000001

Стек вызовов:
0: MoonLoader.asi + 0xF52B0
1: lua51.dll + 0x280D
2: lua51.dll + 0x73EB
3: MoonLoader.asi + 0x92B2
4: MoonLoader.asi + 0x125DC9
5: SAMPFUNCS.asi + 0x1FED5
6: CLEO.asi + 0x249C6
7: CLEO.asi + 0x228A0
8: SAMPFUNCS.asi + 0x974E7
9: SAMPFUNCS.asi + 0x974FC
Как пофиксить?
 
Решение
Ты не добавил проверку на подкоючён ли юзер к серву. Перед получением никнейма.

Lua:
require"lib.sampfuncs"
require'lib.moonloader' -- подгрузка основной библиотеки
local sampev = require 'lib.samp.events' -- подгрузка библиотеки ивентов
local key = require 'vkeys'
local imgui = require 'imgui'        -- загрузка имгуи
local encoding = require 'encoding' -- загрузка библиотеки encoding
encoding.default = 'CP1251' -- кодировка по умолчанию
u8 = encoding.UTF8  -- псевдоним для кодировки
local samp = require ('samp.events')
local working = true
local answer =  0
local inicfg = require 'inicfg'
local mem = require "memory"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end...

Kolbasa241

Известный
213
57
Ты не добавил проверку на подкоючён ли юзер к серву. Перед получением никнейма.

Lua:
require"lib.sampfuncs"
require'lib.moonloader' -- подгрузка основной библиотеки
local sampev = require 'lib.samp.events' -- подгрузка библиотеки ивентов
local key = require 'vkeys'
local imgui = require 'imgui'        -- загрузка имгуи
local encoding = require 'encoding' -- загрузка библиотеки encoding
encoding.default = 'CP1251' -- кодировка по умолчанию
u8 = encoding.UTF8  -- псевдоним для кодировки
local samp = require ('samp.events')
local working = true
local answer =  0
local inicfg = require 'inicfg'
local mem = require "memory"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('nrpnick', nicks)
end
function nicks()
    for i = 0, sampGetMaxPlayerId(false) do
        if sampIsPlayerConnected(i) then
        if not sampGetPlayerNickname(i):match('_') then
            print(i, sampGetPlayerNickname(i))
            sampAddChatMessage(string.format('%d %s', i, sampGetPlayerNickname(i)), -1)
        end
        end
    end
end
 

Сергей

Известный
Автор темы
150
9
Ты не добавил проверку на подкоючён ли юзер к серву. Перед получением никнейма.

Lua:
require"lib.sampfuncs"
require'lib.moonloader' -- подгрузка основной библиотеки
local sampev = require 'lib.samp.events' -- подгрузка библиотеки ивентов
local key = require 'vkeys'
local imgui = require 'imgui'        -- загрузка имгуи
local encoding = require 'encoding' -- загрузка библиотеки encoding
encoding.default = 'CP1251' -- кодировка по умолчанию
u8 = encoding.UTF8  -- псевдоним для кодировки
local samp = require ('samp.events')
local working = true
local answer =  0
local inicfg = require 'inicfg'
local mem = require "memory"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('nrpnick', nicks)
end
function nicks()
    for i = 0, sampGetMaxPlayerId(false) do
        if sampIsPlayerConnected(i) then
        if not sampGetPlayerNickname(i):match('_') then
            print(i, sampGetPlayerNickname(i))
            sampAddChatMessage(string.format('%d %s', i, sampGetPlayerNickname(i)), -1)
        end
        end
    end
end
Чёт не работает