• 🏆 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!

Spells & Systems Mini-Contest #16

Status
Not open for further replies.
Level 23
Joined
Nov 29, 2006
Messages
2,482
Wut -.-'? Are you saying I just did that on purpose? No! You may look stupid but I am not:p
I am actually back from the grocery shop... Gonna look at it now. Roar...

(At least I have to do it now... Darn... /kidding:)

Edit: Raft... Much better than before and looks so much better =). Yet though, you should clean up the code more. It looks very familiar with a converted GUI trigger. Dont use the bj functions. Use the jass natives and you will get a higher score. And avoid locations if you can. GetUnitX and GetUnitY is not just faster, it is more accurate too. The same goes with calls like 'CreateNUnitsAtLoc'... 'CreateUnit' is much better.
 
Level 9
Joined
May 27, 2006
Messages
498
Alright, thanks for a comment :) I tried to remove all the bj's as much as i can, yet some of them were showing me syntax errors even though i typed all arguments in the correct way.
You said the code looks like a converted GUI trigger... Well, i started by converting a trigger with already placed event and condition, to focus on actions and effects, maybe thats why. About the natives, i implement them when i know their name and what do they do :p

Oh, and about the locations. What if i have to get distance between two points, or to get a location using polar projection? Do i have to do it like DistanceBetweenPoints(Location(x1, y1), Location(x2, y2)), or there is another function?

@BerZ
Nah, this one is good, but if you want, you could make it possible to target enemies as well and make some bad effect for them D:
 
Level 23
Joined
Nov 29, 2006
Messages
2,482
Oh, and about the locations. What if i have to get distance between two points, or to get a location using polar projection? Do i have to do it like DistanceBetweenPoints(Location(x1, y1), Location(x2, y2)), or there is another function?

Well, if you look inside the PolarProjection you find the following:
JASS:
function PolarProjectionBJ takes location source, real dist, real angle returns location
    local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
    local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD)
    return Location(x, y)
endfunction

So basically, you just set the 'newX' and 'newY' as:
JASS:
[...] //add 2 temprandom ints at the top of the function (RandomInt is faster and since angles with decimals are neglectful, dont bother RandomReals)
set r_dist = GetRandomInt(0,300)
set r_angle = GetRandomInt(0,360)
set newX = GetUnitX(dummy) + r_dist * Cos(r_angle * bj_DEGTORAD)
set newY = GetUnitY(dummy) + r_dist * Sin(r_angle * bj_DEGTORAD)
[...]
// and replace bj_lastCreatedUnit with a local unit.
set u = CreateUnit('h001', GetOwningPlayer(GetTriggerUnit()), newX, newY, 270.00)
call UnitApplyTimedLife( u, 'BTLF', 1.50 )
[...]
(//Dont forget to null u at the end of the function.)

Edit: Flood, not bad at all... In fact, its pretty nice for being a Gui spell. The concept well... I am making something out of wisps too >.> It doesnt bother me at all though;)
 
Last edited:
Ok, i finally have to decide.
I updated the Magical Birds spell (made it much more efficient) and my Purge of Nature spell.
Here are the results.
I can´t really decide which one i´ll submit for the contest.
That´s why i need some help now. I´d be happy if i receive some honest opinions.
EDIT: Final version available here.
 
Last edited:
Level 5
Joined
Jun 25, 2008
Messages
118
I found a part which is not working, if you havent solved it already. Everything which stands here:
JASS:
private function Effects takes nothing returns nothing
    local BeeSwarm_Data dat
    local integer i=0
    local real x1=GetUnitX(dat.u)
    local real y1=GetUnitY(dat.u)
    local real x2=GetUnitX(dat.targ)
    local real y2=GetUnitY(dat.targ)
    local real a=Atan2(y2-y1, x2-x1)
    local real mx=BeeSwarmDist()*Cos(a)
    local real my=BeeSwarmDist()*Sin(a)
    local integer lvl=GetUnitAbilityLevel(dat.cast, BeeSwarmRawCode())
