Core/Misc: Fix compile and char creation
- Added very basic honor/conquest support, no idea if its works even a little since there's no possibility of testing yet
This commit is contained in:
@@ -154,14 +154,16 @@ void ArenaTeamMgr::DistributeArenaPoints()
|
||||
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
|
||||
// Cycle that gives points to all players
|
||||
/*
|
||||
for (std::map<uint32, uint32>::iterator playerItr = PlayerPoints.begin(); playerItr != PlayerPoints.end(); ++playerItr)
|
||||
{
|
||||
// Add points to player if online
|
||||
if (Player* player = HashMapHolder<Player>::Find(playerItr->first))
|
||||
player->ModifyArenaPoints(playerItr->second, &trans);
|
||||
player->ModifyConquestPoints(playerItr->second, &trans);
|
||||
else // Update database
|
||||
trans->PAppend("UPDATE characters SET arenaPoints=arenaPoints+%u WHERE guid=%u", playerItr->second, playerItr->first);
|
||||
}
|
||||
*/
|
||||
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
|
||||
|
||||
@@ -842,8 +842,8 @@ void Battleground::EndBattleground(uint32 winner)
|
||||
if (IsRandom() || BattlegroundMgr::IsBGWeekend(GetTypeID()))
|
||||
{
|
||||
UpdatePlayerScore(player, SCORE_BONUS_HONOR, GetBonusHonorFromKill(winner_kills));
|
||||
if (CanAwardArenaPoints())
|
||||
player->ModifyArenaPoints(winner_arena);
|
||||
/*if (CanAwardArenaPoints())
|
||||
player->ModifyConquestPoints(winner_arena);*/
|
||||
if (!player->GetRandomWinner())
|
||||
player->SetRandomWinner(true);
|
||||
}
|
||||
|
||||
@@ -2461,11 +2461,9 @@ bool ChatHandler::HandleResetHonorCommand (const char * args)
|
||||
if (!extractPlayerTarget((char*)args, &target))
|
||||
return false;
|
||||
|
||||
target->SetHonorPoints(0);
|
||||
target->SetCurrency(CURRENCY_TYPE_HONOR_POINTS, 0);
|
||||
target->SetUInt32Value(PLAYER_FIELD_KILLS, 0);
|
||||
target->SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, 0);
|
||||
target->SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, 0);
|
||||
target->SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, 0);
|
||||
target->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -1687,9 +1687,11 @@ SpellInfo const* Creature::reachWithSpellAttack(Unit* pVictim)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bcontinue) continue;
|
||||
|
||||
if (spellInfo->ManaCost > GetPower(POWER_MANA))
|
||||
if (bcontinue)
|
||||
continue;
|
||||
|
||||
if (spellInfo->ManaCost > (uint32)GetPower(POWER_MANA))
|
||||
continue;
|
||||
float range = spellInfo->GetMaxRange(false);
|
||||
float minrange = spellInfo->GetMinRange(false);
|
||||
@@ -1732,7 +1734,7 @@ SpellInfo const* Creature::reachWithSpellCure(Unit* pVictim)
|
||||
}
|
||||
if (bcontinue) continue;
|
||||
|
||||
if (spellInfo->ManaCost > GetPower(POWER_MANA))
|
||||
if (spellInfo->ManaCost > (uint32)GetPower(POWER_MANA))
|
||||
continue;
|
||||
|
||||
float range = spellInfo->GetMaxRange(true);
|
||||
|
||||
@@ -742,7 +742,6 @@ Player::Player (WorldSession* session): Unit(), m_achievementMgr(this), m_reputa
|
||||
m_canBlock = false;
|
||||
m_canDualWield = false;
|
||||
m_canTitanGrip = false;
|
||||
m_ammoDPS = 0.0f;
|
||||
|
||||
m_temporaryUnsummonedPetNumber = 0;
|
||||
//cache for UNIT_CREATED_BY_SPELL to allow
|
||||
@@ -989,8 +988,6 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
|
||||
|
||||
SetUInt32Value(PLAYER_FIELD_KILLS, 0);
|
||||
SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, 0);
|
||||
SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, 0);
|
||||
SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, 0);
|
||||
|
||||
// set starting level
|
||||
uint32 start_level = getClass() != CLASS_DEATH_KNIGHT
|
||||
@@ -1009,8 +1006,8 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
|
||||
InitRunes();
|
||||
|
||||
SetUInt32Value(PLAYER_FIELD_COINAGE, sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY));
|
||||
SetHonorPoints(sWorld->getIntConfig(CONFIG_START_HONOR_POINTS));
|
||||
SetArenaPoints(sWorld->getIntConfig(CONFIG_START_ARENA_POINTS));
|
||||
SetCurrency(CURRENCY_TYPE_HONOR_POINTS, sWorld->getIntConfig(CONFIG_START_HONOR_POINTS));
|
||||
SetCurrency(CURRENCY_TYPE_CONQUEST_POINTS, sWorld->getIntConfig(CONFIG_START_ARENA_POINTS));
|
||||
|
||||
// start with every map explored
|
||||
if (sWorld->getBoolConfig(CONFIG_START_ALL_EXPLORED))
|
||||
@@ -7088,16 +7085,12 @@ void Player::UpdateHonorFields()
|
||||
// update yesterday's contribution
|
||||
if (m_lastHonorUpdateTime >= yesterday)
|
||||
{
|
||||
SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
|
||||
|
||||
// this is the first update today, reset today's contribution
|
||||
SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, 0);
|
||||
SetUInt32Value(PLAYER_FIELD_KILLS, MAKE_PAIR32(0, kills_today));
|
||||
}
|
||||
else
|
||||
{
|
||||
// no honor/kills yesterday or today, reset
|
||||
SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, 0);
|
||||
SetUInt32Value(PLAYER_FIELD_KILLS, 0);
|
||||
}
|
||||
}
|
||||
@@ -7108,15 +7101,15 @@ void Player::UpdateHonorFields()
|
||||
///Calculate the amount of honor gained based on the victim
|
||||
///and the size of the group for which the honor is divided
|
||||
///An exact honor value can also be given (overriding the calcs)
|
||||
bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvptoken)
|
||||
bool Player::RewardHonor(Unit* victim, uint32 groupsize, int32 honor, bool pvptoken)
|
||||
{
|
||||
// do not reward honor in arenas, but enable onkill spellproc
|
||||
if (InArena())
|
||||
{
|
||||
if (!uVictim || uVictim == this || uVictim->GetTypeId() != TYPEID_PLAYER)
|
||||
if (!victim || victim == this || victim->GetTypeId() != TYPEID_PLAYER)
|
||||
return false;
|
||||
|
||||
if (GetBGTeam() == uVictim->ToPlayer()->GetBGTeam())
|
||||
if (GetBGTeam() == victim->ToPlayer()->GetBGTeam())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -7141,21 +7134,19 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
|
||||
if (honor_f <= 0)
|
||||
{
|
||||
if (!uVictim || uVictim == this || uVictim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT))
|
||||
if (!victim || victim == this || victim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT))
|
||||
return false;
|
||||
|
||||
victim_guid = uVictim->GetGUID();
|
||||
victim_guid = victim->GetGUID();
|
||||
|
||||
if (uVictim->GetTypeId() == TYPEID_PLAYER)
|
||||
if (Player* plrVictim = victim->ToPlayer())
|
||||
{
|
||||
Player* pVictim = uVictim->ToPlayer();
|
||||
|
||||
if (GetTeam() == pVictim->GetTeam() && !sWorld->IsFFAPvPRealm())
|
||||
if (GetTeam() == plrVictim->GetTeam() && !sWorld->IsFFAPvPRealm())
|
||||
return false;
|
||||
|
||||
uint8 k_level = getLevel();
|
||||
uint8 k_grey = Trinity::XP::GetGrayLevel(k_level);
|
||||
uint8 v_level = pVictim->getLevel();
|
||||
uint8 v_level = plrVictim->getLevel();
|
||||
|
||||
if (v_level <= k_grey)
|
||||
return false;
|
||||
@@ -7166,7 +7157,7 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
// [15..28] Horde honor titles and player name
|
||||
// [29..38] Other title and player name
|
||||
// [39+] Nothing
|
||||
uint32 victim_title = pVictim->GetUInt32Value(PLAYER_CHOSEN_TITLE);
|
||||
uint32 victim_title = plrVictim->GetUInt32Value(PLAYER_CHOSEN_TITLE);
|
||||
// Get Killer titles, CharTitlesEntry::bit_index
|
||||
// Ranks:
|
||||
// title[1..14] -> rank[5..18]
|
||||
@@ -7188,14 +7179,14 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
// and those in a lifetime
|
||||
ApplyModUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, 1, true);
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL);
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS, pVictim->getClass());
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HK_RACE, pVictim->getRace());
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS, plrVictim->getClass());
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HK_RACE, plrVictim->getRace());
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA, GetAreaId());
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL, 1, 0, pVictim);
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL, 1, 0, plrVictim);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!uVictim->ToCreature()->isRacialLeader())
|
||||
if (!victim->ToCreature()->isRacialLeader())
|
||||
return false;
|
||||
|
||||
honor_f = 100.0f; // ??? need more info
|
||||
@@ -7203,7 +7194,7 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
}
|
||||
}
|
||||
|
||||
if (uVictim != NULL)
|
||||
if (victim != NULL)
|
||||
{
|
||||
if (groupsize > 1)
|
||||
honor_f /= groupsize;
|
||||
@@ -7228,9 +7219,7 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
GetSession()->SendPacket(&data);
|
||||
|
||||
// add honor points
|
||||
ModifyHonorPoints(honor);
|
||||
|
||||
ApplyModUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, honor, true);
|
||||
ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, int32(honor));
|
||||
|
||||
if (InBattleground() && honor > 0)
|
||||
{
|
||||
@@ -7242,10 +7231,10 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool pvpt
|
||||
|
||||
if (sWorld->getBoolConfig(CONFIG_PVP_TOKEN_ENABLE) && pvptoken)
|
||||
{
|
||||
if (!uVictim || uVictim == this || uVictim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT))
|
||||
if (!victim || victim == this || victim ->HasAuraType(SPELL_AURA_NO_PVP_CREDIT))
|
||||
return true;
|
||||
|
||||
if (uVictim->GetTypeId() == TYPEID_PLAYER)
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
// Check if allowed to receive it in current map
|
||||
uint8 MapType = sWorld->getIntConfig(CONFIG_PVP_TOKEN_MAP_TYPE);
|
||||
@@ -7273,7 +7262,7 @@ void Player::SendCurrencies() const
|
||||
|
||||
for (PlayerCurrenciesMap::const_iterator itr = m_currencies.begin(); itr != m_currencies.end(); ++itr)
|
||||
{
|
||||
const CurrencyTypesEntry* entry = sCurrencyTypesStore.LookupEntry(itr->first);
|
||||
CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(itr->first);
|
||||
packet << uint32(itr->second.weekCount / PLAYER_CURRENCY_PRECISION);
|
||||
packet << uint8(0); // unknown
|
||||
packet << uint32(entry->ID);
|
||||
@@ -7302,7 +7291,7 @@ void Player::ModifyCurrency(uint32 id, int32 count)
|
||||
if (!count)
|
||||
return;
|
||||
|
||||
const CurrencyTypesEntry* currency = sCurrencyTypesStore.LookupEntry(id);
|
||||
CurrencyTypesEntry const* currency = sCurrencyTypesStore.LookupEntry(id);
|
||||
ASSERT(currency);
|
||||
|
||||
uint32 oldTotalCount = 0;
|
||||
@@ -7413,46 +7402,6 @@ uint32 Player::_GetCurrencyWeekCap(const CurrencyTypesEntry* currency) const
|
||||
return cap;
|
||||
}
|
||||
|
||||
void Player::SetHonorPoints(uint32 value)
|
||||
{
|
||||
if (value > sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS))
|
||||
value = sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS);
|
||||
SetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY, value);
|
||||
if (value)
|
||||
AddKnownCurrency(ITEM_HONOR_POINTS_ID);
|
||||
}
|
||||
|
||||
void Player::SetArenaPoints(uint32 value)
|
||||
{
|
||||
if (value > sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS))
|
||||
value = sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS);
|
||||
SetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY, value);
|
||||
if (value)
|
||||
AddKnownCurrency(ITEM_ARENA_POINTS_ID);
|
||||
}
|
||||
|
||||
void Player::ModifyHonorPoints(int32 value, SQLTransaction* trans /*=NULL*/)
|
||||
{
|
||||
int32 newValue = int32(GetHonorPoints()) + value;
|
||||
if (newValue < 0)
|
||||
newValue = 0;
|
||||
SetHonorPoints(uint32(newValue));
|
||||
|
||||
if (trans && !trans->null())
|
||||
(*trans)->PAppend("UPDATE characters SET totalHonorPoints=%u WHERE guid=%u", newValue, GetGUIDLow());
|
||||
}
|
||||
|
||||
void Player::ModifyArenaPoints(int32 value, SQLTransaction* trans /*=NULL*/)
|
||||
{
|
||||
int32 newValue = int32(GetArenaPoints()) + value;
|
||||
if (newValue < 0)
|
||||
newValue = 0;
|
||||
SetArenaPoints(uint32(newValue));
|
||||
|
||||
if (trans && !trans->null())
|
||||
(*trans)->PAppend("UPDATE characters SET arenaPoints=%u WHERE guid=%u", newValue, GetGUIDLow());
|
||||
}
|
||||
|
||||
uint32 Player::GetGuildIdFromDB(uint64 guid)
|
||||
{
|
||||
QueryResult result = CharacterDatabase.PQuery("SELECT guildid FROM guild_member WHERE guid='%u'", GUID_LOPART(guid));
|
||||
@@ -14975,9 +14924,6 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
||||
InitTalentForLevel();
|
||||
}
|
||||
|
||||
if (quest->GetRewArenaPoints())
|
||||
ModifyArenaPoints(quest->GetRewArenaPoints());
|
||||
|
||||
// Send reward mail
|
||||
if (uint32 mail_template_id = quest->GetRewMailTemplateId())
|
||||
{
|
||||
@@ -16489,11 +16435,11 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
//"position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, "
|
||||
// 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
||||
//"resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, instance_mode_mask, "
|
||||
// 39 40 41 42 43 44 45 46 47 48 49
|
||||
//"arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, "
|
||||
// 50 51 52 53 54 55 56 57 58 59 60
|
||||
// 39 40 41 42 43 44 45 46 47
|
||||
//"conquestPoints, totalHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, "
|
||||
// 48 49 50 51 52 53 54 55 56 57 58
|
||||
//"health, power1, power2, power3, power4, power5, instance_id, speccount, activespec, exploredZones, equipmentCache, "
|
||||
// 61 62 63 64
|
||||
// 59 60 61 62
|
||||
//"knownTitles, actionBars, grantableLevels, guildId FROM characters WHERE guid = '%u'", guid);
|
||||
PreparedQueryResult result = holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADFROM);
|
||||
|
||||
@@ -16553,8 +16499,8 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
SetUInt32Value(UNIT_FIELD_LEVEL, fields[6].GetUInt8());
|
||||
SetUInt32Value(PLAYER_XP, fields[7].GetUInt32());
|
||||
|
||||
_LoadIntoDataField(fields[59].GetCString(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE);
|
||||
_LoadIntoDataField(fields[61].GetCString(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE*2);
|
||||
_LoadIntoDataField(fields[57].GetCString(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE);
|
||||
_LoadIntoDataField(fields[59].GetCString(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE*2);
|
||||
|
||||
SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE);
|
||||
SetFloatValue(UNIT_FIELD_COMBATREACH, 1.5f);
|
||||
@@ -16570,12 +16516,10 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
|
||||
SetUInt32Value(PLAYER_BYTES, fields[9].GetUInt32());
|
||||
SetUInt32Value(PLAYER_BYTES_2, fields[10].GetUInt32());
|
||||
SetUInt32Value(PLAYER_BYTES_3, (fields[49].GetUInt16() & 0xFFFE) | fields[5].GetUInt8());
|
||||
SetUInt32Value(PLAYER_BYTES_3, (fields[47].GetUInt16() & 0xFFFE) | fields[5].GetUInt8());
|
||||
SetUInt32Value(PLAYER_FLAGS, fields[11].GetUInt32());
|
||||
SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fields[48].GetUInt32());
|
||||
|
||||
SetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES, fields[47].GetUInt64());
|
||||
|
||||
// set which actionbars the client has active - DO NOT REMOVE EVER AGAIN (can be changed though, if it does change fieldwise)
|
||||
SetByteValue(PLAYER_FIELD_BYTES, 2, fields[62].GetUInt8());
|
||||
|
||||
@@ -16608,7 +16552,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
uint32 transGUID = uint32(fields[30].GetUInt64()); // field type is uint64 but lowguid is saved
|
||||
Relocate(fields[12].GetFloat(), fields[13].GetFloat(), fields[14].GetFloat(), fields[16].GetFloat());
|
||||
uint32 mapId = fields[15].GetUInt16();
|
||||
uint32 instanceId = fields[56].GetUInt8();
|
||||
uint32 instanceId = fields[54].GetUInt8();
|
||||
|
||||
uint32 dungeonDiff = fields[38].GetUInt32() & 0x0F;
|
||||
if (dungeonDiff >= MAX_DUNGEON_DIFFICULTY)
|
||||
@@ -16627,8 +16571,6 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
|
||||
_LoadArenaTeamInfo(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADARENAINFO));
|
||||
|
||||
SetArenaPoints(fields[39].GetUInt32());
|
||||
|
||||
// check arena teams integrity
|
||||
for (uint32 arena_slot = 0; arena_slot < MAX_ARENA_SLOT; ++arena_slot)
|
||||
{
|
||||
@@ -16645,12 +16587,11 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
SetArenaTeamInfoField(arena_slot, ArenaTeamInfoType(j), 0);
|
||||
}
|
||||
|
||||
SetHonorPoints(fields[40].GetUInt32());
|
||||
SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, fields[41].GetUInt32());
|
||||
SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, fields[42].GetUInt32());
|
||||
SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, fields[43].GetUInt32());
|
||||
SetUInt16Value(PLAYER_FIELD_KILLS, 0, fields[44].GetUInt16());
|
||||
SetUInt16Value(PLAYER_FIELD_KILLS, 1, fields[45].GetUInt16());
|
||||
SetCurrency(CURRENCY_TYPE_CONQUEST_POINTS, fields[39].GetUInt32());
|
||||
SetCurrency(CURRENCY_TYPE_HONOR_POINTS, fields[40].GetUInt32());
|
||||
SetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, fields[41].GetUInt32());
|
||||
SetUInt16Value(PLAYER_FIELD_KILLS, 0, fields[42].GetUInt16());
|
||||
SetUInt16Value(PLAYER_FIELD_KILLS, 1, fields[43].GetUInt16());
|
||||
|
||||
_LoadBoundInstances(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES));
|
||||
_LoadInstanceTimeRestrictions(holder->GetPreparedResult(PLAYER_LOGIN_QUERY_LOADINSTANCELOCKTIMES));
|
||||
@@ -16970,8 +16911,8 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
//mails are loaded only when needed ;-) - when player in game click on mailbox.
|
||||
//_LoadMail();
|
||||
|
||||
m_specsCount = fields[57].GetUInt8();
|
||||
m_activeSpec = fields[58].GetUInt8();
|
||||
m_specsCount = fields[55].GetUInt8();
|
||||
m_activeSpec = fields[56].GetUInt8();
|
||||
|
||||
// sanity check
|
||||
if (m_specsCount > MAX_TALENT_SPECS || m_activeSpec > MAX_TALENT_SPEC || m_specsCount < MIN_TALENT_SPECS)
|
||||
@@ -17018,7 +16959,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
|
||||
// check PLAYER_CHOSEN_TITLE compatibility with PLAYER__FIELD_KNOWN_TITLES
|
||||
// note: PLAYER__FIELD_KNOWN_TITLES updated at quest status loaded
|
||||
uint32 curTitle = fields[46].GetUInt32();
|
||||
uint32 curTitle = fields[44].GetUInt32();
|
||||
if (curTitle && !HasTitle(curTitle))
|
||||
curTitle = 0;
|
||||
|
||||
@@ -17041,11 +16982,11 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
UpdateAllStats();
|
||||
|
||||
// restore remembered power/health values (but not more max values)
|
||||
uint32 savedHealth = fields[50].GetUInt32();
|
||||
uint32 savedHealth = fields[48].GetUInt32();
|
||||
SetHealth(savedHealth > GetMaxHealth() ? GetMaxHealth() : savedHealth);
|
||||
for (uint8 i = 0; i < MAX_STORED_POWERS; ++i)
|
||||
{
|
||||
uint32 savedPower = fields[51+i].GetUInt32();
|
||||
uint32 savedPower = fields[49+i].GetUInt32();
|
||||
SetPower(Powers(i), savedPower > GetMaxPower(Powers(i)) ? GetMaxPower(Powers(i)) : savedPower);
|
||||
}
|
||||
|
||||
@@ -17101,7 +17042,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
|
||||
}
|
||||
|
||||
// RaF stuff.
|
||||
m_grantableLevels = fields[63].GetUInt32();
|
||||
m_grantableLevels = fields[61].GetUInt32();
|
||||
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
|
||||
SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
|
||||
|
||||
@@ -18355,15 +18296,12 @@ void Player::SaveToDB(bool create /*=false*/)
|
||||
ss << m_taxi.SaveTaxiDestinationsToString();
|
||||
|
||||
stmt->setString(index++, ss.str());
|
||||
stmt->setUInt32(index++, GetArenaPoints());
|
||||
stmt->setUInt32(index++, GetHonorPoints());
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
|
||||
stmt->setUInt32(index++, GetCurrency(CURRENCY_TYPE_CONQUEST_POINTS));
|
||||
stmt->setUInt32(index++, GetCurrency(CURRENCY_TYPE_HONOR_POINTS));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
|
||||
stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
|
||||
stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
|
||||
stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
|
||||
stmt->setUInt16(index++, (uint16)(GetUInt32Value(PLAYER_BYTES_3) & 0xFFFE));
|
||||
stmt->setUInt32(index++, GetHealth());
|
||||
@@ -18385,9 +18323,7 @@ void Player::SaveToDB(bool create /*=false*/)
|
||||
// cache equipment...
|
||||
for (uint32 i = 0; i < EQUIPMENT_SLOT_END * 2; ++i)
|
||||
ss << GetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + i) << ' ';
|
||||
stmt->setString(index++, ss.str());
|
||||
|
||||
ss.str().clear();
|
||||
// ...and bags for enum opcode
|
||||
for (uint32 i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i)
|
||||
{
|
||||
@@ -18397,14 +18333,13 @@ void Player::SaveToDB(bool create /*=false*/)
|
||||
ss << '0';
|
||||
ss << " 0 ";
|
||||
}
|
||||
|
||||
stmt->setString(index++, ss.str());
|
||||
|
||||
ss.str().clear();
|
||||
for (uint32 i = 0; i < KNOWN_TITLES_SIZE*2; ++i)
|
||||
ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i);
|
||||
|
||||
stmt->setString(index++, ss.str());
|
||||
|
||||
stmt->setUInt8(index++, GetByteValue(PLAYER_FIELD_BYTES, 2));
|
||||
stmt->setUInt32(index++, m_grantableLevels);
|
||||
}
|
||||
@@ -18467,15 +18402,12 @@ void Player::SaveToDB(bool create /*=false*/)
|
||||
ss << m_taxi.SaveTaxiDestinationsToString();
|
||||
|
||||
stmt->setString(index++, ss.str());
|
||||
stmt->setUInt32(index++, GetArenaPoints());
|
||||
stmt->setUInt32(index++, GetHonorPoints());
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
|
||||
stmt->setUInt32(index++, GetCurrency(CURRENCY_TYPE_CONQUEST_POINTS));
|
||||
stmt->setUInt32(index++, GetCurrency(CURRENCY_TYPE_HONOR_POINTS));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
|
||||
stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0));
|
||||
stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE));
|
||||
stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES));
|
||||
stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX));
|
||||
stmt->setUInt16(index++, (uint16)(GetUInt32Value(PLAYER_BYTES_3) & 0xFFFE));
|
||||
stmt->setUInt32(index++, GetHealth());
|
||||
@@ -21575,6 +21507,7 @@ void Player::SendInitialPacketsBeforeAddToMap()
|
||||
// SMSG_PET_GUIDS
|
||||
// SMSG_UPDATE_WORLD_STATE
|
||||
// SMSG_POWER_UPDATE
|
||||
SendCurrencies();
|
||||
}
|
||||
|
||||
void Player::SendInitialPacketsAfterAddToMap()
|
||||
@@ -21983,6 +21916,7 @@ void Player::ResetWeeklyQuestStatus()
|
||||
m_weeklyquests.clear();
|
||||
// DB data deleted in caller
|
||||
m_WeeklyQuestChanged = false;
|
||||
|
||||
}
|
||||
|
||||
Battleground* Player::GetBattleground() const
|
||||
@@ -24735,13 +24669,7 @@ void Player::RefundItem(Item* item)
|
||||
if (moneyRefund)
|
||||
ModifyMoney(moneyRefund); // Saved in SaveInventoryAndGoldToDB
|
||||
|
||||
// Grant back Honor points
|
||||
//if (uint32 honorRefund = iece->reqhonorpoints)
|
||||
// ModifyHonorPoints(honorRefund, &trans);
|
||||
|
||||
// Grant back Arena points
|
||||
//if (uint32 arenaRefund = iece->reqarenapoints)
|
||||
// ModifyArenaPoints(arenaRefund, &trans);
|
||||
// Grant back Arena and Honor points ?
|
||||
|
||||
SaveInventoryAndGoldToDB(trans);
|
||||
|
||||
|
||||
@@ -895,12 +895,6 @@ enum CharDeleteMethod
|
||||
// the name gets freed up and appears as deleted ingame
|
||||
};
|
||||
|
||||
enum CurrencyItems
|
||||
{
|
||||
ITEM_HONOR_POINTS_ID = 43308,
|
||||
ITEM_ARENA_POINTS_ID = 43307
|
||||
};
|
||||
|
||||
enum ReferAFriendError
|
||||
{
|
||||
ERR_REFER_A_FRIEND_NONE = 0x00,
|
||||
@@ -1320,10 +1314,6 @@ class Player : public Unit, public GridObject<Player>
|
||||
void ModifyCurrency(uint32 id, int32 count);
|
||||
|
||||
void ApplyEquipCooldown(Item* pItem);
|
||||
void SetAmmo(uint32 item);
|
||||
void RemoveAmmo();
|
||||
float GetAmmoDPS() const { return m_ammoDPS; }
|
||||
bool CheckAmmoCompatibility(const ItemTemplate* ammo_proto) const;
|
||||
void QuickEquipItem(uint16 pos, Item* pItem);
|
||||
void VisualizeItem(uint8 slot, Item* pItem);
|
||||
void SetVisibleItemSlot(uint8 slot, Item* pItem);
|
||||
@@ -2090,14 +2080,8 @@ class Player : public Unit, public GridObject<Player>
|
||||
/*********************************************************/
|
||||
// TODO: Properly implement correncies as of Cataclysm
|
||||
void UpdateHonorFields();
|
||||
bool RewardHonor(Unit* pVictim, uint32 groupsize, int32 honor = -1, bool pvptoken = false);
|
||||
uint32 GetHonorPoints() const { return GetUInt32Value(PLAYER_FIELD_HONOR_CURRENCY); }
|
||||
uint32 GetArenaPoints() const { return GetUInt32Value(PLAYER_FIELD_ARENA_CURRENCY); }
|
||||
void ModifyHonorPoints(int32 value, SQLTransaction* trans = NULL); //! If trans is specified, honor save query will be added to trans
|
||||
void ModifyArenaPoints(int32 value, SQLTransaction* trans = NULL); //! If trans is specified, arena point save query will be added to trans
|
||||
bool RewardHonor(Unit* victim, uint32 groupsize, int32 honor = -1, bool pvptoken = false);
|
||||
uint32 GetMaxPersonalArenaRatingRequirement(uint32 minarenaslot) const;
|
||||
void SetHonorPoints(uint32 value);
|
||||
void SetArenaPoints(uint32 value);
|
||||
|
||||
//End of PvP System
|
||||
|
||||
@@ -2780,7 +2764,6 @@ class Player : public Unit, public GridObject<Player>
|
||||
bool m_canBlock;
|
||||
bool m_canTitanGrip;
|
||||
uint8 m_swingErrorMsg;
|
||||
float m_ammoDPS;
|
||||
|
||||
////////////////////Rest System/////////////////////
|
||||
time_t time_inn_enter;
|
||||
|
||||
@@ -512,11 +512,13 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bo
|
||||
weapon_mindamage = BASE_MINDAMAGE;
|
||||
weapon_maxdamage = BASE_MAXDAMAGE;
|
||||
}
|
||||
/*
|
||||
TODO: Is this still needed after ammo has been removed?
|
||||
else if (attType == RANGED_ATTACK) //add ammo DPS to ranged damage
|
||||
{
|
||||
weapon_mindamage += GetAmmoDPS() * att_speed;
|
||||
weapon_maxdamage += GetAmmoDPS() * att_speed;
|
||||
}
|
||||
weapon_mindamage += ammo * att_speed;
|
||||
weapon_maxdamage += ammo * att_speed;
|
||||
}*/
|
||||
|
||||
min_damage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct;
|
||||
max_damage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct;
|
||||
|
||||
@@ -1227,13 +1227,11 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recv_data)
|
||||
return;
|
||||
}
|
||||
|
||||
WorldPacket data(SMSG_INSPECT_HONOR_STATS, 8+1+4*4);
|
||||
data << uint64(player->GetGUID());
|
||||
data << uint8(player->GetHonorPoints());
|
||||
WorldPacket data(SMSG_INSPECT_HONOR_STATS, 4+1+4+8);
|
||||
data << uint32(player->GetUInt32Value(PLAYER_FIELD_KILLS));
|
||||
data << uint32(player->GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION));
|
||||
data << uint32(player->GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION));
|
||||
data << uint8(0); // rank
|
||||
data << uint32(player->GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS));
|
||||
data << uint64(player->GetGUID());
|
||||
SendPacket(&data);
|
||||
}
|
||||
|
||||
|
||||
@@ -658,7 +658,6 @@ void InitOpcodes()
|
||||
//DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//DEFINE_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//DEFINE_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_SET_AMMO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//DEFINE_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode );
|
||||
//DEFINE_OPCODE_HANDLER(CMSG_PET_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode );
|
||||
|
||||
@@ -1972,7 +1972,7 @@ void AuraEffect::HandleAuraModShapeshift(AuraApplication const* aurApp, uint8 mo
|
||||
|
||||
if (PowerType != POWER_MANA)
|
||||
{
|
||||
uint32 oldPower = target->GetPower(PowerType);
|
||||
int32 oldPower = target->GetPower(PowerType);
|
||||
// reset power to default values only at power change
|
||||
if (target->getPowerType() != PowerType)
|
||||
target->setPowerType(PowerType);
|
||||
@@ -1999,7 +1999,7 @@ void AuraEffect::HandleAuraModShapeshift(AuraApplication const* aurApp, uint8 mo
|
||||
break;
|
||||
case FORM_BEAR:
|
||||
case FORM_DIREBEAR:
|
||||
if (urand(0, 99) < FurorChance)
|
||||
if (irand(0, 99) < FurorChance)
|
||||
target->CastSpell(target, 17057, true);
|
||||
default:
|
||||
{
|
||||
|
||||
@@ -700,7 +700,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
|
||||
damage += int32(dmg_min);
|
||||
else
|
||||
damage += irand(int32(dmg_min), int32(dmg_max));
|
||||
damage += int32(m_caster->ToPlayer()->GetAmmoDPS()*item->GetTemplate()->Delay*0.001f);
|
||||
damage += int32(item->GetTemplate()->Delay*0.001f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1093,7 +1093,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleModifyHonorCommand (ChatHandler* handler, const char* args)
|
||||
static bool HandleModifyHonorCommand(ChatHandler* handler, const char* args)
|
||||
{
|
||||
if (!*args)
|
||||
return false;
|
||||
@@ -1112,9 +1112,9 @@ public:
|
||||
|
||||
int32 amount = (uint32)atoi(args);
|
||||
|
||||
target->ModifyHonorPoints(amount);
|
||||
target->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, amount);
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target).c_str(), target->GetHonorPoints());
|
||||
handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target).c_str(), target->GetCurrency(CURRENCY_TYPE_HONOR_POINTS));
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1302,9 +1302,9 @@ public:
|
||||
|
||||
int32 amount = (uint32)atoi(args);
|
||||
|
||||
target->ModifyArenaPoints(amount);
|
||||
target->ModifyCurrency(CURRENCY_TYPE_CONQUEST_POINTS, amount);
|
||||
|
||||
handler->PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, handler->GetNameLink(target).c_str(), target->GetArenaPoints());
|
||||
handler->PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, handler->GetNameLink(target).c_str(), target->GetCurrency(CURRENCY_TYPE_CONQUEST_POINTS));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER, "SELECT guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, "
|
||||
"position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, "
|
||||
"resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, instance_mode_mask, "
|
||||
"arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, "
|
||||
"health, power1, power2, power3, power4, power5, instance_id, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels, guildId FROM characters WHERE guid = ?", CONNECTION_ASYNC)
|
||||
"conquestPoints, totalHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, "
|
||||
"health, power1, power2, power3, power4, power5, instance_id, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels FROM characters WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_GROUP, "SELECT guid FROM group_member WHERE memberGuid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BOUNDINSTANCES, "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_AURAS, "SELECT caster_guid, spell, effect_mask, recalculate_mask, stackcount, amount0, amount1, amount2, "
|
||||
@@ -309,14 +309,14 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
"taximask, cinematic, "
|
||||
"totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, resettalents_time, "
|
||||
"extra_flags, stable_slots, at_login, zone, "
|
||||
"death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, "
|
||||
"todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, "
|
||||
"death_expire_time, taxi_path, conquestPoints, totalHonorPoints, totalKills, "
|
||||
"todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, health, power1, power2, power3, "
|
||||
"power4, power5, latency, speccount, activespec, exploredZones, equipmentCache, knownTitles, actionBars, grantableLevels, guildId) VALUES "
|
||||
"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC);
|
||||
"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_UPD_CHARACTER, "UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,playerBytes=?,playerBytes2=?,playerFlags=?,"
|
||||
"map=?,instance_id=?,instance_mode_mask=?,position_x=?,position_y=?,position_z=?,orientation=?,taximask=?,cinematic=?,totaltime=?,leveltime=?,rest_bonus=?,"
|
||||
"logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,extra_flags=?,stable_slots=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?,"
|
||||
"arenaPoints=?,totalHonorPoints=?,todayHonorPoints=?,yesterdayHonorPoints=?,totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?,knownCurrencies=?,"
|
||||
"conquestPoints=?,totalHonorPoints=?,totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?,"
|
||||
"watchedFaction=?,drunk=?,health=?,power1=?,power2=?,power3=?,power4=?,power5=?,latency=?,speccount=?,activespec=?,exploredZones=?,"
|
||||
"equipmentCache=?,knownTitles=?,actionBars=?,grantableLevels=?,guildId=?,online=? WHERE guid=?", CONNECTION_ASYNC);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user