Veteran Member
Join Date: Oct 2006
Location: Stockholm, Sweden
|
06-22-2008
, 09:17
Re: Anti-Spawnkill God
|
#14
|
I think it's a little bit unnecessary to include fakemeta utility
when you can just use fakemeta.
I've fixed the script a bit (HamSandwich) :
Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#define gPLUGIN "Anti-SpawnKill God"
#define gVERSION "0.4"
#define gAUTHOR "Grinf4ce"
#define TASK_ID 33211
new SKG_MODE;
new SKG_PROHP;
new SKG_PROAP;
new SKG_NORHP;
new SKG_NORAP;
new SKG_GLOW;
new SKG_GLOW_R;
new SKG_GLOW_G;
new SKG_GLOW_B;
new SKG_DELAY;
public plugin_init()
{
register_plugin(gPLUGIN, gVERSION, gAUTHOR);
RegisterHam(Ham_Spawn, "player", "Ham_Client_Spawn", 1);
SKG_MODE = register_cvar("skg_mode","1"); /* Spawnkill-God Protect Mode - 1: Godmode ; 2 No God but more Protect-Health */
SKG_PROHP = register_cvar("skg_protecthp","100"); /* Protect-HP if skg_mode is 2 */
SKG_PROAP = register_cvar("skg_protectap","100"); /* Protect-AP if skg_mode is 2 */
SKG_NORHP = register_cvar("skg_normalhp","100"); /* Start-HP if skg_mode is 2 */
SKG_NORAP = register_cvar("skg_normalap","100"); /* Start-AP if skg_mode is 2 */
SKG_GLOW = register_cvar("skg_glow","1"); /* Glow on Spawn for Delay-Time */
SKG_GLOW_R = register_cvar("skg_glow_r","000"); /* Glowcolor in RGB: Red */
SKG_GLOW_G = register_cvar("skg_glow_g","255"); /* Glowcolor in RGB: Green */
SKG_GLOW_B = register_cvar("skg_glow_b","000"); /* Glowcolor in RGB: Blue */
SKG_DELAY = register_cvar("skg_delay","5.0"); /* Spawnkill-God Protect-Delay in Seconds */
}
public Ham_Client_Spawn(id)
{
if(get_pcvar_num(SKG_MODE) == 1)
set_pev(id, pev_takedamage, 0);
else
{
set_pev(id, pev_health, get_pcvar_float(SKG_PROHP));
set_pev(id, pev_armorvalue, get_pcvar_float(SKG_PROAP))
}
if(get_pcvar_num(SKG_GLOW) == 1)
fm_set_rendering(id, kRenderFxGlowShell, get_pcvar_num(SKG_GLOW_R), get_pcvar_num(SKG_GLOW_G), get_pcvar_num(SKG_GLOW_B), kRenderNormal, 25);
set_task(get_pcvar_float(SKG_DELAY), "remove_effect", id + TASK_ID);
return HAM_IGNORED;
}
public remove_effects(task_id)
{
new id = task_id - TASK_ID;
if(get_pcvar_num(SKG_MODE) == 1)
set_pev(id, pev_takedamage, 1); /* Remove Player Godmode */
else
{
set_pev(id, pev_health, get_pcvar_num(SKG_NORHP)) /* Set User's Normal HP */
set_pev(id, pev_armorvalue, get_pcvar_num(SKG_NORAP)) /* Set User's Normal AP */
}
if(get_pcvar_num(SKG_GLOW) == 1)
fm_set_rendering(id) /* Remove Glowing if enabled */
}
fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
new Float:RenderColor[3];
RenderColor[0] = float(r);
RenderColor[1] = float(g);
RenderColor[2] = float(b);
set_pev(entity, pev_renderfx, fx);
set_pev(entity, pev_rendercolor, RenderColor);
set_pev(entity, pev_rendermode, render);
set_pev(entity, pev_renderamt, float(amount));
return FMRES_IGNORED;
}
Script 2 (fakemeta only):
Code:
#include <amxmodx>
#include <fakemeta>
#define gPLUGIN "Anti-SpawnKill God"
#define gVERSION "0.4"
#define gAUTHOR "Grinf4ce"
#define TASK_ID 33211
new bool:g_pnss[33];
new g_ccp;
new SKG_MODE;
new SKG_PROHP;
new SKG_PROAP;
new SKG_NORHP;
new SKG_NORAP;
new SKG_GLOW;
new SKG_GLOW_R;
new SKG_GLOW_G;
new SKG_GLOW_B;
new SKG_DELAY;
public plugin_init()
{
register_plugin(gPLUGIN, gVERSION, gAUTHOR);
register_event("ResetHUD", "Reset_Hud", "b");
register_event("TextMsg", "Game_Restart", "a", "2=#Game_will_restart_in");
register_clcmd("fullupdate", "Cmd_Full_update");
SKG_MODE = register_cvar("skg_mode","1"); /* Spawnkill-God Protect Mode - 1: Godmode ; 2 No God but more Protect-Health */
SKG_PROHP = register_cvar("skg_protecthp","100"); /* Protect-HP if skg_mode is 2 */
SKG_PROAP = register_cvar("skg_protectap","100"); /* Protect-AP if skg_mode is 2 */
SKG_NORHP = register_cvar("skg_normalhp","100"); /* Start-HP if skg_mode is 2 */
SKG_NORAP = register_cvar("skg_normalap","100"); /* Start-AP if skg_mode is 2 */
SKG_GLOW = register_cvar("skg_glow","1"); /* Glow on Spawn for Delay-Time */
SKG_GLOW_R = register_cvar("skg_glow_r","000"); /* Glowcolor in RGB: Red */
SKG_GLOW_G = register_cvar("skg_glow_g","255"); /* Glowcolor in RGB: Green */
SKG_GLOW_B = register_cvar("skg_glow_b","000"); /* Glowcolor in RGB: Blue */
SKG_DELAY = register_cvar("skg_delay","5.0"); /* Spawnkill-God Protect-Delay in Seconds */
}
public Reset_HUD(id)
{
if (!is_user_alive(id))
return;
if (g_pnss[id])
{
g_pnss[id] = false;
return;
}
Client_Spawn(id);
}
public Game_Restart()
{
static iPlayers[32], iPlayersNum, i;
get_players(iPlayers, iPlayersNum, "a");
for (i = 0; i < iPlayersNum; ++i)
g_pnss[iPlayers[i]] = true;
}
public Cmd_Full_update(id)
{
g_pnss[id] = true;
static const szFwFmClientCommandPost[] = "Client_Cmd_Post";
g_ccp = register_forward(FM_ClientCommand, szFwFmClientCommandPost, 1);
return 0;
}
public Client_Cmd_Post(id)
{
unregister_forward(FM_ClientCommand, g_ccp, 1);
g_pnss[id] = false;
return FMRES_HANDLED;
}
public Client_Spawn(id)
{
if(get_pcvar_num(SKG_MODE) == 1)
set_pev(id, pev_takedamage, 0);
else
{
set_pev(id, pev_health, get_pcvar_float(SKG_PROHP));
set_pev(id, pev_armorvalue, get_pcvar_float(SKG_PROAP))
}
if(get_pcvar_num(SKG_GLOW) == 1)
fm_set_rendering(id, kRenderFxGlowShell, get_pcvar_num(SKG_GLOW_R), get_pcvar_num(SKG_GLOW_G), get_pcvar_num(SKG_GLOW_B), kRenderNormal, 25);
set_task(get_pcvar_float(SKG_DELAY), "remove_effect", id + TASK_ID);
return 0;
}
public remove_effects(task_id)
{
new id = task_id - TASK_ID;
if(get_pcvar_num(SKG_MODE) == 1)
set_pev(id, pev_takedamage, 1); /* Remove Player Godmode */
else
{
set_pev(id, pev_health, get_pcvar_num(SKG_NORHP)) /* Set User's Normal HP */
set_pev(id, pev_armorvalue, get_pcvar_num(SKG_NORAP)) /* Set User's Normal AP */
}
if(get_pcvar_num(SKG_GLOW) == 1)
fm_set_rendering(id) /* Remove Glowing if enabled */
}
fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
new Float:RenderColor[3];
RenderColor[0] = float(r);
RenderColor[1] = float(g);
RenderColor[2] = float(b);
set_pev(entity, pev_renderfx, fx);
set_pev(entity, pev_rendercolor, RenderColor);
set_pev(entity, pev_rendermode, render);
set_pev(entity, pev_renderamt, float(amount));
return FMRES_IGNORED;
}
public Cmd_Full_update(id) return 2;
__________________
Last edited by atomen; 06-22-2008 at 10:08.
|
|