mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-24 15:52:26 +00:00
spellbar lock bug fix (#1943)
This commit is contained in:
parent
936043a53c
commit
e99c8dafc5
@ -1491,6 +1491,7 @@ public:
|
|||||||
void LeaveRaidXTargets(Raid *r);
|
void LeaveRaidXTargets(Raid *r);
|
||||||
bool GroupFollow(Client* inviter);
|
bool GroupFollow(Client* inviter);
|
||||||
inline bool GetRunMode() const { return runmode; }
|
inline bool GetRunMode() const { return runmode; }
|
||||||
|
void SendItemRecastTimer(uint32 recast_type, uint32 recast_delay = 0);
|
||||||
|
|
||||||
inline bool AggroMeterAvailable() const { return ((m_ClientVersionBit & EQ::versions::maskRoF2AndLater)) && RuleB(Character, EnableAggroMeter); } // RoF untested
|
inline bool AggroMeterAvailable() const { return ((m_ClientVersionBit & EQ::versions::maskRoF2AndLater)) && RuleB(Character, EnableAggroMeter); } // RoF untested
|
||||||
inline void SetAggroMeterLock(int in) { m_aggrometer.set_lock_id(in); }
|
inline void SetAggroMeterLock(int in) { m_aggrometer.set_lock_id(in); }
|
||||||
|
|||||||
@ -8887,6 +8887,9 @@ void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app)
|
|||||||
if (item->RecastDelay > 0)
|
if (item->RecastDelay > 0)
|
||||||
{
|
{
|
||||||
if (!GetPTimers().Expired(&database, (pTimerItemStart + item->RecastType), false)) {
|
if (!GetPTimers().Expired(&database, (pTimerItemStart + item->RecastType), false)) {
|
||||||
|
SendItemRecastTimer(item->RecastType); //Problem: When you loot corpse, recast display is not present. This causes it to display again. Could not get to display when sending from looting.
|
||||||
|
MessageString(Chat::Red, SPELL_RECAST);
|
||||||
|
SendSpellBarEnable(item->Click.Effect);
|
||||||
LogSpells("Casting of [{}] canceled: item spell reuse timer not expired", spell_id);
|
LogSpells("Casting of [{}] canceled: item spell reuse timer not expired", spell_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -8926,6 +8929,7 @@ void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app)
|
|||||||
if (!GetPTimers().Expired(&database, (pTimerItemStart + augitem->RecastType), false)) {
|
if (!GetPTimers().Expired(&database, (pTimerItemStart + augitem->RecastType), false)) {
|
||||||
LogSpells("Casting of [{}] canceled: item spell reuse timer from augment not expired", spell_id);
|
LogSpells("Casting of [{}] canceled: item spell reuse timer from augment not expired", spell_id);
|
||||||
MessageString(Chat::Red, SPELL_RECAST);
|
MessageString(Chat::Red, SPELL_RECAST);
|
||||||
|
SendSpellBarEnable(augitem->Click.Effect);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6284,6 +6284,22 @@ void Client::SendSpellAnim(uint16 targetid, uint16 spell_id)
|
|||||||
entity_list.QueueCloseClients(this, &app, false, RuleI(Range, SpellParticles));
|
entity_list.QueueCloseClients(this, &app, false, RuleI(Range, SpellParticles));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Client::SendItemRecastTimer(uint32 recast_type, uint32 recast_delay)
|
||||||
|
{
|
||||||
|
if (!recast_delay) {
|
||||||
|
recast_delay = GetPTimers().GetRemainingTime(pTimerItemStart + recast_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (recast_delay) {
|
||||||
|
auto outapp = new EQApplicationPacket(OP_ItemRecastDelay, sizeof(ItemRecastDelay_Struct));
|
||||||
|
ItemRecastDelay_Struct *ird = (ItemRecastDelay_Struct *)outapp->pBuffer;
|
||||||
|
ird->recast_delay = recast_delay;
|
||||||
|
ird->recast_type = recast_type;
|
||||||
|
QueuePacket(outapp);
|
||||||
|
safe_delete(outapp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Mob::CalcDestFromHeading(float heading, float distance, float MaxZDiff, float StartX, float StartY, float &dX, float &dY, float &dZ)
|
void Mob::CalcDestFromHeading(float heading, float distance, float MaxZDiff, float StartX, float StartY, float &dX, float &dY, float &dZ)
|
||||||
{
|
{
|
||||||
if (!distance) { return; }
|
if (!distance) { return; }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user