new cvar_synapsis_chance, cvar_synapsis_min_players new cvar_synapsis_nemesis_count, cvar_synapsis_nem_hp_multi new cvar_synapsis_survivor_count, cvar_synapsis_surv_hp_multi new cvar_synapsis_show_hud, cvar_synapsis_sounds new cvar_synapsis_allow_respawn
public plugin_precache() { // Register game mode at precache (plugin gets paused after this) register_plugin("[ZP] Game Mode: Synapsis", ZP_VERSION_STRING, "ZP Dev Team") zp_gamemodes_register("Synapsis Mode")
// Create the HUD Sync Objects g_HudSync = CreateHudSyncObj()
// Load from external file amx_load_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ROUND SYNAPSIS", g_sound_synapsis)
// If we couldn't load custom sounds from file, use and save default ones new index if (ArraySize(g_sound_synapsis) == 0) { for (index = 0; index < sizeof sound_synapsis; index++) ArrayPushString(g_sound_synapsis, sound_synapsis[index])
// Save to external file amx_save_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ROUND SYNAPSIS", g_sound_synapsis) }
// Precache sounds new sound[SOUND_MAX_LENGTH] for (index = 0; index < ArraySize(g_sound_synapsis); index++) { ArrayGetString(g_sound_synapsis, index, sound, charsmax(sound)) if (equal(sound[strlen(sound)-4], ".mp3")) { format(sound, charsmax(sound), "sound/%s", sound) precache_generic(sound) } else precache_sound(sound) } }
// Deathmatch module's player respawn forward public zp_fw_deathmatch_respawn_pre(id) { // Respawning allowed? if (!get_pcvar_num(cvar_synapsis_allow_respawn)) return PLUGIN_HANDLED;
return PLUGIN_CONTINUE; }
public zp_fw_gamemodes_choose_pre(game_mode_id, skipchecks) { new alive_count = GetAliveCount()
if (!skipchecks) { // Random chance if (random_num(1, get_pcvar_num(cvar_synapsis_chance)) != 1) return PLUGIN_HANDLED;
// Min players if (alive_count < get_pcvar_num(cvar_synapsis_min_players)) return PLUGIN_HANDLED; }
// There should be enough players to have the desired amount of nemesis and survivors if (alive_count < get_pcvar_num(cvar_synapsis_nemesis_count) + get_pcvar_num(cvar_synapsis_survivor_count)) return PLUGIN_HANDLED;
// Game mode allowed return PLUGIN_CONTINUE; }
public zp_fw_gamemodes_start() { // Calculate player counts new id, alive_count = GetAliveCount() new survivor_count = get_pcvar_num(cvar_synapsis_survivor_count) new nemesis_count = get_pcvar_num(cvar_synapsis_nemesis_count)
// Turn specified amount of players into Survivors new iSurvivors, iMaxSurvivors = survivor_count while (iSurvivors < iMaxSurvivors) { // Choose random guy id = GetRandomAlive(random_num(1, alive_count))
// Already a survivor? if (zp_class_survivor_get(id)) continue;
// If not, turn him into one zp_class_survivor_set(id) iSurvivors++
// Apply survivor health multiplier set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_synapsis_surv_hp_multi))) }
// Turn specified amount of players into Nemesis new iNemesis, iMaxNemesis = nemesis_count while (iNemesis < iMaxNemesis) { // Choose random guy id = GetRandomAlive(random_num(1, alive_count))
// Already a survivor or nemesis? if (zp_class_survivor_get(id) || zp_class_nemesis_get(id)) continue;
// If not, turn him into one zp_class_nemesis_set(id) iNemesis++
// Apply nemesis health multiplier set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_synapsis_nem_hp_multi))) }
// Turn the remaining players into humans for (id = 1; id <= g_MaxPlayers; id++) { // Not alive if (!is_user_alive(id)) continue;
// Only those who aren't survivor or nemesis if (zp_class_survivor_get(id) || zp_core_is_nemesis(id)) continue;
// Switch to CT cs_set_player_team(id, CS_TEAM_CT) }
// Play Synapsis sound if (get_pcvar_num(cvar_synapsis_sounds)) { new sound[SOUND_MAX_LENGTH] ArrayGetString(g_sound_synapsis, random_num(0, ArraySize(g_sound_synapsis) - 1), sound, charsmax(sound)) PlaySoundToClients(sound) }
// Plays a sound on clients PlaySoundToClients(const sound[]) { if (equal(sound[strlen(sound)-4], ".mp3")) client_cmd(0, "mp3 play ^"sound/%s^"", sound) else client_cmd(0, "spk ^"%s^"", sound) }
// Get Alive Count -returns alive players number- GetAliveCount() { new iAlive, id
for (id = 1; id <= g_MaxPlayers; id++) { if (is_user_alive(id)) iAlive++ }
return iAlive; }
// Get Random Alive -returns index of alive player number target_index - GetRandomAlive(target_index) { new iAlive, id
for (id = 1; id <= g_MaxPlayers; id++) { if (is_user_alive(id)) iAlive++
// Register System new bool:g_LoggedIn[33] new g_RegisterSelection[33]
new g_szTempName[33][100] new g_szTempPassWord[33][100]
// Stats System ( Points ) new g_RankTempID new g_Top10TempID
new g_TotalPoints[33]
new g_HumanKillsZombiePoints[33] new g_HumanKillsNemesisPoints[33] new g_SurvivorKillsZombiePoints[33] new g_HumanKillsZombieKnifePoints[33]
new g_ZombieInfectsHumanPoints[33] new g_NemesisKillsHuman[33] new g_ZombieKillsSurvivor[33] new g_ZombieKillsHumanPS[33]
new g_AP[33] new g_DonateID[33]
// Achievements new g_Minutes[33] new g_ZombieKillCount1[33] new g_ZombieKillCount2[33] new g_ZombieKillCount3[33] new g_ZombieHSKillCount[33] new g_Rounds[33] new g_KillInfectCount1[33] new g_KillInfectCount2[33] new g_KillInfectCount3[33] new g_gotKillInfectCount[33] new g_nemeKillCountKnife[33] new g_killzombieknife[33] new g_winsurvivor[33] new g_winnemesis[33] new g_killsurvivorplague[33] new g_killnemesisplague[33] new g_kill600survivor[33] new g_kill600nemesis[33] new g_InfectionBombCount[33] new g_SprayCount[33] new g_awpkills[33] new g_infectinrowcount1[33] new g_infectinrowcount2[33] new g_zmkillrowcount1[33] new g_zmkillrowcount2[33] new g_lasthumankillall[33]
// Cvars new cvHost, cvUserName, cvPassWord, cvDbName
new g_GameModePlagueID, g_GameModeSurvivorID, g_GameModeNemesisID, g_GameModeSwarmID, g_GameModeArmageddonID
public plugin_init() { register_plugin("zp_rabs by mottzi","2.1","mottzi")
public cmdHelpCommands() { client_print(0, print_chat, "[ZP-RABS] Say '/bank' to open the Bank Menu") client_print(0, print_chat, "[ZP-RABS] Say '/achvs' or '/achievements' to open the Achievements Menu") client_print(0, print_chat, "[ZP-RABS] Say '/stats' or '/statistics' to see the Statistics") }
public cmdHelpCommands2() { client_print(0, print_chat, "[ZP-RABS] Say '/zmtop10' to see the Top10 Players on this Server") client_print(0, print_chat, "[ZP-RABS] Say '/zmrank' to see your Rank") client_print(0, print_chat, "[ZP-RABS] Achievements, Bank, Stats and Register System are made by Mottzi") }
public joinTeamOldMenu() { new id = read_data(1) new user_team[32]
read_data(2, user_team, 31)
if(!is_user_connected(id)) return PLUGIN_HANDLED
if(g_LoggedIn[id]) return PLUGIN_HANDLED
switch(user_team[0]) { case 'C': { menuRegister(id) } case 'T': { menuRegister(id) } }
return PLUGIN_HANDLED }
public AddGrenadeToPlayer( iEnt, id ) { if(is_user_connected(id) && zp_core_is_zombie(id)) { g_InfectionBombCount[id]++
public cmdNewSpray() { new sprayid = read_data(2) // Spray Owner
g_SprayCount[sprayid]++
if(g_SprayCount[sprayid] == 300) { client_print(sprayid, print_chat, "[Achievements] You unlocked ^"Art of War^"") } }
public menuAchvs(id) { new achvsMenu = menu_create("Achievements", "menuAchvsHandler") new szTitle[100]
// 1 if(g_Minutes[id] >= 600) formatex(szTitle, 99, "<3^n\r[Unlocked]\w Play for 600 Minutes^n") else formatex(szTitle, 99, "<3^nPlay for 600 Minutes \y(\r%i Minutes\y)^n", g_Minutes[id])
menu_additem(achvsMenu, szTitle, "1")
// 2 if(g_ZombieHSKillCount[id] >= 600) formatex(szTitle, 99, "Boom! Headshot^n\r[Unlocked]\w Kill 600 Zombies or Nemesises with headshots^n") else formatex(szTitle, 99, "Boom! Headshot^nKill 600 Zombies or Nemesises with headshots \y(\r%i Kills\y)^n", g_ZombieHSKillCount[id])
menu_additem(achvsMenu, szTitle, "2")
// 3 if(g_Rounds[id] >= 3000) formatex(szTitle, 99, "To the Extreme^n\r[Unlocked]\w Play a total of 3,000 Rounds over all your time played^n") else formatex(szTitle, 99, "To the Extreme^nPlay a total of 3,000 Rounds over all your time played \y(\r%i Rounds\y)^n", g_Rounds[id])
menu_additem(achvsMenu, szTitle, "3")
// 4 if(g_ZombieKillCount1[id] >= 100) formatex(szTitle, 99, "Zombies are Better Off Dead^n\r[Unlocked]\w Kill 100 Zombies^n") else formatex(szTitle, 99, "Zombies are Better Off Dead^nKill 100 Zombies \y(\r%i Kills\y)^n", g_ZombieKillCount1[id])
// 10 if(g_gotKillInfectCount[id] >= 1000) formatex(szTitle, 99, "Enemies With Benefits^n\r[Unlocked]\w Get Infected/Killed by a Zombie 1,000 times^n") else formatex(szTitle, 99, "Enemies With Benefits^nGet Infected/Killed by a Zombie 1,000 times \y(\r%i Kills/Infects\y)^n", g_gotKillInfectCount[id])
menu_additem(achvsMenu, szTitle, "10")
// 11 if(g_nemeKillCountKnife[id] >= 10) formatex(szTitle, 99, "Nerves of Steel^n\r[Unlocked]\w Kill 10 Nemesises with a Knife^n") else formatex(szTitle, 99, "Nerves of Steel^nKill 10 Nemesises with a Knife \y(\r%i Kills\y)^n", g_nemeKillCountKnife[id])
menu_additem(achvsMenu, szTitle, "11")
// 12 if(g_killzombieknife[id] >= 200) formatex(szTitle, 99, "The Legend^n\r[Unlocked]\w Kill 200 Zombies with a Knife^n") else formatex(szTitle, 99, "The Legend^nKill 200 Zombies with a Knife \y(\r%i Kills\y)^n", g_killzombieknife[id])
menu_additem(achvsMenu, szTitle, "12")
// 13 if(g_winsurvivor[id] >= 10) formatex(szTitle, 99, "Survivor^n\r[Unlocked]\w Win 10 rounds as Survivor in Survivor Mode^n") else formatex(szTitle, 99, "Survivor^nWin 10 rounds as Survivor in Survivor Mode \y(\r%i wins\y)^n", g_winsurvivor[id])
menu_additem(achvsMenu, szTitle, "13")
// 14 if(g_winnemesis[id] >= 10) formatex(szTitle, 99, "Nemesis^n\r[Unlocked]\w Win 10 rounds as Nemesis as Nemesis Mode^n") else formatex(szTitle, 99, "Nemesis^nWin 10 rounds as Nemesis in Nemesis Mode \y(\r%i wins\y)^n", g_winnemesis[id])
// 20 if(g_SprayCount[id] >= 300) formatex(szTitle, 99, "Art of War^n\r[Unlocked]\w Spray 300 decals over all your time played^n") else formatex(szTitle, 99, "Art of War^nSpray 300 decals over all your time played \y(\r%i Sprays\y)^n", g_SprayCount[id])
menu_additem(achvsMenu, szTitle, "20")
// 21 if(g_awpkills[id] >= 200) formatex(szTitle, 99, "Perfectionist^n\r[Unlocked]\w Kill 200 Zombies with an AWP Sniper Rifle^n") else formatex(szTitle, 99, "Perfectionist^nKill 200 Zombies with an AWP Sniper Rifle \y(\r%i Kills\y)^n", g_awpkills[id])
// 26 if(g_lasthumankillall[id] >= 1) formatex(szTitle, 99, "Lone Wolf^n\r[Unlocked]\w Be the Last Human Standing and Kill all Zombies^n") else formatex(szTitle, 99, "Lone Wolf^nBe the Last Human Standing and Kill all Zombies^n")
client_print(g_RankTempID, print_chat, "Your rank is %i of %i with %i Points in Total",iRank, iRowsFound, g_TotalPoints[g_RankTempID])
return PLUGIN_CONTINUE }
/* END: STATUS POINTS SYSTEM FUNCTIONS */
/* From Here: REGISTER SYSTEM FUNCTIONS +*+*+*+ */ public menuRegister(id) { // Show him the menu just if he isnt logged in so far if(g_LoggedIn[id] && is_valid_player(id)) { client_print(id, print_chat, "[Login] You are logged in. Rejoin if you want to login again!") } if(!g_LoggedIn[id] && is_valid_player(id)) { new menuLoginCreate = menu_create("\yRegister System", "menuLoginCreateHandler")
switch(g_RegisterSelection[id]) { case 1: { // No Resluts if(iRowsFound < 1) { client_cmd(id, "messagemode szPassword") } // Username Found else { client_print(id, print_chat, "[Login] This username is already given to someone else. Try another one now.") client_cmd(id, "messagemode Username") } } case 2: { // No Resluts if(iRowsFound < 1) { client_print(id, print_chat, "[Login] This username is not registered on this server. Please try it again now!") client_cmd(id, "messagemode Username") } // Username Found else { client_cmd(id, "messagemode szPassword") } } }
switch(g_RegisterSelection[id]) { // Register new User case 1: { new ErrorCode new Error[512] new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
// Set him to zombies client_cmd(id, "jointeam 2")
// Set user as new in User g_LoggedIn[id] = true
// Print him a Message client_print(id, print_chat, "[Login] You successfully created a new Account") client_print(id, print_chat, "[Login] Username = '%s'", g_szTempName[id]) client_print(id, print_chat, "[Login] Password = '%s'", g_szTempPassWord[id])
SQL_FreeHandle(Query) SQL_FreeHandle(SqlConnection) } // Login User case 2: { new ErrorCode new Error[512] new Handle:SqlConnection = SQL_Connect(g_SqlTuple, ErrorCode, Error, 511)
new szSqlPassword[100] SQL_ReadResult(Query, 1, szSqlPassword, 99)
// if password is right if(equal(g_szTempPassWord[id], szSqlPassword)) { // Kick Player who has logged in with same data new players[32], pnum, tempid get_players(players, pnum)
client_print(id, print_chat, "[Bank] You saved %i Ammopacks in your Bank. Now you have %i Ammopacks in your Bank.", iAps, g_AP[id]) } else { client_print(id, print_chat, "[Bank] You dont have enough Ammopacks") }
return PLUGIN_CONTINUE }
public cmdSaveAll(id) { new haveAps = zp_ammopacks_get(id)
zp_ammopacks_set(id, 0) g_AP[id] += haveAps
client_print(id, print_chat, "[Bank] You saved %i Ammopacks to your Bank. Now you have %i Ammopackt in your Bank.", haveAps, g_AP[id]) }
public menuDonate(id) { new DonateMenu = menu_create("\rChoose A player to Donate:", "menuDonateHandler")
new NameDonate[45] get_user_name(g_DonateID[id], NameDonate, 44) new Name[45] get_user_name(g_DonateID[id], Name, 44)
client_print(id, print_chat, "[Bank] You donated %i Ammopacks to %s. Now you have %i ammopacks in your Bank.", iAps, NameDonate, g_AP[id])
// give iAps to Donateid g_AP[g_DonateID[id]] += iAps client_print(g_DonateID[id], print_chat, "[Bank] %s donated %i Ammopacks to you. Now you have %i Ammopacks in your Bank.", Name, iAps, g_AP[g_DonateID[id]]) } else { client_print(id, print_chat, "[Bank] You dont have enough Ammopacks") }
return PLUGIN_CONTINUE }
public plugin_end() { SQL_FreeHandle(g_SqlTuple) }
#define PLUGIN "Zombie Prevolution : Save Ammo Packs" #define VERSION "1.0.0" #define AUTHOR "Kia"
// =============================================================================== // Editing begins here // ===============================================================================
// Add SQL Data here
new Host[] = "" new User[] = "" new Pass[] = "" new Db[] = ""
// =============================================================================== // and stops here. DO NOT MODIFY BELOW UNLESS YOU KNOW WHAT YOU'RE DOING // ===============================================================================
// =============================================================================== // client_putinserver - Called when a player joins the Server // ===============================================================================
public client_putinserver(id) { g_authed[id] = true Load_MySql(id) }
// =============================================================================== // client_disconnect - Called when a player leaves the Server // ===============================================================================
public MySql_Init() { // we tell the API that this is the information we want to connect to, // just not yet. basically it's like storing it in global variables g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
// ok, we're ready to connect new ErrorCode g_SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error)) if(g_SqlConnection == Empty_Handle) { // stop the plugin with an error message set_fail_state(g_Error) }
new Handle:Queries // we must now prepare some random queries Queries = SQL_PrepareQuery(g_SqlConnection,"CREATE TABLE IF NOT EXISTS zpre_ap (steamid varchar(32), name varchar(64), ap INT(11))")
if(!SQL_Execute(Queries)) { // if there were any problems SQL_QueryError(Queries,g_Error,charsmax(g_Error)) set_fail_state(g_Error) }
new szSteamId[32], szTemp[512] get_user_authid(id, szSteamId, charsmax(szSteamId))
new Data[1] Data[0] = id
//we will now select from the table `furienmoney` where the steamid match format(szTemp,charsmax(szTemp),"SELECT * FROM `zpre_ap` WHERE (`zpre_ap`.`steamid` = '%s')", szSteamId) SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1) } }
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(FailState == TQUERY_CONNECT_FAILED) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error) } else if(FailState == TQUERY_QUERY_FAILED) { log_amx("Load Query failed. [%d] %s", Errcode, Error) } new id id = Data[0] if(SQL_NumResults(Query) < 1) { //.if there are no results found
new szSteamId[32], szName[32], szQuotedName[64] get_user_authid(id, szSteamId, charsmax(szSteamId)) // get user's steamid get_user_name(id, szName, 31) // get user's name SQL_QuoteString(g_SqlConnection, szQuotedName, 63, szName)
// if its still pending we can't do anything with it if (equal(szSteamId,"ID_PENDING")) { return PLUGIN_HANDLED }
new szTemp[512]
// now we will insert the values into our table. format(szTemp,charsmax(szTemp),"INSERT INTO `zpre_ap` ( `steamid` , `name` , `ap`) VALUES ('%s','%s','0');",szSteamId, szQuotedName) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } else { // if there are results found zp_ammopacks_set(id, SQL_ReadResult(Query, 2)) } g_loaded[id] = true return PLUGIN_HANDLED }
public Save_MySql(id) { if(g_loaded[id]) { new szSteamId[32], szTemp[512], szName[32], szQuotedName[64] get_user_authid(id, szSteamId, charsmax(szSteamId)) get_user_name(id, szName, 31) SQL_QuoteString(g_SqlConnection, szQuotedName, 63, szName)
// Here we will update the user hes information in the database where the steamid matches. format(szTemp,charsmax(szTemp),"UPDATE `zpre_ap` SET `name` = '%s', `ap` = '%i'WHERE `zpre_ap`.`steamid` = '%s';",szQuotedName,zp_ammopacks_get(id),szSteamId) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } }
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { SQL_FreeHandle(Query)
return PLUGIN_HANDLED }
public plugin_end() { if(g_SqlConnection != Empty_Handle) { SQL_FreeHandle(g_SqlConnection) //free connection handle here } }
Plugin failed to compile! Please try contacting the author.
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
/home/forums/content/files/2/4/2/2/8/6/136695.attach( : fatal error 100: cannot read from file: "zombieplague"
ZP5.0 Private Mods is a new unofficial version of the well known mod, built on ZP5.0.8's core using a stable, improved and optimized code which avoids server crashes. The gameplay is slightly changed, with new effects at grenades explosion, different tweaks and a new modes.
There are also new rounds as we are using new modes.
Raptor Mode [Finished]
Quote:
The Raptor will have speed ability that can be activated with [E] button.
The Raptor vs Survivor.
When the Raptor almost die (low health), it will recieve Zombie Madness ability. The Raptor also will do extra damage when it is attacking the human at high speed.
Dragon Mode [Finished]:
Quote:
Do you want to fight with Dragon? Dragon vs Humans.
The Dragon can fly and have ability to throw flame. Human must avoid the flame and try to kill the Dragon.
The Predator is a human that will only use knife. Then he will try to kill all the enemies (Crawler, Dragon and Zombies in Hunting Round)
The Predator also will have invisible ability which can be activated by [E] button. It also can jump high due to its low gravity
Its knife also will have knock back power. When the Predator almost die (low health), it will recieve X weapon which will kill the victim with one shot (1 hit 1 kill).
Do you of high? So, this mode is not suitable for you.
The Crawler vs Humans.
The Crawler will have climb ability. Besides, it also has an extremely long tongue. The tongue can be launched out of its mouth at high speeds, and when it reaches one of the Human, it automatically wraps around the target's body and drags him/her back towards the Crawler.
So, if the Crawler is in the sky, you will be drag far from the ground into the sky!
The Ninja will have teleport ability and powerful Dual Katana as it weapon. During Ninja round, the map lighting will be changed. The Ninja will have nightvision.
So, that I can continue this project. I really appreciate it.
Changelog:
Quote:
(21/8/2014):
Beta v1.0 - Searching for beta testers.
Beta v1.1 - Bombardier mode is finished. Now, the time for fully testing.
(22/8/2014)
Beta v1.2 - Testing server is released.
(24/8/2014)
Beta v1.2 - Releasing the Bombardier mode.
(26/8/2014)
Beta v1.3 - Dragon mode is finished. Now, the time for fully testing.
(27/8/2014)
Beta v1.3.5 - [FIXED] Code for damage dealt by the fire from the Dragon.
(28/8/2014)
Beta v1.4 - Crawler mode is finished. Now, the time for fully testing.
Beta v1.4.5 - [FIXED] Removed unnecessary code for Crawler mode.
(29/8/2014)
Beta v1.5 - Predator mode is finished. Now, the time for fully testing.
Beta v1.6 - Hunting mode is finished. Now, the time for fully testing.
(30/8/2014)
Beta v1.6.5 - [ADDED] Custom weapon tracer for all modes.
(6/9/2014)
Beta v1.7 - Releasing the Raptor mode.
(7/9/2014)
Beta v1.7.5 - [ADDED] Zombie madness ability for Raptor when it has low health.
Beta v1.7.9 - [ADDED] Extra knife damage when the Raptor is attacking the human at high speed.
(9/9/2014)
Beta v1.8 - [ADDED] Thunder effect when the zombie is being killed.
(11/9/2014)
Beta v1.9 - Ninja mode is finished. Now, the time for fully testing.
(1/10/2014)
Beta v1.5 - [FIXED] Rewritten the false code for both mods, Bombardier and Raptor.
Beta v1.6 - [ADDED] New cvar for Raptor mode. Now, you can set the cooldown for its ability.
(21/10/2014)
Beta v1.6.1 - [FIXED] Unlimited grenades after Bombardier round.
(25/10/2014)
Beta v1.7 - [ADDED] Now, the Bombardier will throw Insect Bomb instead of Infection Bomb or Kill Bomb.
(26/10/2014)
Beta v1.7.1 - [FIXED] The name of Bombardier hand model.
Beta v1.7.2 - [FIXED] The insect bomb still alive although the round has end.
(2/11/2014)
Beta v1.8 - [FIXED] The native for the Bombardier in the zp50_admin_commands.sma file.
infec_delay = get_cvar_pointer("zp_gamemode_delay") round = register_cvar("zp_rounds", "6") // At which round do you want the Survivor or Nemesis round will be played