Guild Wars Forums - GW Guru
 
 

Go Back   Guild Wars Forums - GW Guru > The Hall of Knowledge > The Campfire > Elementalist

Notices

Reply
 
Thread Tools Display Modes
Old Feb 28, 2011, 02:10 AM // 02:10   #101
Grotto Attendant
 
LifeInfusion's Avatar
 
Join Date: May 2005
Location: in the midline
Profession: E/Mo
Advertisement

Disable Ads
Default

Quote:
Originally Posted by Cuilan View Post
They don't stack at all and the ones you mention often aren't triggered from death, kick down, slowed attack speed, and poor choice of targets. Yes foes spam attacks and spells but your math is misleading.
What's:
http://www.gwpvx.com/Build:Team_-_FoW_Mesmer_Spike
http://www.gwpvx.com/Build:Team_-_Mesway

Mesmers stack... Illusion ones are iffy unless you're running heroes (so they don't stack the same hex).
LifeInfusion is offline   Reply With Quote
Old Feb 28, 2011, 04:20 AM // 04:20   #102
Forge Runner
 
Cuilan's Avatar
 
Join Date: Mar 2008
Profession: Me/
Default

Quote:
Originally Posted by LifeInfusion View Post
What's (this?)
Two links to PvX.
Quote:
Originally Posted by LifeInfusion View Post
Mesmers stack... Illusion ones are iffy unless you're running heroes (so they don't stack the same hex).
Uh huh? Those hero bars aren't very great and many groups have multiples of other professions, too.

Last edited by Cuilan; Feb 28, 2011 at 04:25 AM // 04:25..
Cuilan is offline   Reply With Quote
Old Feb 28, 2011, 05:03 AM // 05:03   #103
Desert Nomad
 
Join Date: Nov 2010
Default

My guess for the code path for ele damage would be something like this:

cast spell

for(all active objects)
if object = enemy of caster
if object distance from target < x
call damage(object, damage, type)

in damage, we have some kind of line that says:

if caster status = intensity and type = elemental
cast spell again with correct parameters for intensity
remove intensity from caster

So yes, it is a crappy situation. Ideally you would check to only trigger the intensity damage on the targetted enemy, but for all we know you can't make that distinction when you are that far into the damage function and rewriting such a core function to the game could be time consuming and/or cause problems in innumerable other places. Keep in mind, we have a skeleton crew that almost certainly weren't the ones to write this code in the first place, and they don't want to spend 1 week figuring out how to rewrite it and another 2 weeks figuring out how to fix 10 obscure bugs that would pop up after they had done so.

As to the ordering of the enemies in the data structure, its probably something similar to a simple linked list that is added to whenever an enemy is created. Keep in mind, guild wars adds enemies on the fly as you explore an area, the order could very well not be consistent when you repeat tests.

Last edited by Kunder; Feb 28, 2011 at 05:12 AM // 05:12..
Kunder is offline   Reply With Quote
Old Feb 28, 2011, 06:54 AM // 06:54   #104
Grotto Attendant
 
Join Date: Apr 2007
Default

Quote:
Originally Posted by Kunder View Post
My guess for the code path for ele damage would be something like this:

cast spell

for(all active objects)
if object = enemy of caster
if object distance from target < x
call damage(object, damage, type)

in damage, we have some kind of line that says:

if caster status = intensity and type = elemental
cast spell again with correct parameters for intensity
remove intensity from caster

So yes, it is a crappy situation. Ideally you would check to only trigger the intensity damage on the targetted enemy, but for all we know you can't make that distinction when you are that far into the damage function and rewriting such a core function to the game could be time consuming and/or cause problems in innumerable other places. Keep in mind, we have a skeleton crew that almost certainly weren't the ones to write this code in the first place, and they don't want to spend 1 week figuring out how to rewrite it and another 2 weeks figuring out how to fix 10 obscure bugs that would pop up after they had done so.

