Command, sscanf -
DusanInfinity - 04.08.2015
Im converting my command from strcmp to ycmd, and i come to this problem...
Part of the command where is problem:
Код:
else if(strcmp(params,"color",true) == 0)
{
new color1, color2;
if(ownvehkey == 999) return SCM(playerid, COLOR_GREY,"[GRESKA] Niste u vasem vozilu!");
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, COLOR_GREY," Nemate dovoljno novca za farbanje.");
if(sscanf(params, "ii", color1, color2)) return SCM(playerid, -1, "/v color [ID boje 1] [ID boje 2]");
if(color1 < 0 && color1 > 255 || color2 < 0 && color2 > 255) return SendClientMessage(playerid, COLOR_GREY, " Pogresan color id!");
CarInfo[ownvehkey][cColorOne] = color1;
CarInfo[ownvehkey][cColorTwo] = color2;
GivePlayerMoneyEx(playerid, -1000);
GameTextForPlayer(playerid, "~w~Cena farbanja~n~~r~-$1000", 5000, 1);
ChangeVehicleColor(ownvehkey, color1, color2);
SacuvajVozilo(ownvehkey);
return 1;
}
else return ShowPlayerDialog(playerid,213,DIALOG_STYLE_MSGBOX, "{0F629F}Vozilo Pomoc","{0F629F}/v park - {FFFFFF}Parkirati vozilo\n{0F629F}/v lock (1-3) - {FFFFFF}Zakljucati-Otkljucati vozilo\n{0F6Audio_CreateSequence()29F}/v sell - {FFFFFF}Prodati vozilo\n{0F629F}/v sellto - {FFFFFF}Prodati vozilo igracu\n{0F629F}/v color - {FFFFFF}Ofarbati vozilo\n{0F629F}/v list - {FFFFFF}Videti listu vozila\n{0F629F}","Ok","");
When i write /v color, its say /v color [ID boje 1] [ID boje 2], but when i write ex: /v color 1, or just empty space, its show dialog... How to fix it?
Re: Command, sscanf -
Crayder - 04.08.2015
Show the entire command.
+ if it helps, you can just do (sscanf(params, "'color'ii", color1, color2)), but I still need to see the entire command to set it up right.
Re: Command, sscanf -
DusanInfinity - 04.08.2015
Here is it:
Command
Re: Command, sscanf -
DusanInfinity - 05.08.2015
Anyone to help?
P.S. I try this what tell me @Crayder, but its not work good...
Re: Command, sscanf -
xVIP3Rx - 05.08.2015
Why did you remove the command ?
The example you showed should be working..
pawn Код:
else if(strcmp(params,"color",true) == 0)
{
if(ownvehkey == 999) return SCM(playerid, COLOR_GREY,"[GRESKA] Niste u vasem vozilu!");
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, COLOR_GREY," Nemate dovoljno novca za farbanje.");
new color1, color2;
if(sscanf(params, "dd", color1, color2)) return SCM(playerid, -1, "/v color [ID boje 1] [ID boje 2]");
if(color1 < 0 && color1 > 255 || color2 < 0 && color2 > 255) return SendClientMessage(playerid, COLOR_GREY, " Pogresan color id!");
CarInfo[ownvehkey][cColorOne] = color1;
CarInfo[ownvehkey][cColorTwo] = color2;
GivePlayerMoneyEx(playerid, -1000);
GameTextForPlayer(playerid, "~w~Cena farbanja~n~~r~-$1000", 5000, 1);
ChangeVehicleColor(ownvehkey, color1, color2);
SacuvajVozilo(ownvehkey);
return 1;
}
else return ShowPlayerDialog(playerid,213,DIALOG_STYLE_MSGBOX, "{0F629F}Vozilo Pomoc","{0F629F}/v park - {FFFFFF}Parkirati vozilo\n{0F629F}/v lock (1-3) - {FFFFFF}Zakljucati-Otkljucati vozilo\n{0F6Audio_CreateSequence()29F}/v sell - {FFFFFF}Prodati vozilo\n{0F629F}/v sellto - {FFFFFF}Prodati vozilo igracu\n{0F629F}/v color - {FFFFFF}Ofarbati vozilo\n{0F629F}/v list - {FFFFFF}Videti listu vozila\n{0F629F}","Ok","");
Re: Command, sscanf -
DusanInfinity - 06.08.2015
I choose time for expire...
Here is new link:
http://pastebin.com/iwhVJC2p
BTW: Its not working good, xVIP3Rx
Re: Command, sscanf -
Jefff - 06.08.2015
You need add lenght in strcmp
pawn Код:
else if(strcmp(params,"color",true,5) == 0) // 5 means strlen("color")
because if you type /v color 1, params is "color 1" so strcmp is not "color" (doesn't match)
and next sscanf you need skip "color" from params (we dont need "color" part) so {s[6}}
pawn Код:
if(sscanf(params, "{s[6]}dd", color1, color2))
Re: Command, sscanf -
DusanInfinity - 08.08.2015
I do it, but its not working... it always say: /v color [ID boje 1] [ID boje 2]