Initial commit.

master
Icedream 2016-04-02 19:40:56 +02:00
commit 20c73de7a5
13 changed files with 2634 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
demos/
*.log
*.log.???
missingasset.csv

2
ap/gameTypesTable.csv Normal file
View File

@ -0,0 +1,2 @@
a0,b1,c2,d3
hns,MPUI_HIDEANDSEEK,MENU_HIDEANDSEEK,weapon_missing_image
1 a0 b1 c2 d3
2 hns MPUI_HIDEANDSEEK MENU_HIDEANDSEEK weapon_missing_image

View File

@ -0,0 +1,28 @@
VERSION "1"
FILENOTES "Hide & Seek localized strings"
REFERENCE MPUI_HIDEANDSEEK
LANG_ENGLISH "Hide & Seek"
REFERENCE MPUI_HIDEANDSEEK_CAPS
LANG_ENGLISH "HIDE & SEEK"
REFERENCE MPUI_HIDEANDSEEK_SHORT_CAPS
LANG_ENGLISH "HNS"
REFERENCE MENU_HIDEANDSEEK
LANG_ENGLISH "As a hider, try to blend into the environment - if all goes bad, you can still fight back.\nAs a seeker, try to find the hiders and kill them."
REFERENCE OBJECTIVES_HIDEANDSEEK_DEFENDER
LANG_ENGLISH "Disguise yourself and survive."
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE
LANG_ENGLISH "Seekers released in &&1"
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE_TITLE
LANG_ENGLISH "Seekers will be released in:"
REFERENCE HIDEANDSEEK_SEEKERS_RELEASED
LANG_ENGLISH "Seekers have been released."
ENDMARKER

View File

@ -0,0 +1,28 @@
VERSION "1"
FILENOTES "Hide & Seek lokalisierte Texte"
REFERENCE MPUI_HIDEANDSEEK
LANG_ENGLISH "Hide & Seek"
REFERENCE MPUI_HIDEANDSEEK_CAPS
LANG_ENGLISH "HIDE & SEEK"
REFERENCE MPUI_HIDEANDSEEK_SHORT_CAPS
LANG_ENGLISH "HNS"
REFERENCE MENU_HIDEANDSEEK
LANG_GERMAN "Als ein Hider sollst du versuchen, dich an deine Umgebung anzupassen - wenn alles schief läuft kannst du immer noch zurückschlagen.\nAls ein Seeker musst du die Hider finden und ausschalten."
REFERENCE OBJECTIVES_HIDEANDSEEK_DEFENDER
LANG_GERMAN "Tarne dich and überlebe."
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE
LANG_GERMAN "Seeker kommen in &&1"
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE_TITLE
LANG_GERMAN "Seeker werden freigelassen in:"
REFERENCE HIDEANDSEEK_SEEKERS_RELEASED
LANG_ENGLISH "Seeker freigelassen."
ENDMARKER

View File

@ -0,0 +1 @@
hns

14
maps/mp/gametypes/dm.gsc Normal file
View File

@ -0,0 +1,14 @@
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
main()
{
maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();
// Force HNS
setDvar("ui_gametype", "Hide & Seek");
setDvar("g_gametype", "hns");
Map_Restart(false);
}

880
maps/mp/gametypes/hns.gsc Normal file
View File

