eSportsKosova - Gaming Community
Kerko Script (SMA) - Printable Version

+- eSportsKosova - Gaming Community (https://esportskosova.com)
+-- Forum: HAPËSIRA E COUNTER-STRIKE (https://esportskosova.com/forum-7.html)
+--- Forum: Counter-Strike 1.6 (https://esportskosova.com/forum-19.html)
+---- Forum: Amx Mod X (https://esportskosova.com/forum-58.html)
+---- Thread: Kerko Script (SMA) (/thread-52470.html)

Pages: 1 2 3 4


Re: Kerko Script (SMA) - Dinnii - 03-29-2025

joni.h Wrote:Bug fix .sma filen
Kontakto me whitetomcat nqs ai ta jep ; mu mka thon osht private sja jep kujt

Lem Rehat Wrote:Nese Bon Ndonje skript te ZP 6.2 ose advance po jo e modifikume veq le te jet brenda scripti i comma po te jet pa licensuar
Faleminderit !

Code:
new const ZP_CUSTOMIZATION_FILE[] = "zombieplague.ini" new const ZP_EXTRAITEMS_FILE[] = "zp_extraitems.ini" new const ZP_ZOMBIECLASSES_FILE[] = "zp_zombieclasses.ini" // Limiters for stuff not worth making dynamic arrays out of (increase if needed) const MAX_CSDM_SPAWNS = 128 const MAX_STATS_SAVED = 64 /*================================================================================ Customization ends here! Yes, that's it. Editing anything beyond here is not officially supported. Proceed at your own risk... =================================================================================*/ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fakemeta> #include <hamsandwich> #include <xs> #include <geoip> #include <zp_colorchat> #include <Commas> #include <colorchat> #include <csx> native zp_get_user_zombie(index); native zp_get_user_ammo_packs(id); native zp_get_user_nemesis(id); native zp_get_user_assassin(id); native zp_get_user_sniper(id); native zp_get_user_survivor(id); /*================================================================================ [Constants, Offsets, Macros] =================================================================================*/ // Plugin Version new const PLUGIN_VERSION[] = "6.0" const TASK_ID = 1603; // Chat Prefix #define CHAT_PREFIX "^x04[ZP]^x01" #define CHAT_PREFIX2 "[ZP]" #define TASK_HEALTH 120000 // Address Protection #define ADDRESS_PROTECTION "89.40.233.212:27015" // DNS Protection #define DNS_PROTECTION "" new const Float: g_flCoords[ ][ ] = { { 0.50, 0.40 }, { 0.56, 0.44 }, { 0.60, 0.50 }, { 0.56, 0.56 }, { 0.50, 0.60 }, { 0.44, 0.56 }, { 0.40, 0.50 }, { 0.44, 0.44 } }; // Customization file sections enum { SECTION_NONE = 0, SECTION_ACCESS_FLAGS, SECTION_PLAYER_MODELS, SECTION_WEAPON_MODELS, SECTION_GRENADE_SPRITES, SECTION_SOUNDS, SECTION_AMBIENCE_SOUNDS, SECTION_BUY_MENU_WEAPONS, SECTION_EXTRA_ITEMS_WEAPONS, SECTION_HARD_CODED_ITEMS_COSTS, SECTION_WEATHER_EFFECTS, SECTION_SKY, SECTION_LIGHTNING, SECTION_ZOMBIE_DECALS, SECTION_KNOCKBACK, SECTION_OBJECTIVE_ENTS, SECTION_SVC_BAD } // Access flags enum { ACCESS_ENABLE_MOD = 0, ACCESS_ADMIN_MENU, ACCESS_ADMIN_MODES_MENU, ACCESS_MODE_INFECTION, ACCESS_MODE_NEMESIS, ACCESS_MODE_ASSASSIN, ACCESS_MODE_SURVIVOR, ACCESS_MODE_SNIPER, ACCESS_MODE_SWARM, ACCESS_MODE_MULTI, ACCESS_MODE_PLAGUE, ACCESS_MODE_ARMA, ACCESS_MODE_APOC, ACCESS_MODE_NIGHT, ACCESS_MAKE_ZOMBIE, ACCESS_MAKE_HUMAN, ACCESS_MAKE_NEMESIS, ACCESS_MAKE_ASSASSIN, ACCESS_MAKE_SURVIVOR, ACCESS_MAKE_SNIPER, ACCESS_RESPAWN_PLAYERS, ACCESS_ADMIN_MODELS, MAX_ACCESS_FLAGS } // Task offsets enum (+= 100) { TASK_MODEL = 2000, TASK_TEAM, TASK_SPAWN, TASK_BLOOD, TASK_AURA, TASK_BURN, TASK_NVISION, TASK_FLASH, TASK_CHARGE, TASK_SHOWHUD, TASK_MAKEZOMBIE, TASK_WELCOMEMSG, TASK_THUNDER_PRE, TASK_THUNDER, TASK_AMBIENCESOUNDS } // IDs inside tasks #define ID_MODEL (taskid - TASK_MODEL) #define ID_TEAM (taskid - TASK_TEAM) #define ID_SPAWN (taskid - TASK_SPAWN) #define ID_BLOOD (taskid - TASK_BLOOD) #define ID_AURA (taskid - TASK_AURA) #define ID_BURN (taskid - TASK_BURN) #define ID_NVISION (taskid - TASK_NVISION) #define ID_FLASH (taskid - TASK_FLASH) #define ID_CHARGE (taskid - TASK_CHARGE) #define ID_SHOWHUD (taskid - TASK_SHOWHUD) // BP Ammo Refill task #define REFILL_WEAPONID args[0] // For weapon buy menu handlers #define WPN_STARTID g_menu_data[id][1] #define WPN_MAXIDS ArraySize(g_primary_items) #define WPN_SELECTION (g_menu_data[id][1]+key) #define WPN_AUTO_ON g_menu_data[id][2] #define WPN_AUTO_PRI g_menu_data[id][3] #define WPN_AUTO_SEC g_menu_data[id][4] // For player list menu handlers #define PL_ACTION g_menu_data[id][0] // For extra items menu handlers #define EXTRAS_CUSTOM_STARTID (EXTRA_WEAPONS_STARTID + ArraySize(g_extraweapon_names)) #define HattrickRange(%1,%2) entity_range(%1,%2) #define HE_MODEL_EXPLODE "sprites/zerogxplode.spr" //#define HE_SOUND_EXPLODE "fvox/flatline.wav" // Menu selections const MENU_KEY_AUTOSELECT = 7 const MENU_KEY_BACK = 7 const MENU_KEY_NEXT = 8 const MENU_KEY_EXIT = 9 // Hard coded extra items enum { EXTRA_NVISION = 0, EXTRA_ANTIDOTE, EXTRA_MADNESS, EXTRA_INFBOMB, EXTRA_WEAPONS_STARTID } // Game modes enum { MODE_NONE = 0, MODE_INFECTION, MODE_NEMESIS, MODE_ASSASSIN, MODE_SURVIVOR, MODE_SNIPER, MODE_SWARM, MODE_MULTI, MODE_PLAGUE, MODE_ARMA, MODE_APOC, MODE_NIGHT } // ZP Teams const ZP_TEAM_NO_ONE = 0 const ZP_TEAM_ANY = 0 const ZP_TEAM_ZOMBIE = (1<<0) const ZP_TEAM_HUMAN = (1<<1) const ZP_TEAM_NEMESIS = (1<<2) const ZP_TEAM_ASSASSIN = (1<<3) const ZP_TEAM_SURVIVOR = (1<<4) const ZP_TEAM_SNIPER = (1<<5) new const ZP_TEAM_NAMES[] = { "ZOMBIE , HUMAN", "ZOMBIE", "HUMAN", "ZOMBIE , HUMAN", "NEMESIS", "ZOMBIE , NEMESIS", "HUMAN , NEMESIS", "ZOMBIE , HUMAN , NEMESIS", "ASSASSIN", "ZOMBIE , ASSASSIN", "HUMAN , ASSASSIN", "ZOMBIE, HUMAN, ASSASSIN", "NEMESIS , ASSASSIN", "ZOMBIE , NEMESIS , ASSASSIN", "HUMAN, NEMESIS, ASSASSIN", "ZOMBIE , HUMAN , NEMESIS , ASSASSIN", "SURVIVOR", "ZOMBIE, SURVIVOR", "HUMAN, SURVIVOR", "ZOMBIE, HUMAN, SURVIVOR", "NEMESIS , SURVIVOR", "ZOMBIE , NEMESIS , SURVIVOR", "HUMAN , NEMESIS , SURVIVOR", "ZOMBIE , HUMAN , NEMESIS , SURVIVOR", "ASSASSIN, SURVIVOR", "ZOMBIE, ASSASSIN, SURVIVOR", "HUMAN, ASSASSIN, SURVIVOR", "ZOMBIE, HUMAN, ASSASSIN, SURVIVOR", "NEMESIS, ASSASSIN, SURVIVOR", "ZOMBIE, NEMESIS, ASSASSIN, SURVIVOR", "HUMAN, NEMESIS, ASSASSIN, SURVIVOR", "ZOMBIE, HUMAN, NEMESIS, ASSASSIN, SURVIVOR", "SNIPER", "ZOMBIE, SNIPER", "HUMAN, SNIPER", "ZOMBIE, HUMAN, SNIPER", "NEMESIS, SNIPER", "ZOMBIE, NEMESIS, SNIPER", "HUMAN, NEMESIS, SNIPER", "ZOMBIE, HUMAN, NEMESIS, SNIPER", "ASSASSIN, SNIPER", "ZOMBIE, ASSASSIN, SNIPER", "HUMAN, ASSASSIN, SNIPER", "ZOMBIE, HUMAN, ASSASSIN, SNIPER", "NEMESIS, ASSASSIN, SNIPER", "ZOMBIE, NEMESIS, ASSASSIN, SNIPER", "HUMAN, NEMESIS, ASSASSIN, SNIPER", "ZOMBIE, HUMAN, NEMESIS, ASSASSIN, SNIPER", "SURVIVOR, SNIPER", "ZOMBIE, SURVIVOR, SNIPER", "HUMAN, SURVIVOR, SNIPER", "ZOMBIE, HUMAN, SURVIVOR, SNIPER", "NEMESIS, SURVIVOR, SNIPER", "ZOMBIE, NEMESIS, SURVIVOR, SNIPER", "HUMAN, NEMESIS, SURVIVOR, SNIPER", "ZOMBIE, HUMAN, NEMESIS, SURVIVOR, SNIPER", "ASSASSIN, SURVIVOR, SNIPER", "ZOMBIE, ASSASSIN, SURVIVOR, SNIPER", "HUMAN, ASSASSIN, SURVIVOR, SNIPER", "ZOMBIE, HUMAN, ASSASSIN, SURVIVOR, SNIPER", "NEMESIS, ASSASSIN, SURVIVOR, SNIPER", "ZOMBIE, NEMESIS, ASSASSIN, SURVIVOR, SNIPER", "HUMAN, NEMESIS, ASSASSIN, SURVIVOR, SNIPER", "ZOMBIE, HUMAN, NEMESIS, ASSASSIN, SURVIVOR, SNIPER" } // Zombie classes const ZCLASS_NONE = -1 // HUD messages const Float:HUD_EVENT_X = -1.0 const Float:HUD_EVENT_Y = 0.17 const Float:HUD_INFECT_X = 0.05 const Float:HUD_INFECT_Y = 0.45 const Float:HUD_SPECT_X = -1.0 const Float:HUD_SPECT_Y = 0.8 const Float:HUD_STATS_X = 0.02 const Float:HUD_STATS_Y = 0.9 // CS Offsets #if cellbits == 32 const OFFSET_CLIPAMMO = 51 #else const OFFSET_CLIPAMMO = 65 #endif // CS Player PData Offsets (win32) const OFFSET_PAINSHOCK = 108 // ConnorMcLeod const OFFSET_CSTEAMS = 114 const OFFSET_CSMONEY = 115 const OFFSET_FLASHLIGHT_BATTERY = 244 const OFFSET_CSDEATHS = 444 const OFFSET_MODELINDEX = 491 // Orangutanz // CS Player CBase Offsets (win32) const OFFSET_ACTIVE_ITEM = 373 // CS Weapon CBase Offsets (win32) const OFFSET_WEAPONOWNER = 41 // Linux diff's const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds const OFFSET_LINUX_WEAPONS = 4 // weapon offsets are only 4 steps higher on Linux // CS Teams enum { FM_CS_TEAM_UNASSIGNED = 0, FM_CS_TEAM_T, FM_CS_TEAM_CT, FM_CS_TEAM_SPECTATOR } new const CS_TEAM_NAMES[] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" } // Some constants const HIDE_MONEY = (1<<5) const UNIT_SECOND = (1<<12) const DMG_HEGRENADE = (1<<24) const IMPULSE_FLASHLIGHT = 100 const USE_USING = 2 const USE_STOPPED = 0 const STEPTIME_SILENT = 999 const BREAK_GLASS = 0x01 const FFADE_IN = 0x0000 const FFADE_STAYOUT = 0x0004 const PEV_SPEC_TARGET = pev_iuser2 // Max BP ammo for weapons new const MAXBPAMMO [] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100 } // Max Clip for weapons new const MAXCLIP [] = { -1, 32, -1, 32, 1, 32, -1, 32, 32, 1, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1, 32 } // Ammo IDs for weapons new const AMMOID [] = { -1, 9, -1, 2, 12, 5, 14, 6, 4, 13, 10, 7, 6, 4, 4, 4, 6, 10, 1, 10, 3, 5, 4, 10, 2, 11, 8, 4, 2, -1, 7 } // Ammo Type Names for weapons new const AMMOTYPE []= { "", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm", "57mm", "45acp", "556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox", "buckshot", "556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm" } // Weapon IDs for ammo types new const AMMOWEAPON [] = { 0, CSW_AWP, CSW_SCOUT, CSW_M249, CSW_AUG, CSW_XM1014, CSW_MAC10, CSW_FIVESEVEN, CSW_DEAGLE, CSW_P228, CSW_ELITE, CSW_FLASHBANG, CSW_HEGRENADE, CSW_SMOKEGRENADE, CSW_C4 } // Primary and Secondary Weapon Names new const WEAPONNAMES [] = { "", "P228 Compact", "", "Schmidt Scout", "", "XM1014 M4", "", "Ingram MAC-10", "Steyr AUG A1", "", "Dual Elite Berettas", "FiveseveN", "UMP 45", "SG-550 Auto-Sniper", "IMI Galil", "Famas", "USP .45 ACP Tactical", "Glock 18C", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun", "M3 Super 90", "M4A1 Carbine", "Schmidt TMP", "G3SG1 Auto-Sniper", "", "Desert Eagle .50 AE", "SG-552 Commando", "AK-47 Kalashnikov", "", "ES P90" } // Weapon entity names new const WEAPONENTNAMES [] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" } // CS sounds new const sound_flashlight [] = "items/flashlight1.wav" new const sound_buyammo [] = "items/9mmclip1.wav" new const sound_armorhit [] = "player/bhit_helmet-1.wav" // Explosion radius for custom grenades const Float:NADE_EXPLOSION_RADIUS = 240.0 // HACK: pev_ field used to store additional ammo on weapons const PEV_ADDITIONAL_AMMO = pev_iuser1 // HACK: pev_ field used to store custom nade types and their values const PEV_NADE_TYPE = pev_flTimeStepSound const NADE_TYPE_INFECTION = 1111 const NADE_TYPE_EXPLODE = 2222 const NADE_TYPE_FROST = 3333 const NADE_TYPE_NAPALM = 4444 const PEV_FLARE_COLOR = pev_punchangle const PEV_FLARE_DURATION = pev_flSwimTime // Weapon bitsums const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90) const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE) // Allowed weapons for zombies (added grenades/bomb for sub-plugin support, since they shouldn't be getting them anyway) const ZOMBIE_ALLOWED_WEAPONS_BITSUM = (1<<CSW_KNIFE)|(1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_C4) // Classnames for separate model entities new const MODEL_ENT_CLASSNAME[] = "player_model" new const WEAPON_ENT_CLASSNAME[] = "weapon_model" // Menu keys const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 // Ambience Sounds enum { AMBIENCE_SOUNDS_INFECTION = 0, AMBIENCE_SOUNDS_NEMESIS, AMBIENCE_SOUNDS_ASSASSIN, AMBIENCE_SOUNDS_SURVIVOR, AMBIENCE_SOUNDS_SNIPER, AMBIENCE_SOUNDS_SWARM, AMBIENCE_SOUNDS_PLAGUE, AMBIENCE_SOUNDS_ARMA, AMBIENCE_SOUNDS_APOC, AMBIENCE_SOUNDS_NIGHT, MAX_AMBIENCE_SOUNDS } // Admin menu actions enum { ACTION_ZOMBIEFY_HUMANIZE = 0, ACTION_MAKE_NEMESIS, ACTION_MAKE_ASSASSIN, ACTION_MAKE_SURVIVOR, ACTION_MAKE_SNIPER, ACTION_RESPAWN_PLAYER, ACTION_MODES_MENU } // Admin modes menu actions enum { ACTION_MODE_SWARM, ACTION_MODE_MULTI, ACTION_MODE_PLAGUE, ACTION_MODE_ARMA, ACTION_MODE_APOC, ACTION_MODE_NIGHT } // Custom forward return values const ZP_PLUGIN_HANDLED = 97 /*================================================================================ [Global Variables] =================================================================================*/ // Player vars new g_human[33] // is human new g_zombie[33] // is zombie new g_nemesis[33] // is nemesis new g_assassin[33] // is assassin new g_survivor[33] // is survivor new g_sniper[33] // is sniper new g_firstzombie[33] // is first zombie new g_lastzombie[33] // is last zombie new g_lasthuman[33] // is last human new g_frozen[33] // is frozen (can't move) new g_nodamage[33] // has spawn protection/zombie madness new g_respawn_as_zombie[33] // should respawn as zombie new g_nvision[33] // has night vision new g_nvisionenabled[33] // has night vision turned on new g_zombieclass[33] // zombie class new g_zombieclassnext[33] // zombie class for next infection new g_flashlight[33] // has custom flashlight turned on new g_flashbattery[33] = { 100, ... } // custom flashlight battery new g_canbuy[33] // is allowed to buy a new weapon through the menu new g_ammopacks[33] // ammo pack count new g_damagedealt[33] // damage dealt to zombies (used to calculate ammo packs reward) new Float:g_lastleaptime[33] // time leap was last used new Float:g_lastflashtime[33] // time flashlight was last toggled new g_playermodel[33][32] // current model's short name [player][model] new g_menu_data[33][5] // data for some menu handlers new g_ent_playermodel[33] // player model entity new g_ent_weaponmodel[33] // weapon model entity new g_burning_duration[33] // burning task duration new g_iPosition[ 33 ]; // Game vars new g_pluginenabled // ZP enabled new g_newround // new round starting new g_endround // round ended new g_nemround // nemesis round new g_assaround // assassin round new g_survround // survivor round new g_sniround // sniper round new g_swarmround // swarm round new g_armaround // armageddon round new g_apocround // apocalypse round new g_nightround // nightmare round new g_plagueround // plague round new g_modestarted // mode fully started new g_lastmode // last played mode new g_scorezombies, g_scorehumans // team scores new g_spawnCount, g_spawnCount2 // available spawn points counter new Float:g_spawns[MAX_CSDM_SPAWNS][3], Float:g_spawns2[MAX_CSDM_SPAWNS][3] // spawn points data new g_lights_i // lightning current lights counter new g_lights_cycle[32] // current lightning cycle new g_lights_cycle_len // lightning cycle length new Float:g_models_targettime // for adding delays between Model Change messages new Float:g_teams_targettime // for adding delays between Team Change messages new g_MsgSync, g_MsgSync2, g_MsgSync3 // message sync objects new g_trailSpr, g_exploSpr, g_flameSpr, g_smokeSpr, g_glassSpr, g_hExplode // grenade sprites new g_freezetime // whether CS's freeze time is on new g_maxplayers // max players counter new g_czero // whether we are running on a CZ server new g_hamczbots // whether ham forwards are registered for CZ bots new g_fwSpawn, g_fwPrecacheSound // spawn and precache sound forward handles new g_infbombcounter, g_antidotecounter, g_madnesscounter // to limit buying some items new g_arrays_created // to prevent stuff from being registered before initializing arrays new g_lastplayerleaving // flag for whenever a player leaves and another takes his place new g_switchingteam // flag for whenever a player's team change emessage is sent new g_iStatusHudmessage; new countdown_timer, cvar_countdown_sound; new g_iSize; new g_msgsync; new ASSASSIN, SURVIVOR, NEMESIS, SNIPER new g_MaxPlayers // Message IDs vars new g_msgScoreInfo, g_msgNVGToggle, g_msgScoreAttrib, g_msgAmmoPickup, g_msgScreenFade, g_msgDeathMsg, g_msgSetFOV, g_msgFlashlight, g_msgFlashBat, g_msgTeamInfo, g_msgDamage, g_msgHideWeapon, g_msgCrosshair, g_msgScreenShake, g_msgCurWeapon // Some forward handlers new g_fwRoundStart, g_fwRoundEnd, g_fwUserInfected_pre, g_fwUserInfected_post, g_fwUserHumanized_pre, g_fwUserHumanized_post, g_fwUserInfect_attempt, g_fwUserHumanize_attempt, g_fwExtraItemSelected, g_fwUserUnfrozen, g_fwUserLastZombie, g_fwUserLastHuman, g_fwDummyResult // Temporary Database vars (used to restore players stats in case they get disconnected) new db_name[MAX_STATS_SAVED][32] // player name new db_ammopacks[MAX_STATS_SAVED] // ammo pack count new db_zombieclass[MAX_STATS_SAVED] // zombie class new db_slot_i // additional saved slots counter (should start on maxplayers+1) // Extra Items vars new Array:g_extraitem_name // caption new Array:g_extraitem_cost // cost new Array:g_extraitem_team // team new g_extraitem_i // loaded extra items counter // For extra items file parsing new Array:g_extraitem2_realname, Array:g_extraitem2_name, Array:g_extraitem2_cost, Array:g_extraitem2_team, Array:g_extraitem_new // Zombie Classes vars new Array:g_zclass_name // caption new Array:g_zclass_info // description new Array:g_zclass_modelsstart // start position in models array new Array:g_zclass_modelsend // end position in models array new Array:g_zclass_playermodel // player models array new Array:g_zclass_modelindex // model indices array new Array:g_zclass_clawmodel // claw model new Array:g_zclass_hp // health new Array:g_zclass_spd // speed new Array:g_zclass_grav // gravity new Array:g_zclass_kb // knockback new g_zclass_i // loaded zombie classes counter // For zombie classes file parsing new Array:g_zclass2_realname, Array:g_zclass2_name, Array:g_zclass2_info, Array:g_zclass2_modelsstart, Array:g_zclass2_modelsend, Array:g_zclass2_playermodel, Array:g_zclass2_modelindex, Array:g_zclass2_clawmodel, Array:g_zclass2_hp, Array:g_zclass2_spd, Array:g_zclass2_grav, Array:g_zclass2_kb, Array:g_zclass_new // Customization vars new g_access_flag[MAX_ACCESS_FLAGS], Array:model_nemesis, Array:model_assassin, Array:model_survivor, Array:model_sniper, Array:model_human, Array:model_admin_zombie, Array:model_admin_human, Array:g_modelindex_human, Array:g_modelindex_nemesis, Array:g_modelindex_assassin, Array:g_modelindex_survivor, Array:g_modelindex_sniper, g_same_models_for_all, Array:g_modelindex_admin_zombie, Array:g_modelindex_admin_human, model_vknife_human[64], model_vknife_nemesis[64], model_vknife_assassin[64], model_vxm1014_survivor[64], model_pxm1014_survivor[64], model_vak47_survivor[64], model_pak47_survivor[64], model_vm4a1_survivor[64], model_pm4a1_survivor[64], model_vawp_sniper[64], model_pawp_sniper[64], model_grenade_infect[64], model_grenade_fire[64], model_grenade_frost[64], model_grenade_flare[64], model_vknife_admin_human[64], model_vknife_admin_zombie[64], sprite_grenade_trail[64], sprite_grenade_ring[64], sprite_grenade_fire[64], sprite_grenade_smoke[64], sprite_grenade_glass[64], Array:sound_win_zombies, Array:sound_win_humans, Array:sound_win_no_one, Array:zombie_infect, Array:zombie_idle, Array:zombie_pain, Array:nemesis_pain, Array:assassin_pain, Array:zombie_die, Array:zombie_fall, Array:zombie_miss_wall, Array:zombie_hit_normal, Array:zombie_hit_stab, g_ambience_rain, Array:zombie_idle_last, Array:zombie_madness, Array:sound_nemesis, Array:sound_assassin, Array:sound_survivor, Array:sound_sniper, Array:sound_swarm, Array:sound_multi, Array:sound_plague, Array:sound_armageddon, Array:sound_apocalypse, Array:sound_nightmare, Array:grenade_infect, Array:grenade_infect_player, Array:grenade_fire, Array:grenade_fire_player, Array:grenade_frost, Array:grenade_frost_player, Array:grenade_frost_break, Array:grenade_flare, Array:sound_antidote, Array:sound_thunder, g_ambience_sounds[MAX_AMBIENCE_SOUNDS], Array:sound_ambience1, Array:sound_ambience2, Array:sound_ambience3, Array:sound_ambience4, Array:sound_ambience5, Array:sound_ambience6, Array:sound_ambience7, Array:sound_ambience8, Array:sound_ambience9, Array:sound_ambience10, Array:sound_ambience1_duration, Array:sound_ambience2_duration, Array:sound_ambience3_duration, Array:sound_ambience4_duration, Array:sound_ambience5_duration, Array:sound_ambience6_duration, Array:sound_ambience7_duration, Array:sound_ambience8_duration, Array:sound_ambience9_duration, Array:sound_ambience10_duration, Array:sound_ambience1_ismp3, Array:sound_ambience2_ismp3, Array:sound_ambience3_ismp3, Array:sound_ambience4_ismp3, Array:sound_ambience5_ismp3, Array:sound_ambience6_ismp3, Array:sound_ambience7_ismp3, Array:sound_ambience8_ismp3, Array:sound_ambience9_ismp3, Array:sound_ambience10_ismp3, Array:g_primary_items, Array:g_secondary_items, Array:g_additional_items, Array:g_primary_weaponids, Array:g_secondary_weaponids, Array:g_extraweapon_names, Array:g_extraweapon_items, Array:g_extraweapon_costs, g_extra_costs2[EXTRA_WEAPONS_STARTID], g_ambience_snow, g_ambience_fog, g_fog_density[10], g_fog_color[12], g_sky_enable, Array:g_sky_names, Array:lights_thunder, Array:zombie_decals, Array:g_objective_ents, Float:g_modelchange_delay, g_set_modelindex_offset, g_handle_models_on_separate_ent, Float:kb_weapon_power[31] = { -1.0, ... }, Array:zombie_miss_slash, g_force_consistency // CVAR pointers new cvar_lighting, cvar_zombiefov, cvar_plague, cvar_plaguechance, cvar_zombiefirsthp, cvar_removemoney, cvar_thunder, cvar_zombiebonushp, cvar_nemhp, cvar_nem, cvar_assahp, cvar_assa, cvar_surv, cvar_sni, cvar_nemchance, cvar_assachance, cvar_deathmatch, cvar_nemglow, cvar_assaglow, cvar_customnvg, cvar_hitzones, cvar_humanhp, cvar_nemgravity, cvar_assagravity, cvar_flashsize, cvar_ammodamage, cvar_zombiearmor, cvar_survpainfree, cvar_snipainfree, cvar_nempainfree, cvar_nemspd, cvar_assapainfree, cvar_assaspd, cvar_survchance, cvar_survhp, cvar_survspd, cvar_snichance, cvar_snihp, cvar_snispd, cvar_humanspd, cvar_swarmchance, cvar_armachance, cvar_apocchance, cvar_nightchance, cvar_flashdrain, cvar_zombiebleeding, cvar_removedoors, cvar_customflash, cvar_randspawn, cvar_multi, cvar_multichance, cvar_infammo, cvar_swarm, cvar_arma, cvar_apoc, cvar_night, cvar_ammoinfect, cvar_toggle, cvar_knockbackpower, cvar_freezeduration, cvar_triggered, cvar_flashcharge, cvar_firegrenades, cvar_frostgrenades, cvar_survgravity, cvar_snigravity, cvar_logcommands, cvar_survglow, cvar_sniglow, cvar_humangravity, cvar_spawnprotection, cvar_nvgsize, cvar_zclasses, cvar_extraitems, cvar_showactivity, cvar_humanlasthp, cvar_warmup, cvar_flashdist, cvar_fireduration, cvar_firedamage, cvar_armanemhp, cvar_armasurvhp, cvar_apocassahp, cvar_apocsnihp, cvar_flaregrenades, cvar_knockbackducking, cvar_knockbackdamage, cvar_knockbackzvel, cvar_multiratio, cvar_swarmratio, cvar_armaratio, cvar_apocratio, cvar_nightratio, cvar_spawndelay, cvar_extraantidote, cvar_extramadness, cvar_extraweapons, cvar_extranvision, cvar_nvggive, cvar_preventconsecutive, cvar_botquota, cvar_buycustom, cvar_zombiepainfree, cvar_fireslowdown, cvar_survbasehp, cvar_survaura, cvar_snibasehp, cvar_sniaura, cvar_nemaura, cvar_assaaura, cvar_extrainfbomb, cvar_knockback, cvar_fragsinfect, cvar_fragskill, cvar_humanarmor, cvar_zombiesilent, cvar_removedropped, cvar_plagueratio, cvar_blocksuicide, cvar_knockbackdist, cvar_nemdamage, cvar_assadamage, cvar_leapzombies, cvar_leapzombiesforce, cvar_leapzombiesheight, cvar_leapzombiescooldown, cvar_leapnemesis, cvar_leapnemesisforce, cvar_leapnemesisheight, cvar_leapnemesiscooldown, cvar_leapassassin, cvar_leapassassinforce, cvar_leapassassinheight, cvar_leapassassincooldown, cvar_leapsurvivor, cvar_leapsurvivorforce, cvar_leapsurvivorheight, cvar_leapsniper, cvar_nightnemhp, cvar_nightassahp, cvar_nightsurvhp, cvar_nightsnihp, cvar_leapsniperforce, cvar_leapsniperheight, cvar_nemminplayers, cvar_assaminplayers, cvar_survminplayers, cvar_sniminplayers, cvar_respawnonsuicide, cvar_respawnafterlast, cvar_leapsurvivorcooldown, cvar_leapsnipercooldown, cvar_statssave, cvar_swarmminplayers, cvar_multiminplayers, cvar_plagueminplayers, cvar_armaminplayers, cvar_apocminplayers, cvar_adminmodelshuman, cvar_adminmodelszombie, cvar_nembasehp, cvar_assabasehp, cvar_blockpushables, cvar_respawnworldspawnkill, cvar_nightminplayers, cvar_madnessduration, cvar_plaguenemnum, cvar_plaguenemhp, cvar_plaguesurvhp, cvar_snidamage, cvar_plaguesurvnum, cvar_infectionscreenfade, cvar_infectionscreenshake, cvar_infectionsparkle, cvar_infectiontracers, cvar_infectionparticles, cvar_infbomblimit, cvar_allowrespawnsurv, cvar_allowrespawnsni, cvar_flashshowall, cvar_allowrespawninfection, cvar_allowrespawnnem, cvar_allowrespawnassa, cvar_allowrespawnswarm, cvar_allowrespawnplague, cvar_allowrespawnarma, cvar_allowrespawnapoc, cvar_allowrespawnnight, cvar_survinfammo, cvar_sniinfammo, cvar_nemknockback, cvar_assaknockback, cvar_nvgcolor[3], cvar_nemnvgcolor[3], cvar_assanvgcolor[3], cvar_humnvgcolor[3], cvar_flashcolor[3], cvar_hudicons, cvar_respawnzomb, cvar_respawnhum, cvar_respawnnem, cvar_respawnassa, cvar_respawnsurv, cvar_respawnsni, cvar_startammopacks, cvar_randweapons, cvar_antidotelimit, cvar_madnesslimit, cvar_adminknifemodelshuman, cvar_adminknifemodelszombie, cvar_keephealthondisconnect // Cached stuff for players new g_isconnected[33] // whether player is connected new g_isalive[33] // whether player is alive new g_isbot[33] // whether player is a bot new g_currentweapon[33] // player's current weapon id new g_playername[33][32] // player's name new Float:g_zombie_spd[33] // zombie class speed new Float:g_zombie_knockback[33] // zombie class knockback new g_zombie_classname[33][32] // zombie class name #define is_user_valid_connected(%1) (1 <= %1 <= g_maxplayers && g_isconnected[%1]) #define is_user_valid_alive(%1) (1 <= %1 <= g_maxplayers && g_isalive[%1]) // Cached CVARs new g_cached_customflash, g_cached_zombiesilent, Float:g_cached_humanspd, Float:g_cached_nemspd, Float:g_cached_assaspd, Float:g_cached_survspd, Float:g_cached_snispd, g_cached_leapzombies, Float:g_cached_leapzombiescooldown, g_cached_leapnemesis, Float:g_cached_leapnemesiscooldown, g_cached_leapassassin, Float:g_cached_leapassassincooldown, g_cached_leapsurvivor, Float:g_cached_leapsurvivorcooldown, g_cached_leapsniper, Float:g_cached_leapsnipercooldown /*================================================================================ [Natives, Precache and Init] =================================================================================*/ public plugin_natives() { // Player specific natives register_native("zp_get_user_zombie", "native_get_user_zombie", 1) register_native("zp_get_user_nemesis", "native_get_user_nemesis", 1) register_native("zp_get_user_assassin", "native_get_user_assassin", 1) register_native("zp_get_user_survivor", "native_get_user_survivor", 1) register_native("zp_get_user_sniper", "native_get_user_sniper", 1) register_native("zp_get_user_first_zombie", "native_get_user_first_zombie", 1) register_native("zp_get_user_last_zombie", "native_get_user_last_zombie", 1) register_native("zp_get_user_last_human", "native_get_user_last_human", 1) register_native("zp_get_user_zombie_class", "native_get_user_zombie_class", 1) register_native("zp_get_user_next_class", "native_get_user_next_class", 1) register_native("zp_set_user_zombie_class", "native_set_user_zombie_class", 1) register_native("zp_get_user_ammo_packs", "native_get_user_ammo_packs", 1) register_native("zp_set_user_ammo_packs", "native_set_user_ammo_packs", 1) register_native("zp_get_zombie_maxhealth", "native_get_zombie_maxhealth", 1) register_native("zp_get_user_batteries", "native_get_user_batteries", 1) register_native("zp_set_user_batteries", "native_set_user_batteries", 1) register_native("zp_get_user_nightvision", "native_get_user_nightvision", 1) register_native("zp_set_user_nightvision", "native_set_user_nightvision", 1) register_native("zp_infect_user", "native_infect_user", 1) register_native("zp_disinfect_user", "native_disinfect_user", 1) register_native("zp_make_user_nemesis", "native_make_user_nemesis", 1) register_native("zp_make_user_assassin", "native_make_user_assassin", 1) register_native("zp_make_user_survivor", "native_make_user_survivor", 1) register_native("zp_make_user_sniper", "native_make_user_sniper", 1) register_native("zp_respawn_user", "native_respawn_user", 1) register_native("zp_force_buy_extra_item", "native_force_buy_extra_item", 1) register_native("zp_override_user_model", "native_override_user_model", 1) // Round natives register_native("zp_has_round_started", "native_has_round_started", 1) register_native("zp_is_nemesis_round", "native_is_nemesis_round", 1) register_native("zp_is_assassin_round", "native_is_assassin_round", 1) register_native("zp_is_survivor_round", "native_is_survivor_round", 1) register_native("zp_is_sniper_round", "native_is_sniper_round", 1) register_native("zp_is_swarm_round", "native_is_swarm_round", 1) register_native("zp_is_plague_round", "native_is_plague_round", 1) register_native("zp_is_armageddon_round", "native_is_armageddon_round", 1) register_native("zp_is_apocalypse_round", "native_is_apocalypse_round", 1) register_native("zp_is_nightmare_round", "native_is_nightmare_round", 1) register_native("zp_get_zombie_count", "native_get_zombie_count", 1) register_native("zp_get_human_count", "native_get_human_count", 1) register_native("zp_get_nemesis_count", "native_get_nemesis_count", 1) register_native("zp_get_assassin_count", "native_get_assassin_count", 1) register_native("zp_get_survivor_count", "native_get_survivor_count", 1) register_native("zp_get_sniper_count", "native_get_sniper_count", 1) // External additions natives register_native("zp_register_extra_item", "native_register_extra_item", 1) register_native("zp_register_zombie_class", "native_register_zombie_class", 1) register_native("zp_get_extra_item_id", "native_get_extra_item_id", 1) register_native("zp_get_zombie_class_id", "native_get_zombie_class_id", 1) } public plugin_precache() { precache_sound("fvox/biohazard_detected.wav"); precache_sound("fvox/one.wav"); precache_sound("fvox/two.wav"); precache_sound("fvox/three.wav"); precache_sound("fvox/four.wav"); precache_sound("fvox/five.wav"); precache_sound("fvox/six.wav"); precache_sound("fvox/seven.wav"); precache_sound("fvox/eight.wav"); precache_sound("fvox/nine.wav"); precache_sound("fvox/ten.wav"); precache_sound("fvox/eleven.wav"); precache_sound("fvox/twelve.wav"); precache_sound("fvox/thirteen.wav"); precache_sound("fvox/fourteen.wav"); precache_sound("fvox/fifteen.wav"); // Register earlier to show up in plugins list properly after plugin disable/error at loading register_plugin("Zombie Plague", PLUGIN_VERSION, "MeRcyLeZZ") // To switch plugin on/off register_concmd("zp_toggle", "cmd_toggle", _, "<1/0> - Enable/Disable Zombie Plague (will restart the current map)", 0) cvar_toggle = register_cvar("zp_on", "1") // Plugin disabled? if (!get_pcvar_num(cvar_toggle)) return; g_pluginenabled = true // Initialize a few dynamically sized arrays (alright, maybe more than just a few...) model_human = ArrayCreate(32, 1) model_nemesis = ArrayCreate(32, 1) model_assassin = ArrayCreate(32, 1) model_survivor = ArrayCreate(32, 1) model_sniper = ArrayCreate(32, 1) model_admin_human = ArrayCreate(32, 1) model_admin_zombie = ArrayCreate(32, 1) g_modelindex_human = ArrayCreate(1, 1) g_modelindex_nemesis = ArrayCreate(1, 1) g_modelindex_assassin = ArrayCreate(1, 1) g_modelindex_survivor = ArrayCreate(1, 1) g_modelindex_sniper = ArrayCreate(1, 1) g_modelindex_admin_human = ArrayCreate(1, 1) g_modelindex_admin_zombie = ArrayCreate(1, 1) sound_win_zombies = ArrayCreate(64, 1) sound_win_humans = ArrayCreate(64, 1) sound_win_no_one = ArrayCreate(64, 1) zombie_infect = ArrayCreate(64, 1) zombie_pain = ArrayCreate(64, 1) nemesis_pain = ArrayCreate(64, 1) assassin_pain = ArrayCreate(64, 1) zombie_die = ArrayCreate(64, 1) zombie_fall = ArrayCreate(64, 1) zombie_miss_slash = ArrayCreate(64, 1) zombie_miss_wall = ArrayCreate(64, 1) zombie_hit_normal = ArrayCreate(64, 1) zombie_hit_stab = ArrayCreate(64, 1) zombie_idle = ArrayCreate(64, 1) zombie_idle_last = ArrayCreate(64, 1) zombie_madness = ArrayCreate(64, 1) sound_nemesis = ArrayCreate(64, 1) sound_assassin = ArrayCreate(64, 1) sound_survivor = ArrayCreate(64, 1) sound_sniper = ArrayCreate(64, 1) sound_swarm = ArrayCreate(64, 1) sound_multi = ArrayCreate(64, 1) sound_plague = ArrayCreate(64, 1) sound_armageddon = ArrayCreate(64, 1) sound_apocalypse = ArrayCreate(64, 1) sound_nightmare = ArrayCreate(64, 1) grenade_infect = ArrayCreate(64, 1) grenade_infect_player = ArrayCreate(64, 1) grenade_fire = ArrayCreate(64, 1) grenade_fire_player = ArrayCreate(64, 1) grenade_frost = ArrayCreate(64, 1) grenade_frost_player = ArrayCreate(64, 1) grenade_frost_break = ArrayCreate(64, 1) grenade_flare = ArrayCreate(64, 1) sound_antidote = ArrayCreate(64, 1) sound_thunder = ArrayCreate(64, 1) sound_ambience1 = ArrayCreate(64, 1) sound_ambience2 = ArrayCreate(64, 1) sound_ambience3 = ArrayCreate(64, 1) sound_ambience4 = ArrayCreate(64, 1) sound_ambience5 = ArrayCreate(64, 1) sound_ambience6 = ArrayCreate(64, 1) sound_ambience7 = ArrayCreate(64, 1) sound_ambience8 = ArrayCreate(64, 1) sound_ambience9 = ArrayCreate(64, 1) sound_ambience10 = ArrayCreate(64, 1) sound_ambience1_duration = ArrayCreate(1, 1) sound_ambience2_duration = ArrayCreate(1, 1) sound_ambience3_duration = ArrayCreate(1, 1) sound_ambience4_duration = ArrayCreate(1, 1) sound_ambience5_duration = ArrayCreate(1, 1) sound_ambience6_duration = ArrayCreate(1, 1) sound_ambience7_duration = ArrayCreate(1, 1) sound_ambience8_duration = ArrayCreate(1, 1) sound_ambience9_duration = ArrayCreate(1, 1) sound_ambience10_duration = ArrayCreate(1, 1) sound_ambience1_ismp3 = ArrayCreate(1, 1) sound_ambience2_ismp3 = ArrayCreate(1, 1) sound_ambience3_ismp3 = ArrayCreate(1, 1) sound_ambience4_ismp3 = ArrayCreate(1, 1) sound_ambience5_ismp3 = ArrayCreate(1, 1) sound_ambience6_ismp3 = ArrayCreate(1, 1) sound_ambience7_ismp3 = ArrayCreate(1, 1) sound_ambience8_ismp3 = ArrayCreate(1, 1) sound_ambience9_ismp3 = ArrayCreate(1, 1) sound_ambience10_ismp3 = ArrayCreate(1, 1) g_primary_items = ArrayCreate(32, 1) g_secondary_items = ArrayCreate(32, 1) g_additional_items = ArrayCreate(32, 1) g_primary_weaponids = ArrayCreate(1, 1) g_secondary_weaponids = ArrayCreate(1, 1) g_extraweapon_names = ArrayCreate(32, 1) g_extraweapon_items = ArrayCreate(32, 1) g_extraweapon_costs = ArrayCreate(1, 1) g_sky_names = ArrayCreate(32, 1) lights_thunder = ArrayCreate(32, 1) zombie_decals = ArrayCreate(1, 1) g_objective_ents = ArrayCreate(32, 1) g_extraitem_name = ArrayCreate(32, 1) g_extraitem_cost = ArrayCreate(1, 1) g_extraitem_team = ArrayCreate(1, 1) g_extraitem2_realname = ArrayCreate(32, 1) g_extraitem2_name = ArrayCreate(32, 1) g_extraitem2_cost = ArrayCreate(1, 1) g_extraitem2_team = ArrayCreate(1, 1) g_extraitem_new = ArrayCreate(1, 1) g_zclass_name = ArrayCreate(32, 1) g_zclass_info = ArrayCreate(32, 1) g_zclass_modelsstart = ArrayCreate(1, 1) g_zclass_modelsend = ArrayCreate(1, 1) g_zclass_playermodel = ArrayCreate(32, 1) g_zclass_modelindex = ArrayCreate(1, 1) g_zclass_clawmodel = ArrayCreate(32, 1) g_zclass_hp = ArrayCreate(1, 1) g_zclass_spd = ArrayCreate(1, 1) g_zclass_grav = ArrayCreate(1, 1) g_zclass_kb = ArrayCreate(1, 1) g_zclass2_realname = ArrayCreate(32, 1) g_zclass2_name = ArrayCreate(32, 1) g_zclass2_info = ArrayCreate(32, 1) g_zclass2_modelsstart = ArrayCreate(1, 1) g_zclass2_modelsend = ArrayCreate(1, 1) g_zclass2_playermodel = ArrayCreate(32, 1) g_zclass2_modelindex = ArrayCreate(1, 1) g_zclass2_clawmodel = ArrayCreate(32, 1) g_zclass2_hp = ArrayCreate(1, 1) g_zclass2_spd = ArrayCreate(1, 1) g_zclass2_grav = ArrayCreate(1, 1) g_zclass2_kb = ArrayCreate(1, 1) g_zclass_new = ArrayCreate(1, 1) // Allow registering stuff now g_arrays_created = true // Load customization data load_customization_from_files() new i, buffer[100] // Load up the hard coded extra items native_register_extra_item2("NightVision", g_extra_costs2[EXTRA_NVISION], ZP_TEAM_HUMAN) native_register_extra_item2("T-Virus Antidote", g_extra_costs2[EXTRA_ANTIDOTE], ZP_TEAM_ZOMBIE) native_register_extra_item2("Zombie Madness", g_extra_costs2[EXTRA_MADNESS], ZP_TEAM_ZOMBIE) native_register_extra_item2("Infection Bomb", g_extra_costs2[EXTRA_INFBOMB], ZP_TEAM_ZOMBIE) // Extra weapons for (i = 0; i < ArraySize(g_extraweapon_names); i++) { ArrayGetString(g_extraweapon_names, i, buffer, charsmax(buffer)) native_register_extra_item2(buffer, ArrayGetCell(g_extraweapon_costs, i), ZP_TEAM_HUMAN) } // Custom player models for (i = 0; i < ArraySize(model_human); i++) { ArrayGetString(model_human, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_human, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_nemesis); i++) { ArrayGetString(model_nemesis, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_nemesis, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_assassin); i++) { ArrayGetString(model_assassin, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_assassin, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_survivor); i++) { ArrayGetString(model_survivor, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_survivor, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_sniper); i++) { ArrayGetString(model_sniper, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_sniper, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_admin_zombie); i++) { ArrayGetString(model_admin_zombie, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_admin_zombie, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } for (i = 0; i < ArraySize(model_admin_human); i++) { ArrayGetString(model_admin_human, i, buffer, charsmax(buffer)) format(buffer, charsmax(buffer), "models/player/%s/%s.mdl", buffer, buffer) ArrayPushCell(g_modelindex_admin_human, engfunc(EngFunc_PrecacheModel, buffer)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, buffer) if (g_force_consistency == 2) force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, buffer) } // Custom weapon models engfunc(EngFunc_PrecacheModel, model_vknife_human) engfunc(EngFunc_PrecacheModel, model_vknife_nemesis) engfunc(EngFunc_PrecacheModel, model_vknife_assassin) engfunc(EngFunc_PrecacheModel, model_vxm1014_survivor) engfunc(EngFunc_PrecacheModel, model_pxm1014_survivor) engfunc(EngFunc_PrecacheModel, model_vak47_survivor) engfunc(EngFunc_PrecacheModel, model_pak47_survivor) engfunc(EngFunc_PrecacheModel, model_vm4a1_survivor) engfunc(EngFunc_PrecacheModel, model_pm4a1_survivor) engfunc(EngFunc_PrecacheModel, model_vawp_sniper) engfunc(EngFunc_PrecacheModel, model_pawp_sniper) engfunc(EngFunc_PrecacheModel, model_grenade_infect) engfunc(EngFunc_PrecacheModel, model_grenade_fire) engfunc(EngFunc_PrecacheModel, model_grenade_frost) engfunc(EngFunc_PrecacheModel, model_grenade_flare) engfunc(EngFunc_PrecacheModel, model_vknife_admin_human) engfunc(EngFunc_PrecacheModel, model_vknife_admin_zombie) // Custom sprites for grenades g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail) g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring) g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire) g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke) g_glassSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_glass) g_hExplode = engfunc( EngFunc_PrecacheModel, HE_MODEL_EXPLODE ); //engfunc( EngFunc_PrecacheSound, HE_SOUND_EXPLODE ); // Custom sounds for (i = 0; i < ArraySize(sound_win_zombies); i++) { ArrayGetString(sound_win_zombies, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_win_humans); i++) { ArrayGetString(sound_win_humans, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_win_no_one); i++) { ArrayGetString(sound_win_no_one, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_infect); i++) { ArrayGetString(zombie_infect, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_pain); i++) { ArrayGetString(zombie_pain, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(nemesis_pain); i++) { ArrayGetString(nemesis_pain, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(assassin_pain); i++) { ArrayGetString(assassin_pain, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_die); i++) { ArrayGetString(zombie_die, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_fall); i++) { ArrayGetString(zombie_fall, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_miss_slash); i++) { ArrayGetString(zombie_miss_slash, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_miss_wall); i++) { ArrayGetString(zombie_miss_wall, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_hit_normal); i++) { ArrayGetString(zombie_hit_normal, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_hit_stab); i++) { ArrayGetString(zombie_hit_stab, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_idle); i++) { ArrayGetString(zombie_idle, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_idle_last); i++) { ArrayGetString(zombie_idle_last, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(zombie_madness); i++) { ArrayGetString(zombie_madness, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_nemesis); i++) { ArrayGetString(sound_nemesis, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_assassin); i++) { ArrayGetString(sound_assassin, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_survivor); i++) { ArrayGetString(sound_survivor, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_sniper); i++) { ArrayGetString(sound_sniper, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_swarm); i++) { ArrayGetString(sound_swarm, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_multi); i++) { ArrayGetString(sound_multi, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_plague); i++) { ArrayGetString(sound_plague, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_armageddon); i++) { ArrayGetString(sound_armageddon, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_apocalypse); i++) { ArrayGetString(sound_apocalypse, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_nightmare); i++) { ArrayGetString(sound_nightmare, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_infect); i++) { ArrayGetString(grenade_infect, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_infect); i++) { ArrayGetString(grenade_infect, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_infect_player); i++) { ArrayGetString(grenade_infect_player, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_fire); i++) { ArrayGetString(grenade_fire, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_fire_player); i++) { ArrayGetString(grenade_fire_player, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_frost); i++) { ArrayGetString(grenade_frost, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_frost_player); i++) { ArrayGetString(grenade_frost_player, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_frost_break); i++) { ArrayGetString(grenade_frost_break, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(grenade_flare); i++) { ArrayGetString(grenade_flare, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_antidote); i++) { ArrayGetString(sound_antidote, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } for (i = 0; i < ArraySize(sound_thunder); i++) { ArrayGetString(sound_thunder, i, buffer, charsmax(buffer)) engfunc(EngFunc_PrecacheSound, buffer) } // Ambience Sounds if (g_ambience_sounds[AMBIENCE_SOUNDS_INFECTION]) { for (i = 0; i < ArraySize(sound_ambience1); i++) { ArrayGetString(sound_ambience1, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience1_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_NEMESIS]) { for (i = 0; i < ArraySize(sound_ambience2); i++) { ArrayGetString(sound_ambience2, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience2_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_ASSASSIN]) { for (i = 0; i < ArraySize(sound_ambience3); i++) { ArrayGetString(sound_ambience3, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience3_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_SURVIVOR]) { for (i = 0; i < ArraySize(sound_ambience4); i++) { ArrayGetString(sound_ambience4, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience4_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_SNIPER]) { for (i = 0; i < ArraySize(sound_ambience5); i++) { ArrayGetString(sound_ambience5, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience5_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_SWARM]) { for (i = 0; i < ArraySize(sound_ambience6); i++) { ArrayGetString(sound_ambience6, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience6_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_PLAGUE]) { for (i = 0; i < ArraySize(sound_ambience7); i++) { ArrayGetString(sound_ambience7, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience7_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_ARMA]) { for (i = 0; i < ArraySize(sound_ambience8); i++) { ArrayGetString(sound_ambience8, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience8_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_APOC]) { for (i = 0; i < ArraySize(sound_ambience9); i++) { ArrayGetString(sound_ambience9, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience9_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } if (g_ambience_sounds[AMBIENCE_SOUNDS_NIGHT]) { for (i = 0; i < ArraySize(sound_ambience10); i++) { ArrayGetString(sound_ambience10, i, buffer, charsmax(buffer)) if (ArrayGetCell(sound_ambience10_ismp3, i)) { format(buffer, charsmax(buffer), "sound/%s", buffer) engfunc(EngFunc_PrecacheGeneric, buffer) } else { engfunc(EngFunc_PrecacheSound, buffer) } } } // CS sounds (just in case) engfunc(EngFunc_PrecacheSound, sound_flashlight) engfunc(EngFunc_PrecacheSound, sound_buyammo) engfunc(EngFunc_PrecacheSound, sound_armorhit) new ent // Fake Hostage (to force round ending) ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "hostage_entity")) if (pev_valid(ent)) { engfunc(EngFunc_SetOrigin, ent, Float:{8192.0,8192.0,8192.0}) dllfunc(DLLFunc_Spawn, ent) } // Weather/ambience effects if (g_ambience_fog) { ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_fog")) if (pev_valid(ent)) { fm_set_kvd(ent, "density", g_fog_density, "env_fog") fm_set_kvd(ent, "rendercolor", g_fog_color, "env_fog") } } if (g_ambience_rain) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_rain")) if (g_ambience_snow) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_snow")) // Prevent some entities from spawning g_fwSpawn = register_forward(FM_Spawn, "fw_Spawn") // Prevent hostage sounds from being precached g_fwPrecacheSound = register_forward(FM_PrecacheSound, "fw_PrecacheSound") } public plugin_init() { // Plugin disabled? if (!g_pluginenabled) return; // No zombie classes? if (!g_zclass_i) set_fail_state("No zombie classes loaded!") // Events register_dictionary("zp_countdown_remix.txt"); register_event("DeathMsg", "Event_DeathMsg", "a") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("StatusValue", "event_show_status", "be", "1=2", "2!0") register_event("StatusValue", "event_hide_status", "be", "1=1", "2=0") register_event( "StatusValue", "ShowStatus", "be", "1=2", "2!0" ); register_event( "StatusValue", "HideStatus", "be", "1=1", "2=0" ); register_logevent("logevent_round_start",2, "1=Round_Start") register_logevent("logevent_round_end", 2, "1=Round_End") register_event("AmmoX", "event_ammo_x", "be") if (g_ambience_sounds[AMBIENCE_SOUNDS_INFECTION] || g_ambience_sounds[AMBIENCE_SOUNDS_NEMESIS] || g_ambience_sounds[AMBIENCE_SOUNDS_ASSASSIN] || g_ambience_sounds[AMBIENCE_SOUNDS_SURVIVOR] || g_ambience_sounds[AMBIENCE_SOUNDS_SNIPER] || g_ambience_sounds[AMBIENCE_SOUNDS_SWARM] || g_ambience_sounds[AMBIENCE_SOUNDS_PLAGUE] || g_ambience_sounds[AMBIENCE_SOUNDS_ARMA] || g_ambience_sounds[AMBIENCE_SOUNDS_APOC] || g_ambience_sounds[AMBIENCE_SOUNDS_NIGHT]) register_event("30", "event_intermission", "a") g_iSize = sizeof( g_flCoords ); g_MaxPlayers = get_maxplayers() // HAM Forwards RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1) RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1) RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Post", 1) RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack") RegisterHam(Ham_Use, "func_tank", "fw_UseStationary") RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary") RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary") RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary") RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1) RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1) RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1) RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1) RegisterHam(Ham_Use, "func_pushable", "fw_UsePushable") RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon") RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon") RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon") RegisterHam(Ham_AddPlayerItem, "player", "fw_AddPlayerItem") for (new i = 1; i < sizeof WEAPONENTNAMES; i++) if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1) // FM Forwards register_forward(FM_ClientDisconnect, "fw_ClientDisconnect") register_forward(FM_ClientDisconnect, "fw_ClientDisconnect_Post", 1) register_forward(FM_ClientKill, "fw_ClientKill") register_forward(FM_EmitSound, "fw_EmitSound") if (!g_handle_models_on_separate_ent) register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue") register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged") register_forward(FM_GetGameDescription, "fw_GetGameDescription") register_forward(FM_SetModel, "fw_SetModel") RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade") register_forward(FM_CmdStart, "fw_CmdStart") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") unregister_forward(FM_Spawn, g_fwSpawn) unregister_forward(FM_PrecacheSound, g_fwPrecacheSound) // Client commands register_clcmd("say zpmenu", "clcmd_saymenu") register_clcmd("say /zpmenu", "clcmd_saymenu") register_clcmd("say unstuck", "clcmd_sayunstuck") register_clcmd("say /unstuck", "clcmd_sayunstuck") register_clcmd("nightvision", "clcmd_nightvision") register_clcmd("drop", "clcmd_drop") register_clcmd("chooseteam", "clcmd_changeteam") register_clcmd("jointeam", "clcmd_changeteam") register_clcmd("fuckthis", "clcmd_fuckthis") // Menus register_menu("Game Menu", KEYSMENU, "menu_game") register_menu("Buy Menu 1", KEYSMENU, "menu_buy1") register_menu("Buy Menu 2", KEYSMENU, "menu_buy2") register_menu("Admin Menu", KEYSMENU, "menu_admin") register_menu("Admin Modes Menu", KEYSMENU, "menu_modes_admin") // Admin commands register_concmd("zp_zombie", "cmd_zombie", _, "<target> - Turn someone into a Zombie", 0) register_concmd("zp_human", "cmd_human", _, "<target> - Turn someone back to Human", 0) register_concmd("zp_nemesis", "cmd_nemesis", _, "<target> - Turn someone into a Nemesis", 0) register_concmd("zp_assassin", "cmd_assassin", _, "<target> - Turn someone into an Assassin", 0) register_concmd("zp_survivor", "cmd_survivor", _, "<target> - Turn someone into a Survivor", 0) register_concmd("zp_sniper", "cmd_sniper", _, "<target> - Turn someone into a Sniper", 0) register_concmd("zp_respawn", "cmd_respawn", _, "<target> - Respawn someone", 0) register_concmd("zp_swarm", "cmd_swarm", _, " - Start Swarm Mode", 0) register_concmd("zp_multi", "cmd_multi", _, " - Start Multi Infection", 0) register_concmd("zp_plague", "cmd_plague", _, " - Start Plague Mode", 0) register_concmd("zp_armageddon", "cmd_armageddon", _, " - Start Armageddon Mode", 0) register_concmd("zp_apocalypse", "cmd_apocalypse", _, " - Start Apocalypse Mode", 0) register_concmd("zp_nightmare", "cmd_nightmare", _, " - Start Nightmare Mode", 0) // Message IDs g_msgScoreInfo = get_user_msgid("ScoreInfo") g_msgTeamInfo = get_user_msgid("TeamInfo") g_msgDeathMsg = get_user_msgid("DeathMsg") g_msgScoreAttrib = get_user_msgid("ScoreAttrib") g_msgSetFOV = get_user_msgid("SetFOV") g_msgScreenFade = get_user_msgid("ScreenFade") g_msgScreenShake = get_user_msgid("ScreenShake") ...



Re: Kerko Script (SMA) - elvis tempedicial - 04-02-2025

Kerkoj 1 script per zpmbie plague 4.3 qe me qit class ammo pack health posht radarit


Re: Kerko Script (SMA) - addseo1234 - 06-16-2025

bon me na qit furien addons +furien.sma tlutem?
ทางเข้า gclub


Re: Kerko Script (SMA) - BLACKsTreeT. - 07-07-2025

Nese Ka Mundsi Dikush Script'in e Bej Admin Nga Serveri qe eshte I Krijuar Nga Alphaa
FLM Per Mirkuptimin
Pres Pergjigje ??


RE: Kerko Script (SMA) - Slim Shady ^_^ - 11-04-2025

Kerkojm anti reklama sma amo me kon me ngjyra Smile


RE: Kerko Script (SMA) - kab01 - 01-03-2026

hej a ka mundesi 1par sma Furien


RE: Kerko Script (SMA) - bremo1 - 01-14-2026

Nese Bon Ndonje skript te ZP 6.2 po jo e modifikume veq le te jet brenda scripti i comma po te jet pa licensuar
Faleminderit !


RE: Kerko Script (SMA) - BR3ACKER - 01-14-2026

(03-23-2016, 08:11 PM)bremo1 Wrote: Nese Bon Ndonje skript te ZP 6.2  po jo e modifikume veq le te jet brenda scripti i comma po te jet pa licensuar
Faleminderit !


antari @Diinnii ja ka qu njonit ma nalt. kqyre nalt krejt nfillim, ose kliko tek ky link
http://www.esports.al/showthread.php?tid=52470&pid=437360#pid437360


RE: Kerko Script (SMA) - gNtt - 01-14-2026

psr spi kqyrni postimet mir bre po boni pldh boll mir po jav sqaron BACKERI kqyrni mir postimet