void PlayerQuests::addQuest(int16_t questid, int32_t npcid) { QuestsPacket::acceptQuest(m_player, questid, npcid); addQuest(questid); giveRewards(questid, true); checkDone(m_quests[questid]); }
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; } }
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 ); }
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); } }
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; }
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); } }