As to the ordering of the enemies in the data structure, its probably something similar to a simple linked list that is added to whenever an enemy is created. Keep in mind, guild wars adds enemies on the fly as you explore an area, the order could very well not be consistent when you repeat tests.
That's pretty much my hypothesis. Not sure what language the game is in, but I vaguely recall hearing C++ mentioned at one time, which would mean your linked-list-like structure is probably a vector. I'd agree that it's probably getting populated in creation order. And monsters within mobs may well spawn east-to-west (or whatever) mirroring the order some dev put them in the database. Also, don't overlook that there's another list we could be iterating down. I'd hazard a guess that tab/shift-tab cycling is supported by a vector of pointers to critters. (And monster AI also needs a proximity ordered list for target selection too.)
Chthon is offline   Reply With Quote
Old Feb 28, 2011, 07:47 AM // 07:47   #105
Forge Runner
 
HigherMinion's Avatar
 
Join Date: May 2008
Location: East Anglia, UK
Guild: Order of [Thay]
Profession: N/
Default

Why hasn't this been an issue with any other AoE attack/spell then?
HigherMinion is offline   Reply With Quote
Old Feb 28, 2011, 10:48 AM // 10:48   #106
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

Because it's not supposed to be.
It works like this;

You cast an AoE spell. The game checks every enemy to see if it's in range. If it is, it's hit for damage.
Intensity only activates on one of these damage triggers and it's probably going to be the first one (or whatever the game regards as the first one; that is the first enemy it checks that happens to be in range) and this is the source of complication.


Quote:
Originally Posted by Kunder View Post
As to the ordering of the enemies in the data structure, its probably something similar to a simple linked list that is added to whenever an enemy is created. Keep in mind, guild wars adds enemies on the fly as you explore an area, the order could very well not be consistent when you repeat tests.
You can kill off arbitrary targets in the Isle of the Nameless and have the same results. That said, I don't know if a new entity is created or if it's the same one. If you had the patience you could try testing in the Zaishen Menagerie with spawned pets, but they're hard to work with.


Quote:
Originally Posted by Kunder View Post
So yes, it is a crappy situation. Ideally you would check to only trigger the intensity damage on the targetted enemy, but for all we know you can't make that distinction when you are that far into the damage function and rewriting such a core function to the game could be time consuming and/or cause problems in innumerable other places.
Intensity has been designed to work with every type of elemental damage spell, including non-targeted ones (DoTAoE, PBAoE). If it were altered to affect only targeted ones then it may be possible to give it a more sane outcome (strangely, Rodgort's Invocation behaves more like DoTAoE spell than a standard targeted spell, so it may not work for that; you need a target to begin casting but after that, it doesn't matter).
Xenomortis is offline   Reply With Quote
Old Feb 28, 2011, 02:07 PM // 14:07   #107
Desert Nomad
 
Join Date: Nov 2010
Default

Quote:
Originally Posted by HigherMinion View Post
Why hasn't this been an issue with any other AoE attack/spell then?
The same thing happens to Splinter Weapon + Whirlwind attack actually, you just don't notice it because its 5x as many numbers in 1/2 the area

Quote:
Intensity has been designed to work with every type of elemental damage spell, including non-targeted ones (DoTAoE, PBAoE). If it were altered to affect only targeted ones then it may be possible to give it a more sane outcome (strangely, Rodgort's Invocation behaves more like DoTAoE spell than a standard targeted spell, so it may not work for that; you need a target to begin casting but after that, it doesn't matter).
Isn't that the same for most/all ele AoE spells?

Last edited by Kunder; Feb 28, 2011 at 02:09 PM // 14:09..
Kunder is offline   Reply With Quote
Old Feb 28, 2011, 03:22 PM // 15:22   #108
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

Quote:
Originally Posted by Kunder View Post
Isn't that the same for most/all ele AoE spells?
The only single strike one I've noticed not cancel casting when the target dies is Rodgort's. I'd need to check with the others but I can't be bothered and am not currently in a position to do so.


Edit:

Quote:
Originally Posted by Kunder View Post
The same thing happens to Splinter Weapon + Whirlwind attack actually, you just don't notice it because its 5x as many numbers in 1/2 the area
How about scythe triggers? That would be easier to test.

Last edited by Xenomortis; Feb 28, 2011 at 03:56 PM // 15:56..
Xenomortis is offline   Reply With Quote
Old Feb 28, 2011, 07:37 PM // 19:37   #109
Desert Nomad
 
Kaida the Heartless's Avatar
 