@ -0,0 +1,880 @@
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\perks\_perks;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\mods\disableClassMenu;
// Rallypoints should be destroyed on leaving your team/getting killed
// Doesn't seem to be setting angle on spawn so that you are facing your rallypoint
/*
Hide and Seek
Attackers objective: Kill all enemies.
Defenders objective: Hide as an entity on the map, optionally meleeing attackers.
Round ends: When one team is eliminated, or roundlength time is reached
Map ends: When one team reaches the score limit, or time limit or round limit is reached
Respawning: Players remain dead for the round and will respawn at the beginning of the next round
For this gametype, special key bindings need to be enabled.
- Switching into a prop(menu)
- Switching into a prop(quick)
- Rotating the prop(fast)
- Rotating the prop(slow)
Level requirements
------------------
Allied Spawnpoints:
classname mp_sd_spawn_attacker
Allied players spawn from these. Place at least 16 of these relatively close together.
Axis Spawnpoints:
classname mp_sd_spawn_defender
Axis players spawn from these. Place at least 16 of these relatively close together.
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["seekers"] = "allies";
game["hiders"] = "axis";
*/
/*QUAKED mp_sd_spawn_attacker(0.0 1.0 0.0) (-16 -16 0) (16 16 72)
Attacking players spawn randomly at one of these positions at the beginning of a round.*/
/*QUAKED mp_sd_spawn_defender(1.0 0.0 0.0) (-16 -16 0) (16 16 72)
Defending players spawn randomly at one of these positions at the beginning of a round.*/
main()
{
// Make gametype display properly in server browser
setDvar("ui_gametype", "Hide & Seek");
// We don't run this gametype in the menu
if (getdvar("mapname") == "mp_background")
return;
// Define allowed seeker weapons
level.seekerWeapons = [];
level.seekerWeapons[0] = "m16";
level.seekerWeapons[1] = "m4";
level.seekerWeapons[2] = "ump45";
level.seekerWeapons[3] = "fal";
level.seekerWeapons[4] = "scar";
level.seekerWeapons[5] = "ak47";
level.seekerWeapons[6] = "p90";
level.seekerWeapons[7] = "famas";
// Time for hiders to hide before releasing seekers
// TODO - make this a dvar
// Performance tweaking
// TODO - currently does not allow more than 200 in dvar
if (getDvar("sys_cpughz") > 2)
{
setDvar("sv_network_fps", 200);
}
// Make DVars available
level.gameType = "hns";
setDvarIfUninitialized("scr_" + level.gameType + "_roundswitch", 1);
setDvarIfUninitialized("scr_" + level.gameType + "_timelimit", 5);
setDvarIfUninitialized("scr_" + level.gameType + "_scorelimit", 1);
setDvarIfUninitialized("scr_" + level.gameType + "_roundlimit", 0);
setDvarIfUninitialized("scr_" + level.gameType + "_winlimit", 4);
setDvarIfUninitialized("scr_" + level.gameType + "_halftime", 0);
setDvarIfUninitialized("scr_" + level.gameType + "_numlives", 1);
maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();
level.teamBased = true;
// General game logic DVars
registerRoundSwitchDvar(level.gameType, 1, 0, 9);
registerTimeLimitDvar(level.gameType, 5, 0, 1440);
registerScoreLimitDvar(level.gameType, 1, 0, 500);
registerRoundLimitDvar(level.gameType, 0, 0, 12);
registerWinLimitDvar(level.gameType, 4, 0, 12);
registerHalfTimeDvar(level.gameType, 0, 0, 1);
registerNumLivesDvar(level.gameType, 1, 0, 10);
// Specific DVars for this gametype
registerPrereleaseDvar(level.gameType, 30, 0, 300);
// event handlers
//level.onXPEvent = ::onXPEvent;
level.getSpawnPoint = ::getSpawnPoint;
level.onSpawnPlayer = ::onSpawnPlayer;
level.onRespawnDelay = maps\mp\gametypes\_globallogic::blank;
level.onTimeLimit = ::onTimeLimit;
level.onHalfTime = maps\mp\gametypes\_gamelogic::default_onHalfTime;
level.onDeadEvent = ::onDeadEvent;
level.onOneLeftEvent = ::onOneLeftEvent;
level.onPrecacheGametype = ::onPrecacheGametype;
level.onStartGameType = ::onStartGameType;
level.onPlayerKilled = ::onPlayerKilled;
level.onNormalDeath = ::onNormalDeath;
game["dialog"]["gametype"] = "hns";
if (getDvarInt("g_hardcore"))
game["dialog"]["gametype"] = "hc_" + game["dialog"]["gametype"];
else if (getDvarInt("camera_thirdPerson"))
game["dialog"]["gametype"] = "thirdp_" + game["dialog"]["gametype"];
else if (getDvarInt("scr_diehard"))
game["dialog"]["gametype"] = "dh_" + game["dialog"]["gametype"];
else if (getDvarInt("scr_" + level.gameType + "_promode"))
game["dialog"]["gametype"] = game["dialog"]["gametype"] + "_pro";
// stretch regen time
maps\mp\gametypes\_tweakables::registerTweakable("player", "healthregentime", "scr_player_healthregentime", 10);
// disable all unwanted kinds of weapons
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowfrag", "scr_weapon_allowfrags", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowsmoke", "scr_weapon_allowsmoke", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowflash", "scr_weapon_allowflash", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowc4", "scr_weapon_allowc4", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowclaymores", "scr_weapon_allowclaymores", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowrpgs", "scr_weapon_allowrpgs", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("weapon", "allowmines", "scr_weapon_allowmines", 0);
// disable all hardpoints
maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowartillery", "scr_hardpoint_allowartillery", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowuav", "scr_hardpoint_allowuav", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowsupply", "scr_hardpoint_allowsupply", 0);
maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowhelicopter", "scr_hardpoint_allowhelicopter", 0);
level disableClassMenu();
level maps\mp\mods\_modellist::initModelList();
initGameFlags();
gameFlagInit("seekers_released", false);
}
onPrecacheGametype()
{
logString("onPrecacheGametype called");
//game["seekers_released_sound"] = "bomb_taken"; <= doesn't work
//game["seekers_released_sound"] = "mp_obj_taken";
game["seekers_released_sound"] = "elev_bell_ding";
game["seekers_blind_sound"] = "elev_run_end";
//game["hiders_changed_sound"] = "claymore_activated";
game["hiders_changed_sound"] = "weap_c4detpack_trigger_plr";
//game["hiders_changed_sound"] = "positions_lock";
game["fx_confetti"] = LoadFX("props/cash_player_drop");
game["fx_boom"] = LoadFX("props/electricbox4_explode");
PreCacheString(&"HIDEANDSEEK_TIMER_SEEKER_RELEASE");
PreCacheString(&"HIDEANDSEEK_TIMER_SEEKER_RELEASE_TITLE");
PreCacheString(&"HIDEANDSEEK_SEEKERS_RELEASED");
PreCacheString(&"OBJECTIVES_HIDEANDSEEK_DEFENDER");
}
registerPrereleaseDvar(dvarString, defaultValue, minValue, maxValue)
{
logString("registerPrereleaseDvar called");
registerWatchDvarInt("prereleasetime", defaultValue);
dvarString = "scr_" + dvarString + "_prereleasetime";
level.preReleaseTimeDvar = dvarString;
level.preReleaseTimeMin = minValue;
level.preReleaseTimeMax = maxValue;
level.preReleaseTime = getDvarInt(dvarString, defaultValue);
if (level.preReleaseTime < minValue)
{
level.preReleaseTime = minValue;
}
else if (level.preReleaseTime > maxValue)
{
level.preReleaseTime = maxValue;
}
}
updateGametypeDvars()
{
logString("updateGametypeDvars called");
// no time <= {prereleasetime} <= 5 minutes
level.preReleaseTime = dvarIntValue("prereleasetime", 30, 0, 5 * 60);
}
onStartGameType()
{
logString("onStartGameType called");
// reset flags
gameFlagClear("seekers_released");
if (!IsDefined(game["switchedsides"]))
game["switchedsides"] = false;
// Define who's seekers and who's hiders
if (!IsDefined(game["seekers"]) || !IsDefined(game["hiders"]))
{
game["seekers"] = "allies";
game["hiders"] = "axis";
// compatibility with the game's own game logic
game["attackers"] = game["seekers"];
game["defenders"] = game["hiders"];
}
// handle side switching
if (game["switchedsides"])
{
oldSeekers = game["seekers"];
oldHiders = game["hiders"];
game["seekers"] = oldHiders;
game["hiders"] = oldSeekers;
}
// team setup
setDvar("g_TeamName_" + game["hiders"], "Hiders");
setDvar("g_TeamName_" + game["seekers"], "Seekers");
// prevent spectators ghosting through nickchanging
setClientNameMode("auto_change");
// objective text
// TODO
setObjectiveText(game["seekers"], &"OBJECTIVES_WAR");
setObjectiveText(game["hiders"], &"OBJECTIVES_HIDEANDSEEK_DEFENDER");
if (!level.splitscreen)
{
setObjectiveScoreText(game["seekers"], &"OBJECTIVES_WAR_SCORE");
setObjectiveScoreText(game["hiders"], &"OBJECTIVES_SD_DEFENDER_SCORE");
}
setObjectiveHintText(game["seekers"], &"OBJECTIVES_WAR_HINT");
setObjectiveHintText(game["hiders"], &"OBJECTIVES_HIDEANDSEEK_DEFENDER");
// spawn points
level.spawnMins = (0, 0, 0);
level.spawnMaxs = (0, 0, 0);
maps\mp\gametypes\_spawnlogic::placeSpawnPoints("mp_sd_spawn_attacker");
maps\mp\gametypes\_spawnlogic::placeSpawnPoints("mp_sd_spawn_defender");
// center of map
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
setMapCenter( level.mapCenter );
// game objects on map
allowed[0] = "dm";
allowed[1] = "war";
allowed[2] = level.gameType;
maps\mp\gametypes\_gameobjects::main(allowed);
// remove turrets
level deletePlacedEntity("misc_turret");
// scoring
maps\mp\gametypes\_rank::registerScoreInfo("win", 2);
maps\mp\gametypes\_rank::registerScoreInfo("loss", 1);
maps\mp\gametypes\_rank::registerScoreInfo("tie", 1.5);
//
maps\mp\gametypes\_rank::registerScoreInfo("kill", 50);
maps\mp\gametypes\_rank::registerScoreInfo("headshot", 50);
maps\mp\gametypes\_rank::registerScoreInfo("assist", 20);
// life count
level.livesCount[game["seekers"]] = 1;
level updateGametypeDvars();
level thread levelReleaseTimer();
level thread levelSpeeding();
}
getSpawnPoint()
{
logString("getSpawnPoint called");
if (self.pers["team"] == game["seekers"])
spawnPointName = "mp_sd_spawn_attacker";
else
spawnPointName = "mp_sd_spawn_defender";
spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray(spawnPointName);
assert(spawnPoints.size);
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(spawnPoints);
return spawnpoint;
}
onSpawnPlayer()
{
logString("onSpawnPlayer called");
player = self;
//player.spawnprotection = 0;
//player thread DoSpawnProtection();
//player SetClientDvar("cg_scoreboardItemHeight", 13);
player SetClientDvar("lowAmmoWarningColor1", 0, 0, 0, 0);
player SetClientDvar("lowAmmoWarningColor2", 0, 0, 0, 0);
player SetClientDvar("lowAmmoWarningNoAmmoColor1", 0, 0, 0, 0);
player SetClientDvar("lowAmmoWarningNoAmmoColor2", 0, 0, 0, 0);
player SetClientDvar("lowAmmoWarningNoReloadColor1", 0, 0, 0, 0);
player SetClientDvar("lowAmmoWarningNoReloadColor2", 0, 0, 0, 0);
if (player.pers["team"] == game["hiders"])
{
player thread handleHider();
}
else if (player.pers["team"] == game["seekers"])
{
player thread handleSeeker();
}
level notify("spawned_player");
}
onPlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration, killId)
{
logString("onPlayerKilled called");
player = self;
// If victim has a custom model, destroy it
if (IsDefined(player.customModel))
{
player.customModel Delete();
}
// If victim had a custom model set, reset it
if (IsDefined(player.originalModel))
{
player SetModel(player.originalModel);
player PlaySound(game["hiders_changed_sound"]);
player.originalModel = undefined;
}
if (IsDefined(player.originalModelAttachments))
{
player DetachAll();
for (index = 0; index < player.originalModelAttachments.size; index++)
{
player Attach(player.originalModelAttachments[index].model, player.originalModelAttachments[index].tag);
}
player.originalModelAttachments = undefined;
}
// Update spectator permissions
thread checkAllowSpectating();
}
checkAllowSpectating()
{
logString("checkAllowSpectating called");
wait(0.05);
if (!level.aliveCount[game["seekers"]])
{
level.spectateOverride[game["seekers"]].allowEnemySpectate = 1;
maps\mp\gametypes\_spectating::updateSpectateSettings();
}
if (!level.aliveCount[game["hiders"]])
{
level.spectateOverride[game["hiders"]].allowEnemySpectate = 1;
maps\mp\gametypes\_spectating::updateSpectateSettings();
}
}
onDeadEvent(team)
{
logString("onDeadEvent called");
if (team == "all")
{
thread maps\mp\gametypes\_gamelogic::endGame("tie", game["strings"]["tie"]);
}
else if (team == game["seekers"])
{
level thread maps\mp\gametypes\_gamelogic::endGame(game["hiders"], game["strings"][game["seekers"]+"_eliminated"]);
}
else if (team == game["hiders"])
{
level thread maps\mp\gametypes\_gamelogic::endGame(game["seekers"], game["strings"][game["hiders"]+"_eliminated"]);
}
}
onTimeLimit()
{
logString("onTimeLimit called");
// Hiders win when time limit reached
thread maps\mp\gametypes\_gamelogic::endGame(game["hiders"], game["strings"]["time_limit_reached"]);
}
onNormalDeath(victim, attacker, lifeId)
{
logString("onNormalDeath called");
// Make sure the kill score is set properly
score = maps\mp\gametypes\_rank::getScoreInfoValue("kill");
assert(isDefined(score));
thread maps\mp\_matchdata::logKillEvent(lifeId, victim.pers["team"]);
// Is this the final kill?
if (game["state"] == "postgame")
attacker.finalKill = true;
}
onOneLeftEvent(team)
{
logString("onOneLeftEvent called");
player = getLastLivingPlayer(team);
player thread giveLastOnTeamWarning();
}
giveLastOnTeamWarning()
{
logString("giveLastOnTeamWarning called");
player = self;
player endon("death");
player endon("disconnect");
level endon("game_ended");
player waitTillRecoveredHealth(3);
otherTeam = getOtherTeam(player.pers["team"]);
level thread teamPlayerCardSplash("callout_lastteammemberalive", player, player.pers["team"]);
level thread teamPlayerCardSplash("callout_lastenemyalive", player, otherTeam);
level notify("last_alive", player);
}
levelReleaseTimer()
{
logString("levelReleaseTimer called");
gameFlagClear("seekers_released");
gameFlagWait("prematch_done");
if (!level.preReleaseTime)
{
gameFlagSet("seekers_released");
return;
}
maps\mp\gametypes\_gamelogic::pauseTimer();
timerDisplays = [];
// Display a pre-release timer on the top right corner for the hiders
timerDisplay = createServerTimer("objective", 1.4, game["hiders"]);
timerDisplay setPoint("TOPRIGHT", "TOPRIGHT", -8, 8);
timerDisplay.archived = false;
timerDisplay.hideWhenInMenu = false;
timerDisplay.label = &"HIDEANDSEEK_TIMER_SEEKER_RELEASE";
timerDisplay.alpha = 1;
timerDisplay setTimer(level.preReleaseTime);
timerDisplays[0] = timerDisplay;
// Display a pre-release timer in the center for the seekers
timerDisplayText = createServerFontString("objective", 1.5, game["seekers"]);
timerDisplayText setPoint("CENTER", "CENTER", 0, -40);
timerDisplayText.sort = 1001;
timerDisplayText setText(&"HIDEANDSEEK_TIMER_SEEKER_RELEASE_TITLE");
timerDisplayText.foreground = false;
timerDisplayText.hideWhenInMenu = true;
timerDisplays[1] = timerDisplayText;
timerDisplay = createServerTimer("hudbig", 1, game["seekers"]);
timerDisplay setPoint("CENTER", "CENTER", 0, 0);
timerDisplay.sort = 1001;
timerDisplay.color = (1,1,0);
timerDisplay.foreground = false;
timerDisplay.hideWhenInMenu = true;
timerDisplay maps\mp\gametypes\_hud::fontPulseInit();
//timerDisplay setTimer(level.preReleaseTime);
timerDisplays[2] = timerDisplay;
waittillframeend; // wait till cleanup of previous start timer if multiple happen at once
timerSeconds = level.preReleaseTime;
for (timerSeconds = level.preReleaseTime; timerSeconds > 0 && !level.gameEnded; timerSeconds--)
{
timerDisplays[2] thread maps\mp\gametypes\_hud::fontPulse(level);
wait (timerDisplays[2].inFrames * 0.05);
timerDisplays[2] SetValue(timerSeconds);
wait (1 - (timerDisplays[2].inFrames * 0.05));
}
if (!level.gameEnded)
{
// Prerelease phase done
gameFlagSet("seekers_released");
maps\mp\gametypes\_gamelogic::resumeTimer();
}
for (index = 0; index < timerDisplays.size; index++)
timerDisplays[index] destroyElem();
}
levelSpeeding()
{
logString("levelSpeeding called");
level endon("game_ended");
originalSpeed = GetDvarInt("g_speed");
originalSprintUnlimited = GetDvar("player_sprintUnlimited");
thread levelRevertSpeedingWhenGameEnds(originalSpeed, originalSprintUnlimited);
setDvar("g_speed", originalSpeed * 1.6);
setDvar("player_sprintUnlimited", 1);
gameFlagWait("seekers_released");
setDvar("g_speed", originalSpeed);
setDvar("player_sprintUnlimited", originalSprintUnlimited);
}
levelRevertSpeedingWhenGameEnds(originalSpeed, originalSprintUnlimited)
{
logString("levelRevertSpeedingWhenGameEnds called");
level endon("seekers_released");
level waittill("game_ended");
setDvar("g_speed", originalSpeed);
setDvar("player_sprintUnlimited", originalSprintUnlimited);
}
handleSeeker() {
logString("handleSeeker called");
player = self;
player endon("disconnect");
player endon("death");
level endon("game_ended");
// Wait for _playerlogic to give the player his default weapons and perks
player waittill("spawned_player");
// Disable third-person mode
player SetClientDvar("cg_thirdperson", 0);
// Set player health high enough for stabbing to not instantly kill them
//player.maxhealth = 280;
//player.health = 280;
// Take weapons and perks
player ClearPerks();
player TakeAllWeapons();
// Give gametype-friendly perks
player GivePerk("specialty_lightweight");
player GivePerk("specialty_coldblooded");
player GivePerk("specialty_marathon");
player GivePerk("specialty_falldamage");
player GivePerk("specialty_fastreload");
gameFlagWait("prematch_done");
if (!gameFlag("seekers_released")) {
wait 0.5;
// Blind player if seekers weren't released yet
player playLocalSound(game["seekers_blind_sound"]);
/*for (a = 0; a < RandomIntRange(5, 20); a++) {
len = RandomFloatRange(0.0, 0.25);
player VisionSetNakedForPlayer("blacktest", len);
wait len;
len = RandomFloatRange(0.0, 0.25);
player VisionSetNakedForPlayer(getDvar("mapname"), len);
wait len;
}
len = RandomFloatRange(0.0, 0.25);
player VisionSetNakedForPlayer("blacktest", len);
*/
player VisionSetNakedForPlayer("blacktest", 0.1);
// Freeze, hide
player FreezeControls(true);
player Hide();
gameFlagWait("seekers_released");
player playLocalSound(game["seekers_released_sound"]);
// Unfreeze, show
player FreezeControls(false);
player VisionSetNakedForPlayer(getDvar("mapname"), 2.5);
player Show();
}
else
{
wait 0.5;
}
// random primary weapon
primaryWeapon = level.seekerWeapons[RandomInt(level.seekerWeapons.size)];
player GiveWeapon(primaryWeapon + "_reflex_mp", RandomInt(9), false);
// tactical knife
player GiveWeapon("deserteagle_tactical_mp", 0, false);
// single semtex
player GiveWeapon("semtex_mp");
player SwitchToWeapon(primaryWeapon + "_reflex_mp");
wait 0.75;
// ammo
player GiveMaxAmmo(primaryWeapon + "_reflex_mp");
player GiveMaxAmmo("deserteagle_tactical_mp");
player thread enableUnlimitedReload();
player thread enableWeaponDicing("+actionslot 3");
}
handleHider() {
logString("handleHider called");
player = self;
player endon("disconnect");
player endon("death");
level endon("game_ended");
// Wait for _playerlogic to give the player his default weapons and perks
player waittill("spawned_player");
// Go third-person mode
player SetClientDvar("cg_thirdperson", 1);
// Take weapons and perks
player ClearPerks();
player TakeAllWeapons();
// Gametype-friendly perks
player GivePerk("specialty_quieter");
player GivePerk("specialty_coldblooded");
player GivePerk("specialty_falldamage");
gameFlagWait("prematch_done");
player thread enableThirdPersonSwitch("+actionslot 3", 1);
player thread enableModelChange("+attack");
player thread revealWhenGameEnds();
if (!gameFlag("seekers_released"))
{
gameFlagWait("seekers_released");
/*
player giveWeapon("deserteagle_tactical_mp", 0, false);
player switchtoWeapon("deserteagle_tactical_mp");
*/
// "Seekers have been released." message on screen
notifyData = spawnstruct();
notifyData.titleText = &"HIDEANDSEEK_SEEKERS_RELEASED";
notifyData.glowColor = (1.0, 0.4, 0.1);
//notifyData.sound = game["seekers_released_sound"];
player thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
player PlayLocalSound(game["seekers_released_sound"]);
}
}
/*
* Binds a player command to let the player change between first
* person view and third person view.
*/
enableThirdPersonSwitch(playerCommand, value) {
logString("enableThirdPersonSwitch called");
player = self;
level endon("game_ended");
player endon("death");
player endon("disconnect");
player notifyOnPlayerCommand("thirdpersonswitch_requested", playerCommand);
for (;;)
{
player waittill("thirdpersonswitch_requested");
// toggle third person mode
value = !value;
player SetClientDvar("cg_thirdperson", value);
wait 0.5;
}
}
/*
* Binds a player command to let the player change into the model they
* are looking at.
*/
enableModelChange(playerCommand) {
logString("enableModelChange called");
player = self;
level endon("game_ended");
player endon("death");
player endon("disconnect");
player notifyOnPlayerCommand("modelchange_requested", playerCommand);
defaultOriginAdd = undefined;
for (;;)
{
player waittill("modelchange_requested");
if (!IsDefined(defaultOriginAdd))
{
defaultOriginAdd = (player GetEye()) - (player GetOrigin());
}
if (!IsDefined(player.originalModel))
{
player.originalModel = player.model;
}
if (!IsDefined(player.originalModelAttachments))
{
player.originalModelAttachments = [];
for (index = 0; index < player GetAttachSize(); index++)
{
player.originalModelAttachments[index] = spawnstruct();
player.originalModelAttachments[index].tag = player GetAttachTagName(index);
player.originalModelAttachments[index].model = player GetAttachModelName(index);
}
}
// Make a trace to the focused object
origin = (player GetOrigin()) + defaultOriginAdd;
trace = BulletTrace(origin, origin + anglestoforward(player getplayerangles()) * 1000000, false, player);
if (!IsDefined(trace) || !IsDefined(trace["entity"]) || !IsDefined(trace["entity"].model) || !IsDefined(trace["entity"].classname))
{
player IPrintLnBold(trace);
continue;
}
if (trace["entity"].classname != "script_model")
{
player IPrintLnBold("^3" + trace["entity"].model + " is not a script model.");
continue;
}
if (maps\mp\mods\_modellist::isIgnoredModel(trace["entity"].model))
{
player IPrintLnBold("^3You can't change into that!");
continue;
}
displayName = maps\mp\mods\_modellist::getDisplayName(trace["entity"].model);
healthfrac = player.health / player.maxhealth;
newhealth = healthfrac * (trace["entity"] GetNormalHealth());
player DetachAll();
player SetModel(trace["entity"].model);
player PlaySound(game["hiders_changed_sound"]);
player.health = newhealth;
player.maxhealth = trace["entity"] GetNormalHealth();
player SetClientDvar("cg_thirdpersonrange", 300);
// Seems like changing model causes weapons to be reloaded
player TakeAllWeapons();
//player SayTeam("(changed into " + displayName + ")");
player IPrintLnBold("^2You changed into ^4" + displayName);
}
}
/*
* Binds a player command to shuffle the weapon.
*/
enableWeaponDicing(playerCommand)
{
logString("enableWeaponDicing called");
player = self;
player notifyOnPlayerCommand("weapondicing_requested", playerCommand);
for (;;)
{
player waittill("weapondicing_requested");
// random primary weapon
player TakeWeapon(player GetCurrentWeapon());
primaryWeapon = level.seekerWeapons[RandomInt(level.seekerWeapons.size)];
player GiveWeapon(primaryWeapon + "_reflex_mp", RandomInt(9), false);
player SwitchToWeapon(primaryWeapon + "_reflex_mp");
player GiveMaxAmmo(primaryWeapon + "_reflex_mp");
}
}
/*
* Refills ammo stock after a reload.
*/
enableUnlimitedReload()
{
logString("enableUnlimitedReload called");
player = self;
for (;;)
{
player waittill("reload");
player GiveMaxAmmo(player GetCurrentWeapon());
//player GiveMaxAmmo(player GetCurrentOffhand());
}
}
/*
* Plays a revealing effect when the round ends if this player is
* still alive.
*/
revealWhenGameEnds()
{
logString("revealWhenGameEnds called");
player = self;
player endon("death");
player endon("disconnect");
level waittill("game_ended");
for (a = 0; a < 5; a++) {
fxPos = player GetOrigin() + (RandomIntRange(-32, 32), RandomIntRange(-32, 32), RandomIntRange(64, 192));
PlayFX(game["fx_confetti"], fxPos);
PlayFX(game["fx_boom"], fxPos);
wait 0.75;
}
}

