Как использовать команду как по нику так и по ID?

z3hA444

Участник
Автор темы
90
4
Всем привет! Как мне сделать так, что бы я мог при вводе команды использовать как ник так и ID
Пример: /plveh [Nick] [id тачки] [цвет] [цвет]


Код:
CMD:plveh(playerid, params[])
{
     if(PI[playerid][pLogin] == 0) return true;
     if(PI[playerid][pAdmin] < 3 || GetPVarInt(playerid,"dostup") == 0) return true;
     if(sscanf(params, "dddd",params[0],params[1])) return SCM(playerid, COLOR_WHITE, "{ff8e05}* {FDFEFF}Используйте: /plveh [id] [id машины] [1 цвет] [2 цвет]");
    new intt = GetPlayerInterior(playerid);
    new vehicleid = GetPlayerVehicleID(playerid);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(params[0], x, y, z);
    createdvehs ++;
    FL[params[0]][creatcar] = CreateVehicle(params[1], x + 1, y + 1, z, 0, params[2], params[3], 60000);
    PutPlayerInVehicleEx(params[0], FL[params[0]][creatcar], 0);
    vehcreat[FL[params[0]][creatcar]] = 1;
    Fuell[vehicleid] = 100;
    LinkVehicleToInterior(FL[params[0]][creatcar], intt);
    format(YCMDstr, 256, "{ff8e05}* {FDFEFF}Администратор %s[%d] выдал вам автомобиль.",Name(playerid),playerid);
    SCM(params[0], COLOR_LIGHTRED, YCMDstr);
    format(YCMDstr,256,"[A] [%s[%d] выдал автомобиль игроку [%s[%d]",Name(playerid),playerid,Name(params[0]),params[0]);    // Zamer
    SendAdminMessage(COLOR_RED, YCMDstr);
    format(YCMDstr, 256, "{ff8e05}* {FDFEFF}Вы выдали транспорт id %d для игрока под ID %d", Name(playerid),playerid,Name(params[0]),params[0],params[1],params[2],params[3]);
    SCM(playerid, COLOR_COUNTRY, YCMDstr);
    TogglePlayerControllable(params[0], 1);
    return true;
}
 

sVor

Активный
135
85
Всем привет! Как мне сделать так, что бы я мог при вводе команды использовать как ник так и ID
Пример: /plveh [Nick] [id тачки] [цвет] [цвет]


Код:
CMD:plveh(playerid, params[])
{
     if(PI[playerid][pLogin] == 0) return true;
     if(PI[playerid][pAdmin] < 3 || GetPVarInt(playerid,"dostup") == 0) return true;
     if(sscanf(params, "dddd",params[0],params[1])) return SCM(playerid, COLOR_WHITE, "{ff8e05}* {FDFEFF}Используйте: /plveh [id] [id машины] [1 цвет] [2 цвет]");
    new intt = GetPlayerInterior(playerid);
    new vehicleid = GetPlayerVehicleID(playerid);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(params[0], x, y, z);
    createdvehs ++;
    FL[params[0]][creatcar] = CreateVehicle(params[1], x + 1, y + 1, z, 0, params[2], params[3], 60000);
    PutPlayerInVehicleEx(params[0], FL[params[0]][creatcar], 0);
    vehcreat[FL[params[0]][creatcar]] = 1;
    Fuell[vehicleid] = 100;
    LinkVehicleToInterior(FL[params[0]][creatcar], intt);
    format(YCMDstr, 256, "{ff8e05}* {FDFEFF}Администратор %s[%d] выдал вам автомобиль.",Name(playerid),playerid);
    SCM(params[0], COLOR_LIGHTRED, YCMDstr);
    format(YCMDstr,256,"[A] [%s[%d] выдал автомобиль игроку [%s[%d]",Name(playerid),playerid,Name(params[0]),params[0]);    // Zamer
    SendAdminMessage(COLOR_RED, YCMDstr);
    format(YCMDstr, 256, "{ff8e05}* {FDFEFF}Вы выдали транспорт id %d для игрока под ID %d", Name(playerid),playerid,Name(params[0]),params[0],params[1],params[2],params[3]);
    SCM(playerid, COLOR_COUNTRY, YCMDstr);
    TogglePlayerControllable(params[0], 1);
    return true;
}
У тебя неверно заданы параметры sscanf`а
По нику:
if(sscanf(params, "s[24]ddd", params[0], params[1], params[2], params[3])) return SCM(playerid, COLOR_WHITE, "{ff8e05}* {FDFEFF}Используйте: /plveh [Nick] [id машины] [1 цвет] [2 цвет]");
По ID:
if(sscanf(params, "dddd", params[0], params[1], params[2], params[3])) return SCM(playerid, COLOR_WHITE, "{ff8e05}* {FDFEFF}Используйте: /plveh [id] [id машины] [1 цвет] [2 цвет]");
Если всё вместе, то по моему есть спецификатор "u"
По ID:
if(sscanf(params, "uddd", params[0], params[1], params[2], params[3])) return SCM(playerid, COLOR_WHITE, "{ff8e05}* {FDFEFF}Используйте: /plveh [nick/id] [id машины] [1 цвет] [2 цвет]");
 
Последнее редактирование: