Initial commit.
commit
20c73de7a5
|
@ -0,0 +1,4 @@
|
||||||
|
demos/
|
||||||
|
*.log
|
||||||
|
*.log.???
|
||||||
|
missingasset.csv
|
|
@ -0,0 +1,2 @@
|
||||||
|
a0,b1,c2,d3
|
||||||
|
hns,MPUI_HIDEANDSEEK,MENU_HIDEANDSEEK,weapon_missing_image
|
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1 @@
|
||||||
|
hns
|
|
@ -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);
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
"MPUI_HIDEANDSEEK"
|
||||||
|
"MPUI_HIDEANDSEEK_CAPS"
|
||||||
|
"MPUI_HIDEANDSEEK_CAPS"
|
|
@ -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);
|
||||||
|
}
|
|
@ -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");
|
||||||
|
}
|
||||||
|
*/
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
|
@ -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" ) )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue