Как редактировать НПЦМобов и Дроп

Deazer

Разработчик
Staff member
#1
Как редактировать НПЦМобов и Дроп
1. Местонахождение gameserver\data\npc

2. Формат XML

3. Кратное описание:
В NPC описаны такие система как:

ai_type моба - CharacterAI / Priest и т.д. - кто он по сути, маг, хил , лукарь или кастомные AI
Статы моба такие как pAtk / CON / DEX / INT / CastSpeed / левел и т.д.
Сколько он выдает при смерти XP/SP/RP - rewardExp / rewardRp / rewardSp
type - Кто он - NPC/RaidBoss/Monster или кастомное


4. Минионы для мобов так же выставляются в npc. Пример:
<minions>
<minion npc_id="25110" count="1"/>
<!--Cloe's Servitor-->
<minion npc_id="25111" count="1"/>
<!--Cloe's Servitor-->
</minions>



5.Скилы для мобов которыми он будет атаковать или хилится или пассивные, например если вы считаете что каким то скилом он уж больно лупит или хилится, можете его или удалить или понизить статы самого скила которым он пользуется. Пример:
<skills>
<skill id="4045" level="1"/>
<!--Resist Full Magic Attack-->
<skill id="4197" level="7"/>
<!--Hold-->
<skill id="4494" level="1"/>
<!--Raid Boss-->
<skill id="4830" level="1"/>
<!--Raid Boss - Level 74-->
</skills>


6.Прокачка SA aka Soul Crystal ака Кристаллы души. Пример:
<absorblist>
<absorb chance="5" min_level="11" max_level="12" type="PARTY_ONE"/>
</absorblist>

В примере крстал души будет прокачан с 5% шансом от 11 уровня до 12 уровня для одного члена пати.


Описание:
Вместо PARTY_ONE вы можете выставлять такие параметры как
LAST_HIT skill="true" или skill="false" - на того кто добил РБ или моба.Скилом или с руки
Пример:

<absorblist>
<absorb chance="5" min_level="0" max_level="4" type="LAST_HIT" skill="true"/>
</absorblist>

PARTY_RANDOM - выдаст рандомное количество на пати. Скажем даст трем участника рейда, а не только одному.

PARTY_ALL - выдаст всей пати кто участвовал в рейде.

7. Дроп и механика работы.
Пример:
И так бывают 3 группы Ревард листа -
RATED_GROUPED - в данной групе все рейтуется из конфигов. Если вы поставили Reward Drop x10 то количество предметов будет увеличено в 10 раз
Так же группа делится на подруппы из которых и будет исходить дроп <group chance="77.473"> группа номер 1. Группа номер 2 <group chance="50.0">:
Это говорит о том что после убийства моба есть шанс выпасть группы, может выпасть только одна или две. К примеру у нас выпала группа <group chance="77.473"> далее из группы будет пересчитываться шанс выпадения предметов в группе - chance="60.6544"
Пример:

<rewardlist type="RATED_GROUPED">
<group chance="77.473"> - шанс группы 1
<reward item_id="960" min="1" max="1" chance="60.6544"/> - шанс выпасть предмету из группы
</group>
<group chance="50.0"> - шанс группы 2
<reward item_id="8176" min="3" max="9" chance="50.0"/> - шанс выпасть предмету из группы
</group>
</rewardlist>

NOT_RATED_GROUPED - в данной группе вообще ничего рейтоватся не будет как бы вы не выставили конфиг. Пример:

<rewardlist type="NOT_RATED_GROUPED">
<group chance="77.473"> - шанс группы 1
<reward item_id="960" min="1" max="1" chance="60.6544"/> - шанс выпасть предмету из группы
</group>
<group chance="50.0"> - шанс группы 2
<reward item_id="8176" min="3" max="9" chance="50.0"/> - шанс выпасть предмету из группы
</group>
</rewardlist>

SWEEP - это группа спойла. В отличии от Рейтед и Нот рейтед - не имеет подгрупп

Пример:

<rewardlist type="SWEEP">
<reward item_id="1799" min="1" max="1" chance="37.1205"/> - шанс получения предмета
<reward item_id="1831" min="1" max="1" chance="66.817"/> - шанс получения предмета
<reward item_id="1896" min="1" max="1" chance="10.6171"/> - шанс получения предмета
</rewardlist>

Теперь полное описание Моба на фактическом примере:

<npc id="20300" name="Zenta Lizardman Matriarch" title=""> - NPC ID и его имя
<set name="aggroRange" value="500"/> - дистанция его агрессивности
<set name="ai_type" value="Fighter"/> - тип АИ в данном случае он у нас Fighter
<set name="baseAtkRange" value="40"/> - радиус атаки. В данном примере он подходит в плотную к чару
<set name="baseCON" value="43"/> - статы CON
<set name="baseCritRate" value="80"/> - статы Крит Рейта моба
<set name="baseDEX" value="30"/> - статы DEX
<set name="baseHpMax" value="1138.629"/> - стат Максимального HP
<set name="baseHpRate" value="1"/> - множитель Максимального HP
<set name="baseHpReg" value="5.5"/> - регенерация, сколько HP моб восстановит за 1 скунду
<set name="baseINT" value="21"/> - стат INT
<set name="baseMAtk" value="176"/> - магическая Атака
<set name="baseMAtkSpd" value="333"/> - скорость Магической Атаки и каста скилов
<set name="baseMDef" value="170"/> - магическая защита
<set name="baseMEN" value="20"/> - стат MEN
<set name="baseMpMax" value="584"/> - количество Маны у моба
<set name="baseMpReg" value="2.1"/> - регенирация маны в 1 секунду
<set name="basePAtk" value="352"/> - базовый стат pAtk
<set name="basePAtkSpd" value="253"/> - скорость физической атаки
<set name="basePDef" value="231"/> - физическая защита
<set name="baseRunSpd" value="140"/> - скорость бега
<set name="baseSTR" value="40"/> - стат STR
<set name="baseShldDef" value="0"/> - защита щитом (не работает если в руках нет щита)
<set name="baseShldRate" value="0"/> - множитель защиты щитом(не работает если в руках нет щита)
<set name="baseWIT" value="20"/> - стат WIT
<set name="baseWalkSpd" value="53"/> - скорость хотьбы. если выставить 0, то будут критовать игроки при сближении к такому мобу
<set name="collision_height" value="40.0"/> - высота моба
<set name="collision_radius" value="20.0"/> - ширина моба
<set name="level" value="44"/> - уровень моба
<set name="rewardExp" value="3418"/> - сколько он нам вернет Exp после убийства
<set name="rewardRp" value="0"/> - сколько он нам вернет RP после убийства. RP - Клан репутация
<set name="rewardSp" value="234"/> - сколько он нам вернет SP после убийства.
<set name="shots" value="NONE"/> - использует ли моб соулшоты или спирит шоты
<set name="texture" value=""/> - текстуры нужны исключительно для сервера, ни как на отображение не влеяет
<set name="type" value="Monster"/> - тип моба, в данном случаи Monster
<faction name="lizardman_clan" range="300"/> - клан в котором состоит моб, если в радиусе 300 вы бьете его соклана, он нападет на вас, даже если он не агресивен
<equip> - что одето в руки
<rhand item_id="221"/> - item id предмета который одет в правую руку
<!--Assassin Knife-->
</equip>
<skills> - Скилы моба которыми он атакует
<skill id="4032" level="4"/>
<!--NPC Strike-->
<skill id="4408" level="1"/>
<!--HP Increase (1x)-->
<skill id="4409" level="1"/>
<!--MP Increase (1x)-->
<skill id="4410" level="12"/>
<!--Slightly Strong P. Atk.-->
<skill id="4411" level="12"/>
<!--Slightly Strong M. Atk.-->
<skill id="4412" level="10"/>
<!--Slightly Weak P. Def.-->
<skill id="4413" level="10"/>
<!--Slightly Weak M. Def.-->
<skill id="4414" level="2"/>
<!--Standard Type-->
<skill id="4415" level="7"/>
<!--Daggers-->
<skill id="4416" level="6"/>
<!--Humanoids-->
</skills>
<attributes> - Защитыне стихии моба
<defence attribute="fire" value="0"/>
<defence attribute="water" value="0"/>
<defence attribute="wind" value="0"/>
<defence attribute="earth" value="0"/>
<defence attribute="holy" value="0"/>
<defence attribute="unholy" value="0"/>
</attributes>
<rewardlist type="NOT_RATED_GROUPED"> - дроп который не рейтуется у моба. Пример описан выше
<group chance="42.0"> - шанс группы
<reward item_id="8600" min="1" max="1" chance="55.0"/> - шанс выпасть предмета из группы
<reward item_id="8601" min="1" max="1" chance="38.0"/> - шанс выпасть предмета из группы
<reward item_id="8602" min="1" max="1" chance="7.0"/> - шанс выпасть предмета из группы
</group>
<group chance="11.0"> - шанс группы
<reward item_id="8603" min="1" max="1" chance="55.0"/> - шанс выпасть предмета из группы
<reward item_id="8604" min="1" max="1" chance="38.0"/> - шанс выпасть предмета из группы
<reward item_id="8605" min="1" max="1" chance="7.0"/> - шанс выпасть предмета из группы
</group>
<group chance="25.0"> - шанс группы
<reward item_id="8606" min="1" max="1" chance="34.0"/> - шанс выпасть предмета из группы
<reward item_id="8608" min="1" max="1" chance="33.0"/> - шанс выпасть предмета из группы
<reward item_id="8610" min="1" max="1" chance="33.0"/> - шанс выпасть предмета из группы
</group>
<group chance="10.0"> - шанс группы
<reward item_id="8607" min="1" max="1" chance="50.0"/> - шанс выпасть предмета из группы
<reward item_id="8609" min="1" max="1" chance="50.0"/> - шанс выпасть предмета из группы
</group>
<group chance="1.0"> - шанс группы
<reward item_id="8612" min="1" max="1" chance="33.0"/> - шанс выпасть предмета из группы
<reward item_id="8613" min="1" max="1" chance="33.0"/> - шанс выпасть предмета из группы
<reward item_id="8614" min="1" max="1" chance="34.0"/> - шанс выпасть предмета из группы
</group>
<group chance="10.0"> - шанс группы
<reward item_id="8611" min="1" max="1" chance="100.0"/> - шанс выпасть предмета из группы
</group>
</rewardlist>
</npc>
 

