donero 19 Опубликовано 16 апреля, 2020 (изменено) В 14.04.2020 в 19:09, Rogue сказал: Мана берн работает в процентах, там достаточно раз 6 вала сбернить и у него 0 мп. Но скиллы бесплатные у него все равно, так что смысла нет. Открой аи,скрипты птс посмотри Изменено 16 апреля, 2020 пользователем donero Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rogue 248 Опубликовано 16 апреля, 2020 2 часа назад, donero сказал: Открой аи,скрипты птс посмотри Ну дак 0 мп цена у его скиллов на птс. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BlooDLucifer 26 Опубликовано 22 апреля, 2020 Нет В 16.04.2020 в 16:01, Rogue сказал: Ну дак 0 мп цена у его скиллов на птс. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rogue 248 Опубликовано 9 мая, 2020 В 22.04.2020 в 17:25, BlooDLucifer сказал: Нет Спойлер skill_begin skill_name=[s_valakas_trample_left] skill_id=4681 level=1 operate_type=A1 magic_level=75 effect={{i_p_attack;23397;10}} is_magic=0 mp_consume2=0 cast_range=50 effective_range=400 skill_hit_time=1 skill_cool_time=1.5 skill_hit_cancel_time=0.5 reuse_delay=0 attribute=attr_valakas effect_point=-100 target_type=enemy affect_scope=square affect_object=not_friend fan_range={0;15;250;160} affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_trample_right] skill_id=4682 level=1 operate_type=A1 magic_level=75 effect={{i_p_attack;23397;10}} is_magic=0 mp_consume2=0 cast_range=50 effective_range=400 skill_hit_time=1 skill_cool_time=1.5 skill_hit_cancel_time=0.5 reuse_delay=0 attribute=attr_valakas effect_point=-100 target_type=enemy affect_scope=square affect_object=not_friend fan_range={0;-15;250;160} affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_dragon_breath_low] skill_id=4683 level=1 operate_type=A2 magic_level=75 effect={{i_m_attack;499};{t_hp;-72;5}} is_magic=0 mp_consume2=0 cast_range=600 effective_range=1100 skill_hit_time=3 skill_cool_time=2 skill_hit_cancel_time=0.5 reuse_delay=0 activate_rate=80 lv_bonus_rate=2 basic_property=men abnormal_time=10 abnormal_lv=1 abnormal_type=dragon_breath attribute=attr_fire effect_point=-100 target_type=enemy affect_scope=fan affect_object=not_friend fan_range={0;0;1200;35} affect_limit={0;0} next_action=none debuff=1 ride_state={@ride_none} affect_scope_height={-100;100} skill_end skill_begin skill_name=[s_valakas_dragon_breath_high] skill_id=4684 level=1 operate_type=A2 magic_level=75 effect={{i_m_attack;499};{t_hp;-72;5}} is_magic=0 mp_consume2=0 cast_range=900 effective_range=1400 skill_hit_time=3 skill_cool_time=2 skill_hit_cancel_time=0.5 reuse_delay=0 activate_rate=80 lv_bonus_rate=2 basic_property=men abnormal_time=10 abnormal_lv=1 abnormal_type=dragon_breath attribute=attr_fire effect_point=-100 target_type=enemy affect_scope=square affect_object=not_friend fan_range={0;0;1700;160} affect_limit={0;0} next_action=none debuff=1 ride_state={@ride_none} affect_scope_height={100;300} skill_end skill_begin skill_name=[s_valakas_tail_stomp_a] skill_id=4685 level=1 operate_type=A1 magic_level=75 effect={{i_p_attack;37224;10}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=3 skill_cool_time=1 skill_hit_cancel_time=0.5 reuse_delay=0 attribute=attr_fire effect_point=-100 target_type=self affect_scope=square_pb affect_object=not_friend fan_range={0;180;1000;120} affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_tail_stomp_b] skill_id=4686 level=1 operate_type=A1 magic_level=75 effect={{i_m_attack;121}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=0 skill_cool_time=0 skill_hit_cancel_time=0 reuse_delay=0 attribute=attr_fire effect_point=-100 target_type=self affect_scope=square_pb affect_object=not_friend fan_range={0;180;500;120} affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_tail_stomp_visual] skill_id=4687 level=1 operate_type=A1 magic_level=75 effect={} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=3 skill_cool_time=0 skill_hit_cancel_time=0.5 reuse_delay=0 attribute=attr_none effect_point=0 target_type=target affect_scope=single affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_tail_lash] skill_id=4688 level=1 operate_type=A2 magic_level=75 effect={{i_p_attack;21423;10};{i_fly_away};{p_block_act}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=3 skill_cool_time=3 skill_hit_cancel_time=0.5 reuse_delay=0 activate_rate=80 lv_bonus_rate=1 basic_property=con abnormal_time=9 abnormal_lv=1 abnormal_type=fly_away attribute=attr_shock effect_point=-100 target_type=self affect_scope=square_pb affect_object=not_friend fan_range={0;180;250;500} affect_limit={0;0} next_action=none debuff=1 ride_state={@ride_none} skill_end skill_begin skill_name=[s_valakas_fear] skill_id=4689 level=1 operate_type=A2 magic_level=75 effect={{p_fear};{p_block_controll};{i_save_position}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=3 skill_cool_time=2 skill_hit_cancel_time=0 reuse_delay=0 activate_rate=80 lv_bonus_rate=1 basic_property=men abnormal_time=30 abnormal_lv=1 abnormal_type=turn_flee attribute=attr_derangement effect_point=-100 target_type=self affect_scope=point_blank affect_range=1000 affect_object=not_friend affect_limit={0;0} next_action=none debuff=1 ride_state={@ride_none} affect_scope_height={-100;300} skill_end skill_begin skill_name=[s_valakas_fear_visual] skill_id=4689 level=2 operate_type=A2 magic_level=75 effect={{p_fear};{p_block_controll};{i_save_position}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=0 skill_cool_time=0 skill_hit_cancel_time=0 reuse_delay=0 activate_rate=-1 lv_bonus_rate=0 basic_property=men abnormal_time=30 abnormal_lv=1 abnormal_type=turn_flee attribute=attr_derangement effect_point=-100 target_type=self affect_scope=point_blank affect_range=1000 affect_object=not_friend affect_limit={0;0} next_action=none debuff=1 ride_state={@ride_none} affect_scope_height={-100;300} skill_end skill_begin skill_name=[s_valakas_meteor_storm] skill_id=4690 level=1 operate_type=A1 magic_level=75 effect={{i_m_attack;834}} is_magic=0 mp_consume2=0 cast_range=-1 effective_range=-1 skill_hit_time=8 skill_cool_time=2 skill_hit_cancel_time=0.5 reuse_delay=0 attribute=attr_fire effect_point=-100 target_type=self affect_scope=balakas_scope affect_range=300 affect_object=not_friend affect_limit={0;0} next_action=none ride_state={@ride_none} skill_end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Роман_Яблонский 0 Опубликовано 15 мая, 2020 (изменено) Господи, во-первых в ПТС-дате многие скиллы валакаса имеют 0 мп, это верно. Во-вторых выжигание МП боссам и мобам работает в целом, потому что перед каждым юзом скиллов они проверяют соблюдение условий для попытки юза, но Валакас может кастовать потому что смотрим в первый пункт. Вот к примеру декомпил части АИ валакаса, чтобы было наглядно, что перед любым Дизаером на юз скилла делаются проверки: Спойлер class ai_boss07_valakas_select_target_skill extends ai_boss07_valakas_decide_action { parameters: EventHandler CREATED(reply, i0) { super; myself->c_ai0 = gg->GetNullCreature(); myself->c_ai1 = gg->GetNullCreature(); for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); myself->SetMaxHateListSize(200); } myself->i_ai0 = 1; myself->AddTimerEx(1003, 60 * 1000); } EventHandler ATTACKED(attacker, damage, i0, i1, i2, c0, c2, skill_name_id, h0, h1) { super; if (attacker->yongma_type == 1 && gg->GetAbnormalLevel(attacker, myself->Skill_GetAbnormalType(279052289)) <= 0) { if (myself->Skill_GetConsumeMP(279052289) < myself->sm->mp && myself->Skill_GetConsumeHP(279052289) < myself->sm->hp && myself->Skill_InReuseDelay(279052289) == 0) { myself->AddUseSkillDesire(attacker, 279052289, 0, 1, 1000000); } } if (attacker->is_pc == 0 && myself->IsInCategory(12, attacker->npc_class_id) == 1) { if ((gg->FloatToInt(attacker->master->z) - gg->FloatToInt(attacker->z)) > 100) { c0 = attacker->master; if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, c0->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, c0->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } gg->BroadcastOnScreenMsgFStr(myself->sm, 4000, 2, 0, 0, 0, 0, 1, 10000, 0, 1900176, "", "", "", "", ""); myself->InstantTeleport(c0, 211807, -113739, -1632); } else { c0 = attacker->master; if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, c0->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, c0->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } } } else { c0 = attacker; if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, c0->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, c0->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } } if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, c0->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, c0->occupation) || myself->IsInCategory(70, c0->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, c0->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(c0, gg->FloatToInt(damage / myself->i_ai1), 0, 1, 1); } if (myself->sm->db_value == 3 && (myself->p_state == 1 || myself->p_state == 0)) { myself->SetHateInfoListIndex(1); if (myself->GetHateInfoCount() == 0) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } else { i1 = gg->Rand(4); myself->SetHateInfoListIndex(i1); h1 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h1) == 0) { if (myself->IsInCategory(5, h1->creature->occupation) == 1) { c2 = h1->creature; } else { myself->SetHateInfoListIndex(1); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { if (h1->hate < (h0->hate * 0.700000)) { c2 = h0->creature; } else { c2 = h1->creature; } } } } } if (myself->IsNullCreature(c2) == 1) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } if (myself->IsNullCreature(c2) == 0) { if (gg->Rand(100) < 10) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); h0 = myself->GetHateInfoByCreature(c2); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(c2, h0->hate / 2, 0, 1, 0); } } } } } if (myself->IsNullCreature(c2) == 0) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 2: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 4000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 3: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1000 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 4: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 5: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } } } } } EventHandler TIMER_FIRED_EX(timer_id, i0, i1, i2, i3, i4, c2, h0, h1) { super; if (timer_id == 1003) { if (myself->sm->db_value == 3 && (myself->p_state == 1 || myself->p_state == 0)) { myself->SetHateInfoListIndex(1); if (myself->GetHateInfoCount() == 0) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } else { i1 = gg->Rand(4); myself->SetHateInfoListIndex(i1); h1 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h1) == 0) { if (myself->IsInCategory(5, h1->creature->occupation) == 1) { c2 = h1->creature; } else { myself->SetHateInfoListIndex(1); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { if (h1->hate < (h0->hate * 0.700000)) { c2 = h0->creature; } else { c2 = h1->creature; } } } } } if (myself->IsNullCreature(c2) == 1) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } if (myself->IsNullCreature(c2) == 0) { if (gg->Rand(100) < 10) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); h0 = myself->GetHateInfoByCreature(c2); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(c2, h0->hate / 2, 0, 1, 0); } } } } } if (myself->IsNullCreature(c2) == 0) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 2: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 4000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 3: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1000 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 4: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 5: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } } } } myself->AddTimerEx(1003, 60 * 1000); } if (timer_id == 3423) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); for (i1 = 0; i1 < myself->GetHateInfoCount(); i1 = i1->++) { h0 = myself->GetHateInfoByIndex(i1); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(h0->creature, h0->hate / 2, 0, 1, 0); } } } } if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { myself->AddTimerEx(3423, 180 * 1000); break; } case 2: { myself->AddTimerEx(3423, 150 * 1000); break; } case 3: { myself->AddTimerEx(3423, 120 * 1000); break; } case 4: { myself->AddTimerEx(3423, 60 * 1000); break; } case 5: { myself->AddTimerEx(3423, 30 * 1000); break; } } } if (timer_id == 3424) { if (myself->IsNullCreature(myself->c_ai0) == 0) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { myself->c_ai0 = h0->creature; } } else { myself->SetHateInfoListIndex(1); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { if (myself->c_ai0 == h0->creature) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); h0 = myself->GetHateInfoByCreature(myself->c_ai0); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(myself->c_ai0, h0->hate / 2, 0, 1, 0); } } } myself->c_ai0 = gg->GetNullCreature(); } } } if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { myself->AddTimerEx(3424, 45 * 1000); break; } case 2: { myself->AddTimerEx(3424, 45 * 1000); break; } case 3: { myself->AddTimerEx(3424, 60 * 1000); break; } case 4: { myself->AddTimerEx(3424, 30 * 1000); break; } case 5: { myself->AddTimerEx(3424, 45 * 1000); break; } } } if (timer_id == 5618) { if (myself->IsNullCreature(myself->c_ai1) == 0) { myself->AddUseSkillDesire(myself->c_ai1, PowerWord_Body_2nd, 0, 1, 10000000); myself->c_ai1 = gg->GetNullCreature(); } } if (timer_id == 5619) { if (myself->IsNullCreature(myself->c_ai1) == 0) { myself->AddUseSkillDesire(myself->c_ai1, PowerWord_Soul_2nd, 0, 1, 10000000); myself->c_ai1 = gg->GetNullCreature(); } } } EventHandler SEE_CREATURE(creature, i0, i1, i2, c2, h0, h1) { super; if (myself->sm->db_value == 3 && myself->IsInCategory(3, creature->occupation)) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, creature->occupation) || myself->IsInCategory(70, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(creature, gg->FloatToInt(10 / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, creature->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(creature, gg->FloatToInt(10 / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(10 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, creature->occupation) || myself->IsInCategory(70, creature->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(creature, gg->FloatToInt(10 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, creature->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(10 / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(10 / myself->i_ai1), 0, 1, 1); } } else if (creature->is_pc == 1) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, creature->occupation) || myself->IsInCategory(70, creature->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(creature, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, creature->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(creature, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, creature->occupation) || myself->IsInCategory(70, creature->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(creature, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, creature->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(1 / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } } else if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } if (myself->IsInCategory(5, creature->master->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 3; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 2; break; } case 4: { myself->i_ai1 = 7; break; } case 5: { myself->i_ai1 = 5; break; } } } else if (myself->IsInCategory(112, creature->master->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 3; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else if (myself->IsInCategory(1, creature->master->occupation) || myself->IsInCategory(70, creature->master->occupation)) { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 6; break; } case 2: { myself->i_ai1 = 10; break; } case 3: { myself->i_ai1 = 3; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 3; break; } } } else { switch (myself->i_ai0) { case 1: { myself->i_ai1 = 10; break; } case 2: { myself->i_ai1 = 8; break; } case 3: { myself->i_ai1 = 7; break; } case 4: { myself->i_ai1 = 5; break; } case 5: { myself->i_ai1 = 4; break; } } } myself->SetHateInfoListIndex(0); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); if (myself->IsInCategory(5, creature->master->occupation)) { myself->SetHateInfoListIndex(1); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(1, creature->master->occupation) || myself->IsInCategory(70, creature->master->occupation)) { myself->SetHateInfoListIndex(3); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } else if (myself->IsInCategory(3, creature->master->occupation)) { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / (myself->i_ai1 * 2)), 0, 1, 1); } else { myself->SetHateInfoListIndex(2); myself->AddHateInfo(creature->master, gg->FloatToInt(1 / myself->i_ai1), 0, 1, 1); } if (myself->sm->db_value == 3 && (myself->p_state == 1 || myself->p_state == 0)) { myself->SetHateInfoListIndex(1); if (myself->GetHateInfoCount() == 0) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } else { i1 = gg->Rand(4); myself->SetHateInfoListIndex(i1); h1 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h1) == 0) { if (myself->IsInCategory(5, h1->creature->occupation) == 1) { c2 = h1->creature; } else { myself->SetHateInfoListIndex(1); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { if (h1->hate < (h0->hate * 0.700000)) { c2 = h0->creature; } else { c2 = h1->creature; } } } } } if (myself->IsNullCreature(c2) == 1) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } if (myself->IsNullCreature(c2) == 0) { if (gg->Rand(100) < 10) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); h0 = myself->GetHateInfoByCreature(c2); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(c2, h0->hate / 2, 0, 1, 0); } } } } } if (myself->IsNullCreature(c2) == 0) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 2: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 4000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 3: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1000 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 4: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 5: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } } } } } EventHandler DESIRE_MANIPULATION(speller, desire) { myself->MakeAttackEvent(speller, desire * 3, 0); } EventHandler USE_SKILL_FINISHED(i0, i1, i2, c2, h0, h1) { myself->SetHateInfoListIndex(1); if (myself->GetHateInfoCount() == 0) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } else { i1 = gg->Rand(4); myself->SetHateInfoListIndex(i1); h1 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h1) == 0) { if (myself->IsInCategory(5, h1->creature->occupation) == 1) { c2 = h1->creature; } else { myself->SetHateInfoListIndex(1); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { if (h1->hate < (h0->hate * 0.700000)) { c2 = h0->creature; } else { c2 = h1->creature; } } } } } if (myself->IsNullCreature(c2) == 1) { myself->SetHateInfoListIndex(0); h0 = myself->GetMaxHateInfo(0); if (myself->IsNullHateInfo(h0) == 0) { c2 = h0->creature; } } if (myself->IsNullCreature(c2) == 0) { if (gg->Rand(100) < 10) { for (i0 = 0; i0 < 4; i0 = i0->++) { myself->SetHateInfoListIndex(i0); h0 = myself->GetHateInfoByCreature(c2); if (myself->IsNullHateInfo(h0) == 0) { if (myself->IsNullCreature(h0->creature) == 0) { myself->AddHateInfo(c2, h0->hate / 2, 0, 1, 0); } } } } } if (myself->IsNullCreature(c2) == 0) { if (myself->sm->hp < ((myself->sm->max_hp * 1.000000) / 5.000000)) { myself->i_ai0 = 5; if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 2.000000) / 5.000000)) { myself->i_ai0 = 4; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 3.000000) / 5.000000)) { myself->i_ai0 = 3; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else if (myself->sm->hp < ((myself->sm->max_hp * 4.000000) / 5.000000)) { myself->i_ai0 = 2; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } else if (myself->i_ai0 < myself->i_ai0) { if (myself->Skill_GetConsumeMP(PowerUp) < myself->sm->mp && myself->Skill_GetConsumeHP(PowerUp) < myself->sm->hp && myself->Skill_InReuseDelay(PowerUp) == 0) { myself->AddUseSkillDesire(myself->sm, PowerUp, 1, 1, 1000000); } } } else { myself->i_ai0 = 1; if (myself->i_ai0 > myself->i_ai0) { myself->i_ai0 = myself->i_ai0 + 1; } } switch (myself->i_ai0) { case 1: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1000 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 2: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 4000) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 700 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 3: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1000) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 1500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 1000 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 2600 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 4: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 1500) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1500 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 2500) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } case 5: { i0 = 0; i1 = 0; if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i0 = 1; } if ((myself->DistFromMe(c2) < 1423 && myself->GetDirection(c2) < (180 + 8) && myself->GetDirection(c2) > (180 - 8)) || (myself->DistFromMe(c2) < 802 && myself->GetDirection(c2) < (180 + 14) && myself->GetDirection(c2) > (180 - 14))) { i1 = 1; } if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(myself->sm, Meteor, 0, 1, 1000000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, Fear, 0, 1, 1000000); } else if (gg->Rand(10000) < 2500 && i0 == 1 && myself->i_quest0 == 1) { myself->AddUseSkillDesire(c2, RearStrike, 0, 1, 1000000); myself->i_quest0 == 0 } else if (gg->Rand(10000) < 2500 && i1 == 1) { myself->AddUseSkillDesire(c2, RearThrow, 0, 1, 1000000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Body, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5618, 10 * 1000); } else if (((gg->Rand(10000) < 1570 && (myself->IsInCategory(1, c2->occupation) || myself->IsInCategory(70, c2->occupation) || myself->IsInCategory(3, c2->occupation))) && (gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Body)) <= 0 || gg->GetAbnormalLevel(c2, myself->Skill_GetAbnormalType(PowerWord_Soul)) <= 0)) && myself->IsNullCreature(myself->c_ai1)) { myself->AddUseSkillDesire(c2, PowerWord_Soul, 0, 1, 1000000); myself->c_ai1 = c2; myself->AddTimerEx(5619, 10 * 1000); } else if (gg->Rand(10000) < 3700) { myself->AddUseSkillDesire(c2, BreathLow, 0, 1, 1000000); } else if (myself->GetDirection(c2) > 0 && myself->GetDirection(c2) <= 180) { myself->AddUseSkillDesire(c2, NorMalAttackRight, 0, 1, 1000000); } else { myself->AddUseSkillDesire(c2, NorMalAttackLeft, 0, 1, 1000000); } break; } } } } } Изменено 15 мая, 2020 пользователем Роман_Яблонский Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты