PX RR
On this tutorial, I will show you how to create various traps for PX maps. As an example, I will demonstrate some of the traps used in the PX Rope Race map bundled with the release of 0.8.0. (You can find it here.)
What's the Map Editor ?
The Map Editor is not intended as a graphics tool to build maps in. Paint will do this job for you, though more accomplished mappers would usually recommend a more powerful and extensive image manipulation program such as Gimp or Photoshop for this purpose).
MEd allows adding complex objects (or entities) on a specified map, like spawnpoints, teleports, gravity fields and much more.
For an easier understanding of this tutorial, it's recommended to play through the map in question prior to reading.
Using the map editor
Setting up
First, go to Worms Armageddon\Editors and open MEd.exe.
Now open your map. Note that full-colour 32-bit pngs are supported and look a lot better compared to 24-bit.
I'm getting Access violation error. What should I do ?
Make sure your map doesn't have a transparency channel. if the problem persists, you can report it and get help here.
Libraries
0.8.0 comes with many libraries for maps of this kind. They allow you to add premade objects on the map. To add libraries, open Scripts -> Libraries.
There you should have a small menu with the list of libraries you have in your Libs folder. Note that not all libraries have objects.
You will need various libraries for this PX RR.
editorsobj.pxl
This library adds simple objects to the map.
- Barrels
- Mines
- Spawnpoints, used for automatic placement on races or forts
- ObjectCleaner, used to remove objects in a specified zone. For example, it could be used to remove mines on spawnpoints.
If you add mines or barrels on the map, the game won't replace the randomly spawned ones. The objects are added.
turret.pxl
This library adds the Mine Turret object. This Turret only attacks moving players, even when they're using the rope. It will not shoot at idle worms.
The mines it launches always explode instantly on contact, meaning players must be quick to avoid them.
Not easy to beat, heh.
traps.pxl
This library is used to create several kinds of traps among other things.
- Zone is used to specify the exact area where your traps should be activated. It's a quad.
- Trap launches grenades, missiles, mortars or bazookas when a worm enters a specified zone.
- Game Control is not an object. It can be placed anywhere on the map and is used to change specific things in the game. --ADD EXAMPLE HERE--
There are two kinds of checkpoints:
- Worms Supply is used to spawn a new worm when a player reaches the checkpoint
- WormsCheckpoint will respawn a player's worm where it is placed if the worm dies
- Teleport works like a portal. It teleports objects and worms to a corresponding teleport.
- Force Field is used for gravity, wind, and also for explosive surfaces.
- CrateSupply is used to spawn crates at specified points of the map.
timedrace.pxl
This library adds a timer to determine the results of races. It appears on the buttom left of the screen. The timer stops when the player reaches the finish.
It adds 2 objects :
- RaceControl, which can change the timer parameters.
- Finish.
The timer should look like this :
partTraps.pxl
partTraps or Particles Traps adds a smoke trap which which creates a mass of smoke particles, concealing an area for a limited time.
Adding Objects
On the left side of the editor, you have a menu in which you can create new objects, change their parameters or copy them.
After creating an object, your entity should appear on the map.
Let's suppose you want to create a mine on the lava in this map.
Simply select Mines and click on "CREATE".
A mine should appear in the top left of the Editor. Place it on the lava with your mouse.
Changing objects parameters
Each object has its own parameters. The parameters are values which are used to change the object. On the mine, we have 5 parameters.
- Damage is the power of the explosion. The default value is 50.
- Fuse is the time (in milliseconds) before the mine explodes when a worm triggers it. The default value is 1000.
- The radius is the maximum distance between the worm and the mine that could cause the explosion. The default value is 60.
- Floating is a bool, means this parameter can have only 2 values. If checked, gravity is ignored for the mine. Default value is false.
- RespawnTime is the number of time (in milliseconds) before the mine respawns. If the value is 0, the mine won't respawn. Default value is 0
Parameters type
There are 4 different types of parameters :
- Boolean : a parameter that can have only 2 values. To change their values, you can check or uncheck them, for example :
When a boolean is checked, we say this boolean is true. Otherwise we say it's false.
- Integer : a parameter with an Integer number.
- Linked : a parameter allowing an object to link another one. For example, the zone parameter of the Trap object to set the zone where the trap will be activated.
- Other
Explosive Rope Race Example
I'll now show you how I placed the traps on the PX RR map linked above.
Controls
Before anything else, you have to place controls on the map. You have 2 game controls : GameControl and RaceControl.
You can place it anywhere on the map, but I recommend you place it near the spawnpoint, so you won't have to search for it in case you want to change any parameter.
GameControl traps.pxl
The parameters on this object are unrelated to racing, but they're still useful. You have 7 parameters :
- NoWind boolean : Wind is disabled when this parameter is true. You should check it on a race map because some traps can be affected by the wind.
- NoWaiting boolean : Used if you have anything in your map that could pause the game for a long time. Imagine that a worm is being continually damaged with an explosive wall and another player goes near this worm; they will be hit by the explosion. That's why it is disabled on this map.
- Force Health Integer : Use this to force the health of all the worms according to the difficuly of the map.
- EnableRespawn boolean : Enables or disables respawns. On this map, the value of this is true.
- RespawnDelay Integer : Number of turns before a worm respawns. For instant respawn, set the value to 0.
- Lifes Integer : Number of times a worm can respawn. Set this to 1 if you want infinite life.
- MaxHealth Integer : Not used on races. The max health of a worm, if you want to prevent them from having too much health from health crates, for example.
RaceControl timedrace.pxl
Finish object must be added if you want to use this object!
We have 2 parameters on racecontrol :
- DeathPenality : Integer : Number of time (in seconds) added as a penality for a team when one worm dies.
- WinnerOnly Boolean : When this value is true and a team is the first to reach the end, the other teams die.
Now that controls are ready, let's place objects on the map!
Spawnpoints traps.pxl
Instead of manually teleporting the worms to the start, they will spawn automatically with this object.
Parameters
There are 4 parameters :
- FromWorm and ToWorm (both Integer ) : Number of worms that will spawn.
- OffsetPerWorm Integer : Number of pixels between 2 worms on spawnpoint. Set this value to 0 when the spawn area is small.
Let's suppose we have 3 worms spawning.
When the value is 18 :
And when it's set to 0 :
- Team Integer : The team that will spawn on this spawnpoint. If all the teams have to spawn (like on this RR), set the value to 0.
How to place it
Don't place spawnpoints like so :
Add a small space between the object and the ground :
Mines editorsobj.pxl
We have 2 identical mines on this map :
They instantly explode and respawn each turn.
- Damage and radius are using the default values.
- Fuse is set to 100. (100 milliseconds counts as instant for this purpose.)
- Floating is set to false.
- RespawnTime to 0.
In this case, you could copy the first mine instead of creating a new one, in order to place the second one. Just select the mine and click on COPY .
Explosive walls traps.pxl
We have many explosives surfaces (the white walls) on this map.
Explosive walls use the ForceField object.
Parameters
- ForceY and ForceX (both Integer ) : set those parameters to 0, I'll cover them later.
- ExplodeObjects Boolean : this parameter must be set to true for Explosive Walls.
- EachNFrame Integer : set this to 2.
- ExplosionDmg and ExplosionPush (both Integer ) : how big the explosion is.
- Size Other : where the explosion happens.
How to place them
You can place them with Size parameter.
The explosive walls should be placed where the worm should take damage, and not on the wall itself. For example :
And NOT :
High Gravity traps.pxl
High Gravity also uses ForceField object.
Ignore all parameters except ForceY and Size .
- ForceY Integer : more ForceY increases gravity.
- Size Other : the zone in which the trap is enabled.
Place it with Size parameter :
Wind traps.pxl
Wind works exactly like High Gravity.
To set a specified wind use the ForceX parameter. Set the value of ForceX to a negative value for left wind, positive for right. There is no limit for the parameter itself, but when it reaches a certain value in either direction the wind meter will be maxed out.
Bazooka trap traps.pxl
Placing the zone
First you have to create the zone where the trap is activated. Not so hard.
- Use the Zone object. Place it with Size parameter like that :
- ActiveWormOnly Boolean should be true, or projectile traps will shoot idle worms.
Placing the trap
Place the Trap object like this :
You have 11 parameters :
- Type other : the projectile launched by the trap. For this trap, I used the Bazooka's rocket.
- Angle Integer : the angle of the trap.
- Force Integer : this value is not the explosion's size, but the force with which the projectile is launched. Give 1,000 a try...(Note: values above 32768 will cause an integer overflow)
- Spread Integer : spread randomizes the angle and force a bit in order to have different shots.
- Delay Integer : time in game ticks between the launch of each projectile. (1 game tick = 20 milliseconds)
- ShootDelay Integer : time in game ticks before the trap opens fire.
- GrenadeTime Delay Integer : time in millseconds before the projectile explodes if Type is set to Grenade.
- ProximityZone Linked : the zone where the trap is activated. (Select the zone you just created.)
Checkpoint traps.pxl
We have a few checkpoints on the map.
How do they work ?
Basically, when a worm dies, he respawns to his last checkpoint and gets a penality of 10 seconds.
First, let's place a checkpoint on the start.
Use the zone object.
There you have to set the place where the worm respawns. Use WormCheckpoint .
You have 2 parameters :
- ProximityZone Linked : The Zone of the checkpoint.
- Order Integer : Order of the checkpoint. Since it's the checkpoint of the start, set this value to 1.
Checkpoints have to be placed exactly like Spawnpoints
Now place the other checkpoints and respect the order !
Missiles traps.pxl
Missiles work exactly like the Bazooka trap. You just have to select HomingMissile on the Type parameter.
Mines Turret turret.pxl
Mines Turret are the easiest thing to place on a PX RR.
It has 4 parameters :
- Invincible Boolean : when this value is set to false, the turret can be destroyed.
- Mounted Boolean : prevents turret from moving
- CleanMines Boolean : when this value is true, the mines launched are destroyed in the end of the turn.
- AmmoPerTurn Integer : the number of mines that can be launched in a turn. Set this value to something like 9999 for infinite ammo.
Note that the Turret's sprite on the Map Editor is not the in-game sprite
Mines Room turret.pxl - editorsobj.pxl
The Mines Room is a room with floating mine and a Turret.
All the mines on this room are similar!
You have to set Floating to true and RespawnTime to 30 (to make it harder!). Use COPY instead of creating new mines each time.
Bad Sphere traps.pxl
The Bad Sphere uses the Trap object.
How does the Bad Sphere work?
TODO : EXPLAIN BAD SPHERE
This tutorial brought to you by Meta and Undefined (Immortal)