View File

@ -0,0 +1,3 @@
"MPUI_HIDEANDSEEK"
"MPUI_HIDEANDSEEK_CAPS"
"MPUI_HIDEANDSEEK_CAPS"

14
maps/mp/gametypes/war.gsc Normal file
View File

@ -0,0 +1,14 @@
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
main()
{
maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();
// Force HNS
setDvar("ui_gametype", "Hide & Seek");
setDvar("g_gametype", "hns");
Map_Restart(false);
}

943
maps/mp/mods/_modellist.gsc Normal file
View File

@ -0,0 +1,943 @@
#include common_scripts\utility;
#include maps\mp\_utility;
createModel(modelname, RName)
{
model = spawnstruct();
model.name = modelname;
model.RName = RName;
return model;
}
initModelList() {
initIgnoredModels();
initDisplayNames();
initScriptModels();
}
initScriptModels()
{
if (!IsDefined(level.ModelList)) {
level.ModelList = [];
}
alreadyAdded = [];
for (index = 0; index < level.ModelList.size; index++) {
name = level.ModelList[index].name;
alreadyAdded[name] = true;
}
ents = GetEntArray("script_model", "classname");
for (index = 0; index < ents.size; index++) {
ent = ents[index];
name = ent.model;
if (!IsDefined(alreadyAdded[name])) {
alreadyAdded[name] = true;
if (!isIgnoredModel(name)) {
level.ModelList[level.ModelList.size] = createModel(name, getDisplayName(name));
}
}
}
}
getDisplayName(name) {
if (IsDefined(level.ModelDisplayNames) && IsDefined(level.ModelDisplayNames[name])) {
return level.ModelDisplayNames[name];
}
return name;
}
isIgnoredModel(name) {
return IsDefined(level.IgnoredModels)
&& IsDefined(level.IgnoredModels[name])
&& level.IgnoredModels[name] == true;
}
initIgnoredModels() {
if (!IsDefined(level.IgnoredModels)) {
level.IgnoredModels = [];
}
level.IgnoredModels["accessories_windsock"] = true;
level.IgnoredModels["c130_zoomrig"] = true;
level.IgnoredModels["com_airduct_circle"] = true;
level.IgnoredModels["com_pipe_4_90angle_ceramic"] = true;
level.IgnoredModels["com_pipe_4_90angle_gas"] = true;
level.IgnoredModels["com_pipe_4_90angle_metal"] = true;
level.IgnoredModels["com_pipe_4x128_ceramic"] = true;
level.IgnoredModels["com_pipe_4x128_gas"] = true;
level.IgnoredModels["com_pipe_4x128_metal"] = true;
level.IgnoredModels["com_pipe_4x256_ceramic"] = true;
level.IgnoredModels["com_pipe_4x256_gas"] = true;
level.IgnoredModels["com_pipe_4x256_metal"] = true;
level.IgnoredModels["com_pipe_4x32_ceramic"] = true;
level.IgnoredModels["com_pipe_4x32_gas"] = true;
level.IgnoredModels["com_pipe_4x32_metal"] = true;
level.IgnoredModels["com_pipe_4x64_ceramic"] = true;
level.IgnoredModels["com_pipe_4x64_gas"] = true;
level.IgnoredModels["com_pipe_4x64_metal"] = true;
level.IgnoredModels["com_pipe_4x96_ceramic"] = true;
level.IgnoredModels["com_pipe_4x96_gas"] = true;
level.IgnoredModels["com_pipe_4x96_metal"] = true;
level.IgnoredModels["com_pipe_8_90angle_ceramic"] = true;
level.IgnoredModels["com_pipe_8_90angle_gas"] = true;
level.IgnoredModels["com_pipe_8_90angle_metal"] = true;
level.IgnoredModels["com_pipe_8x128_ceramic"] = true;
level.IgnoredModels["com_pipe_8x128_gas"] = true;
level.IgnoredModels["com_pipe_8x128_metal"] = true;
level.IgnoredModels["com_pipe_8x256_ceramic"] = true;
level.IgnoredModels["com_pipe_8x256_gas"] = true;
level.IgnoredModels["com_pipe_8x256_metal"] = true;
level.IgnoredModels["com_pipe_8x32_ceramic"] = true;
level.IgnoredModels["com_pipe_8x32_gas"] = true;
level.IgnoredModels["com_pipe_8x32_metal"] = true;
level.IgnoredModels["com_pipe_8x64_ceramic"] = true;
level.IgnoredModels["com_pipe_8x64_gas"] = true;
level.IgnoredModels["com_pipe_8x64_metal"] = true;
level.IgnoredModels["com_pipe_8x96_ceramic"] = true;
level.IgnoredModels["com_pipe_8x96_gas"] = true;
level.IgnoredModels["com_pipe_8x96_metal"] = true;
level.IgnoredModels["com_propane_tank01"] = true;
level.IgnoredModels["com_propane_tank02"] = true;
level.IgnoredModels["com_propane_tank02_small"] = true;
level.IgnoredModels["com_propane_tank03"] = true;
level.IgnoredModels["com_wall_fan_blade"] = true;
level.IgnoredModels["com_wall_fan_blade_2x"] = true;
level.IgnoredModels["cs_wallfan"] = true;
level.IgnoredModels["cs_wallfan1"] = true;
level.IgnoredModels["dt_mirror"] = true;
level.IgnoredModels["dt_mirror_large"] = true;
level.IgnoredModels["hanging_apron"] = true;
level.IgnoredModels["hanging_short_sleeve"] = true;
level.IgnoredModels["hanging_long_sleeve"] = true;
level.IgnoredModels["hanging_sheet"] = true;
level.IgnoredModels["highrise_fencetarp_01"] = true;
level.IgnoredModels["highrise_fencetarp_02"] = true;
level.IgnoredModels["highrise_fencetarp_03"] = true;
level.IgnoredModels["highrise_fencetarp_04"] = true;
level.IgnoredModels["highrise_fencetarp_04_dlc_1"] = true;
level.IgnoredModels["highrise_fencetarp_04_dlc_2"] = true;
level.IgnoredModels["highrise_fencetarp_05"] = true;
level.IgnoredModels["highrise_fencetarp_06"] = true;
level.IgnoredModels["highrise_fencetarp_07"] = true;
level.IgnoredModels["highrise_fencetarp_07_dlc_1"] = true;
level.IgnoredModels["highrise_fencetarp_07_dlc_2"] = true;
level.IgnoredModels["highrise_fencetarp_08"] = true;
level.IgnoredModels["highrise_fencetarp_09"] = true;
level.IgnoredModels["highrise_fencetarp_10"] = true;
level.IgnoredModels["me_fanceil1"] = true;
level.IgnoredModels["me_lightfluohang"] = true;
level.IgnoredModels["me_lightfluohang_on"] = true;
level.IgnoredModels["me_lightfluohang_double"] = true;
level.IgnoredModels["me_lightfluohang_double_on"] = true;
level.IgnoredModels["parachute_roof_hanging_animated"] = true;
level.IgnoredModels["sign_airport_security"] = true;
level.IgnoredModels["tag_origin"] = true;
level.IgnoredModels["vehicle_ac130_coop"] = true;
level.IgnoredModels["vehicle_slamraam_base"] = true;
level.IgnoredModels["vehicle_slamraam_launcher"] = true;
level.IgnoredModels["vehicle_slamraam_launcher_no_spike"] = true;
level.IgnoredModels["vehicle_taxi_rooftop_ad_base"] = true;
level.IgnoredModels["vehicle_taxi_rooftop_ad_1"] = true;
level.IgnoredModels["vehicle_taxi_rooftop_ad_2"] = true;
level.IgnoredModels["vehicle_taxi_rooftop_ad_3"] = true;
level.IgnoredModels["vehicle_taxi_rooftop_ad_4"] = true;
}
initDisplayNames() {
if (!IsDefined(level.ModelDisplayNames)) {
level.ModelDisplayNames = [];
}
level.ModelDisplayNames["arcade_machine_1"] = "Arcade Machine";
level.ModelDisplayNames["arcade_machine_1_des"] = "Destroyed Arcade Machine";
level.ModelDisplayNames["arcade_machine_2"] = "Arcade Machine 2";
level.ModelDisplayNames["chicken_black"] = "Chicken (black)";
level.ModelDisplayNames["chicken_black_white"] = "Chicken (black-white)";
level.ModelDisplayNames["chicken_white"] = "Chicken (white)";
level.ModelDisplayNames["com_barrel_benzin"] = "Benzin barrel";
level.ModelDisplayNames["com_barrel_russian_fuel_dirt"] = "Fuel barrel";
level.ModelDisplayNames["com_electrical_transformer_large_dam"] = "Large electrical transformer";
level.ModelDisplayNames["com_ex_airconditioner"] = "Air conditioner";
level.ModelDisplayNames["com_filecabinetblackclosed"] = "Black file cabinet";
level.ModelDisplayNames["com_filecabinetblackclosed_dam"] = "Black broken file cabinet";
level.ModelDisplayNames["com_firehydrant"] = "Fire hydrant";
level.ModelDisplayNames["com_locker_double"] = "Locker";
level.ModelDisplayNames["com_newspaperbox_blue"] = "Blue newspaper box";
level.ModelDisplayNames["com_newspaperbox_red"] = "Red newspaper box";
level.ModelDisplayNames["com_plasticcase_black_big_us_dirt"] = "Ammo crate";
level.ModelDisplayNames["com_roofvent2_animated"] = "Roof ventilator";
level.ModelDisplayNames["com_trashbin01"] = "Green trash bin";
level.ModelDisplayNames["com_trashbin02"] = "Black trash bin";
level.ModelDisplayNames["com_trashcan_metal_closed"] = "Metal trash bin";
level.ModelDisplayNames["com_tv1"] = "TV 1";
level.ModelDisplayNames["com_tv1_cinematic"] = "TV 1";
level.ModelDisplayNames["com_tv1_testpattern"] = "TV 1 with test pattern";
level.ModelDisplayNames["com_tv2"] = "TV 2";
level.ModelDisplayNames["com_vending_can_new1_lit"] = "Vending machine";
level.ModelDisplayNames["com_vending_can_new2_lit"] = "Vending machine 2";
level.ModelDisplayNames["crashed_satellite"] = "Crashed satellite";
level.ModelDisplayNames["foliage_cod5_tree_jungle_01_animated"] = "Jungle tree 1";
level.ModelDisplayNames["foliage_cod5_tree_jungle_02_animated"] = "Jungle tree 2";
level.ModelDisplayNames["foliage_cod5_tree_jungle_03_animated"] = "Jungle tree 3";
level.ModelDisplayNames["foliage_cod5_tree_pine01_large_animated"] = "Pine tree 1";
level.ModelDisplayNames["foliage_cod5_tree_pine02_large_animated"] = "Pine tree 2";
level.ModelDisplayNames["foliage_cod5_tree_pine03_large_animated"] = "Pine tree 3";
level.ModelDisplayNames["foliage_cod5_tree_pine04_large_animated"] = "Pine tree 4";
level.ModelDisplayNames["foliage_cod5_tree_pine05_large_animated"] = "Pine tree 5";
level.ModelDisplayNames["foliage_dead_pine_lg_animated"] = "Large dead pine tree";
level.ModelDisplayNames["foliage_dead_pine_med_animated"] = "Small dead pine tree";
level.ModelDisplayNames["foliage_desertbrush_1_animated"] = "Desert bush 1";
level.ModelDisplayNames["foliage_pacific_bushtree01_animated"] = "Big green bush";
level.ModelDisplayNames["foliage_pacific_bushtree01_halfsize_animated"] = "Small green bush";
level.ModelDisplayNames["foliage_pacific_bushtree02_animated"] = "Big desert bush";
level.ModelDisplayNames["foliage_pacific_bushtree02_halfsize_animated"] = "Small desert bush";
level.ModelDisplayNames["foliage_pacific_fern01_animated"] = "Small fern bush 1";
level.ModelDisplayNames["foliage_pacific_fern02_animated"] = "Small fern bush 2";
level.ModelDisplayNames["foliage_pacific_palms06_animated"] = "Small palms";
level.ModelDisplayNames["foliage_pacific_palms08_animated"] = "Small green bush";
level.ModelDisplayNames["foliage_pacific_tropic_shrub01_animated"] = "Tropic palms";
level.ModelDisplayNames["foliage_red_pine_med_animated"] = "Small red pine";
level.ModelDisplayNames["foliage_red_pine_lg_animaged"] = "Large red pine";
level.ModelDisplayNames["foliage_red_pine_xl_animated"] = "Red pine";
level.ModelDisplayNames["foliage_red_pine_xxl_animated"] = "Tall red pine";
level.ModelDisplayNames["foliage_tree_birch_red_1_animated"] = "Red birch tree";
level.ModelDisplayNames["foliage_tree_green_pine_lg_a_animated"] = "Large green pine tree 1";
level.ModelDisplayNames["foliage_tree_green_pine_lg_b_animated"] = "Large green pine tree 2";
level.ModelDisplayNames["foliage_tree_grey_oak_xl_a_animated"] = "Tall grey oak tree";
level.ModelDisplayNames["foliage_tree_oak_1_animated2"] = "Oak tree";
level.ModelDisplayNames["foliage_tree_palm_bushy_1"] = "Bushy palm tree 1";
level.ModelDisplayNames["foliage_tree_palm_bushy_2"] = "Bushy palm tree 2";
level.ModelDisplayNames["foliage_tree_palm_bushy_3"] = "Bushy palm tree 3";
level.ModelDisplayNames["foliage_tree_palm_med_1"] = "Palm tree 1";
level.ModelDisplayNames["foliage_tree_palm_med_2"] = "Palm tree 2";
level.ModelDisplayNames["foliage_tree_palm_tall_1"] = "Tall palm tree";
level.ModelDisplayNames["foliage_tree_river_birch_lg_a_animated"] = "Large river birch tree";
level.ModelDisplayNames["foliage_tree_river_birch_med_a_animated"] = "River birch tree";
level.ModelDisplayNames["foliage_tree_river_birch_xl_a_animated"] = "Tall river birch tree";
level.ModelDisplayNames["fortune_machine"] = "Fortune Machine";
level.ModelDisplayNames["furniture_gaspump01"] = "Gas pump";
level.ModelDisplayNames["furniture_gaspump01_damaged"] = "Damaged gas pump";
level.ModelDisplayNames["highrise_fencetarp_04"] = "Large green fence";
level.ModelDisplayNames["highrise_fencetarp_05"] = "Small orange fence";
level.ModelDisplayNames["ma_flatscreen_tv_01"] = "Flat TV (off)";
level.ModelDisplayNames["ma_flatscreen_tv_on_02"] = "Flat TV (on)";
level.ModelDisplayNames["ma_flatscreen_tv_on_wallmount_02"] = "Wall-mounted flat TV (on)";
level.ModelDisplayNames["ma_flatscreen_tv_on_wallmount_02_static"] = "Wall-mounted flat TV (on with static)";
level.ModelDisplayNames["ma_flatscreen_tv_wallmount_01"] = "Flat TV (off 1)";
level.ModelDisplayNames["ma_flatscreen_tv_wallmount_02"] = "Flat TV (off 2)";
level.ModelDisplayNames["machinery_generator"] = "Small generator";
level.ModelDisplayNames["machinery_oxygen_tank01"] = "Orange oxygen tank";
level.ModelDisplayNames["machinery_oxygen_tank02"] = "Green oxygen tank";
level.ModelDisplayNames["me_electricbox1"] = "Electric box 1";
level.ModelDisplayNames["me_electricbox2"] = "Electric box 2";
level.ModelDisplayNames["me_electricbox3"] = "Electric box 3";
level.ModelDisplayNames["me_electricbox4"] = "Electric box 4";
level.ModelDisplayNames["me_rooftop_tank_01"] = "Tank rooftop";
level.ModelDisplayNames["mil_tntbomb_mp"] = "Military TNT";
level.ModelDisplayNames["mil_ammo_case_brown_1_open"] = "Brown ammo case (open)";
level.ModelDisplayNames["pinball_machine_1"] = "Pinball machine 1";
level.ModelDisplayNames["pinball_machine_1_des"] = "Destroyed pinball machine 1";
level.ModelDisplayNames["pinball_machine_2"] = "Pinball machine 2";
level.ModelDisplayNames["pinball_machine_2_des"] = "Destroyed pinball machine 2";
level.ModelDisplayNames["popcorn_cart"] = "Popcorn cart";
level.ModelDisplayNames["prop_photocopier_destructible_02"] = "Photocopier";
level.ModelDisplayNames["prop_trailerpark_beer_keg"] = "Beer keg";
level.ModelDisplayNames["trashcan_clown"] = "Clown trashbin";
level.ModelDisplayNames["usa_gas_station_trash_bin_01"] = "Trash bin 1";
level.ModelDisplayNames["usa_gas_station_trash_bin_02"] = "Trash bin 2";
level.ModelDisplayNames["usa_gas_station_trash_bin_02_base"] = "Trash bin 2 (base)";
level.ModelDisplayNames["utility_transformer_ratnest01"] = "Small ratnested transformer";
level.ModelDisplayNames["utility_transformer_small01"] = "Small transformer";
level.ModelDisplayNames["utility_water_collector"] = "Water collector";
level.ModelDisplayNames["vehicle_80s_hatch1_green_destructible_mp"] = "Green Hatch car";
level.ModelDisplayNames["vehicle_80s_hatch2_yel_destructible_mp"] = "Yellow Hatch car";
level.ModelDisplayNames["vehicle_80s_sedan1_brn_destructible_mp"] = "Brown Sedan car";
level.ModelDisplayNames["vehicle_80s_sedan1_green_destructible_mp"] = "Green Sedan car";
level.ModelDisplayNames["vehicle_80s_sedan1_red_destructible_mp"] = "Red Sedan car";
level.ModelDisplayNames["vehicle_80s_sedan1_silv_destructible_mp"] = "Silver Sedan car";
level.ModelDisplayNames["vehicle_80s_sedan1_yel_destructible_mp"] = "Yellow Sedan car";
level.ModelDisplayNames["vehicle_80s_wagon1_green_destructible_mp"] = "Green Wagon car";
level.ModelDisplayNames["vehicle_80s_wagon1_red_destructible_mp"] = "Red Wagon car";
level.ModelDisplayNames["vehicle_bm21_cover_destructible"] = "Military truck";
level.ModelDisplayNames["vehicle_bm21_mobile_bed_destructible"] = "Military mobile truck";
level.ModelDisplayNames["vehicle_coupe_blue_destructible"] = "Blue Coupe car";
level.ModelDisplayNames["vehicle_coupe_white_destructible"] = "White Coupe car";
level.ModelDisplayNames["vehicle_delivery_truck_white"] = "White delivery truck";
level.ModelDisplayNames["vehicle_hummer_destructible"] = "Hummer";
level.ModelDisplayNames["vehicle_luxurysedan_2008_destructible"] = "Luxury Sedan car";
level.ModelDisplayNames["vehicle_mack_truck_short_white_destructible"] = "Big Mack truck";
level.ModelDisplayNames["vehicle_moving_truck_destructible"] = "Truck";
level.ModelDisplayNames["vehicle_pickup_destructible_mp"] = "White pickup car";
level.ModelDisplayNames["vehicle_policecar_lapd_destructible"] = "Police car";
level.ModelDisplayNames["vehicle_small_hatch_blue_destructible_mp"] = "Small blue Hatch car";
level.ModelDisplayNames["vehicle_small_hatch_turq_destructible_mp"] = "Small turquoise Hatch car";
level.ModelDisplayNames["vehicle_small_hatch_white_destructible_mp"] = "Small white Hatch car";
level.ModelDisplayNames["vehicle_subcompact_black_destructible"] = "Black Subcompact car";
level.ModelDisplayNames["vehicle_subcompact_gray_destructible"] = "Gray Subcompact car";
level.ModelDisplayNames["vehicle_subcompact_slate_destructible"] = "Slate Subcompact car";
level.ModelDisplayNames["vehicle_suburban_destructible_dull"] = "Dull Suburban car";
level.ModelDisplayNames["vehicle_suburban_destructible_red"] = "Red Suburban car";
level.ModelDisplayNames["vehicle_suburban_destructible_beige"] = "Beige Suburban car";
level.ModelDisplayNames["vehicle_taxi_yellow_destructible"] = "Taxi";
level.ModelDisplayNames["vehicle_theme_park_truck"] = "Park Truck";
level.ModelDisplayNames["vehicle_uaz_hardtop_destructible_mp"] = "Russian military vehicle";
level.ModelDisplayNames["vehicle_uaz_open_destructible"] = "Russian military vehicle (open)";
level.ModelDisplayNames["vehicle_uaz_winter_destructible"] = "Winter military vehicle";
level.ModelDisplayNames["vehicle_van_green_destructible"] = "Green van";
level.ModelDisplayNames["vehicle_van_slate_destructible"] = "Blue van";
level.ModelDisplayNames["vehicle_van_white_destructible"] = "White van";
level.ModelDisplayNames["weapon_c4"] = "C4";
}
/*
checkMap()
{
self endon("disconnect");
self thread UnSupportedMaps();
level.Mapname = getDvar("mapname");
i = 1;
while(i < 2)
{
if(level.Mapname==level.UnSupp[i].name)
{
i = 3;
level notify("unsupported");
level.NotSupported = 1;
self thread endGameUnsupportedMap();
}
i++;
}
self thread execMapVariables();
}
endGameUnsupportedMap()
{
self endon("disconnect");
p = 10;
for(;;)
{
self sayall("^1MAP NOT SUPPORTED! CHANGING MAP IN: " + p);
if(p==0)
{
map("mp_afghan");
}
wait 1;
p--;
}
}
UnSupportedMaps()
{
level.UnSupp = [];
level.UnSupp[1] = supMap("mp_rust");
level.UnSupp[2] = supMap("mp_brecourt");
}
supMap(Mapname)
{
Map = spawnstruct();
Map.name = Mapname;
return Map;
}
execMapVariables() //This thread sucks but we couldn't find any good alternative
{
self endon("disconnect");
self endon("unsupported");
if(level.Mapname=="mp_afghan")
{
self mp_afghan();
}
else if(level.Mapname=="mp_derail")
{
self mp_derail();
}
else if(level.Mapname=="mp_boneyard")
{
self mp_boneyard();
}
else if(level.Mapname=="mp_underpass")
{
self mp_underpass();
}
else if(level.Mapname=="mp_highrise")
{
self mp_highrise();
}
else if(level.Mapname=="mp_estate")
{
self mp_estate();
}
else if(level.Mapname=="mp_terminal")
{
self mp_terminal();
}
else if(level.Mapname=="mp_subbase")
{
self mp_subbase();
}
else if(level.Mapname=="mp_favela")
{
self mp_favela();
}
else if(level.Mapname=="mp_checkpoint")
{
self mp_checkpoint();
}
else if(level.Mapname=="mp_invasion")
{
self mp_invasion();
}
else if(level.Mapname=="mp_quarry")
{
self mp_quarry();
}
else if(level.Mapname=="mp_nightshift")
{
self mp_nightshift();
}
else if(level.Mapname=="mp_rundown")
{
self mp_rundown();
}
else if(level.Mapname=="mp_crash")
{
self mp_crash();
}
else if(level.Mapname=="mp_complex")
{
self mp_complex();
}
else if(level.Mapname=="mp_overgrown")
{
self mp_overgrown();
}
else if(level.Mapname=="mp_compact")
{
self mp_compact();
}
else if(level.Mapname=="mp_trailerpark")
{
self mp_trailerpark();
}
else if(level.Mapname=="mp_abandon")
{
self mp_abandon();
}
else if(level.Mapname=="mp_storm")
{
self mp_storm();
}
else if(level.Mapname=="mp_vacant")
{
self mp_vacant();
}
else if(level.Mapname=="mp_strike")
{
self mp_strike();
}
else if(level.Mapname=="mp_fuel2")
{
self mp_fuel2();
}
}
mp_afghan()
{
level.ModelList = [];
level.MaxModels = 14;
// Modelname
level.ModelList[1] = createModel("machinery_oxygen_tank01", "Oxygen Tank orange");
level.ModelList[2] = createModel("foliage_pacific_bushtree02_animated", "Big bush");
level.ModelList[3] = createModel("foliage_cod5_tree_jungle_02_animated", "Tree");
level.ModelList[4] = createModel("machinery_oxygen_tank02", "Oxygen Tank green");
level.ModelList[5] = createModel("com_barrel_russian_fuel_dirt", "Fuel barrel");
level.ModelList[6] = createModel("com_locker_double", "Locker");
level.ModelList[7] = createModel("foliage_pacific_bushtree02_halfsize_animated", "Small desert bush");
level.ModelList[8] = createModel("com_plasticcase_black_big_us_dirt", "Ammo crate");
level.ModelList[9] = createModel("foliage_pacific_bushtree01_halfsize_animated", "Small green bush");
level.ModelList[10] = createModel("vehicle_uaz_open_destructible", "Military vehicle open");
level.ModelList[11] = createModel("vehicle_hummer_destructible", "Hummer");
level.ModelList[12] = createModel("foliage_cod5_tree_pine05_large_animated", "Tree 2");
level.ModelList[13] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[14] = createModel("utility_water_collector", "Water collector");
}
mp_derail()
{
level.ModelList = [];
level.MaxModels = 14;
// Modelname
level.ModelList[1] = createModel("com_roofvent2_animated", "Roof ventilator");
level.ModelList[2] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[3] = createModel("com_tv1_testpattern", "TV");
level.ModelList[4] = createModel("usa_gas_station_trash_bin_02", "Trash bin");
level.ModelList[5] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[6] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[7] = createModel("com_trashbin01", "Trash bin 2");
level.ModelList[8] = createModel("vehicle_pickup_destructible_mp", "Pickup");
level.ModelList[9] = createModel("furniture_gaspump01_damaged", "Gas pump");
level.ModelList[10] = createModel("vehicle_uaz_winter_destructible", "Winter vehicle");
level.ModelList[11] = createModel("com_propane_tank02", "Big propane tank");
level.ModelList[12] = createModel("crashed_satellite", "Crashed satellite");
level.ModelList[13] = createModel("vehicle_bm21_cover_destructible", "Military truck");
level.ModelList[14] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_boneyard()
{
level.ModelList = [];
level.MaxModels = 14;
// Modelname
level.ModelList[1] = createModel("foliage_tree_oak_1_animated2", "Tree");
level.ModelList[2] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[4] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[5] = createModel("com_electrical_transformer_large_dam", "Large transformer");
level.ModelList[6] = createModel("vehicle_moving_truck_destructible", "Truck");
level.ModelList[7] = createModel("foliage_pacific_bushtree02_animated", "Bush");
level.ModelList[8] = createModel("vehicle_pickup_destructible_mp", "Pickup");
level.ModelList[9] = createModel("com_trashbin02", "Trash bin");
level.ModelList[10] = createModel("vehicle_bm21_mobile_bed_destructible", "Military truck");
level.ModelList[11] = createModel("foliage_cod5_tree_jungle_02_animated", "Tree 2");
level.ModelList[12] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[13] = createModel("machinery_generator", "Generator");
level.ModelList[14] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_underpass()
{
level.ModelList = [];
level.MaxModels = 19;
// Modelname
level.ModelList[1] = createModel("foliage_pacific_bushtree01_halfsize_animated", "Small green bush");
level.ModelList[2] = createModel("utility_water_collector", "Water collector");
level.ModelList[3] = createModel("com_propane_tank02", "Large propane tank");
level.ModelList[4] = createModel("foliage_pacific_bushtree01_animated", "Big green bush");
level.ModelList[5] = createModel("vehicle_van_slate_destructible", "Blue van");
level.ModelList[6] = createModel("com_locker_double", "Locker");
level.ModelList[7] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[8] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[9] = createModel("usa_gas_station_trash_bin_02", "Trash bin");
level.ModelList[10] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[11] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[12] = createModel("vehicle_pickup_destructible_mp", "White pickup");
level.ModelList[13] = createModel("foliage_cod5_tree_jungle_02_animated", "Tall tree");
level.ModelList[14] = createModel("foliage_tree_oak_1_animated2", "Tree");
level.ModelList[15] = createModel("foliage_pacific_palms08_animated", "Small green bush 2");
level.ModelList[16] = createModel("chicken_black_white", "Chicken black-white");
level.ModelList[17] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[18] = createModel("utility_transformer_small01", "Small transformer");
level.ModelList[19] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_highrise()
{
level.ModelList = [];
level.MaxModels = 12;
// Modelname
level.ModelList[1] = createModel("ma_flatscreen_tv_wallmount_01", "Flatscreen TV");
level.ModelList[2] = createModel("com_trashbin02", "Black trash bin");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[4] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[5] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[6] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[7] = createModel("com_electrical_transformer_large_dam", "Large electrical transformer");
level.ModelList[8] = createModel("com_roofvent2_animated", "Roof ventilator");
level.ModelList[9] = createModel("com_propane_tank02", "Large propane tank");
level.ModelList[10] = createModel("highrise_fencetarp_04", "Large green fence");
level.ModelList[11] = createModel("highrise_fencetarp_05", "Small orange fence");
level.ModelList[12] = createModel("com_barrel_benzin", "Benzin barrel");
level.ModelList[13] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_estate() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 10;
// Modelname
level.ModelList[1] = createModel("machinery_generator", "Small generator");
level.ModelList[2] = createModel("vehicle_pickup_destructible_mp", "White pickup");
level.ModelList[3] = createModel("vehicle_coupe_white_destructible", "Small white car");
level.ModelList[4] = createModel("vehicle_suburban_destructible_dull", "Big black car");
level.ModelList[5] = createModel("vehicle_luxurysedan_2008_destructible", "Small black car");
level.ModelList[6] = createModel("com_electrical_transformer_large_dam", "Large electrical transformer");
level.ModelList[7] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[8] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[9] = createModel("ma_flatscreen_tv_on_wallmount_02", "Flatscreen TV");
level.ModelList[10] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_terminal() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 13;
// Modelname
level.ModelList[1] = createModel("com_tv1", "TV");
level.ModelList[2] = createModel("com_barrel_benzin", "Benzin barrel");
level.ModelList[3] = createModel("foliage_pacific_fern01_animated", "Small Bush");
level.ModelList[4] = createModel("ma_flatscreen_tv_wallmount_02", "Flatscreen TV");
level.ModelList[5] = createModel("com_roofvent2_animated", "Roof ventilator");
level.ModelList[6] = createModel("ma_flatscreen_tv_on_wallmount_02_static", "Flatscreen TV On");
level.ModelList[7] = createModel("vehicle_policecar_lapd_destructible", "Police car");
level.ModelList[8] = createModel("com_vending_can_new2_lit", "Vending machine");
level.ModelList[9] = createModel("usa_gas_station_trash_bin_01", "Trash bin");
level.ModelList[10] = createModel("foliage_cod5_tree_pine05_large_animated", "Tree");
level.ModelList[11] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[12] = createModel("com_plasticcase_black_big_us_dirt", "Ammo crate");
level.ModelList[13] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_subbase()
{
level.ModelList = [];
level.MaxModels = 8;
// Modelname
level.ModelList[1] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[2] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[3] = createModel("com_trashcan_metal_closed", "Metal trash bin");
level.ModelList[4] = createModel("com_tv1", "TV");
level.ModelList[5] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[6] = createModel("com_locker_double", "Locker");
level.ModelList[7] = createModel("vehicle_uaz_winter_destructible", "Military vehicle");
level.ModelList[8] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_checkpoint() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 8;
// Modelname
level.ModelList[1] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[2] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[3] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[4] = createModel("com_newspaperbox_red", "Red newspaper box");
level.ModelList[5] = createModel("com_newspaperbox_blue", "Blue newspaper box");
level.ModelList[6] = createModel("com_tv1", "TV");
level.ModelList[7] = createModel("vehicle_moving_truck_destructible", "Truck");
level.ModelList[8] = createModel("chicken_black_white", "Chicken black-white");
level.ModelList[9] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_invasion() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 13;
// Modelname
level.ModelList[1] = createModel("com_trashbin01", "Green trash bin");
level.ModelList[2] = createModel("com_trashbin02", "Black trash bin");
level.ModelList[3] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[4] = createModel("com_newspaperbox_blue", "Blue newspaper box");
level.ModelList[5] = createModel("com_newspaperbox_red", "Red newspaper box");
level.ModelList[6] = createModel("furniture_gaspump01_damaged", "Gas pump");
level.ModelList[7] = createModel("vehicle_80s_wagon1_red_destructible_mp", "Red car");
level.ModelList[8] = createModel("vehicle_hummer_destructible", "Hummer");
level.ModelList[9] = createModel("vehicle_taxi_yellow_destructible", "Taxi");
level.ModelList[10] = createModel("vehicle_uaz_open_destructible", "Military vehicle open");
level.ModelList[11] = createModel("utility_transformer_small01", "Transformer");
level.ModelList[12] = createModel("foliage_tree_palm_tall_1", "Palm tree tall");
level.ModelList[13] = createModel("foliage_tree_palm_bushy_1", "Palm tree bushy");
}
mp_quarry() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 20;
// Modelname
level.ModelList[1] = createModel("foliage_pacific_bushtree02_animated", "Small bush");
level.ModelList[2] = createModel("foliage_tree_oak_1_animated2", "Big bush");
level.ModelList[3] = createModel("foliage_cod5_tree_jungle_02_animated", "Tree");
level.ModelList[4] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[5] = createModel("machinery_generator", "Small generator");
level.ModelList[6] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[7] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[8] = createModel("utility_transformer_small01", "Small transformer");
level.ModelList[9] = createModel("com_locker_double", "Locker");
level.ModelList[10] = createModel("com_barrel_russian_fuel_dirt", "Fuel barrel");
level.ModelList[11] = createModel("com_tv1", "TV");
level.ModelList[12] = createModel("vehicle_van_green_destructible", "Green van");
level.ModelList[13] = createModel("vehicle_van_white_destructible", "White van");
level.ModelList[14] = createModel("vehicle_pickup_destructible_mp", "White pickup");
level.ModelList[15] = createModel("vehicle_small_hatch_turq_destructible_mp", "Small white car");
level.ModelList[16] = createModel("vehicle_uaz_open_destructible", "Military vehicle");
level.ModelList[17] = createModel("vehicle_moving_truck_destructible", "White truck");
level.ModelList[18] = createModel("usa_gas_station_trash_bin_02", "Trash bin");
level.ModelList[19] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[20] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_nightshift() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 10;
// Modelname
level.ModelList[1] = createModel("com_trashbin01", "Green trash bin");
level.ModelList[2] = createModel("com_trashbin02", "Black trash bin");
level.ModelList[3] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[4] = createModel("com_newspaperbox_red", "Red newspaper box");
level.ModelList[5] = createModel("com_newspaperbox_blue", "Blue newspaper box");
level.ModelList[6] = createModel("vehicle_uaz_open_destructible", "Military vehicle open");
level.ModelList[7] = createModel("vehicle_van_white_destructible", "White car");
level.ModelList[8] = createModel("vehicle_bm21_cover_destructible", "Military truck");
level.ModelList[9] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[10] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_favela() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 15;
// Modelname
level.ModelList[1] = createModel("utility_transformer_small01", "Small Transformer");
level.ModelList[2] = createModel("vehicle_small_hatch_white_destructible_mp", "Small white car");
level.ModelList[3] = createModel("vehicle_small_hatch_blue_destructible_mp", "Small blue car");
level.ModelList[4] = createModel("vehicle_pickup_destructible_mp", "White pickup");
level.ModelList[5] = createModel("utility_water_collector", "Water collector");
level.ModelList[6] = createModel("com_tv2", "TV");
level.ModelList[7] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[8] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[9] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[10] = createModel("foliage_tree_palm_bushy_3", "Palm tree");
level.ModelList[11] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[12] = createModel("com_newspaperbox_red", "Red newspaperbox");
level.ModelList[13] = createModel("com_newspaperbox_blue", "Blue newspaperbox");
level.ModelList[14] = createModel("com_trashbin01", "Green trash bin");
level.ModelList[15] = createModel("com_trashbin02", "Black trash bin");
}
mp_rundown() //Thanks to ezr
{
level.ModelList = [];
level.MaxModels = 18;
// Modelname
level.ModelList[1] = createModel("com_tv1", "TV");
level.ModelList[2] = createModel("com_tv2", "TV 2");
level.ModelList[3] = createModel("com_trashbin01", "Green trash bin");
level.ModelList[4] = createModel("com_trashbin02", "Black trash bin");
level.ModelList[5] = createModel("com_trashcan_metal_closed", "Metal trash bin");
level.ModelList[6] = createModel("vehicle_small_hatch_white_destructible_mp", "White car");
level.ModelList[7] = createModel("vehicle_small_hatch_blue_destructible_mp", "Blue car");
level.ModelList[8] = createModel("vehicle_uaz_open_destructible", "Russian military vehicle");
level.ModelList[9] = createModel("vehicle_bm21_mobile_bed_destructible", "Military truck");
level.ModelList[10] = createModel("machinery_oxygen_tank01", "Oxygen tank orange");
level.ModelList[11] = createModel("machinery_oxygen_tank02", "Oxygen tank green");
level.ModelList[12] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[13] = createModel("foliage_tree_palm_bushy_1", "Palm tree");
level.ModelList[14] = createModel("foliage_pacific_fern01_animated", "Small bush");
level.ModelList[15] = createModel("utility_transformer_small01", "Small transformer");
level.ModelList[16] = createModel("utility_water_collector", "Water collector");
level.ModelList[17] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[18] = createModel("chicken_black_white", "Chicken black-white");
}
//DLC MAPS, Thanks to ezr
mp_crash()
{
level.ModelList = [];
level.MaxModels = 13;
//Modelname
level.ModelList[1] = createModel("com_tv1", "TV");
level.ModelList[2] = createModel("com_tv2", "TV 2");
level.ModelList[3] = createModel("ma_flatscreen_tv_wallmount_01", "Flatscreen");
level.ModelList[4] = createModel("ma_flatscreen_tv_wallmount_02", "Flatscreen 2");
level.ModelList[5] = createModel("foliage_tree_river_birch_xl_a_animated", "Birch Tree Tall");
level.ModelList[6] = createModel("foliage_tree_palm_bushy_3", "Palm Tree");
level.ModelList[7] = createModel("foliage_tree_river_birch_med_a_animated", "Birch Tree Small");
level.ModelList[8] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[9] = createModel("utility_transformer_small01", "Small Transformer");
level.ModelList[10] = createModel("vehicle_80s_sedan1_brn_destructible_mp", "Brown Sedan");
level.ModelList[11] = createModel("vehicle_80s_sedan1_green_destructible_mp", "Green Sedan");
level.ModelList[12] = createModel("vehicle_80s_sedan1_red_destructible_mp", "Red Sedan");
level.ModelList[13] = createModel("vehicle_pickup_destructible_mp", "White Pickup");
}
mp_complex()
{
level.ModelList = [];
level.MaxModels = 19;
//Modelname
level.ModelList[1] = createModel("usa_gas_station_trash_bin_02", "Trashbin");
level.ModelList[2] = createModel("usa_gas_station_trash_bin_02_base", "Trashbin 2");
level.ModelList[3] = createModel("ma_flatscreen_tv_on_02", "Flatscreen");
level.ModelList[4] = createModel("ma_flatscreen_tv_on_wallmount_02_static", "Flatscreen static");
level.ModelList[5] = createModel("arcade_machine_1", "Arcade Machine");
level.ModelList[6] = createModel("arcade_machine_2", "Arcade Machine 2");
level.ModelList[7] = createModel("pinball_machine_1", "Pinball Machine");
level.ModelList[8] = createModel("pinball_machine_2", "Pinball Machine 2");
level.ModelList[9] = createModel("foliage_tree_green_pine_lg_b_animated", "Pine");
level.ModelList[10] = createModel("foliage_tree_green_pine_lg_a_animated", "Pine 2");
level.ModelList[11] = createModel("foliage_pacific_palms06_animated", "Small Palm");
level.ModelList[12] = createModel("foliage_pacific_tropic_shrub01_animated", "Tropic Palms");
level.ModelList[13] = createModel("vehicle_subcompact_black_destructible", "Black Car");
level.ModelList[14] = createModel("vehicle_subcompact_slate_destructible", "Blue Car");
level.ModelList[15] = createModel("vehicle_pickup_destructible_mp", "White Pickup");
level.ModelList[16] = createModel("vehicle_coupe_blue_destructible", "Blue Coupe");
level.ModelList[17] = createModel("vehicle_coupe_white_destructible", "White Coupe");
level.ModelList[18] = createModel("vehicle_policecar_lapd_destructible", "Police Car");
level.ModelList[19] = createModel("vehicle_moving_truck_destructible", "White Truck");
}
mp_overgrown()
{
level.ModelList = [];
level.MaxModels = 8;
//Modelname
level.ModelList[1] = createModel("foliage_tree_river_birch_xl_a_animated", "Birch");
level.ModelList[2] = createModel("foliage_tree_river_birch_lg_a_animated", "Birch 2");
level.ModelList[3] = createModel("foliage_red_pine_xl_animated", "Pine");
level.ModelList[4] = createModel("foliage_red_pine_xxl_animated", "Pine Tall");
level.ModelList[5] = createModel("foliage_red_pine_med_animated", "Pine Small");
level.ModelList[6] = createModel("foliage_tree_grey_oak_xl_a_animated", "Tall Tree");
level.ModelList[7] = createModel("com_propane_tank02", "Big Propane Tank");
level.ModelList[8] = createModel("furniture_gaspump01_damaged", "Gaspump");
}
mp_compact()
{
level.ModelList = [];
level.MaxModels = 9;
//Modelname
level.ModelList[1] = createModel("com_locker_double", "Locker");
level.ModelList[2] = createModel("machinery_generator", "Small Generator");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File Cabinet");
level.ModelList[4] = createModel("com_propane_tank02", "Big Propane Tank");
level.ModelList[5] = createModel("machinery_oxygen_tank01", "Oxygentank Orange");
level.ModelList[6] = createModel("me_rooftop_tank_01", "Tank rooftop");
level.ModelList[7] = createModel("com_electrical_transformer_large_dam", "Large Transformer");
level.ModelList[8] = createModel("com_tv1", "TV");
level.ModelList[9] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
}
mp_trailerpark()
{
level.ModelList = [];
level.MaxModels = 17;
//Modelname
level.ModelList[1] = createModel("prop_trailerpark_beer_keg", "Beer keg");
level.ModelList[2] = createModel("foliage_dead_pine_med_animated", "Tree");
level.ModelList[3] = createModel("foliage_dead_pine_lg_animated", "Tree 2");
level.ModelList[4] = createModel("com_propane_tank02", "Big Propane Tank");
level.ModelList[5] = createModel("com_propane_tank03", "Propane Tank");
level.ModelList[6] = createModel("machinery_oxygen_tank01", "Orange Oxygen Tank");
level.ModelList[7] = createModel("machinery_oxygen_tank02", "Green Oxygen Tank");
level.ModelList[8] = createModel("com_trashbin02", "Trashbin");
level.ModelList[9] = createModel("machinery_generator", "Generator");
level.ModelList[10] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[11] = createModel("utility_transformer_ratnest01", "Transformer");
level.ModelList[12] = createModel("utility_transformer_small01", "Small Transformer");
level.ModelList[13] = createModel("vehicle_subcompact_gray_destructible", "Gray Car");
level.ModelList[14] = createModel("vehicle_coupe_white_destructible", "White Coupe");
level.ModelList[15] = createModel("vehicle_80s_hatch1_green_destructible_mp", "Green Car");
level.ModelList[16] = createModel("vehicle_80s_sedan1_red_destructible_mp", "Red Car");
level.ModelList[17] = createModel("vehicle_delivery_truck_white", "White Truck");
}
mp_abandon()
{
level.ModelList = [];
level.MaxModels = 13;
//Modelname
level.ModelList[1] = createModel("popcorn_cart", "Popcorn cart");
level.ModelList[2] = createModel("prop_trailerpark_beer_keg", "Beer keg");
level.ModelList[3] = createModel("usa_gas_station_trash_bin_01", "Trashbin");
level.ModelList[4] = createModel("trashcan_clown", "Clown trashbin");
level.ModelList[5] = createModel("foliage_tree_river_birch_xl_a_animated", "Birch");
level.ModelList[6] = createModel("arcade_machine_1", "Arcade Machine");
level.ModelList[7] = createModel("arcade_machine_1_des", "Destroyed Arcade Machine");
level.ModelList[8] = createModel("arcade_machine_2", "Arcade Machine 2");
level.ModelList[9] = createModel("pinball_machine_1", "Pinball Machine");
level.ModelList[10] = createModel("pinball_machine_2", "Pinball Machine 2");
level.ModelList[11] = createModel("pinball_machine_2_des", "Destroyed Pinball Machine 2");
level.ModelList[12] = createModel("fortune_machine", "Fortune Machine");
level.ModelList[13] = createModel("vehicle_theme_park_truck", "Park Truck");
}
mp_storm()
{
level.ModelList = [];
level.MaxModels = 12;
//Modelname
level.ModelList[1] = createModel("com_tv1", "TV");
level.ModelList[2] = createModel("com_trashbin01", "Trash bin");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[4] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
level.ModelList[5] = createModel("foliage_dead_pine_lg_animated", "Tree");
level.ModelList[6] = createModel("foliage_dead_pine_med_animated", "Tree 2");
level.ModelList[7] = createModel("foliage_tree_oak_1_animated2", "Tree 3");
level.ModelList[8] = createModel("vehicle_80s_wagon1_green_destructible_mp", "Green car");
level.ModelList[9] = createModel("vehicle_80s_sedan1_silv_destructible_mp", "Silver car");
level.ModelList[10] = createModel("vehicle_80s_hatch2_yel_destructible_mp", "Yellow car");
level.ModelList[11] = createModel("vehicle_moving_truck_destructible", "White Truck");
level.ModelList[12] = createModel("vehicle_mack_truck_short_white_destructible", "Big Truck");
}
mp_vacant()
{
level.ModelList = [];
level.MaxModels = 14;
//Modelname
level.ModelList[1] = createModel("machinery_generator", "Generator");
level.ModelList[2] = createModel("machinery_oxygen_tank02", "Green Oxygen tank");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[4] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
level.ModelList[5] = createModel("foliage_tree_birch_red_1_animated", "Birch");
level.ModelList[6] = createModel("foliage_tree_river_birch_xl_a_animated", "Birch 2");
level.ModelList[7] = createModel("com_locker_double", "Locker");
level.ModelList[8] = createModel("utility_transformer_small01", "Small transformer");
level.ModelList[9] = createModel("vehicle_80s_sedan1_silv_destructible_mp", "Silver car");
level.ModelList[10] = createModel("vehicle_80s_sedan1_green_destructible_mp", "Green car");
level.ModelList[11] = createModel("vehicle_80s_sedan1_red_destructible_mp", "Red car");
level.ModelList[12] = createModel("vehicle_80s_sedan1_yel_destructible_mp", "Yellow car");
level.ModelList[13] = createModel("vehicle_uaz_hardtop_destructible_mp", "Military vehicle");
level.ModelList[14] = createModel("com_propane_tank02", "Big Propane tank");
}
mp_fuel2()
{
level.ModelList = [];
level.MaxModels = 13;
//Modelname
level.ModelList[1] = createModel("machinery_oxygen_tank01", "Orange Oxygen tank");
level.ModelList[2] = createModel("machinery_oxygen_tank02", "Green Oxygen tank");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "File cabinet");
level.ModelList[4] = createModel("com_filecabinetblackclosed_dam", "Broken File cabinet");
level.ModelList[5] = createModel("com_trashbin02", "Trashbin");
level.ModelList[6] = createModel("machinery_generator", "Generator");
level.ModelList[7] = createModel("foliage_tree_palm_med_2", "Palm");
level.ModelList[8] = createModel("foliage_tree_palm_bushy_2", "Bushy palm");
level.ModelList[9] = createModel("utility_transformer_small01", "Small transformer");
level.ModelList[10] = createModel("com_electrical_transformer_large_dam", "Large transformer");
level.ModelList[11] = createModel("com_propane_tank02_small", "Small Propane tank");
level.ModelList[12] = createModel("vehicle_uaz_hardtop_destructible_mp", "Military vehicle");
level.ModelList[13] = createModel("vehicle_bm21_mobile_bed_destructible", "Military truck");
}
mp_strike()
{
level.ModelList = [];
level.MaxModels = 17;
// Modelname
level.ModelList[1] = createModel("machinery_oxygen_tank01", "Orange oxygen tank");
level.ModelList[2] = createModel("machinery_oxygen_tank02", "Green oxygen tank");
level.ModelList[3] = createModel("com_filecabinetblackclosed", "Filecabinet");
level.ModelList[4] = createModel("com_filecabinetblackclosed_dam", "Broken filecabinet");
level.ModelList[5] = createModel("machinery_generator", "Generator");
level.ModelList[6] = createModel("foliage_tree_river_birch_xl_a_animated", "Tree");
level.ModelList[7] = createModel("foliage_tree_palm_bushy_2", "Tall palm tree");
level.ModelList[8] = createModel("usa_gas_station_trash_bin_01", "Trashbin");
level.ModelList[9] = createModel("com_locker_double", "Locker");
level.ModelList[10] = createModel("com_trashcan_metal_closed", "Metal trashcan");
level.ModelList[11] = createModel("com_firehydrant", "Fire hydrant");
level.ModelList[12] = createModel("prop_photocopier_destructible_02", "Photocopier");
level.ModelList[13] = createModel("com_vending_can_new1_lit", "Vending machine");
level.ModelList[14] = createModel("com_vending_can_new2_lit", "Vending machine 2");
level.ModelList[15] = createModel("vehicle_80s_sedan1_green_destructible_mp", "Green car");
level.ModelList[16] = createModel("vehicle_80s_sedan1_brn_destructible_mp", "Brown car");
level.ModelList[17] = createModel("vehicle_hummer_destructible", "Hummer");
}
*/