localhost

Пользователь
#3
ситуация:
есть тиры на дино, нужно сделать что бы с премиум аккаунтом дроп ЛС был 100%, без него 50%, выставлял
Code:
<rewardlist type="RATED_GROUPED">
      <group chance="100">
        <reward item_id="8762" min="1" max="1" chance="50"/>
      </group>
</rewardlist>
и
Code:
<rewardlist type="RATED_GROUPED">
      <group chance="50">
        <reward item_id="8762" min="1" max="1" chance="100"/>
      </group>
</rewardlist>
не один из этих вариантов не увеличивает шанс дропа с ПА
 

Rosylik

Активный пользователь
#4
ситуация:
есть тиры на дино, нужно сделать что бы с премиум аккаунтом дроп ЛС был 100%, без него 50%, выставлял
Code:
<rewardlist type="RATED_GROUPED">
      <group chance="100">
        <reward item_id="8762" min="1" max="1" chance="50"/>
      </group>
</rewardlist>
и
Code:
<rewardlist type="RATED_GROUPED">
      <group chance="50">
        <reward item_id="8762" min="1" max="1" chance="100"/>
      </group>
</rewardlist>
не один из этих вариантов не увеличивает шанс дропа с ПА
Рейты вроде как на шанс не распространяются, только количество
Да и ты ставишь груп шанс 100 а шанс 50 или наоборот, у тебя ни там не там 100% не будет, будет 50 в обоих вариантах. От перестановки местами слагаемых…
 

localhost

Пользователь
#5
Рейты вроде как на шанс не распространяются, только количество
Да и ты ставишь груп шанс 100 а шанс 50 или наоборот, у тебя ни там не там 100% не будет, будет 50 в обоих вариантах. От перестановки местами слагаемых…
я понимаю, но теперь меня интересует реализация 100% шанса с па, при условии что па рейтует х2 дроп
 

Rosylik

Активный пользователь
#6
Никак
я понимаю, но теперь меня интересует реализация 100% шанса с па, при условии что па рейтует х2 дроп
я не вижу вариантов. Можно сделать без па 1 100% с па 2 100-% по другому никак, я думаю
 

Deazer

Разработчик
Staff member
#9
я понимаю, но теперь меня интересует реализация 100% шанса с па, при условии что па рейтует х2 дроп
Модифицируется количество, а не шанс.
 

Rosylik

Активный пользователь
#10
не, мне такое не подходит
Придумай костыль через обменник, сделай дроп итемов с тиров. И сделай обменник простой итемов на лс. Это тоже самое будет. С па чар будет дропать в 2 раза больше итемов.
 

localhost

Пользователь
#12
Придумай костыль через обменник, сделай дроп итемов с тиров. И сделай обменник простой итемов на лс. Это тоже самое будет. С па чар будет дропать в 2 раза больше итемов.
костыли не мой метод
 

Rosylik

Активный пользователь
#13
на всех топовых х50-1200 ил серверах модифицируется шанс с ПА для тиров
Ну и что? С твоих слов такое чувство что эта сборка именно под пвп сервера?? У меня например только лоурейты. И мне шанс нафиг не нужен.
 

localhost

Пользователь
#14
Ну и что? С твоих слов такое чувство что эта сборка именно под пвп сервера?? У меня например только лоурейты. И мне шанс нафиг не нужен.
ну как минимум кастомизация нужна некоторых вещей
 

HolySaint

Новичок
#17
Модифицируется количество, а не шанс.
Точно не скажу, но раньше когда всё было через БД, дроп шансом настраивал, т.е в конфигах рейт дропа был для всего х1, для ПА х2, затем лез в БД и запросами sql дроп сам множил как нужно по условной формуле шанс дропа 1 итема допустим 50%, при ПА получалось что 100%. Другими словами если у итема шанс был 75% ПА накладывал еще 75%, в сумме 150%, а больше 100% быть не может, по итогу получаем 1 итем со 100% шансом и возможность получить второй с 50% шансом.
 

HolySaint

Новичок
#18
я понимаю, но теперь меня интересует реализация 100% шанса с па, при условии что па рейтует х2 дроп
XML:
      <group chance="100.0">
        <reward item_id="8762" min="1" max="1" chance="100.0"/>
      </group>
Сделал так, без ПА 1, с ПА 2 и все довольны.
 
Top