Snippet Wisp Wheel

Exide

I am amazingly focused right now!
Reaction score
448
Hi.

I was bored, so I created a new spell. Which I then turned into an item. The name Wisp Wheel is probably a bad name, but it doesn't matter.
I'm quite bad at coming up with tooltips and descriptions so I just ignored them. :p
It was hard getting good screenshots, so I decided to leave them out as well. -You'll just have to download the map and see for yourself. :p

Yes, I know some of the codes are horrible. (Suggestions to improve appriciated.)

I edited the Moonkey icon for the items I'm using. The .rar file containing the icons can be downloaded here: (TheHelper wouldn't let me upload .rar :() http://www.freewebs.com/idtatwc3/Fire%20Ice%20Poison%20Pack.rar
Map attached.

//==========================

What the item does is the following:
There are three items: Fire, Ice and Poison.
Each item spawn a wisp that circles around the hero and attacks nearby enemy units.
If a unit acquires two of these items, they will merge into one. (Complete of six different items; 'Fire', 'Ice', 'Poison', 'Fire + Ice', 'Fire + Poison', 'Ice + Poison', 'all three'.)

So without further ado.. Enjoy!


Codes:
JASS:

function Trig_Moving_Unit_Actions takes nothing returns nothing
    local location heroloc
    local location hlocoffset
    local integer loopnr = 1

    loop
        exitwhen loopnr > udg_MUICounter
        
        if ( udg_DegreeValueIce[loopnr] >= 360.00 ) then
            set udg_DegreeValueIce[loopnr] = 1.00
        else
            set udg_DegreeValueIce[loopnr] = udg_DegreeValueIce[loopnr] + 5.00
        endif
        
        set heroloc = GetUnitLoc(udg_OrbOwner[loopnr])
        set hlocoffset = PolarProjectionBJ(heroloc, 95.00, udg_DegreeValueIce[loopnr])
        
        call SetUnitPositionLoc( udg_IceUnit[loopnr], hlocoffset )

        call RemoveLocation(heroloc)
        call RemoveLocation(hlocoffset)
        
        set loopnr = loopnr + 1
    endloop
    
    set loopnr = 1
    
    loop
        exitwhen loopnr > udg_MUICounter
        
        if ( udg_DegreeValueFire[loopnr] <= 1.00 ) then
            set udg_DegreeValueFire[loopnr] = 360.00
        else
            set udg_DegreeValueFire[loopnr] = udg_DegreeValueFire[loopnr] - 5.00
        endif
        
        set heroloc = GetUnitLoc(udg_OrbOwner[loopnr])
        set hlocoffset = PolarProjectionBJ(heroloc, 65.00, udg_DegreeValueFire[loopnr])
        
        call SetUnitPositionLoc( udg_FireUnit[loopnr], hlocoffset )
        
        call RemoveLocation(heroloc)
        call RemoveLocation(hlocoffset)

        set loopnr = loopnr + 1
    endloop
    
    set loopnr = 1
    
    loop
        exitwhen loopnr > udg_MUICounter
        
        if ( udg_DegreeValuePoison[loopnr] <= 1.00 ) then
            set udg_DegreeValuePoison[loopnr] = 360.00
        else
            set udg_DegreeValuePoison[loopnr] = udg_DegreeValuePoison[loopnr] - 5.00
        endif
        
        
        set heroloc = GetUnitLoc(udg_OrbOwner[loopnr])
        set hlocoffset = PolarProjectionBJ(heroloc, 115, udg_DegreeValuePoison[loopnr])
        
        call SetUnitPositionLoc( udg_PoisonUnit[loopnr], hlocoffset )
        
        call RemoveLocation(heroloc)
        call RemoveLocation(hlocoffset)

        set loopnr = loopnr + 1
    endloop
    
    set heroloc = null
    set hlocoffset = null
endfunction

//===========================================================================
function InitTrig_Moving_Unit takes nothing returns nothing
    local trigger Moving_Unit = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( Moving_Unit, 0.03 )
    call TriggerAddAction( Moving_Unit, function Trig_Moving_Unit_Actions )