Join Date: May 2006
Profession: N/
Default

Did some tests.

Due to the way the same understands positioning (I posted a pic on the previous page), Intensity is originating from the target closest to the southwest that was effective by RI, i.e. coordinate space (0,0,0) because we are in what is known as "positive space".

It is doing this because Rodgort's Invocation doesn't have a target, it has a location based on a target at the time of cast. Hence, it does not cancel when the target dies. So, the game has to pick a target. Guildwars just so happens to array it's targets via a bottom left to top right pattern. The first target "hit" is the bottom left, or the origin of Intensity.

From what I read, all of you already understand this. What are we trying to test now?
Kaida the Heartless is offline   Reply With Quote
Old Feb 28, 2011, 07:43 PM // 19:43   #110
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

Quote:
Originally Posted by Kaida the Heartless View Post
Guildwars just so happens to array it's targets via a bottom left to top right pattern.
This bit. Testing against static targets in the Isle of Nameless doesn't really tell us much. Is the ordering fixed after creation? Is the ordering continually updated by position? What happens if a new entity is created (e.g. a minion or spirit)?
Xenomortis is offline   Reply With Quote
Old Mar 01, 2011, 08:07 PM // 20:07   #111
Desert Nomad
 
Kaida the Heartless's Avatar
 
Join Date: May 2006
Profession: N/
Default

It should be created every time the spell is cast, essentially throwing all "in range" targets into the array. You can see if they are "in range" by my pic on the other page. That information always exists because the game exists in (positive) 3d space, requiring no array, merely a call to the enemies location when the spell is cast. This would be the simplest and most intuitive way. If anything I'll call up one of my game dev. buddies and see if he knows anything.
Kaida the Heartless is offline   Reply With Quote
Old Mar 01, 2011, 09:20 PM // 21:20   #112
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

It must check which enemies are in rage, correct? It must perform this check for every enemy in the instance whenever the spell is cast.
The computer can only check which one thing at a time, so in what order does it check the enemies?
Xenomortis is offline   Reply With Quote
Old Mar 01, 2011, 09:36 PM // 21:36   #113
Desert Nomad
 
Join Date: Nov 2010
Default

Quote:
Originally Posted by Xenomortis View Post
How about scythe triggers? That would be easier to test.
Harder, I think, and I'm not sure it would even happen. Since scythes ALWAYS hit the target you aim at, +2 randomly chosen targets in front of you, its possible that it would always hit your targetted enemy first and then choose the other enemies hit after that. Furthermore, scythes present the problem of enemies being so close together that it would be much harder to see who splinter weapon actually triggered on. With Whirlwind's wide area of attack, its a bit easier to see when a caster just out of range takes 1 or 2 hits of splinter weapon.

Quote:
Originally Posted by Kaida the Heartless View Post
It should be created every time the spell is cast, essentially throwing all "in range" targets into the array. You can see if they are "in range" by my pic on the other page. That information always exists because the game exists in (positive) 3d space, requiring no array, merely a call to the enemies location when the spell is cast. This would be the simplest and most intuitive way. If anything I'll call up one of my game dev. buddies and see if he knows anything.
Keep in mind that this isn't an integer space, an 'array' of locations would require near-infinite space.

Last edited by Kunder; Mar 01, 2011 at 09:38 PM // 21:38..
Kunder is offline   Reply With Quote
Old Mar 01, 2011, 10:00 PM // 22:00   #114
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

Quote:
Originally Posted by Kunder View Post
Harder, I think, and I'm not sure it would even happen. Since scythes ALWAYS hit the target you aim at, +2 randomly chosen targets in front of you, its possible that it would always hit your targetted enemy first and then choose the other enemies hit after that. Furthermore, scythes present the problem of enemies being so close together that it would be much harder to see who splinter weapon actually triggered on. With Whirlwind's wide area of attack, its a bit easier to see when a caster just out of range takes 1 or 2 hits of splinter weapon.
I was thinking more just which extra targets the scythe hits. Yeah it might be difficult but it's something that could be done in a Scrim match or in the Zaishen Menagerie and it's clear which targets get hit.



