Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 07-10-2010, 12:18 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

AAs do not display or purchase properly.
Basic spell casting should work but discipline spell casting is off and didn't try clickies yet.
Reply With Quote
  #2  
Old 07-10-2010, 06:22 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Clicky items are fine. Since they are now handled by the server completely as of SoD, I don't think they will break any time soon.

I found that there is a new packet that handles the buff icons now. Here is an example from a collect:

Code:
[OPCode: 0x2121 OP_Unknown [Server->Client] [Size: 36]
000 | ca 52 00 00 3e 00 00 00 01 01 00 00 00 00 00 40  | .R..>..........@
016 | 52 00 00 68 01 00 00 00 00 00 00 54 65 73 74 69  | R..h.......Testi
032 | 75 73 00 00                                      | us..
So, based on that packet, I think the structure is something like this:

Code:
// Variable Length Struct - Sends Buff Icon information for Underfoot+
struct BuffIcon_Struct
{
/*00*/	uint32 entity_id;		// Entity ID of client
/*04*/	uint32 unknown04;		// Seen 62 and 6000 from examples
/*08*/	uint8 unknown08;		// Seen 1 - Maybe this tells it which buff window to go to?
/*09*/	uint8 buffcount;		// Total number of buffs
/*10*/	uint8 unknown10;		// Seen 0
/*11*/	uint32 unknown11;		// Seen 0
/*15*/	int32 spell;			// Spell id for the buff
/*19*/	uint32 duration;		// Duration in tics
/*23*/	uint32 unknown34;		// Seen 0
/*27*/	char name;				// Name of the Client (Null Terminated) - Or some other string/name
/*00*/	uint8 buffslot;		// Starts at 0
/*00*/
};
I am unsure what the 62 in unknown04 is for yet. I am guessing that some of the uint8s are toggles for stuff like being able to click the buff off, and one of them is probably for telling it which window to send the icon to. There may even be one for telling it which buff slot to put it in, but I haven't tested that far yet.

These buff icons carry over perfectly when zoning, so I think we only need to add it to the casting part and it should be good. That should resolve one of the biggest client issues so far
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 07-10-2010 at 02:51 PM..
Reply With Quote
  #3  
Old 07-10-2010, 06:26 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Also, here are the structs I have for OP_Action:

Code:
struct Action_Struct
{
/*00*/	int16 target;			// id of target
/*02*/	int16 source;			// id of caster
/*04*/	uint16 level;			// level of caster - Seen 0
/*06*/	uint16 instrument_mod;	// Seen 0
/*08*/	uint16 unknown08;		// Was uint32
/*10*/	float unknown10;		// New field to Underfoot - Seen 1
/*14*/	uint32 unknown14;		// Was uint16
/*18*/	float sequence;
/*22*/	uint32 unknown22;		// Seen 0
/*26*/	int8 type;				// 231 (0xE7) for spells
/*27*/	uint32 damage;
/*31*/	int16 unknown31;		// New field to Underfoot - Seen 0
/*33*/	int16 spell;			// spell id being cast
/*35*/	int8 level2;			// level of caster again? Or maybe the castee
/*36*/	int8 buff_unknown;		// if this is 4, a buff icon is made
/*37*/
};

struct ActionAlt_Struct
{
/*00*/	int16 target;			// id of target
/*02*/	int16 source;			// id of caster
/*04*/	uint16 level;			// level of caster - Seen 0
/*06*/	uint16 instrument_mod;	// Seen 0
/*08*/	uint16 unknown08;		// Was uint32
/*10*/	float unknown10;		// New field to Underfoot - Seen 1
/*14*/	uint32 unknown14;		// Was uint16
/*18*/	float sequence;
/*22*/	uint32 unknown22;		// Seen 0
/*26*/	int8 type;				// 231 (0xE7) for spells
/*27*/	uint32 damage;
/*31*/	int16 unknown31;		// New field to Underfoot - Seen 0
/*33*/	int16 spell;			// spell id being cast
/*35*/	int8 level2;			// level of caster again? Or maybe the castee
/*36*/	int8 buff_unknown;		// if this is 4, a buff icon is made
/*37*/	int32 unknown37;		// New field to Underfoot - Seen 14
/*41*/	int8 unknown41;			// New field to Underfoot - Seen 0
/*42*/	int8 unknown42;			// New field to Underfoot - Seen 0
/*43*/	int8 unknown43;			// New field to Underfoot - Seen 0
/*44*/	int32 unknown44;		// New field to Underfoot - Seen 23
/*48*/	int32 unknown48;		// New field to Underfoot - Seen -1
/*52*/	int32 unknown52;		// New field to Underfoot - Seen -1
/*56*/	int32 unknown56;		// New field to Underfoot - Seen 0
/*60*/	int32 unknown60;		// New field to Underfoot - Seen 0
/*64*/
};
It is basically the same as KLS added to the SVN, accept sequence is at byte 18 instead of 20 and I have one of the new fields set to float. Noting it here to maybe mess with it more later. The sequence field may not even really matter, but maybe it does in some cases.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 07-10-2010, 07:43 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Naturally I couldn't sleep so I was fiddling with this instead.

0x2121 appears to be OP_TargetBuffs from my collects. With a 17 byte buff entry and larger header than SoD. I find it used in the following cases from collects: Buff fades, Buff added, AA action, MouseTarget. So it looks like on live they expanded it to pretty much everything buff related.

Here's an example packet(I have quite a few more if needed):
Code:
[OPCode: 0x2121] OP_Unknown [Server->Client] [Size: 216]
4a 13 00 00 //entity id
70 17 00 00 //???
01 //seems to always be 0x01
0c //count
00 00 //???

00 //???
00 00 //???
83 26 00 00 //spell id
55 00 00 00 //tics
00 00 00 00 //???
00 //This is a name, I assume it has something to do with making buffs appear on the client
01 //probably buffslot

00 
00 00
96 4a 00 00 
f8 04 00 00 
00 00 00 00 
00 
02 

00 
00 00 
c1 4b 00 00 
55 00 00 00 
00 00 00 00 
00 
03 

00 
00 00 
e2 4b 00 00 
51 01 00 00 
00 00 00 00 
00 
04

00 
00 00 
e5 4b 00 00 
51 01 00 00 
00 00 00 00 
00
05 

00 
00 00 
1f 20 00 00 
44 00 00 00 
00 00 00 00
00 
06 

00 
00 00 
e2 46 00 00 
2d 01 00 00 
00 00 00 00 
00 
07 

00 
00 00 
e3 4a 00 00 
9d 01 00 00 
00 00 00 00 
00 
08 

00 
00 00 
93 47 00 00 
f4 06 00 00 
00 00 00 00 
00 
0a 

00 
00 00 
bf 48 00 00
e5 01 00 00
00 00 00 00 
00 
0b 

00 
00 00 
6f 05 00 00
99 01 00 00 
00 00 00 00 
00 
0c 

00 
00 00 
38 0d 00 00 
c8 05 00 00 
00 00 00 00 
00 
00
If correct it would mean the opcodes in our list are a bit swapped around; though not completely pushed up like normal cause the dz ones are after and only one of the dz opcodes didn't match it's SoD alignment. This may get tricksy.
Reply With Quote
  #5  
Old 07-10-2010, 02:46 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Well, that should help fill in the struct a bit more. I think we probably need a short duration buff example too so we know if that makes any difference. I edited the struct I posted above with your new fields.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #6  
Old 07-10-2010, 05:45 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

It appears similar but isn't the same. 0x3f24 is still target buff, though that struct seems to of changed a bit too.
Reply With Quote
  #7  
Old 07-10-2010, 07:25 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I think my struct was a bit off

Code:
4a 13 00 00 ff 14 00 00 01 0c 00 00 00 00 00 83
26 00 00 55 00 00 00 00 00 00 00 00 01 00 00 00
96 4a 00 00 f8 04 00 00 00 00 00 00 00 02 00 00
00 c1 4b 00 00 55 00 00 00 00 00 00 00 00 03 00
00 00 e2 4b 00 00 51 01 00 00 00 00 00 00 00 04
00 00 00 e5 4b 00 00 51 01 00 00 00 00 00 00 00
05 00 00 00 1f 20 00 00 44 00 00 00 00 00 00 00
00 06 00 00 00 e2 46 00 00 2d 01 00 00 00 00 00
00 00 07 00 00 00 e3 4a 00 00 9d 01 00 00 00 00
00 00 00 08 00 00 00 93 47 00 00 f4 06 00 00 00
00 00 00 00 0a 00 00 00 bf 48 00 00 e5 01 00 00
00 00 00 00 00 0b 00 00 00 6f 05 00 00 99 01 00
00 00 00 00 00 00 0c 00 00 00 38 0d 00 00 c8 05
00 00 00 00 00 00 00 00

What appears on the client:
0: mammoth strength
1: brell's loamy ward
2: transcendent forsight
3: darkpaw focusing
4: spell of determination
5: cloak of shadows
6: spiritual edification
7: yowl of the predator
8: hand of gallantry
9: blank
10: voice of prescience
11: dead men floating
12: talisman of the tribunal
Reply With Quote
Reply

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 -4. The time now is 10:22 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3