Ash Worm Base Actor Events (Please help)

Discussion in 'Starcraft 2 (SC2) Editor Help' started by Maarten, Jul 6, 2014.

  1. Maarten

    Maarten New Member

    Ratings:
    +0 / 0 / -0
    Hi there,


    I want to use the unit: Ash Worm in my game, but I run into a few problem with this unit. When the unit has been created, also an Ash Worm Base is created (the lava pool beneath the worm). The problem is that the Ash Worm Base won't vanish after the death of the Ash Worm, so later in the game there are mayb like 20 lava pools on the map.

    For some reason (I tried alot with the Actor events of the Ash Worm/Ash Worm Base/Ash Worm base Death) I cannot succeed in this.

    When the Ash Worm uses it's ability: Ash Worm Burrow Move, it will burrow and move to the targeted location and unburrow on that location. And yes, the Ash Worm Base, burrows and unburrows with it. Perfectly, thats exactly how I want it. When the Ash Worm Dies, the lava pool (Ash Worm Base) will burrow and vanish, a nice animation. But I tried alot and it just dont go away.

    I am no pro in these Actors and Event in the data module, in fact this is the first time using it. Othr things was working so far what I did with the Actor events, but this just wont..

    I uploaded a few images of the following Actor events which I think they are responsible for everything connected to the Ash Worm or Ash Worm Base:

    Ash Worm/Ash Worm Base/Ash Worm Base Death


    I hope someone who has got expertise in the Data Module (Actor Events) can help/show/tell me how to obtain I want.

    Thanks in advance.
     

    Attached Files:

  2. The Helper

    The Helper Administrator Staff Member

    Ratings:
    +1,213 / 2 / -1
    Anybody here?
     
  3. X-maul

    X-maul AKA: Demtrod

    Ratings:
    +200 / 0 / -0
    Hm, I do not have SC2 installed right now, but maybe you should try adding
    AnimBracketAfterClosing
    Destroy

    I'm not sure if it works, maybe try something like
    UnitDeath.AshWorm
    Destroy

    Not sure, sorry I cant help you more than that right now :)
     
  4. Dave312

    Dave312 Censored for your safe viewing

    Ratings:
    +269 / 0 / -0
    It took me a while to figure this out. What you probably didn't realise is that Ash Worm Base actor does actually get removed, it is just that the Ash Worm Base Death actor gets created in its place (which is the same model and hence why it looks like nothing actually happens). To fix this, go to the Ash Worm Base Death actor, open up the events and delete the following event:
    Code:
    Unit Death.AshWorm
      Create
    If you test it now, you should find that Ash Worm base model now just disappears wich looks kinda weird. This is pretty easy to fix. If you look at the events for the Ash Worm Base actor, you should see these four entries:
    Code:
    ActorOrphan
       Destroy
    
    UnitDeath
       Destroy
    
    Signal.*.Burrowing
       AnimPlay Burrow Burrow 0 0.0000000 0.00000000 2.0000000 As Duration
    
    AnimDone
       AnimName Burrow
       Destroy
    The first 2 entries cause the base model to be destroyed when the unit dies. We don't want to this happen any more so you need to delete these two events. What the second two events do is that when this actor receives a "Burrowing" signal, it causes the model to play its Burrow animation and when it has finished playing, it removes the actor from the game. This is exactly what you want to happen but just when the unit dies. In order to do this, you just need to send the Ash Worm Base actor a "Burrowing" signal when the unit dies. So go to the Ash Worm actor and add a new event to the Events property. You want this to fire when the unit dies so set the Msg Type of the event to Unit Death. Then for the action part of the event, set the Msg Type to Signal. Now set the Target to the actor that you want to receive this signal i.e. AshWormBase (you have to use the ID name of the actor) and then set Sub Name to the name of the signal you want to send, in this case Burrowing. If you have done this correctly, your actor event should look like this:
    Code:
    UnitDeath
       Signal Burrowing
    Now you should be able to test it and hopefully it should work as you want it to.
     
    • Like Like x 1
  5. Maarten

    Maarten New Member

    Ratings:
    +0 / 0 / -0
    First of all, thanks for the effort you put into this. Really appreciated. I already tried with the signal move, but indeed I didn't notice the Ash Worm Base Death to be troublesome in the first place. Especially when I read your explanation it makes sense. I already had an other solution that is working and looks great. Instead of getting rid of the Ash Worm Base Death, I modified that one to getting burrowed.

    I just add this in XML:

    <CActorModel id="AshWormBaseDeath">
    <On index="1" Terms="ActorCreation" Send="AnimPlay Burrow Burrow 0 0.000000 0.000000 10.000000 AsDuration"/>
    <On index="2" Terms="AnimDone; AnimName Burrow" Send="Destroy"/>
    </CActorModel>


    Look for the picture for the outcome. It works great while testing.

    Thanks for the help anyway!!!
     

    Attached Files:

Share This Page