• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Require one spell to be tweaked

Status
Not open for further replies.
Level 29
Joined
Mar 9, 2012
Messages
1,557
Using Feral Impact you can land within an building, the hero can land within the town hall and happily hack away at it from the inside, whilst the opponent cant do anything if he has no ranged attackers, ofcourse this is not supposed to happen and very imbalanced.
The Feral Impact spell in this pack:
http://www.hiveworkshop.com/forums/...1-a-184927/?prev=search=barbarian&d=list&r=20
It has to be expanded such that it checks if target point is occupied by an building(before the jump i believe), and does either one of those:
- bounces the hero off the building into the nextbest available spot upon landing,
- like above but less complicated, simply instantly places him into that available spot upon arrival,
- simply gives an error msg during targetting phase stating you cant jump into a building.

Or if you have an better idea do tell me.
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
Use PurgeandFire's Check Walkability. It's EXTREMELY easy to use. All you have to do is save the targeted point of ability to CP_Point, run Check Walkability, and if it returns true, that means its pathable. If not, you can display an error message and not start a spell instance.

If you want an ingame-like error message, I recommend you check out SimError. Again, another extremely easy to use snippet. All you have to do is call SimError(player, "msg").
 

Edy

Edy

Level 9
Joined
Nov 21, 2015
Messages
226
Use PurgeandFire's Check Walkability. It's EXTREMELY easy to use. All you have to do is save the targeted point of ability to CP_Point, run Check Walkability, and if it returns true, that means its pathable. If not, you can display an error message and not start a spell instance.

If you want an ingame-like error message, I recommend you check out SimError. Again, another extremely easy to use snippet. All you have to do is call SimError(player, "msg").

I totally agree with this, used it myself.
:goblin_jawdrop:
 
