コード例 #1
0
ファイル: GameEventManager.cpp プロジェクト: Demensis/arcemu
void GameEventMgr::LoadEvents()
{
	Log.Notice("GameEvent","Started loading events...");

	// select all events
	AsyncQuery* queries = new AsyncQuery(new SQLClassCallbackP0<GameEventMgr>(this, &GameEventMgr::LoadEventsProc));
	queries->AddQuery("SELECT * FROM game_event;");
	WorldDatabase.QueueAsyncQuery(queries);
}
コード例 #2
0
void WorldSession::HandleCharEnumOpcode( WorldPacket & recv_data )
{
    if( m_asyncQuery )      // should be enough
        return;

    AsyncQuery * q = new AsyncQuery( new SQLClassCallbackP1<World, uint32>(World::getSingletonPtr(), &World::CharacterEnumProc, GetAccountId()) );
    q->AddQuery("SELECT guid, level, race, class, gender, bytes, bytes2, name, positionX, positionY, positionZ, mapId, zoneId, banned, restState, deathstate, forced_rename_pending, player_flags, guild_data.guildid, customizable FROM characters LEFT JOIN guild_data ON characters.guid = guild_data.playerid WHERE acct=%u ORDER BY guid ASC LIMIT 10", GetAccountId());
    m_asyncQuery = true;
    CharacterDatabase.QueueAsyncQuery(q);
}
コード例 #3
0
ファイル: GameEventManager.cpp プロジェクト: Demensis/arcemu
void GameEventMgr::ProcessObjectsAndScripts(uint32 id)
{
	Log.Success("GameEvent", "Started loading datas from database for event %u", id);

	AsyncQuery* queries = new AsyncQuery(new SQLClassCallbackP1<GameEventMgr, uint32>(this, &GameEventMgr::ProcessObjectsAndScriptsProc, id));
	queries->AddQuery("SELECT gs.*,cs.map FROM game_event_scripts gs JOIN creature_spawns cs ON (gs.sql_id = cs.id) WHERE gs.event_id = %u;", id);
	queries->AddQuery("SELECT * FROM game_event_creature_waypoints WHERE event_id = %u;", id);
	queries->AddQuery("SELECT * FROM game_event_creature_spawns WHERE event_id = %u;", id);
	queries->AddQuery("SELECT * FROM game_event_gameobject_spawns WHERE event_id = %u;", id);
	WorldDatabase.QueueAsyncQuery(queries);
}
コード例 #4
0
ファイル: CharacterHandler.cpp プロジェクト: lev1976g/easywow
void WorldSession::HandlePlayerLoginOpcode(WorldPacket & recv_data)
{
    CHECK_PACKET_SIZE(recv_data, 8);
    uint64 playerGuid = 0;

    LOG_DEBUG("WORLD: Recvd Player Logon Message");

    recv_data >> playerGuid; // this is the GUID selected by the player
    if (objmgr.GetPlayer((uint32)playerGuid) != NULL || m_loggingInPlayer || _player)
    {
        // A character with that name already exists 0x3E
        uint8 respons = E_CHAR_LOGIN_DUPLICATE_CHARACTER;
        OutPacket(SMSG_CHARACTER_LOGIN_FAILED, 1, &respons);
        return;
    }

    AsyncQuery* q = new AsyncQuery(new SQLClassCallbackP0<WorldSession>(this, &WorldSession::LoadPlayerFromDBProc));
    q->AddQuery("SELECT guid,class FROM characters WHERE guid = %u AND forced_rename_pending = 0", playerGuid); // 0
    CharacterDatabase.QueueAsyncQuery(q);
}
コード例 #5
0
ファイル: MailSystem.cpp プロジェクト: Chameleo/Hearthstone
void MailMessage::SaveToDB()
{
	stringstream ss;
	vector< uint64 >::iterator itr;
	ss << "REPLACE INTO mailbox VALUES("
		<< message_id << ","
		<< message_type << ","
		<< player_guid << ","
		<< sender_guid << ",\""
		<< CharacterDatabase.EscapeString(subject) << "\",\""
		<< CharacterDatabase.EscapeString(body) << "\","
		<< money << ",'";

	for( itr = items.begin( ); itr != items.end( ); ++itr )
		ss << (*itr) << ",";

	ss << "'," 
		<< cod << ","
		<< stationary << ","
		<< expire_time << ","
		<< delivery_time << ","
		<< copy_made << ","
		<< read_flag << ","
		<< deleted_flag << ","
		<< returned_flag << ")";
	if(message_id == 0)
	{
		AsyncQuery * q = new AsyncQuery( new SQLClassCallbackP0<MailMessage>(this, &MailMessage::SaveToDBCallBack) );
		q->AddQuery(ss.str().c_str());
		q->AddQuery("SELECT LAST_INSERT_ID()");
		CharacterDatabase.QueueAsyncQuery(q);
	} else
	{
		CharacterDatabase.WaitExecute(ss.str().c_str());
	}
}