Как редактировать НПЦ/Мобов их дроп и прокачку SA

Deazer

Head Developer
Staff member
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. Пример:
Code:
<minions>
<minion npc_id="25110" count="1"/>
<!--Cloe's Servitor-->
<minion npc_id="25111" count="1"/>
<!--Cloe's Servitor-->
</minions>


5.Скилы для мобов которыми он будет атаковать или хилится или пассивные, например если вы считаете что каким то скилом он уж больно лупит или хилится, можете его или удалить или понизить статы самого скила которым он пользуется. Пример:
Code:
<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 ака Кристаллы души. Пример:
Code:
<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" - на того кто добил РБ или моба.Скилом или с руки
Пример:
Code:
<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"
Сумма шансов внутри группы не должно превышать 100%, шанс группы так же не должен быть более 100%
Пример:
Code:
<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 - в данной группе вообще ничего рейтоватся не будет как бы вы не выставили конфиг. Пример:
Code:
<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 - это группа спойла. В отличии от Рейтед и Нот рейтед - не имеет подгрупп

Пример:
Code:
<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>
Теперь полное описание Моба на фактическом примере:
Code:
<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 - Raid Points
<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>
 
Last edited:
Подскажите, как пишутся все ai_type моба - CharacterAI / Priest, а остальные?
Это как ведёт себя моб в бою?
 
Подскажите, как пишутся все ai_type моба - CharacterAI / Priest, а остальные?
Это как ведёт себя моб в бою?
да, есть Fighter/Guard/Mystic/Balanced/Priest/Ranger
Далее уже можно экстендить эти АИ при помощью наследования или же name="type" писать свои дополнительные
 
Last edited:
Есть где-то описание как ведут себя АИ, Balanced и Priest?

Чтобы понимать какой больше подходит под определённую задачу.
 
Есть где-то описание как ведут себя АИ, Balanced и Priest?

Чтобы понимать какой больше подходит под определённую задачу.
в data/npc
 
Про итем, чтобы с рб падало всем по 1 итему в инвентарь кто в пати
 
А как в нем привязать этот DropEvent к нескольким РБ? Там же вроде только к эвентам и всем мобам заданного уровня..
 
А как в нем привязать этот DropEvent к нескольким РБ? Там же вроде только к эвентам и всем мобам заданного уровня..
К некоторым конкретным РБ привязываешь через дроп лист data/npc
 
с дропом понятно, но нужно чтобы всем членам пати выпадало по 1 итему
 
1. Местонахождение gameserver\data\npc
</npc>[/CODE]

<rewardlist type="RATED_GROUPED">
<group chance="100.0">
<reward item_id="57" min="1827000" max="3667000" chance="70.0"/>
</group>
<group chance="100.0">
<reward item_id="6673" min="1" max="5" chance="33.0"/>
</group>
<group chance="100.0">
<reward item_id="8742" min="1" max="1" chance="3.0"/>
</group>
</rewardlist>

Чтобы шанс дропа соответствовал отмеченному красным, нужно выставить <group chance="100.0"> ?
 
При выпадении дропа - как я описал выше, в первую очередь считает шанс группы, если шанс 100% в неё заходим по любому 100%, потом смотрим на шансы внутри группы и выдаём или не выдаём в зависимости от шанса предметы. Шанс внутри группы не может быть больше 100% как собственно и сама группа. Все просто как 2+2
Пример: шанс группы 100%, а предмета 50%, исходя из расчета фактический шанс выпасть предмету будет 50%
Я даже понятия не имею что тут может быть сложного считать в любых пропорциях и вариациях.
 
При выпадении дропа - как я описал выше, в первую очередь считает шанс группы, если шанс 100% в неё заходим по любому 100%, потом смотрим на шансы внутри группы и выдаём или не выдаём в зависимости от шанса предметы. Шанс внутри группы не может быть больше 100% как собственно и сама группа. Все просто как 2+2
Пример: шанс группы 100%, а предмета 50%, исходя из расчета фактический шанс выпасть предмету будет 50%
Я даже понятия не имею что тут может быть сложного считать в любых пропорциях и вариациях.
Сложного ничего, но лучше уточнить, чтобы потом голову не ломать. Тем более что имеется тонкая настройка которая может зависит от шанса группы
 
Сложного ничего, но лучше уточнить, чтобы потом голову не ломать. Тем более что имеется тонкая настройка которая может зависит от шанса группы
А ещё руны и прем акк))
 
Несколько уточняющих вопросов:
1. Если в RATED_GROUPED шанс у группы стоит 100%, а сумма шансов всех предметов в группе равна 100%, то при убийстве монстра гарантированно всегда будет выпадать 1 предмет из группы. Больше 1 предмета за раз не выпадет. Это верно?

2. Есть rewardlist NOT_RATED_NOT_GROUPED. Чем он отличается от RATED_GROUPED? Я понял это так: при убийстве монстра каждый предмет из rewardlist проверяется на шанс выпадения по очереди. Может выпасть несколько предметов за раз или не выпасть ни одного. Это верно? Можно ли грубо сказать, что "NOT_RATED_NOT_GROUPED это как SWEEP, только для дропа"?
 
Back
Top