Dashing Weirdly?

Windwalk

New Member
Reaction score
8
Okay one thing ive noticed is everytime i use jass the dashes i make dont look as smooth as the gui ones i make ... which i have no idea why. i set the max distance to 300. and he moves like 4000 distance...

JASS:
function Trig_Pk_Thunder_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A02B'
endfunction

globals
    unit lucas
    unit thunderdummy
    unit thundertarget
    effect array thunders
    location point
    location offset
    location offsetcount
    location thundertargetloc
    real dis = 300.00
    real discount = 0.00
    group thunda
    real angle
endglobals

function Trig_Pk_Thunder_Actions takes nothing returns nothing
    set lucas = GetTriggerUnit()
    set point = GetUnitLoc(lucas)
    set thundertarget = GetSpellTargetUnit()
    set thundertargetloc = GetUnitLoc(thundertarget)
    if thundertarget == lucas then
    set angle = GetUnitFacing(lucas)
    set thunderdummy = CreateUnitAtLoc(GetOwningPlayer(lucas), 'h00A', point, angle)
    call UnitAddAbility(thunderdummy, 'Amrf')
    call SetUnitAbilityLevel(thunderdummy, 'Amrf', 1)
    call SetUnitFlyHeight(thunderdummy, 700.00, 0.00)
    call IssueTargetOrder(thunderdummy, "chainlightning", lucas)
    call TriggerSleepAction( 0.03 )
    call RemoveUnit(thunderdummy)
    set thunderdummy = null
    loop
        exitwhen discount >= dis
        set point = GetUnitLoc(lucas)
        set discount = discount + 5.00
        set offset = PolarProjectionBJ(point, discount, angle)
        set thunders[1] = AddSpecialEffectTargetUnitBJ( "chest", lucas, "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" )
        set thunders[2] = AddSpecialEffectLocBJ(point, "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl" )
        set thunders[3] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Items\\AIlb\\AIlbSpecialArt.mdl" )
        set thunders[4] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl" )
        call SetUnitPositionLoc(lucas, offset)
        call SetUnitAnimation(lucas, "Walk" )
        set point = null
        set offset = null
        call TriggerSleepAction( 0.03 )
        call DestroyEffect(thunders[1])
        call DestroyEffect(thunders[2])
        call DestroyEffect(thunders[3])
        call DestroyEffect(thunders[4])
    endloop
    else
    endif
endfunction

//===========================================================================
function InitTrig_Pk_Thunder takes nothing returns nothing
    local trigger Pk_Thunder = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Pk_Thunder, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( Pk_Thunder, Condition( function Trig_Pk_Thunder_Conditions ) )
    call TriggerAddAction( Pk_Thunder, function Trig_Pk_Thunder_Actions )
endfunction


problem is he dashes like 4000 distance and the dashes looks very... unsmooth
 
Reaction score
341
JASS:
function Trig_Pk_Thunder_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A02B'
endfunction

globals
    unit lucas
    unit thunderdummy
    unit thundertarget
    effect array thunders
    location point
    location offset
    location offsetcount
    location thundertargetloc
    real dis = 300.00
    real discount = 0.00
    group thunda
    real angle
endglobals

function actions2 takes nothing returns nothing
    call RemoveUnit(thunderdummy)
    set thunderdummy = null
    loop
        exitwhen discount >= dis
        set point = GetUnitLoc(lucas)
        set discount = discount + 5.00
        set offset = PolarProjectionBJ(point, discount, angle)
        set thunders[1] = AddSpecialEffectTargetUnitBJ( "chest", lucas, "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" )
        set thunders[2] = AddSpecialEffectLocBJ(point, "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl" )
        set thunders[3] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Items\\AIlb\\AIlbSpecialArt.mdl" )
        set thunders[4] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl" )
        call SetUnitPositionLoc(lucas, offset)
        call SetUnitAnimation(lucas, "Walk" )
        set point = null
        set offset = null
        call TriggerSleepAction( 0.03 ) // do the same here
        call DestroyEffect(thunders[1])
        call DestroyEffect(thunders[2])
        call DestroyEffect(thunders[3])
        call DestroyEffect(thunders[4])
    endloop
    else
    endif
endfunction

function Trig_Pk_Thunder_Actions takes nothing returns nothing
    local timer t = CreateTimer()
    set lucas = GetTriggerUnit()
    set point = GetUnitLoc(lucas)
    set thundertarget = GetSpellTargetUnit()
    set thundertargetloc = GetUnitLoc(thundertarget)
    if thundertarget == lucas then
    set angle = GetUnitFacing(lucas)
    set thunderdummy = CreateUnitAtLoc(GetOwningPlayer(lucas), 'h00A', point, angle)
    call UnitAddAbility(thunderdummy, 'Amrf')
    call SetUnitAbilityLevel(thunderdummy, 'Amrf', 1)
    call SetUnitFlyHeight(thunderdummy, 700.00, 0.00)
    call IssueTargetOrder(thunderdummy, "chainlightning", lucas)
    call TimerStart(t, 0.03, false, function actions2)
endfunction

//===========================================================================
function InitTrig_Pk_Thunder takes nothing returns nothing
    local trigger Pk_Thunder = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Pk_Thunder, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( Pk_Thunder, Condition( function Trig_Pk_Thunder_Conditions ) )
    call TriggerAddAction( Pk_Thunder, function Trig_Pk_Thunder_Actions )
endfunction


I'm not even sure if that would work. I did that in this text editor but timers are accurate, waits are not.

JASS:
globals
    integer i = 0
endglobals

function kasjd takes nothing returns nothing
    call BJDebugMsg(i) // will display i, increases +1 ever 0.01 seconds, accurately.
    set i = i + 1
