• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Мануал Npcdata.txt - формат и описание параметров

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
6 972
Розыгрыши
22
Решения
1
Репутация
6 145
Реакции
6 870
Баллы
2 688
npc_begin warrior 20149 [iron_golem] level=38 acquire_exp_rate=1.748043 acquire_sp=157 unsowing=0 clan={-1} ignore_clan_list={} clan_help_range=300 slot_chest=[] slot_rhand=[] slot_lhand=[] shield_defense_rate=0 shield_defense=0 skill_list={@s_race_construct;@s_npc_resist_bow4;@s_npc_resist_dagger2;@s_npc_weakness_blunt1;@s_npc_resist_magical_dmg8;@s_npc_resist_bleed3} npc_ai={[iron_golem];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=0};{[MoveAroundSocial2]=0};{[DDMagicSlow]=@s_npc_ice_for_slow3}} category={} race=construct sex=male undying=0 can_be_attacked=1 corpse_time=7 no_sleep_mode=0 agro_range=1000 ground_high={20;0;0} ground_low={20;0;0} exp=12395217 org_hp=886.09975 org_hp_regen=4.5 org_mp=447.96 org_mp_regen=1.8 collision_radius={18;18} collision_height={34;34} str=40 int=21 dex=30 wit=20 con=43 men=10 base_attack_type=sword base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=142.020663636364 base_critical=4 physical_hit_modify=4.75 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=106.67987 base_defend=163.287157 base_magic_defend=108.62405 physical_avoid_modify=0 soulshot_count=0 spiritshot_count=0 hit_time_factor=0.41 item_make_list={} corpse_make_list={} additional_make_list={} additional_make_multi_list={} hp_increase=0 mp_increase=0 safe_height=100 npc_end
Описание параметров:

  • warrior - тип NPC
  • 20149 - ID NPC
  • [iron_golem] - имя NPC (имя NPC, как вы его будете вбивать в клиенте при вызове)
  • level=38 - уровень NPC
  • acquire_exp_rate=1.748043 acquire_sp=157 - the XP/SP rate that NPC gives (acquire_exp_rate is calculated using Exp/(Level ^ 2) = acquire_exp_rate)
  • clan={-1} clan_help_range=300 - the clan of NPC, the range where the NPC clanies will be agro
  • skill_list={@s_race_construct;@s_npc_resist_bow4;@ s_npc_resist_dagger2;@s_npc_weakness_blunt1;@s_npc _resist_magical_dmg8;@s_npc_resist_bleed3} - the passive skills of the NPC in our chase: race construct , resist bow 4, etc.
  • npc_ai={[iron_golem];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=0};{[MoveAroundSocial2]=0};{[DDMagicSlow]=@s_npc_ice_for_slow3}} - here we have the ai.obj parameters like: name in ai.obj, the NPC socials and what magic he cast
  • category={} race=construct sex=male undying=0 - the NPC category , his race again, his sex, and hes die stat 0 can die
  • can_be_attacked=1 corpse_time=7 no_sleep_mode=0
=1 can be attacked =0 he can't, corpse time 7 mean in 7s he will despair , sleep mode =0 means if the npc is affected or not by the option "Silent when no user" from the L2NPC. (corrected by FidoW) see below detailes

  • agro_range=1000 ground_high={20;0;0} ground_low={20;0;0} - the range where he keep being agro up/down
  • exp=12395217 org_hp=886.09975 org_hp_regen=4.5 org_mp=447.96 org_mp_regen=1.8 - here is his HP/MP and the regeneration rate of them.
  • str=40 int=21 dex=30 wit=20 con=43 men=10 - here are the NPC parameters
  • base_attack_type=sword base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=142.020663636364 base_critical=4 physical_hit_modify=4.75 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=106.67987 base_defend=163.287157 base_magic_defend=108.62405
