Grymlax
Probably not around
- Reaction score
- 138
2 days ago I started reading some Jass tutorials and now after a lot of time and frustration I’m ready to post my first Jass spell. The purpose of this post is feedback so please tell me everything I did wrong and everything I missed to clean.
thanks!
Oh right, I should perhaps also mention that there are no cool special effects or anything else fancy with this spell for that matter, at all. Just so you don't get disappointed if you take a look at the spell. This spell was made only so that I would get a better understanding of jass.
Gui/jass: Jass (finally )
Leakless: dunno (this is one of the things i need help with)
lagless: yupp
mui: yes :shades:
here is the code and further down on the post there is an attachment if you wanna see the spell in action.
thanks!
Oh right, I should perhaps also mention that there are no cool special effects or anything else fancy with this spell for that matter, at all. Just so you don't get disappointed if you take a look at the spell. This spell was made only so that I would get a better understanding of jass.
Code:
[COLOR="Orange"]B[/COLOR]oost of Life
While channeling the spell the hero will restore a certain % of the health points he is missing.
[COLOR="Orange"]Level 1[/COLOR] - Restores 50%
[COLOR="Orange"]Level 2[/COLOR] - Restores 75%
[COLOR="Orange"]Level 3[/COLOR] - Restores 100%
Gui/jass: Jass (finally )
Leakless: dunno (this is one of the things i need help with)
lagless: yupp
mui: yes :shades:
here is the code and further down on the post there is an attachment if you wanna see the spell in action.
JASS:
function Trig_Boost_of_life_Actions takes nothing returns nothing
local integer Index = 0
local unit Caster = GetTriggerUnit()
local real Missinglife = ( ( GetUnitState(Caster, UNIT_STATE_MAX_LIFE) - GetUnitState(Caster, UNIT_STATE_LIFE) ) * ( ( 1 + (GetUnitAbilityLevel(Caster, 039;A000039;)) ) / 40.00 ) )
local texttag Missinglifetext
if ( GetSpellAbilityId() == 039;A000039; ) then
loop
exitwhen Index > 10
if (GetUnitCurrentOrder(Caster) == 852600 ) then
call SetUnitState(Caster, UNIT_STATE_LIFE, GetUnitState(Caster, UNIT_STATE_LIFE) + Missinglife)
set Missinglifetext = CreateTextTag()
call SetTextTagText(Missinglifetext, ("+") + I2S(R2I(Missinglife)), 0.023)
call SetTextTagPosUnit(Missinglifetext, Caster, 0.00)
call SetTextTagColor(Missinglifetext, 50, 225, 50, 255)
call SetTextTagVelocity(Missinglifetext, 0, 0.036)
call SetTextTagLifespan(Missinglifetext, 3.00)
call SetTextTagFadepoint(Missinglifetext, 2.00 )
call SetTextTagPermanent(Missinglifetext, false)
call SetTextTagVisibility(Missinglifetext,true)
call TriggerSleepAction( 0.96 )
else
endif
set Index = Index + 1
endloop
set Caster = null
set Missinglifetext = null
else
endif
endfunction
//===========================================================================
function InitTrig_Boost_of_life takes nothing returns nothing
set gg_trg_Boost_of_life = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Boost_of_life, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_Boost_of_life, function Trig_Boost_of_life_Actions )
endfunction