- Joined
- Feb 4, 2010
- Messages
- 2,204
- Reaction score
- 1,012
I AM CURRENTLY FIXING THIS UP, AND ADDING ONTO IT. EXPECT A NEW AND BETTER ONE SOON(Will just edit post )
Custom Quests really are quite easy to make in GunZ to an extent if you're just using MAIET models, and in this thread I will go over what you are going to need to edit to create your own custom quest.
Files to Edit:
npc.xml
zskill.xml
zitem.xml
zquestitem.xml
scenerio.xml
droptable.xml
Fairly straight forward if you have a good example of ijji NPC's I'll provide you with a translated and commented NPC.xml I have done up.
Few notes:
The higher you set the intelligence to on a unit the more it will rely on skills than melee combat, if set too high on a boss the boss will become really easy to stun lock due to the fact it will try and cast skills over melee attacks even at close range
Offense Type 1 is mainly melee and 2 is mainly skills don't get it mixed up, your NPC's will act retarded and you will end up with very easy quests
If it asks for a rotate speed, I really suggest you leave it default, or you will either be able to walk circles around the unit or it will turn on you like a cheap hooker
Make sure you set "grade="x"" right, and just generally make sure you don't miss anything from the ijji npc.xml and you'll be fine
Made this thread a while back....
Now let's get to the fun part, learning the tags. I'll use the same code, but this time with comments on every single possiblity
You really should know how to make items by now. Only thing extra you need to know is that you don't add meshnames to the weapon as the models have the weapons built into their models
Items that you use for sacrifices or I believe you can make the quest items that are dropped in here
Just an example of how I format it, again just grab the type from an ijji zquestitem.xml the zitems are very simple
The droptable is tied in with the NPC.xml as in the npc.xml it asks for which droptable you want the NPC to use, the droptable can be a hassle but hey, what can you do
You can use any world item spawns in here, or any item ID's. Just try not to duplicate or it gets a bit buggy. You gotta make quite a few of these as you don't want all the NPC's to drop the same world items or quest items. It's a hassle but isn't all XML work a hassle?
Saving the worst for last, I have nightmares of scenario.xml it's just so Ducking annoying and easy to mess up
Example of standard level 0 normal old quests with no items
Obviously the MAP dice="#" is the round you're on
key_sector="#" is what map it takes place in, you need to go through your ijji files and grab them. I'll update this thread this weekend with lists of #'s for a lot of things I told you to "Go look for"
Your NPC Set array is the ID of your npc's. If you have #'s under 100 you have to do 00x as shown in that example as my goblins were 001-004
Now for advanced quests, or even boss quests it gets to be a bit tricky.
Once you start reading it, and understanding it. the JACO is a far better method of writing quests, but it takes a lot more time and can be easily typo'd because of that. I warn you to take your time, don't rush.
JACO is pretty intelligent you tell it how many NPC's you want in that round, and give it some NPC Id's and what % Chance you want for those NPC's to spawn and GunZ will do the math and make you a randomly generated quest each time, you can use it to re-make quests or just make simple new ones for item grinding the possibilities are endless
If you are doing a boss with units that always re spawn you can use min_npc to make sure that there is always more than #x NPC's spawned in your boss fight.
Oh, and KEYNPC is kinda broken, it's supposed to be an alternative as to how many you have to kill, but using both obviously doesn't work, and I'm not sure if they work away from each other so I've always kept it in.
And there you have it, you can now make your own basic quests, there is tons of stuff I left out, but you can learn that on your own now that you know the basics <3~
Custom Quests really are quite easy to make in GunZ to an extent if you're just using MAIET models, and in this thread I will go over what you are going to need to edit to create your own custom quest.
Files to Edit:
npc.xml
zskill.xml
zitem.xml
zquestitem.xml
scenerio.xml
droptable.xml
NPC.xml
Fairly straight forward if you have a good example of ijji NPC's I'll provide you with a translated and commented NPC.xml I have done up.
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<XML id="npccatalogue">
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
AI
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<AI_VALUE>
<SHAKING pathfinding_update="0.1" attack_update="0.1" speed="0.2" />
<INTELLIGENCE>
<TIME step="1">0.4</TIME> <!-- Level 1 : 가장 영리함 -->
<TIME step="2">0.6</TIME> <!-- Level 2 : 영리함 -->
<TIME step="3">1</TIME> <!-- Level 3 : 보통 -->
<TIME step="4">2</TIME> <!-- Level 4 : 덜떨어짐 -->
<TIME step="5">3</TIME> <!-- Level 5 : 매우 덜떨어짐 -->
</INTELLIGENCE>
<AGILITY>
<TIME step="1">0.2</TIME> <!-- Level 1 : 가장 민첩함 -->
<TIME step="2">0.5</TIME> <!-- Level 2 : 민첩함 -->
<TIME step="3">1</TIME> <!-- Level 3 : 보통 -->
<TIME step="4">2</TIME> <!-- Level 4 : 둔함 -->
<TIME step="5">3</TIME> <!-- Level 5 : 가장 둔함 -->
</AGILITY>
</AI_VALUE>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
고블린
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<!-- Goblin -->
<NPC id="11"
name="STR:NPC_NAME_11"
desc="STR:NPC_DESC_11"
meshname="goblin"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="30"
max_ap="50"
int="4"
agility="4"
view_angle="15"
dc="5"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="110" />
<ATTACK type="melee" range="150" weaponitem_id="300011" />
<SPEED default="300" />
<DROP table="G11" />
</NPC>
<!-- Goblin Rifle -->
<NPC id="12"
name="STR:NPC_NAME_12"
desc="STR:NPC_DESC_12"
meshname="goblinG"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="30"
max_ap="30"
int="4"
agility="4"
view_angle="25"
dc="5"
offensetype="2"
dyingtime="5">
<COLLISION radius="30" height="110" />
<ATTACK type="melee" range="110" weaponitem_id="300012" />
<SPEED default="230" />
<SKILL id="121" /> <!--- Gun --->
<DROP table="G12" />
</NPC>
<!-- Goblin Mage -->
<NPC id="13"
name="STR:NPC_NAME_13"
desc="STR:NPC_DESC_13"
meshname="goblinW"
scale="1.0 1.0 1.0"
grade="veteran"
max_hp="40"
max_ap="40"
int="4"
agility="4"
view_angle="25"
dc="6"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="120" />
<ATTACK type="melee" range="130" weaponitem_id="300013" />
<SPEED default="400" />
<SKILL id="131" /> <!--- Massive Swing --->
<SKILL id="132" /> <!--- Lesser Heal --->
<DROP table="G13" />
</NPC>
<!-- ??? Goblin -->
<NPC id="14"
name="STR:NPC_NAME_14"
desc="STR:NPC_DESC_14"
meshname="goblinH"
scale="1.0 1.0 1.0"
grade="veteran"
max_hp="50"
max_ap="100"
int="4"
agility="2"
view_angle="40"
dc="7"
offensetype="1"
dyingtime="5">
<COLLISION radius="35" height="140" />
<FLAG never_pushed="true" />
<ATTACK type="melee" range="170" weaponitem_id="300014" />
<SPEED default="360" />
<DROP table="G14" />
</NPC>
<!-- Goblin Mage -->
<NPC id="15"
name="STR:NPC_NAME_15"
desc="STR:NPC_DESC_15"
meshname="goblinC"
scale="1.2 1.2 1.2"
grade="elite"
max_hp="200"
max_ap="100"
int="4"
agility="4"
view_angle="15"
dc="8"
offensetype="1"
dyingtime="5">
<COLLISION radius="35" height="160" />
<ATTACK type="melee" range="270" weaponitem_id="300015" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="320" />
<SKILL id="151" /> <!--- Slow --->
<SKILL id="152" /> <!--- Fire --->
<DROP table="G15" />
</NPC>
<!-- Goblin King -->
<NPC id="16"
name="STR:NPC_NAME_16"
desc="STR:NPC_DESC_16"
meshname="goblinK"
scale="2.5 2.5 2.5"
grade="boss"
max_hp="7000"
max_ap="7000"
int="3"
agility="5"
view_angle="20"
dc="50"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300016" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="400" rotate="4.712" />
<SKILL id="161" /> <!--- Mass Swing --->
<SKILL id="162" /> <!--- GK's FireM --->
<DROP table="G16" />
</NPC>
<!-- Fake Goblin King -->
<NPC id="17"
name="STR:NPC_NAME_17"
desc="STR:NPC_DESC_17"
meshname="goblinK"
scale="2.1 2.1 2.1"
grade="boss"
max_hp="5000"
max_ap="5000"
int="4"
agility="5"
view_angle="20"
dc="50"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300016" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="400" rotate="4.712" />
<SKILL id="161" /> <!--- Mass Swing --->
<SKILL id="162" /> <!--- GK's FireM --->
<DROP table="G17" />
</NPC>
<!-- ??? Goblin King -->
<NPC id="18"
name="STR:NPC_NAME_18"
desc="STR:NPC_DESC_18"
meshname="goblinKB"
scale="2.8 2.8 2.8"
grade="boss"
max_hp="9000"
max_ap="9000"
int="3"
agility="5"
view_angle="20"
dc="50"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300017" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="400" rotate="4.712" />
<SKILL id="163" /> <!--- Mass Swing --->
<SKILL id="164" /> <!--- GK's FireM --->
<SKILL id="166" /> <!--- Less Heal --->
<DROP table="G18" />
</NPC>
<!-- Thunder GK(?) -->
<NPC id="181"
name="STR:NPC_NAME_181"
desc="STR:NPC_DESC_181"
meshname="goblinKB"
scale="1.2 1.2 1.2"
grade="elite"
max_hp="150"
max_ap="150"
int="3"
agility="2"
view_angle="20"
dc="30"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300018" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="450" rotate="4.712" />
<SKILL id="171" /> <!--- Massi Swing --->
<SKILL id="172" /> <!--- Magic Flash --->
<DROP table="G181" />
</NPC>
<!-- Dwaf Goblin King -->
<NPC id="19"
name="STR:NPC_NAME_19"
desc="STR:NPC_DESC_19"
meshname="goblinK"
scale="1.2 1.2 1.2"
grade="boss"
max_hp="5000"
max_ap="5000"
int="3"
agility="5"
view_angle="20"
dc="50"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300017" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="450" rotate="4.712" />
<SKILL id="167" /> <!--- Mass Swing --->
<SKILL id="168" /> <!--- GK's FBall --->
<SKILL id="169" /> <!--- Less Heal --->
<SKILL id="174" /> <!--- Magic Fire --->
<DROP table="G19" />
</NPC>
<!-- Dward Goblin King(Event) -->
<NPC id="191"
name="STR:NPC_NAME_191"
desc="STR:NPC_DESC_191"
meshname="goblinK"
scale="1.2 1.2 1.2"
grade="elite"
max_hp="150"
max_ap="150"
int="3"
agility="2"
view_angle="20"
dc="30"
offensetype="1"
dyingtime="8">
<COLLISION radius="50" height="200" tremble="5" />
<ATTACK type="melee" range="450" weaponitem_id="300018" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="450" rotate="4.712" />
<SKILL id="173" /> <!--- Massive Swing --->
<DROP table="G191" />
</NPC>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
리쟈드
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<!-- Kobolt -->
<NPC id="21"
name="STR:NPC_NAME_21"
desc="STR:NPC_DESC_21"
meshname="kobolt"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="50"
max_ap="50"
int="2"
agility="2"
view_angle="25"
dc="5"
offensetype="1"
dyingtime="5">
<COLLISION radius="35" height="150" />
<ATTACK type="melee" range="165" weaponitem_id="300021" />
<FLAG never_attack_cancel="true" />
<SPEED default="300" />
<DROP table="K21" />
</NPC>
<!-- Kobold Shaman -->
<NPC id="22"
name="STR:NPC_NAME_22"
desc="STR:NPC_DESC_22"
meshname="kobold_shaman"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="40"
max_ap="40"
int="2"
agility="4"
view_angle="25"
dc="5"
offensetype="2"
dyingtime="5">
<COLLISION radius="33" height="130" />
<ATTACK type="melee" range="135" weaponitem_id="300022" />
<FLAG never_attack_cancel="true" />
<SPEED default="250" />
<SKILL id="221" /> <!--- Posion Nail --->
<SKILL id="222" /> <!--- Posion Ball --->
<DROP table="K22" />
</NPC>
<!-- Bigger Kobold -->
<NPC id="23"
name="STR:NPC_NAME_23"
desc="STR:NPC_DESC_23"
meshname="koboltC"
scale="1.3 1.3 1.3"
grade="veteran"
max_hp="90"
max_ap="90"
int="2"
agility="1"
view_angle="15"
dc="6"
offensetype="1"
dyingtime="5">
<COLLISION radius="38" height="150" />
<ATTACK type="melee" range="230" weaponitem_id="300023" />
<FLAG never_pushed="true" never_attack_cancel="true" />
<SPEED default="400" />
<DROP table="K23" />
</NPC>
<!-- Mini Boss Kobold -->
<NPC id="24"
name="STR:NPC_NAME_24"
desc="STR:NPC_DESC_24"
meshname="koboltK"
scale="1.0 1.0 1.0"
grade="elite"
max_hp="160"
max_ap="160"
int="2"
agility="2"
view_angle="15"
dc="7"
offensetype="1"
dyingtime="5">
<COLLISION radius="60" height="250" />
<ATTACK type="melee" range="370" weaponitem_id="300024" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="300" rotate="4.0" />
<SKILL id="241" /> <!--- Posion Storm --->
<DROP table="K24" />
</NPC>
<!-- Kobold King -->
<NPC id="25"
name="STR:NPC_NAME_25"
desc="STR:NPC_DESC_25"
meshname="koboltK"
scale="1.8 1.8 1.8"
grade="boss"
max_hp="5000"
max_ap="7000"
int="2"
agility="3"
view_angle="15"
dc="50"
offensetype="1"
dyingtime="5">
<COLLISION radius="60" height="250" pick="true" tremble="10" />
<ATTACK type="melee" range="550" weaponitem_id="300025" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="300" rotate="3.0" />
<SKILL id="251" /> <!--- Poison Ball --->
<SKILL id="252" /> <!--- Healing --->
<DROP table="K25" />
</NPC>
<!-- Broken Golem -->
<NPC id="26"
name="STR:NPC_NAME_26"
desc="STR:NPC_DESC_26"
meshname="golem"
scale="1.7 1.7 1.7"
grade="boss"
max_hp="7000"
max_ap="8000"
int="1"
agility="2"
view_angle="25"
dc="60"
offensetype="2"
dyingtime="5">
<COLLISION radius="50" height="305" pick="true" tremble="10" />
<ATTACK type="melee" range="400" weaponitem_id="300026" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="350" rotate="4.712" />
<SKILL id="261" /> <!--- Fire Ball --->
<SKILL id="262" /> <!--- Poison --->
<SKILL id="263" /> <!--- Poison Nova --->
<DROP table="K26" />
</NPC>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
스켈레톤
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<!-- Skeleton -->
<NPC id="31"
name="STR:NPC_NAME_31"
desc="STR:NPC_DESC_31"
meshname="skeleton"
scale="1.1 1.1 1.1"
grade="regular"
max_hp="50"
max_ap="50"
int="3"
agility="5"
view_angle="40"
dc="5"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="135" />
<ATTACK type="melee" range="180" weaponitem_id="300031" />
<SPEED default="160" rotate="2.356" />
<FLAG never_pushed="true" never_attack_cancel="true" />
<DROP table="S31" />
</NPC>
<!-- Skeleton Mage -->
<NPC id="32"
name="STR:NPC_NAME_32"
desc="STR:NPC_DESC_32"
meshname="skeletonM"
scale="0.8 0.8 0.8"
grade="regular"
max_hp="40"
max_ap="40"
int="3"
agility="5"
view_angle="25"
dc="5"
offensetype="2"
dyingtime="5">
<COLLISION radius="30" height="195" />
<ATTACK type="melee" range="120" weaponitem_id="300032" />
<SPEED default="160" rotate="2.356" />
<SKILL id="321" /> <!-- Magic Arrow -->
<SKILL id="322" /> <!-- Magic Fire -->
<DROP table="S32" />
</NPC>
<!-- Captain Skeleton -->
<NPC id="33"
name="STR:NPC_NAME_33"
desc="STR:NPC_DESC_33"
meshname="skeletonC"
scale="1.1 1.1 1.1"
grade="veteran"
max_hp="80"
max_ap="100"
int="3"
agility="3"
view_angle="25"
dc="6"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="155" />
<ATTACK type="melee" range="280" weaponitem_id="300033" />
<FLAG never_pushed="true" never_attack_cancel="true" />
<SPEED default="400" />
<DROP table="S33" />
</NPC>
<!-- Supurion -->
<NPC id="34"
name="STR:NPC_NAME_34"
desc="STR:NPC_DESC_34"
meshname="skeletonB"
scale="1.3 1.3 1.3"
grade="elite"
max_hp="200"
max_ap="100"
int="3"
agility="3"
view_angle="25"
dc="7"
offensetype="1"
dyingtime="5">
<COLLISION radius="40" height="250" tremble="10" />
<ATTACK type="melee" range="350" weaponitem_id="300034" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="500" />
<SKILL id="341" /> <!-- Earthquake Cut -->
<DROP table="S34" />
</NPC>
<!-- The Dead Body Which is Cursed(mini amenra) -->
<NPC id="35"
name="STR:NPC_NAME_35"
desc="STR:NPC_DESC_35"
meshname="theUnholy"
scale="1.6 1.6 1.6"
grade="elite"
max_hp="200"
max_ap="100"
int="3"
agility="5"
view_angle="25"
dc="8"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="150" />
<ATTACK type="melee" range="180" weaponitem_id="300035" />
<FLAG never_blasted="true" never_attack_cancel="true" />
<SPEED default="150" rotate="2.356" />
<SKILL id="351" /> <!-- Stun -->
<SKILL id="352" /> <!-- Lightning Strike -->
<SKILL id="353" /> <!-- Lightning Ball -->
<DROP table="S35" />
</NPC>
<!-- Reach phone (Mini Lich) -->
<NPC id="36"
name="STR:NPC_NAME_36"
desc="STR:NPC_DESC_36"
meshname="Lich"
scale="0.17 0.17 0.17"
grade="regular"
max_hp="40"
max_ap="0"
int="3"
agility="3"
view_angle="25"
dc="5"
offensetype="2"
dyingtime="5">
<COLLISION radius="120" height="700" tremble="5" />
<ATTACK type="melee" range="120" weaponitem_id="300036" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="200" rotate="2.452" />
<SKILL id="361" /> <!-- Flaming Inferno -->
<DROP table="S36" />
</NPC>
<!-- The shoe ferri (the boss) -->
<NPC id="37"
name="STR:NPC_NAME_37"
desc="STR:NPC_DESC_37"
meshname="skeletonB"
scale="2.1 2.1 2.1"
grade="boss"
max_hp="6000"
max_ap="7000"
int="3"
agility="2"
view_angle="15"
dc="50"
offensetype="1"
dyingtime="8">
<COLLISION radius="40" height="250" tremble="10" />
<ATTACK type="melee" range="550" weaponitem_id="300037" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="700" />
<SKILL id="371" /> <!-- Flamecast Slash -->
<SKILL id="372" /> <!-- Seismic Shock -->
<SKILL id="373" /> <!-- Flamecast Slash 2 -->
<DROP table="S37" />
</NPC>
<!-- Amenra -->
<NPC id="38"
name="STR:NPC_NAME_38"
desc="STR:NPC_DESC_38"
meshname="theUnholy"
scale="4.0 4.0 4.0"
grade="boss"
max_hp="6000"
max_ap="7000"
int="3"
agility="5"
view_angle="25"
dc="50"
offensetype="2"
dyingtime="8">
<COLLISION radius="15" height="150" tremble="5" />
<ATTACK type="melee" range="1" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="200" />
<SKILL id="381" /> <!-- Lightning Storm -->
<SKILL id="382" /> <!-- Spheric Volt -->
<SKILL id="383" /> <!-- Unholy Aura -->
<DROP table="S38" />
</NPC>
<!-- Reach (Lich) -->
<NPC id="39"
name="STR:NPC_NAME_39"
desc="STR:NPC_DESC_39"
meshname="Lich"
scale="1.0 1.0 1.0"
grade="boss"
max_hp="7000"
max_ap="7000"
int="1"
agility="1"
view_angle="20"
dc="60"
offensetype="1"
dyingtime="8">
<COLLISION radius="80" height="750" tremble="5" />
<ATTACK type="melee" range="300" weaponitem_id="300039" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="1000" rotate="5.0" />
<SKILL id="391" /> <!-- Devil's Arrow -->
<SKILL id="392" /> <!-- Dante's Breath -->
<SKILL id="393" /> <!-- Lava Dump -->
<DROP table="S39" />
</NPC>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
팜포아
특징 : 아스트라의 수수께끼 생물체로써 추운 곳에서 주로 모여산다. 얼음 계열의 마법을 잘 다루지만
그 외에 모든것들은 아직도 수수께끼이다.
보스 :
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<!-- Baby Palmpou -->
<NPC id="41"
name="STR:NPC_NAME_41"
desc="STR:NPC_DESC_41"
meshname="palmpou_baby"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="600"
max_ap="0"
int="2"
agility="2"
view_angle="25"
dc="5"
offensetype="1"
friendly="true">
<COLLISION radius="15" height="30" />
<ATTACK type="melee" range="80" hitrate="10" />
<SPEED default="150" rotate="2.356" />
<SKILL id="411" /> <!--- Ice Ball --->
<DROP table="P41" />
</NPC>
<!-- Baby Battle Palmpou -->
<NPC id="48"
name="STR:NPC_NAME_48"
desc="STR:NPC_DESC_48"
meshname="palmpou_baby"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="60"
max_ap="0"
int="2"
agility="2"
view_angle="25"
dc="5"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="40" />
<SPEED default="150" rotate="2.356" />
<SKILL id="411" /> <!--- Lesser Ice Ball --->
<DROP table="P48" />
</NPC>
<!-- Palmpoa -->
<NPC id="42"
name="STR:NPC_NAME_42"
desc="STR:NPC_DESC_42"
meshname="palmpoa"
scale="1.2 1.2 1.2"
grade="regular"
max_hp="50"
max_ap="50"
int="2"
agility="4"
view_angle="25"
dc="6"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="40" />
<SPEED default="150" rotate="2.356" />
<SKILL id="421" /> <!--- Ice Ball --->
<DROP table="P42" />
</NPC>
<!-- General Palmpoa -->
<NPC id="43"
name="STR:NPC_NAME_43"
desc="STR:NPC_DESC_43"
meshname="palmpoaH"
scale="2.0 2.0 2.0"
grade="veteran"
max_hp="100"
max_ap="100"
int="2"
agility="4"
view_angle="25"
dc="7"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="80" />
<SPEED default="150" rotate="2.356" />
<SKILL id="432" /> <!--- Lesser Blizzard --->
<DROP table="P43" />
</NPC>
<!-- General Palmpoa Boss(unused?) -->
<NPC id="46"
name="STR:NPC_NAME_46"
desc="STR:NPC_DESC_46"
meshname="palmpoaH"
scale="2.0 2.0 2.0"
grade="boss"
max_hp="3000"
max_ap="3000"
int="2"
agility="4"
view_angle="25"
dc="7"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="80" />
<SPEED default="150" rotate="2.356" />
<SKILL id="431" /> <!--- Blizzard --->
<DROP table="P46" />
</NPC>
<!-- palmpou -->
<NPC id="44"
name="STR:NPC_NAME_44"
desc="STR:NPC_DESC_44"
meshname="palmpou"
scale="3.0 3.0 3.0"
grade="elite"
max_hp="200"
max_ap="200"
int="2"
agility="4"
view_angle="25"
dc="8"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="80" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="150" rotate="2.356" />
<SKILL id="441" /> <!--- Blizzard Greater --->
<DROP table="P44" />
</NPC>
<!-- Boss Palmpou -->
<NPC id="47"
name="STR:NPC_NAME_47"
desc="STR:NPC_DESC_47"
meshname="palmpou"
scale="3.0 3.0 3.0"
grade="boss"
max_hp="6000"
max_ap="6000"
int="2"
agility="4"
view_angle="25"
dc="8"
offensetype="1">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="80" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="150" rotate="2.356" />
<SKILL id="442" /> <!--- Blizzard Greater --->
<DROP table="P47" />
</NPC>
<!-- Cursed Palmpou -->
<NPC id="45"
name="STR:NPC_NAME_45"
desc="STR:NPC_DESC_45"
meshname="cpalmpoa"
scale="2.0 2.0 2.0"
grade="boss"
max_hp="8000"
max_ap="8000"
int="1"
agility="4"
view_angle="60"
dc="50"
offensetype="1"
dyingtime="5">
<COLLISION radius="25" height="120" />
<ATTACK type="melee" range="80" />
<FLAG never_blasted="true" never_pushed="true" never_attack_cancel="true" />
<SPEED default="150" rotate="2.356" />
<SKILL id="451" /> <!--- Blizzard Greater --->
<DROP table="P45" />
</NPC>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////
이벤트용 NPC
////////////////////////////////////////////////////////////////////////////////////////////////////////
-->
<!-- baseball cap goblin -->
<NPC id="111"
name="STR:NPC_NAME_11"
desc="STR:NPC_DESC_11"
meshname="goblinE"
scale="1.0 1.0 1.0"
grade="regular"
max_hp="30"
max_ap="50"
int="4"
agility="4"
view_angle="15"
dc="5"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="110" />
<ATTACK type="melee" range="150" weaponitem_id="300011" />
<SPEED default="300" />
<DROP table="E01" />
</NPC>
<!-- Event drop Skeleton -->
<NPC id="131"
name="STR:NPC_NAME_31"
desc="STR:NPC_DESC_31"
meshname="skeleton"
scale="1.1 1.1 1.1"
grade="regular"
max_hp="50"
max_ap="50"
int="3"
agility="5"
view_angle="40"
dc="5"
offensetype="1"
dyingtime="5">
<COLLISION radius="30" height="135" />
<ATTACK type="melee" range="180" weaponitem_id="300031" />
<SPEED default="160" rotate="2.356" />
<FLAG never_pushed="true" never_attack_cancel="true" />
<DROP table="E01" />
</NPC>
</XML>
Few notes:
The higher you set the intelligence to on a unit the more it will rely on skills than melee combat, if set too high on a boss the boss will become really easy to stun lock due to the fact it will try and cast skills over melee attacks even at close range
Offense Type 1 is mainly melee and 2 is mainly skills don't get it mixed up, your NPC's will act retarded and you will end up with very easy quests
If it asks for a rotate speed, I really suggest you leave it default, or you will either be able to walk circles around the unit or it will turn on you like a cheap hooker
Make sure you set "grade="x"" right, and just generally make sure you don't miss anything from the ijji npc.xml and you'll be fine
zskill.xml
Update: Free Skill Pack Available Here
http://forum.ragezone.com/f245/npc-skills-661254/Update: Free Skill Pack Available Here
Made this thread a while back....
Code:
<SKILL id="4"
name="Generic Ice Bolt"
delay="3000"
resisttype="2"
offdlight="true"
castinganimation="2"
traileffect="icemissile" traileffecttype="1" traileffectscale="2.7" draw.track="true"
effecttype="2" hitcheck="true" guidable="false" delay="1500" velocity="2000" throughNPC="true" colradius"35"
lifetime="0" effectstarttime="1300" effecttime="3000" effectarea="2" difficulty="15" mod.damage="30"
mod.dot="0" mod.criticalrate="0" mod.speed="100" mod.antimotion="false" mod.root="false"
mod.heal="0"
<REPEAT delay="0.0" angle="0.0 0.0 0.1" />
<REPEAT delay="0.0" angle="0.0 0.0 -0.1" />
Now let's get to the fun part, learning the tags. I'll use the same code, but this time with comments on every single possiblity
Code:
<SKILL id="4"
name="Generic Ice Bolt" [COLOR="Green"]// Self explanitary[/COLOR]
delay="3000" [COLOR="Green"] // The delay before the spell can be cast again[/COLOR]
resisttype="2" [COLOR="#008000"] // The type of elemental it is. Slow/Unresistable == 0 Fire == 1 Ice == 2 3 == ??
4 == Swings and Earth and a mosh pod of others MAIET got lazy, it then skips a few. 6 == healing... there are a few more but you can tinker [/COLOR]
offdlight="true" [COLOR="Green"]// GFX shaders poop just leave it as true[/COLOR]
castinganimation="2" [COLOR="#008000"] // The animation it uses when the skill is cast, again too many to name here check out the client and existing skills [/COLOR]
traileffect="icemissile" traileffecttype="1" traileffectscale="2.7" draw.track="true" [COLOR="Green"] // The trail projectile and it's effecttype all can be found in examples of ijji zskill.xml
the scale is the size of it, if you wanted a very large trail you would make it a higher number, and visa versa for lower. draw.track="*" decides if the track should exist or not more shader poop, leave it as true [/COLOR]
effecttype="2" hitcheck="true" guidable="false" delay="1500" velocity="2000" throughNPC="true" colradius"35"
[COLOR="Green"] // The effect it has. 1 being fire 2 being ice, ect. again use the existing zskill to find out what you need. hitcheck="*" should it hit or can it miss? ThroughNPC="*" can it travel through NPC's?
colradius="*" the radius of the effect going off and hit detection, leave it around 35 unless it's a speciality skill [/COLOR]
lifetime="0" effectstarttime="1300" effecttime="3000" effectarea="2" difficulty="15" mod.damage="30"[COLOR="#008000"]
// lifetime is a bit buggy it seems, I just leave it at 0 and adjust the effect start time and end time. start time is when the effect kicks in after you're hit, and effect time is how long the whole skill is on your character
effectarea is the AOE of the skill when it strikes a target, 2 is the default for fire balls and ice bolts, again. increase for a nova or whatnot. difficulty is the reliant on int="*" in the npc.xml. mod.dmg="30" is the damage delt from the effect
[/COLOR]
mod.dot="0" mod.criticalrate="0" mod.speed="100" mod.antimotion="false" mod.root="false"
[COLOR="#008000"]// mod.dot=*" Damage over time. mod.criticalrate="*" chance to crit. mod.speed"*" still not sure. mod.antimoton/root are keeping your char from moving[/COLOR]
mod.heal="0" [COLOR="Green"]// heal plawks?[/COLOR]
<REPEAT delay="0.0" angle="0.0 0.0 0.1" />
<REPEAT delay="0.0" angle="0.0 0.0 -0.1" />
[COLOR="Green"]// loop the spell and shoot it off at a different angle or delay this is just a 3 round burst ice blast[/COLOR]
Just noticed I forgot to tag Velocity it's the projectiles move speed.
zitem.xml
You really should know how to make items by now. Only thing extra you need to know is that you don't add meshnames to the weapon as the models have the weapons built into their models
zquestitem.xml
Items that you use for sacrifices or I believe you can make the quest items that are dropped in here
Code:
ITEM id="200028" name="Goblin Spellbook" level="0" type="book" desc="" unique="0" price="0" secrifice="1" param="0"/>
Just an example of how I format it, again just grab the type from an ijji zquestitem.xml the zitems are very simple
droptable.xml
The droptable is tied in with the NPC.xml as in the npc.xml it asks for which droptable you want the NPC to use, the droptable can be a hassle but hey, what can you do
Code:
<XML id="droptable">
<DROPSET id="1" name="1">
<ITEMSET QL="0">
<ITEM id="200019" rate="0.01"/>
<ITEM id="mag1" rate="0.03"/>
<ITEM id="hp1" rate="0.25"/>
<ITEM id="ap1" rate="0.25"/>
</ITEMSET>
<ITEMSET QL="1">
<ITEM id="200019" rate="0.01"/>
<ITEM id="mag1" rate="0.03"/>
<ITEM id="hp1" rate="0.25"/>
<ITEM id="ap1" rate="0.25"/>
</ITEMSET>
</DROPSET>
You can use any world item spawns in here, or any item ID's. Just try not to duplicate or it gets a bit buggy. You gotta make quite a few of these as you don't want all the NPC's to drop the same world items or quest items. It's a hassle but isn't all XML work a hassle?
scenario.xml
Saving the worst for last, I have nightmares of scenario.xml it's just so Ducking annoying and easy to mess up
Example of standard level 0 normal old quests with no items
Code:
<STANDARD_SCENARIO title="Mansion" QL="0" DC="2" mapset="Mansion" XP="10000" BP="10">
<MAP dice="1" key_sector="101">
<NPCSET_ARRAY>002/002/002</NPCSET_ARRAY>
</MAP>
<MAP dice="2" key_sector="101">
<NPCSET_ARRAY>002/002/002</NPCSET_ARRAY>
</MAP>
<MAP dice="3" key_sector="102">
<NPCSET_ARRAY>002/002/002</NPCSET_ARRAY>
</MAP>
<MAP dice="4" key_sector="102">
<NPCSET_ARRAY>002/002/002</NPCSET_ARRAY>
</MAP>
<MAP dice="5" key_sector="103">
<NPCSET_ARRAY>002/002/002</NPCSET_ARRAY>
</MAP>
<MAP dice="6" key_sector="103">
<NPCSET_ARRAY>002/004/002</NPCSET_ARRAY>
</MAP>
</STANDARD_SCENARIO>
Obviously the MAP dice="#" is the round you're on
key_sector="#" is what map it takes place in, you need to go through your ijji files and grab them. I'll update this thread this weekend with lists of #'s for a lot of things I told you to "Go look for"
Your NPC Set array is the ID of your npc's. If you have #'s under 100 you have to do 00x as shown in that example as my goblins were 001-004
Now for advanced quests, or even boss quests it gets to be a bit tricky.
Code:
SPECIAL_SCENARIO id="3" title="Hades" QL="0" DC="1" mapset="Dungeon" XP="150000" BP="500">
<SACRI_ITEM itemid="200029"/>
<MAP dice="1" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
<MAP dice="2" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
<MAP dice="3" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
<MAP dice="4" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
<MAP dice="5" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
<MAP dice="6" key_sector="309" key_npc="8" boss="true">
<NPCSET_ARRAY>004</NPCSET_ARRAY>
<JACO count="15" tick="0" min_npc="0" max_npc="20">
<NPC npcid="5" rate="0.20" />
<NPC npcid="6" rate="0.30" />
<NPC npcid="7" rate="0.50" />
</JACO>
</MAP>
</SPECIAL_SCENARIO>
Once you start reading it, and understanding it. the JACO is a far better method of writing quests, but it takes a lot more time and can be easily typo'd because of that. I warn you to take your time, don't rush.
JACO is pretty intelligent you tell it how many NPC's you want in that round, and give it some NPC Id's and what % Chance you want for those NPC's to spawn and GunZ will do the math and make you a randomly generated quest each time, you can use it to re-make quests or just make simple new ones for item grinding the possibilities are endless
If you are doing a boss with units that always re spawn you can use min_npc to make sure that there is always more than #x NPC's spawned in your boss fight.
Oh, and KEYNPC is kinda broken, it's supposed to be an alternative as to how many you have to kill, but using both obviously doesn't work, and I'm not sure if they work away from each other so I've always kept it in.
And there you have it, you can now make your own basic quests, there is tons of stuff I left out, but you can learn that on your own now that you know the basics <3~
Last edited: