Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- #include maps\_createdynents;
- #using_animtree( "generic_human" );
- #using_animtree( "dog" );
- precache_init()
- {
- shader = strTok("specialty_instakill_zombies;damage_feedback;floatz_display;line_horizontal;hud_status_dead;ui_scrollbar;offscreen_icon_us;hint_health;damage_feedback;cinematic;objectivea;objectiveb;objectivec;objectived;hud_checkbox_active;menu_map_nazi_zombie_factory;gradient;ui_sliderbutt_1;ui_slider2;hud_checkbox_done;ui_host;menu_button_backing_highlight;menu_popup_back;talkingicon;checkerboard;white_line_faded_center;gradient_center;scorebar_zom_1;scorebar_zom_2;scorebar_zom_3;scorebar_zom_4", ";");
- model = strTok("zombie_teleporter;weapon_usa_kbar_knife;static_peleliu_sandbags_lego_end;static_peleliu_sandbags_lego_mdl;static_peleliu_sandbag;projectile_usa_m9a1_riflegrenade;static_peleliu_palette;prefab_brick_group;static_peleliu_corrugated_metal1;zombie_beaker_small;zombie_beaker_med;static_peleliu_shelves_ammo;static_berlin_furnacedoor;static_berlin_furnacelatch;zombie_beaker_sphere;zombie_lab_dead_rat;static_global_trash_4x4;zombie_perk_bottle_sleight;zombie_perk_bottle_revive;zombie_perk_bottle_doubletap;zombie_perk_bottle_jugg;clutter_peleliu_tire_single;zombie_teleporter_control_panel;static_seelow_blackbarrel;zombie_wallclock_main;defaultvehicle;zombie_teleporter_pad;defaultactor;weapon_zombie_monkey_bomb;zombie_wolf;zombie_vending_jugg_on;zombie_vending_doubletap_on;zombie_vending_revive_on;zombie_vending_sleight_on;zombie_vending_packapunch_on;zombie_transformer;zombie_pile_wood_box;static_peleliu_corrugated_metal4;zombie_nameplate_maxis;static_peleliu_crate01_short;static_peleliu_crate01;zombie_beaker_brain;zombie_brain;defaultactor;defaultvehicle;test_sphere_silver;dest_opel_blitz_body_dmg0;dest_peleliu_generator_mobile_dmg0;static_berlin_victorian_couch_d;static_peleliu_filecabinet_metal;static_berlin_crate_metal;zombie_treasure_box;zombie_treasure_box_lid;test_sphere_silver;static_peleliu_b17_bomber_body;zombie_bomb;zombie_vending_sleight_on;zombie_vending_jugg_on;zombie_vending_revive_on;static_berlin_ger_radio;prefab_berlin_asylum_dbldoor_dr;zombie_wheelchair;zombie_zapper_power_box;zombie_asylum_chair;zombie_treasure_box_rubble;zombie_metal_cart;zombie_power_lever;static_seelow_woodbarrel_single;static_berlin_plainchair;static_peleliu_barbedwire;zombie_sumpf_bearpile;static_berlin_ger_radio;static_berlin_loudspeaker;static_berlin_loudspeaker_d;static_peleliu_blackbarrel01;zombie_vending_doubletap_price;zombie_vending_revive_on_price;zombie_vending_sleight_on_price;zombie_vending_jugg_on_price;zombie_lab_cage;static_berlin_metal_desk;zombie_spine;zombie_teleporter_pad;zombie_wolf;zombie_teddybear;static_peleliu_filecabinet_metal;zombie_teleporter_mainframe_ring1;zombie_vending_packapunch;zombie_teddybear_perkaholic;zombie_difference_engine;zombie_vending_doubletap_on;zombie_teleporter_powerline;zombie_factory_bearpile;zombie_chalkboard;zombie_wallclock_main", ";");
- item = strTok("zombie_perk_bottle_revive;zombie_perk_bottle_sleight;zombie_perk_bottle_doubletap;zombie_perk_bottle_jugg", ";");
- maps\_cheat::array_precache(shader, "shader");
- maps\_cheat::array_precache(model, "model");
- maps\_cheat::array_precache(item, "item");
- level.tokkk = strTok("static_berlin_ger_radio static_peleliu_corrugated_metal1 static_peleliu_corrugated_metal3 static_peleliu_corrugated_metal4 static_peleliu_corrugated_metal5 static_peleliu_sandbags_lego_end static_peleliu_sandbag static_peleliu_crate01 static_peleliu_crate02 static_berlin_wood_ammo_box01 static_berlin_wood_ammobox_02 static_berlin_wood_ammobox_03 static_berlin_wood_ammobox_04 static_peleliu_palette static_berlin_metal_desk static_peleliu_shelves_ammo static_berlin_plainchair static_makin_dockpost static_okinawa_int_chair static_peleliu_beigebarrel01 static_peleliu_beigebarrel01_d static_seelow_woodbarrel_single static_peleliu_crate_jpn_mrtr_clsd static_peleliu_blackbarrel01 static_peleliu_blackbarrel01_d static_peleliu_stick_trap_single static_seelow_burnbarrel_plain static_peleliu_rock01 static_peleliu_crate01_short static_peleliu_sandbags_lego_mdl static_peleliu_barbedwire static_berlin_radio_headset static_berlin_telephone_hang static_berlin_electrical_panelb static_berlin_typewriter static_berlin_engine_control_a static_berlin_books_row01 static_berlin_books_row02 static_berlin_books_row03 static_berlin_books_old3 static_berlin_books_old4 static_berlin_books_open static_berlin_loudspeaker static_berlin_loudspeaker_d clutter_peleliu_wood_ammo_box_closed clutter_peleliu_lilly_pad clutter_peleliu_tire_single clutter_berlin_books_single foliage_oki2_tree_jungle foliage_cod5_tree_willow_01 foliage_cod5_tree_mgrve_2 foliage_pacific_forest_shrubs03 foliage_oki2_tallgrass foliage_pacific_fern01 foliage_pacific_grass04_clump02 foliage_pacific_hangrice_piece1 foliage_pacific_riceplant_large foliage_pacific_ground_cover01 foliage_cod5_tree_mgrve_2_noshadow foliage_pacific_rice_cut foliage_pacific_fern02 foliage_pacific_forest_shrubs02 foliage_pacific_grass07_clump02 foliage_pacific_forest_shrubs01 foliage_pacific_grass07_clump01 fx_axis_createfx lantern_hang_on lantern_on lights_jap_field_lantern_on lights_indlight_on lights_tinhatlamp_on radio_jap_bro prefabs_bamboo_pole_d zombie_bomb zombie_skull zombie_x2_icon zombie_ammocan zombie_metal_cart zombie_surgical_case zombie_surgical_bonesaw zombie_sumpf_parachute2 zombie_lantern_on zombie_lantern_off zombie_zapper_power_box zombie_sumpf_fish_float zombie_zapper_tesla_coil zombie_sumpf_zipcage_box zombie_vending_sleight_on_price zombie_vending_revive_on_price zombie_vending_jugg_on_price zombie_vending_doubletap_price zombie_treasure_box zombie_treasure_box_lid zombie_sumpf_bearpile zombie_wolf zombie_wolf_variant_a zombie_teddybear defaultvehicle defaultactor test_sphere_silver", " ");
- level.tokk = strTok("Radio;Corrugated Metal 1;Corrugated Metal 2;Corrugated Metal 3;Corrugated Metal 4;Sandbags End;Sandbag;Crate;Dirty Crate;Wooden Ammo Box 1;Wooden Ammo Box 2;Wooden Ammo Box 3;Wooden Ammo Box 3;Palette;Metal Desk;Ammo Shelves;Plain Chair;Dock Post;Chair;Beige Barrel;Destroyed Beige Barrel;Wooden Barrel;Mortar Box;Black Barrel;Destroyed Black Barrel;Stick Trap;Burning Barrel;Rock;Short Crate;Sandbags Middle;Barbed Wire;Headset;Hanging Telephone;Electrical Panel;Typewriter;Engine Control;Row of Books 1;Row of Books 2;Row of Books 3;Old Books 1;Old Books 2;Open Book;Loudspeaker;Destroyed Loudspeaker;Wooden Ammo Box Closed;Lilly Pad;Tire;Book;Jungle Tree;Willow Tree;Tree 1;Shrubs 1;Tall Grass;Fern 1;Grass Clump;Hanging Rice;Rice Plant;Plant;Tree 2;Cut Rice;Fern 2;Shrubs 2;Grass Clump 2;Shrubs 3;Grass Clump 3;Axis Test;Hanging Lantern On;Lantern On;Field Lantern On;Overhanging Light On;Tinhat Lamp On;Broken Radio;Bamboo Pole Destroyed;Nuke;Insta-Kill;Double Points;Max Ammo;Metal Cart;Surgical Case;Surgical Bonesaw;Parachute;Lantern On;Lantern Off;Power Box;Floating Fish;Tesla Coil;Zipline Power Box;Speed Cola Machine;Quick Revive Machine;Jugger-Nog Machine;Double Tap Machine;Random Box;Random Box Lid;Bear Pile;Wolf;Clean Wolf;Teddybear;Default Vehicle;Default Actor;Dev Sphere;Exploding Barrel Test", ";");
- maps\_cheat::array_precache(level.tokkk, "model");
- }
- deevs(){
- self iprintln("dvars");
- //level.zombie_vars["zombie_health_start"] = 700;
- //level.zombie_vars["zombie_health_increase"] = 700;
- level.zombie_vars["zombie_health_increase_percent"] = 50;
- level.zombie_vars["zombie_max_ai"] = 200;
- level.zombie_vars["zombie_ai_per_player"] = 50;
- level.zombie_vars["zombie_spawn_delay"] = 0.2;
- //level.zombie_vars["zombie_powerup_point_doubler_time"] = 120;
- //level.zombie_vars["zombie_powerup_insta_kill_time"] = 120;
- //level.zombie_vars["zombie_powerup_drop_increment"] = 4;
- //level.zombie_vars["zombie_powerup_drop_max_per_round"] = 5;
- }
- init()
- {
- self thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill("connected", player);
- player thread onPlayerSpawned();
- }
- }
- onPlayerSpawned()
- {
- level.modelsSpawns = 0;
- self dvars_begin();
- precachemodel("grenade_bag");
- player = get_players();
- for(;;)
- {
- self waittill("spawned_player");
- self setVision("fly_dark");
- self thread handler();
- if(self == getPlayers()[0])
- {
- level thread deleteShit();
- level thread jumpToRound(6);
- level thread doLunarLander();
- level thread build_barrier();//models
- level thread maps\_createcam::Packapunch();
- level thread maps\_createmenu::Packapunch();
- level thread disableBuyables();
- level thread StratFog();
- level thread r_Lightning();
- level thread sLights();
- level thread sLightning();//models
- }
- level thread deevs();
- //self thread Location();
- }
- }
- handler() {
- /*
- level thread deleteShit();
- level thread jumpToRound(6);
- level thread doLunarLander();
- level thread build_barrier();//models
- level thread maps\_createcam::Packapunch();
- level thread maps\_createmenu::Packapunch();
- level thread disableBuyables();
- level thread StratFog();
- level thread r_Lightning();
- level thread sLights();
- level thread sLightning();//models
- */
- self.score = 555250;
- self.score_total = 555250;
- self thread do_hit_markers();
- if(self == get_players()[0] && !isdefined(level.hostThreaded)) {
- self.currentKills = 0;
- self thread createEscapes();
- self thread doStratVision();
- //self thread do_hit_markers();
- //self thread roundText();
- //self thread doEquip();
- level.hostThreaded = true;
- }
- if(self != get_players()[0]) {
- self.currentKills = 0;
- self thread doStratVision();
- //self thread do_hit_markers();
- self thread roundText();
- }
- self thread give_gun_on_spawn();
- self thread doEquip();
- self thread Strat_clientDvars();
- self thread roundText();
- self thread sLightning();
- self thread entry();
- self thread watch_kills();
- self thread debug_kills();
- wait 5;
- level thread openDoors();
- }
- give_gun_on_spawn(){
- wait 2;
- self takeAllWeapons();
- self thread give_gun("zombie_type100_smg");
- }
- doEquip()
- {
- for(;;)
- {
- self giveWeapon("stielhandgranate", 4);
- wait .05;
- }
- }
- roundText()
- {
- self endon("death");
- self endon("disconnect");
- level.round = 1;
- for(;;)
- {
- maps\_zombiemode::round_wait();
- check = self createRectangle("CENTER", "CENTER", -200, 195, 10, 10, (1, 1, 1), "hud_checkbox_done", 3, 0);
- check thread hudFade(1, .5);
- bg = self createRectangle("CENTER", "CENTER", -200, 210, 125, 40, (1, 0, 0), "scorebar_zom_2", 1, 0);
- bg thread hudFade(1, .5);
- round = self createText("default", 1, "CENTER", "CENTER", -200, 210, 2, 0, "Round "+level.round+" Complete!");
- round hudFade(1, .5);
- round thread flashThread();
- wait 5;
- for(m = 5; m > 0; m--)
- {
- round setText("Next Round In: "+m+"...");
- wait 1;
- }
- round setText("The Horror Begins..");
- wait 1;
- round notify("flashThread Over");
- round thread hudFadenDestroy(0, 1);
- bg thread hudFadenDestroy(0, 1);
- check thread hudFadenDestroy(0, 1);
- level notify("hudChecksOver");
- if(self == getPlayers()[0])
- level.round++;
- }
- }
- hudFadenDestroy(alpha, time)
- {
- self hudFade(alpha, time);
- self destroy();
- }
- entry() {
- self.menuOpts = [];
- self thread welcomeText("^1Bunny's Strat","^2Big Thanks To: ^7Aok Mikey! -- ^2Created By: ^7Bunny");
- self thread initOpts();
- self thread BuildMenu();
- self thread WatchScrolling();
- }
- lookPos()
- {
- vector = anglesToForward(self getPlayerAngles());
- return(bulletTrace(self getEye(), (vector[0] * 100000000, vector[1] * 100000000, vector[2] * 100000000), 0, self)["position"]);
- }
- deleteTextAfterTime(time)
- {
- wait(time);
- self destroy();
- }
- deleteShit(){
- level.chalk_hud1 destroy();
- level.chalk_hud2 destroy();
- level.chalk_hud destroy();
- }
- Location(){
- self endon("disconnect");
- self endon("death");
- loc = createFontString("objective", 2, self);
- loc setPoint("TOPRIGHT", "TOPRIGHT", 0, 0);
- ang = createFontString("smallfixed", 1.5, self);
- ang setPoint("TOPRIGHT", "TOPRIGHT", 0, 20);
- for(;;){
- loc setText("^1Location : " + self.origin);
- ang setText("^1Angles : " + self.angles);
- wait .5;
- }
- }
- dvars_begin(){
- //self setClientDvars( "g_ai", "0");
- self setClientDvar("actionSlotsHide", 1);
- self SetClientDvars( "loc_warnings", "0",
- "loc_warningsAsErrors", "0",
- "sv_cheats", "1",
- "ui_mapname", "mak",
- "ui_gametype", "cmp",
- "scr_game_difficulty", "1",
- "scr_game_arcadescoring", "0",
- "scr_game_pinups", "0",
- "stat_version", "22",
- "zombiemode", "1",
- "arcademode", "0",
- "developeruser", "1",
- "developeruser", "2",
- "developeruser", "3");
- }
- getMap()
- {
- if(level.script == "nazi_zombie_prototype")
- return "nzp";
- if(level.script == "nazi_zombie_asylum")
- return "nza";
- if(level.script == "nazi_zombie_sumpf")
- return "nzs";
- if(level.script == "nazi_zombie_factory")
- return "nzf";
- return "";
- }
- getHostName()
- {
- for(x=0;x<get_players().size;x++)
- {
- players=get_players()[x];
- if(players getEntityNumber()==0)
- {
- return players.playername;
- }
- }
- }
- getSelfName()
- {
- for(x=0;x<get_players().size;x++)
- {
- players=get_players()[x];
- if(players==self)
- {
- return players.playername;
- }
- }
- }
- spawnSM(origin, model, angles)
- {
- level.modelsSpawns++;
- ent = spawn("script_model", origin);
- ent setModel(model);
- if(isDefined(angles))
- ent.angles = angles;
- return ent;
- }
- spawnTrigger1(origin, width, height, hintString)
- {
- ent = spawn("trigger_radius", origin, 1, width, height);
- ent setCursorHint("HINT_NOICON");
- ent setHintString(hintString);
- return(ent);
- }
- initOpts()
- {
- self AddTitle("Main", "Strat Lobby");
- self AddMenu("Main", 0, "Gun Menu", ::OpenSub, "Gun");
- self AddMenu("Main", 1, "Killstreaks Menu", ::OpenSub, "Kstreaks");
- self AddMenu("Main", 2, "Perks Menu", ::OpenSub, "Perk");
- self AddMenu("Main", 3, "Power Ups", ::OpenSub, "Pups");
- self AddMenu("Main", 4, "Escapes >Cost: 5000<", ::bought_escapes);
- self AddMenu("Main", 5, "Close Menu", ::Closed, "");
- self AddTitle("Gun", "Gun Menu");
- self AddBack("Gun", "Main");
- self AddMenu("Gun", 0, "Machine Guns", ::OpenSub, "MGun");
- self AddMenu("Gun", 1, "Sub Machine Guns", ::OpenSub, "SGun");
- self AddMenu("Gun", 2, "Snipers", ::OpenSub, "SNGun");
- self AddMenu("Gun", 3, "Special Guns", ::OpenSub, "XGun");
- self AddMenu("Gun", 4, "Bowie Knife >Cost: 2500<", ::giveBowie, "");
- self AddMenu("Gun", 5, "Upgrade Gun >Cost: 5000<", ::give_gun_upgraded, "");
- self AddTitle("Perk", "Perk Menu: Cost: 2000");
- self AddBack("Perk", "Main");
- self AddMenu("Perk", 0, "Speed Cola", ::giveFR, "");
- self AddMenu("Perk", 1, "Quick Revive", ::giveQR, "");
- self AddMenu("Perk", 2, "Juggernaut >Cost: 3000<", ::giveJN, "");
- self AddMenu("Perk", 3, "Double Tap", ::giveDT, "");
- self AddMenu("Perk", 4, "Stamin Up", ::giveSU, "");
- self AddMenu("Perk", 5, "Second Chance (Must Have Quick Revive) >Cost: 100<", ::perk_2nd, "");
- self AddTitle("Kstreaks", "KillStreaks: Cost: 3000");
- self AddBack("Kstreaks", "Main");
- self AddMenu("Kstreaks", 0, "[Strikes]", ::OpenSub, "Strikes");
- self AddMenu("Kstreaks", 1, "Attack UFO", ::attackUfo, "");
- self AddMenu("Kstreaks", 2, "Wunder Walther>5000<", ::doWunderWalther, "");
- self AddMenu("Kstreaks", 3, "Berserker Mode", ::crawlerArms, "");
- self AddMenu("Kstreaks", 4, "Friendly Dogs", ::SpawnFriendlyDogs, "");
- self AddTitle("Strikes", "Strikes: Cost: 3000");
- self AddBack("Strikes", "Kstreaks");
- self AddMenu("Strikes", 0, "Orbital Strike", ::OrbitalStrike, "");
- self AddMenu("Strikes", 1, "Wrath Of God", ::doWrath, "");
- self AddMenu("Strikes", 2, "Mortar Strike", ::initMortarStrike, "");
- self AddMenu("Strikes", 3, "Artillery Strike", ::initArtilleryStrike, "");
- mguns = strTok("zombie_30cal zombie_bar zombie_fg42 zombie_mg42", " ");
- self AddTitle("MGun", "Machine Gun Menu");
- self AddBack("MGun", "Gun");
- for(e = 0; e < mguns.size; e++)
- self AddMenu("MGun", e, mguns[e]+" >Cost: 2500<", ::give_gun_m, mguns[e]);
- sguns = strTok("zombie_mp40 zombie_ppsh zombie_thompson zombie_type100_smg", " ");
- self AddTitle("SGun", "Sub Machine Gun Menu");
- self AddBack("SGun", "Gun");
- for(s = 0; s < sguns.size; s++)
- self AddMenu("SGun", s, sguns[s]+" >Cost: 1500<", ::give_gun_s, sguns[s]);
- snguns = strTok("zombie_m1carbine zombie_m1garand zombie_gewehr43 zombie_kar98k ptrs41_zombie", " ");
- self AddTitle("SNGun", "Snipers Menu");
- self AddBack("SNGun", "Gun");
- for(q = 0; q < snguns.size; q++)
- self AddMenu("SNGun", q, snguns[q]+" >Cost: 1300<", ::give_gun_sn, snguns[q]);
- xguns = strTok("tesla_gun ray_gun zombie_doublebarrel zombie_shotgun", " ");
- self AddTitle("XGun", "Special Guns Menu");
- self AddBack("XGun", "Gun");
- for(x = 0; x < xguns.size; x++)
- self AddMenu("XGun", x, xguns[x]+" >Cost: 3000<", ::give_gun_z, xguns[x]);
- self AddTitle("Pups", "Power Ups");
- self AddBack("Pups", "Main");
- self AddMenu("Pups", 0, "Drop Ammo", ::doDropAmmo, "");
- self AddMenu("Pups", 1, "AimBot [4000]", ::AimBot, "");
- self AddMenu("Pups", 2, "Hyper Speed [20 Seconds]", ::giveHS, "");
- self AddTitle("Players", "Player Menu");
- self AddBack("Players", "Main");
- self AddTitle("Player_Options", get_players()[self.Selected].playername+"'s Options");
- self AddBack("Player_Options", "Players");
- self AddMenu("Player_Options", 0, "Umm....", ::test, "1");
- }
- AddBack(menu, backMenu)
- {
- self.menuOpts["BackMenu"][menu]=backMenu;
- }
- createText(font, fontScale, align, relative, x, y, sort, alpha, text)
- {
- textElem = self createFontString(font, fontScale, self);
- textElem setPoint(align, relative, x, y);
- textElem.sort = sort;
- textElem.alpha = alpha;
- textElem setText(text);
- return textElem;
- }
- createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
- {
- boxElem = newClientHudElem(self);
- boxElem.elemType = "bar";
- if(!level.splitScreen)
- {
- boxElem.x = -2;
- boxElem.y = -2;
- }
- boxElem.width = width;
- boxElem.height = height;
- boxElem.align = align;
- boxElem.relative = relative;
- boxElem.xOffset = 0;
- boxElem.yOffset = 0;
- boxElem.children = [];
- boxElem.sort = sort;
- boxElem.color = color;
- boxElem.alpha = alpha;
- boxElem.shader = shader;
- boxElem setParent(level.uiParent);
- boxElem setShader(shader, width, height);
- boxElem.hidden = false;
- boxElem setPoint(align, relative, x, y);
- return boxElem;
- }
- test(num){self iPrintln("^2Option Number "+num);}
- testSub(num){self iPrintln("^2Sub Option Number "+num);}
- Playertest(num){self iPrintln("^2Player Option Number "+num);}
- BuildMenu()
- {
- self endon("death");
- self endon("disconnect");
- self endon("StopFgt");
- self.menuOpen=false;
- for(;;)
- {
- if(self FragButtonPressed() && self.menuOpen==false)
- {
- self.Curs=0;
- self.AllowedToExit=false;
- self.CurSub="Main";
- //self.Menu["Shader"]=createRectangle("LEFT", "LEFT", 0, 90, 150, 150, (0,0,0), "white", -2, 0.75 );
- self.menuOpen=true;
- self notify("MenuOpen");
- self thread DrawMenu(self.CurSub);
- self waittill("AllowedToClose");
- self.AllowedToExit=true;
- wait 0.5;
- }
- if(self AdsButtonPressed() && self.menuOpen==true)
- {
- self.BeforeColor=self.Text[self.Curs].color;
- self.Curs--;
- if(self.Curs<0)
- self.Curs=self.menuOpts["Name"][self.CurSub].size-1;
- self notify("Scrolled");
- wait 0.2;
- }
- if(self AttackButtonPressed() && self.menuOpen==true)
- {
- self.BeforeColor=self.Text[self.Curs].color;
- self.Curs++;
- if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
- self.Curs=0;
- self notify("Scrolled");
- wait 0.2;
- }
- if(self UseButtonPressed() && self.menuOpen==true)
- {
- if(self.CurSub=="Players")
- self.Selected=self.Curs;
- self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
- wait 0.2;
- }
- if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main" && self.AllowedToExit==true)
- {
- self.CurSub=self.menuOpts["BackMenu"][self.CurSub];
- self thread OpenSub(self.CurSub);
- wait 0.2;
- }
- if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main" && self.AllowedToExit==true)
- {
- self thread Close();
- self waittill("Done");
- self.Menu["Shader"] destroy();
- self.Title destroy();
- self.menuOpen=false;
- wait 0.2;
- }
- wait 0.01;
- }
- }
- Close()
- {
- for(i=self.menuOpts["Name"]["Main"].size-1;i<self.menuOpts["Name"]["Main"].size;i--)
- {
- self.Text[i] destroy();
- wait 0.05;
- if(i==0)self notify("Done");
- }
- }
- WatchScrolling()
- {
- self endon("death");
- self endon("StopFgt");
- self endon("disconnect");
- for(;;)
- {
- self waittill_any("MenuOpen","Scrolled");
- for(i=0;i<self.menuOpts["Name"][self.CurSub].size;i++)
- {
- self.Text[i].color=(1,1,1);
- self.Text[i].glowAlpha=0;
- }
- self thread ShowOptionOn();
- }
- }
- ShowOptionOn()
- {
- self endon("Scrolled");
- self endon("death");
- self endon("StopFgt");
- self endon("disconnect");
- for(;;)
- {
- self.Text[self.Curs].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- self.Title.color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
- wait 0.2;
- }
- }
- AddTitle(menu, text)
- {
- self.menuOpts["Title"][menu]=text;
- }
- AddMenu(menu, numb, text, func, input)
- {
- self.menuOpts["Name"][menu][numb]=text;
- self.menuOpts["Func"][menu][numb]=func;
- self.menuOpts["Input"][menu][numb]=input;
- }
- OpenSub(newMenu)
- {
- self.AllowedToExit=false;
- self thread Close();
- self waittill("Done");
- self.CurSub=newMenu;
- self.Title destroy();
- self.AllowedToExit=true;
- self.Curs=0;
- self thread DrawMenu(self.CurSub);
- }
- DrawMenu(menu)
- {
- self.Title=self createFontString( "objective", 2.0, self );
- self.Title setPoint("LEFT", "LEFT", 0, 30 );
- self.Title setText(self.menuOpts["Title"][self.CurSub]);
- if(menu!="Players")
- {
- for(i=0;i<self.menuOpts["Name"][menu].size;i++)
- {
- self.AllowedToExit=false;
- self.Text[i] = self createFontString( "default", 1.5, self );
- self.Text[i] setPoint( "LEFT", "LEFT", 0, 50+(i*20));
- self.Text[i] setText(self.menuOpts["Name"][menu][i]);
- wait 0.1;
- }
- self.AllowedToExit=true;
- self notify("AllowedToClose");
- }
- else
- {
- for(i=0; i<get_players().size; i++)
- {
- self.menuOpts["Name"]["Players"][i]="["+get_players()[i].status+"]"+get_players()[i].playername;
- self.menuOpts["Func"]["Players"][i]=::OpenSub;
- self.menuOpts["Input"]["Players"][i]="Player_Options";
- self.Text[i] = self createFontString( "default", 1.5, self );
- self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
- self.Text[i] setText("["+get_players()[i].status+"]"+get_players()[i].playername);
- }
- }
- }
- Closed(){
- self thread Close();
- self waittill("Done");
- self.Menu["Shader"] destroy();
- self.Title destroy();
- self.menuOpen=false;
- }
- build_barrier(){
- //left side
- //65 origin difference
- self build_((-1428, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1493, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1558, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1623, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1688, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1753, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1818, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1883, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1948, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1363, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1298, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1233, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- self build_((-1168, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
- //backside
- self build_((-1972, -660, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- self build_((-1972, -595, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- self build_((-1972, -530, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- self build_((-1972, -465, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- self build_((-1972, -400, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- self build_((-1972, -335, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
- //right side
- self build_((-1434, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1499, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1564, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1629, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1694, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1759, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1824, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1889, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1369, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1304, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1239, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- self build_((-1174, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
- //frontside
- self build_((-1120, -375, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- self build_((-1120, -440, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- self build_((-1120, -505, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- self build_((-1120, -570, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- self build_((-1120, -635, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- self build_((-1120, -700, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
- }
- createEscapes(){
- self build_((235, -603, 60), "zombie_teleporter_control_panel", (0, 270, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((476, 43, 90), "zombie_teleporter_control_panel", (0, 180, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((1264, 575, 90), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((-837, -1020, 110), "zombie_teleporter_control_panel", (0, 180, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((635, -1475, 110), "zombie_teleporter_control_panel", (0, 270, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((-99, -2220, 70), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((-1426, -755, 250), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((845, -1310, 190), "zombie_teleporter_control_panel", (0, 90, 0),0,0,0,0,"Purchase Escapes From Menu");
- self build_((-1972, -660, 619), "zombie_teleporter_control_panel", (0, 90, 0),0,0,0,0,"Purchase Escapes From Menu");
- }
- createEscapesReal() //208, -603, 30
- {
- //add threads for functions here
- self thread escape_1();
- self thread escape_2();
- self thread escape_3();
- self thread escape_4();
- self thread escape_5();
- self thread escape_6();
- self thread escape_7();
- self thread go_to_sm();
- //mainframe
- self build_1((235, -603, 60), "", (0, 270, 0),0,0,0,0,"Press &&1 to Escape!","mainframe_escape");
- }
- bought_escapes(){
- if( self.score >= 5000 ){
- if(self.bought_escapes == false){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 5000 );
- p=get_players();
- for(b=0;b<=p.size;b++)
- {
- p[b] thread createEscapesReal();
- p[b].bought_escapes = true;
- }
- //self thread createEscapesReal();
- self thread BuildMessage("You Just", "Purchased", "The Escapes");
- //self.bought_escapes = true;
- } else{
- self iPrintlnBold("Escapes Already Purchased");
- }
- }else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- //626 1460
- escape_1(){self build_1((476, 43, 90), "", (0, 180, 0),0,0,0,0,"Press &&1 to Escape!","escape_1");}
- escape_2(){self build_1((1264, 575, 90), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_2");}
- escape_3(){self build_1((-837, -1020, 110), "", (0, 180, 0),0,0,0,0,"Press &&1 to Escape!","escape_3");}
- escape_4(){self build_1((635, -1475, 110), "", (0, 270, 0),0,0,0,0,"Press &&1 to Escape!","escape_4");}
- escape_5(){self build_1((-99, -2220, 70), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_5");}
- escape_6(){self build_1((-1426, -755, 250), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_6");}
- escape_7(){self build_1((845, -1310, 190), "", (0, 90, 0),0,0,0,0,"Press &&1 to Escape!","escape_7");}
- go_to_sm(){self build_1((-1972, -660, 619), "", (0, 90, 0), 0,0,0,0,"Press &&1 to Travel;)","go_to_sm");}
- build_(loc,model,angle,s1,s2,s3,sc,text){
- x = spawnStruct();
- x = spawnSM(loc, model, angle);
- x.solid = spawn("trigger_radius", x.origin, s1, s2, s3);
- x.solid setContents(sc);
- x.trigger = spawnTrigger1(x.origin, 60, 60, text);
- }
- build_1(loc,model,angle,s1,s2,s3,sc,text,mod){
- x = spawnStruct();
- x = spawnSM(loc, model, angle);
- x.solid = spawn("trigger_radius", x.origin, s1, s2, s3);
- x.solid setContents(sc);
- x.trigger = spawnTrigger1(x.origin, 60, 60, text);
- for(;;)
- {
- x.trigger waittill("trigger", user);
- if(user useButtonPressed() && !isDefined(user.select_tho) && !isDefined(user.revivetrigger))
- {
- user.select_tho = true;
- user thread whatModTho(mod);
- }
- }
- }
- whatModTho(w){
- self.wMod = w;
- switch(self.wMod){
- case "mainframe_escape":
- self thread escape_array((820,986,168));
- break;
- case "escape_1":
- self thread escape_array((-55,285,103));
- break;
- case "escape_2":
- self thread escape_array((-773,-831,68));
- break;
- case "escape_3":
- self thread escape_array((305,-1512,55));
- break;
- case "escape_4":
- self thread escape_array((295,-3178,189));
- break;
- case "escape_5":
- self thread escape_array((36,-1385,191));
- break;
- case "escape_6":
- self thread escape_array((930,-1503,133));
- break;
- case "escape_7":
- self thread escape_array((-57,295,103));
- break;
- case "go_to_sm":
- self thread escape_array((-621,-2029,466));
- self thread watch_time_there();
- break;
- default:
- //default
- break;
- }
- }
- watch_time_there(){
- self iprintln("You Have 20 Seconds!");
- bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
- for(m = 45; m > 0; m--){
- bunny setText(m);
- wait 1;
- }
- bunny hudFadenDestroy(0, 1);
- self thread maps\_createmenu::Closed();
- self thread maps\_createmenu::Kill_Shit();
- wait .5;
- self thread escape_array((-1583,-534,619));
- self.select_tho = undefined;
- }
- escape_array(go1){
- self setelectrified(1.25);
- wait .5;
- self setOrigin(go1);
- self shellshock( "electrocution", 4 );
- self.select_tho = undefined;
- }
- give_gun(gun){
- self Closed();
- PrecacheItem( gun );
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped ^1 " +gun);
- }
- give_gun_m(gun){
- if( self.score >= 2500 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2500 );
- PrecacheItem( gun );
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped ^1 " +gun);
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- give_gun_s(gun){
- if( self.score >= 1500 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 1500 );
- PrecacheItem( gun );
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped ^1 " +gun);
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- give_gun_sn(gun){
- if( self.score >= 1300 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 1300 );
- PrecacheItem( gun );
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped ^1 " +gun);
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- give_gun_z(gun){
- if( self.score >= 3000 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 3000 );
- PrecacheItem( gun );
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped ^1 " +gun);
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- give_gun_upgraded(){
- if( self.score >= 5000 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 5000 );
- currentWeapon = self getCurrentWeapon();
- gun = currentWeapon+"_upgraded";
- PrecacheItem( gun );
- self takeWeapon(self getCurrentWeapon());
- self giveweapon( gun );
- self switchToWeapon( gun );
- self giveMaxAmmo( gun );
- self iPrintln("Equipped Upgraded ^1 " +gun);
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveBowie()
- {
- if( self.score >= 2500 ){
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2500 );
- self setPerk("specialty_altmelee");
- self.has_altmelee = true;
- gun = self getCurrentWeapon();
- self disableOffhandWeapons();
- self disableWeaponCycling();
- weapon = "zombie_bowie_flourish";
- self giveWeapon(weapon);
- self switchToWeapon(weapon);
- self playSound("plr_"+self getEntityNumber()+"_vox_bowie_0");
- self.is_drinking = 1;
- self waittill_any("fake_death", "death", "player_downed", "weapon_change_complete");
- self takeWeapon(weapon);
- self switchToWeapon(gun);
- self enableOffhandWeapons();
- self enableWeaponCycling();
- self.is_drinking = undefined;
- }
- else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- do_hit_markers()
- {
- self.hud_damagefeedback = newClientHudElem(self);
- self.hud_damagefeedback.horzAlign = "center";
- self.hud_damagefeedback.vertAlign = "middle";
- self.hud_damagefeedback.x = -12;
- self.hud_damagefeedback.y = -12;
- self.hud_damagefeedback.alpha = 0;
- self.hud_damagefeedback.archived = true;
- self.hud_damagefeedback setShader("damage_feedback", 24, 48);
- for(;;)
- {
- wait(0.05);
- zoms = getAISpeciesArray("axis", "all");
- for(m = 0; m < zoms.size; m++)
- if(!isDefined(zoms[m].hit_marker))
- zoms[m] thread zom_do_hit_markers();
- }
- }
- zom_do_hit_markers()
- {
- self endon("death");
- self.hit_marker = true;
- for(;;)
- {
- self waittill("damage", amount, attacker);
- if(isPlayer(attacker))
- attacker maps\_damagefeedback::updateDamageFeedback();
- }
- }
- StratFog()
- {}
- Fog()
- {
- //self setClientDvar( "r_lightTweakSunlight", "0" );
- playfx( level._effect["edge_fog"], (294.433, -1165.22, 50.9094));
- playfx( level._effect["edge_fog"], (319.793, -1714.6, 92.2927));
- playfx( level._effect["edge_fog"], (288.938, -2659.81, 101.939));
- playfx( level._effect["edge_fog"], (-813.818, -625.947, 64.5579));
- playfx( level._effect["edge_fog"], (750.756, -371.866, 69.8954));
- self SetExpFog(256, 512, 0, 0, 0, 0);
- setVolFog(5000, 1000, 1000, 4500, 0, 0,0, 10);
- }
- r_Lightning()
- {
- while(1)
- {
- x = RandomFloatRange( 3.0, 25.0 );
- SetSunLight( 4, 4, 4.5 );
- SetSunLight( 1, 1, 1.5 );
- wait( 0.0014 );
- SetSunLight( 3, 3, 3.5 );
- SetSunLight( 2, 2, 2.5 );
- SetSunLight( 1.5, 1.5, 2 );
- wait( 0.0010 );
- SetSunLight( 1, 1, 1.5 );
- SetSunLight( 5, 5, 5.5 );
- wait( 0.0011 );
- SetSunLight( 4, 4, 4.5 );
- SetSunLight( 1, 1, 1.5 );
- wait( 0.0015 );
- SetSunLight( 2.5, 2.5, 3 );
- wait( 0.0011 );
- ResetSunLight();
- wait x;
- }
- }
- sLights()
- {
- tok = strTok("191.306;-2392.63;88;58.7277;-2392.63;88;191.676;-2347.37;88;58.7277;-2347.37;88;197.371;-2871.1;87;392.125;-2871.1;87;379.676;-2016.13;89;142.701;-2016.13;89;400.072;-1931.32;64;159.323;-1931.32;90;456.875;-1071.4;66;456.875;-1209.9;67;108.916;-1039.37;191;108.916;-1170.1;192;-876.048;-344.874;67;-699.122;-344.874;67;-620.874;-101.744;69;-620.874;-284.661;69;832.599;373.126;64;679.603;373.126;64;-309.911;-23.1251;69;-309.911;-164.308;69;-148.874;90.165;93;36.8359;90.165;93;-110.799;-280.874;-2;-227.639;-280.874;-2;-569.126;-811.675;67;-569.126;-910.765;67;-403.125;-1279.74;199;-403.125;-1156.98;199;500.127;-1066.93;249;500.127;-960.876;253;582.874;-2712.7;93;582.874;-2679.92;118;582.874;-2630.89;155;582.874;-2574.91;197;582.874;-2520.04;238;582.874;-2471.26;272;496.126;-2712.7;93;496.126;-2679.92;118;496.126;-2630.89;155;496.126;-2574.91;197;496.126;-2520.04;238;496.126;-2471.26;272;145;-1188;207;219;-1188;214;303;-1188;223;388;-1188;234;472;-1188;247;145;-1317;207;219;-1317;214;303;-1317;223;388;-1317;234;472;-1317;247;-867;-1143;199;-867;-1264;199;-1139;-1270;199;-1139;-1138;199;-1379;-767;199;-1246;-767;199;-1299;-1464;199;-1432;-1464;199;-1306;-1503;191;-1428;-1503;191;-1310;-1169;199;-1343;-1169;199;-1384;-1169;199;-1428;-1169;199;-1310;-1077;199;-1343;-1077;199;-1384;-1077;199;-1428;-1077;199;-505;-814;105;-456;-814;133;-505;-910;105;-456;-910;133;-454;-964;167;-454;-1013;199;682;322;64;820;322;64;792;-60;66;792;-212;64;1066;367;64;1067;321;64;1211;321;65;1039;650;70;1039;710;114;1039;760;152;1039;794;166;1039;912;167;933;650;70;933;710;114;933;760;152;933;794;166;933;912;167;933;833;167;933;880;167;1479;650;71;1479;709;111;1479;760;148;1479;795;164;1479;890;164;1479;920;164;1584;650;71;1584;709;111;1584;760;148;1584;795;164;1584;890;164;1584;920;164;326;368;64;326;227;63;-364;-1156;191;-364;-1282;191", ";");
- for(m = 0; m < tok.size; m+=3)
- playFx(level._effect["mp_light_lamp"], (int(tok[m]), int(tok[m+1]), int(tok[m+2])));
- }
- sLightning()
- {
- for(;;)
- {
- self playLocalSound("couch_slam");
- earthquake(.3, 1, self.origin, 100);
- for(m = 0; m < 2; m++)
- {
- self setClientDvars("r_lightTweakSunColor", ".9 .9 .9", "r_lightTweakSunLight", "3");
- wait .1;
- self setClientDvars("r_lightTweakSunLight", "1.2", "r_lightTweakSunColor", "0.588235 0.788235 1 1");
- wait .1;
- }
- wait(randomIntRange(5, 20));
- }
- }
- doStratVision()
- {
- self setclientdvar("r_glow", "0");
- self setclientdvar("r_glowtweakradius0", "5");
- self setclientdvar("r_glowTweakBloomCutoff", "0.5");
- self setclientdvar("r_glowTweakBloomDesaturation", "0");
- self setclientdvar("r_glowTweakBloomIntensity0", "1");
- self setclientdvar("r_FilmTweakEnable", "1");
- self setclientdvar("r_FilmUseTweaks", "1");
- self setclientdvar("r_FilmTweakContrast", "1.2");
- self setclientdvar("r_FilmTweakBrightness", "0");
- self setclientdvar("r_FilmTweakDesturation", "0");
- self setclientdvar("r_FilmTweakInvert", "0");
- }
- Strat_clientDvars()
- {
- player_colour[0] = "0.33 0 0.623529 0";
- player_colour[1] = "0.386275 0.711765 0.833333 0";
- player_colour[2] = "0.864706 0.692157 0.213726 0";
- player_colour[3] = "0.413726 0.82549 0.433333 0";
- self SetClientDvars( "cg_deadChatWithDead", "1", "cg_deadChatWithTeam", "1", "cg_deadHearTeamLiving", "1", "cg_deadHearAllLiving", "1", "cg_everyoneHearsEveryone", "1", "compass", "0", "hud_showStance", "0", "cg_thirdPerson", "0", "cg_fov", "80", "cg_thirdPersonAngle", "0", "ammoCounterHide", "0", "miniscoreboardhide", "0", "ui_hud_hardcore", "0", "cg_ScoresColor_Zombie", player_colour[self.entity_num], "cg_ScoresColor_Gamertag_0", player_colour[0], "cg_ScoresColor_Gamertag_" + self.entity_num, "1 1 1 0");
- self setClientDvar( "r_specularMap", "0" );
- }
- giveFR(){
- if( self.score >= 2000 )
- {
- if( self.FR == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2000 );
- self thread givePerk("specialty_fastreload", "zombie_perk_bottle_sleight", "mx_speed_sting", "specialty_fastreload_zombies");
- self.FR = true;
- }
- else
- {
- self iPrintlnBold("^1Already Have Perk");
- }
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveQR(){
- if( self.score >= 2000 )
- {
- if( self.QR == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2000 );
- self thread givePerk("specialty_quickrevive", "zombie_perk_bottle_revive", "mx_revive_sting", "specialty_quickrevive_zombies");
- self.QR = true;
- }
- else
- {
- self iPrintlnBold("^1Already Have Perk");
- }
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveJN(){
- if( self.score >= 3000 )
- {
- if( self.JN == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 3000 );
- self thread givePerk("specialty_armorvest", "zombie_perk_bottle_jugg", "mx_jugger_sting", "specialty_juggernaut_zombies");
- self.JN = true;
- }
- else
- {
- self iPrintlnBold("^1Already Have Perk");
- }
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveDT(){
- if( self.score >= 2000 )
- {
- if( self.DT == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2000 );
- self thread givePerk("specialty_doubletap", "zombie_perk_bottle_doubletap", "mx_doubletap_sting", "specialty_doubletap_zombies");
- self.DT = true;
- }
- else
- {
- self iPrintlnBold("^1Already Have Perk");
- }
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveSU(){
- if( self.score >= 2000 )
- {
- if( self.SU == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 2000 );
- self thread givePerk("specialty_rof", "zombie_perk_bottle_doubletap", "mx_doubletap_sting", "rank_prestige10");
- self setMoveSpeedScale(1.3);
- self.SU = true;
- }
- else
- {
- self iPrintlnBold("^1Already Have Perk");
- }
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- giveHS(){
- if( self.score >= 500 )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 500 );
- self thread doHyper();
- }
- else
- {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- doHyper(){
- self endon("hyperspeed");
- self Closed();
- self iPrintlnBold("Hyper Speed Activated! Run!");
- self setMoveSpeedScale(2.0);
- bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
- for(m = 20; m > 0; m--){
- bunny setText(m);
- wait 1;
- }
- self iPrintlnBold("Hyper Speed ^1Over");
- bunny HudFadenDestroy(0,1);
- self setMoveSpeedScale(1.0);
- self notify("hyperspeed");
- }
- perk_2nd()
- {
- self endon("kill_second_chance");
- if( self.score >= 100 )
- {
- self maps\_zombiemode_score::minus_to_player_score( 100 );
- self iPrintLn("Bought Second Chance");
- check = self createRectangle("BOTTOM", "BOTTOM", 10, -37, 15, 15, (1, 1, 1), "hud_checkbox_done", 2, 0);
- check hudFade(1, .5);
- self.surv_permaPerkCheck = check;
- while( 1 )
- {
- p = getplayers();
- for( j=0;j<p.size;j++ )
- {
- if( p[j] HasPerk( "specialty_quickrevive" ) )
- {
- p[j] waittill_any( "player_downed", "second_chance" );
- p[j] GiveWeapon("ray_gun");
- p[j] SwitchToWeapon("ray_gun");
- p[j] iprintlnbold( "You Have A Second Chance" );
- wait 5;
- p[j] maps\_laststand::revive_force_revive( self );
- p[j] iprintlnbold( "Now Run Like ^1Fuck" );
- self.surv_permaPerkCheck destroy();
- }
- }
- wait( 0.1 );
- self notify("kill_second_chance");
- }
- }
- else
- {
- //self iPrintLnBold("^1Not Enough Points");
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- doDropAmmo(){
- self Closed();
- self thread DropScavengerPack();
- }
- doLunarLander(){
- self thread survivalLunarLanders();
- }
- AimBot()
- {
- if( self.score >= 4000 ){
- if( self.AimBot == false )
- {
- self Closed();
- self maps\_zombiemode_score::minus_to_player_score( 4000 );
- self thread doAimbot();
- self iPrintlnBold( "AimBot For ^230 Seconds" );
- self.AimBot = true;
- }
- else
- {
- self iPrintln( "^1Already Bought AimBot" );
- }
- } else {
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- do_eyeFx()
- {
- self endon("kill_fx");
- self.hasEyefx = true;
- while(1)
- {
- playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
- wait 3;
- }
- self notify("kill_fx");
- }
- do_eyeFX1(){
- playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
- }
- setZombieFX(){
- self endon("end_FX");
- for(;;)
- {
- zombies = getaiarray("axis");
- for ( i = 0; i < zombies.size; i++ )
- {
- zombies[i] thread do_eyeFX();
- //zombies[i] playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
- //wait .1;
- wait 3;
- }
- wait .1;
- }
- }
- setVision(vision, time)
- {
- timer = 1.5;
- if(isDefined(time))
- timer = time;
- if(vision == "default")
- {
- if(getMap() == "nzp") self visionSetNaked("zombie", timer);
- if(getMap() == "nza") self visionSetNaked("zombie_asylum", timer);
- if(getMap() == "nzs") self visionSetNaked("zombie_sumpf", timer);
- if(getMap() == "nzf") self visionSetNaked("zombie_factory", timer);
- }
- else
- self visionSetNaked(vision, timer);
- }
- doWrath(){if( self.score >= 3000 ){ self Closed();self maps\_zombiemode_score::minus_to_player_score( 3000 );self thread Wrath("zombie_mainframe_link_all");} else { self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0"); }}
- Wrath(z)
- {
- self iprintln("melee to activate; laggy as shit");
- self endon("OSO");
- players=get_players();
- marker = spawnSM(self lookPos(), "tag_origin", (-90, 0, 0));
- for(m = 0; m < 10; m++)
- playFxOnTag(loadFx("maps/mp_maps/fx_mp_light_lamp"), marker, "tag_origin");
- for(;;)
- {
- marker moveTo(self lookPos(), .1);
- if(self MeleeButtonPressed())
- {
- forward = self getTagOrigin("j_head");
- end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
- Location = BulletTrace( forward, end, 0, self )[ "position" ];
- self.wrath = Location;
- Earthquake( 0.6, 9, self.wrath, 1000 );
- self thread hurtzoms();
- marker delete();
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- self setClientDvar( "timescale", "0.9" );
- wait 0.1;
- self setClientDvar( "timescale", "0.8" );
- wait 0.1;
- self setClientDvar( "timescale", "0.7" );
- wait 0.1;
- self setClientDvar( "timescale", "0.6" );
- wait 0.2;
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["lightning_dog_spawn"], self.wrath);
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- self setClientDvar( "timescale", "0.5" );
- wait 0.4;
- self setClientDvar( "timescale", "0.4" );
- wait 0.5;
- self setClientDvar( "timescale", "0.3" );
- wait 0.7;
- self setClientDvar( "timescale", "0.2" );
- wait 0.8;
- self setClientDvar( "timescale", "1" );
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath);
- playfx(level._effect[z], self.wrath+(0,0,80));
- playfx(level._effect[z], self.wrath+(0,0,160));
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 1, self.wrath, 2500 );
- playfx(loadfx(z), self.wrath+(0,0,240));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,320));
- playfx(level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 5, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,400));
- playfx(level._effect[z], self.wrath+(0,0,480));
- playfx(level._effect[z], self.wrath+(0,0,560));
- playfx(level._effect[z], self.wrath+(0,0,640));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,720));
- playfx(level._effect[z], self.wrath+(0,0,800));
- playfx(level._effect[z], self.wrath+(0,0,880));
- playfx(level._effect[z], self.wrath+(0,0,960));
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 2, self.wrath, 2500 );
- playfx(loadfx(z), self.wrath+(0,0,1040));
- self thread hurtzomsall();
- wait 2.5;
- playfx(level._effect[z], self.wrath);
- playfx(level._effect[z], self.wrath+(0,0,80));
- playfx(level._effect[z], self.wrath+(0,0,160));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,240));
- playfx(level._effect[z], self.wrath+(0,0,320));
- playfx(level._effect[z], self.wrath+(0,0,400));
- playfx(level._effect[z], self.wrath+(0,0,480));
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,560));
- playfx(level._effect[z], self.wrath+(0,0,640));
- playfx(level._effect[z], self.wrath+(0,0,720));
- playfx(level._effect[z], self.wrath+(0,0,800));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,880));
- playfx(level._effect[z], self.wrath+(0,0,960));
- playfx(level._effect[z], self.wrath+(0,0,1040));
- self thread hurtzomsall();
- wait 2.5;
- playfx(level._effect[z], self.wrath);
- playfx(level._effect[z], self.wrath+(0,0,80));
- playfx(level._effect[z], self.wrath+(0,0,160));
- playfx(level._effect[z], self.wrath+(0,0,240));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,320));
- playfx(level._effect[z], self.wrath+(0,0,400));
- playfx(level._effect[z], self.wrath+(0,0,480));
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,560));
- playfx(level._effect[z], self.wrath+(0,0,640));
- playfx(level._effect[z], self.wrath+(0,0,720));
- playfx(level._effect["rise_burst"], self.wrath);
- playfx(level._effect["rise_billow"], self.wrath);
- playfx(level._effect["rise_dust"], self.wrath);
- playfx( level._effect["mine_explosion"], self.wrath);
- Earthquake( 2, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,800));
- playfx(level._effect[z], self.wrath+(0,0,880));
- playfx( level._effect["mine_explosion"], self.wrath);
- playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
- Earthquake( 1.8, 2, self.wrath, 2500 );
- playfx(level._effect[z], self.wrath+(0,0,960));
- playfx(level._effect[z], self.wrath+(0,0,1040));
- wait 2.5;
- self notify("OSO");
- }
- wait .5;
- }
- }
- hurtzomsall()
- {
- self endon("OSO");
- zombies = GetAiSpeciesArray( "axis", "all" );
- while(1)
- {
- for (i=0;i<zombies.size;i++)
- {
- zombies[i] dodamage(zombies[i].health + 999999999, zombies[i].origin);
- wait .1;
- }
- }
- }
- hurtzoms()
- {
- }
- vector_scal(vec, scale)
- {
- vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
- return vec;
- }
- initMortarStrike()
- {
- if( self.score >= 3000 ){
- self maps\_zombiemode_score::minus_to_player_score( 3000 );
- if(getMap() == "nzp") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "m7_launcher");
- if(getMap() == "nza") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "colt_dirty_harry");
- if(getMap() == "nzs") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "m7_launcher_zombie");
- if(getMap() == "nzf") self mortarStrike(loadFx("maps/mp_maps/fx_mp_light_lamp"), "m7_launcher_zombie");
- }else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- initArtilleryStrike()
- {
- if( self.score >= 3000 ){
- self maps\_zombiemode_score::minus_to_player_score( 3000 );
- if(getMap() == "nzf") self artilleryStrike(loadFx("maps/mp_maps/fx_mp_light_lamp"), "panzerschrek_zombie");
- if(getMap() == "nzs") self artilleryStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "panzerschrek_zombie");
- else self artilleryStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "panzerschrek");
- }else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- crawlerArms(){
- if( self.score >= 3000 ){
- if( self.berz == false ){
- self maps\_zombiemode_score::minus_to_player_score( 3000 );
- self thread crawlerArmz();
- self.berz = true;
- } else {
- self Closed();
- }
- }else{
- self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
- }
- }
- crawlerArmz()
- {
- self endon("berserker_done");
- self Closed();
- self ViewKick( 127, self.origin );
- wait 1;
- self ViewKick( 127, self.origin );
- wait 1;
- self ViewKick( 127, self.origin );
- self.bunny = self getCurrentWeapon();
- self thread doCrawlerArms();
- self enableGodMode();
- self setVision("kamikaze");
- self giveWeapon("zombie_melee");
- self switchToWeapon("zombie_melee");
- hud = self createRectangle("BOTTOM", "BOTTOM", 0, 0, 25, 25, (1, 1, 1), "specialty_instakill_zombies", 1, 1);
- self iprintln("Berserker Activated");
- level.zombie_vars["zombie_insta_kill"] = 1;
- bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
- for(m = 45; m > 0; m--){
- bunny setText(m);
- wait 1;
- }
- bunny hudFadenDestroy(0, 1);
- hud hudFadenDestroy(0, 1);
- self TakeWeapon( "zombie_melee" );
- self SwitchToWeapon(self.bunny);
- self setVision("fly_dark");
- self disableGodMode();
- self.berz = false;
- level.zombie_vars["zombie_insta_kill"] = 0;
- self notify("berserker_done");
- }
- doCrawlerArms()
- {
- self endon("berserker_done");
- for(;;)
- {
- self waittill("action_notify_melee");
- if(self getCurrentWeapon() != "zombie_melee")
- continue;
- trace = bulletTrace(self getEye(), self getEye()+anglesToForward(self getPlayerAngles())*50, true, self);
- if(isDefined(trace["entity"].is_zombie))
- trace["entity"] thread forceZombieCrawler();
- }
- }
- SpawnFriendlyDogs(){
- self endon("death");
- self endon("disconnect");
- self Closed();
- if(self.score >= 3000){
- self maps\_zombiemode_score::minus_to_player_score(3000);
- self playsound("purchase");
- dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
- self thread TurnDogTeam();
- self thread ZombieDogTrigger();
- self thread setDogTarget();
- maps\_zombiemode_dogs::special_dog_spawn( dog_spawners, 4 );
- } else {
- self iPrintln("Not enough money!");
- self playsound("deny");
- self thread maps\_zombiemode_perks::play_no_money_perk_dialog();
- wait 0.2;
- }
- }
- TurnDogTeam(){
- self endon("death");
- self endon("disocnnect");
- level endon("DogKillStreakOver");
- for(;;){
- dogs = GetAISpeciesArray( "axis", "dog" );
- for(i=0;i<dogs.size;i++){
- dogs[i].team = "allies";
- dogs[i].targetname = "zombie_dog";
- dogs[i].animname = "zombie_dog";
- dogs[i].grenadeawareness = 1;
- dogs[i].ignoreSuppression = false;
- dogs[i].suppressionThreshold = 0;
- dogs[i].noDodgeMove = false;
- dogs[i].pathenemylookahead = 1;
- dogs[i].is_zombie = true;
- dogs[i].isai = false;
- dogs[i].ai = false;}
- wait 0.1;
- }
- }
- setDogTarget(){
- level endon("DogKillStreakOver");
- for(;;){
- zombies = GetAISpeciesArray( "axis", "zombie" );
- zombiedogs = GetAiSpeciesArray( "allies", "dog" );
- for(d=0;d<zombies.size;d++){
- for(i=0;i<zombiedogs.size;i++){
- zombiedogs[i] setGoalPos(zombies[i].origin);
- }
- level waittill("zom_kill");
- wait 0.05;
- }
- }
- }
- ZombieDogTrigger(){
- level endon("DogKillStreakOver");
- self thread MonitorDogTime(45);
- for(;;){
- zombies = GetAiSpeciesArray( "axis", "all" );
- zombiedogs = GetAiSpeciesArray( "allies", "dog" );
- for(i=0;i<zombies.size;i++){
- for(d=0;d<zombiedogs.size;d++){
- if((distance(zombies[i].origin, zombiedogs[d].origin) < 50) || (distance(zombiedogs[d].origin, zombies[i].origin) < 50)){
- zombies[i] DoDamage(zombies[i].health*500, (0,0,0), self);
- wait 0.1;
- }
- }
- }
- wait 0.1;
- }
- }
- MonitorDogTime(time){
- self endon("death");
- self endon("discpnnect");
- bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
- for(m = time; m > 0; m--){
- bunny setText(m);
- wait 1;
- }
- //wait (time);
- bunny HudFadenDestroy(0,1);
- self iPrintln("Dogs Over!");
- level notify("DogKillStreakOver");
- zombiedogs = GetAiSpeciesArray( "allies", "dog" );
- for(i=0;i<zombiedogs.size;i++){
- zombiedogs[i] DoDamage(zombiedogs[i].health*500, (0,0,0), self);
- }
- }
- gerschDevice()
- {
- self endon("death");
- self endon("disconnect");
- if(isDefined(self.has_gersch))
- return;
- nades = 4;
- txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, nades+" Thunder Nades Left");
- txt thread deleteTextAfterTime(1);
- self giveWeapon("stielhandgranate", 4);
- self.has_gersch = true;
- for(;;)
- {
- self waittill("grenade_fire", grenade, weapName);
- if((isSubStr(weapName, "granate") || isSubStr(weapName, "frag")) && !isDefined(grenade.gersch_device))
- {
- grenade.gersch_device = true;
- nades--;
- string = nades+" Gersch Devices Left";
- if(nades == 1)
- string = nades+" Gersch Device Left";
- txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, string);
- txt thread deleteTextAfterTime(1);
- grenade hide();
- grenade.gersch = spawnSM(grenade.origin, "static_berlin_ger_radio", grenade.angles);
- grenade.gersch linkTo(grenade);
- self thread gerschDevice_init(grenade);
- if(nades <= 0)
- break;
- }
- }
- self.has_gersch = undefined;
- }
- thunderNades()
- {
- self endon("death");
- self endon("disconnect");
- if(isDefined(self.has_thunderNades))
- return;
- nades = 4;
- txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, nades+" Thunder Nades Left");
- txt thread deleteTextAfterTime(1);
- self giveWeapon("stielhandgranate", 4);
- self.has_thunderNades = true;
- for(;;)
- {
- self waittill("grenade_fire", grenade, weapName);
- if((isSubStr(weapName, "granate") || isSubStr(weapName, "frag")) && !isDefined(grenade.thunder_gun))
- {
- grenade.thunder_gun = true;
- nades--;
- string = nades+" Thunder Nades Left";
- if(nades == 1)
- string = nades+" Thunder Nade Left";
- txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, string);
- txt thread deleteTextAfterTime(1);
- self thread thunderNade_init(grenade);
- playFxOnTag(level._effect["tesla_bolt"], grenade, "tag_origin");
- if(nades <= 0)
- break;
- }
- }
- self.has_thunderNades = undefined;
- }
Advertisement
Add Comment
Please, Sign In to add comment