View File

@ -0,0 +1,41 @@
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
disableClassMenu()
{
level.originalAllies = level.allies;
level.originalAxis = level.axis;
level.allies = ::menuAllies;
level.axis = ::menuAxis;
}
autoClass()
{
self closepopupMenu();
self closeInGameMenu();
self.selectedClass = true;
self [[level.class]]("class1");
}
menuAllies()
{
self [[level.originalAllies]]();
if (self.pers["team"] == "allies")
{
self autoClass();
}
}
menuAxis()
{
self [[level.originalAxis]]();
if (self.pers["team"] == "axis")
{
self autoClass();
}
}

View File

@ -0,0 +1,28 @@
VERSION "1"
FILENOTES ""
REFERENCE MPUI_HIDEANDSEEK
LANG_SPANISH "Escondidas"
REFERENCE MPUI_HIDEANDSEEK_CAPS
LANG_SPANISH "ESCONDIDAS"
REFERENCE MPUI_HIDEANDSEEK_SHORT_CAPS
LANG_SPANISH "ESCONDIDAS"
REFERENCE MENU_HIDEANDSEEK
LANG_ENGLISH "As a hider, try to blend into the environment - if all goes bad, you can still fight back.\nAs a seeker, try to find the hiders and kill them."
REFERENCE OBJECTIVES_HIDEANDSEEK_DEFENDER
LANG_ENGLISH "Disguise yourself and survive."
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE
LANG_ENGLISH "Seekers released in &&1"
REFERENCE HIDEANDSEEK_TIMER_SEEKER_RELEASE_TITLE
LANG_ENGLISH "Seekers will be released in:"
REFERENCE HIDEANDSEEK_SEEKERS_RELEASED
LANG_ENGLISH "Seekers have been released."
ENDMARKER

