Перейти к содержанию
Asterios

Crypts of Disgrace мобы


Рекомендуемые сообщения

Ревизия: 31117М

Моб: https://asterios.tm/index.php?cmd=bd#mob.skills.22703

Из него появляется 3 моба 22706 и 1 моб 22701 с шансом около 20% (судя по кол-ву убийств).

 

  1. Проблема в том, что у моба 22706 огромный резист(s_npc_resist_dualfist_ex4) ко всему кроме пики, настолько что +7 кастеты 300 огня наносят 60 урона, когда по его соседям 900 урон. Резист режет в 15 раз урон примерно. Почему так? Никогда на офе не испытывал там проблем, хоть кем - нож, кастеты и прочее. Да, урон ниже по резисту, но не столь катастрофично.
  2. Из этих мобов не должно вылазить 4 моба, максимум 1 моб с шансом 2%. Ниже приведу вырезку из PTS сервера (админы легко могут проверить)

 

p.s. Не плохая соло локация, в ожидании пати, но сейчас надо пику таскать, чтобы завалить этих 3 мобов с резистами...

 

Скрины:

Скрытый текст

74d2b760115454.jpg

 

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%):

  1. 1022707 - legend_orc_2grudge или id 22707  
  2. 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, "", "", "", "", ""));
    }

}

 

 

Изменено пользователем Steelgar
Ссылка на комментарий
Поделиться на другие сайты

  • 4 года спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...