/** * A character is defined to be a trainer if there are * trainer item categories for the character. * * @return Return true if the character is a trainer. */ bool psTrainerInfo::Load(PID pid) { bool isTrainer = false; Result trainerSkills(db->Select("SELECT * from trainer_skills where player_id=%u", pid.Unbox())); if (trainerSkills.IsValid()) { int i,count=trainerSkills.Count(); for (i=0;i<count;i++) { psSkillInfo * skillInfo = FindSkill(atoi(trainerSkills[i]["skill_id"])); if (!skillInfo) { Error1("Error! Skill could not be loaded. Skipping.\n"); continue; } psTrainerSkill * skill = new psTrainerSkill; skill->skill = skillInfo; skill->max_rank = atoi(trainerSkills[i]["max_rank"]); skill->min_rank = atoi(trainerSkills[i]["min_rank"]); skill->min_faction = atof(trainerSkills[i]["min_faction"]); skills.Push(skill); isTrainer = true; } } return isTrainer; }
void CAPet::CheckAIList() { int nCount = 0; CPC * pOwner = GetOwner(); for (int i = 0; i < m_nAISlot; i++) { CItem * pItem = pOwner->m_inventory.FindByDBIndex(m_tAIData[i].nItemNum); if (pItem == NULL || (m_tAIData[i].nSkillType == 0 && !FindSkill(m_tAIData[i].nSkillIdx))) { m_tAIData[i].pItem = NULL; m_tAIData[i].nItemNum = -1; m_tAIData[i].nSkillIdx = -1; m_tAIData[i].nSkillType = -1; m_tAIData[i].cUse = 0; } else { m_tAIData[i].pItem = pItem; nCount++; } } m_nAICount = nCount; }