Quote:
Originally Posted by Kunder View Post
Keep in mind that this isn't an integer space, an 'array' of locations would require near-infinite space.
It's a computer; there should exist an injection between it and {ℕ×ℕ} and there's definitely a bijection between between ℕ^2 and ℕ.
Ok, I'll stop now.
Xenomortis is offline   Reply With Quote
Old Mar 02, 2011, 12:40 AM // 00:40   #115
Desert Nomad
 
Kaida the Heartless's Avatar
 
Join Date: May 2006
Profession: N/
Default

I'm going to go ahead and guess they went with the "visible" enemies, as the "invisible (culled)" ones are too far away to count for anything. So, every time a spell it cast, it checks the range of all visible enemies (from bottom left to top right of the map) from the origin of the spell. This is my best guess as there are a bazillion ways to do this while having nearly the same explanation. Honestly, it was totally up to their Game Dev. team and how their brains work, since they coded it.

The array does not require infinite space. Values are truncated, usually to no more than the thousandth place.

The bottom line is simply that the spell (Intensity) is procing off the bottom left most target when one isn't specified for the intensified spell. It's just how positive space works. They would have to change the effect to pick the target closest to the center of the spell instead of defaulting to the formerly mentioned. That's all.

Last edited by Kaida the Heartless; Mar 02, 2011 at 12:51 AM // 00:51..
Kaida the Heartless is offline   Reply With Quote
Old Mar 02, 2011, 02:58 AM // 02:58   #116
Desert Nomad
 
Join Date: Nov 2010
Default

Quote:
Originally Posted by Kaida the Heartless View Post
I'm going to go ahead and guess they went with the "visible" enemies, as the "invisible (culled)" ones are too far away to count for anything. So, every time a spell it cast, it checks the range of all visible enemies (from bottom left to top right of the map) from the origin of the spell. This is my best guess as there are a bazillion ways to do this while having nearly the same explanation. Honestly, it was totally up to their Game Dev. team and how their brains work, since they coded it.

The array does not require infinite space. Values are truncated, usually to no more than the thousandth place.

The bottom line is simply that the spell (Intensity) is procing off the bottom left most target when one isn't specified for the intensified spell. It's just how positive space works. They would have to change the effect to pick the target closest to the center of the spell instead of defaulting to the formerly mentioned. That's all.
You realize how many array space that requires to enumerate ever position? Density goes up with the square of the units per side. Just 10,000 lengths within the visible space (a paltry number, smooth movement would require orders of magnitude greater) would require 100 MB of space at 1 byte per array space. This is incredibly inefficient considering that maybe 150 creatures at max would appear, which at 1 byte each would mean that 99.99985% of your array is just empty space, which is a ludicris waste. Obviously Anet's servers don't require 100 MB of memory per instance, the load on their servers would be tremendous.

The 'grayed' names of party members and non-processing of creatures beyond map range is certainly a server-time saving device. Otherwise you would have to check all 300 some enemies in a map for being in a spell radius, with this you have to check 20-40 in most cases. Also saves on bandwidth for updating clients about their actions and CPU time for processing their AI.

I have no idea what you mean when you say "positive space". I've never heard such a term before and online search only turns up references to art. I can tell you that such terms as 'bottom left' have no meaning when you can rotate the camera.

Quote:
I was thinking more just which extra targets the scythe hits. Yeah it might be difficult but it's something that could be done in a Scrim match or in the Zaishen Menagerie and it's clear which targets get hit.
Ahh, I see. That would work. Still, even if you did know this it doesn't provide useful information for real gameplay, since you won't know what order the enemies are enumerated when you enter an area.

Last edited by Kunder; Mar 02, 2011 at 03:03 AM // 03:03..
Kunder is offline   Reply With Quote
Old Mar 02, 2011, 09:29 AM // 09:29   #117
Desert Nomad
 
Kaida the Heartless's Avatar
 
Join Date: May 2006
Profession: N/
Default

You do realize the array isn't for position, right? It's for the targets that are in range, which is calculated before hand. And these are my best guesses. I did more of the graphics side of games/movies while only touching, briefly, on the game development side. Besides, nothing says it has to be an array if I remember correctly (linked lists, matrices?). The bottom line is, they are getting grouped (bottom left to top right); we will never know exactly how it is done unless you want to ninja your way into Anet HQ and steal some source code.

