SA-MP Forums Archive
OnPlayerEnter&ExitVehicle - 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: OnPlayerEnter&ExitVehicle (/showthread.php?tid=126184)



OnPlayerEnter&ExitVehicle - Rubennnnn - 07.02.2010

I've got
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    SendClientMessageToAll(COLOR_ENTERVEH, "%s entered the tractor");
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    SendClientMessageToAll(COLOR_EXITVEH, "%s left the tractor");
    return 1;
}
And how can I make it that if the player enters vehicle ID 531 it shows the message and not with all vehicles?


Re: OnPlayerEnter&ExitVehicle - KuHS - 07.02.2010

Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	if (vehicleid == 531) SendClientMessageToAll(COLOR_ENTERVEH, "%s entered the tractor");
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	if (vehicleid == 531) SendClientMessageToAll(COLOR_EXITVEH, "%s left the tractor");
	return 1;
}
Here you go.


Re: OnPlayerEnter&ExitVehicle - Rubennnnn - 07.02.2010

Thanks I'll try it.


Re: OnPlayerEnter&ExitVehicle - ettans - 07.02.2010

You can't use format operators in SendClientMessage(ToAll).

Also, I'm assuming by 531 you mean modelid, not vehicleid, so here's the correct solution.

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(modelid == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s entered the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(modelid == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s left the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}



Re: OnPlayerEnter&ExitVehicle - Rubennnnn - 07.02.2010

Quote:
Originally Posted by Ettans
You can't use format operators in SendClientMessage(ToAll).

Also, I'm assuming by 531 you mean modelid, not vehicleid, so here's the correct solution.

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(modelid == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s entered the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(modelid == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s left the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}
Thanks, the first one didn't work.

Hmm.. Now when you multiple times press F you get the message multiple times


Re: OnPlayerEnter&ExitVehicle - KuHS - 07.02.2010

Use OnPlayerStateChange.


Re: OnPlayerEnter&ExitVehicle - Rubennnnn - 07.02.2010

Quote:
Originally Posted by KuHS
Use OnPlayerStateChange.
I don't get it


Re: OnPlayerEnter&ExitVehicle - MadeMan - 07.02.2010

https://sampwiki.blast.hk/wiki/OnPlayerStateChange


Re: OnPlayerEnter&ExitVehicle - FlatMaN - 07.02.2010

Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s entered the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
  new string[128],
    name[MAX_PLAYER_NAME],
    modelid = GetVehicleModel(vehicleid);

  if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 531)
  {
    GetPlayerName(playerid,name,sizeof(name));

    format(string,sizeof(string),"%s left the tractor",name);
    SendClientMessageToAll(COLOR_ENTERVEH,string);
  }
  return 1;
}



Re: OnPlayerEnter&ExitVehicle - KuHS - 07.02.2010

Just use OnPlayerStateChange cellback:

Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if(newstate == PLAYER_STATE_DRIVER)
	{
		new string[128],
			name[MAX_PLAYER_NAME],
			modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
		if(modelid == 531)
		{
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"%s entered the tractor",name);
			SendClientMessageToAll(COLOR_ENTERVEH,string);
		}
	}
	if(newstate == PLAYER_STATE_ONFOOT)
	{
		if(oldstate == PLAYER_STATE_DRIVER)
		{
				new string[128],
					name[MAX_PLAYER_NAME],
					modelid = GetVehicleModel(vehicleid);
  			if(modelid == 531)
  			{
    				GetPlayerName(playerid,name,sizeof(name));
					format(string,sizeof(string),"%s left the tractor",name);
					SendClientMessageToAll(COLOR_ENTERVEH,string);
			}
		}
	}
	return 1;
}