it will not work properly... You create a local data which has no reference. And then you try to get its components, but it has none.
You shall declare all the locals before everything else, that is correct... But then, dont forget to make a reference inside the loop, for instance:
JASS:
private function Effects takes nothing returns nothing
    local BeeSwarm_Data dat
    local integer i=0
    local real x1
    local real y1
    local real x2
    local real y2
    local real a
    local real mx
    local real my
    local integer lvl
    
    loop
        exitwhen i>=total
        set dat=ar[i]
        set everything here...

Reminder: This may not be the efficient code I have seen, but the result of doing this way should at least work. It was a quick observation, so there might be more which I didnt see.

EDIT: And Berzeker, you could ask Poot about his MUI but GUI 'Jass structalike system'. Im sure it will be taken as a 'Small not-do it for you system'.

Thanks for having a look but i set the locals of the struct in the function Actions, which comes before the function Effects, so it should be able to get all its components =/ also the second part you say to do it that way, but i do have the reference inside the loop "set dat=ar" this is spell is confuzzling me :bored:

sry about the slow reply was at my mate's house all weekend
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
Thanks for having a look but i set the locals of the struct in the function Actions, which comes before the function Effects, so it should be able to get all its components =/ also the second part you say to do it that way, but i do have the reference inside the loop "set dat=ar" this is spell is confuzzling me :bored:

sry about the slow reply was at my mate's house all weekend


Dude...
As Eccho said, each time u do:
dat=ar
you have to:
set x1=GetUnitX(dat.u)
set y1=GetUnitY(dat.u)
set x2=GetUnitX(dat.targ)
set y2=GetUnitY(dat.targ)
set a=Atan2(y2-y1, x2-x1)
set mx=BeeSwarmDist()*Cos(a)
set my=BeeSwarmDist()*Sin(a)
set lvl=GetUnitAbilityLevel(dat.cast, BeeSwarmRawCode())
You get it?
 
Level 5
Joined
Jun 25, 2008
Messages
118
Ahhh ok i see now, thankyou, the problem i was having is that i learnt vJASS from a tutorial thats not specifically about vJASS, and i did not notice that he didnt set any variables related to the struct before refering to his struct, so i couldnt figure out what was up :p thankyou! hopefully should work now, +rep to u both :D

EDIT: D: seems i repped eccho not long ago for helping and it wont let me again just yet D:
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
i have to update my spell gamecache sucks -.-' i will use TimerUltis but have no time at the moment ;(

Ey. all spells look realy greate :D, but my favorite is -JonNny's spell, i realy look forward to see it finished :)

Actually at the moment game cache is probably the best thing to use(as of 1.22 in which "fixes were made to enhance dota's performance").
It is more flexible, more simpler to use than anything else. Especially when you use vJass as you only need to store integers.
Ahhh ok i see now, thankyou, the problem i was having is that i learnt vJASS from a tutorial thats not specifically about vJASS, and i did not notice that he didnt set any variables related to the struct before refering to his struct, so i couldnt figure out what was up :p thankyou! hopefully should work now, +rep to u both :D

EDIT: D: seems i repped eccho not long ago for helping and it wont let me again just yet D:

No problem. Eccho said it first.
 
Last edited:
Level 12
Joined
Apr 27, 2008
Messages
1,228
See this
Mind only game cache and HSAS if you want to compare them with each other.
The tests were done on the very same map(the test map of HSAS), on the very same pc(mine) before and after the patch.
In the official patch notes they said that some modifications were made especially for Dota, I can only presume, that is one of them.
 
Last edited:
lol, I know why my IsUnitAliveBJ detection won't work.
It's because I made a trigger that when a player presses esc, it heals all unit included the dead ones. =) Well.. fixed and here's my entry.

____________________________________________________________
Spirit of Nature

by Ribenamania
tranquility.gif


Calling forth the spirits of nature; enchanting nearby allied units with the power of nature. When a spirit hits a tree, it will possess into it; becoming a threant and fight for allied units.When it hits a unit, it summons an entangle root in the unit that damages the unit over time. When the spirit perish, it explodes and damage nearby units.

*Level 1 - +10 damage, last 10 seconds.
*Level 2 - +20 damage, last 12.5 seconds.
*Level 3 - +30 damage, last 15 seconds.
*Level 4 - +40 damage, last 17.5 seconds.


ThreantTimedLife
- 5 x AbilityLevel seconds
ExplosionDamage
- 50 x AbilityLevel damage
EntanglingRoots
- 15 + (5 x AbilityLevel) damage per sec
- Last 3 + (1 x AbilityLevel) seconds


