Help Siphon Gold Ability doesn't work anymore

masta_orc

Cool Member
Hello,

since reforged my Siphon Gold ability doesnt work anymore.. world editor always show me 2 errors after saving map..

Need help to fix that issue :(
:(


World Editor Errors:

Line 2487: Identifier redecleared : "SiphonGoldAbility"
Code:
local integer SiphonGoldAbility = 'A00X'
Line 2498: ---- (previously decleared here)
Code:
function SiphonGoldAbility takes nothing returns integer
Siphon Gold Ability:

Code:
function GetSiphonGoldCache takes nothing returns gamecache
    return gg_trg_Siphon_Gold
    return null
endfunction

function Initialize_SiphonGold_Variables takes nothing returns nothing
    local gamecache  g = GetSiphonGoldCache()
    local integer array gold

    local integer SiphonGoldAbility = 'A00X'
    set gold[1] = 100    // Level 1 this value is per second
    set gold[2] = 200    // Level 2 this value is per second
    set gold[3] = 300    // Level 3 this value is per second

    call StoreIntegerBJ( SiphonGoldAbility, "Ability", "Ability", g )
    call StoreIntegerBJ( gold[1], "Level1", "Gold", g )
    call StoreIntegerBJ( gold[2], "Level2", "Gold", g )
    call StoreIntegerBJ( gold[3], "Level3", "Gold", g )
endfunction

function SiphonGoldAbility takes nothing returns integer
    return GetStoredInteger(GetSiphonGoldCache(), "Ability", "Ability")
endfunction

function SiphonGoldGameCache2Trigger takes gamecache g returns trigger
    return g
    return null
endfunction

function SiphonGoldHandle2Integer takes handle h returns integer
    return h
    return 0
endfunction

function SiphonGoldInteger2Effect takes integer i returns effect
    return i
    return null
endfunction

function SiphonGoldInteger2Unit takes integer i returns unit
    return i
    return null
endfunction

function SiphonGoldInteger2Timer takes integer i returns timer
    return i
    return null
endfunction

function SiphonGoldInteger2Trigger takes integer i returns trigger
    return i
    return null
endfunction

function SiphonGoldInteger2TextTag takes integer i returns texttag
    return i
    return null
endfunction

function Trig_Siphon_Gold_Floating takes nothing returns nothing
    local gamecache g = GetSiphonGoldCache()
    local texttag text1 = SiphonGoldInteger2TextTag( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "text1") )
    local texttag text2 = SiphonGoldInteger2TextTag( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "text2") )
    local integer transp = GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "transp")
    if (transp < 100) then
        set transp = transp + 5
        call SetTextTagColorBJ( text1, 100, 100, 0.00, transp )
        call SetTextTagColorBJ( text2, 100, 100, 0.00, transp )
        call StoreIntegerBJ( transp, "transp", I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), g )
    else
        call DestroyTextTag(text1)
        call DestroyTextTag(text2)
        call DestroyTimer(GetExpiredTimer())
        call DestroyTrigger(GetTriggeringTrigger())
    endif
endfunction

function Trig_Siphon_Gold_Timer takes nothing returns nothing
    local gamecache g = GetSiphonGoldCache()
    local unit caster = SiphonGoldInteger2Unit( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "caster") )
    local unit target = SiphonGoldInteger2Unit( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "target") )
    local integer max = GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "max")
    local integer floating = GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), "counter")
    local integer on = GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(caster)), "on")
    local integer floatgold = 0

    local trigger   t
    local timer     c

    if (on == 0) then
        if (floating > 1) then
            set floatgold = floating*2
            call StoreIntegerBJ( 0, "counter", I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), g )
        endif
        call DestroyEffect( SiphonGoldInteger2Effect( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(caster)), "Effect1") ) )
        call DestroyEffect( SiphonGoldInteger2Effect( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(caster)), "Effect2") ) )
        call DestroyTimer( SiphonGoldInteger2Timer( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(caster)), "timer") ) )
        call DestroyTrigger( SiphonGoldInteger2Trigger( GetStoredInteger(g, I2S(SiphonGoldHandle2Integer(caster)), "trigger") ) )
    else
        if ( GetPlayerState(GetOwningPlayer(target), PLAYER_STATE_RESOURCE_GOLD) > 1 ) then
            call AdjustPlayerStateBJ( 2, GetOwningPlayer(caster), PLAYER_STATE_RESOURCE_GOLD )
            call AdjustPlayerStateBJ( -2, GetOwningPlayer(target), PLAYER_STATE_RESOURCE_GOLD )
            if (floating == (max/4)) then
                set floatgold = max*2/4
                set floating = 0
            endif
            call StoreIntegerBJ( floating + 1, "counter", I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), g )
        elseif (floating > 1) then
            set floatgold = (floating-1)*2
            call StoreIntegerBJ( 0, "counter", I2S(SiphonGoldHandle2Integer(GetExpiredTimer())), g )
        endif
    endif
    if (floatgold > 0) then
        set t = CreateTrigger(  )
        set c = CreateTimer()
        call TriggerRegisterTimerExpireEventBJ( t, c )
        call TriggerAddAction( t, function Trig_Siphon_Gold_Floating )
        call StartTimerBJ( c, true, 0.07  )
        call CreateTextTagUnitBJ( "+" + I2S(floatgold), caster, 0, 10, 100, 100, 100, 0 )
        call SetTextTagColorBJ( GetLastCreatedTextTag(), 100, 100, 0.00, 0 )
        call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 100, 90 )
        call StoreIntegerBJ( SiphonGoldHandle2Integer(GetLastCreatedTextTag()), "text1", I2S(SiphonGoldHandle2Integer(c)), g )
        call CreateTextTagUnitBJ( "-" + I2S(floatgold), target, 0, 10, 100, 100, 100, 0 )
        call SetTextTagColorBJ( GetLastCreatedTextTag(), 100, 100, 0.00, 0 )
        call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 100, 90 )
        call StoreIntegerBJ( SiphonGoldHandle2Integer(GetLastCreatedTextTag()), "text2", I2S(SiphonGoldHandle2Integer(c)), g )
        call StoreIntegerBJ( 0, "transp", I2S(SiphonGoldHandle2Integer(c)), g )
    endif
endfunction

function Trig_Siphon_Gold_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == SiphonGoldAbility() )
endfunction

function Trig_Siphon_Gold_Actions takes nothing returns nothing
    local unit      caster = GetSpellAbilityUnit()
    local effect    e
    local gamecache g = GetSiphonGoldCache()
    local trigger   t = CreateTrigger(  )
    local timer     c = CreateTimer()
    local integer   level = GetUnitAbilityLevelSwapped(SiphonGoldAbility(), caster)
    set e = AddSpecialEffectTarget("war3mapImported\\goldout.mdx",GetSpellTargetUnit(),"origin")
    call StoreIntegerBJ( SiphonGoldHandle2Integer(e), "Effect1", I2S(SiphonGoldHandle2Integer(caster)), g )
    set e = AddSpecialEffectTarget("war3mapImported\\goldin.mdx",caster,"origin")
    call StoreIntegerBJ( SiphonGoldHandle2Integer(e), "Effect2", I2S(SiphonGoldHandle2Integer(caster)), g )
    call TriggerRegisterTimerExpireEventBJ( t, c )
    call TriggerAddAction( t, function Trig_Siphon_Gold_Timer )
    call StoreIntegerBJ( 1, "on", I2S(SiphonGoldHandle2Integer(caster)), g )
    call StoreIntegerBJ( SiphonGoldHandle2Integer(c), "timer", I2S(SiphonGoldHandle2Integer(caster)), g )
    call StoreIntegerBJ( SiphonGoldHandle2Integer(t), "trigger", I2S(SiphonGoldHandle2Integer(caster)), g )
    call StoreIntegerBJ( SiphonGoldHandle2Integer(GetSpellTargetUnit()), "target", I2S(SiphonGoldHandle2Integer(c)), g )
    call StoreIntegerBJ( SiphonGoldHandle2Integer(caster), "caster", I2S(SiphonGoldHandle2Integer(c)), g )
    call StoreIntegerBJ( 1, "counter", I2S(SiphonGoldHandle2Integer(c)), g )
    call StoreIntegerBJ( GetStoredInteger(g, "Gold", "Level" + I2S(level)), "max", I2S(SiphonGoldHandle2Integer(c)), g )
    call StartTimerBJ( c, true, (I2R(2) / I2R(GetStoredInteger(g, "Gold", "Level" + I2S(level)) ))  )
endfunction

function Trig_Siphon_Gold_End_Actions takes nothing returns nothing
    local unit      caster = GetSpellAbilityUnit()
    local effect    e
    local gamecache g = GetSiphonGoldCache()
    call StoreIntegerBJ( 0, "on", I2S(SiphonGoldHandle2Integer(caster)), g )
endfunction

//===========================================================================
function InitTrig_Siphon_Gold takes nothing returns nothing
    local integer i = 0
    local trigger t1 = CreateTrigger(  )
    local trigger t2 = CreateTrigger(  )
    local trigger g = CreateTrigger(  )
    set gg_trg_Siphon_Gold = SiphonGoldGameCache2Trigger(InitGameCache( "SiphonGold.w3v" ))
    call Initialize_SiphonGold_Variables()
    loop
        exitwhen i > 11
        if ( GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING ) then
            call TriggerRegisterPlayerUnitEventSimple( t1, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT )
            call TriggerRegisterPlayerUnitEventSimple( t2, Player(i), EVENT_PLAYER_UNIT_SPELL_ENDCAST )
        endif
        set i = i + 1
    endloop
    call TriggerAddCondition( t1, Condition( function Trig_Siphon_Gold_Conditions ) )
    call TriggerAddAction( t1, function Trig_Siphon_Gold_Actions )
    call TriggerAddCondition( t2, Condition( function Trig_Siphon_Gold_Conditions ) )
    call TriggerAddAction( t2, function Trig_Siphon_Gold_End_Actions )
endfunction
 

jonas

Well-Known Member
Change the name of the integer to SiphonGoldAbilityId
Code:
    local integer SiphonGoldAbilityId = 'A00X'
    set gold[1] = 100    // Level 1 this value is per second
    set gold[2] = 200    // Level 2 this value is per second
    set gold[3] = 300    // Level 3 this value is per second

    call StoreIntegerBJ( SiphonGoldAbilityId, "Ability", "Ability", g )
    call StoreIntegerBJ( gold[1], "Level1", "Gold", g )
    call StoreIntegerBJ( gold[2], "Level2", "Gold", g )
    call StoreIntegerBJ( gold[3], "Level3", "Gold", g )
 
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

    Affiliates

    Hive Workshop NUON Dome
    Top