скрипт вроде работает а вроде и нет

Cypher

Активный
Автор темы
224
55
Версия MoonLoader
.026-beta
сделал скрипт который должен выдавать ник и айди случайного игрока
выдает раз 10, я радуюсь что чето сработало а потом оп ля какой то варнинг ебаный и всё опять по пизде
1669024413845.png

1:
require 'lib.moonloader'


function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('Rplayer', randomp)
    while true do
        wait(0)
        ids = sampGetPlayerCount(streamed == false)
        rand = math.random(0, ids)
        name = sampGetPlayerNickname(rand)     
   end
end

function randomp(arg)
    sampAddChatMessage("{FFC0CB}[RPlayer]: {FFFFFF}ID Случайного игрока: {FFC0CB}".. rand .. " {FFFFFF}И его имя {FFC0CB}" .. name, -1)
end

1669024463075.png


1669024517347.png

даже когда просто в игру с этим скриптом захожу до меня этот варнинг доебуеца и сразу моментом крашит скрипт
 
Решение
крашит потому что ты пытаешься получить ник игрока которого нет на сервере
Lua:
function getRandomPlayerName()
    local id = math.random(0, sampGetPlayerCount(false))
    if sampIsPlayerConnected(id) then
        sampGetPlayerNickname(id)
    else
        getRandomPlayerName()   
    end
end

что это?!
1669024848897.png

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,747
11,157
крашит потому что ты пытаешься получить ник игрока которого нет на сервере
Lua:
function getRandomPlayerName()
    local id = math.random(0, sampGetPlayerCount(false))
    if sampIsPlayerConnected(id) then
        sampGetPlayerNickname(id)
    else
        getRandomPlayerName()   
    end
end

что это?!
1669024848897.png
 
  • Нравится
Реакции: qdIbp

Cypher

Активный
Автор темы
224
55
крашит потому что ты пытаешься получить ник игрока которого нет на сервере
Lua:
function getRandomPlayerName()
    local id = math.random(0, sampGetPlayerCount(false))
    if sampIsPlayerConnected(id) then
        sampGetPlayerNickname(id)
    else
        getRandomPlayerName()
    end
end

что это?!
Посмотреть вложение 178645
1669024972686.png

1:
    if sampIsPlayerConnected(id) then
        sampGetPlayerNickname(id)
    else
        getRandomPlayerName()
Код:

если зарандомленный айди подключен то дать ник игрока, а если нет то дать просто рандом ник?
или я чет не так понял
 

Cypher

Активный
Автор темы
224
55
Если рандомный id не подключен то функция начинаит рандомить по новой
а как тогда перенести это в беск. цикл?
1669025233533.png


Исправил
Коми интересно как -
1669025391992.png

просто добавил переключатель

#govnocode
 
  • Bug
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,383
1,143
зач в беск цикл? если просто по команде можео вызывать
Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('Rplayer', getRandomPlayerName)
    wait(-1)
end

function getRandomPlayerName()
    local id = math.random(0, sampGetPlayerCount(false))
    if sampIsPlayerConnected(id) then
        sampGetPlayerNickname(id)
    else
        getRandomPlayerName() 
    end
end
Ну если так надо то
Lua:
function main()
    while not isSampAvailable() do wait(0) end
    --sampRegisterChatCommand('Rplayer', randomp) -- тогда и команда нахер не нужна
    while true do wait(0)
        local id = math.random(0, sampGetPlayerCount(false))
        if sampIsPlayerConnected(id) then
             sampAddChatMessage("[RPlayer]: {FFFFFF}ID Случайного игрока: {FFC0CB}"..id.. " {FFFFFF}И его имя {FFC0CB}" .. sampGetPlayerNickname(id), 0xFFC0CB)
        end
    end
end

а как тогда перенести это в беск. цикл?Посмотреть вложение 178647

Исправил
Коми интересно как -
Посмотреть вложение 178648
просто добавил переключатель

#govnocode
какой херней ты маешься :\
Это так не работает

Lua:
local act = false
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('Rplayer', function()
        act = not act
        sampAddChatMessage('[RPlayer]: '..(act and 'on' or 'off'),-1)
    end)
    while true do wait(0)
        if act then
            local id = math.random(0, sampGetPlayerCount(false))
            if sampIsPlayerConnected(id) then
                   sampAddChatMessage("[RPlayer]: {FFFFFF}ID Случайного игрока: {FFC0CB}"..id.. " {FFFFFF}И его имя {FFC0CB}" .. sampGetPlayerNickname(id), 0xFFC0CB)
                   act = false
            end
        end
    end
end
 
Последнее редактирование: