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

Тема: /hp [DC_CMD]

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

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    15
    Репутация:
    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
    Сообщений
    667
    Репутация:
    236 ±
    С такой проверкой лучшей обойтись IsPlayerConnected()

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

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

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

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

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

  7. Пользователь сказал cпасибо:
    Desulaid (09.01.2016)
  8. #5
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    ИМХО, гораздо интуитивнее (и, как бонус разработчику, проще в реализации) было бы сделать команды "/sethp", "/addhp" и "/subhp" ("/takehp" ?), чем пытаться уместить несколько команд в одну. Как-никак, названия запоминаются лучше, да и перепутать их сложнее, чем цифры.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Лишняя проверка:
    Цитата Сообщение от Alanchick Посмотреть сообщение
    if(!IsPlayerConnected(playerid))
    Ибо:
    SendClientMessage - вернет 0 в случии если игрок отключен от сервера.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

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

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

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

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

 

 

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

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

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

Ваши права

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