Exemplo n.º 1
0
BOOL CQuestSystem::InitOneFile(const char* filename,tagQuestList& QuestList )
{
	TiXmlNode* pQuestNode = NULL;
	TiXmlDocument pStrDoc(filename);
	if( !pStrDoc.LoadFile() )
	{
		char s[126];
		sprintf(s,"装载配置文件<%s>出错!",filename);
		PutDebugString(s);
		return FALSE;
	}

	pQuestNode = pStrDoc.FirstChild("role");
	if( pQuestNode == NULL) return FALSE;

	TiXmlElement* pEle = pQuestNode->ToElement();
	if( pEle == NULL ) return FALSE;

	TiXmlElement* pAttr = pEle->FirstChildElement();
	for(; pAttr != NULL; pAttr = pAttr->NextSiblingElement() )
	{
		CQuest* quest = new CQuest;
		if( quest->Init(pAttr,QuestList.lTextType))
			if( !AddQuest(QuestList,quest))
				delete quest;
	}
	return TRUE;
}
Exemplo n.º 2
0
void AMech_RPGCharacter::NPCInteract(AMech_RPGCharacter* character)
{
	if (character->GetQuests().Num() > 0) {
		for (UQuest* quest : character->GetQuests()) {
			if (!GetQuests().Contains(quest)) {
				AddQuest(quest);
			}
		}
	}

	if (OnNPCInteractEvent.IsBound()) {
		OnNPCInteractEvent.Broadcast(character);
	}

	GetGroup()->NPCInteract(character);
}