Baska bir forumda istegimi belirttim ve saolsun plugini verdiler. Ihtiyaci olan varsa kodlar asagida. Yardimin icin tesekkürler
Kod:
#include <amxmodx>
#include <hamsandwich>
#include <zp50_core>
#include <zp50_gamemodes>
#define _PLUGIN "[ZP50] Respawn System"
#define _AUTHOR "H.RED.ZONE"
#define _VERSION "1.0"
#define TASK_AUTORESPAWN 100
#define ID_AUTORESPAWN (taskid - TASK_AUTORESPAWN)
const Float:AUTORESPAWN_DELAY = 5.0
new _gGameModeNemesisID, _gGameModeSurvivorID, _gGameModeMultiID, _gGameModeInfectionID, _gGameModeSwarmID
new _pCvarDeathMatch
new _gMaxPlayers
public plugin_init()
{
register_plugin(_PLUGIN, _VERSION, _AUTHOR)
register_clcmd("joinclass","cmd_joinclass")
register_menucmd(register_menuid("Terrorist_Select",1),511,"cmd_joinclass")
register_menucmd(register_menuid("CT_Select",1),511,"cmd_joinclass")
_gMaxPlayers = get_maxplayers()
}
public plugin_cfg()
{
_gGameModeNemesisID = zp_gamemodes_get_id("Nemesis Mode")
_gGameModeSurvivorID = zp_gamemodes_get_id("Survivor Mode")
_gGameModeMultiID = zp_gamemodes_get_id("Multiple Infection Mode")
_gGameModeInfectionID = zp_gamemodes_get_id("Infection Mode")
_pCvarDeathMatch = get_cvar_pointer("zp_deathmatch")
_gGameModeSwarmID = zp_gamemodes_get_id("Swarm Mode")
}
public cmd_joinclass(id)
{
if (!get_pcvar_num(_pCvarDeathMatch))
return;
if(zp_gamemodes_get_current() == _gGameModeInfectionID || zp_gamemodes_get_current() == _gGameModeMultiID || zp_gamemodes_get_current() == _gGameModeSwarmID) {
set_task(AUTORESPAWN_DELAY, "auto_respawn_player", id+TASK_AUTORESPAWN)
}
}
public auto_respawn_player(taskid)
{
if (is_user_alive(ID_AUTORESPAWN))
return;
if( zp_gamemodes_get_current() == _gGameModeSurvivorID )
{
zp_core_respawn_as_zombie(ID_AUTORESPAWN, true)
}
else if( zp_gamemodes_get_current() == _gGameModeNemesisID )
{
zp_core_respawn_as_zombie(ID_AUTORESPAWN, false)
}
else if (!is_user_alive(ID_AUTORESPAWN) || get_pcvar_num(_pCvarDeathMatch) == 2 || (get_pcvar_num(_pCvarDeathMatch) == 3 && random_num(0, 1)) || (get_pcvar_num(_pCvarDeathMatch) == 4 && zp_core_get_zombie_count() < fnGetAlive()/2))
{
zp_core_respawn_as_zombie(ID_AUTORESPAWN, true)
}
else
{
zp_core_respawn_as_zombie(ID_AUTORESPAWN, false)
}
ExecuteHamB(Ham_CS_RoundRespawn, ID_AUTORESPAWN)
}
fnGetAlive()
{
new iAlive, id
for (id = 1; id <= _gMaxPlayers; id++)
{
if (is_user_alive(id))
iAlive++
}
return iAlive;
}