96 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| /*
 | |
|  * ============================================================================
 | |
|  *
 | |
|  *  Zombie:Reloaded
 | |
|  *
 | |
|  *  File:          respawn.zr.inc
 | |
|  *  Type:          Include
 | |
|  *  Description:   Infect-related natives/forwards.
 | |
|  *
 | |
|  *  Copyright (C) 2009-2013  Greyscale, Richard Helgeby
 | |
|  *
 | |
|  *  This program is free software: you can redistribute it and/or modify
 | |
|  *  it under the terms of the GNU General Public License as published by
 | |
|  *  the Free Software Foundation, either version 3 of the License, or
 | |
|  *  (at your option) any later version.
 | |
|  *
 | |
|  *  This program is distributed in the hope that it will be useful,
 | |
|  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  *  GNU General Public License for more details.
 | |
|  *
 | |
|  *  You should have received a copy of the GNU General Public License
 | |
|  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  *
 | |
|  * ============================================================================
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Conditions for respawning players.
 | |
|  */
 | |
| enum ZR_RespawnCondition
 | |
| {
 | |
|     ZR_Repsawn_Default = -1,    /** Let ZR decide according to its settings. */
 | |
|     ZR_Respawn_Human = 0,       /** Respawn as a human. */
 | |
|     ZR_Respawn_Zombie,          /** Respawn as a zombie. */
 | |
|     ZR_Respawn_ZombieIfSuicide  /** Respawn as a zombie if killed by world damage. */
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Spawns a player into the round.
 | |
|  *
 | |
|  * @param client            The client index.
 | |
|  * @param condition         Optional. Set respawn condition, defaults to current
 | |
|  *                          ZR settings. See ZR_RespawnCondition for details.
 | |
|  * @error                   Invalid client index, not connected or already alive.
 | |
|  */
 | |
| native void ZR_RespawnClient(int client, ZR_RespawnCondition condition = ZR_Repsawn_Default);
 | |
| 
 | |
| /**
 | |
|  * Called right before ZR is about to respawn a player.
 | |
|  * Here you can modify any variable or stop the action entirely.
 | |
|  *
 | |
|  * @param client            The client index.
 | |
|  * @param condition         Respawn condition. See ZR_RespawnCondition for
 | |
|  *                          details.
 | |
|  *
 | |
|  * @return      Plugin_Handled to block respawn.
 | |
|  */
 | |
| forward Action ZR_OnClientRespawn(int &client, ZR_RespawnCondition &condition);
 | |
| 
 | |
| /**
 | |
|  * Called after ZR respawned a player.
 | |
|  *
 | |
|  * @param client            The client index.
 | |
|  * @param condition         Current condition of the respawned player. See
 | |
|  *                          ZR_RespawnCondition for details.
 | |
|  */
 | |
| forward void ZR_OnClientRespawned(int client, ZR_RespawnCondition condition);
 | |
| 
 | |
| /**
 | |
|  * Set if a player died by a suicide or world damage.
 | |
| 
 | |
|  * Note: This will change the respawn condition.
 | |
|  * Note: This value is reset to default by ZR when a zombie player dies.
 | |
|  *
 | |
|  * @param client    The client index.
 | |
|  * @param suicide   True to say the player suicided, false if killed by another
 | |
|  *                  player.
 | |
|  *
 | |
|  * @error           Invalid client index or not connected.
 | |
|  */
 | |
| native void ZR_SetKilledByWorld(int client, bool suicide);
 | |
| 
 | |
| /**
 | |
|  * Get whether the player died by a suicide or world damage.
 | |
|  *
 | |
|  * Note: This value is only valid after death event, and before respawn.
 | |
|  *
 | |
|  * @param client    The client index.
 | |
|  *
 | |
|  * @return          True if the player died by suicide, false if killed by
 | |
|  *                  another player.
 | |
|  * @error           Invalid client index or not connected.
 | |
|  */
 | |
| native bool ZR_GetKilledByWorld(int client);
 |