problem with sscanf /v
#1

So, I'm working on a /v command where you type /v [option]. One of the options is buy, which should show you a dialog. Im doing a check if the person is at commerce dealership or not. if he isn't it should return a message saying so, if he is, it should show him the dialog. In reality, if he isnt in range, it works fine, but if he is, nothing happens. Can't understand it.

Код:
CMD:vehicle(playerid,params[])
{
	new option[10];
	new vehoption;
	if(sscanf(params,"s[10]",option)) return SendClientMessage(playerid,COLOR_RED,"/v(ehicle) [option]");
        sscanf(params,"s[10]i",option,vehoption);
        if(strlen(option)<3) return 1;
        if(!strcmp(option,"buy",true))
	{
	    if(!IsPlayerInRangeOfPoint(playerid,20,pos_dealership_commerce)) 
            return SendClientMessage(playerid,COLOR_RED,"You have to be at a vehicle dealership to use this.");
	    ShowPlayerDialog(playerid,DIALOG_VEH_CATEGORY,DIALOG_STYLE_MSGBOX,"Hello","Hello","Hello","");
	    SendClientMessage(playerid,COLOR_GREEN,"Hello");
	}
        return 1;
}
Reply
#2

pawn Код:
CMD:vehicle(playerid,params[])
{
    new option[10];
    new vehoption;
    if(sscanf(params,"s[10]",option)) return SendClientMessage(playerid,COLOR_RED,"/v(ehicle) [option]");
    sscanf(params,"s[10]i",option,vehoption);
    if(strlen(option)<3) return 1;
    if(!strcmp(option,"buy",true))
    {
        if(IsPlayerInRangeOfPoint(playerid,20,pos_dealership_commerce))
        {
            ShowPlayerDialog(playerid,DIALOG_VEH_CATEGORY,DIALOG_STYLE_MSGBOX,"Hello","Hello","Hello","");
            SendClientMessage(playerid,COLOR_GREEN,"Hello");
        }
        else
        {
            SendClientMessage(playerid,-2,"You have to be at a vehicle dealership to use this.");
        }
    }
    return 1;
}
Is that what you wanted?
Reply
#3

Thanks, but not exactly. You see, I also have a /v get command so incase the player doesnt want to buy a vehicle but only spawn it, the slot he types has to be stored too, thats why I did
Код:
sscanf(params,"s[10]i",option,vehoption);
but its not mandatory, thats why its not in an if.
Reply
#4

Quote:
Originally Posted by PDChaseOfficial
Посмотреть сообщение
Thanks, but not exactly. You see, I also have a /v get command so incase the player doesnt want to buy a vehicle but only spawn it, the slot he types has to be stored too, thats why I did
Код:
sscanf(params,"s[10]i",option,vehoption);
but its not mandatory, thats why its not in an if.
If you do /v buy and you are not in the range if the place it will display the message. It won't if you are there.

He did what you asked for.
Reply
#5

Not really. Then its incompatible towards other options, to be more precise, this one:
Код:
if(!strcmp(option,"get",true))
	{
	    if(vehoption<1||vehoption>3) return SendClientMessage(playerid,COLOR_RED,"/v get [slot(1-3)]");
	    if(PlayerInfo[playerid][pVeh1]==0&&PlayerInfo[playerid][pVeh2]==0&&PlayerInfo[playerid][pVeh3]==0) return SendClientMessage(playerid,COLOR_RED,"You don't have a vehicle to spawn.");
	    if(vehoption==1)
		{
		    if(PlayerInfo[playerid][pVeh1]==0) return SendClientMessage(playerid,COLOR_RED,"You don't own vehicle on this slot.");
			if(!IsValidRealVehicleID(PlayerInfo[playerid][pVeh1])) return SendClientMessage(playerid,COLOR_RED,"ERROR:Invalid Vehicle.");
			SetVehicleNumberPlate(VehicleInfo[PlayerInfo[playerid][pVeh1]][gID]=CreateVehicle(VehicleInfo[PlayerInfo[playerid][pVeh1]][Model],VehicleInfo[PlayerInfo[playerid][pVeh1]][Parkx],VehicleInfo[PlayerInfo[playerid][pVeh1]][Parky],VehicleInfo[PlayerInfo[playerid][pVeh1]][Parkz],VehicleInfo[PlayerInfo[playerid][pVeh1]][Parkangle],VehicleInfo[PlayerInfo[playerid][pVeh1]][Col1],VehicleInfo[PlayerInfo[playerid][pVeh1]][Col2],9999999),VehicleInfo[PlayerInfo[playerid][pVeh1]][Plate]);
		}
		if(vehoption==2)
		{
		    if(PlayerInfo[playerid][pVeh2]==0) return SendClientMessage(playerid,COLOR_RED,"You don't own vehicle on this slot.");
			if(!IsValidRealVehicleID(PlayerInfo[playerid][pVeh2])) return SendClientMessage(playerid,COLOR_RED,"ERROR:Invalid Vehicle.");
			SetVehicleNumberPlate(VehicleInfo[PlayerInfo[playerid][pVeh2]][gID]=CreateVehicle(VehicleInfo[PlayerInfo[playerid][pVeh2]][Model],VehicleInfo[PlayerInfo[playerid][pVeh2]][Parkx],VehicleInfo[PlayerInfo[playerid][pVeh2]][Parky],VehicleInfo[PlayerInfo[playerid][pVeh2]][Parkz],VehicleInfo[PlayerInfo[playerid][pVeh2]][Parkangle],VehicleInfo[PlayerInfo[playerid][pVeh2]][Col1],VehicleInfo[PlayerInfo[playerid][pVeh2]][Col2],9999999),VehicleInfo[PlayerInfo[playerid][pVeh2]][Plate]);
		}
		if(vehoption==3)
		{
		    if(PlayerInfo[playerid][pVeh3]==0) return SendClientMessage(playerid,COLOR_RED,"You don't own vehicle on this slot.");
			if(!IsValidRealVehicleID(PlayerInfo[playerid][pVeh3])) return SendClientMessage(playerid,COLOR_RED,"ERROR:Invalid Vehicle.");
			SetVehicleNumberPlate(VehicleInfo[PlayerInfo[playerid][pVeh3]][gID]=CreateVehicle(VehicleInfo[PlayerInfo[playerid][pVeh3]][Model],VehicleInfo[PlayerInfo[playerid][pVeh3]][Parkx],VehicleInfo[PlayerInfo[playerid][pVeh3]][Parky],VehicleInfo[PlayerInfo[playerid][pVeh3]][Parkz],VehicleInfo[PlayerInfo[playerid][pVeh3]][Parkangle],VehicleInfo[PlayerInfo[playerid][pVeh3]][Col1],VehicleInfo[PlayerInfo[playerid][pVeh3]][Col2],9999999),VehicleInfo[PlayerInfo[playerid][pVeh3]][Plate]);
		}
		return SendClientMessage(playerid,COLOR_GREEN,"Vehicle spawned.");
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)