ManaCost
20/40/60/80


Requires vJNGP
 

Attachments

  • Spirit of Nature.w3x
    38.3 KB · Views: 45
Last edited:
Level 23
Joined
Oct 18, 2008
Messages
938
Ok, i finally have to decide.
I updated the Magical Birds spell (made it much more efficient) and my Purge of Nature spell.
Here are the results.
I can´t really decide which one i´ll submit for the contest.
That´s why i need some help now. I´d be happy if i receive some honest opinions.

birds hotkey is M D:

also on ur .02 trigger u pick all untis matching condition instead of a group variable im not sure if it was that but the spell lagged a little on me.
 
Level 11
Joined
Dec 31, 2007
Messages
780
hey Ribenamania thats a nice spell... but i i think it is gonna be better if you make those whisps move with the caster ... it is gonna be very cool if you can do that in mui

and maybe placing more enemy units in the game so that judges can test it best

those are my advices for your map... hope you like them ;)
 
Level 16
Joined
Feb 22, 2006
Messages
960
Ribenamania the spell (effects look realy nice) , but in my opinion the script is not that efficient. You should remove all BJs also you better use global integer for rawcodes (i prefer it and shorten the script). Also if you use vJass better use structs . Also i saw that u didn't fixed all leaks. u forgot to remove some locations and to null all handles

But the idea rocks :p
 
doom_sheep said:
birds hotkey is M D:
Hotkey changed.^^
doom_sheep said:
also on ur .02 trigger u pick all untis matching condition instead of a group variable im not sure if it was that but the spell lagged a little on me.

I don´t notice any leaks, and i´m using a group variable.
I can´t see any any unit group which isn´t stored and called via a group variable.
Hmm, maybe it´s a too high amount of special effects for your computer if ca. 10 birds (own and enemied druid) collide? If anyone has other possible explanations, we´d be happy to hear them.
However, thanks doom_sheep.
The map is now updated.

PS: I tend to submit the Magical Birds spell for this contest.
 
Last edited:
Ribenamania the spell (effects look realy nice) , but in my opinion the script is not that efficient. You should remove all BJs also you better use global integer for rawcodes (i prefer it and shorten the script). Also if you use vJass better use structs . Also i saw that u didn't fixed all leaks. u forgot to remove some locations and to null all handles

But the idea rocks :p

Where do you find the leaks, I can't find any.
Btw, what did you mean by using global integer for rawcodes.
I used constant function for efficient for people to change easily.. you know, not all people know JASS.

Also, structs isn't good in this spell.
 
Level 23
Joined
Nov 29, 2006
Messages
2,482
Hmm, I think Im going to change my theme since 2 of you already used 'mah' wisps;)

Elune and the moon is kind of representing the Night Elfs as well doesnt it? So will it fit the theme Nature? (I am generally asking any of you for your opinion).
 
Level 9
Joined
May 27, 2006
Messages
498
Eccho said:
Elune and the moon is kind of representing the Night Elfs as well doesnt it? So will it fit the theme Nature? (I am generally asking any of you for your opinion).

I dont think Poot is going to accept this... But meh, moon and stars are a part of "naturally created" world, maybe it wil fit D:
Anyway, im out of ideas as well... Try lurking in the spells section to find an inspiration :p

EDIT
Oh, btw, found an ability (from wow D:) that might give you an idea:
teh spell
Insect Swarm | Rank 1
9% of base mana | 30 yd range
Instant cast
The enemy target is swarmed by insects, decreasing their chance to hit by 3% and causing 144 Nature damage over 12 sec.
I've never seen anything using swarming insects in wc3 D:
/EDIT

And btw, i updated my code according to your tips, Eccho :)
Here's the map:
 
Last edited:
Level 23
Joined
Nov 29, 2006
Messages
2,482
Well, thanks for the tip =). Though the concept of that wow spell is too weak, and might be too easy to do (its basically Drunken Brawler + Shadow Strike I mean...) But sure, if I would find a neat way to summon some annoying insects then, why not^^.

And your spell is much better now :D The only thing I think looks bad (or worse than the rest of it) is that when the spore/tree is growing after birth animation it looks croppy(?). But hey, its easily changed with a smaller wait interval.

