Replacing Birth Animation

HydraRancher

Truth begins in lies
Reaction score
197
Trigger:
  • Undead Building
    • Events
      • Unit - A unit Begins construction
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Constructing structure)) Equal to Graveyard
    • Actions
      • Custom script: local effect udg_Temp_SFX
      • Custom script: local unit udg_Temp_Unit
      • Set Temp_Unit = (Constructing structure)
      • Animation - Change Temp_Unit's vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
      • Special Effect - Create a special effect attached to the origin of Temp_Unit using UBirth.mdx
      • Set Temp_SFX = (Last created special effect)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of Temp_Unit) Equal to Graveyard
        • Then - Actions
          • Wait 15.00 seconds
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Temp_Unit is alive) Equal to True
        • Then - Actions
          • Special Effect - Destroy Temp_SFX
          • Animation - Change Temp_Unit's vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
        • Else - Actions
      • Custom script: set udg_Temp_Unit = null
      • Custom script: set udg_Temp_SFX = null


Here is my trigger. I tried to follow Pyrities trigger to replace the birth animation. When i tested it, the model was invisible and there was a bunch of small SFX's. If I switch the Animation actions around, both of the birth animations play and the custom one never dissapears.
 

Curo

Why am I still playing this game...?
Reaction score
109
You are calling your locals udg_variable. Udg is short for "user defined global" iirc, and thus is not used with locals. Although I've never used locals, so I could be wrong.
 

HydraRancher

Truth begins in lies
Reaction score
197
You are calling your locals udg_variable. Udg is short for "user defined global" iirc, and thus is not used with locals. Although I've never used locals, so I could be wrong.

It's because the variable IS a udg. I think Jass Helper would error if I was doing it wrong.
 

Corleone

New Member
Reaction score
44
I don't quite understand what you're doing. You're defining a local variable as a global variable...? You then only refer to a global variable. What's the point of that? The trigger makes little sense when it comes to the variables.

In other words, you should remove the 'Udg_" in front of the variables. And when you set the variables you'll have to set them using a custom script, like "set Temp_Unit = GetConstructingStructure()". After all, you want to use local variables, not global ones.
 

HydraRancher

Truth begins in lies
Reaction score
197
I don't quite understand what you're doing. You're defining a local variable as a global variable...? You then only refer to a global variable. What's the point of that? The trigger makes little sense when it comes to the variables.

In other words, you should remove the 'Udg_" in front of the variables. And when you set the variables you'll have to set them using a custom script, like "set Temp_Unit = GetConstructingStructure()". After all, you want to use local variables, not global ones.

If I use local variables, I cant refer to them in the GUI actions. And it's not what I'm doing, it's what Pyritie is doing.
 

Corleone

New Member
Reaction score
44
Then convert the trigger into custom script. At least you'll be able to make it MUI and it should work. Furthermore, Pyritie says:
"I just wrote it from memory, use common sense to change it to your needs~"

Looking at his trigger one can see that it was written freehand. Moreover, he doesn't use local variables either ( due to the "udg_" ) and he doesn't refer to them in the trigger.
 

HydraRancher

Truth begins in lies
Reaction score
197
Then convert the trigger into custom script. At least you'll be able to make it MUI and it should work. Furthermore, Pyritie says:

Looking at his trigger one can see that it was written freehand. Moreover, he doesn't use local variables either ( due to the "udg_" ) and he doesn't refer to them in the trigger.

I don't know how to script JASS so I can't convert it into custom script.
 

Corleone

New Member
Reaction score
44
I made the trigger in JASS for you:

JASS:
function Trig_TheHelper_JASS_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetConstructingStructure()) == 'ugrv' ) ) then
        return false
    endif

    return true
endfunction

function Trig_TheHelper_JASS_Actions takes nothing returns nothing

    local unit Temp_Unit = GetConstructingStructure()
    local location Temp_Unit_Loc = GetUnitLoc( Temp_Unit )
    local effect Temp_SFX

    call SetUnitVertexColor( Temp_Unit, 100, 100, 100, 100.00 )
    call AddSpecialEffectLoc( Temp_Unit_Loc, "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )

    set Temp_SFX = GetLastCreatedEffectBJ()

    if ( GetUnitTypeId(GetConstructingStructure()) == 'ugrv' ) then
        call TriggerSleepAction( 15.00 )
    endif

    if ( IsUnitAliveBJ(Temp_Unit) == true ) then
        call SetUnitVertexColor( Temp_Unit, 100, 100, 100, 0 )
    endif

    set Temp_Unit = null
    call RemoveLocation(Temp_Unit_Loc)
    set Temp_Unit_Loc = null
    call DestroyEffect( Temp_SFX )
    set Temp_SFX = null

endfunction

//===========================================================================
function InitTrig_TheHelper_JASS takes nothing returns nothing
    set gg_trg_TheHelper_JASS = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_TheHelper_JASS, EVENT_PLAYER_UNIT_CONSTRUCT_START )
    call TriggerAddCondition( gg_trg_TheHelper_JASS, Condition( function Trig_TheHelper_JASS_Conditions ) )
    call TriggerAddAction( gg_trg_TheHelper_JASS, function Trig_TheHelper_JASS_Actions )
endfunction


The only thing you have to replace is the special effect path. It's currently set to Thunderclap, but you can just type in the path of the special effect you want to use.

Furthermore, this trigger works only for the unmodified Undead Graveyard. If you want to use it for another unit, you must replace the 'ugrv' with the ID type of that unit.
 

Chaos_Knight

New Member
Reaction score
39
Thats not good JASS.

[lJASS]call AddSpecialEffectLocBJ[/lJASS]
could be
[lJASS]call AddSpecialEffectLoc[/lJASS]
 

HydraRancher

Truth begins in lies
Reaction score
197
Once I again I repeat, I have no idea on what the JASS does, apart from making a local variable.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top