Advertisement
Guest User

dm - Notesblok

a guest
Nov 19th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. #include maps\mp\_utility;
  2. #include maps\mp\gametypes\_hud_util;
  3. /*
  4. Deathmatch
  5. Objective: Score points by eliminating other players
  6. Map ends: When one player reaches the score limit, or time limit is reached
  7. Respawning: No wait / Away from other players
  8.  
  9. Level requirements
  10. ------------------
  11. Spawnpoints:
  12. classname mp_dm_spawn
  13. All players spawn from these. The spawnpoint chosen is dependent on the current locations of enemies at the time of spawn.
  14. Players generally spawn away from enemies.
  15.  
  16. Spectator Spawnpoints:
  17. classname mp_global_intermission
  18. Spectators spawn from these and intermission is viewed from these positions.
  19. Atleast one is required, any more and they are randomly chosen between.
  20. */
  21.  
  22. /*QUAKED mp_dm_spawn (1.0 0.5 0.0) (-16 -16 0) (16 16 72)
  23. Players spawn away from enemies at one of these positions.*/
  24.  
  25.  
  26. main()
  27. {
  28. maps\mp\gametypes\_globallogic::init();
  29. maps\mp\gametypes\_callbacksetup::SetupCallbacks();
  30. maps\mp\gametypes\_globallogic::SetupCallbacks();
  31.  
  32. if ( isUsingMatchRulesData() )
  33. {
  34. level.initializeMatchRules = ::initializeMatchRules;
  35. [[level.initializeMatchRules]]();
  36. level thread reInitializeMatchRulesOnMigration();
  37. }
  38. else
  39. {
  40. registerTimeLimitDvar( level.gameType, 10 );
  41. registerScoreLimitDvar( level.gameType, 1000 );
  42. registerWinLimitDvar( level.gameType, 1 );
  43. registerRoundLimitDvar( level.gameType, 1 );
  44. registerNumLivesDvar( level.gameType, 0 );
  45. registerHalfTimeDvar( level.gameType, 0 );
  46.  
  47. level.matchRules_damageMultiplier = 0;
  48. level.matchRules_vampirism = 0;
  49. }
  50.  
  51. level.onStartGameType = ::onStartGameType;
  52. level.getSpawnPoint = ::getSpawnPoint;
  53. level.onNormalDeath = ::onNormalDeath;
  54.  
  55. if ( level.matchRules_damageMultiplier || level.matchRules_vampirism )
  56. level.modifyPlayerDamage = maps\mp\gametypes\_damage::gamemodeModifyPlayerDamage;
  57.  
  58. game["dialog"]["gametype"] = "freeforall";
  59.  
  60. if ( getDvarInt( "g_hardcore" ) )
  61. game["dialog"]["gametype"] = "hc_" + game["dialog"]["gametype"];
  62. else if ( getDvarInt( "camera_thirdPerson" ) )
  63. game["dialog"]["gametype"] = "thirdp_" + game["dialog"]["gametype"];
  64. else if ( getDvarInt( "scr_diehard" ) )
  65. game["dialog"]["gametype"] = "dh_" + game["dialog"]["gametype"];
  66. else if (getDvarInt( "scr_" + level.gameType + "_promode" ) )
  67. game["dialog"]["gametype"] = game["dialog"]["gametype"] + "_pro";
  68. }
  69.  
  70.  
  71. initializeMatchRules()
  72. {
  73. // set common values
  74. setCommonRulesFromMatchRulesData( true );
  75.  
  76. // set everything else (private match options, default .cfg file values, and what normally is registered in the 'else' below)
  77. SetDynamicDvar( "scr_dm_winlimit", 1 );
  78. registerWinLimitDvar( "dm", 1 );
  79. SetDynamicDvar( "scr_dm_roundlimit", 1 );
  80. registerRoundLimitDvar( "dm", 1 );
  81. SetDynamicDvar( "scr_dm_halftime", 0 );
  82. registerHalfTimeDvar( "dm", 0 );
  83. }
  84.  
  85.  
  86. onStartGameType()
  87. {
  88. setClientNameMode("auto_change");
  89.  
  90. setObjectiveText( "allies", &"OBJECTIVES_DM" );
  91. setObjectiveText( "axis", &"OBJECTIVES_DM" );
  92.  
  93. if ( level.splitscreen )
  94. {
  95. setObjectiveScoreText( "allies", &"OBJECTIVES_DM" );
  96. setObjectiveScoreText( "axis", &"OBJECTIVES_DM" );
  97. }
  98. else
  99. {
  100. setObjectiveScoreText( "allies", &"OBJECTIVES_DM_SCORE" );
  101. setObjectiveScoreText( "axis", &"OBJECTIVES_DM_SCORE" );
  102. }
  103. setObjectiveHintText( "allies", &"OBJECTIVES_DM_HINT" );
  104. setObjectiveHintText( "axis", &"OBJECTIVES_DM_HINT" );
  105.  
  106. level.spawnMins = ( 0, 0, 0 );
  107. level.spawnMaxs = ( 0, 0, 0 );
  108. maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_dm_spawn" );
  109. maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_dm_spawn" );
  110. level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  111. setMapCenter( level.mapCenter );
  112.  
  113. allowed[0] = "dm";
  114. maps\mp\gametypes\_gameobjects::main(allowed);
  115.  
  116. maps\mp\gametypes\_rank::registerScoreInfo( "kill", 50 );
  117. maps\mp\gametypes\_rank::registerScoreInfo( "headshot", 50 );
  118. maps\mp\gametypes\_rank::registerScoreInfo( "assist", 10 );
  119. maps\mp\gametypes\_rank::registerScoreInfo( "suicide", 0 );
  120. maps\mp\gametypes\_rank::registerScoreInfo( "teamkill", 0 );
  121.  
  122. level.QuickMessageToAll = true;
  123. }
  124.  
  125.  
  126. getSpawnPoint()
  127. {
  128. spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
  129. spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM( spawnPoints );
  130.  
  131. return spawnPoint;
  132. }
  133.  
  134. onNormalDeath( victim, attacker, lifeId )
  135. {
  136. score = maps\mp\gametypes\_rank::getScoreInfoValue( "kill" );
  137. assert( isDefined( score ) );
  138.  
  139. // get the highest score
  140. highestScore = 0;
  141. foreach( player in level.players )
  142. {
  143. if( IsDefined( player.score ) && player.score > highestScore )
  144. highestScore = player.score;
  145. }
  146. if ( game["state"] == "postgame" && attacker.score >= highestScore )
  147. attacker.finalKill = true;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement