SA-MP Forums Archive
/v buy command... - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /v buy command... (/showthread.php?tid=328691)



/v buy command... - viddo - 25.03.2012

The /v buy command i use makes the player get his own car IF he is in one of the assigned dealership cars that i create in the script, The question is how do i make it that player types /v buy [Vehicle id] and it spawns the id he wants instead of entering a dealer car and types it...

The /v buy cmd
Код:
	        else if(strcmp(x_nr,"buy",true) == 0)
	        {
	            new car = 1;
	            new model = GetVehicleModel(idcar);
	            if(IsASalesVehicle(idcar))
	            {
	                if(PlayerInfo[playerid][pLevel] < 1)
			    	{
                    	SendClientMessage(playerid, COLOR_GREY, "You need to be level 1 to buy a vehicle!");
                    	return 1;
			    	}
			    	if(PlayerInfo[playerid][pPcarkey] == 9999 || PlayerInfo[playerid][pPcarkey2] == 9999) { }
			    	else return SendClientMessage(playerid, COLOR_GREY,"* You already own Two cars!");
					if(GetPlayerMoney(playerid) >= GetVehiclePrice(idcar))
					{
					    if(PlayerInfo[playerid][pCarLic] == 1)
					    {
							for(new h = 1; h < sizeof(CarInfo); h++)
							{
								if(CarInfo[h][cOwned] == 0)
								{
									car = h;
									h = 9999;
								}
							}
							format(string, sizeof(string),"LARP/Vehicles/%d.ini",car)
							dini_Create(string);

							if(PlayerInfo[playerid][pPcarkey] != 9999) { PlayerInfo[playerid][pPcarkey2] = car; }
							else { PlayerInfo[playerid][pPcarkey] = car; }
							CarInfo[car][cOwned] = 1;
							strmid(CarInfo[car][cOwner], sendername, 0, strlen(sendername), 999);
							SafeGivePlayerMoney(playerid,-GetVehiclePrice(idcar));
							if(IsModelAPlane(idcar) || IsModelAHeli(idcar))
							{
								CarInfo[car][cLocationx] = 1432.6451;
								CarInfo[car][cLocationy] = 1378.7216;
								CarInfo[car][cLocationz] = 11.5507;
								CarInfo[car][cAngle] = 359.2072;
								SendClientMessage(playerid, COLOR_YELLOW2, "Your Aircraft has been deliveried to Las Venturas Airport, you can get it there!");
								SendClientMessage(playerid, COLOR_YELLOW2, "Your vehicle is unlocked so you can pay someone to deliver it to your new spawn point!");
								SendClientMessage(playerid, COLOR_NICERED, "REMEMBER: Leaving your car in the deliver point can get your car SOLD by an administration without refund!");
								GameTextForPlayer(playerid, "~p~Congratulations~n~~w~Don't forget to pickup your car at the ~b~Las Venturas Airport!", 5000, 3);
							}
							else if(IsModelABoat(idcar))
							{
							    CarInfo[car][cLocationx] = -1568.9614;
								CarInfo[car][cLocationy] = 169.0118;
								CarInfo[car][cLocationz] = -0.6016;
								CarInfo[car][cAngle] = 208.7506;
								SendClientMessage(playerid, COLOR_YELLOW2, "Your Boat has been deliveried to San Fierro Docks, you can get it there!");
								SendClientMessage(playerid, COLOR_YELLOW2, "Your vehicle is unlocked so you can pay someone to deliver it to your new spawn point!");
								SendClientMessage(playerid, COLOR_NICERED, "REMEMBER: Leaving your car in the deliver point can get your car SOLD by an administration without refund!");
								GameTextForPlayer(playerid, "~p~Congratulations~n~~w~Don't forget to pickup your car at the ~b~San Fierro Docks!", 5000, 3);
							}
							else
							{
                                CarInfo[car][cLocationx] = -1589.2644;
								CarInfo[car][cLocationy] = 106.9119;
								CarInfo[car][cLocationz] = 3.5495;
								CarInfo[car][cAngle] = 317.1649;
								SendClientMessage(playerid, COLOR_YELLOW2, "Your vehicle has been deliveried to San Fierro Docks, you can get it there!");
								SendClientMessage(playerid, COLOR_YELLOW2, "Your vehicle is unlocked so you can pay someone to deliver it to your new spawn point!");
								SendClientMessage(playerid, COLOR_NICERED, "REMEMBER: Leaving your car in the deliver point can get your car SOLD by an administration without refund!");
								GameTextForPlayer(playerid, "~p~Congratulations~n~~w~Don't forget to pickup your car at the ~b~San Fierro Docks!", 5000, 3);
							}
							CarInfo[car][cModel] = model;
							CarInfo[car][cVirWorld] = 0;
							CarInfo[car][cPaintjob] = 999;

							CarInfo[car][cColorOne] = 1;
							CarInfo[car][cColorTwo] = 1;

							CarInfo[car][cComponent0] = 0;
							CarInfo[car][cComponent1] = 0;
							CarInfo[car][cComponent2] = 0;
							CarInfo[car][cComponent3] = 0;
							CarInfo[car][cComponent4] = 0;
							CarInfo[car][cComponent5] = 0;
							CarInfo[car][cComponent6] = 0;
							CarInfo[car][cComponent7] = 0;
							CarInfo[car][cComponent8] = 0;
							CarInfo[car][cComponent9] = 0;
							CarInfo[car][cComponent10] = 0;
							CarInfo[car][cComponent11] = 0;
							CarInfo[car][cComponent12] = 0;
							CarInfo[car][cComponent13] = 0;

							DestroyVehicle(car);
							ownedcar[car] = CreateVehicle(CarInfo[car][cModel],CarInfo[car][cLocationx],CarInfo[car][cLocationy],CarInfo[car][cLocationz],90.0,1,1,30000);
							PlayerPlayMusic(playerid);
							SendClientMessage(playerid, COLOR_GRAD2, "Congratulations on your new purchase!");
							SendClientMessage(playerid, COLOR_GRAD2, "Type /vehiclehelp to view the vehicle manual!");
							gEngine[playerid] = 0;
							engineOn[GetPlayerVehicleID(playerid)] = false;
							SendClientMessage(playerid, COLOR_GREY, "Remember to set the new Security Code of the Car!");
							new pass[24];
							format(pass, sizeof(pass),"%d%d%d",random(9),random(9),random(9));
							CarInfo[car][cCode] = strval(pass);
							OnPropUpdate(4,car);
							OnPlayerUpdateEx(playerid);
						}
						else
						{
							SendClientMessage(playerid, COLOR_WHITE, "* a Driving License is needed to buy a car!");
							return 1;
						}
					}
					else
					{
					    SendClientMessage(playerid, COLOR_GREY, "  You don't have enough cash with you ! ");
					    return 1;
					}
	            }
	        }



Re: /v buy command... - ReneG - 25.03.2012

Learn to use sscanf at least, it is the more practical thing to do than use a string comparer as a command processor. You should also not use LARP lol. Those godfather edits were practically made not to be edited.
pawn Код:
if(!strcmp(cmdtext,"/v",true))
{
    new option[10];
    if(sscanf(params,"s[10]",option))
    {
        return SendClientMessage(playerid,-1,"USAGE: /v [name]");
    }
    else
    {
        new vehicleid;
        if(!strcmp(option,"buy",true)) // If they typed "buy" after "/v"
        {
            if(sscanf(option,"d",vehicleid)) // Then it'll check if they typed a vehicleid after "/v buy"
            {
                // If they didn't, then it'll tell them how to use the command.
                return SendClientMessage(playerid,-1,"USAGE: /v buy [vehicleid]");
            }
            else
            {
                // If they used the command correctly. i.e "/v buy 500"
                // Then you create the vehicle and assigns the account stats here.
                CreateVehicle(vehicleid // blahblahbnlah
                return 1;
            }
        }
    }
}
return 1;
This command obviously needs a lot more work done, like vehicle pricings, etc. but that is how you do it.