bool useskill() { int enemy; if ((status->objects[0].skill_level[LONG_ATTACK]!=0)&&(status->objects[0].skill_cd[LONG_ATTACK]==0)) { enemy=longattack_player(kLongAttackRange[status->objects[0].skill_level[LONG_ATTACK]]); if (enemy!=-1) { longattack_target=map->objects[enemy].id; LongAttack(status->objects[0].id,longattack_target); return true; } }; if ((status->objects[0].skill_level[LONG_ATTACK]!=0)&&(status->objects[0].skill_cd[LONG_ATTACK]==0)) { enemy=longattack_player(kLongAttackRange[status->objects[0].skill_level[LONG_ATTACK]]+5*kMaxMoveSpeed,15); if (enemy!=-1) { Position speed; Position pos=map->objects[enemy].pos; speed.x=-100*(status->objects[0].pos.x-pos.x); speed.y=-100*(status->objects[0].pos.y-pos.y); speed.z=-100*(status->objects[0].pos.z-pos.z); Move(status->objects[0].id,speed); return true; } }; return false; };
void long_attack(PlayerObject obj, Object target){ if (!obj.skill_level[LONG_ATTACK]) return; if (obj.skill_cd[LONG_ATTACK]) return; if (dist(obj.pos, target.pos) - obj.radius - target.radius > kLongAttackRange[obj.skill_level[LONG_ATTACK]]) return; LongAttack(obj.id, target.id); }