mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Merge branch 'master' into 4.x
This commit is contained in:
@@ -88,21 +88,6 @@ void LoadCreatureFormations()
|
||||
return;
|
||||
}
|
||||
|
||||
std::set<uint32> guidSet;
|
||||
|
||||
QueryResult guidResult = WorldDatabase.PQuery("SELECT guid FROM creature");
|
||||
if (guidResult)
|
||||
{
|
||||
do
|
||||
{
|
||||
Field* fields = guidResult->Fetch();
|
||||
uint32 guid = fields[0].GetUInt32();
|
||||
|
||||
guidSet.insert(guid);
|
||||
|
||||
} while (guidResult->NextRow());
|
||||
}
|
||||
|
||||
uint32 count = 0;
|
||||
Field* fields;
|
||||
FormationInfo* group_member;
|
||||
@@ -114,8 +99,8 @@ void LoadCreatureFormations()
|
||||
//Load group member data
|
||||
group_member = new FormationInfo;
|
||||
group_member->leaderGUID = fields[0].GetUInt32();
|
||||
uint32 memberGUID = fields[1].GetUInt32();
|
||||
group_member->groupAI = fields[4].GetUInt8();
|
||||
uint32 memberGUID = fields[1].GetUInt32();
|
||||
group_member->groupAI = fields[4].GetUInt8();
|
||||
//If creature is group leader we may skip loading of dist/angle
|
||||
if (group_member->leaderGUID != memberGUID)
|
||||
{
|
||||
@@ -130,14 +115,14 @@ void LoadCreatureFormations()
|
||||
|
||||
// check data correctness
|
||||
{
|
||||
if (guidSet.find(group_member->leaderGUID) == guidSet.end())
|
||||
if (!sObjectMgr->GetCreatureData(group_member->leaderGUID))
|
||||
{
|
||||
sLog->outErrorDb("creature_formations table leader guid %u incorrect (not exist)", group_member->leaderGUID);
|
||||
delete group_member;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (guidSet.find(memberGUID) == guidSet.end())
|
||||
if (!sObjectMgr->GetCreatureData(memberGUID))
|
||||
{
|
||||
sLog->outErrorDb("creature_formations table member guid %u incorrect (not exist)", memberGUID);
|
||||
delete group_member;
|
||||
|
||||
@@ -1018,12 +1018,12 @@ int WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
|
||||
|
||||
// Update the last_ip in the database
|
||||
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(LOGIN_UPDATE_LAST_IP);
|
||||
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPDATE_LAST_IP);
|
||||
|
||||
stmt->setString(0, address);
|
||||
stmt->setString(1, account);
|
||||
|
||||
CharacterDatabase.Execute(stmt);
|
||||
LoginDatabase.Execute(stmt);
|
||||
|
||||
// NOTE ATM the socket is single-threaded, have this in mind ...
|
||||
ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale, recruiter, isRecruiter), -1);
|
||||
|
||||
@@ -2728,7 +2728,9 @@ void World::SetPlayerSecurityLimit(AccountTypes _sec)
|
||||
|
||||
void World::ResetWeeklyQuests()
|
||||
{
|
||||
CharacterDatabase.Execute("DELETE FROM character_queststatus_weekly");
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_WEEKLY);
|
||||
CharacterDatabase.Execute(stmt);
|
||||
|
||||
for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
|
||||
if (itr->second->GetPlayer())
|
||||
itr->second->GetPlayer()->ResetWeeklyQuestStatus();
|
||||
@@ -2743,7 +2745,10 @@ void World::ResetWeeklyQuests()
|
||||
void World::ResetRandomBG()
|
||||
{
|
||||
sLog->outDetail("Random BG status reset for all characters.");
|
||||
CharacterDatabase.Execute("DELETE FROM character_battleground_random");
|
||||
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_BATTLEGROUND_RANDOM);
|
||||
CharacterDatabase.Execute(stmt);
|
||||
|
||||
for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
|
||||
if (itr->second->GetPlayer())
|
||||
itr->second->GetPlayer()->SetRandomWinner(false);
|
||||
|
||||
@@ -45,6 +45,8 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_STATEMENT(CHAR_GET_FREE_NAME, "SELECT guid, name FROM characters WHERE guid = ? AND account = ? AND (at_login & ?) = ? AND NOT EXISTS (SELECT NULL FROM characters WHERE name = ?)", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_GET_GUID_RACE_ACC_BY_NAME, "SELECT guid, race, account FROM characters WHERE name = ?", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_DEL_QUEST_STATUS_DAILY, "DELETE FROM character_queststatus_daily", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_DEL_QUEST_STATUS_WEEKLY, "DELETE FROM character_queststatus_weekly", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_DEL_BATTLEGROUND_RANDOM, "DELETE FROM character_battleground_random", CONNECTION_ASYNC);
|
||||
|
||||
// Start LoginQueryHolder content
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER, "SELECT guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, "
|
||||
|
||||
@@ -65,6 +65,8 @@ enum CharacterDatabaseStatements
|
||||
CHAR_GET_FREE_NAME,
|
||||
CHAR_GET_GUID_RACE_ACC_BY_NAME,
|
||||
CHAR_DEL_QUEST_STATUS_DAILY,
|
||||
CHAR_DEL_QUEST_STATUS_WEEKLY,
|
||||
CHAR_DEL_BATTLEGROUND_RANDOM,
|
||||
CHAR_LOAD_PLAYER,
|
||||
CHAR_LOAD_PLAYER_GROUP,
|
||||
CHAR_LOAD_PLAYER_BOUNDINSTANCES,
|
||||
|
||||
Reference in New Issue
Block a user