[Roadmap] DOL to 1.115 Client Support and Fix Merge

Discussions on various DOL development features

Moderator: Support Team

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sat Aug 30, 2014 3:58 pm

Something Wrong around Merchant...

I should research it !
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sat Aug 30, 2014 4:09 pm

Tooltips seem to be working but I need to find out what signal the server is given when a player right clicks on a spell to delve it.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sat Aug 30, 2014 4:23 pm

Revision 3345 - Fixes Merchant List Bug.

For Tooltip, I should review this later, I have some code merge with Eden around this too, and I'll need to update the Ability table for the default client hardcoded ability ID.
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sat Aug 30, 2014 7:56 pm

Working on fixes to DelveItem and here is where I'm at.

It appears the client does not support nay spell id's over 32767. WE had a spell with an ID (ushort) of 65535 and it did not work. Lowered it to 65450 and it still did not work, lowered it to 30070 and it worked. Obviously I have not tried every value yet. :)

Comparing the spell when it did not work to a spell that worked...

-- Delve objectType=24, objectID=65450, extraID=373686271 DOES NOT WORK
-- Delve objectType=24, objectID=1007, extraID=373620736 WORKS

Not sure what extraID is but it's the same for all spells that work and different for the spell that did not. Possibly an overflow??
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sat Aug 30, 2014 9:44 pm

Oh good grief.

The old spell code uses icon for ID instead of actual spell id. :shock:

Thus the problem when some of this ancient code was written but not documented. Now to figure out how to force this to work.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sun Aug 31, 2014 12:26 am

Revision 3346, changes to delve plus some other goodies.

Still a work in progress. Works for list casters but sketchy support for hybrids. In addition, we need a way to force re-caching of the spell into if the player level changes. My test client is stuck with old delves until they time out. Perhaps a force call to SendDelveInfo when a player trains or changes level?

My solutions are rather lame, feel free to improve if you think it's needed.

I'll be back around tomorrow.
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 6:25 am

OK I'll checkout your revision 3346 and see what could be improved :)

If there is some bug around "spells" that may explain why I didn't run across them on Freyad, my current development status on Freyad have more than half of all spellhandler totally rewrote :) (You can see it in current Branches...)

For the Delve Cache, I don't know how to force refresh it from client (except from deleting : ...Documents\Electronic Arts\Dark Age of Camelot\delve.txt) but I know there is an expire date sent by the server with the tooltip packet, maybe by re-sending some tootltip packet with an expired "date' it could force refresh !

This will definitely need research...
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 7:39 am

Hum the "Ushort" ID only allowing half of ushort value is really strange !!

I have an old 'Delve Log' that shows at least that ushort.MaxValue >> 1 is not the limit !
Code: Select all
(Spell (Index "35535")(Name "Cloud of Distortion")(damage_type "13")(description_string "Decreases the target's range of vision.")(dur_type "2")(duration "120")(level "1")(power_cost "9")(range "2000")(target "1")(Expires "1409417629")) (Spell (Index "35536")(Name "Cloud of Obscurity")(damage_type "13")(description_string "Decreases the target's range of vision.")(dur_type "2")(duration "120")(level "1")(power_cost "13")(range "2100")(target "1")(Expires "1409417629"))
Code: Select all
(Spell (Index "62006")(Name "Abrasive Boulders")(cast_timer "600")(damage_type "15")(description_string "Damages the target.")(level "1")(power_cost "22")(range "1500")(target "1")(Expires "1407660849")) (Spell (Index "62014")(Name "Greater Gust of Sand")(cast_timer "1000")(damage_type "15")(description_string "Damages the target.")(level "1")(power_cost "20")(radius "350")(range "1500")(target "1")(Expires "1407660829"))
But I understand what you tried in your code to have a lower bound index, the part that annoys me, is that delve can be made on "Other player" effect, and thus SpellID or Delve Index will have no logic with Effect Owner Spell llist !!

I should check around effect packet code what is the "index" sent for delve tooltips...
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 10:04 am

OK I'm kind of stuck...

Effect Update does send an "Effect.InternalID" which has been switched for Spell.SpellID in 1.110

this is still a ushort, and this is used for delving tooltip so it has to match some kind of internal ID that doesn't change everytime...

Songs have a "song mini delve" that links to an "effect" that is a SpellID, when applied to player, effect just references the "spellID"

