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:
    My grandmother just passed away, she was 95. I might be going to Florida for a week.
  • The Helper The Helper:
    I have a buddy in Florida who has an extra office space for me with a computer so I can do anything so likely I will be going up there wednesday or thursday
  • Ghan Ghan:
    Let me know if there's anything I can do to help.
  • The Helper The Helper:
    thank you Ghan
  • jonas jonas:
    Sorry for your loss
    +1
  • Varine Varine:
    I'm sorry to hear that bro
  • Varine Varine:
    Not to distract but is anyone aware of any software to help visually impaired people interact with their PC?
  • Varine Varine:
    Also what's the best way to ship a PC? Should I just wrap the fuck out of it in the case or put the components in static bags and wrapped up individually?
  • Ghan Ghan:
    The GPU is the biggest danger typically.
  • Ghan Ghan:
    Some of the pre-built vendors use expanding foam to fill in the case and secure the GPU. Otherwise it might be best to remove it and ship it separately.
  • Ghan Ghan:
    Similar if the machine has a large tower CPU cooler installed. Those can experience huge forces and destroy the socket during shipment if they are heavy.
  • Varine Varine:
    So mainly just the heavier things that jut out? I'm planning on pulling out the SSD's too and anything that I don't have well secured. I'll probably be good leaving the motherboard and PSU screwed in there though if I bundle it up?
  • Ghan Ghan:
    Yeah, I'd expect those to be fine. It's mainly the heavy stuff that is also long/tall where dropping the case would cause it to exert a ton of force on the mount. The motherboard will be fine screwed into the board unless the case itself is somehow severely damaged.
  • Varine Varine:
    I have the original packaging for it, so I was going to just put it back in there
  • Varine Varine:
    I don't think I have the boxes for the components though and so I don't want to have a bunch of loose shit bouncing around
  • The Helper The Helper:
    damn I just read that lol
  • The Helper The Helper:
    when i read up and saw spray in foam I was like oh shit
  • The Helper The Helper:
    going to do the last controller giveaway in the NUON Dome forum because I just cannot sell them since I got them for free from a deceased NUON Legend. It is my last one from that.

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome
    Top