Is there a better way? - 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)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Is there a better way? (
/showthread.php?tid=181732)
Is there a better way? -
Scenario - 07.10.2010
Hi guys. I'm trying to change the way I script as it seems to be a lot more efficient this way. I am confused on
else if statements, while using this method. This is my command:
pawn Код:
command(gotolv, playerid, params[]) // Credits to "Mimic" //
{
#pragma unused params
new vehicle;
if(PlayerStatistics[playerid][pAdminLevel] < 3) return false;
if(PlayerStatistics[playerid][pAdminDuty] < 1) return SendClientMessage(playerid, COLOR_SYSTEM, "You must be on admin duty to teleport!");
if(IsPlayerInAnyVehicle(playerid))
{
vehicle = GetPlayerVehicleID(playerid);
SetVehiclePos(vehicle, 1699.2, 1435.1, 10.7);
PutPlayerInVehicle(playerid, vehicle, 0);
SetPlayerPos(playerid, 1699.2, 1435.1, 10.7);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
}
else
{
SetPlayerPos(playerid, 1699.2, 1435.1, 10.7);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
}
SendClientMessage(playerid, COLOR_WHITE, "You have now teleported to Las Venturas");
return 1;
}
Is there a better way to perform the last
if statement? If so, please elaborate a little bit.
- Regards
Re: Is there a better way? -
bigcomfycouch - 07.10.2010
pawn Код:
command(gotolv, playerid, params[])
{
#pragma unused params
new
vehicle = GetPlayerVehicleID(playerid);
if(PlayerStatistics[playerid][pAdminLevel] < 3) return false;
if(PlayerStatistics[playerid][pAdminDuty] < 1) return SendClientMessage(playerid, COLOR_SYSTEM, "You must be on admin duty to teleport!");
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
if (IsPlayerInAnyVehicle(playerid))
{
SetVehicleVirtualWorld(vehicle, 0);
SetVehiclePos(vehicle, 1699.2, 1435.1, 10.7);
}
else SetPlayerPos(playerid, 1699.2, 1435.1, 10.7);
SendClientMessage(playerid, COLOR_WHITE, "You have now teleported to Las Venturas");
return 1;
}
Re: Is there a better way? -
samgreen - 07.10.2010
pawn Код:
command(gotolv, playerid, params[])
{
// If you use zcmd, you won't have to suppress this warning.
#pragma unused params
if(PlayerStatistics[playerid][pAdminLevel] < 3) return false;
if(PlayerStatistics[playerid][pAdminDuty] < 1) return SendClientMessage(playerid, COLOR_SYSTEM, "You must be on admin duty to teleport!");
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
new
vehicle = GetPlayerVehicleID(playerid);
if (vehicle > 0)
{
SetVehicleVirtualWorld(vehicle, 0);
SetVehiclePos(vehicle, 1699.2, 1435.1, 10.7);
}
else
{
SetPlayerPos(playerid, 1699.2, 1435.1, 10.7);
}
SendClientMessage(playerid, COLOR_WHITE, "You have now teleported to Las Venturas");
return 1;
}
No need to check IsPlayerInAnyVehicle, since you have already called GetPlayerVehicleID. You can use the result of that function to determine if the player is in any vehicle.