Lua | Скриптик отыгровки /me

Looney Koldyin

Участник
Автор темы
33
6
Короче... пишу скрипт, пытаюсь понять в чем моя ошибка, суть его в том, что если id совпадает с моим то пишу /me поменял себе, если не совпадает с моим, но игрок на сервере есть, то /me передал форму *ник игрока*. Всё прекрасно кроме одного - он не работает, а именно какой бы id не ввел, показывает одно и то же, то есть буду менять себе покажет /me меняет себе, ввиду не свой айди, всё равно покажет /me меняет себе, ну и наоборот.

ДАННЫЙ УЧАСТОК КОДА НЕМНОГО ПЕРЕДЕЛАН, СМОТРИТЕ ОТВЕТ НИЖЕ!!
функция:
function changeskin(id)
    if id == nil or id == "" then
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) or id == myId then
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id)
        else  
            sampSendChat('/me достал новую униформу в пакете, передал её ' .. getFirstName(sampGetPlayerNickname(id)) .. '.' )
            sampSendChat('/changeskin '..id)
        end
    end
end
 
Последнее редактирование:
Решение
Cейчас у меня немного по-другому выглядит эта функция, если сможете помочь, смотрите пожалуйста вот этот участок кода:
Функция выдачи скина.:
function changeskin(id)
    if id == nil or id == "" then
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) or id == myId then
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id)
        else
            if id ~= select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
                sampSendChat('/me достал новую униформу в пакете, передал её ' .. getFirstName(sampGetPlayerNickname(id)) .. '.' )
                sampSendChat('/changeskin '..id)...

Looney Koldyin

Участник
Автор темы
33
6
Cейчас у меня немного по-другому выглядит эта функция, если сможете помочь, смотрите пожалуйста вот этот участок кода:
Функция выдачи скина.:
function changeskin(id)
    if id == nil or id == "" then
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) or id == myId then
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id)
        else 
            if id ~= select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then   
                sampSendChat('/me достал новую униформу в пакете, передал её ' .. getFirstName(sampGetPlayerNickname(id)) .. '.' )
                sampSendChat('/changeskin '..id)
            else
               if sampIsPlayerConnected(id) == false then sampAddChatMessage('Такого игрока нет на сервере',0xCD1F1F) end
            end
        end
    end
end
 

Looney Koldyin

Участник
Автор темы
33
6
Я упрощу немного вашу работу, ошибка в том что id == myId возвращает фолс даже если id совпадает с myId, я не понимаю почему, может их надо в один тип конвертировать и там типа "тождественно равно", не понимаю почему так. Еще больше упростил, именно переменная id - не равняется числовому значению, с select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) всё в порядке, а вот с айдишником который приходит как аргумент - проблемы
 

bottom_text

Известный
675
317
Cейчас у меня немного по-другому выглядит эта функция, если сможете помочь, смотрите пожалуйста вот этот участок кода:
Функция выдачи скина.:
function changeskin(id)
    if id == nil or id == "" then
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) or id == myId then
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id)
        else
            if id ~= select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
                sampSendChat('/me достал новую униформу в пакете, передал её ' .. getFirstName(sampGetPlayerNickname(id)) .. '.' )
                sampSendChat('/changeskin '..id)
            else
               if sampIsPlayerConnected(id) == false then sampAddChatMessage('Такого игрока нет на сервере',0xCD1F1F) end
            end
        end
    end
end
Lua:
function changeskin(id)   
    if id == nil or id == ""  then   
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        id = tonumber(id)
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then 
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id) 
           
        else     
            if sampIsPlayerConnected(id) then     
                sampSendChat('/me достал новую униформу в пакете, передал её ' .. sampGetPlayerNickname(id) .. '.' )
                sampSendChat('/changeskin '..id)
            else 
                sampAddChatMessage('Такого игрока нет на сервере',0xCD1F1F) 
            end 
        end 
    end
end
 
Последнее редактирование:
  • Влюблен
Реакции: Looney Koldyin

Looney Koldyin

Участник
Автор темы
33
6
Lua:
function changeskin(id)  
    if id == nil or id == ""  then  
        sampAddChatMessage('Вы ввели неверный id игрока', 0xCD1F1F)
    else
        id = tonumber(id)
        if id == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
            sampSendChat('/me достал пакет с униформой, переоделся.')
            sampSendChat('/changeskin '..id)
          
        else    
            if sampIsPlayerConnected(id) then    
                sampSendChat('/me достал новую униформу в пакете, передал её ' .. sampGetPlayerNickname(id) .. '.' )
                sampSendChat('/changeskin '..id)
            else
                sampAddChatMessage('Такого игрока нет на сервере',0xCD1F1F)
            end
        end
    end
end
спасибо))) я пытался toString сделать ))))) Работает