endfunction

JASS:

function Trig_Pwn_Enters_Map_Actions takes nothing returns nothing

    if ( GetUnitTypeId(GetTriggerUnit()) == 'h000' ) then
        call SetUnitVertexColorBJ( GetTriggerUnit(), 70.00, 40.00, 40.00, 7.00 )
    endif
    
    if ( GetUnitTypeId(GetTriggerUnit()) == 'h001' ) then
        call SetUnitVertexColorBJ( GetTriggerUnit(), 40.00, 40.00, 70.00, 7.00 )
    endif

    if ( GetUnitTypeId(GetTriggerUnit()) == 'h002' ) then
        call SetUnitVertexColorBJ( GetTriggerUnit(), 40.00, 70.00, 40.00, 7.00 )
    endif
    
endfunction

//===========================================================================
function InitTrig_Orb_Enters_Map takes nothing returns nothing
    local trigger Pwn_Enters_Map = CreateTrigger(  )
    call TriggerRegisterEnterRectSimple( Pwn_Enters_Map, GetPlayableMapRect() )
    call TriggerAddAction( Pwn_Enters_Map, function Trig_Pwn_Enters_Map_Actions )
endfunction

JASS:

function sfx_func takes nothing returns nothing
    local real x = GetUnitX(GetTriggerUnit())
    local real y = GetUnitY(GetTriggerUnit())
    
    call DestroyEffect(AddSpecialEffect( "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl", x, y ))
    
endfunction

function removeitem_func takes nothing returns nothing
    local item newitem = GetManipulatedItem()
    local integer newitemid = GetItemTypeId(newitem)
    local unit u = GetTriggerUnit()
    local player p = GetOwningPlayer(u)
    
    call UnitRemoveItem( u, newitem )
    call DisplayTextToPlayer( p, 0, 0, "You can only carry one of those items!" )
    
    set newitem = null
    set p = null
    set u = null
endfunction

