Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

Перейти к содержимому

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.

Фотография

Dc_Cmd

Dc_Cmd

Лучший Ответ JoKeR2020 , 11 Август 2015 - 18:55

Команда выдача ХП на стандартном командном процессоре:

 
if(strcmp(cmd,"/hp",true) == 0)   
{
    SetPlayerHealth(playerid,100);
    return 1;
}

На DC_CMD:

 
CMD:hp(playerid, params[])
{
    SetPlayerHealth(playerid,100);
    return 1;
}

При подключении zcmd, dc_cmd, все команды в public OnPlayerCommandText перестают работать, необходимо всё переводить на новый команд.проц.

Указывать params[] не обязательно, если они не используются.

 

Как переводить команды на DC_CMD с использованием параметров:

 

Для начало разберём для чего нужна функция sscanf

Данная функция разбивает строку на значения с помощью указанного формата.

Проще говоря она выполняет две функции одновременно (strtok и ReturnUser).

Аргументы:

 
sscanf(string[], format[], ...) 

string - исходная строка которую нужно разбить (в команде DC_CMD используется как params)

format - формат с помощью которого нужно разбить строку.

... - переменные в которые нужно разбить строку.

 

Пример:

 
new str[32] = "Первое 2 3.0";
new v1,v2,v3;
sscanf(str, "sdf", v1, v2, v3);
printf("v1 - %s | v2 - %d | v3 - %f", v1, v2, v3); 

Результатом такого кода будет такое сообщение в консоли:

v1 - Первое | v2 - 2 | v3 - 3.0

 

Символы формата:

s - строка (пример: hello)

u - имя/id игрока  (первый пример: JoKeR_2020. второй: 0. Оба варианта будут работать)

Если значение будет имя игрока, то в переменную будет возращён его ID (полезно для команд).

i или d - int значение (пример: 122)

l - логическое значение правда или ложь (пример: true)

 

Так же sscanf вернёт 1 если параметры отсутствуют. Или же 0 если разбить строку удалось и кол-во символов формата совпадает с значениями в исходной строке.

 

Использование sscanf в командах на DC_CMD/ZCMD

Примеры использование sscanf:

 
CMD:sethp(playerid, params[])
{
    if(sscanf(params, "ud", params[0], params[1])) return SendClientMessage(playerid, -1, "/hp [id/ник игрока] [значение]");
	SetPlayerHealth(params[0], params[1]); //params[0] - id игрока | params[1] - значение
	return 1;
} 
 
CMD:weather(playerid, params[])
{
	if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "/weather [id ïîãîäû]");
	SetPlayerWeather(params[0]);
	return 1;
} 

 

Если вы хорошо знаете основы Pawn, то с лёгкостью поймёте как писать команды на DC_CMD.

 

Так же рекомендую взглянуть:

forum.sa-mp.com/showthread.php?t=432330

forum.sa-mp.com/showthread.php?t=570927

Перейти к сообщению »


  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1
offline   Makc_Volkov

Makc_Volkov
  • 8
    • Сообщений: 24
    • Регистрация: 10.05.15

Как перевести любую команду в Dc_Cmd?
Нужен пример либо видео урок.


  • 1

#2
offline   Amfy

Amfy
  • 1609
    • Сообщений: 3 067
    • Регистрация: 24.01.14

Команда выдача ХП на стандартном командном процессоре:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

На DC_CMD:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

При подключении zcmd, dc_cmd, все команды в public OnPlayerCommandText перестают работать, необходимо всё переводить на новый команд.проц.


  • 0

#3
offline   JoKeR2020

JoKeR2020
  • 502
    • Сообщений: 1 798
    • Регистрация: 26.11.14
✓  Лучший Ответ

Команда выдача ХП на стандартном командном процессоре:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

На DC_CMD:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

При подключении zcmd, dc_cmd, все команды в public OnPlayerCommandText перестают работать, необходимо всё переводить на новый команд.проц.

Указывать params[] не обязательно, если они не используются.

 

Как переводить команды на DC_CMD с использованием параметров:

 

Для начало разберём для чего нужна функция sscanf

Данная функция разбивает строку на значения с помощью указанного формата.

Проще говоря она выполняет две функции одновременно (strtok и ReturnUser).

Аргументы:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

string - исходная строка которую нужно разбить (в команде DC_CMD используется как params)

format - формат с помощью которого нужно разбить строку.

... - переменные в которые нужно разбить строку.

 

Пример:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Результатом такого кода будет такое сообщение в консоли:

v1 - Первое | v2 - 2 | v3 - 3.0

 

Символы формата:

s - строка (пример: hello)

u - имя/id игрока  (первый пример: JoKeR_2020. второй: 0. Оба варианта будут работать)

Если значение будет имя игрока, то в переменную будет возращён его ID (полезно для команд).

i или d - int значение (пример: 122)

l - логическое значение правда или ложь (пример: true)

 

Так же sscanf вернёт 1 если параметры отсутствуют. Или же 0 если разбить строку удалось и кол-во символов формата совпадает с значениями в исходной строке.

 

Использование sscanf в командах на DC_CMD/ZCMD

Примеры использование sscanf:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

 

Если вы хорошо знаете основы Pawn, то с лёгкостью поймёте как писать команды на DC_CMD.

 

Так же рекомендую взглянуть:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.


Сообщение отредактировал JoKeR2020: 11 Август 2015 - 19:04

  • 1



Темы с аналогичным тегами Dc_Cmd

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Данную тему посетили 144 пользователей