Code: Select all
#include <zombie_escape>
#include <ze_vip>
// Setting File
new const ZE_SETTING_RESOURCES[] = "zombie_escape.ini"
// Defines
#define MODEL_MAX_LENGTH 64
#define PLAYERMODEL_MAX_LENGTH 32
#define ACCESS_MAX_LENGTH 32
// Default Models
new const szAdminHumanModel[][] =
{
"Vip_human"
}
new const szAdminZombieModel[][] =
{
"Vip_zombie"
}
new const v_szAdminHumanKnifeModel[][] =
{
"models/v_knife_vip.mdl"
}
new const v_szAdminZombieKnifeModel[][] =
{
"models/zombie_escape/v_knife_zombie_vip.mdl"
}
// Dynamic Arrays: Models
new Array:g_szAdminHumanModel, Array:g_szAdminZombieModel, Array:g_v_szAdminHumanKnifeModel, Array:g_v_szAdminZombieKnifeModel
public plugin_init()
{
register_plugin("[ZE] Vip Model", AMX_VERSION, AUTHORS)
}
public plugin_precache()
{
// Initialize Arrays
g_szAdminHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
g_szAdminZombieModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
g_v_szAdminHumanKnifeModel = ArrayCreate(MODEL_MAX_LENGTH, 0)
g_v_szAdminZombieKnifeModel = ArrayCreate(MODEL_MAX_LENGTH, 1)
// Load From External File
amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN VIP", g_szAdminHumanModel)
amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "ZOMBIE VIP", g_szAdminZombieModel)
amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Weapon Models", "V_KNIFE HUMAN VIP", g_v_szAdminHumanKnifeModel)
amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Weapon Models", "V_KNIFE ZOMBIE VIP", g_v_szAdminZombieKnifeModel)
// Load our Default Values
new iIndex
if(ArraySize(g_szAdminHumanModel) == 0)
{
for(iIndex = 0; iIndex < sizeof szAdminHumanModel; iIndex++)
ArrayPushString(g_szAdminHumanModel, szAdminHumanModel[iIndex])
// Save to external file
amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN VIP", g_szAdminHumanModel)
}
if(ArraySize(g_szAdminZombieModel) == 0)
{
for(iIndex = 0; iIndex < sizeof szAdminZombieModel; iIndex++)
ArrayPushString(g_szAdminZombieModel, szAdminZombieModel[iIndex])
// Save to external file
amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "ZOMBIE VIP", g_szAdminZombieModel)
}
if(ArraySize(g_v_szAdminHumanKnifeModel) == 1)
{
for(iIndex = 0; iIndex < sizeof v_szAdminHumanKnifeModel; iIndex++)
ArrayPushString(g_v_szAdminHumanKnifeModel, v_szAdminHumanKnifeModel[iIndex])
// Save to external file
amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Weapon Models", "V_KNIFE HUMAN VIP", g_v_szAdminHumanKnifeModel)
}
if(ArraySize(g_v_szAdminZombieKnifeModel) == 0)
{
for(iIndex = 0; iIndex < sizeof v_szAdminZombieKnifeModel; iIndex++)
ArrayPushString(g_v_szAdminZombieKnifeModel, v_szAdminZombieKnifeModel[iIndex])
// Save to external file
amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Weapon Models", "V_KNIFE ZOMBIE VIP", g_v_szAdminZombieKnifeModel)
}
// Precache
new szPlayerModel[PLAYERMODEL_MAX_LENGTH], szModel[MODEL_MAX_LENGTH], szModelPath[128]
for (iIndex = 0; iIndex < ArraySize(g_szAdminHumanModel); iIndex++)
{
ArrayGetString(g_szAdminHumanModel, iIndex, szPlayerModel, charsmax(szPlayerModel))
formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
precache_model(szModelPath)
}
for (iIndex = 0; iIndex < ArraySize(g_szAdminZombieModel); iIndex++)
{
ArrayGetString(g_szAdminZombieModel, iIndex, szPlayerModel, charsmax(szPlayerModel))
formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
precache_model(szModelPath)
}
for (iIndex = 0; iIndex < ArraySize(g_v_szAdminHumanKnifeModel); iIndex++)
{
ArrayGetString(g_v_szAdminHumanKnifeModel, iIndex, szModel, charsmax(szModel))
precache_model(szModel)
}
for (iIndex = 0; iIndex < ArraySize(g_v_szAdminZombieKnifeModel); iIndex++)
{
ArrayGetString(g_v_szAdminZombieKnifeModel, iIndex, szModel, charsmax(szModel))
precache_model(szModel)
}
}
public ze_user_humanized(id)
{
if(ze_is_user_zombie(id) || !is_user_alive(id))
return
new szPlayerModel[PLAYERMODEL_MAX_LENGTH], szModel[MODEL_MAX_LENGTH]
// Player Admin?
if (ze_get_vip_flags(id) & VIP_A)
{
// Set Admin Human Model
ArrayGetString(g_szAdminHumanModel, random_num(0, ArraySize(g_szAdminHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
rg_set_user_model(id, szPlayerModel)
// Set Admin Human Knife Model
ArrayGetString(g_v_szAdminHumanKnifeModel, random_num(0, ArraySize(g_v_szAdminHumanKnifeModel) - 0), szModel, charsmax(szModel))
cs_set_player_view_model(id, CSW_KNIFE, szModel)
}
}
public ze_user_infected(iVictim, iInfector)
{
if(!is_user_alive(iVictim))
return
// Set Zombie Models
new szPlayerModel[PLAYERMODEL_MAX_LENGTH], szModel[MODEL_MAX_LENGTH]
// Player Admin?
if (ze_get_vip_flags(id) & VIP_A)
{
// Set Zombie Admin Model
ArrayGetString(g_szAdminZombieModel, random_num(0, ArraySize(g_szAdminZombieModel) - 1), szPlayerModel, charsmax(szPlayerModel))
rg_set_user_model(iVictim, szPlayerModel)
// Set Admin Zombie Knife Model
ArrayGetString(g_v_szAdminZombieKnifeModel, random_num(0, ArraySize(g_v_szAdminZombieKnifeModel) - 1), szModel, charsmax(szModel))
cs_set_player_view_model(iVictim, CSW_KNIFE, szModel)
cs_set_player_weap_model(iVictim, CSW_KNIFE, "") // Leave Blank so knife not appear with zombies
}
}[code]