function Trig_Merging_Items_Actions takes nothing returns nothing
    local item newitem = GetManipulatedItem()
    local integer newitemid = GetItemTypeId(newitem)
    local unit u = GetTriggerUnit()
    local item array itemindex
    local integer loopnr = 0
    
    
    loop
        exitwhen loopnr > 6
        
        set itemindex[loopnr] = UnitItemInSlot( u, loopnr )
        
        if ( (GetItemTypeId(itemindex[loopnr]) == newitemid) and (newitem != itemindex[loopnr]) ) then
            
            call removeitem_func()
            
        endif
        
        set loopnr = loopnr + 1
    endloop
    
    if (UnitHasItemOfTypeBJ( u, 'I006' )) then
        if (newitemid == 'I000') or (newitemid == 'I001') or (newitemid == 'I002') or (newitemid == 'I003') or (newitemid == 'I004') or (newitemid == 'I005') then
            
            call removeitem_func()
            
        endif
    endif
    
    if (UnitHasItemOfTypeBJ( u, 'I005' )) then
        if (newitemid == 'I000') or (newitemid == 'I001') or (newitemid == 'I003') or (newitemid == 'I004') then
            
            call removeitem_func()
            
        endif
    endif
    
    if (UnitHasItemOfTypeBJ( u, 'I004' )) then
        if (newitemid == 'I001') or (newitemid == 'I002') or (newitemid == 'I003') or (newitemid == 'I005') then
            
            call removeitem_func()
            
        endif
    endif
    
    if (UnitHasItemOfTypeBJ( u, 'I003' )) then
        if (newitemid == 'I000') or (newitemid == 'I002') or (newitemid == 'I004') or (newitemid == 'I005') then
            
            call removeitem_func()
            
        endif
    endif
    
    
    if (newitemid == 'I000') then
        if (UnitHasItemOfTypeBJ(u, 'I001')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I001') )
            call UnitAddItemById( u, 'I005' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I002')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I002') )
            call UnitAddItemById( u, 'I003' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I004')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I004') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    if (newitemid == 'I001') then
        if (UnitHasItemOfTypeBJ(u, 'I000')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I000') )
            call UnitAddItemById( u, 'I005' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I002')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I002') )
            call UnitAddItemById( u, 'I004' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I003')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I003') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    if (newitemid == 'I002') then
        if (UnitHasItemOfTypeBJ(u, 'I001')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I001') )
            call UnitAddItemById( u, 'I004' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I000')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I000') )
            call UnitAddItemById( u, 'I003' )
            call sfx_func()
            
        endif
        
        if (UnitHasItemOfTypeBJ(u, 'I005')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I005') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    if (newitemid == 'I003') then
        if (UnitHasItemOfTypeBJ(u, 'I001')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I001') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    if (newitemid == 'I004') then
        if (UnitHasItemOfTypeBJ(u, 'I000')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I000') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    if (newitemid == 'I005') then
        if (UnitHasItemOfTypeBJ(u, 'I002')) then
            
            call RemoveItem( newitem )
            call RemoveItem( GetItemOfTypeFromUnitBJ(u, 'I002') )
            call UnitAddItemById( u, 'I006' )
            call sfx_func()
            
        endif
    endif
    
    set newitem = null
    set u = null
endfunction

//===========================================================================
function InitTrig_Merging_Items takes nothing returns nothing
    local trigger Merging_Items = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Merging_Items, EVENT_PLAYER_UNIT_PICKUP_ITEM )
    call TriggerAddAction( Merging_Items, function Trig_Merging_Items_Actions )
endfunction

JASS:

function Trig_Acquire_Orb_Actions takes nothing returns nothing
    local item newitem = GetManipulatedItem()
    local integer itemid = GetItemTypeId(newitem)
    local real x = GetUnitX(GetTriggerUnit())
    local real y = GetUnitY(GetTriggerUnit())
    local unit u = GetTriggerUnit()
    local integer counter = udg_MUICounter
    local integer compareinteger = GetUnitUserData(u)
    
    
    if (compareinteger == counter) then
        set counter = compareinteger
    else
        set udg_MUICounter = udg_MUICounter + 1
    endif
    
    if ( itemid == 'I000' ) then
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_IceUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
        call SetUnitUserData( udg_IceUnit[counter], counter )
        call SetUnitOwner( udg_IceUnit[counter], GetOwningPlayer(u), false )
    endif
    
    if ( itemid == 'I001' ) then
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_FireUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
        call SetUnitUserData( udg_FireUnit[counter], counter )
        call SetUnitOwner( udg_FireUnit[counter], GetOwningPlayer(u), false )
    endif
    
    if ( itemid == 'I002' ) then
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_PoisonUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
        call SetUnitUserData( udg_PoisonUnit[counter], counter )
        call SetUnitOwner( udg_PoisonUnit[counter], GetOwningPlayer(u), false )
    endif

    
    if ( itemid == 'I003' ) then
        call KillUnit(udg_PoisonUnit[counter])
        call KillUnit(udg_IceUnit[counter])
    
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_PoisonUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
        call SetUnitUserData( udg_PoisonUnit[counter], counter )
        call SetUnitOwner( udg_PoisonUnit[counter], GetOwningPlayer(u), false )
        
        set udg_IceUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
        call SetUnitUserData( udg_IceUnit[counter], counter )
        call SetUnitOwner( udg_IceUnit[counter], GetOwningPlayer(u), false )
    endif
    
    if ( itemid == 'I004' ) then
        call KillUnit(udg_PoisonUnit[counter])
        call KillUnit(udg_FireUnit[counter])
    
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_PoisonUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
        call SetUnitUserData( udg_PoisonUnit[counter], counter )
        call SetUnitOwner( udg_PoisonUnit[counter], GetOwningPlayer(u), false )
        
        set udg_FireUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
        call SetUnitUserData( udg_FireUnit[counter], counter )
        call SetUnitOwner( udg_FireUnit[counter], GetOwningPlayer(u), false )
    endif
    
    if ( itemid == 'I005' ) then
        call KillUnit(udg_IceUnit[counter])
        call KillUnit(udg_FireUnit[counter])
    
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_FireUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
        call SetUnitUserData( udg_FireUnit[counter], counter )
        call SetUnitOwner( udg_FireUnit[counter], GetOwningPlayer(u), false )

        set udg_IceUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
        call SetUnitUserData( udg_IceUnit[counter], counter )
        call SetUnitOwner( udg_IceUnit[counter], GetOwningPlayer(u), false )
        

    endif
    
    if ( itemid == 'I006' ) then
        call KillUnit(udg_IceUnit[counter])
        call KillUnit(udg_FireUnit[counter])
        call KillUnit(udg_PoisonUnit[counter])
    
        set udg_OrbOwner[counter] = u
        call SetUnitUserData( u, counter )
        set udg_FireUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
        call SetUnitUserData( udg_FireUnit[counter], counter )
        call SetUnitOwner( udg_FireUnit[counter], GetOwningPlayer(u), false )
        
        set udg_IceUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
        call SetUnitUserData( udg_IceUnit[counter], counter )
        call SetUnitOwner( udg_IceUnit[counter], GetOwningPlayer(u), false )
        
        set udg_PoisonUnit[counter] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
        call SetUnitUserData( udg_PoisonUnit[counter], counter )
        call SetUnitOwner( udg_PoisonUnit[counter], GetOwningPlayer(u), false )
    endif
    
    set newitem = null
    set u = null
endfunction

//===========================================================================
function InitTrig_Acquire_Orb takes nothing returns nothing
    local trigger Acquire_Orb = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Acquire_Orb, EVENT_PLAYER_UNIT_PICKUP_ITEM )
    call TriggerAddAction( Acquire_Orb, function Trig_Acquire_Orb_Actions )
endfunction

JASS:

function Trig_Lose_Orb_Actions takes nothing returns nothing
    local item lostitem = GetManipulatedItem()
    local integer itemid = GetItemTypeId(lostitem)
    local unit u = GetTriggerUnit()
    local integer counter = GetUnitUserData(u)
    

    if (itemid == 'I000') then
        call KillUnit(udg_IceUnit[counter])
    endif
    
    if (itemid == 'I001') then
        call KillUnit(udg_FireUnit[counter])
    endif
    
    if (itemid == 'I002') then
        call KillUnit(udg_PoisonUnit[counter])
    endif
    
    if (itemid == 'I003') then
        call KillUnit(udg_IceUnit[counter])
        call KillUnit(udg_PoisonUnit[counter])
    endif
    
    if (itemid == 'I004') then
        call KillUnit(udg_FireUnit[counter])
        call KillUnit(udg_PoisonUnit[counter])
    endif
    
    if (itemid == 'I005') then
        call KillUnit(udg_IceUnit[counter])
        call KillUnit(udg_FireUnit[counter])
    endif
    
    if (itemid == 'I006') then
        call KillUnit(udg_IceUnit[counter])
        call KillUnit(udg_PoisonUnit[counter])
        call KillUnit(udg_FireUnit[counter])
    endif

    set lostitem = null
    set u = null
endfunction

//===========================================================================
function InitTrig_Lose_Orb takes nothing returns nothing
    local trigger Lose_Orb = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Lose_Orb, EVENT_PLAYER_UNIT_DROP_ITEM )
    call TriggerAddAction( Lose_Orb, function Trig_Lose_Orb_Actions )
endfunction

JASS:

function isunitalive_func takes nothing returns boolean
    return (GetUnitState(GetTriggerUnit(), UNIT_STATE_LIFE) > 0)
endfunction

function Trig_Unit_Dies_Actions takes nothing returns nothing
    local integer userdata = GetUnitUserData(GetTriggerUnit())
    local player p = GetOwningPlayer(GetTriggerUnit())
    local real x = GetUnitX(GetTriggerUnit())
    local real y = GetUnitY(GetTriggerUnit())
    local unit u = GetTriggerUnit()
    local integer loopnr = 1
    
    
    loop
        exitwhen loopnr > udg_MUICounter
        if ( GetTriggerUnit() == udg_OrbOwner[loopnr] ) then
            call KillUnit(udg_IceUnit[userdata])
            call KillUnit(udg_FireUnit[userdata])
            call KillUnit(udg_PoisonUnit[userdata])
            
            loop
                exitwhen ( isunitalive_func() )
                call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.50))
            endloop
            
            if (UnitHasItemOfTypeBJ(u, 'I006')) then
                set udg_IceUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
                set udg_FireUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
                set udg_PoisonUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I005')) then
                set udg_IceUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
                set udg_FireUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I004')) then
                set udg_FireUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
                set udg_PoisonUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I003')) then
                set udg_IceUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
                set udg_PoisonUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I002')) then
                set udg_PoisonUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h002', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I001')) then
                set udg_FireUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h000', x, y, 270.00 )
            endif
            
            if (UnitHasItemOfTypeBJ(u, 'I000')) then
                set udg_IceUnit[userdata] = CreateUnit( Player(bj_PLAYER_NEUTRAL_EXTRA), 'h001', x, y, 270.00 )
            endif
            
            
            call SetUnitOwner( udg_IceUnit[userdata], p, false )
            call SetUnitOwner( udg_FireUnit[userdata], p, false )
            call SetUnitOwner( udg_PoisonUnit[userdata], p, false )
        endif
        set loopnr = loopnr + 1
    endloop
    
    set p = null
    set u = null
endfunction

//===========================================================================
function InitTrig_Unit_Dies takes nothing returns nothing
    local trigger Unit_Dies = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( Unit_Dies, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddAction( Unit_Dies, function Trig_Unit_Dies_Actions )
endfunction
 

Attachments

  • [Spell] Wisp wheel.w3x
    139.9 KB · Views: 226

Romek

Super Moderator
Reaction score
964
Post the code? :)
 

Flare

Stops copies me!
Reaction score
662
Your lack of documentation (on the variables) disturbs me :p

Would be lovely if you could initialize ALL your variables in that Setup Variables trigger (or, if they arrayed, initialize some high index, like 6293), then you can CnP that trigger for easy copy-pasting of the variables

Locations -> Coordinates would be cool too (less leak removal), if you are unsure of how to use coordinates, I'll try and find the thread where I made an example of offsetting, getting distance, and all that stuff

Also, it'd be a good idea to try and get out of the GUI coding habit (i.e. one trigger in the left-hand side corresponding to one trigger, like gg_trg_Something or whatever) - will help to reduce importing requirements, and it's nice to be able to keep all associated code in one place (rather than having 3 separate triggers in the left-hand pane for 3 things, why not do them all in the same script, where they will all be together and you can easily just scroll between them)
 

Dr.Jack

That's Cap'n to you!
Reaction score
109
You have got to be kidding me.

> I was bored, so I created a new spell. -2
> The name Wisp Wheel is probably a bad name, but it doesn't matter. -1
> I'm quite bad at coming up with tooltips and descriptions so I just ignored them. -3
> It was hard getting good screenshots, so I decided to leave them out as well. -1
> -You'll just have to download the map and see for yourself. -5
> Yes, I know some of the codes are horrible. (Suggestions to improve appriciated.) -15
> Each item spawn a wisp that circles around the hero and attacks nearby enemy units. -2

Total grade before testing the spell: -29. While being generous. Really, you can't expect such poorly made resource to be even looked at. While I have no official saying, but, for the staff and the community, put some thought to your posts!
 

Exide

I am amazingly focused right now!
Reaction score
448
Post the code? :)
-Edited.

You have got to be kidding me.

> I was bored, so I created a new spell. -2
> The name Wisp Wheel is probably a bad name, but it doesn't matter. -1
> I'm quite bad at coming up with tooltips and descriptions so I just ignored them. -3
> It was hard getting good screenshots, so I decided to leave them out as well. -1
> -You'll just have to download the map and see for yourself. -5
> Yes, I know some of the codes are horrible. (Suggestions to improve appriciated.) -15
> Each item spawn a wisp that circles around the hero and attacks nearby enemy units. -2

Total grade before testing the spell: -29. While being generous. Really, you can't expect such poorly made resource to be even looked at. While I have no official saying, but, for the staff and the community, put some thought to your posts!

