Сообщение от
Camelot
2)
Если написать к примеру /dance 3, то он всё равно воспроизводит /dance 1.
PHP код:
CMD:dance(playerid, params[])
{
if(sscanf(params, "i", params[0])) return Message(playerid, COLOR_GREEN,"/dance [1-3]");
else if(strcmp(params[0],"1",true)) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
else if(strcmp(params[0],"2",true)) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
else if(strcmp(params[0],"3",true)) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
return true;
}
Потому что у вас лишний "else if". После "if(sscanf" должен стоять просто "if", ибо иначе сработает только первое условие (sscanf), а остальные будут пропущены. Да и strcmp тут неуместен, ибо в "params[0]" хранится число, а не строка
Ну вот так, по моему, удобнее будет
PHP код:
CMD:dance(playerid, params[])
{
if(sscanf(params, "i", params[0])) return Message(playerid, COLOR_GREEN,"/dance [1-3]");
switch(strval(params[0]))
{
case 1: SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
case 2: SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
case 3: SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
default: return Message(playerid, COLOR_GREEN,"/dance [1-3]");
}
return true;
}