Here are the attack parameters: type of attack, rage of attack, P attack, M Attack, Attack speed and his P/M defence.

  • soulshot_count=0 spiritshot_count=0 - If he use or not soulshot/spiritshot =0 mean no =1 mean yes 1 soulshot/spiritshot
  • corpse_make_list={} - into the {} comes the spoiles mats with the rate/change ex: {[stem]1;1;99.99} and means 99.99% chance of spoil
  • additional_make_multi_list={} - here comes the NPC droplist same as above.
 
Всем привет. Кто-то знает, зачем нужен параметр passable_door?
Есть подозрение, что он отвечает за обработку коллизий моба геодвижком, но не могу найти этому подтверждений.
 

Подскажите, пожалуйста, на hf pts от AdvExt есть параметр: s_npc_prop_hp_rate. Из названия как будто бы складывается картинка, что он действует на npc properties hp. Т.е. вроде понятно, что точно учитывается в паре с org_hp, но учитывается ли для org_hp_regen?
 
Подскажите, пожалуйста, на hf pts от AdvExt есть параметр: s_npc_prop_hp_rate. Из названия как будто бы складывается картинка, что он действует на npc properties hp. Т.е. вроде понятно, что точно учитывается в паре с org_hp, но учитывается ли для org_hp_regen?
Вы удивитесь, но он не учитывается в расчете HP. Формула расчета HP:

org_hp * бонус CON * модификаторы эффектов

s_npc_prop_hp_rate нужен, например для расчета количества всходов манора с мобов.
 
  • Вау
Реакции: Projack

    Projack

    Баллов: 5
    Спасибо за ответ
Does anyone have more information on ex_crt_effect?

From my tests if you set ex_crt_effect = 1, mobs can "see" you (SEE_CREATURE) regardless of skills such as silent move / dance of shadows.

1695565995805.png
 
Does anyone have more information on ex_crt_effect?

From my tests if you set ex_crt_effect = 1, mobs can "see" you (SEE_CREATURE) regardless of skills such as silent move / dance of shadows.

Посмотреть вложение 55297
As I understand it, the mob receives the SEE_CREATURE event in any case, regardless of the value of this parameter. The differences begin when you receive AddAttackDesire. In the case of ex_crt_effect == 1, the p_avoid_aggro check is ignored and the task is executed.
 
As I understand it, the mob receives the SEE_CREATURE event in any case, regardless of the value of this parameter. The differences begin when you receive AddAttackDesire. In the case of ex_crt_effect == 1, the p_avoid_aggro check is ignored and the task is executed.
Yes SEE_CREATURE event is active in any case (I think the field event_flag = 1 is needed), but:

warrior type npc + ex_crt_effect == 0 + silent move -------> SEE_CREATURE is not activated for PC with active p_avoid_aggro
 
Yes SEE_CREATURE event is active in any case (I think the field event_flag = 1 is needed), but:

warrior type npc + ex_crt_effect == 0 + silent move -------> SEE_CREATURE is not activated for PC with active p_avoid_aggro
ex_crt_effect == 1 is often the case with ordinary citizen. According to my tests, SEE_CREATURE is called after LookNeighbor calls from AI (such calls include NPC and PC), or conditional scanning like LookNeighbor(simple scan around space), from deep parent AI (in this case, only PCs are detected). It is possible that ex_crt_effect == 1 allows you to ignore any kind of invisibility when checking LookNeighbor and at the same time the NPC receives exactly SEE_CREATURE with subsequent transitions on super-calls.
 
ex_crt_effect == 1 is often the case with ordinary citizen. According to my tests, SEE_CREATURE is called after LookNeighbor calls from AI (such calls include NPC and PC), or conditional scanning like LookNeighbor(simple scan around space), from deep parent AI (in this case, only PCs are detected). It is possible that ex_crt_effect == 1 allows you to ignore any kind of invisibility when checking LookNeighbor and at the same time the NPC receives exactly SEE_CREATURE with subsequent transitions on super-calls.
For the npc to see other npcs it needs LookNeighbor (which also works for PC).
For the npc to see PC you just need to enter its "see" range.

