Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 11 из 11

Тема: /byplayer (DC_CMD)

  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Alanchick Посмотреть сообщение
    Чем плох мой вариант?
    Тем, что Вы изобретаете велосипед? Вот как выглядит реализация с вызовом OnPlayerText

    PHP код:
    CMD:byplayer(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Logged") == || PlayerInfo[playerid][pAdmin] <= 4) return true;  // Проверка на админ-уровень (с 5 админ-уровня)
        
    new playertext[145];
        if(
    sscanf(params"ds[144]"playertext)) return SendClientMessage(playerid, -1"Введите: /byplayer [id игрока] [текст]"); // Если игрок не ввел какое либо значение
        
    if(GetPVarInt(player"Logged") == 0) return SendClientMessage(playerid, -1"Игрок не авторизован!"); // Если игрок, id которого ввели, не авторизован
        
    if(playerid == player) return SendClientMessage(playerid, -1"Вы не можете указать свой ID!"); // Если игрок указал свой ID
        
    if(PlayerInfo[player][pAdmin] > 0) return SendClientMessage(playerid, -1"Вы не можете что то сказать от имени администраторa!"); // Если указанный игрок - администратор
        
    OnPlayerText(playertext);
        return 
    true;

    И никакого массива для форматирования строки, и никакого форматирования строки... Ещё есть вопросы о том, почему Ваш вариант хуже?

    P.S. И зачем Вы навязываете нам какие-то свои макросы? Зачем мне ваш SCM? Вам трудно было изменить 3 SCM на нормальную функцию? Этот макрос никакой ценности не несёт, а значит он тут ни к чему.

    Так же, как уже писали выше, Вы пытаетесь записать текст в обычную переменную (это я о переменной "text")

    Плюс ко всему, Вы записываете ID игрока в переменную "player", а уже потом используете какой-то "id".

    В общем, идея на тройку (бессмысленно, да и придумали её до Вас), а реализация на двойку

    UPD: Ещё вот эта проверка очень забавная. Что Вы тут проверяете? И как? О_о
    PHP код:
    if(PlayerInfo[playerid][pName] == PlayerInfo[player][pName]) return SendClientMessage(playerid, -1"Вы не можете указать свой ID!"); // Если игрок указал свой ID 
    Да и имя "player" для переменной не самое лучшее, ибо его легко спутать с "playerid". Сами же потом будете свои глазки напрягать для поиска нужного отрезка кода...

    Да и если Вы решили возвращать "bool", то извольте делать это до конца. А то в одном месте у Вас "true", а в другом - "1". Как сказал один очень умный человек: "любой компилятор C++ уже отругал бы тебя". В Вашем случае он бы Вас давно высек кнутом

    +, опять же, зачем Вы навязываете нам свой ненужный код? Что за pVar "Logged"? Может у меня уже по-своему реализована проверка на онлайн, а Вы мне свою пихаете... Неправильно это, сударь
    Последний раз редактировалось DeimoS; 09.01.2016 в 20:24.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  2. 3 пользователя(ей) сказали cпасибо:
    Alanchick (19.04.2016) Daniel_Cortez (09.01.2016) iWors (25.03.2016)
 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •