Реклама


Онлайн редактор HTML/CSS/JS кода- ( КЛИК ). Подробно - (Тут) | Онлайн COLOR PICKER - ( КЛИК ).
Лента - ( КЛИК ). BB-коды - ( КЛИК ).
iCoder.Uz

Показано с 1 по 7 из 7

Тема: Покозать урок по созданию команд dc_cmd


  1. ID сообщения 534 #1
    DIAZ вне форума

    Покозать урок по созданию команд dc_cmd

    Здравствуйте, те кто знает, или может показать урок команды на dc_cmd
    Спасибо.

  2. ID сообщения 536 #2
    remake вне форума

    Сообщение от DIAZ
    Здравствуйте, те кто знает, или может показать урок команды на dc_cmd
    Спасибо.
    Внешки нету что-ли?

  3. ID сообщения 537 #3
    impuLse #IT вне форума

    Пример обработки команд стандартным способом:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Пример создания команд для DC_CMD:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...
    Поблагодарили:


  4. ID сообщения 538 #4
    DIAZ вне форума

    Значить на стандартном, создается public для команд. Или я ошибаюсь?

  5. ID сообщения 540 #5
    impuLse #IT вне форума

    Сообщение от DIAZ
    Значить на стандартном, создается public для команд. Или я ошибаюсь?
    public OnPlayerCommandText(playerid, cmdtext[]) Это стандартный паблик .

    ---------- Сообщение Добавлено на 16:42 ---------- Предыдущая запись была на 16:30 ----------

    Допустим, у нас есть команда "/ban", которая банит на сервере игрока с указанным ID (пример: "/ban 65").
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Однако, кроме самой команды, потребуется ещё и обработать ID указанного игрока, а именно - извлечь этот ID из строки params (именно в ней обработчик DC_CMD передаёт параметры).
    Стандартным способом это делается с помощью функции strval, которая преобразует содержимое строки в число:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Но в данном способе есть много минусов:
    1)Если игрок ничего не ввёл, строка params будет пустой и функция strval вернёт 0, из-за чего можно нечаянно забанить игрока ID 0 (а если под ID 0 находитесь вы - забаните сами себя).
    2)Для обработки более чем 1 параметра, извлечения ID игроков и т.п. приходится вставлять в скрипт и много раз использовать пользовательские функции strtok, IsNumeric, ReturnUser и т.д.
    Чтобы избежать этих ошибок, придётся сделать дополнительные проверки на пустоту и подсчёт количества параметров (сосчитать все пробелы в строке и прибавить 1). Такая задача может оказаться слишком трудной для начинающих скриптеров.
    Однако, есть иное решение: плагин sscanf2.
    Использование:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    <исходная строка> - строка, из которой считываются нужные значения
    <форматная строка> - строка, в которой указывается, какого типа данные должны быть считаны из исходной строки (пример: "ds[40]")
    d, i - целое число
    f - вещественное число (Float)
    u - игрок (ID или часть имени)
    s[размер] - строка с указанной макс. длиной

    <переменные> - (сюрприз!) переменные, в которые будут записаны значения, полученные из исходной строки

    Для получения ID игрока в команде /ban плагин sscanf2 можно использовать следующим образом
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    В результате в переменной target будет получен ID игрока, которого нужно забанить.

    Но что делать, если ID всё же не был введён игроком?
    Здесь всё тоже предусмотрено: функция sscanf возвращает 1 в случае ошибки и 0 в случае успеха. Таким образом, проверку на неправильный ввод можно записать в виде ветвления if
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Если функция sscanf не сможет правильно считать параметры, она вернёт 1 (при этом в условиях всем ненулевым числам соответствует значение true), условие выполнится, игроку будет выведена подсказка о правильном использовании и команда прервёт свою работу.
    Поблагодарили:


  6. ID сообщения 4303 #6
    #Ulan вне форума

    Re: Покозать урок по созданию команд dc_cmd

    Сообщение от impuLse #IT
    Пример обработки команд стандартным способом:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Пример создания команд для DC_CMD:
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Я думаю тут params[] лишнее
    так же на
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

  7. ID сообщения 4304 #7
    impuLse #IT вне форума

    Re: Покозать урок по созданию команд dc_cmd

    Сообщение от #Ulan
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...

    Я думаю тут params[] лишнее
    так же на
    Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "PHP" BBкода...
    Уважаемый , Для того чтобы кому-то что-то объяснит , нужно показать полный пример , а не "оптимизированный" как вы думаете .
    Новичок увидев что тут нету params[] , будет думать что ненужно вообще это использовать.

Ваши права

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

12+