wc3campaigns
WC3C Homepage - www.wc3c.netUser Control Panel (Requires Log-In)Engage in discussions with other users and join contests in the WC3C forums!Read one of our many tutorials, ranging in difficulty from beginner to advanced!Show off your artistic talents in the WC3C Gallery!Download quality models, textures, spells (vJASS/JASS), systems, and scripts!Download maps that have passed through our rigorous approval process!

Go Back   Wc3C.net > Resources > Code Resources > Scripts
User Name
Password
Register Rules Get Hosted! Chat Pastebin FAQ and Rules Members List Calendar



Reply
 
Thread Tools Search this Thread
Old 01-13-2009, 10:06 PM   #31
Troll-Brain
User
 
Join Date: Oct 2006
Posts: 1,490

Submissions (1)

Troll-Brain has a spectacular aura about (134)

Default

Quote:
Originally Posted by Rising_Dusk
If someone is enumerating in the corner of their map, then they have more problems with the way they do things than finding the pathability type of a point.

Within range ftw.

The point of SetUnitX/Y is to avoid the dummy to be enumed, right ?
You can change it easily to "fix" this case, so why not ?

Imho if you don't, you miss the "safety" point, and then for speed freak just don't move the dummy after the check, and let the user filter himself the dummy.

EDIT : I have seen your edit :p
__________________
Cool != Useful

Last edited by Troll-Brain : 01-13-2009 at 10:08 PM.
Troll-Brain is offline   Reply With Quote
Sponsored Links - Login to hide this ad!
Old 08-05-2009, 05:51 AM   #32
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Updated to comply with patch 1.24.
__________________
Rising_Dusk is offline   Reply With Quote
Old 08-05-2009, 05:07 PM   #33
Vexorian
Free Software Terrorist
 
Vexorian's Avatar


Technical Director
 
Join Date: Apr 2003
Posts: 14,898

Submissions (37)

Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)Vexorian has a reputation beyond repute (1062)

Hero Contest #3 - 2nd Place

Default

What did you change?
__________________
Zoom (requires log in)Wc3 map optimizer 5.0
Someone should fix .wav sound in this thing.
Zoom (requires log in)JassHelper 0.A.2.A
Turns your simple code into something that is complicated enough to work.
Faster != more useful
Vexorian is offline   Reply With Quote
Old 08-05-2009, 05:11 PM   #34
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

I had to remove the multiple returns because it was coming up a false positive in 1.24 for the return bug.
__________________
Rising_Dusk is offline   Reply With Quote
Old 08-05-2009, 07:17 PM   #35
Tyrande_ma3x
User
 
Tyrande_ma3x's Avatar
 
Join Date: Feb 2009
Posts: 185

Submissions (1)

Tyrande_ma3x is on a distinguished road (12)

Default

Uh, could the unit receive locust or something like that? The middle of my map is already used as a path for passing creeps and it's kinda annoying to see an invulnerable footman right next to a bunch of fighting units.
Tyrande_ma3x is offline   Reply With Quote
Old 08-06-2009, 03:27 PM   #36
Flame_Phoenix
retired coder | real ilfe
 
Flame_Phoenix's Avatar
 
Join Date: Mar 2007
Posts: 2,208

Submissions (10)

Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)

Send a message via MSN to Flame_Phoenix
Default

Crap, wrong thread ... sorry, this was supposed to be on RS KnockSystem....
I will move it at once !

edit


done ...
Thx for the warning xD
__________________
Check out my tutorials at:
1-Creating a Hero Tavern
2-Complete Icon Tutorial - ALL about Icons
3-Making a spell in vJass - Practice Session 1
Check out all my current spells at here
Finally, check my project:
Castle vs Castle Flame Edition

Last edited by Flame_Phoenix : 08-06-2009 at 03:34 PM.
Flame_Phoenix is offline   Reply With Quote
Old 08-06-2009, 07:55 PM   #37
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Quote:
Originally Posted by Tyrande_Ma3x
Uh, could the unit receive locust or something like that? The middle of my map is already used as a path for passing creeps and it's kinda annoying to see an invulnerable footman right next to a bunch of fighting units.
This is probably a bug and not intentional, if you didn't test the previous versions at all. This might even relate back to why PP found a similar footman in OD. Heh, I even tested this and didn't notice the footman, go me.

EDIT:
Updated to fix the weird bug that crept into the code.
__________________

