/* Sublime AMXX Editor v2.2 */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#define MAX_PLAYERS 22
#define function public
#define TASK_PROT 50000
new const PLUGIN[ ] = "Surf Plugin Main",
VERSION[ ] = "1.0",
AUTHOR[ ] = "Diversity"
enum pCvar {
SpawnTime
}
enum pData {
pInBuyZone
}
new PlayerData[MAX_PLAYERS+1][pData],
Cvar[pCvar]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
// HAMSANDWICH
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", true)
RegisterHam(Ham_Killed, "player", "OnPlayerDeath")
RegisterHam(Ham_TakeDamage, "player", "OnPlayerTakeDamage", false)
// CMDS
register_clcmd("say /respawn", "RespawnPlayer")
// EVENT
register_event("StatusIcon", "Event_ShowBuyZone", "be", "1=1", "2=buyzone")
register_event("StatusIcon", "Event_HideBuyZone", "be", "1=0", "2=buyzone")
// CVAR
Cvar[SpawnTime] = register_cvar("spawn_portection_time", "5")
}
public client_disconnect(playerid) {
resetvars(playerid)
}
public OnPlayerSpawn(playerid) {
if(!is_user_alive(playerid)) return
set_user_godmode(playerid, true)
set_task(float(get_pcvar_num(Cvar[SpawnTime])), "Remove_SpawnPROT", playerid+TASK_PROT)
client_print(playerid, print_center, "Esti protejat pentru %d secunde!", get_pcvar_num(Cvar[SpawnTime]))
switch(get_user_team(playerid)) {
case 1: set_user_rendering(playerid, kRenderFxGlowShell, 250, 0, 0, kRenderGlow, 18);
case 2: set_user_rendering(playerid, kRenderFxGlowShell, 0, 0, 250, kRenderGlow, 18);
}
}
public OnPlayerDeath() {
new iKiller = read_data(1),
iVictim = read_data(2)
RespawnPlayer(iVictim)
if(iKiller == iVictim) return
}
public OnPlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits) {
if(PlayerData[iVictim][pInBuyZone] == 1 || iDamageBits == DMG_FALL) {
SetHamReturnInteger(0)
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
function Remove_SpawnPROT(taskid) {
new playerid = (taskid - TASK_PROT)
if(!is_user_alive(playerid)) return
set_user_godmode(playerid, false)
client_print(playerid, print_center, "Protectia a fost dezactivata")
set_user_rendering(playerid)
}
public RespawnPlayer(playerid) {
if(!is_user_connected(playerid) || is_user_alive(playerid) || get_user_team(playerid) == 3) return PLUGIN_HANDLED
ExecuteHamB(Ham_CS_RoundRespawn, playerid)
RemovePlayerWeapons(playerid)
return PLUGIN_CONTINUE
}
public Event_ShowBuyZone(playerid) PlayerData[playerid][pInBuyZone] = 1
public Event_HideBuyZone(playerid) PlayerData[playerid][pInBuyZone] = 0
function resetvars(playerid) {
PlayerData[playerid][pInBuyZone] = 0
}
function RemovePlayerWeapons(playerid) {
strip_user_weapons(playerid)
give_item(playerid, "weapon_knife")
}