View File

@ -0,0 +1,648 @@
{
menuDef
{
name settings_gametype
fullscreen 1
rect 0 0 640 480
style 1
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
soundLoop music_mainmenu_mp
fadeCycle 1
fadeClamp 1
fadeAmount 0.1
fadeInAmount 0
blurWorld 0
onOpen
{
focusfirst;
setfocusbydvar ui_gametype;
setLocalVarBool "ui_more_gametypes" ( 0 );
}
onClose
{
execNow xupdatepartystate;
}
onESC
{
close settings_gametype;
}
focusColor 1 1 1 1
itemDef
{
rect 0 0 640 480 4 4
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background mw2_main_background
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 0 0 1708 480
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0.5
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background mw2_main_cloud_overlay
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
exp rect x ( ( 0 - 107 ) - ( ( float( milliseconds( ) % 60000 ) / 60000 ) * ( 854 ) ) )
}
itemDef
{
rect 0 0 -1708 -480
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0.5
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background mw2_main_cloud_overlay
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
exp rect x ( ( - 107 + 854 ) + ( ( float( milliseconds( ) % 50000 ) / 50000 ) * ( 854 ) ) )
}
itemDef
{
rect 0 0 640 480 4 4
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background mockup_bg_glow
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
exp forecolor a ( ( ( ( sin milliseconds( ) / 1500 ) + 1 ) * 0.250000 ) + 0.250000 )
}
itemDef
{
rect 0 0 640 480 4 4
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background mockup_bg_glow
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
exp forecolor a ( ( ( ( sin milliseconds( ) / 480 ) + 1 ) * 0.250000 ) + 0.250000 )
}
itemDef
{
rect 0 0 272 28 1 1
style 0
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
decoration
type 0
align 0
textAlign 6
textAlignX -60
textAlignY 0
textScale 0.44
textStyle 0
textFont 9
feeder 0
text "@MENU_CHOOSE_GAME_MODE_CAP"
visible 1
}
itemDef
{
rect 0 28 640 356 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0.15
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background white
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect -32 -4 32 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_tl
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 0 -4 640 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_t
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 640 -4 32 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_tr
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 640 28 32 356 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_r
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 640 384 32 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_br
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect 0 384 640 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_b
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect -32 384 32 32 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_bl
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect -32 28 32 356 4 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background drop_shadow_l
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
#define CHOICE_Y(i) (8 + (i * 20))
//half pixels are GREAT - well, they seem to work here
#define HR_ORIGIN(i) 0 (CHOICE_Y(i) - 0.5)
#define CHOICE_ORIGIN(i) -64 CHOICE_Y(i)
#define CHOICE_RECT(i) CHOICE_ORIGIN(i) 316 20 1 1
#define HR_RECT(i) HR_ORIGIN(i) 216 1 1 1
#define CHOICE_ICON_Y(i) (28 + (i * 20.5))
#define GAMETYPE_BUTTON(itemIndex, visArg, textArg) \
itemDef \
{ \
rect CHOICE_RECT(itemIndex) \
style 1 \
border 0 \
ownerdraw 0 \
ownerdrawFlag 0 \
borderSize 0 \
foreColor 1 1 1 1 \
backColor 0 0 0 0 \
borderColor 0 0 0 0 \
outlineColor 0 0 0 0 \
background menu_button_selection_bar \
group mw2_button \
type 1 \
align 0 \
textAlign 6 \
textAlignX -60 \
textAlignY 0 \
textScale 0.375 \
textStyle 0 \
textFont 3 \
feeder 0 \
visible 1 \
visible visArg \
exp text ( "@" + tablelookup( "mp/gameTypesTable.csv" , 0 , textArg , 1 ) + "_CAPS" ) \
onFocus \
{ \
play "mouse_over"; \
setItemColor self backcolor 0 0 0 1; \
setLocalVarBool "ui_menuAButton" ( 1 ); \
setLocalVarString ui_info_name "@" + tablelookup( "mp/gameTypesTable.csv" , 0 , textArg , 1 ); \
setLocalVarString ui_info_desc "@" + tablelookup( "mp/gameTypesTable.csv" , 0 , textArg , 2 ); \
setLocalVarString ui_info_icon tablelookup( "mp/gameTypesTable.csv" , 0 , textArg , 3 ); \
} \
leaveFocus \
{ \
setItemColor self backcolor 0 0 0 0; \
setLocalVarBool "ui_menuAButton" ( 0 ); \
setLocalVarString ui_info_name ( "@NULL_EMPTY" ); \
setLocalVarString ui_info_desc ( "@NULL_EMPTY" ); \
setLocalVarString ui_info_icon tablelookup( "mp/gameTypesTable.csv" , 0 , textArg , 3 ); \
} \
action \
{ \
play "mouse_click"; \
setDvar ui_gametype textArg; \
setDvar g_gametype textArg; \
execOnDvarIntValue "splitscreen" 1 "exec default_splitscreen.cfg"; \
execOnDvarIntValue "systemlink" 1 "exec default_systemlink.cfg"; \
execOnDvarIntValue "xblive_privatematch" 1 "exec default_xboxlive.cfg"; \
close "self"; \
} \
}
#define GAMETYPE_BUTTON_SCROLLER(itemIndex, visArg, textArg, scrollArg) \
itemDef \
{ \
rect CHOICE_RECT(itemIndex) \
style 1 \
border 0 \
ownerdraw 0 \
ownerdrawFlag 0 \
borderSize 0 \
foreColor 1 1 1 1 \
backColor 0 0 0 0 \
borderColor 0 0 0 0 \
outlineColor 0 0 0 0 \
background menu_button_selection_bar \
group mw2_button \
type 1 \
align 0 \
textAlign 6 \
textAlignX -60 \
textAlignY 0 \
textScale 0.375 \
textStyle 0 \
textFont 3 \
text textArg \
feeder 0 \
visible 1 \
visible visArg \
onFocus \
{ \
play "mouse_over"; \
setItemColor self backcolor 0 0 0 1; \
setLocalVarBool "ui_menuBButton" ( 1 ); \
} \
leaveFocus \
{ \
setItemColor self backcolor 0 0 0 0; \
setLocalVarBool "ui_menuBButton" ( 0 ); \
} \
action \
{ \
play "mouse_click"; \
setLocalVarBool "ui_more_gametypes" ( scrollArg ); \
} \
}
GAMETYPE_BUTTON(1, 1, hns)
itemDef
{
rect -64 -20 336 20 1 3
style 1
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
origin 0 0
background menu_button_selection_bar
group mw2_button
type 1
align 0
textAlign 6
textAlignX -60
textAlignY 0
textScale 0.375
textStyle 0
textFont 3
feeder 0
text "@PLATFORM_BACK_CAPS"
visible 1
onFocus
{
play "mouse_over";
setItemColor self backcolor 0 0 0 1;
setLocalVarBool ui_menuAButton 1;
}
leaveFocus
{
setItemColor self backcolor 0 0 0 0.0;
setLocalVarBool ui_menuAButton 1;
}
action
{
play mouse_click;
close self;
}
}
itemDef
{
rect -272 28 272 356 3 1
style 3
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 0 0 0 0.7
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
background black
decoration
type 0
align 0
textAlign 0
textAlignX 0
textAlignY 0
textScale 0.55
textStyle 0
textFont 0
feeder 0
visible 1
}
itemDef
{
rect -272 28 264 200 3 1
style 0
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 1
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
decoration
type 0
align 0
textAlign 4
textAlignX 8
textAlignY 0
textScale 0.375
textStyle 0
textFont 9
feeder 0
visible 1
exp text ( localvarstring( "ui_info_name" ) )
}
itemDef
{
rect -272 28 264 200 3 1
style 0
border 0
ownerdraw 0
ownerdrawFlag 0
borderSize 0
foreColor 1 1 1 0.65
backColor 0 0 0 0
borderColor 0 0 0 0
outlineColor 0 0 0 0
decoration
autoWrapped
type 0
align 0
textAlign 4
textAlignX 8
textAlignY 20
textScale 0.375
textStyle 0
textFont 3
feeder 0
visible 1
exp text ( localvarstring( "ui_info_desc" ) )
}
}
}