Exemple #1
0
/**
 * 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;
}
Exemple #2
0
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;
}