Пример #1
0
void PlayerQuests::addQuest(int16_t questid, int32_t npcid) {
	QuestsPacket::acceptQuest(m_player, questid, npcid);

	addQuest(questid);
	giveRewards(questid, true);
	checkDone(m_quests[questid]);
}
Пример #2
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;
    }
}
Пример #3
0
	void JournalWindow::updateQuests()
	{
		mQuests->clearAllSelections();
		selectQuest(NULL);

		while (mQuests->getItemCount() > 0)
			mQuests->removeItem(mQuests->getListboxItemFromIndex(0));

		QuestBook* questBook = RulesSubsystem::getSingleton().getQuestBook();
		QuestVector quests = questBook->getTopLevelQuests();
		for (QuestVector::iterator it = quests.begin(); it != quests.end(); it++)
		{
			addQuest(*it);
		}

		if (mQuests->getItemCount() > 0)
			mQuests->setItemSelectState( (size_t)0, true );
	}
Пример #4
0
void Questions::readQuestion(QXmlStreamReader& load) {
    Quest q;
    //wyszukiwanie elementów w pętli
    do {
            if (load.isStartElement()) {
                if (load.name() == "level") {
                    q.level = load.readElementText().toInt();
                }
                else if (load.name() == "question") {
                    q.question = load.readElementText();
                }
                else if (load.name() == "a") {
                    q.A = load.readElementText();
                }
                else if (load.name() == "b") {
                    q.B = load.readElementText();
                }
                else if (load.name() == "c") {
                   q.C = load.readElementText();
                }
                else if (load.name() == "d") {
                    q.D = load.readElementText();
                }
                else if (load.name() == "proper") {
                     q.correct = load.readElementText().at(0); //nie może być puste!
                }
                else {
                    //qDebug() << load.name();
                }
            }

    } while (load.readNext() != QXmlStreamReader::EndElement && load.name().toString() != "quest");
    //jeżeli prawidłowe pytanie dodaje do odpowiedniej listy
    if (q.valid()) {
        addQuest(q);
    }
    else {
        qDebug() << "Quest nieprawidłowy! Question::readQuest";
        //qDebug() << questToString(q);
    }

}
Пример #5
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;
}
Пример #6
0
	void JournalWindow::addQuest(Quest* quest, int level)
	{
		static CeGuiString INDENT = "   ";

		if (quest->getState() == Quest::UNKNOWN)
			return;

		CeGuiString questName = "";
		for (int idx = 0; idx < level; idx++)
			questName.append(INDENT);
		questName.append(quest->getName());

		ListboxTextItem* item = new ListboxTextItem(questName, 0, quest);
		item->setSelectionBrushImage(
			mQuestSelectionImageset,
			mQuestSelectionBrush);
		mQuests->addItem(item);
		QuestVector quests = quest->getSubquests();
		for (QuestVector::iterator it = quests.begin(); it != quests.end(); it++)
		{
			addQuest(*it, level+1);
		}
	}