Warcraft III resources & community, 2003–2006 · archived

Harbringer Remake as Mindflayer

not rated
Submitted by LoreKeeperJASS Enhanced331 downloads143 KB
Screenshot
Screenshot
Coding by LoreKeeper



The primary showcase of this map is the physics based tentacle system. I think it has a lot of potential for new skill and effect ideas (for example you could use it to make a demonic whip).



Please credit where credit is due.
File Name
mindflayer2.w3x
Author
LoreKeeper
Download

Comments

11
LOL - hey fefeoxy :)

Welcome to wc3c :)
gogo LoreKeeper! :D
Ok.. hmm how can i do this part you said?:

You can just read out the X,Y coordinates and use them as locations to perform small mini AOE nukes.


Simple really:

starting point x = udg_hhX[0]
starting point y = udg_hhY[0]
(the z point isn't usually necessary, but: )
starting point z = udg_hhZ[0]

Point 2:
udg_hhX[1], udg_hhY[1], udg_hhZ[1]

etc for points 3 to 20, with point 20 having

udg_hhX[19], udg_hhY[19], udg_hhZ[19]

You can ignore udg_hh(X/Y/Z)f (forces) and udg_hh(X/Y/Z)v (velocities).
hmm.. Thx a lot.. i'll try and fool around with it.. i might get it to work a bit.

Ok.. hmm how can i do this part you said?:

You can just read out the X,Y coordinates and use them as locations to perform small mini AOE nukes.


Also before a huge outward throw of the chain in one direction with the wisp it should make a bundle of zig zag right around the starting position i think then just burst out in one direction really far and then come back really fast( like a really kick ass spring). So is there a way to make it curve or increase its radius for swaying a bit more?
Would you change this for me?.. cause it would make making a spell for it ever so much easier..Cause i'm not exactly great at JASS but i can read most of it.. and understand most of it..I mean this is how you would basically achieve whip skils right?.. or did you use a different method? Also for things like having the full length of the whip dealing dmg i'm totally at a loss of how to do something like that..


I haven't actually implemented the whip (yet), it is just one of the possible applications that I thought of.

The damage along the full length of the whip is quite simple, the udg_hhX/Y/Z arrays are the coordinates of the tentacle. You can just read out the X,Y coordinates and use them as locations to perform small mini AOE nukes. This would practically then deal damage along the length of the whip. (Alternatively, place dummy units with immolation at those locations - updated on each frame.)

Simple really :)

Regarding using the Wisp update for the other end: Very easy, this part of the code:


    // update homuncolus base position
    set  udg_hhX[0] = x
    set  udg_hhY[0] = y
    set  udg_hhZ[0] = z + 100


controls the starting point (the position of the hero). You can just force the position of the end-point in the same way. You just have to make sure that later portions of the code don't override that value again. Simple :)

Currently neither the Wisp nor the Tentacle actually control their final position, I calculate it and set it according to passive/active state of the tentacle. The relevant bit of code is:


    // hero detection or hunting update?
    if GetCacheBoolean(CacheOwner(t), "b") then
        // update closest enemy hero tracking
        set  g = GetUnitsInRectAll(GetPlayableMapRect())
        set  w = null
        loop
            set  v = FirstOfGroup(g)
            exitwhen v == null

etc etc...

You can just kill that entire section and replace it with


    // update homuncolus base position
    set  udg_hhX[19] = GetUnitX(wisp)
    set  udg_hhY[19] = GetUnitY(wisp)
    set  udg_hhZ[19] = GetUnitFlyHeight(wisp)

(or something like that)
Note that changing the Wisp position in the code does not affect the chain, I update the Wisp based on the computation inside the chain - though that can be implemented either way.


Would you change this for me?.. cause it would make making a spell for it ever so much easier..Cause i'm not exactly great at JASS but i can read most of it.. and understand most of it..I mean this is how you would basically achieve whip skils right?.. or did you use a different method? Also for things like having the full length of the whip dealing dmg i'm totally at a loss of how to do something like that..

A good idea would be simply to have a few triggers in which you explain how to move the whip unit without wrecking the chain trigger and how to deal dmg based on the whip.(dealing dmg based on the whip unit i think is relatively easy, but the whip itself is very hard.)

Also.. sry in advance for asking so many questions..
Switch33

There are a lot of possibilities with the system - including changing what physics it simulates; I've just picked a relatively straightforward spring-forces approach. Currently both end-points are controlled without using physics, but in principle you could have one of the end-points be controlled by the physics like the rest of the tentacle. Might require some changes to what forces you use though (since it is easy for physics systems to go unstable and "explode" - which would crash Warcraft).

Note that changing the Wisp position in the code does not affect the chain, I update the Wisp based on the computation inside the chain - though that can be implemented either way.

The reason I used a relatively straight-forward/unspectaculary skill was that I originally designed the Homuncolus, and thought it would be really cool if it was rendered as a tentacle, so the physics system came as an afterthought. ;)

If you instead using the tentacle as the basis for skills, there are many possibilities that you could pursue. My personal favorite is the idea of a Demon Whip that naturally wiggles about freely, but has a very short cooldown activated ability that forces the tip of the whip to quickly move to a target location. The actual whip would deal fire damage along the full length of the tentacle.

MobKing

Glad you like :)
ya.. i love how the chain changes it's z radius all the time with its x and y axis to give that real chain like effect.

hmm.. i don't really like how it only hunts for heros tho(but i can change that.. so that's fine).. and it stays to the bottom of the hero often.. if it could swing with the unit above the hero more often based on how your hero moves then it would have a lot better effect.

Also when i thought about it... i thought maybe you could have done a little cooler effect of a spell.. like a whip spell..where he takes the chained unit around him and throws him in one direction really far and brings him back and that deals dmg or something like that..(cause chain spells using effects like this would be awesome.. I'm not sure.. but would changing the wisp unit at the end's location make the whip change its location?.. like having the wisp blink.. hmm.. maybe i can test this.. but i know you incorporated lots of things for the hero getting hit or blinking or getting entangled.) although you kind of used that different approach of him leashing it to a hero.. and just staying there(kind of for some reason threw me off because i thought the spell for it would be better looking)Also the synergy for the spell was great.

Edit: Wow i just got a great idea.. you can make the Wisp unit cast spells based on what the hero casts lol.. that would be awesome. Like the hero casts an spell that causes the wisp to warstomp around him.

And i'm pending on using it for a map.. but of course you'll get credit.
That's incredible.
hehehehe - don't worry, it isn't so tough :) I started 3 weeks ago. (Though, to be fair, I program other languages a lot.)
nice effect, but i dont know how to work with jass and i want the wisp to move around the caster and attack everyone around ><
i really need to learn jass :?