Player Canceling effect should use this too, so is there any possibility that we send duplicate "effect.internalID" if multiple same spell is applied ? (maybe valid only for un-cancelable spell ? like offensive...) is there a lot of spell that can stack just by casting it multiple time on the same target ? (I had my StormLord Debuff Storm work like that for increasing debuff effect... but it's the only one that comes to mind, maybe it should rely on Heretic Increasing spell...)

So... Do we have only 65535 available ID's for Spells ?
Is there some way to prune cache, so we could try some "virtual" ID based on current session ? (with multiple shards around, I think mostly every shard admin will need to prune cache on login, if there is any way to do so...)

Does Internal ID is used for other effects ? Realm Abilities and Abilities Come to mind, should they share a unique ID with Spell ID Pool ? Champion Spells, Master Level Abilities, Item Spells, Styles Effects ? the ushort seem pretty hard to be enough...

I have found absolutely no logic around the "ExtraID" use... I don't know if there is any flag in there or maybe some overflow id, I don't see any relation with Icon Packets...
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 10:22 am

Sorry for spamming I need to put my thought on something...

Looks like the "player cancel request" handler have changed ? It doesn't work on Storm...

Edit : OK Playercancel effect rely on effect.InternalID where it should rely on the spell.ID ? or Skill.ID ?

Edit2 : I think the "ExtraID" is the "Expired Time" of the cache, I tried with a delved spell expired yesterday @19h and it gave me ~63000 seconds about 17h long @12h30 today, that's about right...

But in my live logs the server doesn't seem to handle this differently... Is there any use to this ?

Edit3 :

On live Server, Styles Index Tooltip can Collide with Other IDs (Abilities, spell...), All I can say for now, is that style ID are not on the same pool as Skill ID
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sun Aug 31, 2014 11:42 am

I'm all about thinking out loud. :)

I'm wondering if refreshing the cache is as easy as calling SendDelveInfo with a header, like "spells" and then no spells. It appears we are only calling SendDelveInfo when the client requests it, so what happens if we send it even if the client does not request it?
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 11:49 am

Edit4 :

There is about 200+ ability (including RA), and about 6000+ spells (including ML CL ?)

I don't see any other skill that can make an icon effect, for me the pool of "ID" should be reduced to a ushort maxvalue

---

There is no bug around 32000 and over spellid for me, Storm sent me a spell with 35537 which is in database...

but there is overflow !!

Storm sent me spell 48086, but doesn't exist in database, I tried with a bit calculator, in fact it's 900054, when you remove the 16 front bit, it makes 48086, which is the only bit from a "ushort" the client will get...
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sun Aug 31, 2014 12:43 pm

Are you using my revision from last night? If so it's no longer using spell id but instead spell line and level, for list casters, and position in usable spell list for hybrids.

This is a fine example of code showing what works, but NOT how to code it. I could not figure out the linq elementAt syntax for a dictionary keyvaluepair combination and it was late. Point and laugh. :)
Code: Select all
List<SpellLine> spellLines = client.Player.GetSpellLines(); Dictionary<string, KeyValuePair<Spell, SpellLine>> spells = client.Player.GetUsableSpells(spellLines, false); ushort counter = 0; foreach (KeyValuePair<string, KeyValuePair<Spell, SpellLine>> spl in spells) { if (counter == id) { spell = spl.Value.Key; break; } counter++; }
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Leodagan » Sun Aug 31, 2014 1:00 pm

this work for trainable "skills", this doesn't work for mob skills or subspell id, or item spells.

you can't collide effect Internal ID with a Skill list Index if it's not the same thing, from what I saw in my logs effect.internalID == Spell.spellID or effect.InternalID == Ability.ID

When your mouse hover the Effect Icon, the only data he got from the server is "InternalID" and the client will cache the tooltip in delve.txt like any other delve from a spelllist...

So if there is collision with a effect.internalID or an other player same hybrid position ID, the tooltip cache will be wrong !

PS :

There is a need for an ushort Index "Key" to be used with static values to take advantage of the cache mechanisms, there is something to be made around this.
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: [Roadmap] DOL to 1.115 Client Support and Fix Merge

Postby Tolakram » Sun Aug 31, 2014 1:06 pm

Ok, I see that. Hmmm. So we need to send the spell id, but for me anyway, on 1.115, spell id's above 32767 do not work.

edit:

for list casters, it did not work at first and then my cache reset and it started working. Now I'm completely confused as to how it works. I cast a power shield on a mentalist, hovered over effect icon and it crashed with index out of range. Went to look at the code, did not understand why it was crashing, hovered over it again and no crash. :)
- Mark
User avatar
Tolakram
Storm / Storm-D2 Admin
 
Posts: 9189
Joined: Tue Jun 13, 2006 1:49 am
Location: Kentucky, USA


Return to “%s” DOL Development Discussion

Who is online

Users browsing this forum: No registered users and 1 guest