Steelgar Опубликовано 27 сентября, 2018 Поделиться Опубликовано 27 сентября, 2018 (изменено) Ревизия: 31117М Моб: https://asterios.tm/index.php?cmd=bd#mob.skills.22703 Из него появляется 3 моба 22706 и 1 моб 22701 с шансом около 20% (судя по кол-ву убийств). Проблема в том, что у моба 22706 огромный резист(s_npc_resist_dualfist_ex4) ко всему кроме пики, настолько что +7 кастеты 300 огня наносят 60 урона, когда по его соседям 900 урон. Резист режет в 15 раз урон примерно. Почему так? Никогда на офе не испытывал там проблем, хоть кем - нож, кастеты и прочее. Да, урон ниже по резисту, но не столь катастрофично. Из этих мобов не должно вылазить 4 моба, максимум 1 моб с шансом 2%. Ниже приведу вырезку из PTS сервера (админы легко могут проверить) p.s. Не плохая соло локация, в ожидании пати, но сейчас надо пику таскать, чтобы завалить этих 3 мобов с резистами... Скрины: Скрытый текст AI моба 22703: Скрытый текст Описание моба 22703: Скрытый текст npc_begin warrior 22703 [legend_orc_1warrior] category={} level=81 exp=4295351949 ex_crt_effect=0 unique=0 s_npc_prop_hp_rate=4 race=humanoid sex=male skill_list={@s_npc_prop_race_humanoid;@s_npc_prop_attribute_earth1;@s_npc_prop_hp_lv_m4;@s_npc_prop_mp_lv_p0;@s_npc_prop_pa_lv_p4;@s_npc_prop_ma_lv_p3;@s_npc_prop_pd_lv_p0;@s_npc_prop_md_lv_p5;@s_npc_prop_armor_type_n;@s_npc_prop_weapon_type_sword;@s_npc_resist_magical_dmg9;@s_npc_resist_bow_ex4;@s_npc_weakness_melee_attack9;@s_npc_weakness_pole4} slot_chest=[] slot_rhand=[samurai_longsword] slot_lhand=[] collision_radius={14;17} collision_height={28.8;34.9} hit_time_factor=0.28 hit_time_factor_skill=-1 ground_high={140;0;0} ground_low={80;0;0} str=40 int=21 dex=30 wit=20 con=43 men=20 org_hp=3461.77253215841 org_hp_regen=8.5 org_mp=1708.8 org_mp_regen=3 base_attack_type=sword base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=1012.32268463427 base_critical=4 physical_hit_modify=5 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=691.285164307598 base_defend=345.61127 base_magic_defend=252.90333 base_attribute_attack={earth;150} base_attribute_defend={130;130;90;150;130;130;100} physical_avoid_modify=0 shield_defense_rate=0 shield_defense=0 safe_height=100 soulshot_count=0 spiritshot_count=0 clan={} ignore_clan_list={} clan_help_range=300 undying=0 can_be_attacked=1 corpse_time=7 no_sleep_mode=0 agro_range=300 passable_door=0 can_move=1 flying=0 has_summoner=0 targetable=1 show_name_tag=1 npc_ai={[legend_orc_1warrior];{[Skill01_Probablity]=1000};{[Skill01_ID]=@s_npc_aura_burn_magic_only10}} event_flag={0} unsowing=0 acquire_exp_rate=7.168302 acquire_sp=4946 acquire_rp=0 corpse_make_list={{[oricalcum];1;1;4.9236};{[dynasty_two_hand_sword_piece];1;1;0.5201};{[sealed_dynasty_leather_helmet_piece];1;1;3.3638}} additional_make_list={} additional_make_multi_list={{{{[adena];2291;4622;100}};70};{{{[dynasty_spear];1;1;0.3175};{[dynasty_spear_piece];1;1;99.6825}};0.1291};{{{[metallic_fiber];1;1;87.0764};{[mold_lubricant];1;1;6.0953};{[renad];1;1;2.3903};{[oricalcum];1;1;1.604};{[general_80_s];1;1;2.1164};{[special_80_s];1;1;0.5291};{[rare_80_s];1;1;0.0529};{[rp_comp_spiritshot_s];1;1;0.1356}};18.9009}} ex_item_drop_list={} npc_end В нем видно что ai использует класс legend_orc_1warrior, вот он: Скрытый текст class legend_orc_1warrior : ai_legend_orc_warrior { handler: EventHandler MY_DYING(target, i0, i9, last_attacker, lparty, random1_list, always_list, code_info) { always_list = gg::AllocCodeInfoList(); random1_list = gg::AllocCodeInfoList(); target = last_attacker; if( gg::HaveMemo(target, 645) == 1 && gg::GetMemoState(target, 645) == 1 ) { random1_list::SetInfo(0, target); } if( gg::HaveMemo(target, 645) == 1 && gg::GetMemoState(target, 645) == 1 ) { random1_list::SetInfo(0, target); } if( gg::IsNull(lparty) == 0 ) { for(i9 = 0; i9 < lparty.member_count; i9 = i9 + 1) { target = myself::GetMemberOfParty(lparty, i9); if( gg::HaveMemo(target, 645) == 1 && gg::GetMemoState(target, 645) == 1 ) { random1_list::SetInfo(0, target); } } } code_info = random1_list::RandomSelectOne(); if( gg::IsNull(code_info) == 0 ) { if( code_info.code == 0 ) { myself::SetCurrentQuestID(645); target = code_info::RandomSelectOne(); if( gg::IsNull(target) == 0 && myself::DistFromMe(target) <= 1500 ) { i0 = gg::Rand(1000); if( i0 < 516 ) { myself::GiveItem1(target, 14861, 1); myself::SoundEffect(target, "ItemSound.quest_itemget"); } } } } super; } } В свою очередь он наследует класс ai_legend_orc_warrior, вот он: Скрытый текст class ai_legend_orc_warrior : warrior_basic { handler: EventHandler CREATED() { super; } EventHandler MY_DYING(maker0, last_attacker) { if( gg::Rand(100) < 2 ) { select(gg::Rand(2)) { case 0: maker0 = myself::GetMyMaker(); if( gg::IsNull(maker0) == 0 ) { myself::CreateOnePrivateEx(1022707, "ai_legend_orc_ev_vice", 0, 0, gg::FloatToInt(myself.sm.x), gg::FloatToInt(myself.sm.y), gg::FloatToInt(myself.sm.z), 0, gg::GetIndexFromCreature(last_attacker), 0, 0); gg::SendMakerScriptEvent(maker0, 2114001, 0, 0); } break; case 1: if( gg::Rand(2) < 1 ) { myself::CreateOnePrivateEx(1018815, "ai_legend_orc_ev_leader", 0, 0, gg::FloatToInt(myself.sm.x), gg::FloatToInt(myself.sm.y), gg::FloatToInt(myself.sm.z), 0, gg::GetIndexFromCreature(last_attacker), 0, 0); } break; } } } } Как раз в этом классе и описывается появление дополнительного моба с шансом 2% (кто именно из них решается с шансом 50%): 1022707 - legend_orc_2grudge или id 22707 1018815 - legend_orc_3grudge или id 18815 Если второй моб из списка выше 18815 живет более 2 минут, тогда появится еще один моб 18816 что описано в классе ai_legend_orc_ev_leader: Скрытый текст class ai_legend_orc_ev_leader : wizard_basic { handler: EventHandler CREATED() { myself::Shout(gg::MakeFString(1800863, "", "", "", "", "")); myself::AddTimerEx(2114001, 2 * 60 * 1000); myself::LookNeighbor(500); super; } EventHandler SEE_CREATURE(creature) { myself::AddAttackDesire(creature, 0, 20000); myself::AddUseSkillDesire(creature, Skill01_ID, 0, 0, 5000000); myself.c_ai0 = creature; myself::AddTimerEx(2114009, 1000); } EventHandler ATTACKED(attacker) { myself::AddAttackDesire(attacker, 0, 20000); myself::AddUseSkillDesire(attacker, Skill01_ID, 0, 0, 5000000); myself.c_ai0 = attacker; myself::AddTimerEx(2114009, 1000); } EventHandler TIMER_FIRED_EX(timer_id) { if( timer_id == 2114001 ) { myself::CreateOnePrivateEx(1018816, "ai_legend_orc_treasure", 0, 0, gg::FloatToInt(myself.sm.x), gg::FloatToInt(myself.sm.y), gg::FloatToInt(myself.sm.z), 0, 0, 0, 0); myself::SetVisible(0); } else if( timer_id == 2114009 ) { if( myself::IsNullCreature(myself.top_desire_target) == 0 && myself::IsNullCreature(myself.c_ai0) == 0 ) { myself::AddUseSkillDesire(myself.c_ai0, Skill01_ID, 0, 0, 5000000); myself::AddTimerEx(2114009, 3500); } } } EventHandler MY_DYING() { myself::Shout(gg::MakeFString(1800864, "", "", "", "", "")); } } Изменено 27 сентября, 2018 пользователем Steelgar 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
GmoT9I Опубликовано 5 марта, 2023 Поделиться Опубликовано 5 марта, 2023 Ап 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.