-Motivation, please.


Your lack of documentation (on the variables) disturbs me :p

Would be lovely if you could initialize ALL your variables in that Setup Variables trigger (or, if they arrayed, initialize some high index, like 6293), then you can CnP that trigger for easy copy-pasting of the variables

Locations -> Coordinates would be cool too (less leak removal), if you are unsure of how to use coordinates, I'll try and find the thread where I made an example of offsetting, getting distance, and all that stuff

Also, it'd be a good idea to try and get out of the GUI coding habit (i.e. one trigger in the left-hand side corresponding to one trigger, like gg_trg_Something or whatever) - will help to reduce importing requirements, and it's nice to be able to keep all associated code in one place (rather than having 3 separate triggers in the left-hand pane for 3 things, why not do them all in the same script, where they will all be together and you can easily just scroll between them)

-I don't expect anyone to actually want to import it, though.

-Yes, coordinates are better, I'll try to convert as many locations as I can. Thank you for noticing. :)

-I don't get what you're saying. :p
 

Trollvottel

never aging title
Reaction score
262
-Edited.

-I don't expect anyone to actually want to import it, though.

then dont post it. nobody wants 10 triggers for a simple movement system which can be done even in GUI in 5 mins. so it would be better to just forget this and graveyard it.
 

Exide

I am amazingly focused right now!
Reaction score
448
then dont post it. nobody wants 10 triggers for a simple movement system which can be done even in GUI in 5 mins. so it would be better to just forget this and graveyard it.

If everyone reasoned like that, then there would be hardly anything in this forum. :p
-How many of the custom made systems, spells and icons do you think are actually being used in maps?
 

Trollvottel

never aging title
Reaction score
262
many of the approved i think. and if i say nobody i mean nobody would import 10 triggers.... i think we even have a wispwheel in the systems section (which doesnt need to import 10 triggers)
 

Exide

I am amazingly focused right now!
Reaction score
448
many of the approved i think. and if i say nobody i mean nobody would import 10 triggers.... i think we even have a wispwheel in the systems section (which doesnt need to import 10 triggers)

That wasn't really a question, but whatever..

Do you usually suggest people's threads to be graveyarded, before even looking at the triggers or even downloading the map?
 

Cookiemaster

New Member
Reaction score
36
After I combined all the stuff on the ground and dumped it again, I noticed that theres a green, blue and red wisp flying around my hero, whilst my inventory is empty.

Advice: TEST THINGS BEFORE YOU RELEASE.
 

Exide

I am amazingly focused right now!
Reaction score
448
After I combined all the stuff on the ground and dumped it again, I noticed that theres a green, blue and red wisp flying around my hero, whilst my inventory is empty.

Advice: TEST THINGS BEFORE YOU RELEASE.

I tested it plenty of times, worked fine everytime.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • WildTurkey WildTurkey:
    is there a stephen green in the house?
    +1
  • The Helper The Helper:
    What is up WildTurkey?
  • The Helper The Helper:
    Looks like Google fixed whatever mistake that made the recipes on the site go crazy and we are no longer trending towards a recipe site lol - I don't care though because it motivated me to spend alot of time on the site improving it and at least now the content people are looking at is not stupid and embarrassing like it was when I first got back into this like 5 years ago.
  • The Helper The Helper:
    Plus - I have a pretty bad ass recipe collection now! That section of the site is 10 thousand times better than it was before
  • The Helper The Helper:
    We now have a web designer at my job. A legit talented professional! I am going to get him to redesign the site theme. It is time.
  • Varine Varine:
    I got one more day of community service and then I'm free from this nonsense! I polished a cop car today for a funeral or something I guess
  • Varine Varine:
    They also were digging threw old shit at the sheriff's office and I tried to get them to give me the old electronic stuff, but they said no. They can't give it to people because they might use it to impersonate a cop or break into their network or some shit? idk but it was a shame to see them take a whole bunch of radios and shit to get shredded and landfilled
  • The Helper The Helper:
    whatever at least you are free
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?

      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