MBHaxe/data/multiplayer/hunt/custom/ExampleMission.mis
2024-06-16 00:53:57 +05:30

304 lines
12 KiB
Text

// ***** Level builder, look here! *****
//
// Look for the line below that contains "new ScriptObject(MissionInfo) {", and
// the nextmost line with just "};".
//
// Between these lines are the key level properties you can change!
//
// To change a property's value, change ONLY the text inside a line's pair of quotes.
// For example, to change the level's name to My Great Level, change:
// name = "Mission Template";
// to
// name = "My Great Level";
//
// Below are descriptions of each of the possible properties you can change:
// name - your level's name on the level selection screen
// type - leave this
// level - the nth level in the level selection screen, eg. 5
// desc - a brief description shown on the level selection screen
// startHelpText - the text displayed when you initially spawn
// artist - your name shown on the level selection screen
// music - which .ogg file to play for your level (blank = random)
// gamemode - must be "hunt" for hunt levels, or "free" for free world levels
// game - leave this
// time - the level's play time in milliseconds (1000ms = 1 second)
// maxGemsPerSpawn - the maximum number of gems to spawn for a GemSpawn
// radiusFromGem - the maximum radius for spawned gems from the center gem
// gemgroups - whether this level spawns gem groups (0 = no groups, 1 = groups, 2 = random in groups)
// score[0] - the level's qualify/par score for versus mode (more than 1 player)
// score[1] - the level's qualify/par score for practice mode (1 player)
// platinumScore[0] - the level's platinum score for versus mode
// platinumScore[1] - the level's platinum score for practice mode
// ultimateScore[0] - the level's ultimate score for versus mode
// ultimateScore[1] - the level's ultimate score for practice mode
// alarmStartTime - when the "you have xx seconds left" alert appears
// overviewHeight - an adjustment to the height of the pregame overview screen
//
// One last thing (before the actual level code starts) - if you're releasing your level, feel free to delete
// this section of lines prefixed with // (so don't delete the '//--- OBJECT WRITE BEGIN ---' line).
//
// Have fun creating your level!
// - the Platinum Team
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
//These are the values you can change
new ScriptObject(MissionInfo) {
name = "Example Mission";
type = "Custom";
level = "1";
desc = "An example level which includes notes on all the ingame elements added in MultiPlayer.";
startHelpText = "Press F11 to open the level editor. Select any item to read notes on how to use it.";
artist = "HiGuy";
music = "Tim Trance.ogg";
Gamemode = "Hunt";
game = "Custom";
time = "600000";
maxGemsPerSpawn = "6";
radiusFromGem = "25";
gemGroups = "0";
score[0] = "0";
score[1] = "0";
platinumScore[0] = "0";
platinumScore[1] = "0";
ultimateScore[0] = "0";
ultimateScore[1] = "0";
alarmStartTime = "25";
overviewHeight = "15";
};
//Ends here
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun(Sun) {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape(SkySphere) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1000 1000 1000";
dataBlock = "Dusk";
};
new Trigger(Bounds) {
position = "-10 10 -1";
rotation = "1 0 0 0";
scale = "20 20 1000";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "Bounds triggers generally have a height of 1000 (virtually unlimited) to replicate MBUltra\'s bounds triggers.";
};
new SimGroup(Platforms) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new InteriorInstance() {
position = "0.125 -0.125 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-5.375 -5.625 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "0.125 5.375 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "5.625 5.375 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-5.375 5.375 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-5.375 -0.125 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "5.625 -0.125 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "5.625 -5.625 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "0.125 -5.625 -0.125";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/smallplatform.dif";
showTerrainInside = "0";
};
};
new SimGroup(SpawnTriggers) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new Trigger(BasicSpawnTrigger) {
position = "0 0 0.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "For a spawn point, just place a basic spawn trigger. Players will spawn 3 units above the trigger\'s (+x, -y, -z) corner.";
};
new Trigger(CenterSpawnTrigger) {
position = "-0.5 0.5 0.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "Defining the \"center\" field as 1 will spawn the player in the trigger\'s wiremesh center, rather than in the corner.";
center = "1";
};
new Trigger(AddSpawnTrigger) {
position = "0 0 3.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "The \"add\" parameter allows you to customize where the player will spawn in relation to the triggers (+x, -y, -z) corner";
add = "0 0 0";
};
};
new SimGroup(Gems) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new Item(RedGem) {
position = "-5.5 5.5 0.3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item(YellowGem) {
position = "0 5.5 0.3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
note = "For a yellow (2 point) gem, use GemItemYellow instead of GemItemRed.";
};
new Item(BlueGem) {
position = "5.5 5.5 0.3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
note = "Blue gems (5 points) are placed in the same way as a yellow gem, but with GemItemBlue instead of GemItemYellow.";
};
};
new SimGroup(PowerUps) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new Item(MegaMarblePowerUp) {
position = "-5.5 0 0.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Mega marbles are just simple PowerUp items like any other.";
};
new Item(BlastPowerUp) {
position = "5.5 0 0.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Blast items are basic PowerUps and can be placed like any other PowerUp.";
};
};
new SimGroup(Skies) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new StaticShape(ExampleSky1) {
position = "-5.5 -5.5 1.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "Dusk";
note = "These example SkySpheres are the three official skies you can choose from. Simply place one at the origin with a scale of \"1000 1000 1000\" to make it your SkySphere.";
};
new StaticShape(ExampleSky2) {
position = "0 -5.5 1.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "clear";
note = "These example SkySpheres are the three official skies you can choose from. Simply place one at the origin with a scale of \"1000 1000 1000\" to make it your SkySphere.";
};
new StaticShape(ExampleSky3) {
position = "5.5 -5.5 1.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "Wintry";
note = "These example SkySpheres are the three official skies you can choose from. Simply place one at the origin with a scale of \"1000 1000 1000\" to make it your SkySphere.";
};
};
};
//--- OBJECT WRITE END ---