two simple and easy leakless spells, one is GUI one is Jass, Import Difficulty: Medium, Made them for my map, please leave comments and if u like it feel free to use in your map..
Blood Loss: Afflicts an enemy unit with blood loss dealing damage to it, and if the enemy unit tries to move the wound opens and he starts loosing blood and taking damage equal to a percentage of distance traveled
Untouchable: Turns your collision size off , and makes you invulnerable granting a quick escape from enemies
hope u like it, give credit + rep plz
Blood Loss: Afflicts an enemy unit with blood loss dealing damage to it, and if the enemy unit tries to move the wound opens and he starts loosing blood and taking damage equal to a percentage of distance traveled
Untouchable: Turns your collision size off , and makes you invulnerable granting a quick escape from enemies
Code:
function Trig_BloodLoss_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A001'
endfunction
function BloodLoss_Effects takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u = GetHandleUnit(t, "u")
local unit v = GetHandleUnit(t, "v")
local location l = GetHandleLocation(t,"l")
local integer i = GetHandleInt(t, "i")
call UnitDamageTargetBJ( u, v, ( ( 0.20 * i ) * DistanceBetweenPoints(GetUnitLoc(v), l) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
if UnitHasBuffBJ(v, 'B000') == true then
if GetBooleanOr(GetLocationX(GetUnitLoc(v)) != GetLocationX(l),GetLocationY(GetUnitLoc(v)) != GetLocationY(l)) then
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",v,"chest"))
endif
endif
set l = GetUnitLoc(v)
call SetHandleHandle(t, "l", l)
set t = null
set u = null
set v = null
endfunction
function Trig_BloodLoss_Actions takes nothing returns nothing
local timer t = CreateTimer()
local unit u = GetTriggerUnit()
local unit v = GetSpellTargetUnit()
local integer i = GetUnitAbilityLevelSwapped('A003', u)
local location l = GetUnitLoc(v)
call SetHandleHandle(t, "u", u)
call SetHandleHandle(t, "v", v)
call SetHandleInt(t, "i", i)
call SetHandleHandle(t, "l", l)
call TimerStart(t, 0.04, true, function BloodLoss_Effects)
call UnitDamageTarget( u, v, ( 150.00 + ( 100.00 * ( I2R(i) - 1 ) ) ),false, true, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL,WEAPON_TYPE_AXE_MEDIUM_CHOP )
call TriggerSleepAction( ( 3.00 + ( 2.00 * I2R(i) ) ) )
call FlushHandleLocals(t)
call PauseTimer(t)
call DestroyTimer(t)
set t = null
set u = null
set v = null
call RemoveLocation(l)
set l = null
endfunction
//===========================================================================
function InitTrig_Blood_Loss takes nothing returns nothing
set gg_trg_Blood_Loss = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Blood_Loss, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Blood_Loss, Condition( function Trig_BloodLoss_Conditions ) )
call TriggerAddAction( gg_trg_Blood_Loss, function Trig_BloodLoss_Actions )
endfunction
Code:
function Trig_Untouchable_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction
function Trig_Untouchable_Actions takes nothing returns nothing
call SetUnitPathing( GetTriggerUnit(), false )
call SetUnitInvulnerable( GetTriggerUnit(), true )
call SetUnitVertexColorBJ( GetTriggerUnit(), 100, 0.00, 100, 35.00 )
call TriggerSleepAction( ( 10.00 + ( 4.00 * I2R(GetUnitAbilityLevelSwapped('A000', GetTriggerUnit())) ) ) )
call SetUnitInvulnerable( GetTriggerUnit(), false )
call SetUnitVertexColorBJ( GetTriggerUnit(), 100, 100.00, 100, 0.00 )
call SetUnitPathing( GetTriggerUnit(), true )
endfunction
//===========================================================================
function InitTrig_Untouchable takes nothing returns nothing
set gg_trg_Untouchable = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Untouchable, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Untouchable, Condition( function Trig_Untouchable_Conditions ) )
call TriggerAddAction( gg_trg_Untouchable, function Trig_Untouchable_Actions )
endfunction
hope u like it, give credit + rep plz