I had made detailed documentation on SEE_CREATURE, "see" range and LookNeighbor here:


Regarding the case warrior type npc + ex_crt_effect == 0 + silent move:

 
Вы удивитесь, но он не учитывается в расчете HP. Формула расчета HP:

org_hp * бонус CON * модификаторы эффектов

s_npc_prop_hp_rate нужен, например для расчета количества всходов манора с мобов.
А почему s_npc_prop_hp_rate есть у race=castle_guard? За что этот параметр еще отвечает?

Код:
npc_begin    warrior    36188    [ore_gi_fort_guard]    category={}    level=72    exp=532694979    ex_crt_effect=1    unique=0    s_npc_prop_hp_rate=4    race=castle_guard    sex=male    skill_list={@s_npc_prop_race_castle_guard;@s_npc_prop_hp_lv_m4;@s_npc_prop_mp_lv_p0;@s_npc_prop_pa_lv_p0;@s_npc_prop_ma_lv_p0;@s_npc_prop_pd_lv_p0;@s_npc_prop_md_lv_p5;@s_npc_prop_armor_type_n;@s_npc_prop_weapon_type_pole;@s_full_magic_defence}    slot_chest=[]    slot_rhand=[halbard]    slot_lhand=[]    collision_radius={7;7}    collision_height={24;24}    hit_time_factor=0.6    hit_time_factor_skill=-1    ground_high={120;0;0}    ground_low={50;0;0}    str=40    int=21    dex=30    wit=20    con=43    men=20    org_hp=2540.15331    org_hp_regen=8.5    org_mp=1410    org_mp_regen=3    base_attack_type=pole    base_attack_range=80    base_damage_range={0;0;80;120}    base_rand_dam=30    base_physical_attack=731.52506    base_critical=4    physical_hit_modify=0    base_attack_speed=253    base_reuse_delay=0    base_magic_attack=499.53679    base_defend=305.35947    base_magic_defend=223.44881    base_attribute_attack={none;0}    base_attribute_defend={20;20;20;20;20;20;0}    physical_avoid_modify=0    shield_defense_rate=0    shield_defense=0    safe_height=100    soulshot_count=0    spiritshot_count=0    clan={@door_clan;@fortress_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={[ore_gi_fort_guard];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=90};{[MoveAroundSocial2]=90};{[fortress_id]=116};{[IsAggressive]=1};{[MovingAttack]=0};{[MoveArounding]=0};{[toggle_buff]=@s_castle_power_up_toggle1}}    event_flag={1}    unsowing=1    private_respawn_log=0    acquire_exp_rate=0.5    acquire_sp=0    acquire_rp=0    corpse_make_list={}    additional_make_list={}    additional_make_multi_list={{{{[shoulder_strap_of_knight];4;12;100}};66.28}}    ex_item_drop_list={}    fake_class_id=-1    npc_end
 
А почему s_npc_prop_hp_rate есть у race=castle_guard? За что этот параметр еще отвечает?

