Flash point skill, got it , need help.

Kyzerdrood

New Member
Reaction score
3
hey everyone, i made a post earlier, which im going to go post in right after this, about me needing the Flash Point skill from the Magician in TBR.

basically what it does, is when u cast something, it creates two circles of explosions outside the unit doing damage.

anyway, i asked the map creator of the map, and he recently lost his unprotected maps and couldnt give me the spell, but would if he could.

so im not patient and dont want to wait for him to get his maps back, so i just opened the script in jasscraft and got the spell.

Problem is, he said it leaks badly.

And, when i imported it, it has a two second delay or so before it acually happens, it instantly spawns fire effects but takes a few seconds to do the damage and explosions.


im new with jass and i dont know whats causing the delay and how to fix the leaks, i would +rep anyone who could make this leakless, and show me what to do to get rid of the delay.




Idk if i can rep, i think i can, and ill try to rep anyone who helps.


Heres the code
its a big jumble lol

Trigger
JASS:
//TESH.scrollpos=51
//TESH.alwaysfold=0
function notin takes nothing returns nothing
    local unit udg_flashpointCaster
    local real udg_flashpointMana=0
    local trigger gg_trg_flashpoint=null 
endfunction

function Trig_flashpoint_Conditions takes nothing returns boolean
  if(not(GetSpellAbilityId()=='A0K7'))then
    return false
    endif
    return true
    endfunction
function Trig_flashpoint_Func001002003 takes nothing returns boolean
    return(IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()),GetOwningPlayer(GetTriggerUnit()))==true)
endfunction
function Trig_flashpoint_Func002002 takes nothing returns nothing
    call UnitDamageTargetBJ(GetTriggerUnit(),GetEnumUnit(),I2R(udg_damageBonus[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_MAGIC)
endfunction
function Trig_flashpoint_Func004C takes nothing returns boolean
  if(not(IsUnitType(GetSpellAbilityUnit(),UNIT_TYPE_HERO)==true))then
    return false
    endif
    return true
endfunction
function Trig_flashpoint_Func005Func002C takes nothing returns boolean
    return true
endfunction
function Trig_flashpoint_Func009002 takes nothing returns nothing
    call RemoveUnit(GetEnumUnit())
endfunction
function Trig_flashpoint_Actions takes nothing returns nothing
    set udg_group1=GetUnitsInRangeOfLocMatching(600.00,GetUnitLoc(GetTriggerUnit()),Condition(function Trig_flashpoint_Func001002003))
    call ForGroupBJ(udg_group1,function Trig_flashpoint_Func002002)
    set udg_flashpointCaster=GetTriggerUnit()
if(Trig_flashpoint_Func004C())then
    set bj_forLoopAIndex=1
    set bj_forLoopAIndexEnd=11
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
    set bj_forLoopBIndex=1
    set bj_forLoopBIndexEnd=18
loop
exitwhen bj_forLoopBIndex>bj_forLoopBIndexEnd
    set udg_point1=GetUnitLoc(GetTriggerUnit())
    set udg_point2=PolarProjectionBJ(udg_point1,350.00,((I2R(GetForLoopIndexA())*90.00)+(I2R(GetForLoopIndexB())*5.00)))
    call CreateNUnitsAtLoc(1,'h01S',GetOwningPlayer(GetTriggerUnit()),udg_point2,bj_UNIT_FACING)
    set udg_point2=PolarProjectionBJ(udg_point1,350.00,((I2R(GetForLoopIndexA())*180.00)+(I2R(GetForLoopIndexB())*5.00)))
    call CreateNUnitsAtLoc(1,'h01S',GetOwningPlayer(GetTriggerUnit()),udg_point2,bj_UNIT_FACING)
    set udg_point2=PolarProjectionBJ(udg_point1,350.00,((I2R(GetForLoopIndexA())*270.00)+(I2R(GetForLoopIndexB())*5.00)))
    call CreateNUnitsAtLoc(1,'h01S',GetOwningPlayer(GetTriggerUnit()),udg_point2,bj_UNIT_FACING)
    set udg_point2=PolarProjectionBJ(udg_point1,350.00,((I2R(GetForLoopIndexA())*360.00)+(I2R(GetForLoopIndexB())*5.00)))
    call CreateNUnitsAtLoc(1,'h01S',GetOwningPlayer(GetTriggerUnit()),udg_point2,bj_UNIT_FACING)
    call RemoveLocation(udg_point1)
    call RemoveLocation(udg_point2)
    set bj_forLoopBIndex=bj_forLoopBIndex+1
endloop
    call TriggerSleepAction(0.01)
    set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
    else
    endif
    set bj_forLoopAIndex=1
    set bj_forLoopAIndexEnd=10
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
    set udg_nuclear_flame_level=GetUnitAbilityLevelSwapped('A0K7',GetTriggerUnit())
if(Trig_flashpoint_Func005Func002C())then
    set bj_forLoopAIndex=1
    set bj_forLoopAIndexEnd=16
loop
exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
    call CreateNUnitsAtLoc(1,'h01T',GetOwningPlayer(GetTriggerUnit()),GetUnitLoc(GetTriggerUnit()),bj_UNIT_FACING)
    call SetUnitAbilityLevelSwapped('A0K8',GetLastCreatedUnit(),udg_nuclear_flame_level)
    call UnitApplyTimedLifeBJ(2.00,'BTLF',GetLastCreatedUnit())
    call IssuePointOrderLocBJ(GetLastCreatedUnit(),"impale",PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()),100.00,udg_nuclear_flame_area))
    set udg_nuclear_flame_area=(udg_nuclear_flame_area+25.00)
    set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
else
endif
    set bj_forLoopAIndex=bj_forLoopAIndex+1
endloop
 call TriggerSleepAction(0.70)
 call TriggerSleepAction(0.50)
    set udg_group1=GetUnitsOfTypeIdAll('h01S')
    call ForGroupBJ(udg_group1,function Trig_flashpoint_Func009002)
    call DestroyGroup(udg_group1)
endfunction

function InitTrig_flashpoint takes nothing returns nothing
    set gg_trg_flashpoint=CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_flashpoint,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_flashpoint,Condition(function Trig_flashpoint_Conditions))
    call TriggerAddAction(gg_trg_flashpoint,function Trig_flashpoint_Actions)
endfunction
 
Reaction score
341
You just converted a GUI trigger to JASS.

Tips..
  • Remove all the BJ's
  • Fix all the integer A/B loops, use local integers instead
  • Fix all those conditions, dont make'em call to other functions

It would be better writing that code from scratch in JASS, Than converting from GUI and porting to good JASS.
 

Kyzerdrood

New Member
Reaction score
3
as i said, i took it from the j file in his map, since he didnt have the unprotected GUI version, and i dont no how to make it from scratch or make it in GUI lol.
 
Reaction score
341
Well thats just a GUI trigger (when a map is saved, triggers are compiled to jass) so... Read up on some jass tutorials, and fixing this should be a breeze.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top