endfunction

function init takes nothing returns nothing
    local timer t = CreateTimer()
    call TimerStart(t, 0.01, true, function kasjd)
endfunction
 

Windwalk

New Member
Reaction score
8
JASS:

function Trig_Pk_Thunder_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A02B'
endfunction

globals
    unit lucas
    unit thunderdummy
    unit thundertarget
    effect array thunders
    location point
    location offset
    location offsetcount
    location thundertargetloc
    real dis = 300.00
    real discount = 0.00
    group thunda
    real angle
endglobals

function actions2 takes nothing returns nothing
    call RemoveUnit(thunderdummy)
    set thunderdummy = null
    loop
        exitwhen discount >= dis
        set point = GetUnitLoc(lucas)
        set discount = discount + 5.00
        set offset = PolarProjectionBJ(point, discount, angle)
        set thunders[1] = AddSpecialEffectTargetUnitBJ( "chest", lucas, "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" )
        set thunders[2] = AddSpecialEffectLocBJ(point, "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl" )
        set thunders[3] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Items\\AIlb\\AIlbSpecialArt.mdl" )
        set thunders[4] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl" )
        call SetUnitPositionLoc(lucas, offset)
        call SetUnitAnimation(lucas, "Walk" )
        set point = null
        set offset = null
        call TriggerSleepAction( 0.03 ) // do the same here
        call DestroyEffect(thunders[1])
        call DestroyEffect(thunders[2])
        call DestroyEffect(thunders[3])
        call DestroyEffect(thunders[4])
    endloop
    else
    endif
endfunction

function Trig_Pk_Thunder_Actions takes nothing returns nothing
    local timer t = CreateTimer()
    set lucas = GetTriggerUnit()
    set point = GetUnitLoc(lucas)
    set thundertarget = GetSpellTargetUnit()
    set thundertargetloc = GetUnitLoc(thundertarget)
    if thundertarget == lucas then
    set angle = GetUnitFacing(lucas)
    set thunderdummy = CreateUnitAtLoc(GetOwningPlayer(lucas), 'h00A', point, angle)
    call UnitAddAbility(thunderdummy, 'Amrf')
    call SetUnitAbilityLevel(thunderdummy, 'Amrf', 1)
    call SetUnitFlyHeight(thunderdummy, 700.00, 0.00)
    call IssueTargetOrder(thunderdummy, "chainlightning", lucas)
    call TimerStart(t, 0.03, false, function actions2)
endfunction

//===========================================================================
function InitTrig_Pk_Thunder takes nothing returns nothing
    local trigger Pk_Thunder = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Pk_Thunder, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( Pk_Thunder, Condition( function Trig_Pk_Thunder_Conditions ) )
    call TriggerAddAction( Pk_Thunder, function Trig_Pk_Thunder_Actions )
endfunction


I'm not even sure if that would work. I did that in this text editor but timers are accurate, waits are not.

JASS:


globals
    integer i = 0
endglobals

function kasjd takes nothing returns nothing
    call BJDebugMsg(i) // will display i, increases +1 ever 0.01 seconds, accurately.
    set i = i + 1
endfunction

function init takes nothing returns nothing
    local timer t = CreateTimer()
    call TimerStart(t, 0.01, true, function kasjd)
endfunction

the timer knows when to stop right? :S
 

Windwalk

New Member
Reaction score
8
JASS:
function Trig_Pk_Thunder_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A02B'
endfunction

globals
    unit lucas
    unit thunderdummy
    unit thundertarget
    effect array thunders
    location point
    location offset
    location offsetcount
    location thundertargetloc
    real dis = 100.00
    real discount = 0.00
    group thunda
    real angle
    timer movement = CreateTimer()
endglobals


function Trig_Pk_Thunder_Actions takes nothing returns nothing
    loop
        exitwhen discount >= dis
        set point = GetUnitLoc(lucas)
        set discount = discount + 15.00
        set offset = PolarProjectionBJ(point, discount, angle)
        set thunders[1] = AddSpecialEffectTargetUnitBJ( "chest", lucas, "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" )
        set thunders[2] = AddSpecialEffectLocBJ(point, "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl" )
        set thunders[3] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Items\\AIlb\\AIlbSpecialArt.mdl" )
        set thunders[4] = AddSpecialEffectLocBJ(point, "Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl" )
        call SetUnitPositionLoc(lucas, offset)
        call SetUnitAnimation(lucas, "Walk" )
        set point = null
        set offset = null
        call DestroyEffect(thunders[1])
        call DestroyEffect(thunders[2])
        call DestroyEffect(thunders[3])
        call DestroyEffect(thunders[4])
    endloop
    call PauseUnit(lucas, false)
endfunction

function timerstart takes nothing returns nothing
    set discount = 0.00
    set lucas = GetTriggerUnit()
    set point = GetUnitLoc(lucas)
    set thundertarget = GetSpellTargetUnit()
    set thundertargetloc = GetUnitLoc(thundertarget)
    call TriggerSleepAction( 0.03 )
    if thundertarget == lucas then
    set angle = GetUnitFacing(lucas)
    call TimerStart(movement, 0.10, true, function Trig_Pk_Thunder_Actions )
    else
    endif
endfunction

//===========================================================================
function InitTrig_Pk_Thunder takes nothing returns nothing
    local trigger Pk_Thunder = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Pk_Thunder, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( Pk_Thunder, Condition( function Trig_Pk_Thunder_Conditions ) )
    call TriggerAddAction( Pk_Thunder, function timerstart )
endfunction


okay heres what i got now :S but when i use the skill a second time he moves the wrong way :S

edit: OMFG ITs still instant :S
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top