mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-19 17:38:26 +00:00
Fix to allow discipline reuse timers to be set on client correclty
and therefore have the client return the time remaining instead of the server. Hopefully may resolve some bugs reselated to discipline use.
This commit is contained in:
+17
-10
@@ -696,16 +696,7 @@ bool Client::UseDiscipline(uint32 spell_id, uint32 target) {
|
||||
return true;
|
||||
}
|
||||
|
||||
CastSpell(spell_id, target, DISCIPLINE_SPELL_SLOT, -1, -1, 0, -1, (uint32)DiscTimer, reduced_recast);
|
||||
if(spells[spell_id].EndurTimerIndex < MAX_DISCIPLINE_TIMERS)
|
||||
{
|
||||
EQApplicationPacket *outapp = new EQApplicationPacket(OP_DisciplineTimer, sizeof(DisciplineTimer_Struct));
|
||||
DisciplineTimer_Struct *dts = (DisciplineTimer_Struct *)outapp->pBuffer;
|
||||
dts->TimerID = spells[spell_id].EndurTimerIndex;
|
||||
dts->Duration = reduced_recast;
|
||||
QueuePacket(outapp);
|
||||
safe_delete(outapp);
|
||||
}
|
||||
SendDisciplineTimer(spells[spell_id].EndurTimerIndex, reduced_recast);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -714,6 +705,22 @@ bool Client::UseDiscipline(uint32 spell_id, uint32 target) {
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Client::SendDisciplineTimer(uint32 timer_id, uint32 duration, uint16 spell_id)
|
||||
{
|
||||
if (!timer_id && IsValidSpell(spell_id))
|
||||
timer_id = spells[spell_id].EndurTimerIndex;
|
||||
|
||||
if(duration > 0 && timer_id && (timer_id < MAX_DISCIPLINE_TIMERS))
|
||||
{
|
||||
EQApplicationPacket *outapp = new EQApplicationPacket(OP_DisciplineTimer, sizeof(DisciplineTimer_Struct));
|
||||
DisciplineTimer_Struct *dts = (DisciplineTimer_Struct *)outapp->pBuffer;
|
||||
dts->TimerID = timer_id;
|
||||
dts->Duration = duration;
|
||||
QueuePacket(outapp);
|
||||
safe_delete(outapp);
|
||||
}
|
||||
}
|
||||
|
||||
void EntityList::AETaunt(Client* taunter, float range)
|
||||
{
|
||||
if (range == 0)
|
||||
|
||||
Reference in New Issue
Block a user