PDA

View Full Version : Spawn a vehicle close to my player


Dugzor
11/09/2013, 05:18 AM
So here we go, another scripting beginner asking something easy. I've been trying to learn PAWN lately and understanding it was not so hard, since I know several other programming languages, but I'm still gonna have to adapt to the SAMP specific functions and such.

Introducing aside, my problem is as it follows:

I'm trying to create a command using zcmd to spawn a vehicle in a close range to my player. I know about the CreateVehicle command and its parameters, but I'm not sure how to get my player's position and angle. If I knew how to get those, I'd simply increase the numbers a bit and add them to the function parameter list causing the vehicle to spawn nearby.

I'm sorry if this question was asked before. I did use the search function, but I could not find something that would help me fix this issue.

P.S:
I also read about GetPlayerPos(), but I'm not sure how to use it in this case.
I just need the right information to get started in PAWN and I don't see a problem adapting myself into it. Some of the tutorials around are great and some have missing videos. I'll try to squeeze information out of those to make myself a nice scripter in PAWN.

Thanks for reading.

[HK]Ryder[AN]
11/09/2013, 05:31 AM
Sorry for the bad indentation, typed it down directly

CMD:createcar(playerid, params[])
{
new Float:X, Float:Y, Float:Z, Float:Angle;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Angle);
AddStaticVehicle(CAR MODEL NUMBER, X+5, Y+5, Z, Angle, 0, 1); //You can also use CreateVehicle if you want
return 1;
}

Dugzor
11/09/2013, 09:11 AM
Thank you for the response. It worked! This is the final code I am using:
CMD:veh(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:angle;
new vehid, color1, color2;

GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);

if (sscanf(params, "iii", vehid, color1, color2))
{
return SendClientMessage(playerid, -1, "Command usage: /veh [model id] [color 1] [color 2]");
}

if (IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid, -1, "You can't spawn a vehicle while being inside one.");
}

AddStaticVehicle(vehid, (x + 5), (y + 5), z, angle, color1, color2);
SendClientMessage(playerid, -1, "Vehicle was spawned.");

return 1;
}
I would appreciate if someone listed down the improvements that need to be done and the mistakes I did.

Kirollos
11/09/2013, 11:03 AM
you should use CreateVehicle instead as AddStaticVehicle is only used in OnGameModeInit

as written here http://wiki.sa-mp.com/wiki/AddStaticVehicle

[HK]Ryder[AN]
11/09/2013, 01:10 PM
you should use CreateVehicle instead as AddStaticVehicle is only used in OnGameModeInit

as written here http://wiki.sa-mp.com/wiki/AddStaticVehicle
Oh I am so sorry. Should have given this guy the code with CreateVehicle

Thank you for the response. It worked! This is the final code I am using:
CMD:veh(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:angle;
new vehid, color1, color2;

GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);

if (sscanf(params, "iii", vehid, color1, color2))
{
return SendClientMessage(playerid, -1, "Command usage: /veh [model id] [color 1] [color 2]");
}

if (IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid, -1, "You can't spawn a vehicle while being inside one.");
}

AddStaticVehicle(vehid, (x + 5), (y + 5), z, angle, color1, color2);
SendClientMessage(playerid, -1, "Vehicle was spawned.");

return 1;
}
I would appreciate if someone listed down the improvements that need to be done and the mistakes I did.

Changed to createvehicle
CMD:veh(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:angle;
new vehid, color1, color2;

GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);

if (sscanf(params, "iii", vehid, color1, color2))
{
return SendClientMessage(playerid, -1, "Command usage: /veh [model id] [color 1] [color 2]");
}

if (IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid, -1, "You can't spawn a vehicle while being inside one.");
}

CreateVehicle(vehid, (x + 5), (y + 5), z, angle, color1, color2, 60);
SendClientMessage(playerid, -1, "Vehicle was spawned.");

return 1;
}