Thread: Auto Revive
View Single Post
iBrazilian
Senior Member
Join Date: May 2011
Old 04-30-2012 , 15:45   Re: Auto Revive
Reply With Quote #20

Here is a peace of code I use for my server, I'm sure you can get working. There are a few things added in there but just simple delete. It's also a bit outdated, Ham is much better but I haven't had much time or motivation to change it.

PHP Code:
#include <amxmisc>
#include <fun>
#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <engine>

#define CVAR "amx_noweapdrop_ondeath"

// no drop
#define WBOX "models/w_weaponbox.mdl"
#define BOMB "models/w_backpack.mdl"
#define SHLD "models/w_shield.mdl"
#define MAX_PLAYERS 32
new g_entid[MAX_PLAYERS 1]
new 
g_maxents
// no drop end

new cvar_respawndelay

public plugin_init()
    {
    
register_plugin("Player""Respawn""iBrazilian")
    
register_event("DeathMsg""event_deathmsg""a")
    
cvar_respawndelay register_cvar("amx_respawndelay""5.0"// Delay before respawning
    
RegisterHam(Ham_Spawn"player""WeaponMenu"1
    
    
set_msg_blockget_user_msgid"ClCorpse" ), BLOCK_SET );
    
    
//no drop
    
register_forward(FM_SetModel"forward_set_model")
    
register_cvar(CVAR"1")
    
g_maxents get_global_int(GL_maxEntities)
    
// no drop
}

public 
event_deathmsg()
    {
    
set_task(get_pcvar_float(cvar_respawndelay), "respawn_player"read_data(2))
}

public 
respawn_player(id)
    {
    if (!
is_user_connected(id) || is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
        return;
    
    
set_pev(idpev_deadflagDEAD_RESPAWNABLE)
    
dllfunc(DLLFunc_Thinkid)
    
    if (
is_user_bot(id) && pev(idpev_deadflag) == DEAD_RESPAWNABLE)
        {
        
dllfunc(DLLFunc_Spawnid)
    }
}

public 
WeaponMenu(id)
    {
    new 
menu menu_create("\rGun menu""gun_handler");
    
    
menu_additem(menu"\wM4a1""1"0);
    
menu_additem(menu"\wAk47""2"0);
    
menu_additem(menu"\wAwp""3"0);
    
menu_additem(menu"\wAutoshotgun""4"0);
    
menu_additem(menu"\w12Gauge""5"0);
    
menu_additem(menu"\wP90""6"0);
    
menu_additem(menu"\wBullpup""7"0);
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_display(idmenu0);
}
public 
gun_handler(idmenuitem)
    {
    if( 
item == MENU_EXIT )
        {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], szName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    
    
    new 
key str_to_num(data);
    
    switch(
key)
    {
        case 
1:
        {
            
fm_give_item(id,"weapon_m4a1")        
            
fm_give_item(id,"ammo_556nato")
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        case 
2:
        {
            
fm_give_item(id,"weapon_ak47")        
            
fm_give_item(id,"ammo_762nato")
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
        case 
3
        {
            
fm_give_item(id,"weapon_awp")
            
fm_give_item(id,"ammo_338magnum")
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
        case 
4
        {
            
fm_give_item(id,"weapon_xm1014")    
            
fm_give_item(id,"ammo_buckshot")            
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
        case 
5
        {
            
fm_give_item(id,"weapon_m3")        
            
fm_give_item(id,"ammo_buckshot")
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
        case 
6
        {
            
fm_give_item(id,"weapon_p90")    
            
fm_give_item(id,"ammo_57mm")            
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
        case 
7
        {
            
fm_give_item(id,"weapon_aug")    
            
fm_give_item(id,"ammo_556nato")            
            
fm_give_item(id,"weapon_flashbang")
            
fm_give_item(id,"weapon_smokegrenade")
            
fm_give_item(id,"weapon_hegrenade")
        }
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
forward_set_model(entidmodel[]) {
    if (!
is_valid_ent(entid) || !equal(modelWBOX9) || !get_cvar_num(CVAR))
        return 
FMRES_IGNORED
    
    
new id entity_get_edict(entidEV_ENT_owner)
    if (!
id || !is_user_connected(id) || is_user_alive(id))
        return 
FMRES_IGNORED
    
    
if (equal(modelSHLD)) {
        
kill_entity(entid)
        return 
FMRES_IGNORED
    
}
    
    if (
equal(modelWBOX)) {
        
g_entid[id] = entid
        
return FMRES_IGNORED
    
}
    
    if (
entid != g_entid[id])
        return 
FMRES_IGNORED
    
    g_entid
[id] = 0
    
    
if (equal(modelBOMB))
        return 
FMRES_IGNORED
    
    
for (new 1<= g_maxents; ++i) {
        if (
is_valid_ent(i) && entid == entity_get_edict(iEV_ENT_owner)) {
            
kill_entity(entid)
            
kill_entity(i)
        }
    }
    
    return 
FMRES_IGNORED
}

stock kill_entity(id) {
    
entity_set_int(idEV_INT_flagsentity_get_int(idEV_INT_flags)|FL_KILLME)
}

 
//   RegisterHam( Ham_Spawn, "player", "player_spawn", 1 ) 
    
//public player_spawn( id ) {
//    if( is_user_alive( id ) )
///    {
  //      set_user_health( id, 120 );
  //  }
//} 
__________________
Pokemod Season 5 [ |||||||||| Complete]
iBrazilian is offline