- #include <zombie_escape>
- // 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
- /// Acess
- #define OWNER_MODEL ADMIN_IMMUNITY
- #define STAFF_MODEL ADMIN_LEVEL_D
- #define MOD_MODEL ADMIN_LEVEL_E
- #define ADMIN_MODELS_ACCESS ADMIN_LEVEL_B
- #define VIP_MODEL ADMIN_LEVEL_F
- // Added Models
- new const szOwnerHumanModel[][] =
- {
- "owner"
- }
- new const szStaffHumanModel[][] =
- {
- "Staff"
- }
- new const szModHumanModel[][] =
- {
- "Mod"
- }
- new const szAdminHumanModel[][] =
- {
- "Vdmin"
- }
- new const szVipHumanModel[][] =
- {
- "Vip"
- }
- // Default
- new const szAdminZombieModel[][] =
- {
- "zombie_admin"
- }
- new const v_szAdminZombieKnifeModel[][] =
- {
- "models/zombie_escape/v_knife_zombie_admin.mdl"
- }
- new const szHumanModel1[][] =
- {
- "human1"
- }
- new const szHumanModel2[][] =
- {
- "human2"
- }
- new const szHumanModel3[][] =
- {
- "human3"
- }
- new const szHumanModel4[][] =
- {
- "human4"
- }
- // Dynamic Arrays: Models
- new Array:g_szAdminZombieModel, Array:g_v_szAdminZombieKnifeModel,
- Array:g_szOwnerHumanModel,g_szStaffHumanModel,g_szModHumanModel,g_szAdminHumanModel,g_szVipHumanModel,g_szHumanModel1, Array:g_szHumanModel2, Array:g_szHumanModel3, Array:g_szHumanModel4
- public plugin_init()
- {
- register_plugin("[ZE] Special Models", ZE_VERSION, AUTHORS)
- }
- public plugin_precache()
- {
- // Initialize Arrays
- g_szOwnerHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szStaffHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szModHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szAdminHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szVipHumanModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szAdminZombieModel = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_v_szAdminZombieKnifeModel = ArrayCreate(MODEL_MAX_LENGTH, 1)
- g_szHumanModel1 = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szHumanModel2 = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szHumanModel3 = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- g_szHumanModel4 = ArrayCreate(PLAYERMODEL_MAX_LENGTH, 1)
- // Load From External File
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "OWNER ( H )", g_szOwnerHumanModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "STAFF ( H )", g_szStaffHumanModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "MODERATOR ( H )", g_szModHumanModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "ADMIN ( H )", g_szAdminHumanModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "VIP ( H )", g_szVipHumanModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "ZOMBIE ADMIN", g_szAdminZombieModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Weapon Models", "V_KNIFE ZOMBIE ADMIN", g_v_szAdminZombieKnifeModel)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 1", g_szHumanModel1)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 2", g_szHumanModel2)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 3", g_szHumanModel3)
- amx_load_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 4", g_szHumanModel4)
- // Load our Default Values
- new iIndex
- if(ArraySize(g_szOwnerHumanModel) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szOwnerHumanModel; iIndex++)
- ArrayPushString(g_szOwnerHumanModel, szOwnerHumanModel[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "OWNER ( H )", g_szOwnerHumanModel)
- }
- if(ArraySize(g_szStaffHumanModel) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szStaffHumanModel; iIndex++)
- ArrayPushString(g_szStaffHumanModel, szStaffHumanModel[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "STAFF ( H )", g_szStaffHumanModel)
- }
- if(ArraySize(g_szModHumanModel) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szModHumanModel; iIndex++)
- ArrayPushString(g_szModHumanModel, szModHumanModel[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "MODERATOR ( H )", g_szModHumanModel)
- }
- 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", "ADMIN ( H )", g_szAdminHumanModel)
- }
- if(ArraySize(g_szVipHumanModel) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szVipHumanModel; iIndex++)
- ArrayPushString(g_szVipHumanModel, szVipHumanModel[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "VIP ( H )", g_szVipHumanModel)
- }
- 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 ADMIN", g_szAdminZombieModel)
- }
- 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 ADMIN", g_v_szAdminZombieKnifeModel)
- }
- if(ArraySize(g_szHumanModel1) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szHumanModel1; iIndex++)
- ArrayPushString(g_szHumanModel1, szHumanModel1[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 1", g_szHumanModel1)
- }
- if(ArraySize(g_szHumanModel2) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szHumanModel2; iIndex++)
- ArrayPushString(g_szHumanModel2, szHumanModel2[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 2", g_szHumanModel2)
- }
- if(ArraySize(g_szHumanModel3) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szHumanModel3; iIndex++)
- ArrayPushString(g_szHumanModel3, szHumanModel3[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 3", g_szHumanModel3)
- }
- if(ArraySize(g_szHumanModel4) == 0)
- {
- for(iIndex = 0; iIndex < sizeof szHumanModel4; iIndex++)
- ArrayPushString(g_szHumanModel4, szHumanModel4[iIndex])
- // Save to external file
- amx_save_setting_string_arr(ZE_SETTING_RESOURCES, "Player Models", "HUMAN 4", g_szHumanModel4)
- }
- // Precache
- new szPlayerModel[PLAYERMODEL_MAX_LENGTH], szModel[MODEL_MAX_LENGTH], szModelPath[128]
- for (iIndex = 0; iIndex < ArraySize(g_szOwnerHumanModel); iIndex++)
- {
- ArrayGetString(g_szOwnerHumanModel, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- for (iIndex = 0; iIndex < ArraySize(g_szStaffHumanModel); iIndex++)
- {
- ArrayGetString(g_szStaffHumanModel, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- for (iIndex = 0; iIndex < ArraySize(g_szModHumanModel); iIndex++)
- {
- ArrayGetString(g_szModHumanModel, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- 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_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_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_szHumanModel1); iIndex++)
- {
- ArrayGetString(g_szHumanModel1, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- for (iIndex = 0; iIndex < ArraySize(g_szHumanModel2); iIndex++)
- {
- ArrayGetString(g_szHumanModel2, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- for (iIndex = 0; iIndex < ArraySize(g_szHumanModel3); iIndex++)
- {
- ArrayGetString(g_szHumanModel3, iIndex, szPlayerModel, charsmax(szPlayerModel))
- formatex(szModelPath, charsmax(szModelPath), "models/player/%s/%s.mdl", szPlayerModel, szPlayerModel)
- precache_model(szModelPath)
- }
- for (iIndex = 0; iIndex < ArraySize(g_szHumanModel4); iIndex++)
- {
- ArrayGetString(g_szHumanModel4, 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_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(get_user_flags(id) & OWNER_MODEL)
- {
- // Set Admin Human Model
- ArrayGetString(g_szOwnerHumanModel, random_num(0, ArraySize(g_szOwnerHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- if(get_user_flags(id) & STAFF_MODEL)
- {
- // Set Admin Human Model
- ArrayGetString(g_szStaffHumanModel, random_num(0, ArraySize(g_szStaffHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- if(get_user_flags(id) & MOD_MODEL)
- {
- // Set Admin Human Model
- ArrayGetString(g_szModHumanModel, random_num(0, ArraySize(g_szModHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- if(get_user_flags(id) & ADMIN_MODELS_ACCESS)
- {
- // Set Admin Human Model
- ArrayGetString(g_szAdminHumanModel, random_num(0, ArraySize(g_szAdminHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- if(get_user_flags(id) & VIP_MODEL)
- {
- // Set Admin Human Model
- ArrayGetString(g_szVipHumanModel, random_num(0, ArraySize(g_szVipHumanModel) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- else
- {
- // Rest Player Model (Model Randomly)
- switch(random_num(0, 130))
- {
- case 0..30:
- {
- ArrayGetString(g_szHumanModel1, random_num(0, ArraySize(g_szHumanModel1) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- case 31..70:
- {
- ArrayGetString(g_szHumanModel2, random_num(0, ArraySize(g_szHumanModel2) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- case 71..100:
- {
- ArrayGetString(g_szHumanModel3, random_num(0, ArraySize(g_szHumanModel3) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- case 101..130:
- {
- ArrayGetString(g_szHumanModel4, random_num(0, ArraySize(g_szHumanModel4) - 1), szPlayerModel, charsmax(szPlayerModel))
- rg_set_user_model(id, szPlayerModel)
- }
- }
- }
- }
- 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(get_user_flags(iVictim) & ADMIN_MODELS_ACCESS)
- {
- // 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
- }
- }
You can add as many as you want.
Make sure to add , between each model's name as: admin_model1 , admin_model2 , ....