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

Тема: /hp [DC_CMD]

  1. #1
    Аватар для Alanchick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    16
    Репутация:
    9 ±

    /hp [DC_CMD]

    Доброго времени суток, Уважаемые пользователи Pro-Pawn.Ru!
    Пришла идея написать команду /hp, которая будет, так сказать, многофункциональная.
    У нее есть 3 типа, это:
    • Установить
    • Прибавить
    • Убавить


    Установить - устанавливает указанное кол-во HP.
    Прибавить - прибавляет указанное кол-во HP.
    Убавить - убавляет указанное кол-во HP.

    Синтаксис команды:
    Код:
    /hp <id> <тип> <кол-во>
    Перейдем к коду:
    Сама команда:
    PHP код:
    CMD:hp(playeridparams[])
    {
        new
            
    targetid,
            
    type,
            
    hp,
            
    Float:health;
            
        if(!
    IsPlayerConnected(playerid))
            return 
    true
            
        if(
    PlayerInfo[playerid][pAdmin] < 4)
            return 
    true;
            
        if(
    sscanf(params"ddd"targetidtypehp))
        {
             
    SendClientMessage(playerid, -1"Введите: /hp [id] [тип] [кол-во]");
             
    SendClientMessage(playerid, -1"{008000}Типы:");
             
    SendClientMessage(playerid, -1"{FFFFFF}1 {008000}- Установить");
             
    SendClientMessage(playerid, -1"{FFFFFF}2 {008000}- Прибавить");
             return 
    SendClientMessage(playerid, -1"{FFFFFF}3 {008000}- Убавить");
        }
            
        if(!
    IsPlayerConnected(targetid))
            return 
    SendClientMessage(playerid, -1"Игрок не авторизован!");
                
        if(
    hp 100 || hp 0)
            return 
    SendClientMessage(playerid, -1"HP не может быть больше 100 и меньше 0!");
            
        switch(
    type)
        {
            case 
    1:
                return 
    SetPlayerHealth(targetidhp);
            case 
    2:
            {
                
    GetPlayerHealth(targetidhealth);
                return 
    SetPlayerHealth(targetidhealth+hp);
            }
            case 
    3:
            {
                
    GetPlayerHealth(targetidhealth);
                return 
    SetPlayerHealth(targetidhealth-hp);
            }
            default:
                return 
    SendClientMessage(playerid, -1"Тип не может быть более 3 и менее 1!");
        }
        return 
    1;

    Скриншоты:
      Открыть/закрыть






    Автор: Alanchick
    Жду адекватной критики.
    Последний раз редактировалось Alanchick; 09.01.2016 в 00:09.
    Команды:
    [CMD]/byplayer
    [CMD] /virtmir
    [CMD] /hp
    Функции:
    [FUNCTION] SetPlayerTimeSkin

    Код:
    Хочешь спрятать дерево — спрячь его в лесу // Конан Дойл, «Записки о Шерлоке Холмсе»

  2. Пользователь сказал cпасибо:
    #enotik (09.01.2016)
  3. #2
    Аватар для Desulaid
    Младший сержант

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    660
    Репутация:
    235 ±
    С такой проверкой лучшей обойтись IsPlayerConnected()

  4. Пользователь сказал cпасибо:
    #enotik (09.01.2016)
  5. #3
    Аватар для #enotik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    8
    Репутация:
    0 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    С такой проверкой лучшей обойтись IsPlayerConnected()
    Согласен с тобой
    Весь-весь-весь приличный люд, превратился в сброд, не-не-не унять народ, здравствуй Новый Год.

  6. #4
    Аватар для Alanchick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    16
    Репутация:
    9 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    С такой проверкой лучшей обойтись IsPlayerConnected()
    Прислушался, исправил :)
    Команды:
    [CMD]/byplayer
    [CMD] /virtmir
    [CMD] /hp
    Функции:
    [FUNCTION] SetPlayerTimeSkin

    Код:
    Хочешь спрятать дерево — спрячь его в лесу // Конан Дойл, «Записки о Шерлоке Холмсе»

  7. Пользователь сказал cпасибо:
    Desulaid (09.01.2016)
  8. #5
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,767
    Репутация:
    2256 ±
    ИМХО, гораздо интуитивнее (и, как бонус разработчику, проще в реализации) было бы сделать команды "/sethp", "/addhp" и "/subhp" ("/takehp" ?), чем пытаться уместить несколько команд в одну. Как-никак, названия запоминаются лучше, да и перепутать их сложнее, чем цифры.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  9. Пользователь сказал cпасибо:
    VVWVV (09.01.2016)
  10. #6
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,467
    Репутация:
    265 ±
    Лишняя проверка:
    Цитата Сообщение от Alanchick Посмотреть сообщение
    if(!IsPlayerConnected(playerid))
    Ибо:
    SendClientMessage - вернет 0 в случии если игрок отключен от сервера.

  11. #7
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,104
    Репутация:
    739 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    ИМХО, гораздо интуитивнее (и, как бонус разработчику, проще в реализации) было бы сделать команды "/sethp", "/addhp" и "/subhp" ("/takehp" ?), чем пытаться уместить несколько команд в одну. Как-никак, названия запоминаются лучше, да и перепутать их сложнее, чем цифры.
    Но придётся запоминать несколько команд, я предпочитаю такой вариант:
    Код:
    /health <set/get/give> <id/ник/all> <количество/>

  12. #8
    Аватар для Alanchick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    16
    Репутация:
    9 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    ИМХО, гораздо интуитивнее (и, как бонус разработчику, проще в реализации) было бы сделать команды "/sethp", "/addhp" и "/subhp" ("/takehp" ?), чем пытаться уместить несколько команд в одну. Как-никак, названия запоминаются лучше, да и перепутать их сложнее, чем цифры.
    Мне кажется, мой вариант проще.
    Ибо вместо трех команд - одна.
    Команды:
    [CMD]/byplayer
    [CMD] /virtmir
    [CMD] /hp
    Функции:
    [FUNCTION] SetPlayerTimeSkin

    Код:
    Хочешь спрятать дерево — спрячь его в лесу // Конан Дойл, «Записки о Шерлоке Холмсе»

 

 

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

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

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

Ваши права

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