Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\mp\_airsupport;
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- /*//////////\\\\\\\\\\\\\\
- //....CHAOS DOGS V1.....\\
- ||======================||
- || This mod was made by ||
- || JellyInjector ||
- || and ||
- || Kylaii ||
- \\======================//
- \\\\\\\\\\\\////////////*/
- //Dog Dvar Default Settings
- //setDvar( "scr_dog_count", "8" ); //number of dogs for killstreak
- //setDvar( "scr_dog_max_at_once", "4" ); //max dogs at once
- //setDvar( "scr_dog_health", "100" ); //dogs health
- //setDvar( "scr_dog_time", "60" ); //how long dogs last
- init()
- {
- thread onPlayerConnect();
- thread onPlayerConnected();
- level.casSpot = -110;
- level.casColor = 1;
- level.prematchPeriod = 23;
- level.doublePoints = 0;
- level.instaKill = 0;
- level.powerOn = 0;
- level.lastPowerup = 99;
- thread doMap();
- thread powerDisplay();
- thread cleanUpSystem();
- thread summonDogs();
- thread roundCount();
- thread secret();
- game["icons"]["allies"] = "compass_objpoint_dogs";
- setdvar( "g_TeamIcon_Allies", game["icons"]["allies"] );
- precacheModel( "prop_suitcase_bomb" );
- PrecacheShader( "perk_times_two" );
- PrecacheShader( "hud_ammo_refill_drop" );
- PrecacheShader( "hud_ks_minigun" );
- PrecacheShader( "headicon_dead" );
- wait 2;
- level.fx_tabun_0 = level._effect["fx_fire_player_sm_smk_2sec"];
- level.fx_tabun_1 = level._effect["character_fire_death_sm"];
- level.fx_tabun_2 = level._effect["character_fire_death_torso"];
- level.fx_tabun_3 = "napalmground_sm_mp";
- level.fx_tabun_single = "napalmground_lg_mp";
- PreCacheItem( level.fx_tabun_0 );
- PreCacheItem( level.fx_tabun_1 );
- PreCacheItem( level.fx_tabun_2 );
- PreCacheItem( level.fx_tabun_3 );
- PreCacheItem( level.fx_tabun_single );
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill( "connecting", player );
- player thread playerTeams();
- }
- }
- onPlayerConnected()
- {
- for(;;)
- {
- level waittill( "connected", player );
- player thread onPlayerSpawned();
- if( level.powerOn == 0 )
- player thread doMapThinkPOff();
- player thread doMapThinkPOn();
- player thread perkDisplay();
- player thread cash();
- player thread globalVars();
- player thread setupTeam();
- player thread reset();
- //player thread doVision();
- }
- }
- onPlayerSpawned()
- {
- for(;;)
- {
- self waittill( "spawned_player" );
- self thread spawnStuff();
- }
- }
- spawnStuff()
- {
- self clearPerks();
- self takeAllWeapons();
- self giveWeapon( "knife_mp" );
- self giveWeapon( "cz75_mp" );
- self giveMaxAmmo( "cz75_mp" );
- self giveWeapon( "m1911_mp" );
- self giveMaxAmmo( "m1911_mp" );
- self giveWeapon( "tabun_gas_mp" );
- self switchToWeapon( "m1911_mp" );
- self.maxhealth = 400;
- self.health = self.maxhealth;
- }
- doVision()
- {
- self setClientDvar( "r_filmTweakInvert", "0" );
- self setClientDvar( "r_filmUseTweaks", "1" );
- self setClientDvar( "r_filmTweakEnable", "1" );
- self setClientDvar( "r_filmTweakLightTint", "0 0 0" );
- self setClientDvar( "r_filmTweakSaturation", "1 1 1" );
- self setClientDvar( "r_filmTweakHue", "0 0 0" );
- }
- createGreen( pos, angle ) // Crate for Miscellanious
- {
- crateG = spawn( "script_model", pos );
- crateG setModel( "mp_supplydrop_ally" );
- crateG.angles = angle;
- }
- createPerk( pos, angle, num ) // Crate for Machines
- {
- level.crateR[num] = spawn( "script_model", pos );
- level.crateR[num] setModel( "mp_supplydrop_axis" );
- level.crateR[num].angles = angle;
- }
- createRed( pos, angle ) // Crate for Red
- {
- cratered = spawn( "script_model", pos );
- cratered setModel( "mp_supplydrop_axis" );
- cratered.angles = angle;
- }
- createBlack( pos, angle ) // Crate for Boundaries
- {
- crateB = spawn( "script_model", pos );
- crateB setModel( "mp_supplydrop_boobytrapped" );
- crateB.angles = angle;
- }
- createPower( pos, angle ) // RCXD for Power Box
- {
- level.xdcar = spawn( "script_model", pos );
- level.xdcar setModel( "t5_veh_rcbomb_allies" );
- level.xdcar.angles = angle;
- }
- createDoor( pos, angle, num ) // Crate for Moving Doors
- {
- level.crateD[num] = spawn( "script_model", pos );
- level.crateD[num] setModel( "mp_supplydrop_ally" );
- level.crateD[num].angles = angle;
- }
- createGun( pos, angle, gun )
- {
- level.gun[gun] = spawn( "script_model", pos );
- level.gun[gun] setModel( getWeaponModel( gun + "_mp" ) );
- level.gun[gun].angles = angle;
- }
- createSpot( pos )
- {
- level.teleSpot = spawn( "script_model", pos );
- }
- createTur( pos, angle, num )
- {
- level.tur[num] = spawn( "script_model", pos );
- level.tur[num] setModel( "t5_weapon_sam_turret_red" );
- level.tur[num].angles = angle;
- }
- createSuitcase( pos, angle )
- {
- suitcase = spawn( "script_model", pos );
- suitcase setModel( "prop_suitcase_bomb" );
- suitcase.angles = angle;
- suitcase thread suitcaseThink();
- }
- doMap()
- {
- // Perk Machines
- level.bunkers[1] = createPerk( ( -315.008, 1952.55, 25.882 ), ( -180, 290, -90 ), 1 ); //Near TV's
- level.bunkers[2] = createPerk( ( 859.595, 963.868, 128.458 ), ( 0, 150, 90 ), 2 ); //Second Floor of Flag A (domination) building
- level.bunkers[3] = createPerk( ( -721.493, -562.177, -92.2126 ), ( 0, 0, 90 ), 3 ); //Near Firing Range
- level.bunkers[54] = createPerk( ( 817.5, -167.711, 14.0216 ), ( 0, 90, 90 ), 4 ); // Secret
- // Boundaries
- level.bunkers[4] = createBlack( ( 990.525, -35.2952, 14.8994 ), ( 0, 0, -90 ) );
- level.bunkers[5] = createBlack( ( 810.81, -64.7341, 43.6618 ), ( 0, 270, 90 ) );
- level.bunkers[19] = createBlack( ( 482.302, 1145.52, 274.153 ), ( 0, 60, 0 ) );
- level.bunkers[20] = createBlack( ( 542.941, 1108.32, 272.515 ), ( 0, 240, 0 ) );
- level.bunkers[21] = createBlack( ( 339.211, 878.935, 276.697 ), ( 0, 60, 0 ) );
- level.bunkers[22] = createBlack( ( 397.409, 843.727, 278.233 ), ( 0, 60, 0 ) );
- level.bunkers[42] = createBlack( ( 1435.73, 1314.05, 121 ), ( 0, 60, 90 ) );
- level.bunkers[43] = createBlack( ( 1460.95, 1354.71, 121 ), ( 0, 60, 90 ) );
- level.bunkers[44] = createBlack( ( 1485.36, 1396.48, 121 ), ( 0, 60, 90 ) );
- level.bunkers[45] = createBlack( ( 1509.71, 1437.27, 121 ), ( 0, 60, 90 ) );
- level.bunkers[49] = createBlack( ( 255.877, 742.799, 46.0719 ), ( 90, 160, 160 ) );
- level.bunkers[50] = createBlack( ( 4.797353, 962.675, 161.722 ), ( 90, 170, -180 ) );
- level.bunkers[51] = createBlack( ( 521.737, 1123.51, -9.96467 ), ( 0, 330, 90 ) );
- level.bunkers[52] = createBlack( ( 1462.63, 1364.3, 120.987 ), ( 0, 240, -90 ) );
- level.bunkers[53] = createBlack( ( -373.212, 1925.54, 37.2405 ), ( 90, 170, -180 ) );
- level.bunkers[55] = createBlack( ( 19.474, 911.499, 46.4463 ), ( 90, 0, -70 ) );
- level.bunkers[56] = createBlack( ( 380.987, 1077.38, 267.14 ), ( 0, 60, -90 ) );
- level.bunkers[57] = createBlack( ( 389.834, 1020.67, 167.443 ), ( 90, 350, 20 ) );
- level.bunkers[58] = createBlack( ( 414.224, 1011.39, 168.265 ), ( 90, 350, 20 ) );
- // Teleporter
- level.bunkers[7] = createGreen( ( 1541.09, 1437.8, -13.8212 ), ( 0, 150, 90 ) );
- level.bunkers[8] = createGreen( ( 1511.5, 1455.28, -13 ), ( -180, 160, 90 ) );
- level.bunkers[9] = createGreen( ( 1574.41, 1421.62, -13.5092 ), ( 0, 150, 90 ) );
- level.bunkers[10] = createGreen( ( 1519.63, 1444.48, 39.2482 ), ( 0, 60, 0 ) );
- level.bunkers[11] = createGreen( ( 1580.14, 1412.93, 42.395 ), ( 0, 60, 0 ) );
- level.bunkers[12] = createDoor( ( 1602.33, 1398.83, 62.9695 ), ( 0, 150, 90 ), 1 );
- level.bunkers[13] = createDoor( ( 1632.57, 1378.02, 64.6112 ), ( 0, 150, 90 ), 2 );
- level.bunkers[14] = createGreen( ( 1654.02, 1372.95, -11.8996 ), ( 0, 240, -90 ) );
- level.bunkers[16] = createGreen( ( 1637.93, 1379.34, 42.3871 ), ( 0, 60, 0 ) );
- level.bunkers[17] = createGreen( ( 1650.83, 1374.77, -12.0637 ), ( 0, 330, -90 ) );
- level.bunkers[18] = createSpot( ( 1531.69, 1335.03, -47.875 ) );
- level.bunkers[24] = createGreen( ( 1636.58, 1337.78, -12.0023 ), ( 0, 60, 90 ) );
- level.bunkers[25] = createGreen( ( 1619.59, 1310.5, -12.4566 ), ( 0, 60, 90 ) );
- level.bunkers[26] = createGreen( ( 1604.19, 1284.2, -11.5834 ), ( 0, 60, 90 ) );
- level.bunkers[27] = createGreen( ( 1590.46, 1259.8, -11.9353 ), ( 0, 60, 90 ) );
- level.bunkers[28] = createGreen( ( 1576.98, 1238.55, -12.175 ), ( 0, 60, 90 ) );
- level.bunkers[29] = createGreen( ( 1644.78, 1354.06, 41.259 ), ( 90, 330, 0 ) );
- level.bunkers[30] = createGreen( ( 1609.37, 1292.61, 40.6795 ), ( -90, 150, 0 ) );
- level.bunkers[31] = createGreen( ( 1586.44, 1252.25, 40.7318 ), ( 90, 330, 0 ) );
- // Power Box
- level.bunkers[15] = createPower( ( -25.8445, 1420.01, -6.53421 ), ( 90, 40, 150 ) );
- // Guns
- level.bunkers[32] = createGun( ( 876.456, -21.6794, -54.1622 ), ( 0, 0, 0 ), "rottweil72" );
- level.bunkers[32] = createGun( ( -952.034, 1153.49, -4.41626 ), ( 0, 340, 0 ), "m14" );
- level.bunkers[32] = createGun( ( 1357.96, 2492.9, 5.32343 ), ( 0, 90, 0 ), "dragunov" );
- wait 0.5;
- // Mystery Box
- level.oldMysBox = 99;
- level.mBoxSpot = [];
- level.mBoxAngle = [];
- level.mBoxSpot[0] = ( -1025.25, 1869.83, -41.7079 );
- level.mBoxAngle[0] = ( 0, 160, 0 );
- level.mBoxSpot[1] = ( 2109.52, 2243.94, -27.6325 );
- level.mBoxAngle[1] = ( 0, 180, 0 );
- level.mBoxSpot[2] = ( 985.453, 1427.71, -35.1813 );
- level.mBoxAngle[2] = ( 0, 10, 0 );
- level.mBoxSpot[3] = ( -388.802, -306.542, -107.276 );
- level.mBoxAngle[3] = ( 0, 180, 0 );
- thread newMysterybox();
- wait 0.5;
- // Pack-a-Punch
- level.bunkers[39] = createPack( ( 396.196, 1027.78, 208.911 ), ( 0, 150, 0 ) );
- level.bunkers[40] = createTur( ( 403.812, 1025.83, 175.409 ), ( 0, 240, 0 ), 1 );
- level.bunkers[41] = createTur( ( 395.818, 1026.79, 234.521 ), ( 0, 180, -180 ), 2 );
- wait 0.5;
- // Suitcases
- level.bunkers[46] = createSuitcase( ( 2046.35, 1772.14, -49.6505 ), ( 0, 10, 0 ) );
- level.bunkers[47] = createSuitcase( ( -1272.38, 1444.92, -55.4007 ), ( 0, 130, 0 ) );
- level.bunkers[48] = createSuitcase( ( -9.16544, 182.944, -39.0787 ), ( 0, 320, 20 ) );
- }
- doMapThinkPOff()
- {
- self endon( "disconnect" );
- level endon( "power_on" );
- level endon("game_wasover");
- for(;;)
- {
- if( distance( self.origin, level.xdcar.origin ) < 75 )
- {
- if( self.cash >= 200 )
- {
- self setLowerMessage( "Press [{+activate}] to turn the power on (^2200^7)" );
- while( distance( self.origin, level.xdcar.origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- self thread moreCash( -200 );
- level.powerOn = 1;
- level notify( "power_on" );
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not enough money (^2200^7)" );
- while( distance( self.origin, level.xdcar.origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the Olympia (^2100^7)" );
- while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon(self getCurrentWeapon());
- self giveWeapon( "rottweil72_mp" );
- self switchToWeapon( "rottweil72_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["m14"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the M14 (^2100^7)" );
- while( distance( self.origin, level.gun["m14"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon(self getCurrentWeapon());
- self giveWeapon( "m14_mp" );
- self switchToWeapon( "m14_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["m14"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the Dragunov (^2100^7)" );
- while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon(self getCurrentWeapon());
- self giveWeapon( "dragunov_mp" );
- self switchToWeapon( "rottweil72_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.crateR[1].origin ) < 75 || distance( self.origin, level.crateR[2].origin ) < 75 || distance( self.origin, level.teleSpot.origin ) < 100 || distance( self.origin, level.crateR[3].origin ) < 75 || distance( self.origin, level.crateR[4].origin ) < 75 )
- {
- self setLowerMessage( "Turn the power on to use" );
- while( distance( self.origin, level.crateR[1].origin ) < 75 || distance( self.origin, level.crateR[2].origin ) < 75 || distance( self.origin, level.teleSpot.origin ) < 100 )
- wait 0.05;
- }
- else
- {
- self clearLowerMessage( 0.5 );
- }
- wait 0.05;
- }
- }
- doMapThinkPOn()
- {
- self endon( "disconnect" );
- level endon("game_wasover");
- self.speedPerk = 0;
- self.healthPerk = 0;
- self.weaponPerk = 0;
- self.ghostPerk = 0;
- level.teleInProg = 0;
- if( level.powerOn == 0 )
- level waittill( "power_on" );
- for(;;)
- {
- if( distance( self.origin, level.crateR[1].origin ) < 75 && self.speedPerk == 0 )
- {
- if( self.cash >= 150 )
- {
- self setLowerMessage( "Press [{+activate}] to buy Speed (^2150^7)" );
- while( distance( self.origin, level.crateR[1].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- self.speedPerk = 1;
- self thread moreCash( -150 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2150^7)" );
- while( distance( self.origin, level.crateR[1].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.crateR[2].origin ) < 75 && self.healthPerk == 0 )
- {
- if( self.cash >= 150 )
- {
- self setLowerMessage( "Press [{+activate}] to buy Juggernaut (^2150^7)" );
- while( distance( self.origin, level.crateR[2].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- self.healthPerk = 1;
- self thread moreCash( -150 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2150^7)" );
- while( distance( self.origin, level.crateR[2].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.crateR[3].origin ) < 75 && self.weaponPerk == 0 )
- {
- if( self.cash >= 150 )
- {
- self setLowerMessage( "Press [{+activate}] to buy Overkill (^2150^7)" );
- while( distance( self.origin, level.crateR[3].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- self.weaponPerk = 1;
- self thread moreCash( -150 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2150^7)" );
- while( distance( self.origin, level.crateR[3].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.crateR[4].origin ) < 75 && self.ghostPerk == 0 )
- {
- if( self.cash >= 1000 )
- {
- self setLowerMessage( "Press [{+activate}] to buy Ghost (^21000^7)" );
- while( distance( self.origin, level.crateR[4].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- self.ghostPerk = 1;
- self thread doGhost();
- self thread moreCash( -1000 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^21000^7)" );
- while( distance( self.origin, level.crateR[4].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the Olympia (^2100^7)" );
- while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon( self getCurrentWeapon() );
- self giveWeapon( "rottweil72_mp" );
- self switchToWeapon( "rottweil72_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["m14"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the M14 (^2100^7)" );
- while( distance( self.origin, level.gun["m14"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon(self getCurrentWeapon());
- self giveWeapon( "m14_mp" );
- self switchToWeapon( "m14_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["m14"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- {
- if( self.cash >= 100 )
- {
- self setLowerMessage( "Press [{+activate}] to buy the Dragunov (^2100^7)" );
- while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- {
- if( self useButtonPressed() == true )
- {
- self playSoundToPlayer( "mpl_turret_alert", self );
- selfWepSize = self GetWeaponsList();
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
- self takeWeapon(self getCurrentWeapon());
- self giveWeapon( "dragunov_mp" );
- self switchToWeapon( "dragunov_mp" );
- self thread moreCash( -100 );
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self setLowerMessage( "Not Enough Money (^2100^7)" );
- while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
- wait 0.05;
- }
- }
- if( distance( self.origin, level.teleSpot.origin ) < 100 && level.teleInProg == 0 )
- {
- self setLowerMessage( "Press [{+activate}] to use the teleporter" );
- while( distance( self.origin, level.teleSpot.origin ) < 100 )
- {
- if( self useButtonPressed() == true )
- {
- thread doTeleporter();
- break;
- }
- wait 0.05;
- }
- }
- else
- {
- self clearLowerMessage( 0.5 );
- }
- wait 0.05;
- }
- }
- doTeleporter()
- {
- level.teleInProg = 1;
- level.crateD[1] moveTo( ( 1606.79, 1404.26, -28.45 ), 1.5 );
- level.crateD[2] moveTo( ( 1638.11, 1385.74, -28.45 ), 1.5 );
- for(k=0;k<level.players.size;k++)
- {
- if( distance( level.players[k].origin, level.teleSpot.origin ) < 100 )
- {
- level.players[k] clearLowerMessage( 0.1 );
- level.players[k] thread teleTimer();
- }
- }
- wait 3;
- for(i=0;i<level.players.size;i++)
- {
- if( distance( level.players[i].origin, level.teleSpot.origin ) < 100 )
- level.players[i] setOrigin( ( 460.572, 1062.25, 193.125 ) );
- wait 0.3;
- }
- level.crateD[1] moveTo( ( 1602.33, 1398.83, 62.9695 ), 180 );
- level.crateD[2] moveTo( ( 1632.57, 1378.02, 64.6112 ), 180 );
- wait 35;
- for(i=0;i<level.players.size;i++)
- {
- if( distance( level.players[i].origin, level.packBox.origin ) <= 180 )
- level.players[i] setOrigin( ( 2397.32, 1496.48, -55.8978 ) );
- wait 0.3;
- }
- level.teleInProg = 0;
- }
- juggernaut()
- {
- self.maxhealth = 700;
- self.health = self.maxhealth;
- }
- speed()
- {
- self setPerk( "specialty_unlimitedsprint" );
- self setPerk( "specialty_sprintrecovery" );
- self setPerk( "specialty_movefaster" );
- self setPerk( "specialty_fastweaponswitch" );
- self setPerk( "specialty_fastreload" );
- self setPerk( "specialty_fastmeleerecovery" );
- self setPerk( "specialty_fastmantle" );
- self setPerk( "specialty_fastinteract" );
- self setPerk( "specialty_fastads" );
- }
- teleTimer()
- {
- timer1 = self createFontString( "objective", 2 );
- timer1 setPoint( "CENTER", "CENTER", 0, -50 );
- timer1 setText( "Teleporting in" );
- timer1.foreground = true;
- timer1.hidewheninmenu = true;
- timer2 = self createFontString( "extrabig", 3 );
- timer2 setPoint( "CENTER", "CENTER", 0, 0 );
- timer2.foreground = true;
- timer2.hidewheninmenu = true;
- for(t=3;t>0;t--)
- {
- timer2 setText( "^2" + t );
- wait 1;
- }
- timer1 destroy();
- timer2 destroy();
- wait 0.1;
- timer3 = self createFontString( "extrabig", 2 );
- timer3 setPoint( "CENTER", "CENTER", 0, -100 );
- timer3.foreground = true;
- timer3.hidewheninmenu = true;
- for(t=35;t>0;t--)
- {
- timer3 setText( "Returning in: ^2" + t );
- wait 1;
- }
- timer3 destroy();
- }
- powerDisplay()
- {
- pow = createServerFontString( "objective", 1.5 );
- pow setPoint( "CENTER", "RIGHT", -40, -190 );
- pow setText( "Power: ^1OFF" );
- pow.foreground = true;
- pow.hidewheninmenu = true;
- level waittill( "power_on" );
- pow setText( "Power: ^2ON" );
- }
- perkDisplay()
- {
- level endon("game_wasover");
- self.perk = self createFontString( "objective", 1.8 );
- self.perk setPoint( "CENTER", "RIGHT", -40, 40 );
- self.perk.foreground = true;
- self.perk.hidewheninmenu = true;
- self.perks = "";
- self.speedDisplay = 0;
- self.healthDisplay = 0;
- self.weaponDisplay = 0;
- for(;;)
- {
- if( self.speedPerk == 1 && self.speedDisplay == 0 )
- {
- self thread speed();
- self.perks += "^5Speed\n";
- self.perk setText( self.perks );
- self.speedDisplay = 1;
- }
- if( self.healthPerk == 1 && self.healthDisplay == 0 )
- {
- self thread juggernaut();
- self.perks += "^1Juggernaut\n";
- self.perk setText( self.perks );
- self.healthDisplay = 1;
- }
- if( self.weaponPerk == 1 && self.weaponDisplay == 0 )
- {
- self.perks += "^2Overkill\n";
- self.perk setText( self.perks );
- self.weaponDisplay = 1;
- }
- if( self.healthPerk == 0 && self.speedPerk == 0 && self.weaponPerk == 0 )
- {
- self.perks = "";
- self.perk setText( self.perks );
- self.speedDisplay = 0;
- self.healthDisplay = 0;
- self.weaponDisplay = 0;
- }
- wait 0.05;
- }
- }
- reset()
- {
- self endon( "disconnect" );
- for(;;)
- {
- self waittill( "death" );
- self.playerStatus = "dead";
- self notify( "menuresponse", game["menu_team"], "spectator" );
- self.speedPerk = 0;
- self.healthPerk = 0;
- self.weaponPerk = 0;
- if( self.cash > 100000 )
- self.cash = 100000;
- self.cas setText( self.casColor + self.cash );
- level waittill( "round_up" );
- self.playerStatus = "alive";
- self notify( "menuresponse", game["menu_team"], "allies" );
- }
- }
- CreateRandomBox( pos, angle )
- {
- level.mBox = spawn( "script_model", pos );
- level.mBox setModel( "mp_supplydrop_ally" );
- level.mBox.angles = angle;
- objective_add( 1, "active", level.mBox.origin );
- objective_icon( 1, "compass_supply_drop_green" );
- boxLid = spawn("script_model", pos);
- boxLid.angles = angle;
- boxLid thread RandomBoxThink();
- }
- RandomBoxThink()
- {
- level endon( "newBox" );
- self.inUse = false;
- self endon("disconnect");
- level endon("game_wasover");
- while(1)
- {
- if(isDefined(level.players))
- {
- for(i=0;i<level.players.size;i++)
- {
- if(distance(self.origin, level.players[i].origin) <= 75 && isAlive(level.players[i]) && !self.inUse)
- {
- if( level.players[i].cash >= 250 )
- {
- level.players[i] setLowerMessage( "Press [{+activate}] to use the Mystery Box (^2250^7)" );
- if(level.players[i] useButtonPressed())
- {
- self.inUse = true;
- level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
- self thread doLidOpen(level.players[i]);
- level.players[i] thread moreCash( -250 );
- }
- }
- else
- level.players[i] setLowerMessage( "Not Enough Money (^2250^7)" );
- }
- }
- wait 0.05;
- }
- }
- }
- doLidOpen(player)
- {
- wait 0.5;
- weaponModel = spawn("script_model", self.origin);
- weaponModel.angles = self.angles - (0,90,0);
- weaponModel moveTo(self.origin + (0, 0, 40), 2);
- for(i = 20; i > 0; i--)
- {
- weapon = self thread weaponsLists();
- weaponModel setModel(weapon);
- wait 0.2;
- }
- weaponID = randomInt(self.weaponsList.size);
- weapon = self thread weaponsLists(weaponID);
- weaponModel setModel(weapon);
- if( weaponID == 0 )
- {
- self playSound( "amb_end_nuke" );
- t = 0;
- while( t != 9 )
- {
- playFx( level._effect["character_fire_death_torso"], self.origin );
- t++;
- wait 0.5;
- }
- weaponModel delete();
- self delete();
- wait 0.5;
- explosion = loadFx( "vehicle/vexplosion/fx_vexplode_helicopter_exp_mp" );
- playFx( explosion, level.mBox.origin );
- wait 0.2;
- player thread moreCash( 250 );
- level.mBox delete();
- level notify( "newBox" );
- wait 0.5;
- level thread newMysteryBox();
- }
- else
- {
- playerWeaponSize = player getWeaponsList();
- player endon("death");
- player endon("disconnect");
- self.timeOut = 0;
- while(1)
- {
- if(distance(self.origin, player.origin) <= 100)
- {
- if(playerWeaponSize.size <= 2 || playerWeaponSize.size <= 3 && player.weaponPerk == 1)
- {
- player setLowerMessage( "Press [{+activate}] to take the weapon" );
- }
- else
- {
- player setLowerMessage( "Press [{+activate}] to trade weapons" );
- }
- if(player UseButtonPressed())
- {
- level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
- if( self HasWeapon( "tabun_gas_mp" ) )
- wepSizeLimit = 4;
- else
- wepSizeLimit = 3;
- if( playerWeaponSize.size >= wepSizeLimit && player.weaponPerk == 0 || playerWeaponSize.size >= (wepSizeLimit+1) && player.weaponPerk == 1 )
- player takeWeapon(player getCurrentWeapon());
- player giveWeapon(self.weaponsList[weaponID]);
- player giveMaxAmmo(self.weaponsList[weaponID]);
- wait 0.1;
- player switchToWeapon(self.weaponsList[weaponID]);
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- if(!isAlive(player))
- {
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- }
- else
- {
- player clearLowerMessage( 1.0 );
- }
- if(self.timeOut >= 5)
- {
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- self.timeOut += 0.05;
- wait 0.05;
- }
- }
- }
- weaponsLists(ID)
- {
- self.weaponsList = [];
- self.weaponsList[0] = "prop_suitcase_bomb";
- self.weaponsList[1] = "galil_mp";
- self.weaponsList[2] = "spas_mp";
- self.weaponsList[3] = "rpk_mp";
- self.weaponsList[4] = "famas_mp";
- self.weaponsList[5] = "mp5k_mp";
- self.weaponsList[6] = "knife_ballistic_mp";
- self.weaponsList[7] = "ak74u_mp";
- self.weaponsList[8] = "l96a1_mp";
- self.weaponsList[9] = "python_mp";
- self.weaponsList[10] = "m60_mp";
- self.weaponsList[11] = "hk21_mp";
- self.weaponsList[12] = "stoner63_mp";
- if(isDefined(ID))
- {
- if( ID == 0 )
- weaponModel = "prop_suitcase_bomb";
- else
- weaponModel = getWeaponModel(self.weaponsList[ID]);
- }
- else
- {
- r = randomInt(self.weaponsList.size);
- if( r == 0 )
- weaponModel = "prop_suitcase_bomb";
- else
- weaponModel = getWeaponModel(self.weaponsList[r]);
- }
- return weaponModel;
- }
- newMysteryBox()
- {
- level.newMysBox = randomInt( level.mBoxSpot.size );
- if( level.newMysbox == level.oldMysBox )
- thread newMysteryBox();
- else
- {
- level.bunkers[6] = CreateRandomBox( level.mBoxSpot[level.newMysBox], level.mBoxAngle[level.newMysBox] );
- level.oldMysBox = level.newMysBox;
- }
- }
- createPack(pos, angle)
- {
- level.packBox = spawn( "script_model", pos );
- level.packBox setModel( "mp_supplydrop_axis" );
- level.packBox.angles = angle;
- packBoxLid = spawn("script_model", pos);
- packBoxLid.angles = angle;
- packBoxLid thread packBoxThink();
- }
- packBoxThink()
- {
- self.inUse = false;
- self endon("disconnect");
- level endon("game_wasover");
- while(1)
- {
- if(isDefined(level.players))
- {
- for(i = 0; i < level.players.size; i++)
- {
- if(distance(self.origin, level.players[i].origin) <= 60 && isAlive(level.players[i]) && !self.inUse)
- {
- if( level.players[i].cash >= 400 )
- {
- level.players[i] setLowerMessage( "Press [{+activate}] to upgrade your weapon (^2400^7)" );
- if(level.players[i] useButtonPressed())
- {
- wep = level.players[i] getCurrentWeapon();
- if( wep == ("mp5k_mp"||"galil_mp"||"rpk_mp"||"spas_mp"||"famas_mp"||"m14_mp"||"rottweil72_mp"||"m1911_mp"||"knife_ballistic_mp"||"hk21_mp"||"m60_mp"||"l96a1_mp"||"python_mp"||"ak74u_mp"||"stoner63_mp"||"dragunov_mp") )
- {
- self.inUse = true;
- level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
- self thread doPackLidOpen(level.players[i]);
- level.players[i] thread moreCash( -400 );
- }
- else
- {
- level.players[i] iPrintlnBold( "Weapon can't be upgraded" );
- }
- }
- }
- else
- level.players[i] setLowerMessage( "Not Enough Money (^2400^7)" );
- }
- }
- wait 0.05;
- }
- }
- }
- doPackLidOpen(player)
- {
- weaponModel = spawn("script_model", self.origin);
- weaponModel.angles = self.angles - (0,90,0);
- weaponModel moveTo(self.origin + (0, 0, 40), 3.6);
- weaponModel setModel( self thread packWeaponsList( player, 1 ) );
- playerCurWep = player getCurrentWeapon();
- playerPackWep = player thread packWeaponsList( player );
- wait 0.01;
- player takeWeapon( playerCurWep );
- weps = player GetWeaponsList();
- for(k=0;k<weps.size;k++)
- {
- if( weps[k] != "knife_mp" )
- {
- player switchToWeapon( weps[k] );
- break;
- }
- }
- for(i=72;i>0;i--)
- {
- level.tur[2].angles += ( 0, 10, 0 );
- wait 0.05;
- }
- player endon("death");
- player endon("disconnect");
- self.timeOut = 0;
- while(1)
- {
- if(distance(self.origin, player.origin) <= 100)
- {
- player setLowerMessage( "Press [{+activate}] to take the weapon" );
- if(player UseButtonPressed())
- {
- level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
- player giveWeapon(playerPackWep);
- player giveMaxAmmo(playerPackWep);
- wait 0.05;
- player switchToWeapon(playerPackWep);
- if( playerPackWep == "knife_ballistic_mp" )
- player thread infiniteKnives();
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- if(!isAlive(player))
- {
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- }
- else
- {
- player clearLowerMessage( 1.0 );
- }
- if(self.timeOut >= 5)
- {
- weaponModel delete();
- wait 1;
- self.inUse = false;
- break;
- }
- self.timeOut += 0.05;
- wait 0.05;
- }
- }
- packWeaponsList(player, model)
- {
- playerWep = player getCurrentWeapon();
- switch(playerWep)
- {
- case "mp5k_mp":
- self.packWep = "mp5k_elbit_rf_silencer_mp";
- break;
- case "galil_mp":
- self.packWep = "galil_elbit_extclip_silencer_mp";
- break;
- case "rpk_mp":
- self.packWep = "rpk_elbit_extclip_mp";
- break;
- case "spas_mp":
- self.packWep = "hs10dw_mp";
- break;
- case "famas_mp":
- self.packWep = "famas_elbit_extclip_silencer_mp";
- break;
- case "m14_mp":
- self.packWep = "fnfal_elbit_extclip_mp";
- break;
- case "rottweil72_mp":
- self.packWep = "ithaca_grip_mp";
- break;
- case "m1911_mp":
- self.packWep = "m1911_silencer_mp";
- break;
- case "knife_ballistic_mp":
- self.packWep = "knife_ballistic_mp";
- break;
- case "cz75_mp":
- self.packWep = "cz75dw_mp";
- break;
- case "ak74u_mp":
- self.packWep = "ak74u_elbit_grip_rf_mp";
- break;
- case "l96a1_mp":
- self.packWep = "l96a1_acog__extclip_mp";
- break;
- case "hk21_mp":
- self.packWep = "hk21_reflex_extclip_mp";
- break;
- case "m60_mp":
- self.packWep = "m60_grip_extclip_mp";
- break;
- case "stoner63_mp":
- self.packWep = "stoner63_elbit_extclip_mp";
- break;
- case "dragunov_mp":
- self.packWep = "psg1_acog_extclip_mp";
- break;
- default:
- break;
- }
- packWep = self.packWep;
- if(isDefined(model))
- {
- packModel = getWeaponModel(packWep);
- return packModel;
- }
- else
- {
- return packWep;
- }
- }
- infiniteKnives()
- {
- self endon( "death" );
- wep = "knife_ballistic_mp";
- for(;;)
- {
- while( self getCurrentWeapon() == wep )
- {
- if( self getWeaponAmmoStock( wep ) != 1 )
- self SetWeaponAmmoStock( wep, 1 );
- wait 0.2;
- }
- wait 1;
- }
- }
- cash()
- {
- self.cash = 100000;
- self.casSpot = level.casSpot;
- level.casSpot += 20;
- if(level.casColor == 1)
- {
- self.casColor = "^2";
- self.casColor2 = "Green";
- }
- else if(level.casColor == 2)
- {
- self.casColor = "^1";
- self.casColor2 = "Red";
- }
- else if(level.casColor == 3)
- {
- self.casColor = "^5";
- self.casColor2 = "Blue";
- }
- else if(level.casColor == 4)
- {
- self.casColor = "^3";
- self.casColor2 = "Yellow";
- }
- else if(level.casColor == 5)
- {
- self.casColor = "";
- self.casColor2 = "White";
- }
- else if(level.casColor == 6)
- {
- self.casColor = "^9";
- self.casColor2 = "Orange";
- }
- else if(level.casColor == 7)
- {
- self.casColor = "^6";
- self.casColor2 = "Purple";
- }
- else if(level.casColor == 8)
- {
- self.casColor = "^8";
- self.casColor2 = "Grey";
- }
- else if(level.casColor == 9)
- {
- self.casColor = "^0";
- self.casColor2 = "Black";
- }
- level.casColor++;
- self.casID = self createFontString( "objective", 1.5 );
- self.casID setPoint( "CENTER", "RIGHT", -40, -130 );
- self.casID setText( "You are " + self.casColor + self.casColor2 );
- self.casID.foreground = true;
- self.casID.hidewheninmenu = true;
- self.cas = createServerFontString( "objective", 2 );
- self.cas setPoint( "CENTER", "RIGHT", -40, self.casSpot );
- self.cas setText( self.casColor + self.cash );
- self.cas.foreground = true;
- self.cas.hidewheninmenu = true;
- self thread casDelete();
- }
- casDelete()
- {
- self waittill( "disconnect" );
- self.cas delete();
- level.casSpot -= 20;
- level.casColor--;
- }
- moreCash( points )
- {
- if( level.doublePoints == 1 && points > 0 && points != 250 )
- points = points * 2;
- self.cash += points;
- self.cas setText( self.casColor + self.cash );
- cash = createServerFontString( "objective", 1.5 );
- cash setPoint( "CENTER", "RIGHT", -70, self.casSpot );
- if(points > 0)
- cash setText( "^3+" + points );
- else
- cash setText( "^3" + points );
- cash.foreground = true;
- cash.hidewheninmenu = true;
- h = randomInt( 50 );
- cash moveOverTime( 1.0 );
- cash setPoint( "CENTER", "RIGHT", -170, (self.casSpot-25)+h );
- wait 1;
- cash destroy();
- }
- globalVars()
- {
- setDvar( "scr_dog_count", "100" );
- setDvar( "scr_dog_time", "65" );
- setDvar( "scr_dog_max_at_once", "3" );
- setDvar( "cg_spectateThirdPerson", "0" );
- setDvar( "g_TeamName_Allies", "Humans" );
- setDvar( "g_TeamName_Axis", "" );
- setDvar( "g_deadChat", "1" );
- setDvar( "g_allow_teamchange", 0 );
- setDvar( "scr_game_killstreaks", 0 );
- setDvar( "scr_disable_cac", 1 );
- setDvar( "scr_tdm_timelimit", 0 );
- }
- summonDogs()
- {
- wait 20;
- level thread maps\mp\_dogs::dog_manager_spawn_dogs( "axis", "allies", "0" );
- level thread gameover();
- }
- roundCount()
- {
- level.round = 1;
- level.dogHealth = "65";
- //level.dogNum = "4";
- setDvar( "scr_dog_health", level.dogHealth );
- //setDvar( "scr_dog_max_at_once", level.dogNum );
- level.rnd = createServerFontString( "objective", 4.3 );
- level.rnd setPoint( "TOPLEFT", "TOPLEFT", 10, 220 );
- level.rnd setText( "\n^1" + level.round );
- level.rnd.foreground = true;
- level.rnd.hidewheninmenu = true;
- for(;;)
- {
- level waittill( "round_up" );
- level.round += 1;
- level.rnd setText( "\n^1" + level.round );
- level.dogHealthNum = int(level.dogHealth);
- level.dogHealthNum += 7;
- level.doghealth = level.dogHealthNum + "";
- if( level.instaKill == 0 )
- setDvar( "scr_dog_health", level.dogHealth );
- //Untill we find a fix for less crashing, we might add this back in
- //level.dogNumNum = int( level.dogNum );
- //level.dogNumNum += 1;
- //level.dogNum = level.dogNumNum + "";
- //setDvar( "current_dogNum", level.dogNum );
- level thread maps\mp\_dogs::dog_manager_spawn_dogs( "axis", "allies", "0" );
- }
- }
- cleanUpSystem()
- {
- level endon( "game_wasover" );
- rndTimer = createServerFontString( "objective", 1.5 );
- rndTimer setPoint( "CENTER", "TOP", 0, 10 );
- for(i=60;i>0;i--)
- {
- rndTimer setText( "Next round in: ^3"+ i );
- wait 1.0;
- }
- rndTimer destroy();
- for(i=0;i<level.dogs.size;i++)
- {
- if(!isdefined(level.dogs[i]))
- {
- continue;
- }
- level.dogs[i] delete();
- wait 0.01;
- }
- level notify("dogs done");
- level notify( "round_up" );
- level thread cleanUpSystem();
- }
- setupTeam()
- {
- if( self.team == ( "axis" || "spectator" || "none" || undefined ) )
- {
- wait 0.2;
- self notify( "menuresponse", game["menu_team"], "allies" );
- }
- self.playerStatus = "alive";
- }
- gameover()
- {
- for(;;)
- {
- wait 1.0;
- if( level.playerCount["allies"] == 0 )
- {
- level notify( "game_wasover" );
- for(i=0;i<level.players.size;i++)
- {
- level.players[i] notify( "menuresponse", game["menu_team"], "allies" );
- }
- wait 0.5;
- thread maps\mp\gametypes\_globallogic::endGame( "axis", "You survived ^1"+level.round+"^7 rounds!" );
- break;
- }
- }
- }
- playerTeams()
- {
- level endon( "game_wasover" );
- for(;;)
- {
- wait 1.0;
- if( self.playerStatus == "alive" && self.team == "allies" )
- {
- self.playerStatus = "alive";
- }
- else if( self.playerStatus == "alive" && self.team == ( "axis" || "spectator" || "none" || undefined ) )
- {
- self.playerStatus = "alive";
- self notify( "menuresponse", game["menu_team"], "allies" );
- }
- else if( self.playerStatus == "dead" && self.team == ( "axis" || "allies" || "none" || undefined ) )
- {
- self.playerStatus = "dead";
- self notify( "menuresponse", game["menu_team"], "spectator" );
- }
- }
- }
- powerup( dogOrigin )
- {
- level.powerup = randomInt(40);
- if( level.powerup == level.lastPowerup )
- {
- while( level.powerup == level.lastPowerup )
- level.powerup = randomInt(3);
- level.lastPowerup = level.powerup;
- }
- if( level.powerup == 0 )
- thread doPowerup( "double_points", dogOrigin, "perk_times_two", 35, -200 );
- if( level.powerup == 1 )
- thread doPowerup( "insta_kill", dogOrigin, "headicon_dead", 35, -150 );
- if( level.powerup == 2 )
- thread doPowerup( "max_ammo", dogOrigin, "hud_ammo_refill_drop", 0, 0 );
- if( level.powerup == 3 )
- thread doPowerup( "death_machine", dogOrigin, "hud_ks_minigun", 20, -100 );
- }
- doPowerup( powerup, origin, icon, time, Xspot )
- {
- powerupIcon = newTeamHudElem( "allies" );
- powerupIcon.x = origin[0];
- powerupIcon.y = origin[1];
- powerupIcon.z = origin[2] + 35;
- powerupIcon.alpha = 1;
- powerupIcon.archived = true;
- powerupIcon setShader( icon, 20, 20 );
- powerupIcon setwaypoint( false );
- powerupSpot = spawn( "script_model", origin );
- p = 0;
- while( isDefined(powerupSpot) && p != 300 )
- {
- wait 0.1;
- for(i=0;i<level.players.size;i++)
- {
- if( distance( powerupSpot.origin, level.players[i].origin ) < 50 )
- {
- powerupIcon destroy();
- powerupSpot delete();
- break;
- }
- wait 0.01;
- }
- p++;
- }
- if( p == 300 )
- {
- powerupIcon destroy();
- powerupSpot delete();
- }
- else
- {
- switch( powerup )
- {
- case "double_points":
- thread doublePoints();
- break;
- case "insta_kill":
- thread instaKill();
- break;
- case "max_ammo":
- thread maxAmmo();
- break;
- case "death_machine":
- thread deathMachine();
- break;
- }
- thread doPowerupDisplay( icon, Xspot, time, powerup );
- }
- }
- doPowerupDisplay( icon, Xspot, time, powerup )
- {
- if( powerup != "max_ammo" )
- {
- screenIcon = createServerIcon( icon, 50, 50, "allies" );
- screenIcon.x = Xspot;
- screenIcon.y = -120;
- screenIcon.horzAlign = "center";
- screenIcon.vertAlign = "bottom";
- screenIcon.alpha = 0.85;
- wait (time-5);
- for(i=5;i>0;i--)
- {
- screenIcon.alpha = 0;
- wait 0.3;
- screenIcon.alpha = 0.85;
- wait 0.8;
- }
- level notify( powerup );
- screenIcon destroy();
- }
- else
- iPrintlnBold( "^1M^3A^1X ^3A^1M^3M^1O" );
- }
- deathMachine()
- {
- for(i=0;i<level.players.size;i++)
- {
- level.players[i]._curWep = level.players[i] getCurrentWeapon();
- level.players[i] giveWeapon( "minigun_mp" );
- level.players[i] giveMaxAmmo( "minigun_mp" );
- level.players[i] switchToWeapon( "minigun_mp" );
- wait 0.01;
- }
- level waittill( "death_machine" );
- for(i=0;i<level.players.size;i++)
- {
- level.players[i] takeWeapon( "minigun_mp" );
- level.players[i] switchToWeapon( level.players[i]._curWep );
- }
- }
- maxAmmo()
- {
- for(i=0;i<level.players.size;i++)
- {
- weps = level.players[i] GetWeaponsList();
- for(k=0;k<weps.size;k++)
- {
- level.players[i] giveMaxAmmo( weps[k] );
- wait 0.01;
- }
- }
- }
- doublePoints()
- {
- if( level.doublePoints == 0 )
- {
- level.doublePoints = 1;
- }
- else
- {
- level notify( "double_points" );
- wait 0.1;
- level.doublePoints = 1;
- }
- level waittill( "double_points" );
- level.doublePoints = 0;
- }
- instaKill()
- {
- if( level.instaKill == 0 )
- {
- level.instaKill = 1;
- setDvar( "scr_dog_health", "1" );
- for(i=0;i<level.dogs.size;i++)
- {
- if(!isdefined(level.dogs[i]))
- continue;
- level.dogs[i].health = 1;
- wait 0.01;
- }
- }
- else
- {
- level notify( "insta_kill" );
- wait 0.1;
- level.instaKill = 1;
- setDvar( "scr_dog_health", "1" );
- for(i=0;i<level.dogs.size;i++)
- {
- if(!isdefined(level.dogs[i]))
- continue;
- level.dogs[i].health = 1;
- wait 0.01;
- }
- }
- level waittill( "insta_kill" );
- setDvar( "scr_dog_health", level.dogHealth );
- for(i=0;i<level.dogs.size;i++)
- {
- if(!isdefined(level.dogs[i]))
- continue;
- level.dogs[i].health = level.dogHealth;
- wait 0.01;
- }
- level.instaKill = 0;
- }
- secret()
- {
- for(i=1;i<4;i++)
- {
- level waittill( "suitcase_found" );
- iPrintlnBold( "Suitcase ^2" + i + "^7 Has Been Found!" );
- }
- wait 1;
- secretText = createServerFontString( "objective", 1.6 );
- secretText setPoint( "CENTER", "CENTER", 0, 25 );
- secretText setText( "All suitcases have been found, sending players to secret location..." );
- wait 2.5;
- for(i=0;i<level.players.size;i++)
- {
- level.players[i].spot = level.players[i].origin;
- level.players[i] setOrigin( ( 986.581, -151.928, -21.875 ) );
- wait 0.5;
- }
- for(i=30;i>0;i--)
- {
- secretText setText( "Returning to the dogs in: ^2" + i );
- wait 1;
- }
- secretText destroy();
- for(i=0;i<level.players.size;i++)
- {
- level.players[i] setOrigin( level.players[i].spot );
- }
- }
- suitcaseThink()
- {
- self endon( "iGotFounded" );
- for(;;)
- {
- while(isDefined(level.players))
- {
- for(i=0;i<level.players.size;i++)
- {
- if( distance(self.origin, level.players[i].origin) <= 200 && distance(level.players[i] aim(), self.origin) <= 100)
- {
- if(level.players[i] useButtonPressed())
- {
- wait 0.5;
- if(level.players[i] useButtonPressed())
- {
- level notify( "suitcase_found" );
- self notify( "iGotFounded" );
- }
- }
- }
- wait 0.01;
- }
- wait 0.1;
- }
- wait 1;
- }
- }
- aim()
- {
- location = bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*100000,1,self)["position"];
- return location;
- }
- doGhost()
- {
- self setPerk( "specialty_nottargetedbyai" );
- ghostDisplay = self createFontString( "objective", 1.8 );
- ghostDisplay setPoint( "CENTER", "LEFT", 40, 20 );
- ghostDisplay.hidewheninmenu = true;
- for(i=150;i>0;i--)
- {
- ghostDisplay setText( "^3GHOST: ^1" + i );
- wait 1;
- }
- ghostDisplay destroy();
- self unsetPerk( "specialty_nottargetedbyai" );
- }
- dogKilled( dogOrigin )
- {
- self thread moreCash( 20 );
- thread powerup( dogOrigin );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement