Как перевести любую команду в 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 с использованием параметров:
Данная функция разбивает строку на значения с помощью указанного формата.
Проще говоря она выполняет две функции одновременно (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:
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
Перейти к сообщению »
#1
offline
Отправлено 11 Август 2015 - 16:25
offline
#2
offline
Отправлено 11 Август 2015 - 17:13
offline
Команда выдача ХП на стандартном командном процессоре:
На DC_CMD:
При подключении zcmd, dc_cmd, все команды в public OnPlayerCommandText перестают работать, необходимо всё переводить на новый команд.проц.
#3
offline
Отправлено 11 Август 2015 - 18:55
offline
Команда выдача ХП на стандартном командном процессоре:
На DC_CMD:
При подключении zcmd, dc_cmd, все команды в public OnPlayerCommandText перестают работать, необходимо всё переводить на новый команд.проц.
Указывать params[] не обязательно, если они не используются.
Как переводить команды на DC_CMD с использованием параметров:
Данная функция разбивает строку на значения с помощью указанного формата.
Проще говоря она выполняет две функции одновременно (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:
Если вы хорошо знаете основы Pawn, то с лёгкостью поймёте как писать команды на DC_CMD.
Так же рекомендую взглянуть:
Сообщение отредактировал JoKeR2020: 11 Август 2015 - 19:04
Темы с аналогичным тегами Dc_Cmd
![]() |
Pawn скриптинг →
Стол заказов →
Помогите перевести команду на DC_CMDАвтор Joccel227 , 22 июня 2017 |
|
|
|
![]()
|
Помогите перевести на Dc_CmdАвтор Makc_Volkov , 27 авг. 2015 |
|
|
|
|
Урок
Pawn скриптинг →
Изучаем язык pawn →
Использование extract в sscanf 2.8.1Автор JoKeR2020 , 17 авг. 2015 |
|
|
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных


Тема закрыта
Сообщений: 24
Регистрация:
Skype: maxbolunik74

