bool upgradeskill() { //printf("%d\n",status->objects[0].skill_level[SHIELD]); if (status->objects[0].skill_level[LONG_ATTACK]<5) { if (status->objects[0].ability>=cost(LONG_ATTACK)) { UpgradeSkill(-1,LONG_ATTACK); return true; } } if (status->objects[0].skill_level[HEALTH_UP]<5) { if (status->objects[0].ability>=cost(HEALTH_UP)) { UpgradeSkill(-1,HEALTH_UP); return true; } else return false; } if (status->objects[0].skill_level[VISION_UP]<5) { if (status->objects[0].ability>=cost(VISION_UP)) { UpgradeSkill(-1,VISION_UP); return true; } else return false; } return false; };
bool upgradeskill() { //printf("%d\n",status->objects[0].skill_level[SHIELD]); /* if ((eat_player(kTeleportMaxDistance[1])!=-1)&&(status->objects[0].skill_level[TELEPORT]==0)) { if (status->objects[0].ability>=cost(TELEPORT)) { UpgradeSkill(-1,TELEPORT); return true; }; }*/ if (status->objects[0].skill_level[SHIELD]<5) { //printf("%d %d\n",cost(SHIELD),status->objects[0].ability); if (status->objects[0].ability >= cost(SHIELD)) { UpgradeSkill(-1, SHIELD); return true; } else return false; } /*if (status->objects[0].skill_level[TELEPORT]<5) { if (status->objects[0].ability>=cost(TELEPORT)) { UpgradeSkill(-1,TELEPORT); return true; } else return false; }*/ if (status->objects[0].skill_level[HEALTH_UP]<5) { if (status->objects[0].ability >= cost(HEALTH_UP)) { UpgradeSkill(-1, HEALTH_UP); return true; } else return false; } if (status->objects[0].skill_level[VISION_UP]<5) { if (status->objects[0].ability >= cost(VISION_UP)) { UpgradeSkill(-1, VISION_UP); return true; } else return false; } return false; };
void upgrade(PlayerObject obj, SkillType skill){ if (obj.skill_level[skill] == 5) return; if (obj.ability < cost(skill)) return; UpgradeSkill(obj.id, skill); }
int update() { if (me.skill_cd[SHIELD] == 0 /*&& me.short_attack_casting == -1*/ && me.long_attack_casting == -1) { WAIT; Shield(me.id); GO; return 1; } else { if (me.skill_level[HEALTH_UP] < kMaxSkillLevel) { if (me.ability >= cost(HEALTH_UP)) { WAIT; UpgradeSkill(me.id, HEALTH_UP); GO; return 1; } else return 0; } else if (me.skill_level[SHIELD] < kMaxSkillLevel) { if (me.ability >= cost(SHIELD)) { WAIT; UpgradeSkill(me.id, SHIELD); GO; return 1; } else return 0; } else { AE_Parameter = MID_ADVANCED_VALUE;//1st step of update finish if (me.skill_level[SHORT_ATTACK] < kMaxSkillLevel) { if (me.skill_level[DASH] < kMaxSkillLevel) { if (me.ability >= cost(SHORT_ATTACK)) { WAIT; UpgradeSkill(me.id, SHORT_ATTACK); GO; return 1; } else if (me.ability >= cost(DASH)) { WAIT; UpgradeSkill(me.id, DASH); GO; return 1; } else return 0; } else { if (me.ability >= cost(SHORT_ATTACK)) { WAIT; UpgradeSkill(me.id, SHORT_ATTACK); GO; return 1; } else return 0; } } else if (me.skill_level[DASH] < kMaxSkillLevel) { if (me.ability >= cost(DASH)) { WAIT; UpgradeSkill(me.id, DASH); GO; return 1; } else return 0; } else { AE_Parameter = LOW_ADVANCED_VALUE;//2st step of update finish if (me.skill_level[LONG_ATTACK] < kMaxSkillLevel) { if (me.ability >= cost(LONG_ATTACK)) { WAIT; UpgradeSkill(me.id, LONG_ATTACK); GO; return 1; } else return 0; } else { AE_Parameter = TRASH;//all finish if (me.ability >= cost(VISION_UP)){ WAIT; UpgradeSkill(me.id, VISION_UP); GO; } return 0; } } return 0; } } }
void HealthUp(int user_id) { UpgradeSkill(user_id, HEALTH_UP); }