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 szVipHumanModel[][] =
{
"vip_human2"
}
new const v_szAdminHumanKnifeModel[][] =
{
"models/zombie_escape/v_knife_vip.mdl"
}
new const v_szAdminZombieKnifeModel[][] =
{
"models/zombie_escape/v_knife_zombie.mdl"
}
// Dynamic Arrays: Models
new Array:g_szAdminHumanModel, Array:g_szAdminZombieModel, Array: g_szVipHumanModel, Array:g_v_szAdminHumanKnifeModel, Array:g_v_szAdminZombieKnifeModel
public plugin_init()
{
register_plugin("[ZE] Vip Model", ZE_VERSION, AUTHORS)
}
public plugin_precache()
{
// Initialize Arrays
g_szAdminHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
g_szAdminZombieModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
g_szVipHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
g_v_szAdminHumanKnifeModel = ArrayCreate(MODEL_MAX_LENGTH, 1) // Enable to set knife model human vip
g_v_szAdminZombieKnifeModel = ArrayCreate(MODEL_MAX_LENGTH, 1) // Enable to set knife model zombies vip
// Load From External File
amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "ASSASSIN 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, "Player Models", "SUBZERO_VIP", g_szVipHumanModel)
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", "ASSASSIN 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_szVipHumanModel) == 0) // MINE I CREATED
{
for(iIndex = 0; iIndex < sizeof szVipHumanModel; iIndex++)
ArrayPushString(g_szVipHumanModel, szAdminZombieModel[iIndex])
// Save to external file
amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "SUBZERO VIP", g_szVipHumanModel)
}
if(ArraySize(g_v_szAdminHumanKnifeModel) == 1) // AND MAYBE THIS TO CHANGE TO 0
{
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_szVipHumanModel); iIndex++)
{
ArrayGetString(g_szVipHumanModel, 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_F) // F flag for vip model 1
{
// 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)
}
else {
if (ze_get_vip_flags(id) & VIP_G) // G flag for vip model 2
{
// Set Admin Human Model
ArrayGetString(g_szVipHumanModel, random_num(0, ArraySize(g_szVipHumanModel) - 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(iVictim) & VIP_F & VIP_G)
{
// 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: Select all
if (ze_get_vip_flags(iVictim) & VIP_F & VIP_G)
Is it right?