MakeInfantry: Difference between revisions
No edit summary |
rewrite and added rewritten tutorial |
||
Line 1: | Line 1: | ||
{{Flag | |||
|name={{PAGENAME}} | |||
|files={{Categ|art(md).ini}} | |||
|values=integers | |||
|special= -1 (do not use MakeInfantry logic) | |||
|default= -1 | |||
|types={{Categ|Animation|Animations}} | |||
|ra=no | |||
|am=no | |||
|cs=no | |||
|ts=no | |||
|fs=no | |||
|ets=no | |||
|ra2=no | |||
|yr=yes | |||
|rp=yes | |||
}} | |||
Specifies the list index of {{tt|rulesmd.ini}}{{arr|r}}[{{TTL|General}}]{{arr|r}}{{TTL|AnimToInfantry}} to refer to to determine which [[InfantryType]] should be created when this [[animation]] finishes. | |||
If this [[animation]] was invoked by [[InfDeath]] 8 or 9 then the resulting [[InfantryType]] will be given to the owner of the killing unit. | |||
If this [[animation]] was invoked by any [[InfDeath]] other than 8 or 9 then the resulting [[InfantryType]] will be given to [[neutral]]. | |||
If this [[animation]] was invoked by [[InfDeath]] 9 then the [[animation]] will be hard-coded to use the unit palette instead of the animation palette, and any remappable colours will be remapped to the player colour of the owner of the killing unit. | |||
If this [[animation]] was invoked by an [[InfDeath]] other than 9, and the [[animation]] has {{TTL|AltPalette|yes}} set, then any remappable colours will be remapped to a seemingly random player colour. | |||
=Using MakeInfantry Logic (tutorial by Marshall)= | |||
If you've been reading up on MakeInfantry (mutation) logic elsewhere and haven't really understood much then that's okay - this tutorial is probably more easily understood if you haven't read any other MakeInfantry information before. | |||
I'm going to start with a "lie to children".<br> | |||
'''There can be only one player-owned InfantryType that is created from MakeInfantry logic.'''<br> | |||
Please bear that in mind when reading the following steps.<br> | |||
<br> | |||
1. You need to list all the [[InfantryTypes]] that you would like to spawn using MakeInfantry logic. You do this in a comma separated list on the following flag:<br> | |||
{{tt|[[rules|rulesmd.ini]]}}{{arr|r}}[[General|[General]]]{{arr|r}}{{TTL|AnimToInfantry}}<br> | |||
For example, {{TTL|AnimToInfantry|BRUTE,NEWUNIT,GHOST}}<br> | |||
Later on we will refer to these [[InfantryTypes]] by their list index. In the above example, {{tt|BRUTE}} would have an index of zero, {{tt|NEWUNIT}} would have an index of 1 and {{tt|GHOST}} would have an index of 2.<br> | |||
<br> | |||
2. In order to spawn an [[InfantryType]] from the {{TTL|AnimToInfantry}} list then an animation must be played - the [[InfantryType]] will be spawned once the animation finishes. <br> | |||
To make the spawned [[InfantryType]] player-owned, another infantry unit in-game must be killed by a weapon that was fired by a player-owned unit. Further more, the weapon's {{TTL|Warhead}} '''must''' have {{TTL|InfDeath|9}} set.<br> | |||
Note that {{TTL|MutateWarhead}} and {{TTL|MutateExplosionWarhead}} are only used by the Genetic Mutator super weapon and have '''no bearing''' on this logic. | |||
You can change the animation referenced by [[InfDeath]] 9 if you want (see [[InfDeath|InfDeaths]]).<br> | |||
<br> | |||
3. In {{Tt|[[art|artmd.ini]]}}, find or create the [[animation]] section for the animation that you want to spawn an [[InfantryType]] (see {{tt|[GENDEATH]}} as an example).<br> | |||
You need to set <tt>MakeInfantry=X</tt> on your animation, where X is the list index number of the [[InfantryType]] you wish to spawn, taken from the {{TTL|AnimToInfantry}} flag discussed in the first step. | |||
==Applications== | |||
===Neutral infantry=== | |||
You can create [[neutral]] infantry oppponents by not using an {{TTL|InfDeath|9}} weapon (this includes using an animation that is not caused by a weapon such as crate pickups or a building anim). For example, setting {{tt|[[rules|rulesmd.ini]]}}{{arr|r}}{{tt|[E1]}}{{arr|r}}{{TTL|DeathAnims|NEWANIM}} and {{tt|[[art|artmd.ini]]}}{{arr|r}}{{tt|[NEWANIM]}}{{arr|r}}<tt>MakeInfantry=0</tt> would cause the GI to turn into a neutral Brute when the GI dies. | |||
===Player-owned infantry=== | |||
You can create multiple weapons that result in a player-owned [[InfantryType]] being created as long as they all have {{TTL|InfDeath|9}} set on their {{tt|[[Warhead|warheads]]}}. However the limitation is that they will all spawn the same [[InfantryType]].<br> | |||
You could, of course, change the [[InfantryType]] that the Genetic Mutator spawns, or you could convert the Genetic Mutator into a non-mutation weapon if you wanted to. | |||
==Game modes== | |||
You can override the main [[rules]] in a game mode so that the [[InfantryTypes]] that are created by the MakeInfantry logic, the animations that cause the [[InfantryTypes]] to be spawned and the way those animations are played are different to other game modes - this will allow you to have different player-owned mutations in your mod, however you can still only have one player-owned mutation per game mode. | |||
==Actually, you can have two player-owned mutations== | |||
I lied above so that you could more easily understand the MakeInfantry logic first. In truth, by using {{TTL|InfDeath|8}}, you can spawn a second [[InfantryType]] that will be player-owned. However, in order to make use of {{TTL|InfDeath}} 8 for MakeInfantry purposes you will have to sacrifice the unique Virus [[InfDeath]] animation (or re-order the other [[InfDeath]] animations, but you ''will'' have to sacrifice one of them). There is also a limitation of [[InfDeath]] 8 in that the animation cannot remap the player colours correctly (see the description of the {{TTL|MakeInfantry}} flag at the top of this page).<br> | |||
But that really is it though, the other [[InfDeath|InfDeaths]] won't work for this. | |||
==Warnings== | |||
*Do not use an area-effect mutation weapon if [[paradrops|paratroopers]] are not immune to it - an [[Internal Error]] will occur if a falling paratrooper is killed by an area-effect mutation weapon (point based mutation deaths seem to be okay and just result in the paratrooper exploding, and the Genetic Mutator super weapon appears to have been designed to prevent it killing such infantry). | |||
*The animation associated with {{TTL|InfDeath}} 9 '''must''' have a {{tt|MakeInfantry}} flag and it must be set to a valid {{TTL|AnimToInfantry}} list index. If it doesn't, then the animation will not play at all. | |||
:<small>[Actually, it doesn't have to have the {{tt|MakeInfantry}} flag ''if'' it has instead a {{TTL|Next}} flag so that the last animation of a sequence of animations invoked by InfDeath 9 ''does'' have a {{tt|MakeInfantry}} flag.]</small> | |||
==The [[RockPatch]]== | |||
Depending on the version, the [[RockPatch]] enables the creation of new InfDeaths which can be used for MakeInfantry logic. See the [[RockPatch]] documentation for details. | |||
=See also= | |||
*[[InfDeath|InfDeaths]] | |||
*{{TTL|AnimToInfantry}} | |||
*[[Mutation]] | |||
[[Category:RA2/YR Tutorials]] |
Revision as of 21:41, 14 April 2008
Flag: | MakeInfantry |
File(s): | art(md).ini |
Values: | integers |
Special Values: | -1 (do not use MakeInfantry logic) |
Default: | -1 |
Applicable to: | Animations |
Specifies the list index of rulesmd.ini→[[[:Template:TTL]]]→Template:TTL to refer to to determine which InfantryType should be created when this animation finishes.
If this animation was invoked by InfDeath 8 or 9 then the resulting InfantryType will be given to the owner of the killing unit.
If this animation was invoked by any InfDeath other than 8 or 9 then the resulting InfantryType will be given to neutral.
If this animation was invoked by InfDeath 9 then the animation will be hard-coded to use the unit palette instead of the animation palette, and any remappable colours will be remapped to the player colour of the owner of the killing unit.
If this animation was invoked by an InfDeath other than 9, and the animation has Template:TTL set, then any remappable colours will be remapped to a seemingly random player colour.
Using MakeInfantry Logic (tutorial by Marshall)
If you've been reading up on MakeInfantry (mutation) logic elsewhere and haven't really understood much then that's okay - this tutorial is probably more easily understood if you haven't read any other MakeInfantry information before.
I'm going to start with a "lie to children".
There can be only one player-owned InfantryType that is created from MakeInfantry logic.
Please bear that in mind when reading the following steps.
1. You need to list all the InfantryTypes that you would like to spawn using MakeInfantry logic. You do this in a comma separated list on the following flag:
rulesmd.ini→[General]→Template:TTL
For example, Template:TTL
Later on we will refer to these InfantryTypes by their list index. In the above example, BRUTE would have an index of zero, NEWUNIT would have an index of 1 and GHOST would have an index of 2.
2. In order to spawn an InfantryType from the Template:TTL list then an animation must be played - the InfantryType will be spawned once the animation finishes.
To make the spawned InfantryType player-owned, another infantry unit in-game must be killed by a weapon that was fired by a player-owned unit. Further more, the weapon's Template:TTL must have Template:TTL set.
Note that Template:TTL and Template:TTL are only used by the Genetic Mutator super weapon and have no bearing on this logic.
You can change the animation referenced by InfDeath 9 if you want (see InfDeaths).
3. In artmd.ini, find or create the animation section for the animation that you want to spawn an InfantryType (see [GENDEATH] as an example).
You need to set MakeInfantry=X on your animation, where X is the list index number of the InfantryType you wish to spawn, taken from the Template:TTL flag discussed in the first step.
Applications
Neutral infantry
You can create neutral infantry oppponents by not using an Template:TTL weapon (this includes using an animation that is not caused by a weapon such as crate pickups or a building anim). For example, setting rulesmd.ini→[E1]→Template:TTL and artmd.ini→[NEWANIM]→MakeInfantry=0 would cause the GI to turn into a neutral Brute when the GI dies.
Player-owned infantry
You can create multiple weapons that result in a player-owned InfantryType being created as long as they all have Template:TTL set on their warheads. However the limitation is that they will all spawn the same InfantryType.
You could, of course, change the InfantryType that the Genetic Mutator spawns, or you could convert the Genetic Mutator into a non-mutation weapon if you wanted to.
Game modes
You can override the main rules in a game mode so that the InfantryTypes that are created by the MakeInfantry logic, the animations that cause the InfantryTypes to be spawned and the way those animations are played are different to other game modes - this will allow you to have different player-owned mutations in your mod, however you can still only have one player-owned mutation per game mode.
Actually, you can have two player-owned mutations
I lied above so that you could more easily understand the MakeInfantry logic first. In truth, by using Template:TTL, you can spawn a second InfantryType that will be player-owned. However, in order to make use of Template:TTL 8 for MakeInfantry purposes you will have to sacrifice the unique Virus InfDeath animation (or re-order the other InfDeath animations, but you will have to sacrifice one of them). There is also a limitation of InfDeath 8 in that the animation cannot remap the player colours correctly (see the description of the Template:TTL flag at the top of this page).
But that really is it though, the other InfDeaths won't work for this.
Warnings
- Do not use an area-effect mutation weapon if paratroopers are not immune to it - an Internal Error will occur if a falling paratrooper is killed by an area-effect mutation weapon (point based mutation deaths seem to be okay and just result in the paratrooper exploding, and the Genetic Mutator super weapon appears to have been designed to prevent it killing such infantry).
- The animation associated with Template:TTL 9 must have a MakeInfantry flag and it must be set to a valid Template:TTL list index. If it doesn't, then the animation will not play at all.
- [Actually, it doesn't have to have the MakeInfantry flag if it has instead a Template:TTL flag so that the last animation of a sequence of animations invoked by InfDeath 9 does have a MakeInfantry flag.]
The RockPatch
Depending on the version, the RockPatch enables the creation of new InfDeaths which can be used for MakeInfantry logic. See the RockPatch documentation for details.