Код:
npc_begin    warrior    36188    [ore_gi_fort_guard]    category={}    level=72    exp=532694979    ex_crt_effect=1    unique=0    s_npc_prop_hp_rate=4    race=castle_guard    sex=male    skill_list={@s_npc_prop_race_castle_guard;@s_npc_prop_hp_lv_m4;@s_npc_prop_mp_lv_p0;@s_npc_prop_pa_lv_p0;@s_npc_prop_ma_lv_p0;@s_npc_prop_pd_lv_p0;@s_npc_prop_md_lv_p5;@s_npc_prop_armor_type_n;@s_npc_prop_weapon_type_pole;@s_full_magic_defence}    slot_chest=[]    slot_rhand=[halbard]    slot_lhand=[]    collision_radius={7;7}    collision_height={24;24}    hit_time_factor=0.6    hit_time_factor_skill=-1    ground_high={120;0;0}    ground_low={50;0;0}    str=40    int=21    dex=30    wit=20    con=43    men=20    org_hp=2540.15331    org_hp_regen=8.5    org_mp=1410    org_mp_regen=3    base_attack_type=pole    base_attack_range=80    base_damage_range={0;0;80;120}    base_rand_dam=30    base_physical_attack=731.52506    base_critical=4    physical_hit_modify=0    base_attack_speed=253    base_reuse_delay=0    base_magic_attack=499.53679    base_defend=305.35947    base_magic_defend=223.44881    base_attribute_attack={none;0}    base_attribute_defend={20;20;20;20;20;20;0}    physical_avoid_modify=0    shield_defense_rate=0    shield_defense=0    safe_height=100    soulshot_count=0    spiritshot_count=0    clan={@door_clan;@fortress_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={[ore_gi_fort_guard];{[MoveAroundSocial]=0};{[MoveAroundSocial1]=90};{[MoveAroundSocial2]=90};{[fortress_id]=116};{[IsAggressive]=1};{[MovingAttack]=0};{[MoveArounding]=0};{[toggle_buff]=@s_castle_power_up_toggle1}}    event_flag={1}    unsowing=1    private_respawn_log=0    acquire_exp_rate=0.5    acquire_sp=0    acquire_rp=0    corpse_make_list={}    additional_make_list={}    additional_make_multi_list={{{{[shoulder_strap_of_knight];4;12;100}};66.28}}    ex_item_drop_list={}    fake_class_id=-1    npc_end
Ну основное место использования в движке эвентов.
Как правило, шанс дропнуть эвентовый итем расчитывается для всех НПЦ, у которых s_npc_prop_hp_rate >= 1 или рандом меньше чем это значение. Вот например код, который ее загружает с файла и функции CEventManager::CheckNpcProperties
C++:
    case OBJECT_FIELD_SHIELD_DEFEND:
      this->m_data->m_nBaseParam[12] = (int)value;
      break;
    case OBJECT_FIELD_ACQUIRE_EXP_RATE:
      this->m_data->m_dAcquireExpRate = value;
      break;
    case OBJECT_FIELD_HIT_TIME_FACTOR:
      this->m_data->m_dHitTimeFactor = value;
      break;
    case OBJECT_FIELD_HIT_TIME_FACTOR_SKILL:
      this->m_data->m_dSkillHitTimeFactor = value;
      break;
    case OBJECT_FIELD_ACQUIRE_RAID_BOSS_POINT:
      this->m_data->m_nAcquireRaidBossPoint = (int)value;
      break;
    case OBJECT_FIELD_S_NPC_PROP_HP_RATE:
      this->m_pClassConst->m_nHpRate = value;
      break;
    case OBJECT_FIELD_EX_CRT_EFFECT:
      this->m_data->m_nExCrtEffect = (int)value;
      break;
    default:


C++:
bool __fastcall CEventManager::CheckNpcProperties(CEventManager *this, CNPC *pNpc)
{
  return pNpc->m_pClassConst->m_nHpRate >= 1.0 || genrand64_real1() + 0.0 <= pNpc->m_pClassConst->m_nHpRate;
}
 
Подскажите пожалуйста по параметру abnormalresist, как он работает? Спасибо
 

    BladeRunner

    Баллов: 1
    судя по названию это мультипликатор шанса скилов обездвиживания или изменения движения. имхо, точно не знаю.
Это базовые значения физ/психо резиста, используемые в расчетах прохождения дебаффов на нпс.
Эти резисты после хф заменили собой в этих расчетах влияние con/men на шанс прохождения.
В самих скиллах, какой резист задействовать, задается параметром basic_property.

У игроков эти резисты тоже есть, заданы в setting.txt, блок abnormal_resist
 
Последнее редактирование:
Назад
Сверху Снизу