Does this still even work?

Naga'sShadow

Ultra Cool Member
I have admittedly not messed with this stuff in a very long time. I know that most of my code is from before the patch that added hashtables and broke all my stuff. So I have started on something new and as far as I know it should work. Jass NG saves fine but the game drops me to the opening page when I attempt to test it. So some unknown trigger error. Here is the trigger in question.

Code:
scope InnerFire initializer init

globals
    private constant integer SPELLID = 'A002' //Spell's Rawcode
    private constant integer HIDID = 'A004' //The hidden Inner Fire's Rawcode
    private constant integer DUMMYID = 'h001' //The hidden caster unit
    private constant string SFX = "Abilities\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl"
endglobals

private function targeting takes nothing returns boolean
    local unit u = GetFilterUnit()
    return GetWidgetLife(u) >= .45 and IsUnitAlly(u, GetOwningPlayer(GetTriggerUnit())) == true
endfunction

private function actions takes unit u returns nothing
    local unit caster = u
    local unit dummy
    local location target = GetSpellTargetLoc()
    local group targets = CreateGroup()
    local unit fog
    local integer i = GetUnitAbilityLevel(u, SPELLID)
   
    call AddSpecialEffectLoc(SFX,target)
   
    call GroupEnumUnitsInRangeOfLoc(targets, target, 200, Filter( function targeting))

    loop
        set fog = FirstOfGroup(targets)
        exitwhen fog == null
        set dummy = CreateUnitAtLoc(GetOwningPlayer(u), DUMMYID, target, 0)
        call UnitAddAbility(dummy, HIDID)
        call SetUnitAbilityLevel(dummy, HIDID, i)
        call IssueTargetOrder(dummy, "innerfire", fog)
        call UnitApplyTimedLife(dummy, 'BHwe', 1)
        call GroupRemoveUnit(targets, fog)
        set fog = null
    endloop
   
endfunction

private function conditions takes nothing returns boolean
    if GetSpellAbilityId() == SPELLID then
        call actions(GetTriggerUnit())
    endif
    return false
endfunction

//===========================================================================
private function init takes nothing returns nothing
    local trigger t = CreateTrigger( )
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( t, Condition( function conditions) )
endfunction

endscope
I'm currently using JNGP 5d. The only link to 2.0 I can find requires me signing up to a site. Is my problem solvable by upgrading or is it in the code itself? Please don't point out the inefficient group setup unless you know a superior way.
 

MyPad

Member
JASS:
scope InnerFire initializer init

//Added AI function...
native UnitAlive takes unit id returns boolean

globals
   private constant integer SPELLID = 'A002' //Spell's Rawcode
   private constant integer HIDID = 'A004' //The hidden Inner Fire's Rawcode
   private constant integer DUMMYID = 'h001' //The hidden caster unit
   private constant string SFX = "Abilities\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl"
endglobals

//Delimited the targeting conditionfunc
/*
private function targeting takes nothing returns boolean
   local unit u = GetFilterUnit()
   return GetWidgetLife(u) >= .45 and IsUnitAlly(u, GetOwningPlayer(GetTriggerUnit())) == true
endfunction
*/

private function actions takes unit u returns nothing
   //local unit caster = u
   local unit dummy

   //Reals
   local real target_x = GetSpellTargetX()
   local real target_y = GetSpellTargetY()
   //local location target = GetSpellTargetLoc()

   local group targets = CreateGroup()
   local unit fog
   local integer i = GetUnitAbilityLevel(u, SPELLID)
   
   call AddSpecialEffect(SFX, target_x, target_y)
   
   call GroupEnumUnitsInRange(targets, target_x, target_y, 200, null)
   loop
       set fog = FirstOfGroup(targets)
       exitwhen fog == null
       if /*GetWidgetLife(fog) >= .45*/ UnitAlive(fog) and IsUnitAlly(fog, GetOwningPlayer(u)) then
           set dummy = CreateUnitAtLoc(GetOwningPlayer(u), DUMMYID, target, 0)
           call UnitAddAbility(dummy, HIDID)
           call SetUnitAbilityLevel(dummy, HIDID, i)
           call IssueTargetOrder(dummy, "innerfire", fog)
           call UnitApplyTimedLife(dummy, 'BHwe', 1)
       endif
       call GroupRemoveUnit(targets, fog)
       set fog = null
   endloop
   
   call DestroyGroup(targets)
   
   set dummy = null
   set fog = null
   set targets = null
endfunction

private function conditions takes nothing returns /*boolean*/ nothing
   if GetSpellAbilityId() == SPELLID then
       call actions(GetTriggerUnit())
   endif
endfunction

//===========================================================================
private function init takes nothing returns nothing
   local trigger t = CreateTrigger( )
   call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
   call TriggerAddCondition( t, Condition( function conditions) )
   //set t = null
endfunction

endscope


Just optimized it! But, I didn't realize it was already solved so ignore this at your discretion :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    seeing some weird stuff doing some moves to the new Weird News forum please see the bathroom admins
  • The Helper The Helper:
    :) it is weird
  • The Helper The Helper:
    btw it was just lag the weirdness is gone
  • Wizard Wizard:
    I checked!
    +1
  • Blackveiled Blackveiled:
    How is everyone doing?
  • Wizard Wizard:
    Alright!
  • The Helper The Helper:
    Doing well thanks!
  • The Helper The Helper:
    Tom Mai check out the post I just found you made in 2006, from an apparent banned account, I do not remember that happening, the post is in the General Discussion Hall of Fame about record breakers
  • Blackveiled Blackveiled:
    Lmao thats somethin right there.
  • tom_mai78101 tom_mai78101:
    How far back were you looking at?
  • tom_mai78101 tom_mai78101:
    But yes, that was me.
  • The Helper The Helper:
    Do you think I am looking back in the forums for this stuff? LOL, no, I find these posts in the Members Online section or the stats - all these old posts I am bumping and moving around are what people are actually looking at on the website
  • tom_mai78101 tom_mai78101:
    Interesting.
  • The Helper The Helper:
    hey Tom your Burrito news is going viral by TheHelper.net standards LOL
  • The Helper The Helper:
    looks like The Burrito has been shared to facebook lol I am getting the facebook bots in now
  • The Helper The Helper:
    I am going to do one more News Forum like the Weird News but this one is Science News for all the cool science and technology articles in the Archive
  • tom_mai78101 tom_mai78101:
    Hmm, do I need to start posting some of the Science and Technology news to this new section in the future?
  • tom_mai78101 tom_mai78101:
    Or do we need to move the news to their respective sections once the threads are old enough, read to be put into the News Archive?
  • The Helper The Helper:
    The 2nd thing
  • The Helper The Helper:
    I have been moving stuff from the current Headline news like a year old and stuff over when I see it in the logs or members online but mostly I have been moving stuff from the Archives
  • The Helper The Helper:
    It is possible to automate it so that instead of moving to Archive if it has the Science, technology or sci tech tag that it gets archived there instead. I am considering a new Weird News Tag
  • tom_mai78101 tom_mai78101:
    Please do. I'll try to tag the news appropriately when I get the chance.
  • The Helper The Helper:
    The new Discourse forum software we are moving to next does alot with the tags and also hashtags
  • The Helper The Helper:
    OK I found the source of your burrito post stuff it is from Reddit and possibly a facebook post too but definitely reddit

    Staff online

    Members online

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top