Also, dont forget that TriggerSleepActions may be tricky. Timers are usually a better solution, but it seems to not have affected the spell so it's probably okay.

As it comes to my spell, I appear to not be able to continue due to a strange error. I might get back to the old JNGP for the 1.21 patch... No wait it was just my own fault...
 
Level 16
Joined
Feb 22, 2006
Messages
960
Where do you find the leaks, I can't find any.
Btw, what did you mean by using global integer for rawcodes.
I used constant function for efficient for people to change easily.. you know, not all people know JASS.

Also, structs isn't good in this spell.

firt constant functions are nearly the same as globals in this case, but you have less lines if you use globals as rawcode ;) here an example
JASS:
globals
    private constant integer raw1 = 'A001'
endglobals

second, i didn't see some RemoveLocation(xxx) lines and you only forgot to null the handles :D, then like i said, try to avoid the usage of BJs (that means that you have to use coordinates some times) an example:

Old:
JASS:
private function Spirit_of_Nature_Tree takes nothing returns nothing
    local destructable tree = GetEnumDestructable()
    local location treeloc
    local integer level = GetUnitAbilityLevel(spirit, RootRawCode())
    if ( tree != null and GetWidgetLife(tree) > .405 == true and IsUnitAliveBJ(spirit))  then
        set treeloc = GetDestructableLoc(tree)
        call KillDestructable( tree )
        call KillUnit( spirit )
        call GroupRemoveUnit(unitgroup, spirit)
        call DestroyEffect(AddSpecialEffectLoc("Objects\\Spawnmodels\\NightElf\\EntBirthTarget\\EntBirthTarget.mdl", treeloc))
        call CreateNUnitsAtLoc( 1, ThreantRawCode(), GetOwningPlayer(spirit), treeloc, 270.00 )
        call UnitApplyTimedLife(GetLastCreatedUnit(), 'BTLF', ThreantTimedLife(level))
        set tree = null
        set spirit = null
        call RemoveLocation(treeloc)
    else
        set tree = null
    endif
endfunction

New:
JASS:
private function Spirit_of_Nature_Tree takes nothing returns nothing
    local destructable tree = GetEnumDestructable()
    local real x = GetDestructableX(tree)
    local real y = GetDestructableY(tree)
    local integer level = GetUnitAbilityLevel(spirit, RootRawCode())
    local effect sfx
    local unit u
    if tree != null and GetWidgetLife(tree) > .405 and GetUnitState(spirit,UNIT_STATE_LIFE)  > 0 then
        call KillDestructable( tree )
        call KillUnit(spirit)
        call GroupRemoveUnit(unitgroup, spirit)
        set sfx = AddSpecialEffect("Objects\\Spawnmodels\\NightElf\\EntBirthTarget\\EntBirthTarget.mdl",x,y)
        call DestroyEffect(sfx)
        set u = CreateUnit(GetOwningPlayer(spirit),ThreantRawCode(),x,y,270)
        call UnitApplyTimedLife(u, 'BTLF', ThreantTimedLife(level))
        set spirit = null
    endif
    set sfx = null
    set u = null
    set tree = null
endfunction

in the function Spirit_of_Nature_Actions you forgot to null the locations etc.

so if u have questions ask :D
 
Why must I make an sfx variable.. creating an effect and destroy it again.
I can just DestoryEffect(AddEffect() in one hit. =)
Anyway, my Spirit_of_Nature_Actions doesn't has location leak -.-

Well, I would like to use function so that people are easier to see and understand, thanks anyway. =)
Spell updated, took away alot of BJs
 
Level 12
Joined
Apr 27, 2008
Messages
1,228
Please people, remove the older versions of your spells from this thread :)
P.s. Easily done from the User CP ->Miscellaneous->Attachments
 
Level 9
Joined
May 27, 2006
Messages
498
Slightly improved version of my spell, changed the spores models so that they're not as eyepissing as they were previously :p Also, they explode instantly when they touch ground, without delay.
Final version, hopefully... :p
 

Attachments

  • SSMC#16 - raft_pl.w3x
    41.3 KB · Views: 60
