You want even more overhead? How about a write to innoDB
Code:
database.LogPvPKill(zone->GetShortName(), pvp_points,
killer->CharacterID(), killer->GetName(), guild_mgr.GetGuildName(killer->GuildID()), killer->GuildID(),
killer->GetLevel(), killer->GetRace(), killer->GetClass(), long2ip(killer->GetIP()).c_str(),
this->CharacterID(), this->GetName(), guild_mgr.GetGuildName(this->GuildID()), this->GuildID(),
this->GetLevel(), this->GetRace(), this->GetClass(), long2ip(this->GetIP()).c_str()
);
Or an update
Code:
this->UpdatePVPStats(PVPEncounterDeath, pvp_points); // you lose! next we'll divide your points between the group.
// we don't need to SendPVPStats() here, they'll get them when they zone to their bind
Or an update for the entire group?
Code:
if (killer->IsGrouped())
{
Group *pvp_group = entity_list.GetGroupByClient(killer);
if (pvp_group != NULL)
{
pvp_points = pvp_points / pvp_group->GroupCount(); // divide the points, TODO: fix it to not divide by people not in zone
for (int i = 0; i < 6; i++)
{
if
( pvp_group->members[i] != NULL &&
// we're only awarding "assists" for groupies in the same zone
pvp_group->members[i]->CastToClient()->CharacterID() != killer->CharacterID() &&
pvp_group->members[i]->CastToClient()->GetZoneID() == zone->GetZoneID()
)
{
pvp_group->members[i]->CastToClient()->UpdatePVPStats(PVPEncounterAssist, pvp_points);
pvp_group->members[i]->CastToClient()->SendPVPStats();
}
}
}
}
killer->UpdatePVPStats(PVPEncounterKill, pvp_points); // do this here for code flow logic
killer->SendPVPStats();
Somehow that read from a myISAM table ain't looking like that big a deal anymore?