In my attempts to create my own abilities, I have been running in circles trying to figure how to tie my own actors and behaviors to them clearly, and despite the fact that the data in the editor is arranged as trees, as I go into the trees sub-objects I find them linking to other bits of the main tree redundantly and quite annoyingly.
The data 'trees' seem more in reality like a data mesh.
Anyone could lead me to how exactly to create a new ability and such manually, lets say launching a missile from a ship with an ability for a giant nuke? :p
The tree is just a visual representation of assets being referenced by the current object, and a convenient way to make changes to those objects on the fly. The tree is automatically generated based on the data fields supplied for the object. This confuses a lot of people who want to, say, make a marine into a flying movement. They will see the "Ground" mover on the tree and try to delete it from the tree or replace it. You can't mess with the tree, it's just for organization. You have to actually go into the data fields and change the Mover. Once you do that, the tree automatically updates to reflect the new mover you referenced.
There is a very common misconception going around about actors. Well, it's not completely incorrect, but people get the idea that actors are assigned to units via a token. This really isn't the case. In fact, the way actors function is much more complicated, and is actually controlled by their Events field. Since the Events field tells the actor to respond to a whole bunch of cues from a specific unit-type, the data editor conveniently tokenizes the unittype information so that you can just change the token and every entry in the events field will update appropriately.
The issue with this is that sometimes merely changing the token won't cause the actor to behave the way you would expect. For example, many actors won't respond to "AbilMorph" events because the units they were designed for don't have any morphs. If you try to use one of these actors for a unit with a morph and just change the token and nothing else, the actor won't react appropriately when the unit morphs (more specifically, the actor won't do anything at all)
Mainly trying to get a missile actor to function properly for a new missile weapon/ability that I want to implement, trying not to take things too far out of their own scope.
So, you're wanting to get a missle to shoot from a unit it wasn't made for? Like, the lightening bolt from an archon shooting from a drone for example? If so, I'll tell you how I did it.
Rollback Post to RevisionRollBack
The Team - TnTProductions
TnTProductions latest Project - Docking Bay 13
TnTProductions Epic RPG in the making - Psionics: Chaos Rising
Check out our website on wixx! http://bulletbutter.wix.com/tntproductions
Quote from bulletbutter:
So, you're wanting to get a missle to shoot from a unit it wasn't made for? Like, the lightening bolt from an archon shooting from a drone for example? If so, I'll tell you how I did it.
----
I am trying to define my own ability, that launches a missile from a ship and costs lets say.. 1250 energy.
(I'm trying to build a stargate mod and making the Odyssey first, and it can launch nukes :p)
The creation of the ablity object itself and linking it to a button and my ship is easy.
The effects for the damage/persist for the launch isn't hard either.
The way that Actors respond to things is similar to how triggers work. They look for certain messages ("Events") which are automatically "broadcast" when certain things happen. For instance, any time a unit is created, it sends a "UnitBirth" message. The message also typically gives the ID of its source, so you can set up an event to respond to, say, the birth of a Marine unit.
For missile abilities, usually an "Action" event is set up which will respond to the ability or attack being used. Look at the Hydralisk's air attack as an example. Actions are nice because you can assign models and sounds for the Launch, Projectile, and Impact, and the action type will take care of it for you. It's still not that easy to use, but by looking at other attacks and abilities that spawn projectiles, hopefully you can get a better idea.
I didn't mean to derail the thread with the unitname token thing, but I just notice a lot of people on the Blizz forums who seem to think that you need to duplicate the actor and give it a new unitname token in order for it to apply to another unit. That's really not the case because you can just go in the events field and duplicate the events while changing the unit-type on those that are unit-specific. It's slightly more efficient, since you are only duplicating the data that needs to be duplicated, and not the whole thing. Helps keep your map smaller, though it probably barely matters.
In my attempts to create my own abilities, I have been running in circles trying to figure how to tie my own actors and behaviors to them clearly, and despite the fact that the data in the editor is arranged as trees, as I go into the trees sub-objects I find them linking to other bits of the main tree redundantly and quite annoyingly.
The data 'trees' seem more in reality like a data mesh.
Anyone could lead me to how exactly to create a new ability and such manually, lets say launching a missile from a ship with an ability for a giant nuke? :p
@JustAMirage: Go
The tree is just a visual representation of assets being referenced by the current object, and a convenient way to make changes to those objects on the fly. The tree is automatically generated based on the data fields supplied for the object. This confuses a lot of people who want to, say, make a marine into a flying movement. They will see the "Ground" mover on the tree and try to delete it from the tree or replace it. You can't mess with the tree, it's just for organization. You have to actually go into the data fields and change the Mover. Once you do that, the tree automatically updates to reflect the new mover you referenced.
Ah, what a pain.
Some of the linkages between the objects can be quite annoying to find, the only one I've completely nailed down is the unitName thing on Actor.
@JustAMirage: Go
There is a very common misconception going around about actors. Well, it's not completely incorrect, but people get the idea that actors are assigned to units via a token. This really isn't the case. In fact, the way actors function is much more complicated, and is actually controlled by their Events field. Since the Events field tells the actor to respond to a whole bunch of cues from a specific unit-type, the data editor conveniently tokenizes the unittype information so that you can just change the token and every entry in the events field will update appropriately.
The issue with this is that sometimes merely changing the token won't cause the actor to behave the way you would expect. For example, many actors won't respond to "AbilMorph" events because the units they were designed for don't have any morphs. If you try to use one of these actors for a unit with a morph and just change the token and nothing else, the actor won't react appropriately when the unit morphs (more specifically, the actor won't do anything at all)
@MasterDinadan:
Mainly trying to get a missile actor to function properly for a new missile weapon/ability that I want to implement, trying not to take things too far out of their own scope.
Agreed. My next article really ought to be about that.
Go play Antioch Chronicles Remastered!
Also, coming soon, Antioch Episode 3: Thoughts in Chaos!
Dont like mapster's ugly white? Try Mapster's Classic Skin!
Quote from Alevice:
Quote from MasterDinadan: Go
@JustAMirage: Go
There is a very common misconception going around about actors.
Agreed. My next article really ought to be about that.
----
Please do.
So, you're wanting to get a missle to shoot from a unit it wasn't made for? Like, the lightening bolt from an archon shooting from a drone for example? If so, I'll tell you how I did it.
Quote from bulletbutter:
So, you're wanting to get a missle to shoot from a unit it wasn't made for? Like, the lightening bolt from an archon shooting from a drone for example? If so, I'll tell you how I did it.
----
I am trying to define my own ability, that launches a missile from a ship and costs lets say.. 1250 energy.
(I'm trying to build a stargate mod and making the Odyssey first, and it can launch nukes :p)
The creation of the ablity object itself and linking it to a button and my ship is easy.
The effects for the damage/persist for the launch isn't hard either.
The actors/effects are freaking annoying.
@JustAMirage: Go
The way that Actors respond to things is similar to how triggers work. They look for certain messages ("Events") which are automatically "broadcast" when certain things happen. For instance, any time a unit is created, it sends a "UnitBirth" message. The message also typically gives the ID of its source, so you can set up an event to respond to, say, the birth of a Marine unit.
For missile abilities, usually an "Action" event is set up which will respond to the ability or attack being used. Look at the Hydralisk's air attack as an example. Actions are nice because you can assign models and sounds for the Launch, Projectile, and Impact, and the action type will take care of it for you. It's still not that easy to use, but by looking at other attacks and abilities that spawn projectiles, hopefully you can get a better idea.
I didn't mean to derail the thread with the unitname token thing, but I just notice a lot of people on the Blizz forums who seem to think that you need to duplicate the actor and give it a new unitname token in order for it to apply to another unit. That's really not the case because you can just go in the events field and duplicate the events while changing the unit-type on those that are unit-specific. It's slightly more efficient, since you are only duplicating the data that needs to be duplicated, and not the whole thing. Helps keep your map smaller, though it probably barely matters.
Well, yes, but this is beta and if Blizzard changes something then all objects that aren't green will change along with it.