To implement, you need to add data for the NPC, skills, and items to the server!
Also, remember to add your new NPC, skills, and items to the game client! - This will not be described here.
Path: gameserver/data/items
For example, we'll make it an Underwear item since there is no slot for Agathions in the client.
<skill id="9001" level="1" /> - Skill to summon the Agathion.
<skill id="3267" level="1" /> - Skill to dismiss the Agathion. Alternatively, players can use the `/unsummon` command in chat, as Agathions have no default lifespan.
Path: gameserver/data/stats/skills/
1) Create the Agathion summon skill:
<set name="npcId" val="14482"/> - The NPC that will be summoned.
<set name="skillType" val="SUMMON"/> - Skill type.
<set name="summonType" val="agathion"/> - Summon type.
Other parameters are standard.
2) Create the dismiss skill:
<set name="skillType" val="DISMISS_AGATHION"/> - Skill type that dismisses Agathions!
There's nothing particularly special to set up for the NPC except that it must have <set name="type" value="Pet"/>
Here's an example anyway:
Path: gameserver/data/npc
This is how it looks in-game:
Also, remember to add your new NPC, skills, and item to the game client!
Also, remember to add your new NPC, skills, and items to the game client! - This will not be described here.
1)Item:
Path: gameserver/data/items
For example, we'll make it an Underwear item since there is no slot for Agathions in the client.
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 -->
<skill id="3267" level="1"/> <!-- Seal Agathion -->
</skills>
<equip>
<slot id="UNDERWEAR"/>
</equip>
</armor>
<skill id="9001" level="1" /> - Skill to summon the Agathion.
<skill id="3267" level="1" /> - Skill to dismiss the Agathion. Alternatively, players can use the `/unsummon` command in chat, as Agathions have no default lifespan.
2) Now, let's move to skills:
Path: gameserver/data/stats/skills/
1) Create the Agathion summon skill:
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"/> - Skill type.
<set name="summonType" val="agathion"/> - Summon type.
Other parameters are standard.
2) Create the dismiss skill:
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="skillType" val="DISMISS_AGATHION"/> - Skill type that dismisses Agathions!
3)Now, let's move to the NPC:
There's nothing particularly special to set up for the NPC except that it must have <set name="type" value="Pet"/>
Here's an example anyway:
Path: 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>
This is how it looks in-game:
Also, remember to add your new NPC, skills, and item to the game client!