• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

One-way visibility blocker?

Status
Not open for further replies.

Antares

Spell Reviewer
Level 22
Joined
Dec 13, 2009
Messages
523
Hello,

1.) is it possible to imitate the visibility blocking done by the stardard blizzard cliffs without using them?
so, in essence, can you block visibility into one direction, but not in the other direction.

see this screenshot to understand what i mean:
http://img251.imageshack.us/img251/3223/visibilityb.jpg
i made the vis blockers visible with these fancy eye effects.

2.) can pathing blockers and visibility blockers become a performance whore, if too many are used? i estimate, that the final map will have ~4000 blockers. or can they significantly increase loading time? or significantly increase map size? anything bad.
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
What about player-specific fog-of-war settings? I'm not even sure if you can do this without a desync but have you tried?

Did you do the terrain for this? I was so intrigued I actually right-clicked it to view more (like in World Editor).
 
Hello,

1.) is it possible to imitate the visibility blocking done by the stardard blizzard cliffs without using them?
so, in essence, can you block visibility into one direction, but not in the other direction.

see this screenshot to understand what i mean:
http://img251.imageshack.us/img251/3223/visibilityb.jpg
i made the vis blockers visible with these fancy eye effects.

2.) can pathing blockers and visibility blockers become a performance whore, if too many are used? i estimate, that the final map will have ~4000 blockers. or can they significantly increase loading time? or significantly increase map size? anything bad.

For 2)
your map size would definitely increase and so your load time might also increase but I think they won't cause lags or whatsoever since visible doodads don't cause lags(at least if they aren't animated)...
 

Antares

Spell Reviewer
Level 22
Joined
Dec 13, 2009
Messages
523
What about player-specific fog-of-war settings? I'm not even sure if you can do this without a desync but have you tried?

could you elaborate that more plz?

Did you do the terrain for this? I was so intrigued I actually right-clicked it to view more (like in World Editor).

yes, I did the terrain. (with the ultimate terraining map)

For 2)
your map size would definitely increase and so your load time might also increase but I think they won't cause lags or whatsoever since visible doodads don't cause lags(at least if they aren't animated)...

thanks. so I will try to reduce the amount of them but not worry too much about it.
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
you could trigger it but that would be slow and complicated
including things as occlusion height would be even more complicated
it is possible but I think that it will lag with 50+ units

if there are less then like 300 units on the higher stage at once you could place ground vision blockers and move flying units with the higher units so they can see over them
 
Level 18
Joined
Jan 21, 2006
Messages
2,552
Cyclotrutan said:
could you elaborate that more plz?

Come to think of it it would be more complex than I thought. I'll do some digging.

You can however trigger your pathing using the SetTerrainPathable native. It would require some extra math.
 

Antares

Spell Reviewer
Level 22
Joined
Dec 13, 2009
Messages
523
You can however trigger your pathing using the SetTerrainPathable native. It would require some extra math.

yeah, i just wrote a function for that

JASS:
function pathinginitialization takes nothing returns nothing
local real x = -2000
local real y
    loop
    exitwhen x >= 16000
    set y = -14500
        loop
        exitwhen y >= 3600
            if ( GetTerrainType(x, y) == 'Vrck' ) then
                call SetTerrainPathable(x,y,PATHING_TYPE_WALKABILITY,false)
            endif
            set y = y + 64                
        endloop
        call TriggerSyncReady()
        set x = x + 64
    endloop
endfunction

much better then spamming blockers, thanks.
 
Status
Not open for further replies.
Top