This version is with the model. I took model code part from someone else's code so i'm not sure if this will actually work.
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#define PLUGIN "Zeus Mode"
#define VERSION "1.0"
#define AUTHOR "NapoleoN#"
new bool:HasZeus[32]
new g_player_model[33][32]
new g_ent_playermodel[33]
new const PLAYERMODEL_CLASSNAME[] = "ent_playermodel"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("amx_zmon", "EnableZeusMode")
register_clcmd("amx_zmoff", "DisableZeusMode")
RegisterHam(Ham_Spawn, "player", "FwPlayerSpawnPost", 1)
}
public plugin_precache() {
new model[100]
formatex(model, charsmax(model), "models/player/leet/leet.mdl")
engfunc(EngFunc_PrecacheModel, model)
}
public FwPlayerSpawnPost(id) {
if(!is_user_alive(id)) {
return PLUGIN_HANDLED
}
if(HasZeus[id] == true) {
copy(g_player_model[id], charsmax(g_player_model[]), "leet")
fm_set_playermodel_ent(id, g_player_model[id])
} else if(fm_has_custom_model(id)) {
fm_remove_model_ents(id)
}
return PLUGIN_HANDLED
}
public client_putinserver(id) {
HasZeus[id] = false
}
public client_disconnect(id) {
HasZeus[id] = false
if(fm_has_custom_model(id)) {
fm_remove_model_ents(id)
}
}
public EnableZeusMode(id) {
if(get_user_flags(id) & ADMIN_RCON) {
if(HasZeus[id] == true) {
client_print(id, print_chat, "[AMXX] You already have zeus mode enabled.")
return PLUGIN_HANDLED
}
new szName[32]; get_user_name(id, szName, charsmax(szName))
set_user_godmode(id, 1)
set_user_noclip(id, 1)
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25)
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
HasZeus[id] = true
client_print(0, print_chat, "Admin %s turned on ZEUS MODE", szName)
copy(g_player_model[id], charsmax(g_player_model[]), "leet")
fm_set_playermodel_ent(id, g_player_model[id])
} else {
client_print(id, print_chat, "[AMXX] You have no access to this command.")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public DisableZeusMode(id) {
if(get_user_flags(id) & ADMIN_RCON) {
if(HasZeus[id] == false) {
client_print(id, print_chat, "[AMXX] You already have zeus mode disabled.")
return PLUGIN_HANDLED
}
new szName[32]; get_user_name(id, szName, charsmax(szName))
set_user_godmode(id, 0)
set_user_noclip(id, 0)
set_user_rendering(id)
HasZeus[id] = false
client_print(0, print_chat, "Admin %s turned off ZEUS MODE", szName)
fm_remove_model_ents(id)
} else {
client_print(id, print_chat, "[AMXX] You have no access to this command.")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
stock fm_set_playermodel_ent( id, const modelname[] )
{
// Make original player entity invisible
set_pev( id, pev_rendermode, kRenderTransTexture )
// This is not 0 because it would hide the shadow and some effects when firing weapons
set_pev( id, pev_renderamt, 1.0 )
// Since we're passing the short model name to the function
// we need to make the full path out of it
static modelpath[100]
formatex( modelpath, charsmax( modelpath ), "models/player/%s/%s.mdl", modelname, modelname )
// Check if the entity assigned to this player exists
if ( !pev_valid( g_ent_playermodel[id] ) )
{
// If it doesn't, proceed to create a new one
g_ent_playermodel[id] = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) )
// If it failed to create for some reason, at least this will prevent further "Invalid entity" errors...
if ( !pev_valid( g_ent_playermodel[id] ) ) return;
// Set its classname
set_pev( g_ent_playermodel[id], pev_classname, PLAYERMODEL_CLASSNAME )
// Make it follow the player
set_pev( g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW )
set_pev( g_ent_playermodel[id], pev_aiment, id )
set_pev( g_ent_playermodel[id], pev_owner, id )
}
// Entity exists now, set its model
engfunc( EngFunc_SetModel, g_ent_playermodel[id], modelpath )
}
stock fm_has_custom_model( id )
{
return pev_valid( g_ent_playermodel[id] ) ? true : false;
}
stock fm_remove_model_ents( id )
{
// Make the player visible again
set_pev( id, pev_rendermode, kRenderNormal )
// Remove "playermodel" ent if present
if ( pev_valid( g_ent_playermodel[id] ) )
{
engfunc( EngFunc_RemoveEntity, g_ent_playermodel[id] )
g_ent_playermodel[id] = 0
}
}