Ejemplo n.º 1
0
void Creature::_LoadQuests()
{
    

    mQuestIds.clear();
	mInvolvedQuestIds.clear();

    std::stringstream query;
    query << "SELECT * FROM creaturequestrelation WHERE creatureId=" << GetUInt32Value(OBJECT_FIELD_ENTRY) << " ORDER BY questId";

    QueryResult *result = sDatabase.Query( query.str().c_str() );
    if(result)
    {
        do
        {
            Field *fields = result->Fetch();
            addQuest(fields[1].GetUInt32());
        }
        while( result->NextRow() );

        delete result;
    }

	

    std::stringstream query1;					    
	query1 << "SELECT * FROM creatureinvolvedrelation WHERE creatureId=" << GetUInt32Value (OBJECT_FIELD_ENTRY) << " ORDER BY questId";

    result = sDatabase.Query( query1.str().c_str() );
    if(result)
    {
        do
        {
            Field *fields = result->Fetch();
			uint32 inv = fields[1].GetUInt32();

			Quest *pQuest = objmgr.GetQuest( inv );
			if (!pQuest) continue;

            addInvolvedQuest(inv);
        }
        while( result->NextRow() );

        delete result;
    }
}
Ejemplo n.º 2
0
void GameObject::_LoadQuests()
{
    mQuests.clear();
    mInvolvedQuests.clear();

    Field *fields;
    Quest *pQuest;

    QueryResult *result = sDatabase.PQuery("SELECT `quest` FROM `gameobject_questrelation` WHERE `id` = '%u'", GetEntry ());

    if(result)
    {
        do
        {
            fields = result->Fetch();
            pQuest = objmgr.QuestTemplates[ fields[0].GetUInt32() ];
            if (!pQuest) continue;

            addQuest(pQuest->GetQuestId());
        }
        while( result->NextRow() );

        delete result;
    }

    QueryResult *result1 = sDatabase.PQuery("SELECT `quest` FROM `gameobject_involvedrelation` WHERE `id` = '%u'", GetEntry ());

    if(!result1) return;

    do
    {
        fields = result1->Fetch();
        pQuest = objmgr.QuestTemplates[ fields[0].GetUInt32() ];
        if (!pQuest) continue;

        addInvolvedQuest(pQuest->GetQuestId());
    }
    while( result1->NextRow() );

    delete result1;
}