function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand('ggun', cmd_ggun)
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
while true do
wait(0)
end
end
function cmd_ggun()
sampSendChat("/givegun " .. id .. " 24 1000")
end
Ляяяя, local не надо, _ оставь всё как я сделал
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
Это обязательно в main и всё будет гуд
Во первых, получение айдишника до коннекта сампа, это нецелесообразно ибо при загрузке сампа ты ещё не подключен к серверу и функция получит локальный айди(тобишь 0).
Во вторых, при реконнекте айдишник в скрипте останется прежним, а серверно он сменится, пихал бы его в беск цикл раз ты его создал...
В третьих, нахрена в таком скрипте беск цикл, правильней будет остановить поток после регистрации команды если не нужно производить какие то бесконечные вычисления(по типу получения айди, никнейма, цвета и пр)
Правильней код будет выглядеть так:
function main()
while not isSampLoaded() and not isSampfuncsLoaded() do wait(100) return end
sampRegisterChatCommand("ggun", function() local res, id = sampGetPlayerIdByCharHandle(playerPed)
sampSendChat("/givegun " .. id .. " 24 1000")
end)
wait(-1)
end