Вопрос по sampSendChat

masiiksmasik3134

Участник
Автор темы
33
2
Версия MoonLoader
Другое
Привет, как можно сделать команду, в которую надо ввести id свой, а потом выдается оружие
sampSendChat("/givegun *id* 24 1000")
 
Решение
Lua:
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
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
local ставить вместо _?
Ляяяя, local не надо, _ оставь всё как я сделал
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
Это обязательно в main и всё будет гуд

Albertio

Attention! Thanks for your attention.
887
717
Lua:
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
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
local ставить вместо _?
Ляяяя, local не надо, _ оставь всё как я сделал
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
Это обязательно в main и всё будет гуд
 
Последнее редактирование:
  • Нравится
Реакции: masiiksmasik3134

Quasper

Известный
835
354
Lua:
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).
Во вторых, при реконнекте айдишник в скрипте останется прежним, а серверно он сменится, пихал бы его в беск цикл раз ты его создал...
В третьих, нахрена в таком скрипте беск цикл, правильней будет остановить поток после регистрации команды если не нужно производить какие то бесконечные вычисления(по типу получения айди, никнейма, цвета и пр)
Правильней код будет выглядеть так:
Lua:
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
 
  • Нравится
Реакции: r0den