Last edited by Rising_Dusk : 08-06-2009 at 08:32 PM.
Rising_Dusk is offline   Reply With Quote
Old 08-06-2009, 08:03 PM   #38
Kwah
Christmassy.
 
Kwah's Avatar
 
Join Date: Jun 2008
Posts: 644

Submissions (4)

Kwah will become famous soon enough (43)Kwah will become famous soon enough (43)

Default

Totally un-related but 2-P and Pewt have damn confusing names.

To get on-topic, why are you using a model on your dummy unit anyhow?
Kwah is offline   Reply With Quote
Old 08-06-2009, 08:21 PM   #39
Tyrande_ma3x
User
 
Tyrande_ma3x's Avatar
 
Join Date: Feb 2009
Posts: 185

Submissions (1)

Tyrande_ma3x is on a distinguished road (12)

Default

My mistake, I haven't enabled the ObjectMerger call. Foolish me...

EDIT: Oh wait, now I remember why I didn't do that earlier - I got some fatal errors with it.

Last edited by Tyrande_ma3x : 08-06-2009 at 08:28 PM.
Tyrande_ma3x is offline   Reply With Quote
Old 08-07-2009, 12:15 AM   #40
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Quote:
Originally Posted by Kwah
To get on-topic, why are you using a model on your dummy unit anyhow?
Because you don't need to make a custom dummy unit for the library to work. If you do have a custom dummy unit, you can edit the configuration section and go ahead and use it. The only requirement is that you don't remove the unit's pathing somehow (like with Aloc).
Quote:
Originally Posted by Tyrande_ma3x
EDIT: Oh wait, now I remember why I didn't do that earlier - I got some fatal errors with it.
This might be a problem with the ObjectMerger and 1.24, but I am not sure.
__________________

Last edited by Rising_Dusk : 08-07-2009 at 12:16 AM.
Rising_Dusk is offline   Reply With Quote
Old 08-07-2009, 10:51 AM   #41
Flame_Phoenix
retired coder | real ilfe
 
Flame_Phoenix's Avatar
 
Join Date: Mar 2007
Posts: 2,208

Submissions (10)

Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)Flame_Phoenix has a spectacular aura about (90)

Send a message via MSN to Flame_Phoenix
Default

Quote:
This might be a problem with the ObjectMerger and 1.24, but I am not sure.
Makes no sense to me... why would patch 1.24 create problems with Object Merger ??
Yet, something worth exploring ...
__________________
Check out my tutorials at:
1-Creating a Hero Tavern
2-Complete Icon Tutorial - ALL about Icons
3-Making a spell in vJass - Practice Session 1
Check out all my current spells at here
Finally, check my project:
Castle vs Castle Flame Edition
Flame_Phoenix is offline   Reply With Quote
Old 09-06-2009, 12:48 AM   #42
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Fixed a rare crash bug in the library.
__________________
Rising_Dusk is offline   Reply With Quote
Old 09-13-2009, 08:41 AM   #43
Quillraven
User
 
Join Date: Sep 2007
Posts: 40

Quillraven has little to show at this moment (3)

Send a message via ICQ to Quillraven
Default

just wanted to mention that i got a "bug" with this library when using it with different missile spells with knockback or a moving dummy which casts frostnova on itself.

howevere i could "fix" it with this change:

one more global
Collapse JASS:
private constant real epsilon                                   = 10.0

and the changed function:
Collapse JASS:
function IsTerrainPathingType takes real x, real y, integer terrainPathingType returns boolean
    local boolean b = false
    local real x2 = 0
    local real y2 = 0
    if terrainPathingType == TERRAIN_PATHING_DEEP then
        set b = not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_SHALLOW then
        set b = not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_LAND then
        set b = IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY)
    elseif terrainPathingType == TERRAIN_PATHING_WALKABLE then
        call SetUnitPosition(Dummy, x, y)
        set x2 = GetUnitX( Dummy )
        set y2 = GetUnitY( Dummy )
        set b = (x-x2)*(x-x2)+(y-y2)*(y-y2) <= epsilon*epsilon and not (not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY))
        call SetUnitX(Dummy, WorldMinX)
        call SetUnitY(Dummy, WorldMinY)
    endif
    return b
endfunction

this worked fine for me now. missiles are still blocked by buildings or sthg else but the "collision bug" or whatevere it was didn't appear anymore.

