HOW TO CREATE REAL SINGLE PLAYER CAMPAIGNS & MISSIONSSince the last guide was from 2001 (made by WhiteHammer and thank him for that) and has either been lost or was left incomplete, I decided it is about time to have a new guide about creating TAK single player campaigns.
Things we need to create our own campaigns:
1) Cartographer (sometimes optional) to create the map along with its basic features.
2) HPI view to extract the map we have created with the cartographer.
3) Notepad to open the OTA, TDF and text document files.
4) HPI Pack to package our stuff as an HPI file.
5) TAKSwitcer to run our campaign.
TUTORIAL OF CREATING A SINGLE CAMPAIGN MISSION:* Select an existing map you like (eg. in our case, I select Valysia City, it is a map you surely have) from your maps folder.
* Open the map via the Cartographer, go to "Scenario", then to "Use only...".
* Remove the "Use all units" option and remove any units you you don't want or need in your mission (in our case we will remove Trebuchets).
* Place any units you want pre-placed to your campaign. In our case, go to "Aramon" folder, then to "Units" folder and select Elsin.
* Place Elsin by clicking somewhere near player 1 starting position.
* Right click Elsin and select "Unit Properties...".
* Write down on a paper the X Pos, Y Pos and Z Pos of Elsin (you are going to need them later).
* On the topleft of the Cartographer select "Player 2" instead of "Player 1", go to "Taros" folder, then to "Units" folder, select Lokken (either one) and place him by clicking somewhere near player 2 starting position.
* Right click Lokken, select "Unit Properties..." and write down on a paper the X Pos, Y Pos and Z Pos of Lokken (you are going to need them later).
* Save the map as "Mission1" (or whatever) and close the Cartographer.
* Open the HPI View.
* In the HPI View, go to "File" and select "Open HPI File". Select the "Mission1" map and press ok.
* After opening the map file, go to "File" and select "Extract All". Select the directory you wish to extract the kmap folder.
* Close HPI View and open the extracted kmap folder. It includes a security certificate, an OTA, TNT, TDF and a text file.
* Delete the Security Certificate (it is just not needed anymore) and open the OTA file via Notepad. It will look something like this:
- Spoiler:
[GlobalHeader]
{
Copyright=Copyright 1998 Cavedog Entertainment. All rights reserved.;
missionname=Valysia City;
missiondescription=15 x 15, 2-8 players, 96MB;
kingdom=veruna;
numplayers=8;
size=15 x 15;
memory=32 MB;
hasscenario=0;
[Map Data]
{
Type=Network 1;
aiprofile=DEFAULT;
[specials]
{
[special0]
{
specialwhat=StartPos1;
XPos=86;
ZPos=91;
}
[special1]
{
specialwhat=StartPos2;
XPos=439;
ZPos=454;
}
[special2]
{
specialwhat=StartPos3;
XPos=463;
ZPos=31;
}
[special3]
{
specialwhat=StartPos4;
XPos=205;
ZPos=387;
}
[special4]
{
specialwhat=StartPos5;
XPos=23;
ZPos=248;
}
[special5]
{
specialwhat=StartPos6;
XPos=235;
ZPos=125;
}
[special6]
{
specialwhat=StartPos7;
XPos=442;
ZPos=301;
}
[special7]
{
specialwhat=StartPos8;
XPos=89;
ZPos=251;
}
}
}
}
* Change the OTA file like the spoiler below and save any changes
(stuff after the // symbols are just comments to help you out).- Spoiler:
[GlobalHeader]
{
Copyright=Copyright 1998 Cavedog Entertainment. All rights reserved.; //just copyright issues, better leave it as it is
missionname=; //name of the mission, it can be left blank
missiondescription=; //descritpion of the mission, it can be left blank
kingdom=Veruna; //tileset of the map, leave it as it is
ismission=0; //whenever or not it is a multiplayer mission, always put 0 here
lineofsight=1; //put 0 for line of sight on and 1 for line of sight off
mapping=1; //put 0 for map revealed and 1 for map not revealed
tidalstrength=20; //tidal strenght, better leave it as it is
solarstrength=20; //solar strenght, better leave it as it is
lavaworld=0; //put 0 for non-lavaworld and 1 for lavaworld, better put 0 here
killmul=50; //unknown, leave as it is
timemul=0; //unknown, leave as it is
minwindspeed=25; //minimum wind speed, leave as it is
maxwindspeed=5000; //maximum wind speed, leave as it is
gravity=112; //gravity, leave as it is
maxunits=200; //the unit limit of the map, use whatever fits the needs of your map.
nosealeveltrigger=0; //leave it as it is, we don't mess with triggers anyway
waterdoesdamage=0; //put 1 for acid-like water or 0 for normal water, better put 0 here
waterdamage=100; //amount of damage water does, if it does damage of course
Player1= logo 0 aramon; //logo and race for player
Player2= logo 1 taros; //activity, stance, logo and race for AI player 2
Player3=; //activity, stance, logo and race for AI player 3, we can just leave it blank
Player4=; //activity, stance, logo and race for AI player 4, we can just leave it blank
Player5=; //activity, stance, logo and race for AI player 5, we can just leave it blank
Player6=; //activity, stance, logo and race for AI player 6, we can just leave it blank
Player7=; //activity, stance, logo and race for AI player 7, we can just leave it blank
Player8=; //activity, stance, logo and race for AI player 8, we can just leave it blank
Player9= passive opponent; //activity, stance, logo and race for AI player 9, we can just leave it blank
Player10= passive neutral; //activity, stance, logo and race for AI player 10, we can just leave it blank
numplayers=; //number of players, can be left blank despite the amount of Players
size=15 x 15; //mission's map size, it must be same with the used map's size
memory=32 MB; //memory used, leave it as it is
useonlyunits=Mission1.tdf; //the TDF file featuring the allowed units, can be left blank to allow all units
hasscenario=0; //whenever it has multiplayer script or not, put 0 here
DestroyAllUnits=1; //victory condition where you must destroy all enemy units to win
AllUnitsKilled=1; //losing condition where you lose if all your units are killed
[Map Data]
{
Type=medium; //always put medium or Schema here
aiprofile=DEFAULT; //the AI file used, put DEFAULT to use the default skirmish AI
[units] //category including all the pre-placed units on map
{
[unit0] //subcategory including stats for unit0
{
Unitname=ARAKING; //type of the unit, eg. write ARAKING if the unit is Elsin etc.
Ident=; //Unit identity, useful for initial mission commands, can be left blank
XPos=90; //x position of the unit on the map's length
YPos=200; //y position of the unit on the map's height
ZPos=105; //z position of the unit on the map's width
Player=1; //the player who owns this unit
HealthPercentage=100; //percentage of health bar, put 100 for full health
ManaPercentage=0; //percentage of mana bar, put 100 for fully charged bar
Angle=180; //the angle where the unit looks, use 175 to 185 for buildings
Kills=0; //number of kills, however it doesn't give any veterancy bonus
initial mission=; //initial mission special commands, it can be left blank
}
[unit1] //subcategory including stats for unit1
{
Unitname=TARNECRO; //type of the unit, eg. write TARNECRO if the unit is Lokken etc.
Ident=; //Unit identity, useful for initial mission commands, can be left blank
XPos=413; //x position of the unit on the map's length
YPos=62; //y position of the unit on the map's height
ZPos=401; //z position of the unit on the map's width
Player=2; //the player who owns this unit
HealthPercentage=100; //percentage of health bar, put 100 for full health
ManaPercentage=0; //percentage of mana bar, put 100 for fully charged bar
Angle=180; //the angle where the unit looks, use 175 to 185 for buildings
Kills=0; //number of kills, however it doesn't give any veterancy
initial mission=; //initial mission special commands, it can be left blank
}
}
[specials]
{
[special0]
{
specialwhat=StartPos1; //starting position of player 1
XPos=86; //x position of the start on the map's length
ZPos=91; //z position of the start on the map's width
}
}
}
}
* Open the text file, erase anything it has written and write your mission objectives (in our case, just write "* Destroy Taros.")
* Rename the "kmap" folder to "missions" and create a new empty folder. Name that folder "camps".
* Copy/paste the TDF file to "camps" folder and rename its copy to "Campaign1" (be sure to keep the original TDF file as it is!).
* Open "Campaign1" TDF, it will look like this:
- Spoiler:
[ARAARCH] {}
[ARABOW] {}
[ARABROAD] {}
[ARABUILD] {}
[ARACAN] {}
[ARADRAG] {}
[arafast] {}
[arafly] {}
[ARAGOD] {}
[ARAGREN] {}
[ARAKING] {}
[ARAKNIGH] {}
[ARAPAL] {}
[ARAPRIE2] {}
[ARAPRIES] {}
[ARAPULT] {}
[ARASIEGE] {}
[ARASMITH] {}
[ARASPY] {}
[ARASWORD] {}
[ARATRANS] {}
[ARAWAR] {}
[CREAERI] {}
[CREAUTO] {}
[CREBARN] {}
[CREBEAS] {}
[CRECHIE] {}
[CREDRAG] {}
[CREFIRE] {}
[CREGOD] {}
[CREIRON] {}
[CREMECH] {}
[CRESAGE] {}
[CRESHOC] {}
[CRESTER] {}
[CRESUBM] {}
[CRETORT] {}
[LIFBIRD] {}
[LIFCOW] {}
[LIFDEER] {}
[LIFDEER2] {}
[LIFSABER] {}
[LIFWOLF] {}
[MONBOAR] {}
[MONDEV] {}
[MONELEM] {}
[MONGHOUL] {}
[MONMUM] {}
[Monpiran] {}
[NPCALCH] {}
[NPCAYLA] {}
[NPCBEG] {}
[NPCBEG2] {}
[NPCBOTL] {}
[NPCBURI] {}
[NPCDERN] {}
[NPCDUMA] {}
[NPCEMEN] {}
[NPCFARM] {}
[NPCFARM2] {}
[NPCHEKET] {}
[NPCHUNT] {}
[NPCJOR] {}
[NPCJOR2] {}
[NPCLEIM] {}
[NPCPEAS] {}
[NPCPEAS2] {}
[NPCPOW1] {}
[NPCPOW2] {}
[NPCREF] {}
[NPCRIXX] {}
[NPCSAIL] {}
[NPCSHOP] {}
[NPCTRIBE] {}
[NPCWAGON] {}
[TARANG] {}
[TARARCH] {}
[TARBEAK] {}
[TARBLACK] {}
[TARCAN] {}
[TARCSHIP] {}
[TARDEMON] {}
[TARDRAG] {}
[TARFIRE] {}
[TARGARG] {}
[TARGOD] {}
[tarhand] {}
[TARHEL] {}
[TARKAM] {}
[TARKNIGH] {}
[TARLICH] {}
[TARMAGE] {}
[TARMIND] {}
[TARNECRO] {}
[TARNECRO] {}
[TARPRIE2] {}
[TARPRIES] {}
[TARSHIP] {}
[TARSPOUT] {}
[TARTB] {}
[TARTROOP] {}
[TARWITCH] {}
[TARZOM] {}
[VERARCH] {}
[VERBAL] {}
[VERBALL] {}
[VERBERS] {}
[VERCEN] {}
[VERCRUS] {}
[VERDRAG] {}
[VERFLAG] {}
[VERGOD] {}
[VERHARP] {}
[VERKNIGH] {}
[VERLIEGE] {}
[VERLIHR] {}
[VERMAGE] {}
[VERMAN] {}
[VERMER] {}
[VERMUSK] {}
[verpar] {}
[VERPULT] {}
[VERSCOUT] {}
[VERSWORD] {}
[VERTRANS] {}
[VERTRE] {}
[ZONAMOE] {}
[ZONBAR] {}
[ZONBASIL] {}
[ZONBAT] {}
[ZONDRAG] {}
[ZONDRAKE] {}
[ZONFLIES] {}
[ZONGIANT] {}
[ZONGOB] {}
[ZONGOD] {}
[ZONGRYP] {}
[ZONHAND] {}
[ZONHARP] {}
[ZONHUNT] {}
[ZONHURT] {}
[ZONKRAK] {}
[ZONLORD] {}
[ZONORC] {}
[ZONROC] {}
[ZONSHAM] {}
[ZONSWAMP] {}
[ZONTER] {}
[ZONTRAIN] {}
[ZONTROLL] {}
[ZONWOLF] {}
[ZONWOLF2] {}
[ARAAT] {}
[ARACASTL] {}
[ARAKEEP] {}
[ARALODE] {}
[ARAMANA] {}
[ARANGATE] {}
[ARANULL] {}
[ARASSH] {}
[ARAWALL] {}
[CREACAD] {}
[CREBOMB] {}
[CREGATE] {}
[CREGATL] {}
[CRELODE] {}
[CREMANA] {}
[CRENAVY] {}
[CREPRIS] {}
[CRESMIT] {}
[CREWALL] {}
[NPCFLAG] {}
[NPCTEMP] {}
[NPCTEMP2] {}
[NPCTHESH] {}
[TARCAGE] {}
[TARCASTL] {}
[TARDUNG] {}
[TARHELL] {}
[tarlode] {}
[TARMANA] {}
[TARNGATE] {}
[TARSH] {}
[TARWALL] {}
[VERASY] {}
[VERAT] {}
[VERCASTL] {}
[VERFLTWR] {}
[VERKEEP] {}
[VERLIGHT] {}
[verlode] {}
[VERMANA] {}
[VERMORT] {}
[VERNGATE] {}
[verpill] {}
[VERTOWER] {}
[VERWALL] {}
[zonfire] {}
[ZONGLYPH] {}
[zonlode] {}
[ZONMANA] {}
[zonspide] {}
* Delete ANY text "Campaign1" TDF has within and edit it as it follows:
- Spoiler:
[HEADER]
{
campaignside=Core; //leave it as it is
}
[MISSION0] //subcategory refering to the first mission of your campaign
{
missionfile=Mission1.ota; //the OTA file featuring the mission
missionname=Valysia; //the name of your mission, it can be anything you like
}
* Create a "Campaign1" folder and move the "missions" and "camps" folder in it
* Open the HPI Pack.
* Choose "TAK" as the Program and "none" as the Compression Method.
* Browse the "Campaign1" folder as the Directory to pack and "Campaign1.hpi" as the Destination file.
* Press "Pack"!
* Copy/Paste the Campaign1.hpi to "Addons" folder of your TA:Kingdoms directory.
* Open TA:K Switcher, go to addons, double-click Campaign1 addon and press the "---> Launch TA:Kingdoms <---" description at the topright corner of Switcher.
* Here is an example pic of TA:K Switcher
- Spoiler:
* Select "Play The Adventure" and select to play Campaign1.tdf and press OK.
* Press Start Game... Have Fun!
QUESTIONS:Q:Why did we had to write down the X Pos, Y Pos and Z Pos of Elsin & Lokken in the Cartographer?
A:Because we needed those variables for the OTA file. Otherwise, we would be unable to give the coordinates of unit0 (ARAKING, a.k.a.Elsin) and unit1 (TARNECRO, a.k.a.Lokken). While the tilesets and features of the map are used in the TNT file,
any player units & buildings like Elsin and Lokken will NOT appear in-game even if placed upon the map. The only way to make them appear is by including them as units (in our case as unit0 and unit1) within the OTA file and giving their coordinates (X,Y,Z) and the rest of their variables as shown above. On the other hand, if a unit is not pre-placed on the Cartographer's map but it is included as a unit in the OTA file, it will appear in-game.
Q:How do I place, let's say, 2 Swordsmen near Elsin and 3 Executioners near Lokken?
A:With the same way you had placed Elsin and Lokken; place them upon the Cartographer's map, write down their X Pos, Y Pos and Z Pos and add the following units under unit1 in the OTA file.
Example is in spoiler:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission=;
}
[unit3]
{
Unitname=ARASWORD;
Ident=;
XPos=84;
YPos=121;
ZPos=119;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission=;
}
[unit4]
{
Unitname=TARTROOP;
Ident=;
XPos=426;
YPos=200;
ZPos=462;
Player=2;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission=;
}
[unit5]
{
Unitname=TARTROOP;
Ident=;
XPos=429;
YPos=200;
ZPos=462;
Player=2;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission=;
}
[unit6]
{
Unitname=TARTROOP;
Ident=;
XPos=426;
YPos=200;
ZPos=465;
Player=2;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission=;
}
Q:I've seen in some missions that enemy units are partolling and others where you win if you defend for x minutes. How can I do these stuff?
A:In order to learn these special functions just read the "More Info For More Complicated Missions" section below.
MORE INFO FOR MORE COMPLICATED MISSIONS:Winning & Losing conditionsWinning and losing conditions are placed after
hasscenario=0; commands and before
[Map Data].
In our Tutorial, we used the
DestroyAllUnits=1; command, which indicated we win by destroying every hostile unit & building, and the
AllUnitsKilled=1; command, which indicated we lose by having all of our units & buildings destroyed. However, there are many more winning and losing conditions available.
The winning conditions I have found they exist are the following:
- Spoiler:
DestroyAllUnits=1; //Winning via destroying every unit & building of your opponent
KillAllMobileUnits=1; //Winning via killing every unit of your opponent
KillAllOfType=NPCALCH; //Winning via killing all units of a certain type, in this case by killing every Alchemist.
KillEnemyCommander=1; //Winning via eliminating the enemy monarch
MoveUnitToRadius=NPCEMEN, 130, 76, 15; //Winning by moving the named unit to the specific area, in this case Emen the Messenger.
UnitTypePassesZ=NPCBOTL, 18; //Winning by escorting a certain unit type beyond a cordinate, in this case Bottle Wagon
KillUnitType=VERSWORD, 17; //Winning by killing a certain amount of a certain unit type, in this case you win by killing 17 Warriors
VictoryTimerRunsOut=2700; //Winning by surviving for a certain amount of time, in this case 2700 seconds
The losing conditions I have found they exist are the following:
- Spoiler:
CommanderKilled=1; //Losing if Monarch is killed
AllUnitsKilled=1; //Losing if all your units are killed
AllUnitsKilledOfType=VERMAGE; //Losing if all your units of a certain type are killed, in this case Kirenna
Player Settings & Starting PositionsFirst of all, unlike skirmish & multiplayer maps,
there is no need to put any starting positions for any player other than player 1. That's because AIs don't have a screen view, so they don't need a starting point for their screen view.
About players, you can (but don't have to) include the following things in their description:
*
logo 0,1,2,3,4,5,6,7,8 or 9 : This is nothing more than the color each player is going to have. Unlike skirmishes and multiplayer games, the same logo (color) can be used by more than one players.
*
aramon, taros, veruna, zhon, creon : This shows the side a player represents and goes after a logo (eg. logo 4 aramon). This is very important for player 1, since it determines the intro video of the mission as well as the playing interface.
*
strategic ally, passive ally, strategic opponent, passive opponent, passive neutral : This shows whenever a player is an ally or opponent of Player 1 and whenever is strategic (like skirmish AI) or passive (not taking any offensive actions). Passive neutral is usually Player 10 and is used to place creatures which are peaceful with both players, like peasants, deers, cows etc. Also, Player 9 is usually a passive opponent used to represent monsters and wild aggressive animals, like ghouls, wolves etc.
* The common format is the following:
strategic or passive ally or neutral or opponent logo 0,1,2,3,4,5,6,7,8 or 9 aramon or taros or veruna or zhon or creon* If an AI player has not the above info included, that AI player is automatically considered a strategical oppnent with logo color equal to its player number (logo 5 for player 5, logo 8 for player 8 etc.)
* Mass Attack Player Command (Side Massattack Time):Mass Attack is a quite powerful command which causes a certain AI to attack you with whatever it gots when the time runs out. It must include the AI's side (aramon, taros, veruna, zhon or creon) before the massattack word and the time in seconds (eg. 2700) after the massattack word.
Code example:
- Spoiler:
Player1= logo 0 aramon; //logo and race for player
Player2= strategic opponent logo 1 TAROS taros massattack 100; //this AI will massively attack after 100 seconds
Player3=;
Player4=;
Player5=;
Player6=;
Player7=;
Player8=;
Player9= passive opponent;
Player10= passive neutral;
numplayers=;
Initial Mission Unit Command LineThis is by far the most important command line. Its existence makes things possible at campaign missions which are impossible at multiplayer scripts. They can overide the usual AI behaviour and make a unit to move, patrol, attack and many more. They can also determine whenever a unit is cloaked or not and if it is veteran or not. So here we go...
* Move (m Xposition Zposition):Makes the unit to move towards the directed area. It overwrites any other commands, however the unit will engage in combat according to its attack type (Ranged or Melee) and its battle stance (Aggressive, Defensive, Passive). After it finishes its move, it executes the next initial mission command or returns to normal.
If a unit of yours executes this command, you will be unable to give it orders until it finishes its move.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= m 410 420;
}
* Patrol (p Xposition Zposition):Makes the unit to patrol towards the directed area. It overwrites any other commands, however the unit will engage in combat even more succesfully than just moving according to its attack type (Ranged or Melee) and its battle stance (Aggressive, Defensive, Passive). Also, it will repair and aid whenever it can, if it can. This move never finishes because it is a loop, except if the Stop (s) initial mission command is given after it.
If a unit of yours executes this command, you will be unable to give it orders till it finishes its move, which will be never since it is a loop order. However, if the Stop (s) initial mission command is given after it, you will be able to order it after reaching its patrol's end.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= p 80 100;
}
* Unload (u Xposition Zposition):Makes the unit to move towards and unload any units it carries to the directed area. It overwrites any other commands it may has. After it finishes its move, it executes the next initial mission command or returns to normal. This command is just ignored for a non-transport unit or an empty transport.
If a unit of yours executes this command, you will be unable to give it orders until it finishes its move.
Code example:
- Spoiler:
[unit7]
{
Unitname=VERTRANS;
Ident=;
XPos=78;
YPos=0;
ZPos=27;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= u 129 53;
}
* Attack (a Unit):Makes the unit to move towards the named unit and attack it. It overwrites any other commands it may has and it is like to ignore any damage it takes as well as enemies other than its target. After its target is killed, it executes the next initial mission command or returns to normal.
If a unit of yours executes this command, you will be unable to give it orders until its target is dead.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= a TARNECRO;
}
* Guard (g Unit):Makes the unit to move towards the named unit and guard, repair, aid it etc. It overwrites any other commands it may has. This move never finishes because it is a loop, except if the stop (s) initial mission command is given after it.
If a unit of yours executes this command, you will be unable to give it orders till it finishes its move, which will be never since it is a loop order. However, if the Stop (s) initial mission command is given after it, you will be able to order it after reaching its guarded unit.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= g ARAKING;
}
* Wait (w Seconds):A powerful command, it makes the unit to practically freeze for a respective amount of time measured in seconds. It overwrites any other commands it may has. After the set time has passed, it executes the next initial mission command or returns to normal.
If a unit of yours executes this command, you will be unable to give it orders until its set time has passed.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= w 25;
}
* Stance (o 0 for Passive, o 1 for Defensive, o 2 for Aggressive):This interesting command changes a unit's stance to either Passive, Defensive or Aggressive. The command "o 0" makes a unit Passive, the command "o 1" makes a unit Defensive and the command "o 2" makes a unit Aggressive.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= o 0;
}
* Cloak (c):This command is used in cloakable units only (Lokken, Assassin etc.) and toggles cloaking on/off. It usually used only once to cloak the unit, but the unit must has the needed personal mana supply for this command to take real effect.
Code example:
- Spoiler:
[unit8]
{
Unitname=ARASPY;
Ident=;
XPos=65;
YPos=62;
ZPos=131;
Player=1;
HealthPercentage=100;
ManaPercentage=100;
Angle=180;
Kills=0;
initial mission= c;
}
* Stop (s):A powerful command, especially when combined with Patrol (p). Stop returns a unit's order to "Standby". Very useful for breaking loop commands, like Guard, which would otherwise never stop. However, Stop doesn't offer anything at all in case of being the only initial mission command for the respective unit, because there is no any commands to stop them.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= p 80 100, s;
}
* Build (b Unit 0 Xposition Zposition):The most vital command in my opinion. Build orders a builder to construct a building (or unit) to the given coordinates. There is always a "0" number following the unit's name and before the coordinates, probably in order not to be mistaken with the Train command below. Keep in mind the builder must be capable for constructing the given structure, otherwise this command fails.
After the builder finishes the structure, it executes the next initial mission command or returns to normal.
If a unit of yours executes this command, you will be unable to give it orders until it finishes its structure.
Code example:
- Spoiler:
[unit9]
{
Unitname=ARABUILD;
Ident=;
XPos=121;
YPos=64;
ZPos=117;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= b ARAKEEP 0 122 127;
}
* Train (b Unit Repeat):This command it actually the same with the above one, with a big difference; it is used to order factories to train units. After the unit's name, a "Repeat" number is placed to determine the amount of units to be created before the command stops.
Code example:
- Spoiler:
[unit10]
{
Unitname=ARAKEEP;
Ident=;
XPos=122;
YPos=64;
ZPos=127;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= b ARASWORD 15;
}
* Veterancy (v 1.0 or greater):This command makes a unit fully veteran, if given v 1.0, or uber veteran for every integer higher than 1.0. If, for example, give a Goblin a Vetrancy of v 50.0, that Goblin will destroy whole bases just for fun!
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= v 1.0;
}
* Inside (i Unit):A unit using this command starts the game inside a transport (Roc, Ark, Rolling Tower etc.) and its coordinates doesn't matter in this case (they are practically the same with its transport). Very useful when combined with Unload (u) command. The name of the transport must be mentioned after the i and it must be able to transport units in order for this command to take effect.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= i VERTRANS;
}
* Waiting for Attack (wa Unit):A strange command which can be quite useful in the right ocasion. The unit waits until the targeted unit is being attacked. It overwrites any other commands it may has. After the target is under attack, it executes the next initial mission command or returns to normal.
If a unit of yours executes this command, you will be unable to give it orders until its target is attacked.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= wa ARAKING, a TARNECRO;
}
Identity (Ident)Identity is extremely useful if you need to pick a very certain unit when many units of this type are present in the map. For example, if you wish a Swordsman to guard a Mage Builder, you will simply include
initial mission= g ARABUILD; in his code. However, what happens if there are 10 Mage Builders on the map? Which one of those is the Swordsman going to guard?
Well, we can give a identity to that Mage Builder to set him aside from the rest of his kin by including
Ident=Name; in his code. Then, the Swordsman just has to replace
initial mission= g ARABUILD; with
initial mission= g Name; and everything is fine. Ident is also vital for the Inside (i) command, because there are often more than one Transport Ships on map.
Code example:
- Spoiler:
[unit2]
{
Unitname=ARASWORD;
Ident=;
XPos=94;
YPos=62;
ZPos=128;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= i Transporter;
}
[unit7]
{
Unitname=VERTRANS;
Ident=Transporter;
XPos=78;
YPos=0;
ZPos=27;
Player=1;
HealthPercentage=100;
ManaPercentage=0;
Angle=180;
Kills=0;
initial mission= u 129 53;
}
(....more coming soon....)