| rdxradar |
 |
General Member Since: Jan 19, 2008 Posts: 55 Last: Mar 3, 2012 [view latest posts] |
|
|
 |
|
|
| Tally |
General Member Since: Apr 21, 2005 Posts: 819 Last: Oct 26, 2012 [view latest posts] |
|
|
|
|
| rdxradar |
 |
General Member Since: Jan 19, 2008 Posts: 55 Last: Mar 3, 2012 [view latest posts] |
|
|
 |
|
Category: CoDWW MP Mapping Posted: Friday, Jan. 2, 2009 02:50 pm |
 |
Thanks Tally for the response. Unfortunately, I'm not very knowledgeable in scripting. Here is my tdm gametype gsc file.
- #include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
/*
TDM - Team Deathmatch
Objective: Score points for your team by eliminating players on the opposing team
Map ends: When one team reaches the score limit, or time limit is reached
Respawning: No wait / Near teammates
Level requirements
------------------
Spawnpoints:
classname mp_tdm_spawn
All players spawn from these. The spawnpoint chosen is dependent on the current locations of teammates and enemies
at the time of spawn. Players generally spawn behind their teammates relative to the direction of enemies.
Spectator Spawnpoints:
classname mp_global_intermission
Spectators spawn from these and intermission is viewed from these positions.
Atleast one is required, any more and they are randomly chosen between.
Level script requirements
-------------------------
Team Definitions:
game["allies"] = "marines";
game["axis"] = "japanese";
This sets the nationalities of the teams. Allies can be american, british, or russian. Axis can be german.
If using minefields or exploders:
maps\mp\_load::main();
Optional level script settings
------------------------------
Soldier Type and Variation:
game["american_soldiertype"] = "normandy";
game["german_soldiertype"] = "normandy";
This sets what character models are used for each nationality on a particular map.
Valid settings:
american_soldiertype normandy
british_soldiertype normandy, africa
russian_soldiertype coats, padded
german_soldiertype normandy, africa, winterlight, winterdark
*/
/*QUAKED mp_tdm_spawn (0.0 0.0 1.0) (-16 -16 0) (16 16 72)
Players spawn away from enemies and near their team at one of these positions.*/
/*QUAKED mp_tdm_spawn_axis_start (0.5 0.0 1.0) (-16 -16 0) (16 16 72)
Axis players spawn away from enemies and near their team at one of these positions at the start of a round.*/
/*QUAKED mp_tdm_spawn_allies_start (0.0 0.5 1.0) (-16 -16 0) (16 16 72)
Allied players spawn away from enemies and near their team at one of these positions at the start of a round.*/
main()
{
if(getdvar("mapname") == "mp_background")
return;
maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();
maps\mp\gametypes\_globallogic::registerTimeLimitDvar( "tdm", 10, 0, 1440 );
maps\mp\gametypes\_globallogic::registerScoreLimitDvar( "tdm", 500, 0, 5000 );
maps\mp\gametypes\_globallogic::registerRoundLimitDvar( "tdm", 1, 0, 10 );
maps\mp\gametypes\_globallogic::registerNumLivesDvar( "tdm", 0, 0, 10 );
level.teamBased = true;
level.onStartGameType = ::onStartGameType;
level.onSpawnPlayer = ::onSpawnPlayer;
level.onSpawnPlayerUnified = ::onSpawnPlayerUnified;
game["dialog"]["gametype"] = "team_deathmatch";
game["dialog"]["offense_obj"] = "tdm_boost";
game["dialog"]["defense_obj"] = "tdm_boost";
}
onStartGameType()
{
setClientNameMode("auto_change");
maps\mp\gametypes\_globallogic::setObjectiveText( "allies", &"OBJECTIVES_TDM" );
maps\mp\gametypes\_globallogic::setObjectiveText( "axis", &"OBJECTIVES_TDM" );
if ( level.splitscreen )
{
maps\mp\gametypes\_globallogic::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM" );
maps\mp\gametypes\_globallogic::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM" );
}
else
{
maps\mp\gametypes\_globallogic::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM_SCORE" );
maps\mp\gametypes\_globallogic::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM_SCORE" );
}
maps\mp\gametypes\_globallogic::setObjectiveHintText( "allies", &"OBJECTIVES_TDM_HINT" );
maps\mp\gametypes\_globallogic::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 );
allowed[0] = "tdm";
if ( getDvarInt( "scr_oldHardpoints" ) > 0 )
allowed[1] = "hardpoint";
level.displayRoundEndText = false;
maps\mp\gametypes\_gameobjects::main(allowed);
// now that the game objects have been deleted place the influencers
maps\mp\gametypes\_spawning::create_map_placed_influencers();
// elimination style
if ( level.roundLimit != 1 && level.numLives )
{
level.overrideTeamScore = true;
level.displayRoundEndText = true;
level.onEndGame = ::onEndGame;
}
}
onSpawnPlayerUnified()
{
self.usingObj = undefined;
maps\mp\gametypes\_spawning::onSpawnPlayer_Unified();
}
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 );
}
onEndGame( winningTeam )
{
if ( isdefined( winningTeam ) && (winningTeam == "allies" || winningTeam == "axis") )
[[level._setTeamScore]]( winningTeam, [[level._getTeamScore]]( winningTeam ) + 1 );
}
Any insight on how to correct this file? |
 |
|
|
| rdxradar |
 |
General Member Since: Jan 19, 2008 Posts: 55 Last: Mar 3, 2012 [view latest posts] |
|
|
 |
|
|