public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[killerid][pKills]++;
PlayerInfo[playerid][pDeaths]++;
if(PlayerInfo[playerid][pTeam] == 1)
{
SetSpawnInfo( playerid, 0, 294, 195.5586,427.2332,12.7379,93.6763, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SetSpawnInfo( playerid, 0, 285, 49.1121,423.5605,12.7379,266.2521, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[killerid][pKills]++;
PlayerInfo[playerid][pDeaths]++;
if(PlayerInfo[playerid][pTeam] == 1)
{
SetSpawnInfo( playerid, 0, 294, 195.5586,427.2332,12.7379,93.6763, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
TogglePlayerSpectating(playerid, 1);
SetTimerEx("anticlass", 5000, false, "i", playerid);
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SetSpawnInfo( playerid, 0, 285, 49.1121,423.5605,12.7379,266.2521, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
TogglePlayerSpectating(playerid, 1);
SetTimerEx("anticlass", 5000, false, "i", playerid);
}
TextDrawHideForPlayer(playerid, VHealth[playerid]);
TextDrawHideForPlayer(playerid, Stats[playerid]);
TextDrawHideForPlayer(playerid, VArmour[playerid]);
TextDrawHideForPlayer(playerid, VLevel[playerid]);
TextDrawHideForPlayer(playerid, VCash[playerid]);
TextDrawHideForPlayer(playerid, VPlayer[playerid]);
return 1;
}
forward anticlass(playerid);
public anticlass(playerid)
{
TogglePlayerSpectating(playerid, 0);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pTeam] == 1)
{
SetSpawnInfo( playerid, 0, 294, 195.5586,427.2332,12.7379,93.6763, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SetSpawnInfo( playerid, 0, 285, 49.1121,423.5605,12.7379,266.2521, 0, 0, 0, 0, 24, 50);
SpawnPlayer(playerid);
}
TextDrawShowForPlayer(playerid, VHealth[playerid]);
TextDrawShowForPlayer(playerid, Stats[playerid]);
TextDrawShowForPlayer(playerid, VArmour[playerid]);
TextDrawShowForPlayer(playerid, VLevel[playerid]);
TextDrawShowForPlayer(playerid, VCash[playerid]);
TextDrawShowForPlayer(playerid, VPlayer[playerid]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[killerid][pKills]++;
PlayerInfo[playerid][pDeaths]++;
TextDrawHideForPlayer(playerid, VHealth[playerid]);
TextDrawHideForPlayer(playerid, Stats[playerid]);
TextDrawHideForPlayer(playerid, VArmour[playerid]);
TextDrawHideForPlayer(playerid, VLevel[playerid]);
TextDrawHideForPlayer(playerid, VCash[playerid]);
TextDrawHideForPlayer(playerid, VPlayer[playerid]);
return 1;
}
case DIALOG_LOGIN:
{
if ( !response ) return Kick ( playerid );
if( response )
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
}
return 1;
}
}
public OnPlayerRequestSpawn(playerid)
{
if(PlayerInfo[playerid][pTeam] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Welcome, You are Terrorist now. Keep Killing Counter Terrorists.");
SendClientMessage(playerid, COLOR_GREY, "Use /commands to vieuw all commands!");
SetSpawnInfo( playerid, 0, 294, 195.5586, 427.2332, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 );
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetTimerEx("Unfreeze", 5000, false, "i", RPN(playerid));
return 0;
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SendClientMessage(playerid, COLOR_BLUE, "Welcome, You are an Counter Terrorist now. Keep Killing Terrorists.");
SendClientMessage(playerid, COLOR_GREY, "Use /commands to vieuw all commands!");
SetSpawnInfo( playerid, 0, 285, 49.1121, 423.5605, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 );
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetTimerEx("Unfreeze", 5000, false, "i", RPN(playerid));
return 0;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pTeam] == 1)
{
SetPlayerSkin( playerid, 294 );
SetPlayerPos( playerid, 195.5586, 427.2332, 12.7379 );
SetPlayerFacingAngle( playerid, 93.6763 );
GivePlayerWeapon( playerid, 24, 50 );
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SetPlayerSkin( playerid, 285 );
SetPlayerPos( playerid, 49.1121, 423.5605, 12.7379 );
SetPlayerFacingAngle( playerid, 266.2521 );
GivePlayerWeapon( playerid, 24, 50 );
}
SetCameraBehindPlayer(playerid);
TextDrawShowForPlayer(playerid, VHealth[playerid]);
TextDrawShowForPlayer(playerid, Stats[playerid]);
TextDrawShowForPlayer(playerid, VArmour[playerid]);
TextDrawShowForPlayer(playerid, VLevel[playerid]);
TextDrawShowForPlayer(playerid, VCash[playerid]);
TextDrawShowForPlayer(playerid, VPlayer[playerid]);
return 1;
}
When a player dies, it calls the OnPlayerSpawn. What you do is: set spawn info for the player and re-spawn him.
This should work fine pawn Код:
|
public OnPlayerRequestSpawn(playerid) { if(PlayerInfo[playerid][pTeam] == 1) { SendClientMessage(playerid, COLOR_RED, "Welcome, You are Terrorist now. Keep Killing Counter Terrorists."); SetSpawnInfo( playerid, 0, 294, 195.5586, 427.2332, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 ); } else if(PlayerInfo[playerid][pTeam] == 2) { SendClientMessage(playerid, COLOR_BLUE, "Welcome, You are an Counter Terrorist now. Keep Killing Terrorists."); SetSpawnInfo( playerid, 0, 285, 49.1121, 423.5605, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 ); } else { return 0; } SendClientMessage(playerid, COLOR_GREY, "Use /commands to vieuw all commands!"); SpawnPlayer(playerid); TogglePlayerControllable(playerid, 0); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetTimerEx("Unfreeze", 5000, false, "i", RPN(playerid)); // IN THIS TIMER TogglePlayerControllable(playerid, 1); return 1; }
Wait. The class selection is being shown when a player press F4 and then die.
What do you want to do? |
new
isDead[ MAX_PLAYERS ]
;
// OnPlayerConnect
isDead[ playerid ] = 0;
// OnPlayerDeath
isDead[ playerid ] = 1;
// OnPlayerSpawn
if( isDead[ playerid ] == 1 ) isDead[ playerid ] = 0;
// OnPlayerRequestClass
if( isDead[ playerid ] == 1 ) SpawnPlayer( playerid );
public OnPlayerRequestClass(playerid, classid)
{
new string[128];
SetPlayerPos(playerid, 786.2990,845.2061,176.7938);
SetPlayerCameraPos(playerid, 779.6148,845.5803,180.1051);
SetPlayerCameraLookAt(playerid, 786.2990,845.2061,176.7938);
if( isDead[ playerid ] == 1 ) SpawnPlayer( playerid );
if(classid == 0)
{
format(string, sizeof(string), "~r~Terrorists");
GameTextForPlayer(playerid, string, 3000, 6);
SetPlayerSkin(playerid, 294);
PlayerInfo[playerid][pTeam] = 1;
SetPlayerColor(playerid, COLOR_RED);
return 0;
}
else if(classid == 1)
{
format(string, sizeof(string), "~b~Counter-Terrorists");
GameTextForPlayer(playerid, string, 3000, 6);
SetPlayerSkin(playerid, 285);
PlayerInfo[playerid][pTeam] = 2;
SetPlayerColor(playerid, COLOR_BLUE);
return 0;
}
return 1;
}
new
isDead[ MAX_PLAYERS ],
class_selection[ MAX_PLAYERS ]
;
public OnPlayerRequestClass( playerid, classid )
{
class_selection[ playerid ] = 1;
if( isDead[ playerid ] == 1 && class_selection[ playerid ] == 1 )
{
SetSpawnInfo( ... ); // Edit it
SpawnPlayer( playerid );
return 1;
}
// rest of setting up the place
return 1;
}
public OnPlayerConnect( playerid )
{
isDead[ playerid ] = 0;
class_selection[ playerid ] = 0;
return 1;
}
public OnPlayerSpawn( playerid )
{
SetPlayerInterior( playerid, 0 );
SetCameraBehindPlayer( playerid );
if( isDead[ playerid ] == 1 && class_selection[ playerid ] == 1 )
{
isDead[ playerid ] = 0;
class_selection[ playerid ] = 0;
}
if( isDead[ playerid ] == 1 ) isDead[ playerid ] = 0;
if( class_selection[ playerid ] == 1 ) class_selection[ playerid ] = 0;
return 1;
}
public OnPlayerDeath( playerid, killerid, reason )
{
isDead[ playerid ] = 1;
return 1;
}
public OnPlayerRequestClass( playerid, classid )
{
class_selection[ playerid ] = 1;
if(class_selection[ playerid ] == 0)
{
new string[128];
SetPlayerPos(playerid, 786.2990,845.2061,176.7938);
SetPlayerCameraPos(playerid, 779.6148,845.5803,180.1051);
SetPlayerCameraLookAt(playerid, 786.2990,845.2061,176.7938);
if( isDead[ playerid ] == 1 ) SpawnPlayer( playerid );
if(classid == 0)
{
format(string, sizeof(string), "~r~Terrorists");
GameTextForPlayer(playerid, string, 3000, 6);
SetPlayerSkin(playerid, 294);
PlayerInfo[playerid][pTeam] = 1;
SetPlayerColor(playerid, COLOR_RED);
return 0;
}
else if(classid == 1)
{
format(string, sizeof(string), "~b~Counter-Terrorists");
GameTextForPlayer(playerid, string, 3000, 6);
SetPlayerSkin(playerid, 285);
PlayerInfo[playerid][pTeam] = 2;
SetPlayerColor(playerid, COLOR_BLUE);
return 0;
}
}
if( isDead[ playerid ] == 1 && class_selection[ playerid ] == 1 )
{
if(PlayerInfo[playerid][pAdmin] == 1)
{
SetSpawnInfo( playerid, 0, 294, 195.5586, 427.2332, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 );
SpawnPlayer( playerid );
}
else if(PlayerInfo[playerid][pTeam] == 2)
{
SetSpawnInfo( playerid, 0, 285, 49.1121, 423.5605, 12.7379, 269.15, 0, 0, 0, 0, 24, 50 );
SpawnPlayer( playerid );
}
return 1;
}
return 1;
}