i think (or i'm really sure:D) that it is my "bad triggered" spells, so i share them here as well for debugging.

description:
when i use freezing shards and cast the fireball at the same targetpoint, the fireball missile sometimes detonated near the freezing shards when using the original library. imo this shouldn't happen because there is no knockback, only a dummy without locust and the IsUnitTargetable function returns false, when a unit has the 'win&' ability (like the footman dummy of the library). so the librar'y dummy isn't picked either.
when using my changes the spells work fine.



Collapse JASS:
scope FreezingShard

globals
    private trigger trig = null
    private constant integer SpellID = 'A00C'
    private constant integer DummySpellID = 'A01D'
    private constant integer MissileID = 'h000'
    private constant real Basedam = 20
    private constant real Bonusdam = 5
    private constant real IntBonusdam = 0.60
    
    private constant real missilespeed = 350
    private constant real AoE = 225
    
    private player TempPlayer = null
    private unit TempCaster = null
    private unit TempDummy = null
    private real TempDamage = 0.00
    private boolexpr beFilter = null
endglobals

private function group_filter takes nothing returns boolean
    return IsUnitTargetable( GetFilterUnit() ) and IsUnitEnemy( GetFilterUnit(), TempPlayer )
endfunction

private function group_callback takes nothing returns nothing
    local unit u = GetEnumUnit()
    local real x = 0.00
    local real y = 0.00
    
    set x = GetUnitX( u )
    set y = GetUnitY( u )
    call DealDamage( TempCaster, u, TempDamage )
    call SetUnitX( TempDummy, x )
    call SetUnitY( TempDummy, y )
    call IssueTargetOrder( TempDummy, "frostnova", TempDummy )
    call DestroyEffect( AddSpecialEffect( GetAbilityEffectById( SpellID, EFFECT_TYPE_AREA_EFFECT, 1 ), x, y ) )
endfunction

private struct Spell
    unit caster
    unit dummy
    unit array missiles[12]
    
    player owner
    
    group targets
    
    real targetX
    real targetY
    
    real damage
    
    private method onTimedLoop takes nothing returns boolean
        local integer i = 0
        local real x = 0.00
        local real y = 0.00
        local real angle = 0.00
        
        if( this.missiles[0] == null or not IsUnitInRangeXY( this.missiles[0], this.targetX, this.targetY, AoE ) ) then
            return false
        endif
        
        set TempPlayer = this.owner
        set TempDamage = this.damage
        set TempCaster = this.caster
        set TempDummy = this.dummy
        loop
            exitwhen i > 11
            call GroupClear( TEMPGROUP )
            call GroupEnumUnitsInRange( TEMPGROUP, GetUnitX( this.missiles[i] ), GetUnitY( this.missiles[i] ), 80, beFilter )
            call GroupRemoveUnit( TEMPGROUP, this.dummy )
            call GroupRemoveGroup( this.targets, TEMPGROUP )
            call ForGroup( TEMPGROUP, function group_callback )
            call GroupAddGroup( TEMPGROUP, this.targets )
        
            set x = GetUnitX( this.missiles[i] )
            set y = GetUnitY( this.missiles[i] )
            set angle = Atan2( y - this.targetY, x - this.targetX )
            call SetUnitX( this.missiles[i], x + missilespeed * TimedLoop_PERIOD * Cos( angle ) )
            call SetUnitY( this.missiles[i], y + missilespeed * TimedLoop_PERIOD * Sin( angle ) )
            set i = i + 1
        endloop

        return true
    endmethod

    implement TimedLoop
    
    static method create takes unit c, real x, real y returns Spell
        local Spell data = Spell.allocate()
        local integer i = 0
        local integer spelllevel = GetUnitAbilityLevel( c, SpellID )
        local real x2 = 0.00
        local real y2 = 0.00
        local real angle = 0.00
        
        set data.caster = c
        set data.owner = GetOwningPlayer( c )
        set data.targetX = x
        set data.targetY = y
        set data.targets = NewGroup()
        set data.damage = Basedam + ( Bonusdam * spelllevel ) + ( IntBonusdam * GetHeroInt( c, true ) )
        set data.dummy = CreateUnit( data.owner, DUMMY_ID, x, y, 0 )
        call UnitRemoveAbility( data.dummy, 'Aloc' )
        call UnitAddAbility( data.dummy, DummySpellID )
        call SetUnitAbilityLevel( data.dummy, DummySpellID, spelllevel )

        loop
            exitwhen i > 11
            set angle = 2*bj_PI/12 * i
            set x2 = x + 50 * Cos( angle )
            set y2 = y + 50 * Sin( angle )
            set data.missiles[i] = CreateUnit( data.owner, MissileID, x2, y2, bj_RADTODEG * Atan2( y2 - y, x2 - x ) )
            set i = i + 1
        endloop
        
        call data.startTimedLoop()
        
        return data
    endmethod
    
    method onDestroy takes nothing returns nothing
        local integer i = 0

        call ReleaseGroup( this.targets )
        loop
            exitwhen i > 11
            if( this.missiles[i] != null ) then
                call KillUnit( this.missiles[i] )
            endif
            set i = i + 1
        endloop
        if( this.dummy != null ) then
            call UnitApplyTimedLife( this.dummy, 'BTLF', 2.00 )
            call ShowUnit( this.dummy, false )
        endif
    endmethod
endstruct

private function Conditions takes nothing returns boolean
    local Spell spell = 0
    
    if( GetSpellAbilityId() == SpellID ) then
        set spell = Spell.create( GetTriggerUnit(), GetSpellTargetX(), GetSpellTargetY() )
    endif
    
    return false
endfunction

public function init takes unit RegisterUnit returns nothing
    if( trig == null ) then
        set trig = CreateTrigger()
        set beFilter = Condition( function group_filter )
        call TriggerAddCondition( trig, Condition( function Conditions ) )
    endif
    call TriggerRegisterUnitEvent( trig, RegisterUnit, EVENT_UNIT_SPELL_EFFECT )
endfunction

endscope

Collapse JASS:
scope Fireball

globals
    private trigger trig = null
    private constant integer SpellID = 'A01P'
    private constant integer MissileID = 'h003'
    private constant real Basedam = 40
    private constant real Bonusdam = 15
    private constant real IntBonusdam = 0.45
    private constant real AoE = 350
    private constant real missilespeed = 750
    
    private boolexpr beFilter = null
    private boolexpr beFilter2 = null
    private player TempPlayer = null
    private unit TempUnit = null
    private real TempDam = 0
endglobals

private function group_filter_callback takes nothing returns boolean
    return IsUnitTargetable( GetFilterUnit() ) and IsUnitEnemy( GetFilterUnit(), TempPlayer )
endfunction

private function group_filter_callback2 takes nothing returns boolean
    local unit u = GetFilterUnit()
    
    if( IsUnitTargetable( u ) and IsUnitEnemy( u, TempPlayer ) ) then
        call DealDamage( TempUnit, u, TempDam )
    endif
    
    set u = null
    return false
endfunction

private struct Spell
    unit caster
    unit missile
    
    player owner
    
    real damage
    real targetX
    real targetY
    real dist
    
    private method onTimedLoop takes nothing returns boolean      
        local real x = GetUnitX( this.missile )
        local real y = GetUnitY( this.missile )
        
        if( this.caster == null or IsUnitType( this.missile, UNIT_TYPE_DEAD ) or this.dist >= 1500 ) then
            return false
        endif
            
        set TempPlayer = this.owner
        call GroupClear( TEMPGROUP )
        call GroupEnumUnitsInRange( TEMPGROUP, x, y, 80, beFilter )

        if( FirstOfGroup( TEMPGROUP ) != null ) then
            return false
        else
            set this.dist = this.dist + missilespeed * TimedLoop_PERIOD
            set x = x + missilespeed * TimedLoop_PERIOD * CosBJ( GetUnitFacing( this.missile ) )
            set y = y + missilespeed * TimedLoop_PERIOD * SinBJ( GetUnitFacing( this.missile ) )
            if( not IsTerrainPathingType( x, y, TERRAIN_PATHING_WALKABLE ) ) then
                return false
            endif
            call SetUnitX( this.missile, x )
            call SetUnitY( this.missile, y )
        endif
        return true
    endmethod

    implement TimedLoop
    
    static method create takes unit c, real x, real y returns Spell
        local Spell data = Spell.allocate()
        local real cx = GetUnitX( c )
        local real cy = GetUnitY( c )
        local real angle = Atan2( y - cy, x - cx )
        
        set data.caster = c
        set data.owner = GetOwningPlayer( c )
        set data.targetX = x
        set data.targetY = y
        set data.damage = Basedam + ( Bonusdam * GetUnitAbilityLevel( c, SpellID ) ) + ( IntBonusdam * GetHeroInt( c, true ) )
        set data.missile = CreateUnit( GetOwningPlayer( c ), MissileID, cx + 120.00 * Cos( angle ), cy + 120.00 * Sin( angle ), bj_RADTODEG * angle )
        set data.dist = 0
        
        call data.startTimedLoop()
        
        return data
    endmethod
    
    method onDestroy takes nothing returns nothing
        local real x = 0
        local real y = 0
    
        if( not IsUnitType( this.missile, UNIT_TYPE_DEAD ) ) then
            set x = GetUnitX( this.missile )
            set y = GetUnitY( this.missile )
            if( this.caster != null ) then
                set TempPlayer = this.owner
                set TempUnit = this.caster
                set TempDam = this.damage
                call GroupClear( TEMPGROUP )
                call GroupEnumUnitsInRange( TEMPGROUP, x, y, AoE, beFilter2 )
            endif
            call DestroyEffect( AddSpecialEffect( GetAbilityEffectById( SpellID, EFFECT_TYPE_AREA_EFFECT, 0 ), x, y ) )
            call KillUnit( this.missile )
        endif
    endmethod
endstruct

private function Conditions takes nothing returns boolean
    local Spell spell = 0
    
    if( GetSpellAbilityId() == SpellID ) then
        set spell = Spell.create( GetTriggerUnit(), GetSpellTargetX(), GetSpellTargetY() )
    endif
    return false
endfunction

public function init takes unit RegisterUnit returns nothing
    if( trig == null ) then
        set trig = CreateTrigger()
        set beFilter = Condition( function group_filter_callback )
        set beFilter2 = Condition( function group_filter_callback2 )
        call TriggerAddCondition( trig, Condition( function Conditions ) )
    endif
    call TriggerRegisterUnitEvent( trig, RegisterUnit, EVENT_UNIT_SPELL_EFFECT )
endfunction

endscope

Last edited by Pyrogasm : 09-13-2009 at 08:46 AM.
Quillraven is offline   Reply With Quote
Old 11-14-2009, 08:26 PM   #44
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Updated.
  • Rewrote the documentation completely so that it better explains what's going on and how the user can take advantage of the library.
  • Made it use an epsilon check for the SetUnitPosition call. I did this because there are some no-pathing doodads in the World Editor that would cause a direct GetUnitX(u) == x to return false when it should return true. It also is safer this way because we're dealing with reals.
  • Added support for TerrainPathability_X/Y globals that return the nearest walkable point for those calls.
  • Added the IsTerrainWalkable(x, y) wrapper because it was some sort of a standard in the past and when this library was approved I never added it. (Even though Vex asked me to)
This update is a prelude to an update I'm going to be doing to Knockback soon.
__________________

Last edited by Rising_Dusk : 11-14-2009 at 08:27 PM.
Rising_Dusk is offline   Reply With Quote
Old 11-22-2009, 03:51 PM   #45
Rising_Dusk
Obscurity, the Art


Projects Director
Project Leader: OD
 
Join Date: Feb 2006
Posts: 9,729

Submissions (27)

Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)Rising_Dusk has a reputation beyond repute (1192)

Hero Contest #3 - 1st PlaceApproved Map: Desert of ExileApproved Map: Advent of the ZenithHero Contest #2 - 1st PlaceHero Contest - Third place>

Send a message via AIM to Rising_Dusk Send a message via MSN to Rising_Dusk
Default

Updated.
  • Broke backwards compatibility because the IsTerrainPathingType function was ridiculously long and everyone should be happy with the new functions anyways.
  • Added the IsTerrainLand, IsTerrainShallowWater, IsTerrainDeepWater functions.
  • Updated the documentation to even better explain what is going on.
__________________
Rising_Dusk is offline   Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT. The time now is 12:28 AM.


Affiliates
The Hubb The JASS Vault Clan WEnW Campaign Creations Clan CBS GamesModding Flixreel Videos

Powered by vBulletin (Copyright ©2000 - 2019, Jelsoft Enterprises Ltd).
Hosted by www.OICcam.com
IT Support and Services provided by Executive IT Services