Level 29
Joined
Mar 9, 2012
Messages
1,557
  • Feral Impact
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Skill_FeralImpact
    • Actions
      • Trigger - Run Feral Impact Index <gen> (ignoring conditions)
      • Set point = (Position of (Triggering unit))
      • Set point2 = (Target point of ability being cast)
      • Set CP_Point = (Target point of ability being cast)
      • Trigger - Run Check Walkability <gen> (ignoring conditions)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CP_PointIsWalkable Equal to True
        • Then - Actions
          • Custom script: set udg_tmpCasterZ = GetLocationZ( udg_point )
          • Custom script: set udg_tmpTargetZ = GetLocationZ( udg_point2 )
          • Set tmpDiffHeight = (tmpTargetZ - tmpCasterZ)
          • Set tmpHeight = ((Max(0.00, tmpDiffHeight)) + FI_DefaultHeight)
          • Set tmpDistance = (Distance between point and point2)
          • -------- Setting up data --------
          • Set FI_Hero[fi] = (Triggering unit)
          • Set FI_z[fi] = tmpCasterZ
          • Set FI_Angle[fi] = (Angle from point to point2)
          • Set FI_Vz[fi] = (Square root((-2.00 x (g x tmpHeight))))
          • Set FI_Height[fi] = tmpCasterZ
          • Set tmpTime = (((-1.00 x FI_Vz[fi]) / g) - ((Square root(((-2.00 x g) x (tmpHeight - tmpDiffHeight)))) / g))
          • Set FI_Vp[fi] = (tmpDistance / tmpTime)
          • Set FI_AnimSpeed[fi] = (0.50 / tmpTime)
          • -------- Setting up the rest --------
          • Animation - Change FI_Hero[fi]'s animation speed to (FI_AnimSpeed[fi] x 100.00)% of its original speed
          • Unit - Turn collision for FI_Hero[fi] Off
          • Unit - Add Storm Crow Form to FI_Hero[fi]
          • Unit - Remove Storm Crow Form from FI_Hero[fi]
          • Unit - Make FI_Hero[fi] Invulnerable
          • Special Effect - Create a special effect at point using FI_EffectA
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the chest of FI_Hero[fi] using FI_EffectB
          • Special Effect - Destroy (Last created special effect)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FI_Sound Not equal to <Empty String>
            • Then - Actions
              • Custom script: set udg_tmpSound = CreateSound( udg_FI_Sound, false, true, false, 12700, 12700, "" )
              • Sound - Play tmpSound at 100.00% volume, attached to FI_Hero[fi]
              • Custom script: call KillSoundWhenDone( udg_tmpSound )
            • Else - Actions
          • -------- Activate! --------
          • Trigger - Turn on Feral Impact Move <gen>
          • Custom script: call RemoveLocation( udg_point )
          • Custom script: call RemoveLocation( udg_point2 )
        • Else - Actions
          • Unit - Pause caster
          • Unit - Order caster to Stop
          • Unit - Unpause caster
          • Unit - Set mana of (Casting unit) to ((Mana of (Casting unit)) + 125.00)
          • Set fi = (fi - 1)
          • Set FI_Max = (FI_Max - 1)
          • -------- Display error message that you must cant jump into buildings --------
          • Custom script: if udg_ErrorSound == null then
          • Custom script: set udg_ErrorSound = CreateSoundFromLabel( "InterfaceError",false,false,false,10,10)
          • Custom script: endif
          • Set ErrorMessage = You need to target pathable ground
          • Set ErrorPlayer = (Owner of (Casting unit))
          • Custom script: if GetLocalPlayer() == udg_ErrorPlayer then
          • Custom script: call ClearTextMessages()
          • Custom script: call DisplayTimedTextToPlayer( udg_ErrorPlayer, 0.52, 0.96, 2.00, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n|cffffcc00"+udg_ErrorMessage+"|r" )
          • Custom script: call StartSound(udg_ErrorSound)
          • Custom script: endif
Tweaked as such, its functioning however:
-its always dealing 100% damage now
-is playing the animation when target point not pathable and wasting time doing nothing

How to fix ?
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
You're running the index before you check the pathing. That means there is a possibility you're indexing an instance that targeted a non pathable location, thus didn't have Then - Actions run.

By the way, all 3 locations you set at the start of your trigger will leak if you keep the RemoveLocation() inside the ITE instead of outside.
 
Level 29
Joined
Mar 9, 2012
Messages
1,557
Didnt change anything with Index,
All the triggers utilized by the spell are here under Feral Impact on this page:
http://www.hiveworkshop.com/forums/...1-a-184927/?prev=search=barbarian&d=list&r=20

To quote the tooltip:
"The barbarian leaps to the target point, dealing damage to nearby enemies and knocking them back. The higher the jump, the higher the damage."
I use the skill on even ground, and its accounting such as if have jumped from an very high and far location, giving 100% extra damage.

The other things that are different:
in initialize trigger is
  • Set FI_DefaultHeight = 250.00
instead 750 default.
And in the skill field "Stats - Cast Range"
set to
300
375
450
for the 3 levels
 
Level 29
Joined
Mar 9, 2012
Messages
1,557
Umm.. apparently im not capable of fixing this. Halp

Edit: sorry for the double post
Just to clarify, the caster doesn't do the actual jump, but is still given the 100% damage buff?
when the hero actually performs the jump skill, he always gets 100% extra damage upon landing, the extra damage is supposed to get higher the jump, the higher the damage. The checking pathability of target point may be interfering with how the damage gets calculated.
You can take a look in the map:
http://www.hiveworkshop.com/forums/pastebin_data/c185vl/_files/(4)BloodelfShardActual.w3x
 
Last edited:
Level 37
Joined
Jul 22, 2015
Messages
3,485
You should know by now to not double-post, sir.

I'll take a look at the triggers after I eat and see what's going on. Just to clarify, the caster doesn't do the actual jump, but is still given the 100% damage buff?

EDIT: I don't understand your problem o.o I ran your test map and everything worked perfectly fine. The farther I casted the jump, I got a bigger % damage increase.
 
Last edited:
Status
Not open for further replies.
Top