mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-24 11:42:36 +00:00
[Bug Fix] SOF+ clients item click recast timer not met check (#1682)
* Update client_packet.cpp * Update spells.cpp * augs working too
This commit is contained in:
parent
bc82b897c5
commit
1cdb1816a2
@ -8959,6 +8959,14 @@ void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
if (GetLevel() >= item->Click.Level2)
|
if (GetLevel() >= item->Click.Level2)
|
||||||
{
|
{
|
||||||
|
if (item->RecastDelay > 0)
|
||||||
|
{
|
||||||
|
if (!GetPTimers().Expired(&database, (pTimerItemStart + item->RecastType), false)) {
|
||||||
|
LogSpells("Casting of [{}] canceled: item spell reuse timer not expired", spell_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int i = parse->EventItem(EVENT_ITEM_CLICK_CAST, this, p_inst, nullptr, "", slot_id);
|
int i = parse->EventItem(EVENT_ITEM_CLICK_CAST, this, p_inst, nullptr, "", slot_id);
|
||||||
inst = m_inv[slot_id];
|
inst = m_inv[slot_id];
|
||||||
if (!inst)
|
if (!inst)
|
||||||
@ -8988,6 +8996,15 @@ void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
if (GetLevel() >= augitem->Click.Level2)
|
if (GetLevel() >= augitem->Click.Level2)
|
||||||
{
|
{
|
||||||
|
if (augitem->RecastDelay > 0)
|
||||||
|
{
|
||||||
|
if (!GetPTimers().Expired(&database, (pTimerItemStart + augitem->RecastType), false)) {
|
||||||
|
LogSpells("Casting of [{}] canceled: item spell reuse timer from augment not expired", spell_id);
|
||||||
|
MessageString(Chat::Red, SPELL_RECAST);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int i = parse->EventItem(EVENT_ITEM_CLICK_CAST, this, clickaug, nullptr, "", slot_id);
|
int i = parse->EventItem(EVENT_ITEM_CLICK_CAST, this, clickaug, nullptr, "", slot_id);
|
||||||
inst = m_inv[slot_id];
|
inst = m_inv[slot_id];
|
||||||
if (!inst)
|
if (!inst)
|
||||||
|
|||||||
@ -1020,7 +1020,10 @@ void Mob::CastedSpellFinished(uint16 spell_id, uint32 target_id, CastingSlot slo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
Titanium client will prevent item recast on its own. This is only used to enforce. Titanium items are cast from Handle_OP_CastSpell.
|
||||||
|
SOF+ client does not prevent item recast on its own. We enforce this in Handle_OP_ItemVerifyRequest where items are cast from.
|
||||||
|
*/
|
||||||
if(IsClient() && (slot == CastingSlot::Item || slot == CastingSlot::PotionBelt))
|
if(IsClient() && (slot == CastingSlot::Item || slot == CastingSlot::PotionBelt))
|
||||||
{
|
{
|
||||||
IsFromItem = true;
|
IsFromItem = true;
|
||||||
@ -6287,4 +6290,4 @@ int Client::GetNextAvailableDisciplineSlot(int starting_slot) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return -1; // Return -1 if No Slots open
|
return -1; // Return -1 if No Slots open
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user