Level 13
Joined
Mar 16, 2008
Messages
941
Why must I make an sfx variable.. creating an effect and destroy it again.
I can just DestoryEffect(AddEffect() in one hit. =)
Anyway, my Spirit_of_Nature_Actions doesn't has location leak -.-

Well, I would like to use function so that people are easier to see and understand, thanks anyway. =)
Spell updated, took away alot of BJs

As soon as your model has a "stand" animation this won't work and instantly play the death animation ;)

Btw, my spell is nearly finished. Just didn't recognized it was just MPI, now it's MUI, have to change the effects since it looks too boring ._.
 
I think this one is pretty much finished. I have removed the "remove buff" action, so the tooltip is lying. and the buff text is red D:

View attachment Touch of Nature S&S #16 -BZR-(3).w3x

Edit:
JASS:
function Trig_Touch_of_Nature_Copy_2_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A003' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Touch_of_Nature_Copy_2_Actions takes nothing returns nothing
    local unit ut = GetSpellTargetUnit()
    local unit uc = GetTriggerUnit()
    local texttag tag = GetLastCreatedTextTag()

    if GetUnitLifePercent(ut) <= 33.00 and GetRandomInt(1, 100) <= 10 + 10 * GetUnitAbilityLevel(uc, 'A003') then
    call SetUnitLifePercentBJ(ut, 100 )
    call SetUnitManaPercentBJ(ut, 100 )
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Charm\\CharmTarget.mdl", ut, "origin" ))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Invisibility\\InvisibilityTarget.mdl", ut, "origin" ))
    call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\NightElf\\EntBirthTarget\\EntBirthTarget.mdl", ut, "origin" ))
    call CreateTextTagUnitBJ( "TRIGSTR_067", ut, 0, 10, 0.00, 60.00, 0.00, 0 )
    call SetTextTagPermanent (tag, false)
    call SetTextTagVelocity (tag, 64, 90 )
    call SetTextTagFadepoint (tag, 2.00 )
    call SetTextTagLifespan (tag, 3.50 )
    else
    call SetUnitLifeBJ(ut, ( I2R(R2I(GetUnitStateSwap(UNIT_STATE_LIFE, ut))) + ( 120.00 * I2R(GetUnitAbilityLevelSwapped('A003', uc)) ) ) )
    call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\NightElf\\NEDeathSmall\\NEDeathSmall.mdl", ut, "origin" ))
    endif
    call UnitAddAbility (ut, 'A001')
    call SetUnitAbilityLevelSwapped( 'A001', ut, GetUnitAbilityLevelSwapped('A003', uc) )
    call UnitAddAbility (ut, 'A004')
    call SetUnitAbilityLevelSwapped( 'A004', ut, GetUnitAbilityLevelSwapped('A003', uc) )
    call UnitAddAbility (ut, 'A002')
    call SetUnitAbilityLevelSwapped( 'A002', ut, GetUnitAbilityLevelSwapped('A003', uc) )
    call PolledWait( 10.00 )
    call UnitRemoveAbility (ut, 'A001')
    call UnitRemoveAbility (ut, 'A004')
    call UnitRemoveAbility(ut, 'A002')
    set ut = null
    set uc = null
    set tag = null
endfunction

//===========================================================================
function InitTrig_Touch_of_Nature_Copy_2 takes nothing returns nothing
    set gg_trg_Touch_of_Nature_Copy_2 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Touch_of_Nature_Copy_2, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Touch_of_Nature_Copy_2, Condition( function Trig_Touch_of_Nature_Copy_2_Conditions ) )
    call TriggerAddAction( gg_trg_Touch_of_Nature_Copy_2, function Trig_Touch_of_Nature_Copy_2_Actions )
endfunction

How does this looks? D:
And 2 questions:
-Can i only use BJ for percentage of life/mana? (or is there any native)
-Floating text...? how? (it makes it now, but it just gets stuck in the air)

Edit:
And do i need a variable for each integer/real (lets say for this "call SetTextTagVelocity (tag, 64, 90 )"? Do i need local integer i1 =64 and local integer i2 = 90 ?

Thanks, I have learned much from you guys in this last week :)
 
Last edited:
Level 12
Joined
Apr 27, 2008
Messages
1,228
call SetUnitState(ut,UNIT_STATE_LIFE,GetUnitState(ut,UNIT_STATE_MAX_LIFE))

