Variable "ispassenger" returns 68 - 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: Variable "ispassenger" returns 68 (
/showthread.php?tid=480679)
Variable "ispassenger" returns 68 -
Biesmen - 12.12.2013
So, I'm doing some experimenting with vehicles. At the moment I need to gather information if the player attempts to join a vehicle as a passenger or driver. However, the variable "ispassenger" in the callback "OnPlayerEnterVehicle(playerid, vehicleid, is passenger)" returns "68". It's supposed to return 0 when the user is a driver, and 1 if the user is a passenger.
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new string[128], pName[MAX_PLAYER_NAME], pPassenger[30];
GetPlayerName(playerid, pName, sizeof pName);
if(playerVehicleState[playerid] != 1)
{
if(ispassenger == 1) pPassenger = "Passenger";
else
if(ispassenger == 0) pPassenger = "Driver";
format(string, sizeof string, "%s is attempting to join vehicle: %i as a %s (value: %i)", pName, vehicleid, pPassenger, ispassenger);
playerVehicleState[playerid] = 1;
SendClientMessageToAll(-1, string);
}
return 1;
}
However
If I change my code to the following:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new string[128], pName[MAX_PLAYER_NAME], pPassenger[30];
GetPlayerName(playerid, pName, sizeof pName);
if(playerVehicleState[playerid] != 1)
{
if(ispassenger == 1) pPassenger = "Passenger";
else
if(ispassenger == 0) pPassenger = "Driver";
else
pPassenger = "Something else!";
format(string, sizeof string, "%s is attempting to join vehicle: %i as a %s (value: %i)", pName, vehicleid, pPassenger, ispassenger);
playerVehicleState[playerid] = 1;
SendClientMessageToAll(-1, string);
}
return 1;
}
It seems to return the correct value.
In what way am I affecting it's value?
Re: Variable "ispassenger" returns 68 -
iPLEOMAX - 12.12.2013
I'm guessing its because of the way you are using "if..else".
Just keep it simple:
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(playerVehicleState[playerid] != 1)
{
playerVehicleState[playerid] = 1;
new string[128];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
format(string, sizeof string, "%s is attempting to join vehicle %i as a %s", string, vehicleid, ispassenger ? ("passenger") : ("driver"));
SendClientMessageToAll(-1, string);
}
return 1;
}
Re: Variable "ispassenger" returns 68 -
Biesmen - 12.12.2013
I've never actually had problems using the if else statement on this way.. Or for some reason I never noticed it. I'm too much used to programming in C#..
You've just taught me a new method of displaying text via a boolean without defining a new string. Thanks!