PHP Code:
#include < amxmodx >
#include < amx_settings_api >
#include < cs_player_models_api >
#include < cs_weap_models_api >
#include < zp50_core >
#include < zp50_class_survivor >
#include < zp50_class_sniper >
#include < rz_vip_core >
#define _PLUGIN "[RZ] VIP Models"
#define _VERSION "1.1"
#define _AUTHOR "H.RED.ZONE"
#define LIBRARY_SURVIVOR "zp50_class_survivor"
#define LIBRARY_SNIPER "zp50_class_sniper"
#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64
// Cvars.
new _pCvarVipModelOn
,_pCvarVipKnifeOn
// Default Models.
new const models_vip_human_player[][] = { "vip" }
new const models_vip_human_knife[][] = { "models/v_knife.mdl" }
// New Array.
new Array:_gModelsVipPlayer
new Array:_gKnifeVipPlayer
// Settings File.
new const RZ_SETTINGS_FILE[] = "rz_vip.ini"
// This Will Be Called When Map Is Loaded.
public plugin_init( ) {
// Register Plugin.
register_plugin( _PLUGIN, _VERSION, _AUTHOR )
// Cvars.
_pCvarVipModelOn = register_cvar( "rz_vip_model_on", "1" )
_pCvarVipKnifeOn = register_cvar( "rz_vip_model_knife_on", "1" )
}
// Precache Before Map Starts.
public plugin_precache( ) {
// Initialize Arrays.
_gModelsVipPlayer = ArrayCreate( PLAYERMODEL_MAX_LENGTH, 1 )
_gKnifeVipPlayer = ArrayCreate( MODEL_MAX_LENGTH, 1 )
// Load From External File
amx_load_setting_string_arr( RZ_SETTINGS_FILE, "Vip Model", "RZ VIP MODEL", _gModelsVipPlayer )
amx_load_setting_string_arr( RZ_SETTINGS_FILE, "Knife Model", "V_KNIFE VIP MODEL", _gKnifeVipPlayer )
// If It Couldn't Load From File, Use And Save Default Ones.
// New Index.
new index
// If Array Size Of VIP Model Is Zero.
if ( ArraySize(_gModelsVipPlayer) == 0 ) {
// Set Index To 0 If Index Lower Then SizeOf Model Index + 1.
for ( index = 0; index < sizeof models_vip_human_player; index++ )
// Array Push String.
ArrayPushString( _gModelsVipPlayer, models_vip_human_player[index] )
// Save To File.
amx_save_setting_string_arr( RZ_SETTINGS_FILE, "Vip Model", "RZ VIP MODEL", _gModelsVipPlayer )
}
// If Array Size Of VIP Model Is Zero.
if ( ArraySize(_gKnifeVipPlayer) == 0 ) {
// Set Index To 0 If Index Lower Then SizeOf Model Index + 1.
for ( index = 0; index < sizeof models_vip_human_knife; index++ )
// Array Push Strin
ArrayPushString( _gKnifeVipPlayer, models_vip_human_knife[index] )
// Save To File.
amx_save_setting_string_arr( RZ_SETTINGS_FILE, "Knife Model", "V_KNIFE VIP MODEL", _gKnifeVipPlayer )
}
// Precache Models.
new player_model[PLAYERMODEL_MAX_LENGTH], model[MODEL_MAX_LENGTH], model_path[128]
for ( index = 0; index < ArraySize(_gModelsVipPlayer); index++ ) {
ArrayGetString( _gModelsVipPlayer, index, player_model, charsmax(player_model))
formatex( model_path, charsmax(model_path), "models/player/%s/%s.mdl", player_model, player_model )
precache_model( model_path )
formatex( model_path, charsmax(model_path), "models/player/%s/%sT.mdl", player_model, player_model )
if ( file_exists(model_path) )
precache_model( model_path )
}
for ( index = 0; index < ArraySize(_gKnifeVipPlayer); index++ ) {
ArrayGetString( _gKnifeVipPlayer, index, model, charsmax(model) )
precache_model( model )
}
}
public client_disconnect(id)
{
remove_task(id)
}
// Cure Post.
public zp_fw_core_cure_post(id, attacker) {
// Skip For Survivor
if (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(id))
return;
if (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(id))
return;
if( rz_is_user_vip(id) || rz_is_user_god(id) )
{
set_task(0.1, "_VipModelsSet",id)
}
}
public _VipModelsSet(id) {
if(!is_user_alive(id) || zp_core_is_zombie(id))
return
// Apply Vip Human Player Model.
if ( get_pcvar_num(_pCvarVipModelOn) ) {
// Player Model.
new player_model[PLAYERMODEL_MAX_LENGTH]
// Get Array.
ArrayGetString( _gModelsVipPlayer, random_num(0, ArraySize(_gModelsVipPlayer) - 1), player_model, charsmax(player_model))
cs_set_player_model(id, player_model)
}
// Apply Vip Knife Model.
if ( get_pcvar_num(_pCvarVipKnifeOn) )
{
// Knife Model.
new model[MODEL_MAX_LENGTH]
// Get Array.
ArrayGetString( _gKnifeVipPlayer, random_num(0, ArraySize(_gKnifeVipPlayer) - 1), model, charsmax(model) )
cs_set_player_view_model( id, CSW_KNIFE, model )
}
}