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

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

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

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

[ZCMD+ sscanf] учимся писать с помощью параметров

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

James_Braga

Компетентный
Видел тему как некий ChIp* использует Zcmd+sscanf вот его тема ССЫЛКА

Скажу вам так без обид ChIp*, но так пишут или новички или те кто ни знает как правильно использовать слияние zcmd sscanf.



как он пишет:


И так научимся делать команды с одним параметром <--- он сказал с параметром а сам пишет переменную
Например :/skin [id]
Эта команда даст нам скин который мы введем

PHP:
COMMAND:skin(playerid, params[]){//команды надо вводить без "/"  
    new skinid;//переменая куда занесется значение которое введет игрок  
    if(sscanf(params,"d", skinid))//занесем значение которе ввел игрок в переменую skinid  
    return SendClientMessage(playerid, 0xFF0000AA, "Используй: /buyskin [id]");//если игрок не ввел значение то выдаем собщение  
    SetPlayerSkin(playerid,skinid);//меняем игроку скин на который он выбрал  
    return 1;}

как пишу я:

PHP:
CMD:skin(playerid, params[])
{
	if(sscanf(params,"d", params[0])) return SendClientMessage(playerid, 0xFF0000AA, "Используй: /buyskin [id]");
	SetPlayerSkin(playerid,params[0]);
	return true;
}
и теперь вопрос,зачем нам нужны переменные new если мы пользуемся sscanf zcmd? все переменные можно в команде заменить параметром то есть params[]

если вам нужна одна переменная то можно использовать так как я указал выше params[0]
если же более одного то params[0],params[1],params[2] итд...

пример как показал ChIp* :

PHP:
COMMAND:car(playerid, params[]){  
    new id,color1,color2;//переменные  
    if(sscanf(params,"ddd",id,color1,color2))//ну это понятно  
    return SendClientMessage(playerid, 0xFF0000AA, "Используй: /veh [id] [color1] [color2]");  
    new Float:pos[4];//перемные куда занесем кординаты игрокаи его угол поворота  
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);//узнаем кординаты игрока  
    GetPlayerFacingAngle(playerid,pos[3]);//узнаем угол поворота игрока  
    CreateVehicle(id,pos[0],pos[1],pos[2],pos[3],color1,color2,600000);  
     //создаем машину с id(который ввел игрок) на тех кординатах где он стоит  
     //с цветами которыми ввел игрок  
    ret
мой пример:
PHP:
CMD:veh(playerid, params[]){
	if(sscanf(params,"iii",params[0],params[1],params[2])) return SendClientMessage(playerid, 0xF81414FF,"Введите /veh [id car] [цвет 1] [цвет 1]");
	if(params[0] < 400 || params[0] > 611)return  SendClientMessage(playerid, COLOR_GREY, "Номер машины не может быть меньше 400 и больше чем 611!");
	if((params[1] < 0 || params[1] > 126)||(params[2] < 0 || params[2] > 126))return SendClientMessage(playerid, COLOR_GREY, "Номер цвета не может быть меньше 0 и больше 126!");
	new Float:mesto[3];
	GetPlayerPos(playerid, mesto[0], mesto[1], mesto[2]);
	CreateVehicle(params[0],  mesto[0]+2, mesto[1], mesto[2], 0.0, params[1], params[2], 60000);
	return true;
}
Думаю всем ясно что на zcmd если вводишь параметр то можно обойтись и без new blablabla; то есть переменных.



 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу