View Single Post
  #1  
Old 06-13-2013, 06:46 PM
noudess
Discordant
 
Join Date: Sep 2012
Location: Upstate NY
Posts: 274
Default Question for spell casting code gurus

I was curious..

In spells.cpp there are several spots where Buffs are updated on when client is SoDAndLater (clients SoD+)

Code:
if(c->GetClientVersionBit() & BIT_SoDAndLater)
{
EQApplicationPacket *outapp = MakeBuffsPacket();
c->FastQueuePacket(&outapp);
}
while in spell_effects.cpp, buff durations are updated in a different, but almost opposite way when client NOT SoFAndLater (hence older than SoF):

Code:
	else if(IsClient() && !(CastToClient()->GetClientVersionBit() & BIT_SoFAndLater))
{
buffs[buffs_i].UpdateClient = true;
}
}

if(IsClient())
{
if(buffs[buffs_i].UpdateClient == true)
{
CastToClient()->SendBuffDurationPacket(buffs[buffs_i].spellid, buffs[buffs_i].ticsremaining, buffs[buffs_i].casterlevel);
buffs[buffs_i].UpdateClient = false;
}
}
Is this accurate? BuffsDurations are updated for older clients, but Updates to the Buff List is only done on newer ones?
Reply With Quote