All pastes #544572 Raw Edit

Stuff

public text v1 · immutable
·published 2007-06-06 14:31 UTC
rendered paste body
// Credit to Simon and DarkRealm
#include <a_samp>

new TRAM;

new keydown[MAX_PLAYERS] = {false, ...};
forward Keys();
forward Move();

public OnFilterScriptInit()
{
    TRAM = AddStaticVehicle(449,-2006.5890,154.2374,27.5020,0.2065,12,12); // tram
	SetTimer("Keys", 100, 1);
	SetTimer("Move", 100, 1);
	return 1;
}

Float:GetDistanceToCar(playerid,carid)
{
	new Float:x1,
        Float:y1,
		Float:z1,
		Float:x2,
		Float:y2,
		Float:z2;

	GetPlayerPos(playerid,x1,y1,z1);

	GetVehiclePos(carid,x2,y2,z2);

	return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}


public Keys()
{
	new keys, updown, leftright, playerid, players;
	for (playerid = 0; playerid < MAX_PLAYERS; playerid++)
	 {
	     if (IsPlayerConnected(playerid))
		  {
			  GetPlayerKeys(playerid, keys, updown, leftright);
			  if (keys & KEY_CROUCH)
			   {
				   if (!keydown[playerid])
				    {
					    keydown[playerid] = true;
					    if ((GetDistanceToCar(playerid, TRAM) < 2) && (!IsPlayerInVehicle(playerid, TRAM)))
						 {
						     for (players = 0; players < MAX_PLAYERS; players ++)
						      {
							      if (IsPlayerConnected(players))
							       {
								       if (IsPlayerInVehicle(players, TRAM))
										{
						     		   		PutPlayerInVehicle(playerid, TRAM, 2);
						     		   		print("Seat 2");
										}
									   else
										{
						     		   		PutPlayerInVehicle(playerid, TRAM, 1);
						     		   		print("Seat 1");
										}
								   }
							   }
				         }
					}
			   }
		      else
			   {
			       keydown[playerid] = false;
			   }
	      }
	 }
}


public Move()
{
	new keys, updown, leftright, playerid;
	for (playerid = 0; playerid < MAX_PLAYERS; playerid++)
	 {
	     if (IsPlayerConnected(playerid))
		  {
			  GetPlayerKeys(playerid, keys, updown, leftright);
			  if (keys & KEY_UP)
			   {
				   if (!keydown[playerid])
				    {
					    keydown[playerid] = true;
		                if (IsPlayerInVehicle(playerid, TRAM))
						 {
							 if (GetPlayerState(playerid) == 2)
							  {
								   // Speed up
						      }
				         }
					}
			   }
			  else if (keys & KEY_DOWN)
			   {
				   if (!keydown[playerid])
				    {
					    keydown[playerid] = true;
		                if (IsPlayerInVehicle(playerid, TRAM))
						 {
							 if (GetPlayerState(playerid) == 2)
							  {
								   // Slow down
						      }
				         }
					}
			   }
		      else
			   {
			       keydown[playerid] = false;
			   }
	      }
	 }
}