No, you do not need to have variables for all arguments. They are fine as they are.
 
Thanks guys. I will try it tomorrow. I'm off to bed now.
Now i don't get this part(god I'm stupid)
JASS:
    call CreateTextTagUnitBJ( "TRIGSTR_067", ut, 0, 10, 0.00, 60.00, 0.00, 0 )
    call SetTextTagPermanent (tag, false)
    call SetTextTagVelocity (tag, 64, 90 )
    call SetTextTagFadepoint (tag, 2.00 )
    call SetTextTagLifespan (tag, 3.50 )

Agrrrrr....
I can't make this work
JASS:
call SetUnitState (ut, UNIT_STATE_LIFE,GetUnitState(ut, UNIT_STATE_LIFE + GetUnitAbilityLevelSwapped ('A003', uc) * i   ))

i = 120
 
Last edited:
Level 12
Joined
Apr 27, 2008
Messages
1,228
Thanks guys. I will try it tomorrow. I'm off to bed now.
Now i don't get this part(god I'm stupid)
JASS:
    call CreateTextTagUnitBJ( "TRIGSTR_067", ut, 0, 10, 0.00, 60.00, 0.00, 0 )
    call SetTextTagPermanent (tag, false)
    call SetTextTagVelocity (tag, 64, 90 )
    call SetTextTagFadepoint (tag, 2.00 )
    call SetTextTagLifespan (tag, 3.50 )

Agrrrrr....
I can't make this work
JASS:
call SetUnitState (ut, UNIT_STATE_LIFE,GetUnitState(ut, UNIT_STATE_LIFE + GetUnitAbilityLevelSwapped ('A003', uc) * i   ))

i = 120

About the last part:

JASS:
call SetUnitState (ut, UNIT_STATE_LIFE,GetUnitState(ut, UNIT_STATE_LIFE) + GetUnitAbilityLevel(uc,'A003') * i   )
Misplaced ')' :p
And don;'t use GetUnitAbilityLevelSwapped, it only calls GetUnitAbilityLevel and switches the parameters.
About text tags:
What do you not get?
JASS:
    call CreateTextTagUnitBJ( "TRIGSTR_067", ut, 0, 10, 0.00, 60.00, 0.00, 0 )
    call SetTextTagPermanent (tag, false)
    call SetTextTagVelocity (tag, 64, 90 )
    call SetTextTagFadepoint (tag, 2.00 )
    call SetTextTagLifespan (tag, 3.50 )
I think the last 4 should be clear?
Only the first one is misty?
That is what you get from converting from gui. GUI stores all strings in a ... somewhere and later refers to them with such expressions - "TRIGSTR_067"
Oh, I am going to avoid lying to you(because I can't remember what exactly each parameter of that function is) and I am going to leave it to someone else.
 
Level 12
Joined
Aug 20, 2007
Messages
866
@Berzerker

I highly suggest getting the jassnewgenpack, it has a function list built in which helps tremendously when your looking for BJ replacements

As far as setting #'s to variables, every function call takes time and memory from your computer (ie, lowers efficiency). Some calls do this much more than others, as some functions do much more than others. In certain cases, you'd want to use variables to increase efficiency. A good example would be if you wanted more than one thing to rely on the level of a units ability. If you set a variable to it, it only needs to check the units ability level once. If you don't set a variable to it, not only do you need to waste your time typing the whole function when you want to use it, the computer also needs to keep calling that function, making it less efficient.

EDIT - As far as playing with floating texts, I think you need to learn more about what handles truly are before trying to program with one. I might make a tutorial on handles.
 
I think this one is pretty much finished. I have removed the "remove buff" action, so the tooltip is lying. and the buff text is red D:

You can always use colour codes to take away the red colour. =)

As soon as your model has a "stand" animation this won't work and instantly play the death animation ;)

Btw, my spell is nearly finished. Just didn't recognized it was just MPI, now it's MUI, have to change the effects since it looks too boring ._.

What did you meant by "stand" and then death, I used those animation so that it would have some "crash to it" effect, "death" animation was the best selection. I can't think of other animation.. it would look bad.

Yes, it was MUI.. =) Thanks for viewing
 
Status
Not open for further replies.
Top