[HD/Modeling] This missile needs a fix.

Level 16
Joined
Jul 19, 2007
Messages
934
Need help to fix this missile because it doesn't face the correct way to the enemy when it is launched to it.
missile.png
 

Attachments

There was a 0 length global anim that I removed, not sure if that was the problem but the model looks fine when tested so I guess it was that?

View attachment 549493
No it didn't solve the problem :( It seems like the missile works fine if it is used as an unit's "missile projectile model" but I'm actually using it on a triggered ability so I guess it's something wrong with the missile triggers. Should I change anything in this?
missile.png
 
Here is the full triggers of the spell and something is wrong which makes the missile facing the wrong way :-/
  • Spirit Lance Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Spirit Lance Ability --------
      • Set VariableSet SpiritLance_Ability = Spirit Bolt
      • -------- Spirit Lance Cripple Ability --------
      • Set VariableSet SpiritLance_AbilityCripple = Spirit Bolt Cripple
      • -------- Spirit Lance Dummy --------
      • Set VariableSet SpiritLance_DummyType = Dummy (Vexorian, Anitarf, Infrane)
      • -------- Spirit Lance Missile Effect --------
      • Set VariableSet SpiritLance_MissileSFX = war3mapImported\WolfHeadProjectile109.mdx
      • -------- Spirit Lance Missile Speed --------
      • Set VariableSet SpiritLance_MissileSpeed = 800.00
      • -------- Spirit Lance Missile Height --------
      • Set VariableSet SpiritLance_MissileHeight = 50.00
      • -------- Missile Collision Range (Do not set too low or too high, make sure it is slightly above actual missile speed) --------
      • Set VariableSet SpiritLance_MissileCollide = 75.00
      • -------- Spirit Lance Damage --------
      • Set VariableSet SpiritLance_Damage[1] = 100.00
      • Set VariableSet SpiritLance_Damage[2] = 150.00
      • Set VariableSet SpiritLance_Damage[3] = 200.00
      • Set VariableSet SpiritLance_Damage[4] = 250.00
      • -------- Spirit Lance Damage Type --------
      • Set VariableSet SpiritLance_DamageDT = Normal
      • -------- Spirit Lance Attack Type --------
      • Set VariableSet SpiritLance_DamageAT = Spells
      • -------- Spirit Lance Movement Speed Cripple (1.00 = 100%) --------
      • Set VariableSet SpiritLance_MSCripple[1] = 0.10
      • Set VariableSet SpiritLance_MSCripple[2] = 0.20
      • Set VariableSet SpiritLance_MSCripple[3] = 0.30
      • Set VariableSet SpiritLance_MSCripple[4] = 0.40
      • -------- Spirit Lance Attack Speed Cripple (1.00 = 100%) --------
      • Set VariableSet SpiritLance_ASCripple[1] = 0.10
      • Set VariableSet SpiritLance_ASCripple[2] = 0.20
      • Set VariableSet SpiritLance_ASCripple[3] = 0.30
      • Set VariableSet SpiritLance_ASCripple[4] = 0.40
      • -------- Spirit Lance Slow Duration --------
      • Set VariableSet SpiritLance_CrippleDur[1] = 3.25
      • Set VariableSet SpiritLance_CrippleDur[2] = 3.25
      • Set VariableSet SpiritLance_CrippleDur[3] = 3.25
      • Set VariableSet SpiritLance_CrippleDur[4] = 3.25
      • -------- Spirit Lance Illusion Damage Dealt (1.00 = 100%) --------
      • Set VariableSet SpiritLance_IlluDamageDealt[1] = 0.25
      • Set VariableSet SpiritLance_IlluDamageDealt[2] = 0.25
      • Set VariableSet SpiritLance_IlluDamageDealt[3] = 0.25
      • Set VariableSet SpiritLance_IlluDamageDealt[4] = 0.25
      • -------- Spirit Lance Illusion Damage Taken (1.00 = 100%) --------
      • Set VariableSet SpiritLance_IlluDamageTaken[1] = 4.00
      • Set VariableSet SpiritLance_IlluDamageTaken[2] = 4.00
      • Set VariableSet SpiritLance_IlluDamageTaken[3] = 4.00
      • Set VariableSet SpiritLance_IlluDamageTaken[4] = 4.00
      • -------- Spirit Lance Illusion Duration --------
      • Set VariableSet SpiritLance_IlluDur[1] = 2.00
      • Set VariableSet SpiritLance_IlluDur[2] = 4.00
      • Set VariableSet SpiritLance_IlluDur[3] = 6.00
      • Set VariableSet SpiritLance_IlluDur[4] = 8.00
      • -------- Spirit Lance Illusion Args --------
      • Set VariableSet SpiritLance_Args = SpiritLance
      • -------- Spirit Lance Loop Check (in seconds, recommended between 0.03 to 0.10) --------
      • Set VariableSet SpiritLance_Loop = 0.03
      • -------- END CONFIG --------
      • -------- Actual Speed --------
      • Set VariableSet SpiritLance_MissileSpeed = (SpiritLance_MissileSpeed x SpiritLance_Loop)
      • -------- Triggers --------
      • Trigger - Add to Spirit Lance Loop <gen> the event (Time - Every SpiritLance_Loop seconds of game time)
  • Spirit Lance Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to SpiritLance_Ability
    • Actions
      • Set VariableSet SpiritLance_MaxIndex = (SpiritLance_MaxIndex + 1)
      • Set VariableSet SpiritLance_Source[SpiritLance_MaxIndex] = (Triggering unit)
      • Set VariableSet SpiritLance_Target[SpiritLance_MaxIndex] = (Target unit of ability being cast)
      • Set VariableSet SpiritLance_Level[SpiritLance_MaxIndex] = (Level of SpiritLance_Ability for SpiritLance_Source[SpiritLance_MaxIndex])
      • Set VariableSet SpiritLance_MissilePoint[SpiritLance_MaxIndex] = (Position of SpiritLance_Source[SpiritLance_MaxIndex])
      • Special Effect - Create a special effect at SpiritLance_MissilePoint[SpiritLance_MaxIndex] using SpiritLance_MissileSFX
      • Special Effect - Set Position - Z of (Last created special effect) to SpiritLance_MissileHeight
      • Set VariableSet SpiritLance_MissileEffect[SpiritLance_MaxIndex] = (Last created special effect)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SpiritLance_MaxIndex Equal to 1
        • Then - Actions
          • Trigger - Turn on Spirit Lance Loop <gen>
        • Else - Actions
  • Spirit Lance Loop
    • Events
    • Conditions
    • Actions
      • For each (Integer SpiritLance_Index) from 1 to SpiritLance_MaxIndex, do (Actions)
        • Loop - Actions
          • Set VariableSet SpiritLance_MissilePointOld = SpiritLance_MissilePoint[SpiritLance_Index]
          • Set VariableSet SpiritLance_MissilePointTarget = (Position of SpiritLance_Target[SpiritLance_Index])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between SpiritLance_MissilePointOld and SpiritLance_MissilePointTarget) Greater than SpiritLance_MissileCollide
            • Then - Actions
              • -------- Move --------
              • Set VariableSet SpiritLance_MissilePoint[SpiritLance_Index] = (SpiritLance_MissilePoint[SpiritLance_Index] offset by SpiritLance_MissileSpeed towards (Angle from SpiritLance_MissilePointOld to SpiritLance_MissilePointTarget) degrees.)
              • Special Effect - Set Position of SpiritLance_MissileEffect[SpiritLance_Index] to SpiritLance_MissilePoint[SpiritLance_Index]
              • Special Effect - Set Position - Z of SpiritLance_MissileEffect[SpiritLance_Index] to SpiritLance_MissileHeight
            • Else - Actions
              • -------- Collision --------
              • Special Effect - Destroy SpiritLance_MissileEffect[SpiritLance_Index]
              • -------- Cripple --------
              • Unit - Cause SpiritLance_Source[SpiritLance_Index] to damage SpiritLance_Target[SpiritLance_Index], dealing SpiritLance_Damage[SpiritLance_Level[SpiritLance_Index]] damage of attack type SpiritLance_DamageAT and damage type SpiritLance_DamageDT
              • Unit - Create 1 SpiritLance_DummyType for Neutral Passive at SpiritLance_MissilePointOld facing Default building facing degrees
              • Unit - Add SpiritLance_AbilityCripple to (Last created unit)
              • Ability - Set Ability: (Unit: (Last created unit)'s Ability with Ability Code: SpiritLance_AbilityCripple)'s Real Level Field: Movement Speed Reduction (%) ('Cri1') of Level: 0 to SpiritLance_MSCripple[SpiritLance_Level[SpiritLance_Index]]
              • Ability - Set Ability: (Unit: (Last created unit)'s Ability with Ability Code: SpiritLance_AbilityCripple)'s Real Level Field: Attack Speed Reduction (%) ('Cri2') of Level: 0 to SpiritLance_ASCripple[SpiritLance_Level[SpiritLance_Index]]
              • Ability - Set Ability: (Unit: (Last created unit)'s Ability with Ability Code: SpiritLance_AbilityCripple)'s Real Level Field: Duration - Normal ('adur') of Level: 0 to SpiritLance_CrippleDur[SpiritLance_Level[SpiritLance_Index]]
              • Ability - Set Ability: (Unit: (Last created unit)'s Ability with Ability Code: SpiritLance_AbilityCripple)'s Real Level Field: Duration - Hero ('ahdu') of Level: 0 to SpiritLance_CrippleDur[SpiritLance_Level[SpiritLance_Index]]
              • Unit - Increase level of SpiritLance_AbilityCripple for (Last created unit)
              • Unit - Decrease level of SpiritLance_AbilityCripple for (Last created unit)
              • Unit - Order (Last created unit) to Undead Necromancer - Cripple SpiritLance_Target[SpiritLance_Index]
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
              • -------- Illusion --------
              • Set VariableSet SpiritLance_CVIndex = (Custom value of SpiritLance_Source[SpiritLance_Index])
              • Set VariableSet SpiritLance_TargetIllusion[SpiritLance_CVIndex] = SpiritLance_Target[SpiritLance_Index]
              • Set VariableSet Illusion_Unit = SpiritLance_Source[SpiritLance_Index]
              • Set VariableSet Illusion_Player = (Owner of Illusion_Unit)
              • Set VariableSet Illusion_DamageDealt = SpiritLance_IlluDamageDealt[SpiritLance_Level[SpiritLance_Index]]
              • Set VariableSet Illusion_DamageTaken = SpiritLance_IlluDamageTaken[SpiritLance_Level[SpiritLance_Index]]
              • Set VariableSet Illusion_Duration = SpiritLance_IlluDur[SpiritLance_Level[SpiritLance_Index]]
              • Set VariableSet Illusion_AppearCustomized = True
              • Set VariableSet Illusion_AppearPoint = (Position of SpiritLance_Target[SpiritLance_Index])
              • Set VariableSet Illusion_AppearFacing = (Angle from Illusion_AppearPoint to SpiritLance_MissilePointTarget)
              • Set VariableSet Illusion_Args = SpiritLance_Args
              • Trigger - Run Illusion_CreateTrigger (checking conditions)
              • -------- De-Index --------
              • Set VariableSet SpiritLance_MissilePoint[SpiritLance_Index] = SpiritLance_MissilePoint[SpiritLance_MaxIndex]
              • Set VariableSet SpiritLance_MissileEffect[SpiritLance_Index] = SpiritLance_MissileEffect[SpiritLance_MaxIndex]
              • Set VariableSet SpiritLance_Level[SpiritLance_Index] = SpiritLance_Level[SpiritLance_MaxIndex]
              • Set VariableSet SpiritLance_Source[SpiritLance_Index] = SpiritLance_Source[SpiritLance_MaxIndex]
              • Set VariableSet SpiritLance_Target[SpiritLance_Index] = SpiritLance_Target[SpiritLance_MaxIndex]
              • Set VariableSet SpiritLance_MaxIndex = (SpiritLance_MaxIndex - 1)
              • Set VariableSet SpiritLance_Index = (SpiritLance_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SpiritLance_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • Custom script: call RemoveLocation(udg_SpiritLance_MissilePointOld)
          • Custom script: call RemoveLocation(udg_SpiritLance_MissilePointTarget)
  • Spirit Lance Focus
    • Events
      • Game - Illusion_Event becomes Equal to 1.00
    • Conditions
      • Illusion_Args Equal to SpiritLance_Args
    • Actions
      • Set VariableSet SpiritLance_CVIndex = (Custom value of Illusion_Unit)
      • Unit - Order Illusion_UnitIllusion to Attack SpiritLance_TargetIllusion[SpiritLance_CVIndex]
 
Back
Top