This commit is contained in:
Trevius 2014-11-22 00:22:35 -06:00
commit d49426f763
5 changed files with 25 additions and 16 deletions

View File

@ -1,5 +1,9 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50)
-------------------------------------------------------
== 11/22/2014 ==
Trevius: Grouping with Mercenaries is now considerably less buggy.
Trevius: Fixed an issue with Spell Globals related to high Character IDs.
== 11/19/2014 ==
Trevius: Mercenaries now Dismiss, Suspend, Unsuspend, and Die correctly.

View File

@ -514,8 +514,8 @@ OP_LFGAppearance=0x0000
OP_LFGResponse=0x0000
# Raid Opcodes
OP_RaidInvite=0x1bd1
OP_RaidUpdate=0x548e
OP_RaidInvite=0x5fb2
OP_RaidUpdate=0x1bd1
OP_RaidJoin=0x0000
# Button-push commands

View File

@ -3872,11 +3872,11 @@ void Client::SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID) {
PendingTranslocateData.heading = m_pp.binds[0].heading;
}
else {
ts->ZoneID = database.GetZoneID(Spell.teleport_zone);
PendingTranslocateData.zone_id = ts->ZoneID = database.GetZoneID(Spell.teleport_zone);
PendingTranslocateData.instance_id = 0;
ts->y = Spell.base[0];
ts->x = Spell.base[1];
ts->z = Spell.base[2];
PendingTranslocateData.y = ts->y = Spell.base[0];
PendingTranslocateData.x = ts->x = Spell.base[1];
PendingTranslocateData.z = ts->z = Spell.base[2];
PendingTranslocateData.heading = 0.0;
}

View File

@ -874,6 +874,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst);
void DropInst(const ItemInst* inst);
bool TrainDiscipline(uint32 itemid);
void SendDisciplineUpdate();
void SendDisciplineTimer(uint32 timer_id, uint32 duration);
bool UseDiscipline(uint32 spell_id, uint32 target);
bool CheckTitle(int titleset);

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,19 @@ bool Client::UseDiscipline(uint32 spell_id, uint32 target) {
return(true);
}
void Client::SendDisciplineTimer(uint32 timer_id, uint32 duration)
{
if (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)