Как сделать чтобы lua скрипт запускался только с определенным ником?

D0oDo0

Новичок
Автор темы
6
2
Типо нужно чтобы если ник Kyle_Walters - скрипт запускался, а если ник другой, то не запускался.
 

D0oDo0

Новичок
Автор темы
6
2
Lua:
-- main
if sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) ~= "Kyle_Walters" then -- Если ник не Kyle_Walters
    thisScript():unload() -- То выгрузит скрипт
end
Cталкиваюсь с проблемой что даже если зайти под таким ником скрипт все равно не работает

Lua:
require "lib.moonloader"
require "lib.sampfuncs"

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(100) end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    name = sampGetPlayerNickname(id)
    if name ~= "Kyle_Walters" then
        sampAddChatMessage("Ваш ник, не Kyle_Walters, поэтому скрипт останавливает свою работу.", -1)
        thisScript():unload()
    end
  while true do
    wait(0)
  end
end

Пробовал такой вариант, но тут так-же у меня скрипт не работает даже если правильный ник.
 
Последнее редактирование:

meowprd

Тот самый Котовский
Проверенный
1,283
711
Cталкиваюсь с проблемой что даже если зайти под таким ником скрипт все равно не работает

Lua:
require "lib.moonloader"
require "lib.sampfuncs"

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(100) end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    name = sampGetPlayerNickname(id)
    if name ~= "Kyle_Walters" then
        sampAddChatMessage("Ваш ник, не Kyle_Walters, поэтому скрипт останавливает свою работу.", -1)
        thisScript():unload()
    end
  while true do
    wait(0)
  end
end

Пробовал такой вариант, но тут так-же у меня скрипт не работает даже если правильный ник.

Lua:
if sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) ~= "NICK_NAME" then
    thisScript():unload()
    return -- так как скрипт не моментально выгружается и успеет выполниться часть кода дальше
end

а еще лучше сделать так
Lua:
if not sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):find("NICK_NAME") then
    thisScript():unload()
    return
end
 
  • Нравится
Реакции: D0oDo0

D0oDo0

Новичок
Автор темы
6
2
Lua:
if sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) ~= "NICK_NAME" then
    thisScript():unload()
    return -- так как скрипт не моментально выгружается и успеет выполниться часть кода дальше
end

а еще лучше сделать так
Lua:
if not sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):find("NICK_NAME") then
    thisScript():unload()
    return
end
Второй вариант попробовал - заработало все. Спасибо. А можешь еще сделать чтобы проверка была тип при спавне, чтобы нужно было зайти сначало ну или тип того
 

meowprd

Тот самый Котовский
Проверенный
1,283
711
Второй вариант попробовал - заработало все. Спасибо. А можешь еще сделать чтобы проверка была тип при спавне, чтобы нужно было зайти сначало ну или тип того
Lua:
while not sampIsLocalPlayerSpawned() do wait(0) end
 

Impossible In Rage

Известный
955
247
Второй вариант попробовал - заработало все. Спасибо. А можешь еще сделать чтобы проверка была тип при спавне, чтобы нужно было зайти сначало ну или тип того
сделай проверку , что player существует
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,747
11,157
можешь расписать полностью для чайников?
1635190908918.png

когда игрок не заспавнен делать задержка 0
или
ожидание до тех пор пока игрок не будет заспавнен
 

D0oDo0

Новичок
Автор темы
6
2
Посмотреть вложение 119152
когда игрок не заспавнен делать задержка 0
или
ожидание до тех пор пока игрок не будет заспавнен
в плане как соединить
Lua:
if not sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):find("NICK_NAME") then
    thisScript():unload()
    return
end
и
Lua:
while not sampIsLocalPlayerSpawned() do wait(0) end
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,747
11,157
в плане как соединить
Lua:
if not sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))):find("NICK_NAME") then
    thisScript():unload()
    return
end
и
Lua:
while not sampIsLocalPlayerSpawned() do wait(0) end
проверку на спавн вставь после строки с isSampAvailable