Для реализации необходимо добавить данные в NPC, скилы, предметы для сервера!
Так же не забудьте добавить вашего нового НПЦ, скилы и предмет в игровой клиент! - Тут это не будет описано
1) Предмет:
Путь: gameserver/data/items
Для примера сделаем его Underwear так как слота для Агатонов в клиенте нет.
<skill id="9001" level="1" /> Скил которым мы призываем нашего Агатиона
<skill id="3267" level="1"/> Скил которым мы отзываем агатона. Но так же игрок может использовать команду в чате /unsumon так как по умолчанию у агатиона нет времени жизни
2) Теперь переходим к скилам
gameserver/data/stats/skills/
1) Делаем скил призыва Агатиона
<set name="npcId" val="14482"/> - НПЦ который будет призван
<set name="skillType" val="SUMMON"/> - Тип скила
<set name="summonType" val="agathion"/> - Тип призыва
Остальные параметры стандартные
2) Делаем скил отзыва
<set name="skillType" val="DISMISS_AGATHION"/> - Тип скила который отзывает Агатионов!
Теперь переходим к НПЦ:
В целом ничего особенного устанавливать не нужно у НПЦ кроме того что он <set name="type" value="Pet"/>
Но все равно приложу пример
Путь: gameserver/data/npc
Вот так это выглядит в игре
Так же не забудьте добавить вашего нового НПЦ, скилы и предмет в игровой клиент! - Тут это не будет описано
1) Предмет:
Путь: gameserver/data/items
Для примера сделаем его Underwear так как слота для Агатонов в клиенте нет.
XML:
<armor id="614" name="Knight's Cloak">
<!-- [knight_s_cloak] -->
<set name="crystal_count" value="38"/>
<set name="crystal_type" value="D"/>
<set name="crystallizable" value="true"/>
<set name="icon" value="icon.armor_back04"/>
<set name="price" value="20900"/>
<set name="type" value="NONE"/>
<set name="weight" value="240"/>
<skills>
<skill id="9001" level="1" /> <!-- Release Agathion's -->
<skill id="3267" level="1"/> <!-- Seal Agathion -->
</skills>
<equip>
<slot id="UNDERWEAR"/>
</equip>
</armor>
<skill id="9001" level="1" /> Скил которым мы призываем нашего Агатиона
<skill id="3267" level="1"/> Скил которым мы отзываем агатона. Но так же игрок может использовать команду в чате /unsumon так как по умолчанию у агатиона нет времени жизни
2) Теперь переходим к скилам
gameserver/data/stats/skills/
1) Делаем скил призыва Агатиона
XML:
<skill id="9001" levels="1" name="Custom Agathion">
<set name="magicType" val="MAGIC"/>
<set name="icon" val="icon.skill1128"/>
<set name="reuseDelay" val="10000"/>
<set name="magicLevel" val="80"/>
<set name="hitTime" val="1500"/>
<set name="hitCancelTime" val="500"/>
<set name="mpConsume1" val="1"/>
<set name="mpConsume2" val="1"/>
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="SUMMON"/>
<set name="summonType" val="agathion"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="npcId" val="14482"/>
</skill>
<set name="skillType" val="SUMMON"/> - Тип скила
<set name="summonType" val="agathion"/> - Тип призыва
Остальные параметры стандартные
2) Делаем скил отзыва
XML:
<skill id="3267" levels="1" name="Dismiss Agathion">
<!-- Description: Dismiss a summoned Agathion. -->
<set name="magicType" val="SPECIAL"/>
<set name="icon" val="icon.etc_unsummon_aga_agit_i01"/>
<set name="magicLevel" val="65"/>
<set name="hitTime" val="3000"/>
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="DISMISS_AGATHION"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="isReuseDelayPermanent" val="true"/>
<set name="useSS" val="false"/>
</skill>
Теперь переходим к НПЦ:
В целом ничего особенного устанавливать не нужно у НПЦ кроме того что он <set name="type" value="Pet"/>
Но все равно приложу пример
Путь: gameserver/data/npc
XML:
<npc id="14482" name="Shadow" title="">
<set name="aggroRange" value="0"/>
<set name="ai_type" value="CharacterAI"/>
<set name="baseAtkRange" value="40"/>
<set name="baseCON" value="43"/>
<set name="baseCritRate" value="40"/>
<set name="baseDEX" value="30"/>
<set name="baseHpMax" value="847.31757"/>
<set name="baseHpRate" value="1.61051"/>
<set name="baseHpReg" value="4.5"/>
<set name="baseINT" value="21"/>
<set name="baseMAtk" value="100"/>
<set name="baseMAtkSpd" value="333"/>
<set name="baseMDef" value="105"/>
<set name="baseMEN" value="25"/>
<set name="baseMpMax" value="432.72"/>
<set name="baseMpReg" value="1.8"/>
<set name="basePAtk" value="146"/>
<set name="basePAtkSpd" value="253"/>
<set name="basePDef" value="144"/>
<set name="baseRunSpd" value="140"/>
<set name="baseSTR" value="40"/>
<set name="baseShldDef" value="0"/>
<set name="baseShldRate" value="0"/>
<set name="baseWIT" value="20"/>
<set name="baseWalkSpd" value="80"/>
<set name="collision_height" value="30.0"/>
<set name="collision_radius" value="10.0"/>
<set name="level" value="37"/>
<set name="rewardExp" value="0"/>
<set name="rewardRp" value="0"/>
<set name="rewardSp" value="0"/>
<set name="shots" value="NONE"/>
<set name="texture" value=""/>
<set name="type" value="Pet"/>
<ai_params>
<set name="TargetEnabled" value="false"/>
</ai_params>
<skills>
<skill id="4121" level="9"/>
<!--Summoned Monster Magic Protection-->
<skill id="4233" level="1"/>
<!--Vampiric Attack-->
<skill id="4408" level="6"/>
<!--HP Very High-->
<skill id="4409" level="1"/>
<!--MP Increase (1x)-->
<skill id="4410" level="13"/>
<!--Slightly Strong P. Atk.-->
<skill id="4411" level="11"/>
<!--Average M. Atk.-->
<skill id="4412" level="11"/>
<!--Average P. Def.-->
<skill id="4413" level="11"/>
<!--Average M. Def.-->
<skill id="4414" level="2"/>
<!--Standard Type-->
<skill id="4415" level="3"/>
<!--One-handed Sword-->
<skill id="4416" level="9"/>
<!--Demons-->
<skill id="5038" level="7"/>
<!--Summon PVP Penalty-->
</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>
</npc>
Вот так это выглядит в игре