Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //The MapEdit Project
- //JariZ.nl
- //Made By Scripts & JariZ
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- //#include jariz\maploading;
- #include maps\mp\gametypes\me_assets;
- main()
- {
- if(GetDvar( #"mapname") == "mp_background")
- return;
- if( !mapSupport() )
- {
- error( "Could not find any available models to use." );
- maps\mp\gametypes\_callbacksetup::AbortLevel();
- return;
- }
- collMapListGenerate();
- level.DISPLAY_MODELNAME = 0;
- onPrecacheGameModels();
- maps\mp\gametypes\_globallogic::init();
- maps\mp\gametypes\_callbacksetup::SetupCallbacks();
- maps\mp\gametypes\_globallogic::SetupCallbacks();
- maps\mp\gametypes\_globallogic_utils::registerTimeLimitDvar( "tdm", 10, 0, 1440 );
- maps\mp\gametypes\_globallogic_utils::registerScoreLimitDvar( "tdm", 7500, 0, 50000 );
- maps\mp\gametypes\_globallogic_utils::registerRoundLimitDvar( "tdm", 1, 0, 10 );
- maps\mp\gametypes\_globallogic_utils::registerRoundWinLimitDvar( "tdm", 0, 0, 10 );
- maps\mp\gametypes\_globallogic_utils::registerNumLivesDvar( "tdm", 0, 0, 10 );
- maps\mp\gametypes\_weapons::registerGrenadeLauncherDudDvar( level.gameType, 10, 0, 1440 );
- maps\mp\gametypes\_weapons::registerThrownGrenadeDudDvar( level.gameType, 0, 0, 1440 );
- maps\mp\gametypes\_weapons::registerKillstreakDelay( level.gameType, 0, 0, 1440 );
- maps\mp\gametypes\_globallogic::registerFriendlyFireDelay( level.gameType, 15, 0, 1440 );
- level.scoreRoundBased = true;
- level.teamBased = true;
- level.onStartGameType = ::onStartGameType;
- level.onSpawnPlayer = ::onSpawnPlayer;
- level.onSpawnPlayerUnified = ::onSpawnPlayerUnified;
- level.onRoundEndGame = ::onRoundEndGame;
- game["dialog"]["gametype"] = "tdm_start";
- game["dialog"]["gametype_hardcore"] = "hctdm_start";
- game["dialog"]["offense_obj"] = "generic_boost";
- game["dialog"]["defense_obj"] = "generic_boost";
- setscoreboardcolumns( "kills", "deaths", "kdratio", "assists" );
- }
- setupPlayer()
- {
- self TakeAllWeapons();
- self DisableWeapons();
- self AllowAds( false );
- self notify( "stop_ammo" );
- self SetClientDvars(
- "cg_thirdPerson", "1",
- "cg_thirdPersonAngle", "360",
- "cg_thirdPersonRange", "200" );
- self ClearPerks();
- if( IsDefined( self.pers[ "myprop" ] ) )
- {
- self.pers[ "myprop" ] Delete();
- }
- usableModelsKeys = GetArrayKeys( level.usableModels );
- self.pers[ "myprop" ] = spawn( "script_model", self.origin );
- self.pers[ "myprop" ].health = 10000;
- self.pers[ "myprop" ].owner = self;
- self.pers[ "myprop" ].angles = self.angles;
- self.pers[ "myprop" ].indexKey = RandomInt( level.MAX_USUABLE_MODELS );
- self.pers[ "myprop" ] SetModel( level.usableModels[ usableModelsKeys[ self.pers[ "myprop" ].indexKey ] ] );
- self.pers[ "myprop" ] SetCanDamage( true );
- self.pers[ "myprop" ] thread detachOnDisconnect( self );
- self.pers[ "myprop" ] thread attachModel( self );
- SetClientNameMode( "manual_change" );
- SetDvar( "scr_teambalance", 0 );
- SetDvar( "scr_disable_cac", 1 );
- MakeDvarServerInfo( "scr_disable_cac", 1 );
- SetDvar( "scr_disable_weapondrop", 1 );
- SetDvar( "scr_game_perks", 0 );
- level.killstreaksenabled = 0;
- level.hardpointsenabled = 0;
- SetDvar( "xblive_privatematch", 0 );
- MakeDvarServerInfo( "xblive_privatematch", 0 );
- maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", "^7Map^1Edit v1" );
- maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", "^7Map^1Edit v1" );
- self thread monitorKeyPress();
- }
- onStartGameType()
- {
- setClientNameMode("auto_change");
- maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", &"OBJECTIVES_TDM" );
- maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", &"OBJECTIVES_TDM" );
- if ( level.splitscreen )
- {
- maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM" );
- maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM" );
- }
- else
- {
- maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM_SCORE" );
- maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM_SCORE" );
- }
- maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "allies", &"OBJECTIVES_TDM_HINT" );
- maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "axis", &"OBJECTIVES_TDM_HINT" );
- level.spawnMins = ( 0, 0, 0 );
- level.spawnMaxs = ( 0, 0, 0 );
- maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_allies_start" );
- maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_tdm_spawn_axis_start" );
- maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_tdm_spawn" );
- maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_tdm_spawn" );
- maps\mp\gametypes\_spawning::updateAllSpawnPoints();
- level.spawn_axis_start= maps\mp\gametypes\_spawnlogic::getSpawnpointArray("mp_tdm_spawn_axis_start");
- level.spawn_allies_start= maps\mp\gametypes\_spawnlogic::getSpawnpointArray("mp_tdm_spawn_allies_start");
- level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
- setMapCenter( level.mapCenter );
- spawnpoint = maps\mp\gametypes\_spawnlogic::getRandomIntermissionPoint();
- setDemoIntermissionPoint( spawnpoint.origin, spawnpoint.angles );
- allowed[0] = "tdm";
- level.displayRoundEndText = false;
- maps\mp\gametypes\_gameobjects::main(allowed);
- maps\mp\gametypes\_spawning::create_map_placed_influencers();
- if ( !isOneRound() )
- {
- level.displayRoundEndText = true;
- if( isScoreRoundBased() )
- {
- maps\mp\gametypes\_globallogic_score::resetTeamScores();
- }
- }
- }
- monitorKeyPress()
- {
- self endon( "disconnect" );
- self endon( "killed_player" );
- self endon( "death" );
- level endon( "game_ended" );
- usableModelsKeys = GetArrayKeys( level.usableModels );
- minZoom = 125;
- maxZoom = 525;
- zoomChangeRate = 5;
- self Hide();
- self.pers[ "myprop" ].rotateYaw_attack = SpawnStruct();
- self.pers[ "myprop" ].rotateYaw_attack.value = 0;
- self.pers[ "myprop" ].rotateYaw_attack.check = ::attackCheck;
- self.pers[ "myprop" ].rotateYaw_attack.max = -50;
- self.pers[ "myprop" ].rotateYaw_attack.change_rate = 1;
- self.pers[ "myprop" ].rotateYaw_attack.reset_rate = 50;
- self.pers[ "myprop" ].rotateYaw_ads = SpawnStruct();
- self.pers[ "myprop" ].rotateYaw_ads.value = 0;
- self.pers[ "myprop" ].rotateYaw_ads.check = ::adsCheck;
- self.pers[ "myprop" ].rotateYaw_ads.max = 50;
- self.pers[ "myprop" ].rotateYaw_ads.change_rate = 1;
- self.pers[ "myprop" ].rotateYaw_ads.reset_rate = 50;
- for(;;)
- {
- wait ( 0.05 );
- if( self ActionSlotTwoButtonPressed() && IsDefined( self.pers[ "myprop" ] ) ) //
- {
- //spawn code by JariZ.nl
- //Get location (stolen from se7en)
- vec = anglestoforward(self getPlayerAngles());
- end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
- location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
- //get current model
- model = level.usableModels[ usableModelsKeys[ self.pers[ "myprop" ].indexKey ] ];
- //spawn the model
- block = spawn("script_model", location, 1);
- block setModel(model);
- block.angles = self.angles;
- iprintln("^1[MAPEDIT] ^7Model spawned");
- //WARNING : ROTATION OF MODEL NOT YET IMPLENTED
- }
- if( self FragButtonPressed() && IsDefined( self.pers[ "myprop" ] ) )
- {
- self.pers[ "myprop" ].indexKey = self.pers[ "myprop" ].indexKey + 1;
- PrintLn( "HNS INDEX: " + self.pers[ "myprop" ].indexKey + " MAX POS: " + level.MAX_USUABLE_MODELS );
- if( self.pers[ "myprop" ].indexKey >= level.MAX_USUABLE_MODELS || self.pers[ "myprop" ].indexKey < 0 )
- {
- self.pers[ "myprop" ].indexKey = 0;
- }
- model = level.usableModels[ usableModelsKeys[ self.pers[ "myprop" ].indexKey ] ];
- //self.modelNameHUD SetText( model );
- self.pers[ "myprop" ] SetModel( model );
- self.pers[ "myprop" ] NotSolid();
- }
- if( self SecondaryOffhandButtonPressed() && IsDefined( self.pers[ "myprop" ] ) )
- {
- self.pers[ "myprop" ].indexKey = self.pers[ "myprop" ].indexKey - 1;
- PrintLn( "HNS INDEX: " + self.pers[ "myprop" ].indexKey + " MAX POS: " + level.MAX_USUABLE_MODELS );
- if( self.pers[ "myprop" ].indexKey >= level.MAX_USUABLE_MODELS || self.pers[ "myprop" ].indexKey < 0 )
- {
- self.pers[ "myprop" ].indexKey = 0;
- }
- model = level.usableModels[ usableModelsKeys[ self.pers[ "myprop" ].indexKey ] ];
- //self.modelNameHUD SetText( model );
- self.pers[ "myprop" ] SetModel( model );
- self.pers[ "myprop" ] NotSolid();
- }
- if( self ActionSlotTwoButtonPressed() )
- {
- if( GetDvarInt( "cg_thirdPersonRange" ) > minZoom )
- {
- self SetClientDvar( "cg_thirdPersonRange", GetDvarInt( "cg_thirdPersonRange" ) - zoomChangeRate );
- }
- }
- if( self ActionSlotFourButtonPressed() )
- {
- if( GetDvarInt( "cg_thirdPersonRange" ) < maxZoom )
- {
- self SetClientDvar( "cg_thirdPersonRange", GetDvarInt( "cg_thirdPersonRange" ) + zoomChangeRate );
- }
- }
- //self buttonHeldCheck( self.pers[ "myprop" ].rotateYaw_attack );
- //self buttonHeldCheck( self.pers[ "myprop" ].rotateYaw_ads );
- //self.pers[ "myprop" ] RotateYaw( self.pers[ "myprop" ].rotateYaw_ads.value + self.pers[ "myprop" ].rotateYaw_attack.value, 0.5 );
- }
- }
- onSpawnPlayerUnified()
- {
- self.usingObj = undefined;
- if ( level.useStartSpawns && !level.inGracePeriod )
- {
- level.useStartSpawns = false;
- }
- maps\mp\gametypes\_spawning::onSpawnPlayer_Unified();
- }
- onSpawnPlayer()
- {
- pixbeginevent("TDM:onSpawnPlayer");
- self.usingObj = undefined;
- if ( level.inGracePeriod )
- {
- spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_tdm_spawn_" + self.pers["team"] + "_start" );
- if ( !spawnPoints.size )
- spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_" + self.pers["team"] + "_start" );
- if ( !spawnPoints.size )
- {
- spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
- spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
- }
- else
- {
- spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random( spawnPoints );
- }
- }
- else
- {
- spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
- spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
- }
- self spawn( spawnPoint.origin, spawnPoint.angles, "tdm" );
- setupPlayer();
- //pixendevent();
- }
- onEndGame( winningTeam )
- {
- if ( isdefined( winningTeam ) && (winningTeam == "allies" || winningTeam == "axis") )
- [[level._setTeamScore]]( winningTeam, [[level._getTeamScore]]( winningTeam ) + 1 );
- }
- onRoundEndGame( roundWinner )
- {
- if ( game["roundswon"]["allies"] == game["roundswon"]["axis"] )
- winner = "tie";
- else if ( game["roundswon"]["axis"] > game["roundswon"]["allies"] )
- winner = "axis";
- else
- winner = "allies";
- return winner;
- }
- onScoreCloseMusic()
- {
- while( !level.gameEnded )
- {
- axisScore = [[level._getTeamScore]]( "axis" );
- alliedScore = [[level._getTeamScore]]( "allies" );
- scoreLimit = level.scoreLimit;
- scoreThreshold = scoreLimit * .1;
- scoreDif = abs(axisScore - alliedScore);
- scoreThresholdStart = abs(scoreLimit - scoreThreshold);
- scoreLimitCheck = scoreLimit - 10;
- if (alliedScore > axisScore)
- {
- currentScore = alliedScore;
- }
- else
- {
- currentScore = axisScore;
- }
- if ( scoreDif <= scoreThreshold && scoreThresholdStart <= currentScore )
- {
- thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "TIME_OUT", "both" );
- thread maps\mp\gametypes\_globallogic_audio::actionMusicSet();
- return;
- }
- wait(.5);
- }
- }
- detachOnDisconnect( player )
- {
- player endon( "death" );
- player endon( "killed_player" );
- player waittill( "disconnect" );
- modelOrigin = self.origin;
- self Delete();
- PlayFX( getfx( "hider_killed" ), modelOrigin );
- }
- attachModel( player )
- {
- player endon( "disconnect" );
- player endon( "killed_player" );
- player endon( "death" );
- self endon( "death" );
- for( ;; )
- {
- wait (0.01);
- if( self.origin != player.origin )
- {
- self MoveTo( player.origin, 0.1 );
- }
- }
- }
- hiderHudCreate()
- {
- }
- //The MapEditor Project
- //JariZ.nl
- //Following code is stolen from HnS by Alex Romo
- //Made By Scripts & JariZ
- onPrecacheGameModels()
- {
- precacheLevelModels();
- if( IsDefined( level.availableModels ) && level.availableModels.size > 0 )
- {
- level.availableModels = array_randomize( level.availableModels );
- if( level.availableModels.size < level.MAX_USUABLE_MODELS )
- {
- level.MAX_USUABLE_MODELS = level.availableModels.size;
- }
- availableModelsKeys = GetArrayKeys( level.availableModels );
- if( !IsDefined( level.usableModels ) )
- {
- level.usableModels = [];
- }
- for( x = 0 ; x < level.availableModels.size ; x++ )
- {
- PreCacheModel( level.availableModels[ availableModelsKeys[ x ] ] );
- level.usableModels[ level.availableModels[ availableModelsKeys[ x ] ] ] = level.availableModels[ availableModelsKeys[ x ] ];
- if( level.usableModels.size >= level.MAX_USUABLE_MODELS )
- {
- return;
- }
- }
- }
- }
- addModel( model )
- {
- if( !IsDefined( level.availableModels ) )
- {
- level.availableModels = [];
- }
- if( IsDefined( level.collMapModels ) && IsDefined( level.collMapModels[ model ] ) )
- {
- return;
- }
- if( !IsDefined( level.availableModels[ model ] ) )
- {
- level.availableModels[ model ] = model;
- }
- }
- precacheLevelModels()
- {
- if( IsDefined( level.force_hns_models ) )
- {
- [[ level.force_hns_models ]]();
- return;
- }
- switch( GetDvar( "mapname" ) )
- {
- case "mp_array":
- {
- mpArrayPrecache();
- } break;
- case "mp_berlinwall2":
- {
- mpBerlinwall2Precache();
- } break;
- case "mp_cairo":
- {
- mpCairoPrecache();
- } break;
- case "mp_cosmodrome":
- {
- mpCosmodromePrecache();
- } break;
- case "mp_cracked":
- {
- mpCrackedPrecache();
- } break;
- case "mp_crisis":
- {
- mpCrisisPrecache();
- } break;
- case "mp_discovery":
- {
- mpDiscoveryPrecache();
- } break;
- case "mp_duga":
- {
- mpDugaPrecache();
- } break;
- case "mp_firingrange":
- {
- mpFiringrangePrecache();
- } break;
- case "mp_gridlock":
- {
- mpGridlockPrecache();
- } break;
- case "mp_hanoi":
- {
- mpHanoiPrecache();
- } break;
- case "mp_havoc":
- {
- mpHavocPrecache();
- } break;
- case "mp_hotel":
- {
- mpHotelPrecache();
- } break;
- case "mp_kowloon":
- {
- mpKowloonPrecache();
- } break;
- case "mp_mountain":
- {
- mpMountainPrecache();
- } break;
- case "mp_nuked":
- {
- mpNukedPrecache();
- } break;
- case "mp_outskirts":
- {
- mpOutskirtsPrecache();
- } break;
- case "mp_radiation":
- {
- mpRadiationPrecache();
- } break;
- case "mp_russianbase":
- {
- mpRussianbasePrecache();
- } break;
- case "mp_stadium":
- {
- mpStadiumPrecache();
- } break;
- case "mp_villa":
- {
- mpVillaPrecache();
- } break;
- case "mp_zoo":
- {
- mpZooPrecache();
- } break;
- }
- }
- addCollMapModel( model )
- {
- if( !IsDefined( level.collMapModels ) )
- {
- level.collMapModels = [];
- }
- level.collMapModels[ model ] = model;
- }
- mapSupport()
- {
- if( IsDefined( level.force_hns_support ) && level.force_hns_support )
- {
- return true;
- }
- switch( ToLower( GetDvar( "mapname" ) ) )
- {
- case "mp_array":
- case "mp_berlinwall2":
- case "mp_cairo":
- case "mp_cosmodrome":
- case "mp_cracked":
- case "mp_crisis":
- case "mp_discovery":
- case "mp_duga":
- case "mp_firingrange":
- case "mp_gridlock":
- case "mp_hanoi":
- case "mp_havoc":
- case "mp_hotel":
- case "mp_kowloon":
- case "mp_mountain":
- case "mp_nuked":
- case "mp_outskirts":
- case "mp_radiation":
- case "mp_russianbase":
- case "mp_stadium":
- case "mp_villa":
- case "mp_zoo":
- {
- return true;
- }
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement