-
вопрос по zcmd sscanf
Начал изучать ZCMD + sscanf
перевёл обычную команду /setskin по примерам ...
PHP код:
CMD:setskin(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,-1,"Нет прав на использвл");
if(sscanf(params,"ud", params[0],params[1])) return SendClientMessage(playerid, 0xFF0000AA, "Введите: /setskin [id] [Скин]");
if(strval(params[1]) > 299 || strval(params[1]) < 1) return SendClientMessage(playerid, COLOR_GREY, "Неправильный ID скина от 1 до 299!");
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFF, "Такого игрока нету!");
PlayerInfo[playerid][pChar] = strval(params[1]);
SetPlayerSkin(playerid, strval(params[1]));
return true;
}
Она то работает, но хотелось бы все таки проверить, мб что-то лучше по другому использовать и т.д
- - - Добавлено - - -
PHP код:
CMD:donate(playerid,params[])
{
new string[90];
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid,plname,sizeof(plname));
format(string,sizeof(string),"Меню Доната Аккаунт: %s Баланс: %i Рублей",plname,PlayerInfo[playerid][pDonatMoney]);
Dialog(playerid,500,DIALOG_STYLE_LIST,string,"Услуги","Выбор","Отмена");
return true;
}
ну и тут заодно ...
-
PHP код:
CMD:setskin(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,-1,"Нет прав на использвл");
if(sscanf(params,"ud", params[0],params[1])) return SendClientMessage(playerid, 0xFF0000AA, "Введите: /setskin [id] [Скин]");
if(strval(params[1]) > 299 || strval(params[1]) < 1) return SendClientMessage(playerid, COLOR_GREY, "Неправильный ID скина от 1 до 299!");
if(!IsPlayerConnected(strval(params[0]))) return SendClientMessage(playerid, 0xFFFFFFF, "Такого игрока нету!");
PlayerInfo[strval(params[0])][pChar] = strval(params[1]);
SetPlayerSkin(strval(params[0]), strval(params[1]));
return true;
}
PHP код:
CMD:donate(playerid,params[])
{
new string[90];
GetPlayerName(playerid,string,MAX_PLAYER_NAME);
format(string,sizeof(string),"Меню Доната Аккаунт: %s Баланс: %i Рублей",string,PlayerInfo[playerid][pDonatMoney]);
Dialog(playerid,500,DIALOG_STYLE_LIST,string,"Услуги","Выбор","Отмена");
return true;
}
-
с /donate все норм, но с /setskin теперь стало так.. ввожу /setskin 0 12 пишет такого игрока нет, хотя мой ID 0
Открыть/закрыть
-
PHP код:
CMD:setskin(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,-1,"Нет прав на использвл");
if(sscanf(params,"ud", params[0],params[1])) return SendClientMessage(playerid, 0xFF0000AA, "Введите: /setskin [id] [Скин]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xFFFFFFF, "Такого игрока нету!");
if(params[1] > 299 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREY, "Неправильный ID скина от 1 до 299!");
PlayerInfo[params[0]][pChar] = params[1];
SetPlayerSkin(params[0], params[1]);
return true;
}
-
такая же фигня, пишет такого игрока нету.
-
PHP код:
CMD:setskin(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,-1,"Нет прав на использвл");
if(sscanf(params,"dd", params[0],params[1])) return SendClientMessage(playerid, 0xFF0000AA, "Введите: /setskin [id] [Скин]");
if(strval(params[1]) > 299 || strval(params[1]) < 1) return SendClientMessage(playerid, COLOR_GREY, "Неправильный ID скина от 1 до 299!");
if(!IsPlayerConnected(strval(params[0]))) return SendClientMessage(playerid, 0xFFFFFFF, "Такого игрока нету!");
PlayerInfo[strval(params[0])][pChar] = strval(params[1]);
SetPlayerSkin(strval(params[0]), strval(params[1]));
return true;
}
-
strval можно исключить, для чисел он не требуется, IsPlayerConnected можно заменить на проверку, залогинен ли игрок, и не мучиться.