По кодингу.

Looney Koldyin

Участник
Автор темы
33
6
Всем привет, у меня два вопроса:
1) В С#, lua и ваще ООПшных языках очень плохо разбираюсь. У меня есть функция которая возвращает мне ник по id, как я понял в виде string (хоть это и не указано нигде). Хочу выделить из ника только Имя, а лучше еще конвертировать его в Русский язык, типа функция получает Vladimir_Pupkin возвращает Владимир, ну если это не возможно сделать нормально (потому что переводить реально не просто там сочитание букв по разному читаются), тогда просто Vladimir (просто подстроку)

2) Второй вопрос заключается в том, что почему-то у меня не работает частный случай, когда я пытаюсь выдать себе форму, просто не работает команда, я пытался с помощью toString преобразовать айдишники в строку, что бы тип данных совпадал, все равно не помогло, в чем мои ошибки?
Функция выдачи скина.:
-- Май Айди у меня описано сверху, просто для наглядности указал.
local myId = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED));

function changeskin(id)
    if (id == nil or id == '' or sampIsPlayerConnected(id) == false) then
        sampAddChatMessage('Вы не указали id игрока, или данный id не подключен к серверу.', 0xCD1F1F) 
    end
    if id == myId then
        sampSendChat('/me достав упакованую униформу, надел её на себя.')
        sampSendChat('/сhangeskin ',id)
    else
        sampSendChat('/me передает пакет с новой униформой человеку напротив.')
        sampSendChat('/сhangeskin ',id)
    end  end
    id=''
end
 
Решение
У меня есть функция которая возвращает мне ник по id, как я понял в виде string (хоть это и не указано нигде)
А в каком виде ты хотел принять ник?
из ника только Имя
Lua:
function getFirstName(nick)
    if nick:find('.+_.+') then
        return nick:match('(.+)_.+')
    else
        return nick
    end
end
Используй так:

Lua:
local nick = sampGetPlayerNickname(0)
print(getFirstName(nick))
2) Второй вопрос заключается в том, что почему-то у меня не работает частный случай, когда я пытаюсь выдать себе форму, просто не работает команда, я пытался с помощью toString преобразовать айдишники в строку, что бы тип данных совпадал, все равно не помогло, в чем мои ошибки?
Не правильно соединяешь строку с числом...

CaJlaT

Овощ
Модератор
2,824
2,652
У меня есть функция которая возвращает мне ник по id, как я понял в виде string (хоть это и не указано нигде)
А в каком виде ты хотел принять ник?
из ника только Имя
Lua:
function getFirstName(nick)
    if nick:find('.+_.+') then
        return nick:match('(.+)_.+')
    else
        return nick
    end
end
Используй так:

Lua:
local nick = sampGetPlayerNickname(0)
print(getFirstName(nick))
2) Второй вопрос заключается в том, что почему-то у меня не работает частный случай, когда я пытаюсь выдать себе форму, просто не работает команда, я пытался с помощью toString преобразовать айдишники в строку, что бы тип данных совпадал, все равно не помогло, в чем мои ошибки?
Не правильно соединяешь строку с числом (строкой), нужно так:
sampSendChat('/сhangeskin '..id)
 

Looney Koldyin

Участник
Автор темы
33
6
А в каком виде ты хотел принять ник?
В строке с отыгровкой где выдаю скин игроку в /me передал форму Nick(имя)

Остальное проверю, немного неудобно с телефона как буду дома отвечу, спасибо.
 

Looney Koldyin

Участник
Автор темы
33
6
А в каком виде ты хотел принять ник?
в каком возможно, желательно в строке, что бы можно было её обработать.
Используй так:
Сейчас попробую.
Не правильно соединяешь строку с числом (строкой), нужно так:
sampSendChat('/сhangeskin '..id)
Понял, сейчас исправлю и попробую.