Also, I referred to this post of mine, which will explain positive space:
http://www.guildwarsguru.com/forum/s...8&postcount=98


Quote:
Originally Posted by Kunder View Post
Ahh, I see. That would work. Still, even if you did know this it doesn't provide useful information for real gameplay, since you won't know what order the enemies are enumerated when you enter an area.
True, however, the order in which enemies spawn and the order in which they will proc shouldn't have any correlation to each other. They *should* always proc from the bottom left.

Last edited by Kaida the Heartless; Mar 02, 2011 at 09:32 AM // 09:32..
Kaida the Heartless is offline   Reply With Quote
Old Mar 06, 2011, 01:51 PM // 13:51   #118
Desert Nomad
 
Join Date: Nov 2010
Default

So, I found one semi-interesting way to exploit Intensity. Props to the first who figures out how. No, its not at all useful in any fashion, else I wouldn't make a game out of it. . In theory, this could be used to make EVSS w/ the elemental damage trick proc for about 1.3k armor-ignoring AoE damage if used with BUH, and would wipe every non-boss mob in the game.

Would it be weird to say that inspiration for how this is done came to me in a dream?

EDIT: EVSS gives 1,117 AoE armor ignoring damage. BUH would push it to 1,485, Vengeance to 1,396. If you wanted to sacrifice even more % chance of working for increased damage, you could push up the figure with BUH to approximately 1828 AoE damage if my calculations are correct.



Quote:
Originally Posted by Kaida the Heartless View Post
You do realize the array isn't for position, right? It's for the targets that are in range, which is calculated before hand. And these are my best guesses. I did more of the graphics side of games/movies while only touching, briefly, on the game development side. Besides, nothing says it has to be an array if I remember correctly (linked lists, matrices?). The bottom line is, they are getting grouped (bottom left to top right); we will never know exactly how it is done unless you want to ninja your way into Anet HQ and steal some source code.

Also, I referred to this post of mine, which will explain positive space:
http://www.guildwarsguru.com/forum/s...8&postcount=98
I just don't see how its possible to actually code something in that fashion. Completely rearrage the array constantly while things move about (which is what I think what you are describing would require)? That just won't do.

Last edited by Kunder; Mar 06, 2011 at 06:24 PM // 18:24..
Kunder is offline   Reply With Quote
Old Mar 08, 2011, 12:43 AM // 00:43   #119
Tea Powered
 
Xenomortis's Avatar
 
Join Date: May 2008
Location: UK
Profession: N/
Default

Use a low level bone minion and Verata's Aura on the hero (hence Mo/N). Hopefully the masterless minion will be positioned so it's picked for the Intensity damage which should be high, since the armour of the minion will be very low, the damage from Intensity should be very high. Stack a load of +atts to get 20, just to be sure and EBSoH.
I've been trying to repeat this, but the minion refuses to cooperate. Could alternatively use Invoke Lightning or some single target spell for the initial damage trigger.

Also, pretty sure the damage from EVSS cannot be converted to elemental damage to trigger Intensity.

Edit: Also possibly Vengeance - I haven't crunched any numbers to see if you used that or not.

Last edited by Xenomortis; Mar 08, 2011 at 12:49 AM // 00:49..
Xenomortis is offline   Reply With Quote
Old Mar 08, 2011, 12:45 AM // 00:45   #120
Furnace Stoker
 
Join Date: Apr 2006
Guild: Amazon Basin [AB]
Profession: Mo/Me
Default

Quote:
Originally Posted by Xenomortis View Post
Also, pretty sure the damage from EVSS cannot be converted to elemental damage to trigger Intensity.
A lot of people have done this with stone striker, although it may not work for all conversion skills.
FoxBat is offline   Reply With Quote
Reply

Share This Forum!  
 
 
           

Thread Tools
Display Modes

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

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

Forum Jump


All times are GMT. The time now is 06:46 PM // 18:46.


Powered by: vBulletin
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
jQuery(document).ready(checkAds()); function checkAds(){if (document.getElementById('adsense')!=undefined){document.write("_gaq.push(['_trackEvent', 'Adblock', 'Unblocked', 'false',,true]);");}else{document.write("