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:
KayenEQ
2014-11-19 00:39:42 -05:00
parent 6a5b3ef4fe
commit 5b85aa6550
3 changed files with 22 additions and 10 deletions
+17 -10
View File
@@ -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)