Ticket #89 (closed Bug: Fixed)

Opened 13 years ago

Last modified 11 years ago

Click off Buffs, Short Buff Box

Reported by: uhc
Priority: Minor Milestone:
Component: Other
Expansion:
Client: Underfoot Sensitive: no

Description

Problem:
You cannot click off bard buffs on the Underfoot Client.

EQEmu Related Patch Information
==08/13/2011==
Derision: Player pets will now show their owners name. UF users can turn this off in options.
Derision: SoD/UF: Beneficial Pet Buffs can be clicked off in the Pet Window.
Derision: Underfoot: Can now click off buffs in the short buff box. Removed registration of HoT in patches.cp

Attachments

EMU.3.5.2012_ patch_Underfoot.conf.txt (17.8 KB) - added by uhc 13 years ago.
I couldn't find any related changes.

Change History

comment:2 Changed 13 years ago by uhc

This message is for UHC's noob reference. I need documentation to pick up where I left off.

From 3/5/2012
Opcodes: OP_BuffRemoveRequest
Offsets (patch): OP_BuffRemoveRequest=0x4065
Structs: BuffRemoveRequest (unique to Underfoot), SpellBuffFade_Struct_Underfoot(underfoot_structs.h)
Functions: Handle_OP_BuffRemoveRequest
Underfoot.cpp: DECODE(Op_BuffRemoveRequest)

Functions that handle the process of actually removing the buff ID and effect:
BuffFadeBySlot

Regular buffs can be clicked off, so the process of sending opcodes and receiving opcodes between client and server is likely intact. However, the information contained within the opcode for buff removal must be incorrect for bard buffs identification. Apparently, SOD uses the same opcode to remove pet buffs as Underfoot uses to remove pet and/or client buffs (see comment in \zone\client_packet.cpp line 11759).

My reference material..

...\trunk\EQEmuServer\common\eq_packet_structs.h

N(OP_BuffRemoveRequest)

...\trunk\EQEmuServer\zone\client_packet.cpp

ConnectedOpcodes[OP_BuffRemoveRequest] = &Client::Handle_OP_BuffRemoveRequest;

client_packet.h

void Handle_OP_BuffRemoveRequest(const EQApplicationPacket *app);

These however may not be included in source.
eq_packet_structs.h

 Underfoot & later struct.
struct BuffRemoveRequest_Struct
{
/*00*/ uint32 SlotID;
/*04*/ uint32 EntityID;
/*08*/
 };

C:\EQEmu\projecteqemu\trunk\EQEmuServer\utils\patch_Underfoot.conf

OP_BuffRemoveRequest=0x4065

And likely hasn't been...\trunk\EQEmuServer\common\patches\Underfoot.cpp:

DECODE(OP_BuffRemoveRequest)
{
	// This is to cater for the fact that short buff box buffs start at 30 as opposed to 25 in prior clients.
	//
	DECODE_LENGTH_EXACT(structs::BuffRemoveRequest_Struct);
	SETUP_DIRECT_DECODE(BuffRemoveRequest_Struct, structs::BuffRemoveRequest_Struct);

	emu->SlotID = (eq->SlotID < 30 ) ? eq->SlotID : (eq->SlotID - 5);

	IN(EntityID);

	FINISH_DIRECT_DECODE();
}

To Dos:

I would like for our devs to add some logging to file for:

  1. spells_effects.cpp ,void Mob::BuffFadeBySlot definition, such that the log file reports the output from the first two logic checks (slot# requested, spellID of the request,spelltype is valid for removal). From there, we can incrementally add portions of the Underfoot patch related to Buff Removal mgmt.
Version 0, edited 13 years ago by uhc (next)

Changed 13 years ago by uhc

I couldn't find any related changes.

comment:4 Changed 11 years ago by ptarp

  • Status changed from new to inprogress

comment:5 Changed 11 years ago by ptarp

Code changes submitted.

comment:6 Changed 11 years ago by ptarp

  • Status changed from inprogress to closed
  • Resolution set to Fixed

This is fixed and working in 9/28/2013 code, however, there are times it incrementally doesn't work. Recommend re-targeting, or re-buffing. Spells are available to click off afterwards.

Last edited 11 years ago by ptarp (previous) (diff)
Note: See TracTickets for help on using tickets.