Difference between revisions of "DroppableItem"
m (→Droppable Item) |
(MAJOR CHANGE! Changed structure of page completely. Added comments and instructions to help newbies. Added sections. Kept links but it should all make sense now.) |
||
Line 1: | Line 1: | ||
− | + | This page is for code fragments for dropping items. | |
− | + | == Droppable on Death == | |
− | + | This section is for macros that drop an item due to the death of unit. | |
− | + | === Dropping a picked up item === | |
− | + | This macro comes in two parts with space for [effect] code between them. Using this macro creates an item at a point on the map specified by X and Y, keeps track of it (when the unit carrying it dies) via two variable (which the user names!!) and provides an image for the map. | |
− | |||
− | |||
− | |||
− | |||
+ | Note that if you want any unit to be able to pick up the item you can ignore the ADDITIONAL_FILTERS part. | ||
+ | ==== Part One ==== | ||
#define DROPPABLE_ITEM X Y XVAR YVAR NAME IMAGE ADDITIONAL_FILTERS | #define DROPPABLE_ITEM X Y XVAR YVAR NAME IMAGE ADDITIONAL_FILTERS | ||
[label] | [label] | ||
Line 21: | Line 19: | ||
[event] | [event] | ||
name=prestart | name=prestart | ||
− | |||
{VARIABLE {XVAR} {X}} | {VARIABLE {XVAR} {X}} | ||
{VARIABLE {YVAR} {Y}} | {VARIABLE {YVAR} {Y}} | ||
Line 99: | Line 96: | ||
[/filter] | [/filter] | ||
#enddef | #enddef | ||
− | + | ||
+ | ==== Effect goes here ==== | ||
+ | |||
+ | Of course the code for the macro above will do nothing without an [effect] attatched to the item (via the [object] tag in the above macro) other than cart an image around. To add an effect, make an [effect] tag as below (or look at [[EffectWML]]: | ||
+ | |||
#All this should be between the usage of the DROPPABLE_ITEM macro and its /DROPPABLE_ITEM | #All this should be between the usage of the DROPPABLE_ITEM macro and its /DROPPABLE_ITEM | ||
− | # | + | # |
− | + | # This is not the only thing you can do but for an item that increases movementspeed by 10(!) do: | |
− | + | [effect] | |
− | + | apply_to=movement | |
+ | increase=10 | ||
+ | [/effect] | ||
+ | ==== Part 2 ==== | ||
+ | Once you have done all of the above, call the closing macro to close all the tags and clear the variables. | ||
+ | |||
#define /DROPPABLE_ITEM XVAR YVAR | #define /DROPPABLE_ITEM XVAR YVAR | ||
[/object] | [/object] | ||
Line 114: | Line 120: | ||
[/event] | [/event] | ||
#enddef | #enddef | ||
+ | |||
+ | === Dropping Loot === | ||
+ | This macro makes it so that when a unit matching a filter dies, it will drop an item (eg gold!) | ||
+ | |||
+ | #Re writing... come back later. | ||
== See Also == | == See Also == | ||
* [[UsefulWMLFragments]] | * [[UsefulWMLFragments]] | ||
+ | * [[ReferenceWML]] | ||
+ | |||
+ | [[Category: UsefulWMLFragments]] |
Revision as of 14:12, 9 April 2007
This page is for code fragments for dropping items.
Contents
Droppable on Death
This section is for macros that drop an item due to the death of unit.
Dropping a picked up item
This macro comes in two parts with space for [effect] code between them. Using this macro creates an item at a point on the map specified by X and Y, keeps track of it (when the unit carrying it dies) via two variable (which the user names!!) and provides an image for the map.
Note that if you want any unit to be able to pick up the item you can ignore the ADDITIONAL_FILTERS part.
Part One
#define DROPPABLE_ITEM X Y XVAR YVAR NAME IMAGE ADDITIONAL_FILTERS [label] x={X} y={Y} text="{NAME}" [/label] [event] name=prestart {VARIABLE {XVAR} {X}} {VARIABLE {YVAR} {Y}} [item] x=${XVAR} y=${YVAR} image={IMAGE} [/item] [event] name=die first_time_only=no [store_unit] [filter] x=$x1 y=$y1 [/filter] variable=itemstore [/store_unit] [if] [variable] name=itemstore.variables.{XVAR} equals=on [/variable] [then] {VARIABLE_OP {XVAR} to_variable x1} {VARIABLE_OP {YVAR} to_variable y1} [item] x=$x1 y=$y1 image={IMAGE} [/item] [/then] [/if] [/event] [event] name=moveto first_time_only=no [filter] x=${XVAR} y=${YVAR} {ADDITIONAL_FILTERS} [/filter] [removeitem] x=${XVAR} y=${YVAR} [/removeitem] [store_unit] variable=itemstore [filter] x=${XVAR} y=${YVAR} [/filter] [/store_unit] {VARIABLE itemstore.variables.{XVAR} on} [unstore_unit] variable=itemstore [/unstore_unit] [unit_overlay] x=${XVAR} y=${YVAR} image={IMAGE} [/unit_overlay] [object] name={NAME} image={IMAGE} duration=forever cannot_use_message="-cannot use message-" [filter] x=${XVAR} y=${YVAR} [/filter] #enddef
Effect goes here
Of course the code for the macro above will do nothing without an [effect] attatched to the item (via the [object] tag in the above macro) other than cart an image around. To add an effect, make an [effect] tag as below (or look at EffectWML:
#All this should be between the usage of the DROPPABLE_ITEM macro and its /DROPPABLE_ITEM # # This is not the only thing you can do but for an item that increases movementspeed by 10(!) do: [effect] apply_to=movement increase=10 [/effect]
Part 2
Once you have done all of the above, call the closing macro to close all the tags and clear the variables.
#define /DROPPABLE_ITEM XVAR YVAR [/object] {VARIABLE {XVAR} 0} {VARIABLE {YVAR} 0} [/event] [/event] #enddef
Dropping Loot
This macro makes it so that when a unit matching a filter dies, it will drop an item (eg gold!)
#Re writing... come back later.