mirror of
https://github.com/EQEmu/Server.git
synced 2026-02-22 18:52:26 +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 (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);
|
||||
inst = m_inv[slot_id];
|
||||
if (!inst)
|
||||
@ -8988,6 +8996,15 @@ void Client::Handle_OP_ItemVerifyRequest(const EQApplicationPacket *app)
|
||||
}
|
||||
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);
|
||||
inst = m_inv[slot_id];
|
||||
if (!inst)
|
||||
|
||||
@ -1020,7 +1020,10 @@ void Mob::CastedSpellFinished(uint16 spell_id, uint32 target_id, CastingSlot slo
|
||||
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))
|
||||
{
|
||||
IsFromItem = true;
|
||||
@ -6287,4 +6290,4 @@ int Client::GetNextAvailableDisciplineSlot(int starting_slot) {
|
||||
}
|
||||
|
||||
return -1; // Return -1 if No Slots open
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user