OnPlayerEnter&ExitVehicle
#1

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?
Reply
#2

Код:
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.
Reply
#3

Thanks I'll try it.
Reply
#4

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;
}
Reply
#5

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
Reply
#6

Use OnPlayerStateChange.
Reply
#7

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

https://sampwiki.blast.hk/wiki/OnPlayerStateChange
Reply
#9

Код:
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;
}
Reply
#10

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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)