Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

По созданию многоуровневых команд

Статус
В этой теме нельзя размещать новые ответы.

pozitiv4eg

Специалист
Здравствуйте дорогие форумчане. Сегодня хочу научить вас создавать многоуровневые команды. Начнем пожалуй с того что любая команда будет начинаться со строк
PHP:
if(strcmp(cmd, "/dropmoney", true) == 0)
Конечно в каждом случее есть свое исключение, но это тема посвящена другому.
Начнем по порядку
PHP:
if(strcmp(cmd, "/dropmoney", true) == 0)
Где /dropmoney Ваша команда.
Далее мы открываем фигурные скобки т.к Далее интерпретатору нужно показать что начинается какое либо действие.
То есть код у нас выглядит уже так
PHP:
(strcmp(cmd, "/dropmoney", true) == 0) 
    {
Далее нам нужно точно знать как команда работает, чтобы определить проверят ли нам онлайн игрок или же нет, если да то следует код
PHP:
 if(strcmp(cmd, "/dropmoney", true) == 0) 
    { 
    if(IsPlayerConnected(playerid)) 
    {
Далее нам потребуется З\знать хотя бы основные функции pawn языка(о них можно почитать тут ) Далее мы делаем проверку на то есть ли деньги у человека
PHP:
 if(strcmp(cmd, "/dropmoney", true) == 0) 
    { 
    if(IsPlayerConnected(playerid)) 
    { 
    if(GetPlayerMoney(playerid) < 1) // ссылка на описания функции выше(Проверяет кол-во денег, если 0 то выводит "Тебе нечего выкинуть!"
    { 
    SendClientMessage(playerid,COLOR_RED,"Тебе нечего выкинуть!"); 
    return 1; // Возвращает в исходный вид.
    }
Идем далее Теперь нам нужно показать что в команде будет пробел после чего будет введено число или символ
PHP:
    if(strcmp(cmd, "/dropmoney", true) == 0) 
    { 
    if(IsPlayerConnected(playerid)) 
    { 
    if(GetPlayerMoney(playerid) < 1) 
    { 
    SendClientMessage(playerid,COLOR_RED,"Тебе нечего выкинуть!"); 
    return 1; 
    } 
    tmp = strtok(cmdtext, idx); 
    if(!strlen(tmp)) // То о чем идет речь tmp теперь равно числу веденному после команды к примеру /dropmoney 25 tmp будет равно теперь 25
    { 
    SendClientMessage(playerid, COLOR_ISPOLZUY, "Используйте: /dropmoney [кол-во]"); 
    return 1; 
    }
Так же если strok будет выдавать ошибку добавляем фукцию
PHP:
strtok(const string[], &index) 
{ 
    new length = strlen(string); 
    while ((index < length) && (string[index] <= ' ')) 
    { 
        index++; 
    } 
  
    new offset = index; 
    new result[20]; 
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) 
    { 
        result[index - offset] = string[index]; 
        index++; 
    } 
    result[index - offset] = EOS; 
    return result; 
}
Ну а далее думаю все наглядно и просто. Если будут вопросы/исправления прошу оставлять комментарии в теме
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу