Merged zone vertices with XML and categorized by type.

Most data come from aCis free version.
This commit is contained in:
MobiusDevelopment 2020-02-01 22:24:25 +00:00
parent c2bf138434
commit 4b5a762ff4
79 changed files with 10945 additions and 17026 deletions

File diff suppressed because it is too large Load Diff

View File

@ -617,7 +617,7 @@
<!-- Section: Zone -->
<admin command="admin_zone_check" accessLevel="90" />
<admin command="admin_zone_reload" accessLevel="90" />
<admin command="admin_zone_visual" accessLevel="90" />
<!-- Section: Fences -->
<admin command="admin_addfence" accessLevel="100" />

View File

@ -1,273 +1,273 @@
<?xml version='1.0' encoding='utf-8'?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/Fish.xsd">
<fish id="6411" level="1" hp="100" hpRegen="4" type="1" group="1" guts="500" gutsCheckTime="5000" waitTime="20000" combatTime="24000"/><!-- Small Green Nimble Fish -->
<fish id="6412" level="1" hp="116" hpRegen="4" type="2" group="1" guts="502" gutsCheckTime="5000" waitTime="20000" combatTime="27000"/><!-- Small Green Ugly Fish -->
<fish id="6413" level="1" hp="132" hpRegen="4" type="0" group="1" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Small Green Pudgy Fish -->
<fish id="6414" level="2" hp="150" hpRegen="6" type="1" group="1" guts="506" gutsCheckTime="5000" waitTime="20000" combatTime="25000"/><!-- Green Nimble Fish -->
<fish id="6415" level="2" hp="168" hpRegen="6" type="2" group="1" guts="508" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/><!-- Green Ugly Fish -->
<fish id="6416" level="2" hp="188" hpRegen="6" type="0" group="1" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Green Pudgy Fish -->
<fish id="6417" level="3" hp="208" hpRegen="8" type="1" group="1" guts="512" gutsCheckTime="5000" waitTime="20000" combatTime="26000"/><!-- Large Green Nimble Fish -->
<fish id="6418" level="3" hp="230" hpRegen="8" type="2" group="1" guts="514" gutsCheckTime="5000" waitTime="20000" combatTime="29000"/><!-- Large Green Ugly Fish -->
<fish id="6419" level="3" hp="252" hpRegen="8" type="0" group="1" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Large Green Pudgy Fish -->
<fish id="6420" level="4" hp="276" hpRegen="10" type="1" group="1" guts="518" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/><!-- Small Jade Nimble Fish -->
<fish id="6421" level="4" hp="300" hpRegen="10" type="2" group="1" guts="520" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Small Jade Ugly Fish -->
<fish id="6422" level="4" hp="310" hpRegen="10" type="0" group="1" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Small Jade Fat Fish -->
<fish id="6423" level="5" hp="320" hpRegen="11" type="1" group="1" guts="524" gutsCheckTime="5000" waitTime="20000" combatTime="30000"/><!-- Jade Nimble Fish -->
<fish id="6424" level="5" hp="330" hpRegen="11" type="2" group="1" guts="526" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Jade Ugly Fish -->
<fish id="6425" level="5" hp="340" hpRegen="11" type="0" group="1" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Jade Fat Fish -->
<fish id="6426" level="6" hp="350" hpRegen="12" type="1" group="1" guts="530" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Big Jade Nimble Fish -->
<fish id="6427" level="6" hp="360" hpRegen="12" type="2" group="1" guts="532" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Jade Ugly Fish -->
<fish id="6428" level="6" hp="370" hpRegen="12" type="0" group="1" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Big Jade Fat Fish -->
<fish id="6429" level="7" hp="380" hpRegen="12" type="1" group="1" guts="536" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Blue Nimble Fish -->
<fish id="6430" level="7" hp="390" hpRegen="13" type="2" group="1" guts="538" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Blue Ugly Fish -->
<fish id="6431" level="7" hp="400" hpRegen="13" type="0" group="1" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Small Blue Fat Fish -->
<fish id="6432" level="8" hp="410" hpRegen="13" type="1" group="1" guts="542" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Blue Nimble Fish -->
<fish id="6433" level="8" hp="420" hpRegen="13" type="2" group="1" guts="544" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Blue Ugly Fish -->
<fish id="6434" level="8" hp="430" hpRegen="14" type="0" group="1" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Blue Fat Fish -->
<fish id="6435" level="9" hp="506" hpRegen="17" type="1" group="1" guts="548" gutsCheckTime="4000" waitTime="20000" combatTime="29000"/><!-- Big Blue Nimble Fish -->
<fish id="6436" level="9" hp="518" hpRegen="17" type="2" group="1" guts="550" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Big Blue Ugly Fish -->
<fish id="6437" level="9" hp="529" hpRegen="17" type="0" group="1" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Blue Fat Fish -->
<fish id="6438" level="10" hp="541" hpRegen="18" type="1" group="1" guts="554" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Yellow Nimble Fish -->
<fish id="6439" level="10" hp="552" hpRegen="18" type="2" group="1" guts="556" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Yellow Ugly Fish -->
<fish id="6440" level="10" hp="564" hpRegen="18" type="0" group="1" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Yellow Fat Fish -->
<fish id="6441" level="11" hp="575" hpRegen="19" type="1" group="1" guts="560" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Yellow Nimble Fish -->
<fish id="6442" level="11" hp="587" hpRegen="19" type="2" group="1" guts="562" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Yellow Ugly Fish -->
<fish id="6443" level="11" hp="598" hpRegen="19" type="0" group="1" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Yellow Fat Fish -->
<fish id="6444" level="12" hp="610" hpRegen="20" type="1" group="1" guts="566" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Big Yellow Nimble Fish -->
<fish id="6445" level="12" hp="621" hpRegen="20" type="2" group="1" guts="568" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Yellow Ugly Fish -->
<fish id="6446" level="12" hp="633" hpRegen="20" type="0" group="1" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Yellow Fat Fish -->
<fish id="6447" level="13" hp="644" hpRegen="21" type="1" group="1" guts="572" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Orange Nimble Fish -->
<fish id="6448" level="13" hp="656" hpRegen="21" type="2" group="1" guts="574" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Orange Ugly Fish -->
<fish id="6449" level="13" hp="667" hpRegen="21" type="0" group="1" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Small Orange Fat Fish -->
<fish id="6450" level="14" hp="679" hpRegen="22" type="1" group="1" guts="578" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Orange Nimble Fish -->
<fish id="6451" level="14" hp="690" hpRegen="22" type="2" group="1" guts="580" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Orange Ugly Fish -->
<fish id="6452" level="14" hp="702" hpRegen="22" type="0" group="1" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Orange Fat Fish -->
<fish id="6453" level="15" hp="713" hpRegen="25" type="1" group="1" guts="584" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Big Orange Nimble Fish -->
<fish id="6454" level="15" hp="819" hpRegen="27" type="2" group="1" guts="586" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Big Orange Ugly Fish -->
<fish id="6455" level="15" hp="832" hpRegen="28" type="0" group="1" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Big Orange Fat Fish -->
<fish id="6456" level="16" hp="845" hpRegen="29" type="1" group="1" guts="590" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Purple Nimble Fish -->
<fish id="6457" level="16" hp="858" hpRegen="29" type="2" group="1" guts="592" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Small Purple Ugly Fish -->
<fish id="6458" level="16" hp="871" hpRegen="29" type="0" group="1" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Small Purple Fat Fish -->
<fish id="6459" level="17" hp="884" hpRegen="29" type="1" group="1" guts="596" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Purple Nimble Fish -->
<fish id="6460" level="17" hp="897" hpRegen="30" type="2" group="1" guts="598" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Purple Ugly Fish -->
<fish id="6461" level="17" hp="910" hpRegen="29" type="0" group="1" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Purple Fat Fish -->
<fish id="6462" level="18" hp="923" hpRegen="31" type="1" group="1" guts="602" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Big Purple Nimble Fish -->
<fish id="6463" level="18" hp="936" hpRegen="31" type="2" group="1" guts="604" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Big Purple Ugly Fish -->
<fish id="6464" level="18" hp="949" hpRegen="31" type="0" group="1" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Big Purple Fat Fish -->
<fish id="6465" level="19" hp="962" hpRegen="34" type="1" group="1" guts="608" gutsCheckTime="3000" waitTime="20000" combatTime="28000"/><!-- Small Red Nimble Fish -->
<fish id="6466" level="19" hp="1125" hpRegen="39" type="2" group="1" guts="610" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Red Ugly Fish -->
<fish id="6467" level="19" hp="1140" hpRegen="39" type="0" group="1" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Red Fat Fish -->
<fish id="6468" level="20" hp="1155" hpRegen="40" type="1" group="1" guts="614" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Red Nimble Fish -->
<fish id="6469" level="20" hp="1170" hpRegen="40" type="2" group="1" guts="616" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Red Ugly Fish -->
<fish id="6470" level="20" hp="1185" hpRegen="40" type="0" group="1" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Red Fat Fish -->
<fish id="6471" level="21" hp="1200" hpRegen="41" type="1" group="1" guts="620" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Big Red Nimble Fish -->
<fish id="6472" level="21" hp="1215" hpRegen="42" type="2" group="1" guts="622" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Big Red Ugly Fish -->
<fish id="6473" level="21" hp="1230" hpRegen="46" type="0" group="1" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/><!-- Big Red Fat Fish -->
<fish id="6474" level="22" hp="1453" hpRegen="56" type="1" group="1" guts="626" gutsCheckTime="2000" waitTime="20000" combatTime="26000"/><!-- Small White Nimble Fish -->
<fish id="6475" level="22" hp="1470" hpRegen="54" type="2" group="1" guts="628" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small White Ugly Fish -->
<fish id="6476" level="22" hp="1488" hpRegen="55" type="0" group="1" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small White Fat Fish -->
<fish id="6477" level="23" hp="1505" hpRegen="56" type="1" group="1" guts="632" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Nimble Fish -->
<fish id="6478" level="23" hp="1523" hpRegen="56" type="2" group="1" guts="634" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Ugly Fish -->
<fish id="6479" level="23" hp="1540" hpRegen="57" type="0" group="1" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Fat Fish -->
<fish id="6480" level="24" hp="1558" hpRegen="58" type="1" group="1" guts="638" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Big White Nimble Fish -->
<fish id="6481" level="24" hp="1575" hpRegen="58" type="2" group="1" guts="640" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Big White Ugly Fish -->
<fish id="6482" level="24" hp="1593" hpRegen="59" type="0" group="1" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Big White Fat Fish -->
<fish id="6483" level="25" hp="1610" hpRegen="60" type="1" group="1" guts="644" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small Black Nimble Fish -->
<fish id="6484" level="25" hp="1628" hpRegen="60" type="2" group="1" guts="646" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small Black Ugly Fish -->
<fish id="6485" level="25" hp="1648" hpRegen="59" type="0" group="1" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/><!-- Small Black Fat Fish -->
<fish id="6486" level="26" hp="1663" hpRegen="67" type="1" group="1" guts="650" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Nimble Fish -->
<fish id="6487" level="26" hp="1872" hpRegen="75" type="2" group="1" guts="652" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Ugly Fish -->
<fish id="6488" level="26" hp="1892" hpRegen="76" type="0" group="1" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Fat Fish -->
<fish id="6489" level="27" hp="1911" hpRegen="76" type="1" group="1" guts="656" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Big Black Nimble Fish -->
<fish id="6490" level="27" hp="1931" hpRegen="77" type="2" group="1" guts="658" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Big Black Ugly Fish -->
<fish id="6491" level="27" hp="1950" hpRegen="78" type="0" group="1" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Big Black Fat Fish -->
<fish id="6492" level="1" hp="132" hpRegen="4" type="3" group="1" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Small Green Treasure Chest -->
<fish id="6493" level="2" hp="188" hpRegen="6" type="3" group="1" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Green Treasure Chest -->
<fish id="6494" level="3" hp="252" hpRegen="8" type="3" group="1" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Big Green Treasure Chest -->
<fish id="6495" level="4" hp="310" hpRegen="10" type="3" group="1" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Small Jade Treasure Chest -->
<fish id="6496" level="5" hp="340" hpRegen="11" type="3" group="1" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Jade Treasure Chest -->
<fish id="6497" level="6" hp="370" hpRegen="12" type="3" group="1" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Big Jade Treasure Chest -->
<fish id="6498" level="7" hp="400" hpRegen="13" type="3" group="1" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Small Blue Treasure Chest -->
<fish id="6499" level="8" hp="430" hpRegen="14" type="3" group="1" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Blue Treasure Chest -->
<fish id="6500" level="9" hp="529" hpRegen="17" type="3" group="1" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Blue Treasure Chest -->
<fish id="6501" level="10" hp="564" hpRegen="18" type="3" group="1" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Yellow Treasure Chest -->
<fish id="6502" level="11" hp="598" hpRegen="19" type="3" group="1" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Yellow Treasure Chest -->
<fish id="6503" level="12" hp="633" hpRegen="20" type="3" group="1" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Big Yellow Treasure Chest -->
<fish id="6504" level="13" hp="667" hpRegen="21" type="3" group="1" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Small Orange Treasure Chest -->
<fish id="6505" level="14" hp="702" hpRegen="22" type="3" group="1" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Orange Treasure Chest -->
<fish id="6506" level="15" hp="832" hpRegen="28" type="3" group="1" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Big Orange Treasure Chest -->
<fish id="6507" level="16" hp="871" hpRegen="29" type="3" group="1" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Small Purple Treasure Chest -->
<fish id="6508" level="17" hp="910" hpRegen="29" type="3" group="1" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Purple Treasure Chest -->
<fish id="6509" level="18" hp="949" hpRegen="31" type="3" group="1" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Big Purple Treasure Chest -->
<fish id="6510" level="19" hp="1140" hpRegen="39" type="3" group="1" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Red Treasure Chest -->
<fish id="6511" level="20" hp="1185" hpRegen="40" type="3" group="1" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Red Treasure Chest -->
<fish id="6512" level="21" hp="1230" hpRegen="46" type="3" group="1" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/><!-- Big Red Treasure Chest -->
<fish id="6513" level="22" hp="1488" hpRegen="55" type="3" group="1" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small White Treasure Chest -->
<fish id="6514" level="23" hp="1540" hpRegen="57" type="3" group="1" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Treasure Chest -->
<fish id="6515" level="24" hp="1593" hpRegen="59" type="3" group="1" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Big White Treasure Chest -->
<fish id="6516" level="25" hp="1648" hpRegen="59" type="3" group="1" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/><!-- Small Black Treasure Chest -->
<fish id="6517" level="26" hp="1892" hpRegen="76" type="3" group="1" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Treasure Chest -->
<fish id="6518" level="27" hp="1950" hpRegen="78" type="3" group="1" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Big Black Treasure Chest -->
<fish id="7726" level="1" hp="100" hpRegen="4" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Green Nimble Fish - For Beginners -->
<fish id="7727" level="1" hp="116" hpRegen="4" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Green Ugly Fish - For Beginners -->
<fish id="7728" level="1" hp="132" hpRegen="5" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Green Pudgy Fish - For Beginners -->
<fish id="7729" level="2" hp="150" hpRegen="5" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Green Nimble Fish - For Beginners -->
<fish id="7730" level="2" hp="168" hpRegen="6" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Green Ugly Fish - For Beginners -->
<fish id="7731" level="2" hp="188" hpRegen="7" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Green Pudgy Fish - For Beginners -->
<fish id="7732" level="3" hp="208" hpRegen="7" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Large Green Nimble Fish - For Beginners -->
<fish id="7733" level="3" hp="230" hpRegen="8" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Large Green Ugly Fish - For Beginners -->
<fish id="7734" level="3" hp="252" hpRegen="9" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Large Green Pudgy Fish - For Beginners -->
<fish id="7735" level="4" hp="276" hpRegen="10" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Jade Nimble Fish - For Beginners -->
<fish id="7736" level="4" hp="300" hpRegen="11" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Jade Ugly Fish - For Beginners -->
<fish id="7737" level="4" hp="310" hpRegen="11" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Small Jade Fat Fish - For Beginners -->
<fish id="7738" level="5" hp="320" hpRegen="11" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/><!-- Jade Nimble Fish - For Beginners -->
<fish id="7739" level="5" hp="330" hpRegen="12" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Jade Ugly Fish - For Beginners -->
<fish id="7740" level="5" hp="340" hpRegen="12" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Jade Fat Fish - For Beginners -->
<fish id="7741" level="6" hp="350" hpRegen="13" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Jade Nimble Fish - For Beginners -->
<fish id="7742" level="6" hp="360" hpRegen="13" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Jade Ugly Fish - For Beginners -->
<fish id="7743" level="6" hp="370" hpRegen="13" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Jade Fat Fish - For Beginners -->
<fish id="7744" level="7" hp="380" hpRegen="14" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Blue Nimble Fish - For Beginners -->
<fish id="7745" level="7" hp="390" hpRegen="14" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Blue Ugly Fish - For Beginners -->
<fish id="7746" level="7" hp="400" hpRegen="14" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Blue Fat Fish - For Beginners -->
<fish id="7747" level="8" hp="410" hpRegen="15" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Blue Nimble Fish - For Beginners -->
<fish id="7748" level="8" hp="420" hpRegen="15" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Blue Ugly Fish - For Beginners -->
<fish id="7749" level="8" hp="430" hpRegen="15" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Blue Fat Fish - For Beginners -->
<fish id="7750" level="9" hp="506" hpRegen="18" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Blue Nimble Fish - For Beginners -->
<fish id="7751" level="9" hp="518" hpRegen="19" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Blue Ugly Fish - For Beginners -->
<fish id="7752" level="9" hp="529" hpRegen="19" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Blue Fat Fish - For Beginners -->
<fish id="7753" level="10" hp="541" hpRegen="19" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Yellow Nimble Fish - For Beginners -->
<fish id="7754" level="10" hp="552" hpRegen="20" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Yellow Ugly Fish - For Beginners -->
<fish id="7755" level="10" hp="564" hpRegen="20" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Yellow Fat Fish - For Beginners -->
<fish id="7756" level="11" hp="575" hpRegen="21" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Yellow Nimble Fish - For Beginners -->
<fish id="7757" level="11" hp="587" hpRegen="21" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Yellow Ugly Fish - For Beginners -->
<fish id="7758" level="11" hp="598" hpRegen="21" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Yellow Fat Fish - For Beginners -->
<fish id="7759" level="12" hp="610" hpRegen="22" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Yellow Nimble Fish - For Beginners -->
<fish id="7760" level="12" hp="621" hpRegen="22" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Yellow Ugly Fish - For Beginners -->
<fish id="7761" level="12" hp="633" hpRegen="23" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Large Yellow Fat Fish - For Beginners -->
<fish id="7762" level="13" hp="644" hpRegen="23" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Orange Nimble Fish - For Beginners -->
<fish id="7763" level="13" hp="656" hpRegen="23" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/><!-- Small Orange Ugly Fish - For Beginners -->
<fish id="7764" level="13" hp="667" hpRegen="24" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Orange Fat Fish - For Beginners -->
<fish id="7765" level="14" hp="679" hpRegen="24" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Orange Nimble Fish - For Beginners -->
<fish id="7766" level="14" hp="690" hpRegen="25" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Orange Ugly Fish - For Beginners -->
<fish id="7767" level="14" hp="702" hpRegen="25" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Orange Fat Fish - For Beginners -->
<fish id="7768" level="15" hp="713" hpRegen="25" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Orange Nimble Fish - For Beginners -->
<fish id="7769" level="15" hp="819" hpRegen="29" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Orange Ugly Fish - For Beginners -->
<fish id="7770" level="15" hp="832" hpRegen="30" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Orange Fat Fish - For Beginners -->
<fish id="7771" level="16" hp="845" hpRegen="30" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Purple Nimble Fish - For Beginners -->
<fish id="7772" level="16" hp="858" hpRegen="31" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Purple Ugly Fish - For Beginners -->
<fish id="7773" level="16" hp="871" hpRegen="31" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Purple Fat Fish - For Beginners -->
<fish id="7774" level="17" hp="884" hpRegen="32" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Purple Nimble Fish - For Beginners -->
<fish id="7775" level="17" hp="897" hpRegen="32" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Purple Ugly Fish - For Beginners -->
<fish id="7776" level="17" hp="910" hpRegen="33" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Purple Fat Fish - For Beginners -->
<fish id="7777" level="18" hp="923" hpRegen="33" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Purple Nimble Fish - For Beginners -->
<fish id="7778" level="18" hp="936" hpRegen="33" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Purple Ugly Fish - For Beginners -->
<fish id="7779" level="18" hp="949" hpRegen="34" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Purple Fat Fish - For Beginners -->
<fish id="7780" level="19" hp="962" hpRegen="34" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Red Nimble Fish - For Beginners -->
<fish id="7781" level="19" hp="1125" hpRegen="40" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Red Ugly Fish - For Beginners -->
<fish id="7782" level="19" hp="1140" hpRegen="41" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Small Red Fat Fish - For Beginners -->
<fish id="7783" level="20" hp="1155" hpRegen="41" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Red Nimble Fish - For Beginners -->
<fish id="7784" level="20" hp="1170" hpRegen="42" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Red Ugly Fish - For Beginners -->
<fish id="7785" level="20" hp="1185" hpRegen="42" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Red Fat Fish - For Beginners -->
<fish id="7786" level="21" hp="1200" hpRegen="43" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Red Nimble Fish - For Beginners -->
<fish id="7787" level="21" hp="1215" hpRegen="43" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Red Ugly Fish - For Beginners -->
<fish id="7788" level="21" hp="1230" hpRegen="44" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/><!-- Large Red Fat Fish - For Beginners -->
<fish id="7789" level="22" hp="1453" hpRegen="52" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small White Nimble Fish - For Beginners -->
<fish id="7790" level="22" hp="1470" hpRegen="53" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small White Ugly Fish - For Beginners -->
<fish id="7791" level="22" hp="1488" hpRegen="53" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small White Fat Fish - For Beginners -->
<fish id="7792" level="23" hp="1505" hpRegen="54" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- White Nimble Fish - For Beginners -->
<fish id="7793" level="23" hp="1523" hpRegen="54" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- White Ugly Fish - For Beginners -->
<fish id="7794" level="23" hp="1540" hpRegen="55" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- White Fat Fish - For Beginners -->
<fish id="7795" level="24" hp="1558" hpRegen="56" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large White Nimble Fish - For Beginners -->
<fish id="7796" level="24" hp="1575" hpRegen="56" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large White Ugly Fish - For Beginners -->
<fish id="7797" level="24" hp="1593" hpRegen="57" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large White Fat Fish - For Beginners -->
<fish id="7798" level="25" hp="1610" hpRegen="58" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small Black Nimble Fish - For Beginners -->
<fish id="7799" level="25" hp="1628" hpRegen="58" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small Black Ugly Fish - For Beginners -->
<fish id="7800" level="25" hp="1645" hpRegen="59" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Small Black Fat Fish - For Beginners -->
<fish id="7801" level="26" hp="1663" hpRegen="59" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Black Nimble Fish - For Beginners -->
<fish id="7802" level="26" hp="1872" hpRegen="67" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Black Ugly Fish - For Beginners -->
<fish id="7803" level="26" hp="1892" hpRegen="68" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Black Fat Fish - For Beginners -->
<fish id="7804" level="27" hp="1911" hpRegen="68" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large Black Nimble Fish - For Beginners -->
<fish id="7805" level="27" hp="1931" hpRegen="69" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large Black Ugly Fish - For Beginners -->
<fish id="7806" level="27" hp="1950" hpRegen="70" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/><!-- Large Black Fat Fish - For Beginners -->
<fish id="8403" level="1" hp="100" hpRegen="4" type="8" group="2" guts="500" gutsCheckTime="5000" waitTime="20000" combatTime="24000"/><!-- Small Green Nimble Fish - Upper Grade -->
<fish id="8404" level="1" hp="116" hpRegen="4" type="9" group="2" guts="502" gutsCheckTime="5000" waitTime="20000" combatTime="27000"/><!-- Small Green Ugly Fish - Upper Grade -->
<fish id="8405" level="1" hp="132" hpRegen="5" type="7" group="2" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Small Green Pudgy Fish - Upper Grade -->
<fish id="8406" level="2" hp="150" hpRegen="6" type="8" group="2" guts="506" gutsCheckTime="5000" waitTime="20000" combatTime="25000"/><!-- Green Nimble Fish - Upper Grade -->
<fish id="8407" level="2" hp="168" hpRegen="6" type="9" group="2" guts="508" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/><!-- Green Ugly Fish - Upper Grade -->
<fish id="8408" level="2" hp="188" hpRegen="6" type="7" group="2" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Green Pudgy Fish - Upper Grade -->
<fish id="8409" level="3" hp="208" hpRegen="8" type="8" group="2" guts="512" gutsCheckTime="5000" waitTime="20000" combatTime="26000"/><!-- Large Green Nimble Fish - Upper Grade -->
<fish id="8410" level="3" hp="230" hpRegen="8" type="9" group="2" guts="514" gutsCheckTime="5000" waitTime="20000" combatTime="29000"/><!-- Large Green Ugly Fish - Upper Grade -->
<fish id="8411" level="3" hp="252" hpRegen="8" type="7" group="2" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Large Green Pudgy Fish - Upper Grade -->
<fish id="8412" level="4" hp="276" hpRegen="10" type="8" group="2" guts="518" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/><!-- Small Jade Nimble Fish - Upper Grade -->
<fish id="8413" level="4" hp="300" hpRegen="10" type="9" group="2" guts="520" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/><!-- Small Jade Ugly Fish - Upper Grade -->
<fish id="8414" level="4" hp="310" hpRegen="10" type="7" group="2" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/><!-- Small Jade Fat Fish - Upper Grade -->
<fish id="8415" level="5" hp="320" hpRegen="11" type="8" group="2" guts="524" gutsCheckTime="5000" waitTime="20000" combatTime="30000"/><!-- Jade Nimble Fish - Upper Grade -->
<fish id="8416" level="5" hp="330" hpRegen="11" type="9" group="2" guts="526" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Jade Ugly Fish - Upper Grade -->
<fish id="8417" level="5" hp="340" hpRegen="11" type="7" group="2" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Jade Fat Fish - Upper Grade -->
<fish id="8418" level="6" hp="350" hpRegen="12" type="8" group="2" guts="530" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Large Jade Nimble Fish - Upper Grade -->
<fish id="8419" level="6" hp="360" hpRegen="12" type="9" group="2" guts="532" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Large Jade Ugly Fish - Upper Grade -->
<fish id="8420" level="6" hp="370" hpRegen="12" type="7" group="2" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Large Jade Fat Fish - Upper Grade -->
<fish id="8421" level="7" hp="380" hpRegen="12" type="8" group="2" guts="536" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Blue Nimble Fish - Upper Grade -->
<fish id="8422" level="7" hp="390" hpRegen="13" type="9" group="2" guts="538" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Blue Ugly Fish - Upper Grade -->
<fish id="8423" level="7" hp="400" hpRegen="13" type="7" group="2" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Small Blue Fat Fish - Upper Grade -->
<fish id="8424" level="8" hp="410" hpRegen="13" type="8" group="2" guts="542" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Blue Nimble Fish - Upper Grade -->
<fish id="8425" level="8" hp="420" hpRegen="13" type="9" group="2" guts="544" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/><!-- Blue Ugly Fish - Upper Grade -->
<fish id="8426" level="8" hp="430" hpRegen="14" type="7" group="2" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Blue Fat Fish - Upper Grade -->
<fish id="8427" level="9" hp="506" hpRegen="17" type="8" group="2" guts="548" gutsCheckTime="4000" waitTime="20000" combatTime="29000"/><!-- Large Blue Nimble Fish - Upper Grade -->
<fish id="8428" level="9" hp="518" hpRegen="17" type="9" group="2" guts="550" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Large Blue Ugly Fish - Upper Grade -->
<fish id="8429" level="9" hp="529" hpRegen="17" type="7" group="2" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Large Blue Fat Fish - Upper Grade -->
<fish id="8430" level="10" hp="541" hpRegen="18" type="8" group="2" guts="554" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Yellow Nimble Fish - Upper Grade -->
<fish id="8431" level="10" hp="552" hpRegen="18" type="9" group="2" guts="556" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Yellow Ugly Fish - Upper Grade -->
<fish id="8432" level="10" hp="564" hpRegen="18" type="7" group="2" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Yellow Fat Fish - Upper Grade -->
<fish id="8433" level="11" hp="575" hpRegen="19" type="8" group="2" guts="560" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Yellow Nimble Fish - Upper Grade -->
<fish id="8434" level="11" hp="587" hpRegen="19" type="9" group="2" guts="562" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Yellow Ugly Fish - Upper Grade -->
<fish id="8435" level="11" hp="598" hpRegen="19" type="7" group="2" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Yellow Fat Fish - Upper Grade -->
<fish id="8436" level="12" hp="610" hpRegen="20" type="8" group="2" guts="566" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Large Yellow Nimble Fish - Upper Grade -->
<fish id="8437" level="12" hp="621" hpRegen="20" type="9" group="2" guts="568" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Large Yellow Ugly Fish - Upper Grade -->
<fish id="8438" level="12" hp="633" hpRegen="20" type="7" group="2" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Large Yellow Fat Fish - Upper Grade -->
<fish id="8439" level="13" hp="644" hpRegen="21" type="8" group="2" guts="572" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/><!-- Small Orange Nimble Fish - Upper Grade -->
<fish id="8440" level="13" hp="656" hpRegen="21" type="9" group="2" guts="574" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/><!-- Small Orange Ugly Fish - Upper Grade -->
<fish id="8441" level="13" hp="667" hpRegen="21" type="7" group="2" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Small Orange Fat Fish - Upper Grade -->
<fish id="8442" level="14" hp="679" hpRegen="22" type="8" group="2" guts="578" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Orange Nimble Fish - Upper Grade -->
<fish id="8443" level="14" hp="690" hpRegen="22" type="9" group="2" guts="580" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Orange Ugly Fish - Upper Grade -->
<fish id="8444" level="14" hp="702" hpRegen="22" type="7" group="2" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/><!-- Orange Fat Fish - Upper Grade -->
<fish id="8445" level="15" hp="713" hpRegen="25" type="8" group="2" guts="584" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Large Orange Nimble Fish - Upper Grade -->
<fish id="8446" level="15" hp="819" hpRegen="27" type="9" group="2" guts="586" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Large Orange Ugly Fish - Upper Grade -->
<fish id="8447" level="15" hp="832" hpRegen="28" type="7" group="2" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Large Orange Fat Fish - Upper Grade -->
<fish id="8448" level="16" hp="845" hpRegen="29" type="8" group="2" guts="590" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Purple Nimble Fish - Upper Grade -->
<fish id="8449" level="16" hp="858" hpRegen="29" type="9" group="2" guts="592" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Small Purple Ugly Fish - Upper Grade -->
<fish id="8450" level="16" hp="871" hpRegen="29" type="7" group="2" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Small Purple Fat Fish - Upper Grade -->
<fish id="8451" level="17" hp="884" hpRegen="29" type="8" group="2" guts="596" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Purple Nimble Fish - Upper Grade -->
<fish id="8452" level="17" hp="897" hpRegen="30" type="9" group="2" guts="598" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Purple Ugly Fish - Upper Grade -->
<fish id="8453" level="17" hp="910" hpRegen="29" type="7" group="2" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Purple Fat Fish - Upper Grade -->
<fish id="8454" level="18" hp="923" hpRegen="31" type="8" group="2" guts="602" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Large Purple Nimble Fish - Upper Grade -->
<fish id="8455" level="18" hp="936" hpRegen="31" type="9" group="2" guts="604" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Large Purple Ugly Fish - Upper Grade -->
<fish id="8456" level="18" hp="949" hpRegen="31" type="7" group="2" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/><!-- Large Purple Fat Fish - Upper Grade -->
<fish id="8457" level="19" hp="962" hpRegen="34" type="8" group="2" guts="608" gutsCheckTime="3000" waitTime="20000" combatTime="28000"/><!-- Small Red Nimble Fish - Upper Grade -->
<fish id="8458" level="19" hp="1125" hpRegen="39" type="9" group="2" guts="610" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Red Ugly Fish - Upper Grade -->
<fish id="8459" level="19" hp="1140" hpRegen="39" type="7" group="2" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Small Red Fat Fish - Upper Grade -->
<fish id="8460" level="20" hp="1155" hpRegen="40" type="8" group="2" guts="614" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Red Nimble Fish - Upper Grade -->
<fish id="8461" level="20" hp="1170" hpRegen="40" type="9" group="2" guts="616" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Red Ugly Fish - Upper Grade -->
<fish id="8462" level="20" hp="1185" hpRegen="40" type="7" group="2" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/><!-- Red Fat Fish - Upper Grade -->
<fish id="8463" level="21" hp="1200" hpRegen="41" type="8" group="2" guts="620" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Large Red Nimble Fish - Upper Grade -->
<fish id="8464" level="21" hp="1215" hpRegen="42" type="9" group="2" guts="622" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/><!-- Large Red Ugly Fish - Upper Grade -->
<fish id="8465" level="21" hp="1230" hpRegen="46" type="7" group="2" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/><!-- Large Red Fat Fish - Upper Grade -->
<fish id="8466" level="22" hp="1453" hpRegen="56" type="8" group="2" guts="626" gutsCheckTime="2000" waitTime="20000" combatTime="26000"/><!-- Small White Nimble Fish - Upper Grade -->
<fish id="8467" level="22" hp="1470" hpRegen="54" type="9" group="2" guts="628" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small White Ugly Fish - Upper Grade -->
<fish id="8468" level="22" hp="1488" hpRegen="55" type="7" group="2" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small White Fat Fish - Upper Grade -->
<fish id="8469" level="23" hp="1505" hpRegen="56" type="8" group="2" guts="632" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Nimble Fish - Upper Grade -->
<fish id="8470" level="23" hp="1523" hpRegen="56" type="9" group="2" guts="634" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Ugly Fish - Upper Grade -->
<fish id="8471" level="23" hp="1540" hpRegen="57" type="7" group="2" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- White Fat Fish - Upper Grade -->
<fish id="8472" level="24" hp="1558" hpRegen="58" type="8" group="2" guts="638" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- High Grade - Large White Nimble Fish -->
<fish id="8473" level="24" hp="1575" hpRegen="58" type="9" group="2" guts="640" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Large White Ugly Fish - Upper Grade -->
<fish id="8474" level="24" hp="1593" hpRegen="59" type="7" group="2" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Large White Fat Fish - Upper Grade -->
<fish id="8475" level="25" hp="1610" hpRegen="60" type="8" group="2" guts="644" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small Black Nimble Fish - Upper Grade -->
<fish id="8476" level="25" hp="1628" hpRegen="60" type="9" group="2" guts="646" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/><!-- Small Black Ugly Fish - Upper Grade -->
<fish id="8477" level="25" hp="1648" hpRegen="59" type="7" group="2" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/><!-- Small Black Fat Fish - Upper Grade -->
<fish id="8478" level="26" hp="1663" hpRegen="67" type="8" group="2" guts="650" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Nimble Fish - Upper Grade -->
<fish id="8479" level="26" hp="1872" hpRegen="75" type="9" group="2" guts="652" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Ugly Fish - Upper Grade -->
<fish id="8480" level="26" hp="1892" hpRegen="76" type="7" group="2" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Black Fat Fish - Upper Grade -->
<fish id="8481" level="27" hp="1911" hpRegen="76" type="8" group="2" guts="656" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Large Black Nimble Fish - Upper Grade -->
<fish id="8482" level="27" hp="1931" hpRegen="77" type="9" group="2" guts="658" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Large Black Ugly Fish - Upper Grade -->
<fish id="8483" level="27" hp="1950" hpRegen="78" type="7" group="2" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/><!-- Large Black Fat Fish - Upper Grade -->
<fish id="6411" level="1" hp="100" hpRegen="4" type="1" group="1" guts="500" gutsCheckTime="5000" waitTime="20000" combatTime="24000"/> <!-- Small Green Nimble Fish -->
<fish id="6412" level="1" hp="116" hpRegen="4" type="2" group="1" guts="502" gutsCheckTime="5000" waitTime="20000" combatTime="27000"/> <!-- Small Green Ugly Fish -->
<fish id="6413" level="1" hp="132" hpRegen="4" type="0" group="1" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Small Green Pudgy Fish -->
<fish id="6414" level="2" hp="150" hpRegen="6" type="1" group="1" guts="506" gutsCheckTime="5000" waitTime="20000" combatTime="25000"/> <!-- Green Nimble Fish -->
<fish id="6415" level="2" hp="168" hpRegen="6" type="2" group="1" guts="508" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/> <!-- Green Ugly Fish -->
<fish id="6416" level="2" hp="188" hpRegen="6" type="0" group="1" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Green Pudgy Fish -->
<fish id="6417" level="3" hp="208" hpRegen="8" type="1" group="1" guts="512" gutsCheckTime="5000" waitTime="20000" combatTime="26000"/> <!-- Large Green Nimble Fish -->
<fish id="6418" level="3" hp="230" hpRegen="8" type="2" group="1" guts="514" gutsCheckTime="5000" waitTime="20000" combatTime="29000"/> <!-- Large Green Ugly Fish -->
<fish id="6419" level="3" hp="252" hpRegen="8" type="0" group="1" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Large Green Pudgy Fish -->
<fish id="6420" level="4" hp="276" hpRegen="10" type="1" group="1" guts="518" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/> <!-- Small Jade Nimble Fish -->
<fish id="6421" level="4" hp="300" hpRegen="10" type="2" group="1" guts="520" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Small Jade Ugly Fish -->
<fish id="6422" level="4" hp="310" hpRegen="10" type="0" group="1" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Small Jade Fat Fish -->
<fish id="6423" level="5" hp="320" hpRegen="11" type="1" group="1" guts="524" gutsCheckTime="5000" waitTime="20000" combatTime="30000"/> <!-- Jade Nimble Fish -->
<fish id="6424" level="5" hp="330" hpRegen="11" type="2" group="1" guts="526" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Jade Ugly Fish -->
<fish id="6425" level="5" hp="340" hpRegen="11" type="0" group="1" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Jade Fat Fish -->
<fish id="6426" level="6" hp="350" hpRegen="12" type="1" group="1" guts="530" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Big Jade Nimble Fish -->
<fish id="6427" level="6" hp="360" hpRegen="12" type="2" group="1" guts="532" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Jade Ugly Fish -->
<fish id="6428" level="6" hp="370" hpRegen="12" type="0" group="1" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Big Jade Fat Fish -->
<fish id="6429" level="7" hp="380" hpRegen="12" type="1" group="1" guts="536" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Blue Nimble Fish -->
<fish id="6430" level="7" hp="390" hpRegen="13" type="2" group="1" guts="538" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Blue Ugly Fish -->
<fish id="6431" level="7" hp="400" hpRegen="13" type="0" group="1" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Small Blue Fat Fish -->
<fish id="6432" level="8" hp="410" hpRegen="13" type="1" group="1" guts="542" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Blue Nimble Fish -->
<fish id="6433" level="8" hp="420" hpRegen="13" type="2" group="1" guts="544" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Blue Ugly Fish -->
<fish id="6434" level="8" hp="430" hpRegen="14" type="0" group="1" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Blue Fat Fish -->
<fish id="6435" level="9" hp="506" hpRegen="17" type="1" group="1" guts="548" gutsCheckTime="4000" waitTime="20000" combatTime="29000"/> <!-- Big Blue Nimble Fish -->
<fish id="6436" level="9" hp="518" hpRegen="17" type="2" group="1" guts="550" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Big Blue Ugly Fish -->
<fish id="6437" level="9" hp="529" hpRegen="17" type="0" group="1" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Blue Fat Fish -->
<fish id="6438" level="10" hp="541" hpRegen="18" type="1" group="1" guts="554" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Yellow Nimble Fish -->
<fish id="6439" level="10" hp="552" hpRegen="18" type="2" group="1" guts="556" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Yellow Ugly Fish -->
<fish id="6440" level="10" hp="564" hpRegen="18" type="0" group="1" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Yellow Fat Fish -->
<fish id="6441" level="11" hp="575" hpRegen="19" type="1" group="1" guts="560" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Yellow Nimble Fish -->
<fish id="6442" level="11" hp="587" hpRegen="19" type="2" group="1" guts="562" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Yellow Ugly Fish -->
<fish id="6443" level="11" hp="598" hpRegen="19" type="0" group="1" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Yellow Fat Fish -->
<fish id="6444" level="12" hp="610" hpRegen="20" type="1" group="1" guts="566" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Big Yellow Nimble Fish -->
<fish id="6445" level="12" hp="621" hpRegen="20" type="2" group="1" guts="568" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Yellow Ugly Fish -->
<fish id="6446" level="12" hp="633" hpRegen="20" type="0" group="1" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Yellow Fat Fish -->
<fish id="6447" level="13" hp="644" hpRegen="21" type="1" group="1" guts="572" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Orange Nimble Fish -->
<fish id="6448" level="13" hp="656" hpRegen="21" type="2" group="1" guts="574" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Orange Ugly Fish -->
<fish id="6449" level="13" hp="667" hpRegen="21" type="0" group="1" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Small Orange Fat Fish -->
<fish id="6450" level="14" hp="679" hpRegen="22" type="1" group="1" guts="578" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Orange Nimble Fish -->
<fish id="6451" level="14" hp="690" hpRegen="22" type="2" group="1" guts="580" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Orange Ugly Fish -->
<fish id="6452" level="14" hp="702" hpRegen="22" type="0" group="1" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Orange Fat Fish -->
<fish id="6453" level="15" hp="713" hpRegen="25" type="1" group="1" guts="584" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Big Orange Nimble Fish -->
<fish id="6454" level="15" hp="819" hpRegen="27" type="2" group="1" guts="586" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Big Orange Ugly Fish -->
<fish id="6455" level="15" hp="832" hpRegen="28" type="0" group="1" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Big Orange Fat Fish -->
<fish id="6456" level="16" hp="845" hpRegen="29" type="1" group="1" guts="590" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Purple Nimble Fish -->
<fish id="6457" level="16" hp="858" hpRegen="29" type="2" group="1" guts="592" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Small Purple Ugly Fish -->
<fish id="6458" level="16" hp="871" hpRegen="29" type="0" group="1" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Small Purple Fat Fish -->
<fish id="6459" level="17" hp="884" hpRegen="29" type="1" group="1" guts="596" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Purple Nimble Fish -->
<fish id="6460" level="17" hp="897" hpRegen="30" type="2" group="1" guts="598" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Purple Ugly Fish -->
<fish id="6461" level="17" hp="910" hpRegen="29" type="0" group="1" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Purple Fat Fish -->
<fish id="6462" level="18" hp="923" hpRegen="31" type="1" group="1" guts="602" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Big Purple Nimble Fish -->
<fish id="6463" level="18" hp="936" hpRegen="31" type="2" group="1" guts="604" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Big Purple Ugly Fish -->
<fish id="6464" level="18" hp="949" hpRegen="31" type="0" group="1" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Big Purple Fat Fish -->
<fish id="6465" level="19" hp="962" hpRegen="34" type="1" group="1" guts="608" gutsCheckTime="3000" waitTime="20000" combatTime="28000"/> <!-- Small Red Nimble Fish -->
<fish id="6466" level="19" hp="1125" hpRegen="39" type="2" group="1" guts="610" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Red Ugly Fish -->
<fish id="6467" level="19" hp="1140" hpRegen="39" type="0" group="1" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Red Fat Fish -->
<fish id="6468" level="20" hp="1155" hpRegen="40" type="1" group="1" guts="614" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Red Nimble Fish -->
<fish id="6469" level="20" hp="1170" hpRegen="40" type="2" group="1" guts="616" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Red Ugly Fish -->
<fish id="6470" level="20" hp="1185" hpRegen="40" type="0" group="1" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Red Fat Fish -->
<fish id="6471" level="21" hp="1200" hpRegen="41" type="1" group="1" guts="620" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Big Red Nimble Fish -->
<fish id="6472" level="21" hp="1215" hpRegen="42" type="2" group="1" guts="622" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Big Red Ugly Fish -->
<fish id="6473" level="21" hp="1230" hpRegen="46" type="0" group="1" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/> <!-- Big Red Fat Fish -->
<fish id="6474" level="22" hp="1453" hpRegen="56" type="1" group="1" guts="626" gutsCheckTime="2000" waitTime="20000" combatTime="26000"/> <!-- Small White Nimble Fish -->
<fish id="6475" level="22" hp="1470" hpRegen="54" type="2" group="1" guts="628" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small White Ugly Fish -->
<fish id="6476" level="22" hp="1488" hpRegen="55" type="0" group="1" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small White Fat Fish -->
<fish id="6477" level="23" hp="1505" hpRegen="56" type="1" group="1" guts="632" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Nimble Fish -->
<fish id="6478" level="23" hp="1523" hpRegen="56" type="2" group="1" guts="634" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Ugly Fish -->
<fish id="6479" level="23" hp="1540" hpRegen="57" type="0" group="1" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Fat Fish -->
<fish id="6480" level="24" hp="1558" hpRegen="58" type="1" group="1" guts="638" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Big White Nimble Fish -->
<fish id="6481" level="24" hp="1575" hpRegen="58" type="2" group="1" guts="640" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Big White Ugly Fish -->
<fish id="6482" level="24" hp="1593" hpRegen="59" type="0" group="1" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Big White Fat Fish -->
<fish id="6483" level="25" hp="1610" hpRegen="60" type="1" group="1" guts="644" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small Black Nimble Fish -->
<fish id="6484" level="25" hp="1628" hpRegen="60" type="2" group="1" guts="646" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small Black Ugly Fish -->
<fish id="6485" level="25" hp="1648" hpRegen="59" type="0" group="1" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/> <!-- Small Black Fat Fish -->
<fish id="6486" level="26" hp="1663" hpRegen="67" type="1" group="1" guts="650" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Nimble Fish -->
<fish id="6487" level="26" hp="1872" hpRegen="75" type="2" group="1" guts="652" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Ugly Fish -->
<fish id="6488" level="26" hp="1892" hpRegen="76" type="0" group="1" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Fat Fish -->
<fish id="6489" level="27" hp="1911" hpRegen="76" type="1" group="1" guts="656" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Big Black Nimble Fish -->
<fish id="6490" level="27" hp="1931" hpRegen="77" type="2" group="1" guts="658" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Big Black Ugly Fish -->
<fish id="6491" level="27" hp="1950" hpRegen="78" type="0" group="1" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Big Black Fat Fish -->
<fish id="6492" level="1" hp="132" hpRegen="4" type="3" group="1" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Small Green Treasure Chest -->
<fish id="6493" level="2" hp="188" hpRegen="6" type="3" group="1" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Green Treasure Chest -->
<fish id="6494" level="3" hp="252" hpRegen="8" type="3" group="1" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Big Green Treasure Chest -->
<fish id="6495" level="4" hp="310" hpRegen="10" type="3" group="1" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Small Jade Treasure Chest -->
<fish id="6496" level="5" hp="340" hpRegen="11" type="3" group="1" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Jade Treasure Chest -->
<fish id="6497" level="6" hp="370" hpRegen="12" type="3" group="1" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Big Jade Treasure Chest -->
<fish id="6498" level="7" hp="400" hpRegen="13" type="3" group="1" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Small Blue Treasure Chest -->
<fish id="6499" level="8" hp="430" hpRegen="14" type="3" group="1" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Blue Treasure Chest -->
<fish id="6500" level="9" hp="529" hpRegen="17" type="3" group="1" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Blue Treasure Chest -->
<fish id="6501" level="10" hp="564" hpRegen="18" type="3" group="1" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Yellow Treasure Chest -->
<fish id="6502" level="11" hp="598" hpRegen="19" type="3" group="1" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Yellow Treasure Chest -->
<fish id="6503" level="12" hp="633" hpRegen="20" type="3" group="1" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Big Yellow Treasure Chest -->
<fish id="6504" level="13" hp="667" hpRegen="21" type="3" group="1" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Small Orange Treasure Chest -->
<fish id="6505" level="14" hp="702" hpRegen="22" type="3" group="1" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Orange Treasure Chest -->
<fish id="6506" level="15" hp="832" hpRegen="28" type="3" group="1" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Big Orange Treasure Chest -->
<fish id="6507" level="16" hp="871" hpRegen="29" type="3" group="1" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Small Purple Treasure Chest -->
<fish id="6508" level="17" hp="910" hpRegen="29" type="3" group="1" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Purple Treasure Chest -->
<fish id="6509" level="18" hp="949" hpRegen="31" type="3" group="1" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Big Purple Treasure Chest -->
<fish id="6510" level="19" hp="1140" hpRegen="39" type="3" group="1" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Red Treasure Chest -->
<fish id="6511" level="20" hp="1185" hpRegen="40" type="3" group="1" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Red Treasure Chest -->
<fish id="6512" level="21" hp="1230" hpRegen="46" type="3" group="1" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/> <!-- Big Red Treasure Chest -->
<fish id="6513" level="22" hp="1488" hpRegen="55" type="3" group="1" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small White Treasure Chest -->
<fish id="6514" level="23" hp="1540" hpRegen="57" type="3" group="1" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Treasure Chest -->
<fish id="6515" level="24" hp="1593" hpRegen="59" type="3" group="1" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Big White Treasure Chest -->
<fish id="6516" level="25" hp="1648" hpRegen="59" type="3" group="1" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/> <!-- Small Black Treasure Chest -->
<fish id="6517" level="26" hp="1892" hpRegen="76" type="3" group="1" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Treasure Chest -->
<fish id="6518" level="27" hp="1950" hpRegen="78" type="3" group="1" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Big Black Treasure Chest -->
<fish id="7726" level="1" hp="100" hpRegen="4" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Green Nimble Fish - For Beginners -->
<fish id="7727" level="1" hp="116" hpRegen="4" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Green Ugly Fish - For Beginners -->
<fish id="7728" level="1" hp="132" hpRegen="5" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Green Pudgy Fish - For Beginners -->
<fish id="7729" level="2" hp="150" hpRegen="5" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Green Nimble Fish - For Beginners -->
<fish id="7730" level="2" hp="168" hpRegen="6" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Green Ugly Fish - For Beginners -->
<fish id="7731" level="2" hp="188" hpRegen="7" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Green Pudgy Fish - For Beginners -->
<fish id="7732" level="3" hp="208" hpRegen="7" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Large Green Nimble Fish - For Beginners -->
<fish id="7733" level="3" hp="230" hpRegen="8" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Large Green Ugly Fish - For Beginners -->
<fish id="7734" level="3" hp="252" hpRegen="9" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Large Green Pudgy Fish - For Beginners -->
<fish id="7735" level="4" hp="276" hpRegen="10" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Jade Nimble Fish - For Beginners -->
<fish id="7736" level="4" hp="300" hpRegen="11" type="6" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Jade Ugly Fish - For Beginners -->
<fish id="7737" level="4" hp="310" hpRegen="11" type="4" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Small Jade Fat Fish - For Beginners -->
<fish id="7738" level="5" hp="320" hpRegen="11" type="5" group="0" guts="400" gutsCheckTime="5000" waitTime="20000" combatTime="35000"/> <!-- Jade Nimble Fish - For Beginners -->
<fish id="7739" level="5" hp="330" hpRegen="12" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Jade Ugly Fish - For Beginners -->
<fish id="7740" level="5" hp="340" hpRegen="12" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Jade Fat Fish - For Beginners -->
<fish id="7741" level="6" hp="350" hpRegen="13" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Jade Nimble Fish - For Beginners -->
<fish id="7742" level="6" hp="360" hpRegen="13" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Jade Ugly Fish - For Beginners -->
<fish id="7743" level="6" hp="370" hpRegen="13" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Jade Fat Fish - For Beginners -->
<fish id="7744" level="7" hp="380" hpRegen="14" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Blue Nimble Fish - For Beginners -->
<fish id="7745" level="7" hp="390" hpRegen="14" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Blue Ugly Fish - For Beginners -->
<fish id="7746" level="7" hp="400" hpRegen="14" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Blue Fat Fish - For Beginners -->
<fish id="7747" level="8" hp="410" hpRegen="15" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Blue Nimble Fish - For Beginners -->
<fish id="7748" level="8" hp="420" hpRegen="15" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Blue Ugly Fish - For Beginners -->
<fish id="7749" level="8" hp="430" hpRegen="15" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Blue Fat Fish - For Beginners -->
<fish id="7750" level="9" hp="506" hpRegen="18" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Blue Nimble Fish - For Beginners -->
<fish id="7751" level="9" hp="518" hpRegen="19" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Blue Ugly Fish - For Beginners -->
<fish id="7752" level="9" hp="529" hpRegen="19" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Blue Fat Fish - For Beginners -->
<fish id="7753" level="10" hp="541" hpRegen="19" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Yellow Nimble Fish - For Beginners -->
<fish id="7754" level="10" hp="552" hpRegen="20" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Yellow Ugly Fish - For Beginners -->
<fish id="7755" level="10" hp="564" hpRegen="20" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Yellow Fat Fish - For Beginners -->
<fish id="7756" level="11" hp="575" hpRegen="21" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Yellow Nimble Fish - For Beginners -->
<fish id="7757" level="11" hp="587" hpRegen="21" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Yellow Ugly Fish - For Beginners -->
<fish id="7758" level="11" hp="598" hpRegen="21" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Yellow Fat Fish - For Beginners -->
<fish id="7759" level="12" hp="610" hpRegen="22" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Yellow Nimble Fish - For Beginners -->
<fish id="7760" level="12" hp="621" hpRegen="22" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Yellow Ugly Fish - For Beginners -->
<fish id="7761" level="12" hp="633" hpRegen="23" type="4" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Large Yellow Fat Fish - For Beginners -->
<fish id="7762" level="13" hp="644" hpRegen="23" type="5" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Orange Nimble Fish - For Beginners -->
<fish id="7763" level="13" hp="656" hpRegen="23" type="6" group="0" guts="400" gutsCheckTime="4000" waitTime="20000" combatTime="35000"/> <!-- Small Orange Ugly Fish - For Beginners -->
<fish id="7764" level="13" hp="667" hpRegen="24" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Orange Fat Fish - For Beginners -->
<fish id="7765" level="14" hp="679" hpRegen="24" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Orange Nimble Fish - For Beginners -->
<fish id="7766" level="14" hp="690" hpRegen="25" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Orange Ugly Fish - For Beginners -->
<fish id="7767" level="14" hp="702" hpRegen="25" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Orange Fat Fish - For Beginners -->
<fish id="7768" level="15" hp="713" hpRegen="25" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Orange Nimble Fish - For Beginners -->
<fish id="7769" level="15" hp="819" hpRegen="29" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Orange Ugly Fish - For Beginners -->
<fish id="7770" level="15" hp="832" hpRegen="30" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Orange Fat Fish - For Beginners -->
<fish id="7771" level="16" hp="845" hpRegen="30" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Purple Nimble Fish - For Beginners -->
<fish id="7772" level="16" hp="858" hpRegen="31" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Purple Ugly Fish - For Beginners -->
<fish id="7773" level="16" hp="871" hpRegen="31" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Purple Fat Fish - For Beginners -->
<fish id="7774" level="17" hp="884" hpRegen="32" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Purple Nimble Fish - For Beginners -->
<fish id="7775" level="17" hp="897" hpRegen="32" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Purple Ugly Fish - For Beginners -->
<fish id="7776" level="17" hp="910" hpRegen="33" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Purple Fat Fish - For Beginners -->
<fish id="7777" level="18" hp="923" hpRegen="33" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Purple Nimble Fish - For Beginners -->
<fish id="7778" level="18" hp="936" hpRegen="33" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Purple Ugly Fish - For Beginners -->
<fish id="7779" level="18" hp="949" hpRegen="34" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Purple Fat Fish - For Beginners -->
<fish id="7780" level="19" hp="962" hpRegen="34" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Red Nimble Fish - For Beginners -->
<fish id="7781" level="19" hp="1125" hpRegen="40" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Red Ugly Fish - For Beginners -->
<fish id="7782" level="19" hp="1140" hpRegen="41" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Small Red Fat Fish - For Beginners -->
<fish id="7783" level="20" hp="1155" hpRegen="41" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Red Nimble Fish - For Beginners -->
<fish id="7784" level="20" hp="1170" hpRegen="42" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Red Ugly Fish - For Beginners -->
<fish id="7785" level="20" hp="1185" hpRegen="42" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Red Fat Fish - For Beginners -->
<fish id="7786" level="21" hp="1200" hpRegen="43" type="5" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Red Nimble Fish - For Beginners -->
<fish id="7787" level="21" hp="1215" hpRegen="43" type="6" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Red Ugly Fish - For Beginners -->
<fish id="7788" level="21" hp="1230" hpRegen="44" type="4" group="0" guts="400" gutsCheckTime="3000" waitTime="20000" combatTime="35000"/> <!-- Large Red Fat Fish - For Beginners -->
<fish id="7789" level="22" hp="1453" hpRegen="52" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small White Nimble Fish - For Beginners -->
<fish id="7790" level="22" hp="1470" hpRegen="53" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small White Ugly Fish - For Beginners -->
<fish id="7791" level="22" hp="1488" hpRegen="53" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small White Fat Fish - For Beginners -->
<fish id="7792" level="23" hp="1505" hpRegen="54" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- White Nimble Fish - For Beginners -->
<fish id="7793" level="23" hp="1523" hpRegen="54" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- White Ugly Fish - For Beginners -->
<fish id="7794" level="23" hp="1540" hpRegen="55" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- White Fat Fish - For Beginners -->
<fish id="7795" level="24" hp="1558" hpRegen="56" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large White Nimble Fish - For Beginners -->
<fish id="7796" level="24" hp="1575" hpRegen="56" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large White Ugly Fish - For Beginners -->
<fish id="7797" level="24" hp="1593" hpRegen="57" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large White Fat Fish - For Beginners -->
<fish id="7798" level="25" hp="1610" hpRegen="58" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small Black Nimble Fish - For Beginners -->
<fish id="7799" level="25" hp="1628" hpRegen="58" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small Black Ugly Fish - For Beginners -->
<fish id="7800" level="25" hp="1645" hpRegen="59" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Small Black Fat Fish - For Beginners -->
<fish id="7801" level="26" hp="1663" hpRegen="59" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Black Nimble Fish - For Beginners -->
<fish id="7802" level="26" hp="1872" hpRegen="67" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Black Ugly Fish - For Beginners -->
<fish id="7803" level="26" hp="1892" hpRegen="68" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Black Fat Fish - For Beginners -->
<fish id="7804" level="27" hp="1911" hpRegen="68" type="5" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large Black Nimble Fish - For Beginners -->
<fish id="7805" level="27" hp="1931" hpRegen="69" type="6" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large Black Ugly Fish - For Beginners -->
<fish id="7806" level="27" hp="1950" hpRegen="70" type="4" group="0" guts="400" gutsCheckTime="2000" waitTime="20000" combatTime="35000"/> <!-- Large Black Fat Fish - For Beginners -->
<fish id="8403" level="1" hp="100" hpRegen="4" type="8" group="2" guts="500" gutsCheckTime="5000" waitTime="20000" combatTime="24000"/> <!-- Small Green Nimble Fish - Upper Grade -->
<fish id="8404" level="1" hp="116" hpRegen="4" type="9" group="2" guts="502" gutsCheckTime="5000" waitTime="20000" combatTime="27000"/> <!-- Small Green Ugly Fish - Upper Grade -->
<fish id="8405" level="1" hp="132" hpRegen="5" type="7" group="2" guts="504" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Small Green Pudgy Fish - Upper Grade -->
<fish id="8406" level="2" hp="150" hpRegen="6" type="8" group="2" guts="506" gutsCheckTime="5000" waitTime="20000" combatTime="25000"/> <!-- Green Nimble Fish - Upper Grade -->
<fish id="8407" level="2" hp="168" hpRegen="6" type="9" group="2" guts="508" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/> <!-- Green Ugly Fish - Upper Grade -->
<fish id="8408" level="2" hp="188" hpRegen="6" type="7" group="2" guts="510" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Green Pudgy Fish - Upper Grade -->
<fish id="8409" level="3" hp="208" hpRegen="8" type="8" group="2" guts="512" gutsCheckTime="5000" waitTime="20000" combatTime="26000"/> <!-- Large Green Nimble Fish - Upper Grade -->
<fish id="8410" level="3" hp="230" hpRegen="8" type="9" group="2" guts="514" gutsCheckTime="5000" waitTime="20000" combatTime="29000"/> <!-- Large Green Ugly Fish - Upper Grade -->
<fish id="8411" level="3" hp="252" hpRegen="8" type="7" group="2" guts="516" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Large Green Pudgy Fish - Upper Grade -->
<fish id="8412" level="4" hp="276" hpRegen="10" type="8" group="2" guts="518" gutsCheckTime="5000" waitTime="20000" combatTime="28000"/> <!-- Small Jade Nimble Fish - Upper Grade -->
<fish id="8413" level="4" hp="300" hpRegen="10" type="9" group="2" guts="520" gutsCheckTime="5000" waitTime="20000" combatTime="31000"/> <!-- Small Jade Ugly Fish - Upper Grade -->
<fish id="8414" level="4" hp="310" hpRegen="10" type="7" group="2" guts="522" gutsCheckTime="5000" waitTime="20000" combatTime="32000"/> <!-- Small Jade Fat Fish - Upper Grade -->
<fish id="8415" level="5" hp="320" hpRegen="11" type="8" group="2" guts="524" gutsCheckTime="5000" waitTime="20000" combatTime="30000"/> <!-- Jade Nimble Fish - Upper Grade -->
<fish id="8416" level="5" hp="330" hpRegen="11" type="9" group="2" guts="526" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Jade Ugly Fish - Upper Grade -->
<fish id="8417" level="5" hp="340" hpRegen="11" type="7" group="2" guts="528" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Jade Fat Fish - Upper Grade -->
<fish id="8418" level="6" hp="350" hpRegen="12" type="8" group="2" guts="530" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Large Jade Nimble Fish - Upper Grade -->
<fish id="8419" level="6" hp="360" hpRegen="12" type="9" group="2" guts="532" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Large Jade Ugly Fish - Upper Grade -->
<fish id="8420" level="6" hp="370" hpRegen="12" type="7" group="2" guts="534" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Large Jade Fat Fish - Upper Grade -->
<fish id="8421" level="7" hp="380" hpRegen="12" type="8" group="2" guts="536" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Blue Nimble Fish - Upper Grade -->
<fish id="8422" level="7" hp="390" hpRegen="13" type="9" group="2" guts="538" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Blue Ugly Fish - Upper Grade -->
<fish id="8423" level="7" hp="400" hpRegen="13" type="7" group="2" guts="540" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Small Blue Fat Fish - Upper Grade -->
<fish id="8424" level="8" hp="410" hpRegen="13" type="8" group="2" guts="542" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Blue Nimble Fish - Upper Grade -->
<fish id="8425" level="8" hp="420" hpRegen="13" type="9" group="2" guts="544" gutsCheckTime="4000" waitTime="20000" combatTime="32000"/> <!-- Blue Ugly Fish - Upper Grade -->
<fish id="8426" level="8" hp="430" hpRegen="14" type="7" group="2" guts="546" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Blue Fat Fish - Upper Grade -->
<fish id="8427" level="9" hp="506" hpRegen="17" type="8" group="2" guts="548" gutsCheckTime="4000" waitTime="20000" combatTime="29000"/> <!-- Large Blue Nimble Fish - Upper Grade -->
<fish id="8428" level="9" hp="518" hpRegen="17" type="9" group="2" guts="550" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Large Blue Ugly Fish - Upper Grade -->
<fish id="8429" level="9" hp="529" hpRegen="17" type="7" group="2" guts="552" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Large Blue Fat Fish - Upper Grade -->
<fish id="8430" level="10" hp="541" hpRegen="18" type="8" group="2" guts="554" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Yellow Nimble Fish - Upper Grade -->
<fish id="8431" level="10" hp="552" hpRegen="18" type="9" group="2" guts="556" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Yellow Ugly Fish - Upper Grade -->
<fish id="8432" level="10" hp="564" hpRegen="18" type="7" group="2" guts="558" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Yellow Fat Fish - Upper Grade -->
<fish id="8433" level="11" hp="575" hpRegen="19" type="8" group="2" guts="560" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Yellow Nimble Fish - Upper Grade -->
<fish id="8434" level="11" hp="587" hpRegen="19" type="9" group="2" guts="562" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Yellow Ugly Fish - Upper Grade -->
<fish id="8435" level="11" hp="598" hpRegen="19" type="7" group="2" guts="564" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Yellow Fat Fish - Upper Grade -->
<fish id="8436" level="12" hp="610" hpRegen="20" type="8" group="2" guts="566" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Large Yellow Nimble Fish - Upper Grade -->
<fish id="8437" level="12" hp="621" hpRegen="20" type="9" group="2" guts="568" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Large Yellow Ugly Fish - Upper Grade -->
<fish id="8438" level="12" hp="633" hpRegen="20" type="7" group="2" guts="570" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Large Yellow Fat Fish - Upper Grade -->
<fish id="8439" level="13" hp="644" hpRegen="21" type="8" group="2" guts="572" gutsCheckTime="4000" waitTime="20000" combatTime="30000"/> <!-- Small Orange Nimble Fish - Upper Grade -->
<fish id="8440" level="13" hp="656" hpRegen="21" type="9" group="2" guts="574" gutsCheckTime="4000" waitTime="20000" combatTime="31000"/> <!-- Small Orange Ugly Fish - Upper Grade -->
<fish id="8441" level="13" hp="667" hpRegen="21" type="7" group="2" guts="576" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Small Orange Fat Fish - Upper Grade -->
<fish id="8442" level="14" hp="679" hpRegen="22" type="8" group="2" guts="578" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Orange Nimble Fish - Upper Grade -->
<fish id="8443" level="14" hp="690" hpRegen="22" type="9" group="2" guts="580" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Orange Ugly Fish - Upper Grade -->
<fish id="8444" level="14" hp="702" hpRegen="22" type="7" group="2" guts="582" gutsCheckTime="3000" waitTime="20000" combatTime="32000"/> <!-- Orange Fat Fish - Upper Grade -->
<fish id="8445" level="15" hp="713" hpRegen="25" type="8" group="2" guts="584" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Large Orange Nimble Fish - Upper Grade -->
<fish id="8446" level="15" hp="819" hpRegen="27" type="9" group="2" guts="586" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Large Orange Ugly Fish - Upper Grade -->
<fish id="8447" level="15" hp="832" hpRegen="28" type="7" group="2" guts="588" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Large Orange Fat Fish - Upper Grade -->
<fish id="8448" level="16" hp="845" hpRegen="29" type="8" group="2" guts="590" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Purple Nimble Fish - Upper Grade -->
<fish id="8449" level="16" hp="858" hpRegen="29" type="9" group="2" guts="592" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Small Purple Ugly Fish - Upper Grade -->
<fish id="8450" level="16" hp="871" hpRegen="29" type="7" group="2" guts="594" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Small Purple Fat Fish - Upper Grade -->
<fish id="8451" level="17" hp="884" hpRegen="29" type="8" group="2" guts="596" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Purple Nimble Fish - Upper Grade -->
<fish id="8452" level="17" hp="897" hpRegen="30" type="9" group="2" guts="598" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Purple Ugly Fish - Upper Grade -->
<fish id="8453" level="17" hp="910" hpRegen="29" type="7" group="2" guts="600" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Purple Fat Fish - Upper Grade -->
<fish id="8454" level="18" hp="923" hpRegen="31" type="8" group="2" guts="602" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Large Purple Nimble Fish - Upper Grade -->
<fish id="8455" level="18" hp="936" hpRegen="31" type="9" group="2" guts="604" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Large Purple Ugly Fish - Upper Grade -->
<fish id="8456" level="18" hp="949" hpRegen="31" type="7" group="2" guts="606" gutsCheckTime="3000" waitTime="20000" combatTime="31000"/> <!-- Large Purple Fat Fish - Upper Grade -->
<fish id="8457" level="19" hp="962" hpRegen="34" type="8" group="2" guts="608" gutsCheckTime="3000" waitTime="20000" combatTime="28000"/> <!-- Small Red Nimble Fish - Upper Grade -->
<fish id="8458" level="19" hp="1125" hpRegen="39" type="9" group="2" guts="610" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Red Ugly Fish - Upper Grade -->
<fish id="8459" level="19" hp="1140" hpRegen="39" type="7" group="2" guts="612" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Small Red Fat Fish - Upper Grade -->
<fish id="8460" level="20" hp="1155" hpRegen="40" type="8" group="2" guts="614" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Red Nimble Fish - Upper Grade -->
<fish id="8461" level="20" hp="1170" hpRegen="40" type="9" group="2" guts="616" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Red Ugly Fish - Upper Grade -->
<fish id="8462" level="20" hp="1185" hpRegen="40" type="7" group="2" guts="618" gutsCheckTime="3000" waitTime="20000" combatTime="30000"/> <!-- Red Fat Fish - Upper Grade -->
<fish id="8463" level="21" hp="1200" hpRegen="41" type="8" group="2" guts="620" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Large Red Nimble Fish - Upper Grade -->
<fish id="8464" level="21" hp="1215" hpRegen="42" type="9" group="2" guts="622" gutsCheckTime="3000" waitTime="20000" combatTime="29000"/> <!-- Large Red Ugly Fish - Upper Grade -->
<fish id="8465" level="21" hp="1230" hpRegen="46" type="7" group="2" guts="624" gutsCheckTime="3000" waitTime="20000" combatTime="27000"/> <!-- Large Red Fat Fish - Upper Grade -->
<fish id="8466" level="22" hp="1453" hpRegen="56" type="8" group="2" guts="626" gutsCheckTime="2000" waitTime="20000" combatTime="26000"/> <!-- Small White Nimble Fish - Upper Grade -->
<fish id="8467" level="22" hp="1470" hpRegen="54" type="9" group="2" guts="628" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small White Ugly Fish - Upper Grade -->
<fish id="8468" level="22" hp="1488" hpRegen="55" type="7" group="2" guts="630" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small White Fat Fish - Upper Grade -->
<fish id="8469" level="23" hp="1505" hpRegen="56" type="8" group="2" guts="632" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Nimble Fish - Upper Grade -->
<fish id="8470" level="23" hp="1523" hpRegen="56" type="9" group="2" guts="634" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Ugly Fish - Upper Grade -->
<fish id="8471" level="23" hp="1540" hpRegen="57" type="7" group="2" guts="636" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- White Fat Fish - Upper Grade -->
<fish id="8472" level="24" hp="1558" hpRegen="58" type="8" group="2" guts="638" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- High Grade - Large White Nimble Fish -->
<fish id="8473" level="24" hp="1575" hpRegen="58" type="9" group="2" guts="640" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Large White Ugly Fish - Upper Grade -->
<fish id="8474" level="24" hp="1593" hpRegen="59" type="7" group="2" guts="642" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Large White Fat Fish - Upper Grade -->
<fish id="8475" level="25" hp="1610" hpRegen="60" type="8" group="2" guts="644" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small Black Nimble Fish - Upper Grade -->
<fish id="8476" level="25" hp="1628" hpRegen="60" type="9" group="2" guts="646" gutsCheckTime="2000" waitTime="20000" combatTime="27000"/> <!-- Small Black Ugly Fish - Upper Grade -->
<fish id="8477" level="25" hp="1648" hpRegen="59" type="7" group="2" guts="648" gutsCheckTime="2000" waitTime="20000" combatTime="28000"/> <!-- Small Black Fat Fish - Upper Grade -->
<fish id="8478" level="26" hp="1663" hpRegen="67" type="8" group="2" guts="650" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Nimble Fish - Upper Grade -->
<fish id="8479" level="26" hp="1872" hpRegen="75" type="9" group="2" guts="652" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Ugly Fish - Upper Grade -->
<fish id="8480" level="26" hp="1892" hpRegen="76" type="7" group="2" guts="654" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Black Fat Fish - Upper Grade -->
<fish id="8481" level="27" hp="1911" hpRegen="76" type="8" group="2" guts="656" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Large Black Nimble Fish - Upper Grade -->
<fish id="8482" level="27" hp="1931" hpRegen="77" type="9" group="2" guts="658" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Large Black Ugly Fish - Upper Grade -->
<fish id="8483" level="27" hp="1950" hpRegen="78" type="7" group="2" guts="660" gutsCheckTime="2000" waitTime="20000" combatTime="25000"/> <!-- Large Black Fat Fish - Upper Grade -->
</list>

View File

@ -1,32 +1,32 @@
<?xml version='1.0' encoding='utf-8'?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/StaticObjects.xsd">
<object id="20180001" x="15258" y="15631" z="-4366" type="0" texture="town_map_darkelf_t00" mapX="339" mapY="170"/><!-- darkelf_village_001 -->
<object id="20180002" x="7557" y="18055" z="-4366" type="0" texture="town_map_darkelf_t00" mapX="54" mapY="315"/><!-- darkelf_village_002 -->
<object id="23120001" x="115462" y="-177295" z="-880" type="0" texture="town_map_dwarf_t00" mapX="165" mapY="386"/><!-- dwarven_village_001 -->
<object id="23120002" x="117450" y="-182299" z="-1488" type="0" texture="town_map_dwarf_t00" mapX="350" mapY="190"/><!-- dwarven_village_002 -->
<object id="23120003" x="116657" y="-183997" z="-1550" type="0" texture="town_map_dwarf_t00" mapX="319" mapY="110"/><!-- dwarven_village_003 -->
<object id="21190001" x="47616" y="51349" z="-2968" type="0" texture="town_map_elf_t00" mapX="430" mapY="285"/><!-- elf_village_001 -->
<object id="21190002" x="45915" y="46695" z="-2969" type="0" texture="town_map_elf_t00" mapX="248" mapY="80"/><!-- elf_village_002 -->
<object id="21190003" x="43175" y="51424" z="-2968" type="0" texture="town_map_elf_t00" mapX="110" mapY="345"/><!-- elf_village_003 -->
<object id="17250001" x="-82873" y="244808" z="-3717" type="0" texture="town_map_talking_t00" mapX="365" mapY="152"/><!-- human_village_001 -->
<object id="17250002" x="-82765" y="241439" z="-3718" type="0" texture="town_map_talking_t00" mapX="164" mapY="154"/><!-- human_village_002 -->
<object id="17250003" x="-86121" y="241452" z="-3719" type="0" texture="town_map_talking_t00" mapX="146" mapY="358"/><!-- human_village_003 -->
<object id="18140001" x="-45824" y="-116764" z="-219" type="0" texture="town_map_orc_t00" mapX="265" mapY="120"/><!-- orc_village_001 -->
<object id="18140002" x="-46504" y="-110394" z="-220" type="0" texture="town_map_orc_t00" mapX="108" mapY="383"/><!-- orc_village_002 -->
<object id="18140003" x="-47332" y="-113246" z="-220" type="0" texture="town_map_orc_t00" mapX="141" mapY="235"/><!-- orc_village_003 -->
<object id="24180017" x="147456" y="3272" z="-42" type="1" texture="none" mapX="0" mapY="0"/><!-- aden_castle_throne -->
<object id="22190010" x="83237" y="37192" z="-2286" type="1" texture="none" mapX="0" mapY="0"/><!-- oren_castle_throne -->
<object id="20220010" x="22073" y="160989" z="-2686" type="1" texture="none" mapX="0" mapY="0"/><!-- dion_castle_throne -->
<object id="23220010" x="117161" y="145097" z="-2559" type="1" texture="none" mapX="0" mapY="0"/><!-- giran_castle_throne -->
<object id="19210010" x="-18112" y="108761" z="-2492" type="1" texture="none" mapX="0" mapY="0"/><!-- gludio_castle_throne -->
<object id="23250010" x="116024" y="249768" z="-782" type="1" texture="none" mapX="0" mapY="0"/><!-- innadril_castle_throne -->
<object id="24160024" x="147459" y="-49363" z="-2132" type="1" texture="none" mapX="0" mapY="0"/><!-- goddard_castle_throne -->
<object id="22130016" x="77555" y="-153420" z="-405" type="1" texture="none" mapX="0" mapY="0"/><!-- schuttgart_castle_throne -->
<object id="20160010" x="10128" y="-49162" z="-280" type="1" texture="none" mapX="0" mapY="0"/><!-- rune_castle_throne -->
<object id="20230001" x="12110" y="182771" z="-3538" type="2" texture="none" mapX="0" mapY="0"/><!-- floran_arena_001 -->
<object id="20230002" x="12979" y="183365" z="-3538" type="2" texture="none" mapX="0" mapY="0"/><!-- floran_arena_002 -->
<object id="22220001" x="73766" y="142489" z="-3748" type="2" texture="none" mapX="0" mapY="0"/><!-- giran_arena_001 -->
<object id="22220002" x="72200" y="143102" z="-3748" type="2" texture="none" mapX="0" mapY="0"/><!-- giran_arena_002 -->
<object id="17220015" x="-88697" y="142316" z="-3621" type="2" texture="none" mapX="0" mapY="0"/><!-- gludin_arena_001 -->
<object id="17220016" x="-87136" y="142491" z="-3623" type="2" texture="none" mapX="0" mapY="0"/><!-- gludin_arena_002 -->
<object id="20180001" x="15258" y="15631" z="-4366" type="0" texture="town_map_darkelf_t00" mapX="339" mapY="170"/> <!-- darkelf_village_001 -->
<object id="20180002" x="7557" y="18055" z="-4366" type="0" texture="town_map_darkelf_t00" mapX="54" mapY="315"/> <!-- darkelf_village_002 -->
<object id="23120001" x="115462" y="-177295" z="-880" type="0" texture="town_map_dwarf_t00" mapX="165" mapY="386"/> <!-- dwarven_village_001 -->
<object id="23120002" x="117450" y="-182299" z="-1488" type="0" texture="town_map_dwarf_t00" mapX="350" mapY="190"/> <!-- dwarven_village_002 -->
<object id="23120003" x="116657" y="-183997" z="-1550" type="0" texture="town_map_dwarf_t00" mapX="319" mapY="110"/> <!-- dwarven_village_003 -->
<object id="21190001" x="47616" y="51349" z="-2968" type="0" texture="town_map_elf_t00" mapX="430" mapY="285"/> <!-- elf_village_001 -->
<object id="21190002" x="45915" y="46695" z="-2969" type="0" texture="town_map_elf_t00" mapX="248" mapY="80"/> <!-- elf_village_002 -->
<object id="21190003" x="43175" y="51424" z="-2968" type="0" texture="town_map_elf_t00" mapX="110" mapY="345"/> <!-- elf_village_003 -->
<object id="17250001" x="-82873" y="244808" z="-3717" type="0" texture="town_map_talking_t00" mapX="365" mapY="152"/> <!-- human_village_001 -->
<object id="17250002" x="-82765" y="241439" z="-3718" type="0" texture="town_map_talking_t00" mapX="164" mapY="154"/> <!-- human_village_002 -->
<object id="17250003" x="-86121" y="241452" z="-3719" type="0" texture="town_map_talking_t00" mapX="146" mapY="358"/> <!-- human_village_003 -->
<object id="18140001" x="-45824" y="-116764" z="-219" type="0" texture="town_map_orc_t00" mapX="265" mapY="120"/> <!-- orc_village_001 -->
<object id="18140002" x="-46504" y="-110394" z="-220" type="0" texture="town_map_orc_t00" mapX="108" mapY="383"/> <!-- orc_village_002 -->
<object id="18140003" x="-47332" y="-113246" z="-220" type="0" texture="town_map_orc_t00" mapX="141" mapY="235"/> <!-- orc_village_003 -->
<object id="24180017" x="147456" y="3272" z="-42" type="1" texture="none" mapX="0" mapY="0"/> <!-- aden_castle_throne -->
<object id="22190010" x="83237" y="37192" z="-2286" type="1" texture="none" mapX="0" mapY="0"/> <!-- oren_castle_throne -->
<object id="20220010" x="22073" y="160989" z="-2686" type="1" texture="none" mapX="0" mapY="0"/> <!-- dion_castle_throne -->
<object id="23220010" x="117161" y="145097" z="-2559" type="1" texture="none" mapX="0" mapY="0"/> <!-- giran_castle_throne -->
<object id="19210010" x="-18112" y="108761" z="-2492" type="1" texture="none" mapX="0" mapY="0"/> <!-- gludio_castle_throne -->
<object id="23250010" x="116024" y="249768" z="-782" type="1" texture="none" mapX="0" mapY="0"/> <!-- innadril_castle_throne -->
<object id="24160024" x="147459" y="-49363" z="-2132" type="1" texture="none" mapX="0" mapY="0"/> <!-- goddard_castle_throne -->
<object id="22130016" x="77555" y="-153420" z="-405" type="1" texture="none" mapX="0" mapY="0"/> <!-- schuttgart_castle_throne -->
<object id="20160010" x="10128" y="-49162" z="-280" type="1" texture="none" mapX="0" mapY="0"/> <!-- rune_castle_throne -->
<object id="20230001" x="12110" y="182771" z="-3538" type="2" texture="none" mapX="0" mapY="0"/> <!-- floran_arena_001 -->
<object id="20230002" x="12979" y="183365" z="-3538" type="2" texture="none" mapX="0" mapY="0"/> <!-- floran_arena_002 -->
<object id="22220001" x="73766" y="142489" z="-3748" type="2" texture="none" mapX="0" mapY="0"/> <!-- giran_arena_001 -->
<object id="22220002" x="72200" y="143102" z="-3748" type="2" texture="none" mapX="0" mapY="0"/> <!-- giran_arena_002 -->
<object id="17220015" x="-88697" y="142316" z="-3621" type="2" texture="none" mapX="0" mapY="0"/> <!-- gludin_arena_001 -->
<object id="17220016" x="-87136" y="142491" z="-3623" type="2" texture="none" mapX="0" mapY="0"/> <!-- gludin_arena_002 -->
</list>

View File

@ -0,0 +1,36 @@
<html><title>Zone Check</title><body>
<table width=270>
<tr>
<td width=45><button value="Main" action="bypass -h admin_admin" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
<td width=180><center>Zone Check</center></td>
<td width=45><button value="Back" action="bypass -h admin_admin4" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
</tr>
</table><br>
<center><table width=225>
<tr>
<td><button value="Refresh" action="bypass -h admin_zone_check" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td>
<td><button value="Visualize all" action="bypass -h admin_zone_visual all" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td>
<td><button value="Clear" action="bypass -h admin_zone_visual clear" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td>
</tr>
</table>
<br><img src="l2ui.SquareGray" width=270 height=1><br>
<table width=270>
<tr><td width=100><font color="LEVEL">Zone ID:</font></td><td align=right width=170>%ZLIST%</td></tr>
<tr><td width=100><font color="LEVEL">Map region:</font></td><td align=right width=170>%MAPREGION%</td></tr>
<tr><td width=100><font color="LEVEL">Geo region:</font></td><td align=right width=170>%GEOREGION%</td></tr>
<tr><td width=100><font color="LEVEL">Closest Town:</font></td><td align=right width=170>%CLOSESTTOWN%</td></tr>
<tr><td width=100><font color="LEVEL">Current Loc:</font></td><td align=right width=170>%CURRENTLOC%</td></tr>
</table>
<br><img src="l2ui.SquareGray" width=270 height=1><br>
<table width=270>
<tr><td width=90><font color="LEVEL">Pvp:</font></td><td width=45>%PVP%</td><td width=90><font color="LEVEL">Swamp:</font></td><td width=45>%SWAMP%</td></tr>
<tr><td width=90><font color="LEVEL">Peace:</font></td><td width=45>%PEACE%</td><td width=90><font color="LEVEL">No Summon:</font></td><td width=45>%NOSUMMONFRIEND%</td></tr>
<tr><td width=90><font color="LEVEL">Castle:</font></td><td width=45>%CASTLE%</td><td width=90><font color="LEVEL">Siege:</font></td><td width=45>%SIEGE%</td></tr>
<tr><td width=90><font color="LEVEL">Mother Tree:</font></td><td width=45>%MOTHERTREE%</td><td width=90><font color="LEVEL">Town:</font></td><td width=45>%TOWN%</td></tr>
<tr><td width=90><font color="LEVEL">ClanHall:</font></td><td width=45>%CLANHALL%</td><td width=90><font color="LEVEL">No Restart:</font></td><td width=45>%NORESTART%</td></tr>
<tr><td width=90><font color="LEVEL">No Landing:</font></td><td width=45>%NOLANDING%</td><td width=90><font color="LEVEL">Hq:</font></td><td width=45>%HQ%</td></tr>
<tr><td width=90><font color="LEVEL">Water:</font></td><td width=45>%WATER%</td><td width=90><font color="LEVEL">Danger:</font></td><td width=45>%DANGERAREA%</td></tr>
<tr><td width=90><font color="LEVEL">Jail:</font></td><td width=45>%JAIL%</td><td width=90><font color="LEVEL">Boss:</font></td><td width=45>%BOSS%</td></tr>
<tr><td width=90><font color="LEVEL">MonsterTrack:</font></td><td width=45>%MONSTERTRACK%</td><td width=90><font color="LEVEL">No Store:</font></td><td width=45>%NOSTORE%</td></tr>
</table></center><br>
</body></html>

View File

@ -1,49 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element name="zone" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element maxOccurs="unbounded" name="zone">
<xs:complexType>
<xs:sequence>
<xs:element name="stat" maxOccurs="unbounded" minOccurs="0">
<xs:element minOccurs="0" maxOccurs="unbounded" name="stat">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="val" use="optional"/>
</xs:extension>
</xs:simpleContent>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="val" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="node" maxOccurs="unbounded" minOccurs="0">
<xs:element maxOccurs="unbounded" name="node">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="X" use="optional"/>
<xs:attribute type="xs:int" name="Y" use="optional"/>
</xs:extension>
</xs:simpleContent>
<xs:attribute name="X" type="xs:int" use="required" />
<xs:attribute name="Y" type="xs:int" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="spawn" maxOccurs="unbounded" minOccurs="0">
<xs:element minOccurs="0" maxOccurs="unbounded" name="spawn">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="X" use="optional"/>
<xs:attribute type="xs:int" name="Y" use="optional"/>
<xs:attribute type="xs:short" name="Z" use="optional"/>
</xs:extension>
</xs:simpleContent>
<xs:attribute name="X" type="xs:int" use="required" />
<xs:attribute name="Y" type="xs:int" use="required" />
<xs:attribute name="Z" type="xs:short" use="required" />
<xs:attribute name="isChaotic" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="optional"/>
<xs:attribute type="xs:string" name="type" use="optional"/>
<xs:attribute type="xs:string" name="shape" use="optional"/>
<xs:attribute type="xs:short" name="minZ" use="optional"/>
<xs:attribute type="xs:short" name="maxZ" use="optional"/>
<xs:attribute type="xs:short" name="bossId" use="optional"/>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute name="type" type="xs:string" use="required" />
<xs:attribute name="shape" type="xs:string" use="required" />
<xs:attribute name="minZ" type="xs:short" use="required" />
<xs:attribute name="maxZ" type="xs:short" use="required" />
<xs:attribute name="id" type="xs:unsignedInt" use="optional" />
<xs:attribute name="bossId" type="xs:short" use="optional" />
<xs:attribute name="rad" type="xs:unsignedShort" use="optional" />
<xs:attribute name="name" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- PVP Zones -->
<zone type="ArenaZone" shape="Cuboid" minZ="-3596" maxZ="0"> <!-- dion_monster_pvp -->
<node X="11947" Y="183019" />
<node X="12943" Y="184010" />
<spawn X="12312" Y="182752" Z="-3558" />
</zone>
<zone type="ArenaZone" shape="Cuboid" minZ="-3752" maxZ="-352"> <!-- gludin_pvp -->
<node X="-88411" Y="141732" />
<node X="-87429" Y="142708" />
<spawn X="-86979" Y="142402" Z="-3643" />
</zone>
<zone type="ArenaZone" shape="Cuboid" minZ="-3850" maxZ="-350"> <!-- giran_pvp_battle -->
<node X="72493" Y="142263" />
<node X="73493" Y="143261" />
<spawn X="73890" Y="142656" Z="-3778" />
</zone>
<zone type="ArenaZone" shape="NPoly" minZ="-3498" maxZ="-3298"> <!-- coliseum_battle -->
<node X="150948" Y="46483" />
<node X="151210" Y="46186" />
<node X="151221" Y="45928" />
<node X="150737" Y="45344" />
<node X="148265" Y="45346" />
<node X="147769" Y="45942" />
<node X="147784" Y="46184" />
<node X="148047" Y="46482" />
<node X="148049" Y="46954" />
<node X="147781" Y="47256" />
<node X="147769" Y="47492" />
<node X="148263" Y="48087" />
<node X="150745" Y="48084" />
<node X="151220" Y="47493" />
<node X="151216" Y="47259" />
<node X="150947" Y="46960" />
<spawn X="147451" Y="46728" Z="-3410" />
</zone>
</list>

View File

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Boss zone Four Sepulchers -->
<zone id="12002" type="BossZone" shape="Cuboid" minZ="-7350" maxZ="-6841" bossId="-1">
<stat name="name" val="FourSepulcher" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="300000" />
<node X="181241" Y="-86443" />
<node X="192134" Y="-84575" />
</zone>
<!-- Boss zone Four Sepulchers -->
<zone id="12003" type="BossZone" shape="Cuboid" minZ="-7350" maxZ="-6841" bossId="-1">
<stat name="name" val="FourSepulcher" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="300000" />
<node X="179551" Y="-89844" />
<node X="190342" Y="-88042" />
</zone>
<!-- Boss zone Four Sepulchers -->
<zone id="12004" type="BossZone" shape="Cuboid" minZ="-7350" maxZ="-6841" bossId="-1">
<stat name="name" val="FourSepulcher" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="300000" />
<node X="172354" Y="-86630" />
<node X="174073" Y="-75565" />
</zone>
<!-- Boss zone Four Sepulchers -->
<zone id="12005" type="BossZone" shape="Cuboid" minZ="-7350" maxZ="-6841" bossId="-1">
<stat name="name" val="FourSepulcher" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="300000" />
<node X="174697" Y="-82707" />
<node X="176500" Y="-71885" />
</zone>
<!-- Boss zone Lair of Antharas -->
<zone id="12006" type="BossZone" shape="Cuboid" minZ="-8220" maxZ="-4870" bossId="29019">
<stat name="name" val="LairofAntharas" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="600000" />
<node X="173439" Y="110176" />
<node X="187346" Y="119469" />
</zone>
<!-- Boss zone Lair of Baium -->
<zone id="12007" type="BossZone" shape="NPoly" minZ="9967" maxZ="16301" bossId="29020">
<stat name="name" val="LairofBaium" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="600000" />
<node X="112987" Y="14312" />
<node X="112507" Y="14623" />
<node X="112129" Y="15551" />
<node X="111890" Y="16230" />
<node X="112067" Y="16965" />
<node X="112496" Y="17482" />
<node X="112863" Y="18120" />
<node X="113453" Y="18561" />
<node X="114135" Y="18590" />
<node X="114815" Y="18811" />
<node X="115549" Y="18648" />
<node X="116074" Y="18205" />
<node X="116776" Y="17506" />
<node X="117255" Y="17013" />
<node X="117371" Y="16298" />
<node X="117405" Y="15925" />
<node X="117236" Y="15199" />
<node X="117158" Y="14895" />
<node X="116784" Y="14260" />
<node X="116096" Y="13902" />
<node X="115159" Y="13507" />
<node X="114135" Y="13518" />
<node X="113203" Y="13898" />
</zone>
<!-- Boss zone Lair of Valakas -->
<zone id="12008" type="BossZone" shape="Cuboid" minZ="-1735" maxZ="16301" bossId="29028">
<stat name="name" val="LairofValakas" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="1800000" />
<node X="199755" Y="-124724" />
<node X="224677" Y="-103211" />
</zone>
<!-- Boss zone Lair of Lilith -->
<zone id="12009" type="BossZone" shape="Cuboid" minZ="-5600" maxZ="-3895" bossId="25283">
<stat name="name" val="LairofLilith" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="1800000" />
<node X="183986" Y="-13716" />
<node X="186097" Y="-11532" />
</zone>
<!-- Boss zone Lair of Anakim -->
<zone id="12010" type="BossZone" shape="Cuboid" minZ="-5600" maxZ="-3895" bossId="25286">
<stat name="name" val="LairofAnakim" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="1800000" />
<node X="184008" Y="-10681" />
<node X="186107" Y="-8589" />
</zone>
<!-- Boss zone Lair of Zaken -->
<zone id="12011" type="BossZone" shape="Cuboid" minZ="-3775" maxZ="-2690" bossId="29022">
<stat name="name" val="LairofZaken" />
<stat name="Flying" val="false" />
<stat name="EnabledByDefault" val="false" />
<stat name="InvadeTime" val="1800000" />
<node X="53182" Y="216945" />
<node X="57311" Y="221151" />
</zone>
<!-- Boss zone SunlightRoom -->
<zone id="12012" type="BossZone" shape="Cuboid" minZ="-2900" maxZ="-2690" bossId="-1">
<stat name="name" val="SunlightRoom" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="0" />
<node X="55794" Y="219633" />
<node X="56789" Y="220629" />
</zone>
<!-- Boss zone Lair of Sailren -->
<zone id="12013" type="BossZone" shape="Cuboid" minZ="-2075" maxZ="-1944" bossId="29065">
<stat name="name" val="LairofSailren" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="0" />
<node X="26095" Y="-8084" />
<node X="28987" Y="-5295" />
</zone>
<!-- Boss zone AltarofSacrifice -->
<zone id="12014" type="BossZone" shape="Cuboid" minZ="-10730" maxZ="-10290" bossId="-1">
<stat name="name" val="AltarofSacrifice" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="0" />
<node X="-18176" Y="-54972" />
<node X="-14614" Y="-51620" />
</zone>
<!-- Boss zone Lair of Ice Fairy Sirra -->
<zone id="12015" type="BossZone" shape="NPoly" minZ="-30000" maxZ="30000" bossId="29056">
<stat name="name" val="IceQueenCastle" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="0" />
<node X="114473" Y="-125909" />
<node X="112930" Y="-128454" />
<node X="112531" Y="-128878" />
<node X="111686" Y="-129216" />
<node X="111139" Y="-129870" />
<node X="109445" Y="-130222" />
<node X="108833" Y="-130162" />
<node X="107534" Y="-129789" />
<node X="106529" Y="-130047" />
<node X="104340" Y="-129183" />
<node X="103691" Y="-128671" />
<node X="102912" Y="-128649" />
<node X="101967" Y="-128170" />
<node X="100645" Y="-126865" />
<node X="100164" Y="-125878" />
<node X="100430" Y="-125058" />
<node X="100997" Y="-124231" />
<node X="101570" Y="-123264" />
<node X="102569" Y="-122852" />
<node X="103934" Y="-123152" />
<node X="104984" Y="-123806" />
<node X="107116" Y="-124592" />
<node X="107995" Y="-124541" />
<node X="108432" Y="-124602" />
<node X="109241" Y="-124654" />
<node X="110081" Y="-124903" />
<node X="110600" Y="-125052" />
<node X="112720" Y="-125225" />
</zone>
<!-- Boss zone Frintezza -->
<zone id="12016" type="BossZone" shape="Cuboid" minZ="-6130" maxZ="-3000" bossId="29047">
<stat name="name" val="Last Imperial Tomb" />
<stat name="Flying" val="false" />
<stat name="InvadeTime" val="1800000" />
<node X="172176" Y="-74106" />
<node X="175984" Y="-90033" />
</zone>
<!-- Boss zone Lair of Orfen -->
<zone id="12018" type="BossZone" shape="NPoly" minZ="-5796" maxZ="-3796" bossId="29014">
<stat name="name" val="LairofOrfen" />
<stat name="EnabledByDefault" val="false" />
<stat name="InvadeTime" val="0" />
<node X="43976" Y="24664" />
<node X="43284" Y="18952" />
<node X="42476" Y="18164" />
<node X="42480" Y="16448" />
<node X="43084" Y="15944" />
<node X="45140" Y="15816" />
<node X="48800" Y="15112" />
<node X="56556" Y="12040" />
<node X="59068" Y="14288" />
<node X="61064" Y="18492" />
<node X="60380" Y="23672" />
<node X="58724" Y="27412" />
<node X="55696" Y="28496" />
<node X="43976" Y="24664" />
</zone>
<!-- Boss zone Lair of Ant Queen -->
<zone id="12019" type="BossZone" shape="NPoly" minZ="-5947" maxZ="-5547" bossId="29001">
<stat name="name" val="LairofAntQueen" />
<stat name="EnabledByDefault" val="false" />
<stat name="InvadeTime" val="0" />
<node X="-21490" Y="178613" />
<node X="-22258" Y="178961" />
<node X="-22890" Y="182205" />
<node X="-22770" Y="183129" />
<node X="-21594" Y="183945" />
<node X="-20570" Y="183381" />
<node X="-20310" Y="182673" />
<node X="-20762" Y="179129" />
</zone>
</list>

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Custom Castle Teleport Zones -->
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-1827" maxZ="-1682"> <!-- Gludio Teleport -->
<stat name="castleId" val="1" />
<stat name="spawnMinX" val="-18482" />
<stat name="spawnMaxX" val="-17727" />
<stat name="spawnMinY" val="109041" />
<stat name="spawnMaxY" val="109383" />
<stat name="spawnZ" val="-2496" />
<node X="-16287" Y="109204" />
<node X="-17178" Y="109518" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-2021" maxZ="-1877"> <!-- Dion Teleport -->
<stat name="castleId" val="2" />
<stat name="spawnMinX" val="21709" />
<stat name="spawnMaxX" val="22456" />
<stat name="spawnMinY" val="160392" />
<stat name="spawnMaxY" val="160706" />
<stat name="spawnZ" val="-2690" />
<node X="20249" Y="160228" />
<node X="21132" Y="160547" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-1891" maxZ="-1750"> <!-- Giran Teleport -->
<stat name="castleId" val="3" />
<stat name="spawnMinX" val="116555" />
<stat name="spawnMaxX" val="116894" />
<stat name="spawnMinY" val="144729" />
<stat name="spawnMaxY" val="145470" />
<stat name="spawnZ" val="-2566" />
<node X="116400" Y="146030" />
<node X="116718" Y="146924" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-1621" maxZ="-1477"> <!-- Oren Teleport -->
<stat name="castleId" val="4" />
<stat name="spawnMinX" val="82633" />
<stat name="spawnMaxX" val="82957" />
<stat name="spawnMinY" val="36787" />
<stat name="spawnMaxY" val="37599" />
<stat name="spawnZ" val="-2288" />
<node X="82478" Y="38125" />
<node X="82794" Y="39020" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-2811" maxZ="-2641"> <!-- Aden Teleport -->
<stat name="castleId" val="5" />
<stat name="spawnMinX" val="147208" />
<stat name="spawnMaxX" val="147718" />
<stat name="spawnMinY" val="4359" />
<stat name="spawnMaxY" val="4806" />
<stat name="spawnZ" val="-343" />
<node X="146944" Y="4097" />
<node X="147967" Y="5112" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-117" maxZ="26"> <!-- Innadril Teleport -->
<stat name="castleId" val="6" />
<stat name="spawnMinX" val="115666" />
<stat name="spawnMaxX" val="116390" />
<stat name="spawnMinY" val="249161" />
<stat name="spawnMaxY" val="249488" />
<stat name="spawnZ" val="-786" />
<node X="114195" Y="249007" />
<node X="115081" Y="249326" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="-989" maxZ="-573"> <!-- Goddard Teleport -->
<stat name="castleId" val="7" />
<stat name="spawnMinX" val="147061" />
<stat name="spawnMaxX" val="147809" />
<stat name="spawnMinY" val="-48779" />
<stat name="spawnMaxY" val="-48198" />
<stat name="spawnZ" val="-2276" />
<node X="147293" Y="-46267" />
<node X="147644" Y="-47188" />
</zone>
<zone type="CastleTeleportZone" shape="NPoly" minZ="3800" maxZ="4250"> <!-- Rune Teleport -->
<stat name="castleId" val="8" />
<stat name="spawnMinX" val="10985" />
<stat name="spawnMaxX" val="11997" />
<stat name="spawnMinY" val="-49498" />
<stat name="spawnMaxY" val="-48780" />
<stat name="spawnZ" val="-546" />
<node X="9337" Y="-49734" />
<node X="11423" Y="-49297" />
<node X="11423" Y="-49006" />
<node X="9337" Y="-48587" />
</zone>
<zone type="CastleTeleportZone" shape="Cuboid" minZ="746" maxZ="1136"> <!-- Schuttgart Teleport -->
<stat name="castleId" val="9" />
<stat name="spawnMinX" val="77144" />
<stat name="spawnMaxX" val="77927" />
<stat name="spawnMinY" val="-152843" />
<stat name="spawnMaxY" val="-152272" />
<stat name="spawnZ" val="-544" />
<node X="77381" Y="-150335" />
<node X="77735" Y="-151256" />
</zone>
</list>

View File

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Castle Zones -->
<zone id="11200" type="CastleZone" shape="NPoly" minZ="-4448" maxZ="3551"> <!-- gludio_castle -->
<stat name="castleId" val="1" />
<node X="-22615" Y="104510" />
<node X="-13290" Y="104564" />
<node X="-13313" Y="116950" />
<node X="-22638" Y="116896" />
<!-- banish_point_list -->
<spawn X="-15881" Y="110651" Z="-2770" isChaotic="true" />
<spawn X="-15679" Y="110168" Z="-2770" isChaotic="true" />
<spawn X="-15553" Y="110780" Z="-2770" isChaotic="true" />
<spawn X="-15281" Y="110142" Z="-2770" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="-16554" Y="109382" Z="-1799" />
<spawn X="-16869" Y="109375" Z="-1799" />
<spawn X="-16659" Y="109261" Z="-1799" />
<spawn X="-16618" Y="109485" Z="-1799" />
</zone>
<zone id="11201" type="CastleZone" shape="NPoly" minZ="-4642" maxZ="4000"> <!-- dion_castle -->
<stat name="castleId" val="2" />
<node X="26575" Y="165240" />
<node X="17250" Y="165186" />
<node X="17273" Y="152800" />
<node X="26598" Y="152854" />
<!-- banish_point_list -->
<spawn X="19852" Y="159170" Z="-2770" isChaotic="true" />
<spawn X="19650" Y="159653" Z="-2770" isChaotic="true" />
<spawn X="19524" Y="159041" Z="-2770" isChaotic="true" />
<spawn X="19252" Y="159679" Z="-2770" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="20514" Y="160368" Z="-1993" />
<spawn X="20829" Y="160375" Z="-1993" />
<spawn X="20619" Y="160489" Z="-1993" />
<spawn X="20578" Y="160265" Z="-1993" />
</zone>
<zone id="11202" type="CastleZone" shape="NPoly" minZ="-4515" maxZ="19935"> <!-- giran_castle -->
<stat name="castleId" val="3" />
<node X="121412" Y="140594" />
<node X="121358" Y="149919" />
<node X="108972" Y="149896" />
<node X="109026" Y="140571" />
<!-- banish_point_list -->
<spawn X="115275" Y="147273" Z="-2770" isChaotic="true" />
<spawn X="115758" Y="147475" Z="-2770" isChaotic="true" />
<spawn X="115146" Y="147601" Z="-2770" isChaotic="true" />
<spawn X="115784" Y="147873" Z="-2770" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="116540" Y="146655" Z="-1866" />
<spawn X="116547" Y="146340" Z="-1866" />
<spawn X="116661" Y="146550" Z="-1866" />
<spawn X="116437" Y="146591" Z="-1866" />
</zone>
<zone id="11203" type="CastleZone" shape="NPoly" minZ="-4242" maxZ="19935"> <!-- oren_castle -->
<stat name="castleId" val="4" />
<node X="87488" Y="32689" />
<node X="87434" Y="42014" />
<node X="75048" Y="41991" />
<node X="75102" Y="32666" />
<!-- banish_point_list -->
<spawn X="81353" Y="39421" Z="-2770" isChaotic="true" />
<spawn X="81836" Y="39623" Z="-2770" isChaotic="true" />
<spawn X="81224" Y="39749" Z="-2770" isChaotic="true" />
<spawn X="81862" Y="40021" Z="-2770" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="82616" Y="38750" Z="-1593" />
<spawn X="82623" Y="38435" Z="-1593" />
<spawn X="82737" Y="38645" Z="-1593" />
<spawn X="82513" Y="38686" Z="-1593" />
</zone>
<zone id="11204" type="CastleZone" shape="NPoly" minZ="-3184" maxZ="6816"> <!-- aden_castle -->
<stat name="castleId" val="5" />
<node X="142431" Y="362" />
<node X="152319" Y="344" />
<node X="152282" Y="15197" />
<node X="142393" Y="15215" />
<!-- banish_point_list -->
<spawn X="151765" Y="4175" Z="-592" isChaotic="true" />
<spawn X="151555" Y="2660" Z="-592" isChaotic="true" />
<spawn X="151065" Y="1813" Z="-592" isChaotic="true" />
<spawn X="150952" Y="2615" Z="-592" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="147700" Y="4608" Z="-2784" />
<spawn X="147705" Y="4865" Z="-2784" />
<spawn X="147200" Y="4865" Z="-2784" />
<spawn X="147200" Y="4350" Z="-2784" />
<spawn X="147705" Y="4350" Z="-2784" />
</zone>
<zone id="11205" type="CastleZone" shape="NPoly" minZ="-2738" maxZ="4000"> <!-- innadrile_castle -->
<stat name="castleId" val="6" />
<node X="120526" Y="254019" />
<node X="111201" Y="253965" />
<node X="111224" Y="241579" />
<node X="120549" Y="241633" />
<!-- banish_point_list -->
<spawn X="118730" Y="243416" Z="-1060" isChaotic="true" />
<spawn X="118932" Y="242933" Z="-1060" isChaotic="true" />
<spawn X="119058" Y="243545" Z="-1060" isChaotic="true" />
<spawn X="119330" Y="242907" Z="-1060" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="114465" Y="249147" Z="-89" />
<spawn X="114780" Y="249154" Z="-89" />
<spawn X="114570" Y="249268" Z="-89" />
<spawn X="114529" Y="249044" Z="-89" />
</zone>
<zone id="11206" type="CastleZone" shape="NPoly" minZ="-3397" maxZ="2103"> <!-- goddard_castle -->
<stat name="castleId" val="7" />
<node X="141457" Y="-51510" />
<node X="151949" Y="-51510" />
<node X="151949" Y="-39107" />
<node X="145899" Y="-39107" />
<node X="141457" Y="-44407" />
<!-- banish_point_list -->
<spawn X="154848" Y="-52608" Z="-2962" isChaotic="true" />
<spawn X="156400" Y="-53808" Z="-2873" isChaotic="true" />
<spawn X="138439" Y="-45153" Z="-2064" isChaotic="true" />
<spawn X="140871" Y="-55380" Z="-3224" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="147408" Y="-46448" Z="-963" />
<spawn X="147520" Y="-46432" Z="-963" />
<spawn X="147408" Y="-46896" Z="-963" />
<spawn X="147536" Y="-46896" Z="-963" />
</zone>
<zone id="11207" type="CastleZone" shape="Cuboid" minZ="-3000" maxZ="20000"> <!-- rune_castle -->
<stat name="castleId" val="8" />
<node X="7000" Y="-55500" />
<node X="27250" Y="-41716" />
<!-- banish_point_list -->
<spawn X="38096" Y="-46976" Z="899" isChaotic="true" />
<spawn X="38608" Y="-47168" Z="899" isChaotic="true" />
<spawn X="38752" Y="-47792" Z="899" isChaotic="true" />
<spawn X="38848" Y="-48640" Z="899" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="10891" Y="-49058" Z="3890" />
<spawn X="11224" Y="-49116" Z="3890" />
<spawn X="10974" Y="-49244" Z="3890" />
<spawn X="10658" Y="-49211" Z="3890" />
</zone>
<zone id="11208" type="CastleZone" shape="Cuboid" minZ="-3800" maxZ="20000"> <!-- schuttgart_castle -->
<stat name="castleId" val="9" />
<node X="73000" Y="-156600" />
<node X="82560" Y="-144750" />
<!-- banish_point_list -->
<spawn X="76131" Y="-145636" Z="-1200" isChaotic="true" />
<spawn X="76298" Y="-145760" Z="-1184" isChaotic="true" />
<spawn X="76319" Y="-145530" Z="-1208" isChaotic="true" />
<spawn X="76104" Y="-145158" Z="-1264" isChaotic="true" />
<!-- owner_restart_point_list -->
<spawn X="77619" Y="-150591" Z="770" />
<spawn X="77487" Y="-150735" Z="770" />
<spawn X="77575" Y="-150992" Z="770" />
<spawn X="77646" Y="-150441" Z="770" />
</zone>
</list>

View File

@ -0,0 +1,642 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Clan Hall Zones -->
<zone type="ClanHallZone" shape="NPoly" minZ="-2104" maxZ="-1104"> <!-- partisan_agit001 -->
<stat name="clanHallId" val="21" />
<!-- residence_territory -->
<node X="43048" Y="108832" />
<node X="43692" Y="108204" />
<node X="44052" Y="108604" />
<node X="43976" Y="109180" />
<node X="43684" Y="109496" />
<!-- owner_restart_point_list -->
<spawn X="43370" Y="108839" Z="-1980" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3598" maxZ="-2098"> <!-- gludio_castle_agit_001 -->
<stat name="clanHallId" val="22" />
<!-- residence_territory -->
<node X="-16342" Y="123496" />
<node X="-15748" Y="123315" />
<node X="-15645" Y="123655" />
<node X="-16234" Y="123831" />
<!-- owner_restart_point_list -->
<spawn X="-16029" Y="123642" Z="-3101" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3777" maxZ="-2277"> <!-- gludio_castle_agit_002 -->
<stat name="clanHallId" val="23" />
<!-- residence_territory -->
<node X="-15098" Y="125352" />
<node X="-14789" Y="125352" />
<node X="-14789" Y="125816" />
<node X="-15098" Y="125816" />
<!-- owner_restart_point_list -->
<spawn X="-14848" Y="125552" Z="-3128" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3745" maxZ="-2245"> <!-- gludio_castle_agit_003 -->
<stat name="clanHallId" val="24" />
<!-- residence_territory -->
<node X="-14028" Y="125062" />
<node X="-13695" Y="125070" />
<node X="-13695" Y="125693" />
<node X="-14108" Y="125693" />
<node X="-14108" Y="125588" />
<node X="-14028" Y="125588" />
<!-- owner_restart_point_list -->
<spawn X="-13879" Y="125413" Z="-3128" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3809" maxZ="-2309"> <!-- gludio_castle_agit_004 -->
<stat name="clanHallId" val="25" />
<!-- residence_territory -->
<node X="-12942" Y="123872" />
<node X="-12327" Y="123872" />
<node X="-12327" Y="124231" />
<node X="-12942" Y="124231" />
<!-- owner_restart_point_list -->
<spawn X="-12710" Y="124029" Z="-3096" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4076" maxZ="-2576"> <!-- gludin_agit_001 -->
<stat name="clanHallId" val="26" />
<!-- residence_territory -->
<node X="-84691" Y="151557" />
<node X="-84261" Y="151557" />
<node X="-84261" Y="151962" />
<node X="-84071" Y="151962" />
<!-- owner_restart_point_list -->
<spawn X="-84416" Y="152192" Z="-3123" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4076" maxZ="-2576"> <!-- gludin_agit_001 -->
<stat name="clanHallId" val="26" />
<!-- residence_territory -->
<node X="-84071" Y="151850" />
<node X="-83945" Y="151850" />
<node X="-83945" Y="151962" />
<node X="-83819" Y="151962" />
<node X="-83819" Y="152328" />
<node X="-84691" Y="152328" />
<!-- owner_restart_point_list -->
<spawn X="-84416" Y="152192" Z="-3123" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4012" maxZ="-2512"> <!-- gludin_agit_002 -->
<stat name="clanHallId" val="27" />
<!-- residence_territory -->
<node X="-84367" Y="153086" />
<node X="-83983" Y="153086" />
<node X="-83977" Y="154046" />
<node X="-84367" Y="154054" />
<!-- owner_restart_point_list -->
<spawn X="-84171" Y="153385" Z="-3159" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4012" maxZ="-2512"> <!-- gludin_agit_002 -->
<stat name="clanHallId" val="27" />
<!-- residence_territory -->
<node X="-84160" Y="153086" />
<node X="-83586" Y="153085" />
<node X="-83585" Y="153564" />
<node X="-84160" Y="153561" />
<!-- owner_restart_point_list -->
<spawn X="-84171" Y="153385" Z="-3159" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4044" maxZ="-2544"> <!-- gludin_agit_003 -->
<stat name="clanHallId" val="28" />
<!-- residence_territory -->
<node X="-84463" Y="154941" />
<node X="-83987" Y="154941" />
<node X="-83986" Y="155688" />
<node X="-84463" Y="155685" />
<!-- owner_restart_point_list -->
<spawn X="-84236" Y="155520" Z="-3160" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-4044" maxZ="-2544"> <!-- gludin_agit_003 -->
<stat name="clanHallId" val="28" />
<!-- residence_territory -->
<node X="-84098" Y="155318" />
<node X="-83523" Y="155317" />
<node X="-83523" Y="155686" />
<node X="-84098" Y="155684" />
<!-- owner_restart_point_list -->
<spawn X="-84236" Y="155520" Z="-3160" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3948" maxZ="-2448"> <!-- gludin_agit_004 -->
<stat name="clanHallId" val="29" />
<!-- residence_territory -->
<node X="-79657" Y="149419" />
<node X="-79290" Y="149424" />
<node X="-79284" Y="150296" />
<node X="-79656" Y="150298" />
<!-- owner_restart_point_list -->
<spawn X="-79544" Y="150181" Z="-3038" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3948" maxZ="-2448"> <!-- gludin_agit_004 -->
<stat name="clanHallId" val="29" />
<!-- residence_territory -->
<node X="-80066" Y="149420" />
<node X="-79491" Y="149419" />
<node X="-79491" Y="149859" />
<node X="-80066" Y="149857" />
<!-- owner_restart_point_list -->
<spawn X="-79544" Y="150181" Z="-3038" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3980" maxZ="-2480"> <!-- gludin_agit_005 -->
<stat name="clanHallId" val="30" />
<!-- residence_territory -->
<node X="-79663" Y="151367" />
<node X="-79296" Y="151372" />
<node X="-79290" Y="152244" />
<node X="-79663" Y="152246" />
<!-- owner_restart_point_list -->
<spawn X="-79513" Y="151506" Z="-3041" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3980" maxZ="-2480"> <!-- gludin_agit_005 -->
<stat name="clanHallId" val="30" />
<!-- residence_territory -->
<node X="-80067" Y="151809" />
<node X="-79493" Y="151808" />
<node X="-79493" Y="152247" />
<node X="-80067" Y="152245" />
<!-- owner_restart_point_list -->
<spawn X="-79513" Y="151506" Z="-3041" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3365" maxZ="-1865"> <!-- dion_castle_agit_001 -->
<stat name="clanHallId" val="31" />
<!-- residence_territory -->
<node X="17597" Y="144823" />
<node X="17989" Y="145089" />
<node X="17828" Y="145333" />
<node X="17433" Y="145067" />
<!-- owner_restart_point_list -->
<spawn X="17760" Y="145200" Z="-3036" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3333" maxZ="-1833"> <!-- dion_castle_agit_002 -->
<stat name="clanHallId" val="32" />
<!-- residence_territory -->
<node X="18849" Y="143099" />
<node X="18897" Y="143562" />
<node X="18615" Y="143588" />
<node X="18571" Y="143128" />
<!-- owner_restart_point_list -->
<spawn X="18800" Y="143248" Z="-3010" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3397" maxZ="-1897"> <!-- dion_castle_agit_003 -->
<stat name="clanHallId" val="33" />
<!-- residence_territory -->
<node X="19942" Y="145996" />
<node X="20414" Y="145996" />
<node X="20414" Y="146292" />
<node X="19942" Y="146292" />
<!-- owner_restart_point_list -->
<spawn X="20096" Y="146064" Z="-3111" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2514" maxZ="486"> <!-- devastated_castle -->
<stat name="clanHallId" val="34" />
<!-- residence_territory -->
<node X="176793" Y="-19176" />
<node X="179892" Y="-19176" />
<node X="179892" Y="-15276" />
<node X="179417" Y="-14511" />
<node X="177270" Y="-14511" />
<node X="176793" Y="-15276" />
<!-- owner_restart_point_list -->
<spawn X="177930" Y="-18629" Z="-2240" />
<!-- chao_restart_point_list -->
<spawn X="136398" Y="28901" Z="-3582" isChaotic="true" />
<spawn X="137292" Y="28485" Z="-3290" isChaotic="true" />
<spawn X="155925" Y="28554" Z="-3164" isChaotic="true" />
<spawn X="157608" Y="23866" Z="-3760" isChaotic="true" />
<spawn X="157463" Y="28770" Z="-3371" isChaotic="true" />
<spawn X="159348" Y="28561" Z="-3400" isChaotic="true" />
<spawn X="160236" Y="14119" Z="-3892" isChaotic="true" />
<spawn X="156764" Y="13774" Z="-3960" isChaotic="true" />
<spawn X="161426" Y="23055" Z="-3670" isChaotic="true" />
<spawn X="136380" Y="21899" Z="-3647" isChaotic="true" />
<spawn X="137708" Y="15640" Z="-3800" isChaotic="true" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2920" maxZ="80"> <!-- bandits_stronghold -->
<stat name="clanHallId" val="35" />
<!-- residence_territory -->
<node X="79028" Y="-17588" />
<node X="84640" Y="-19528" />
<node X="86952" Y="-16888" />
<node X="83636" Y="-13448" />
<node X="79196" Y="-13584" />
<!-- owner_restart_point_list -->
<spawn X="80339" Y="-15442" Z="-1804" />
<!-- chao_restart_point_list -->
<spawn X="76576" Y="50151" Z="-3200" isChaotic="true" />
<spawn X="77310" Y="50317" Z="-3160" isChaotic="true" />
<spawn X="77250" Y="51285" Z="-3160" isChaotic="true" />
<spawn X="78811" Y="51106" Z="-3160" isChaotic="true" />
<spawn X="75755" Y="51372" Z="-3250" isChaotic="true" />
<spawn X="75613" Y="52504" Z="-3200" isChaotic="true" />
<spawn X="74459" Y="52441" Z="-3260" isChaotic="true" />
<spawn X="74467" Y="53354" Z="-3200" isChaotic="true" />
<spawn X="73600" Y="53918" Z="-3170" isChaotic="true" />
<spawn X="71102" Y="57875" Z="-3330" isChaotic="true" />
<spawn X="70052" Y="59300" Z="-3580" isChaotic="true" />
<spawn X="70420" Y="57480" Z="-3480" isChaotic="true" />
<spawn X="75474" Y="60125" Z="-2730" isChaotic="true" />
<spawn X="74880" Y="60818" Z="-2820" isChaotic="true" />
<spawn X="88011" Y="56589" Z="-3560" isChaotic="true" />
<spawn X="91239" Y="53120" Z="-3430" isChaotic="true" />
<spawn X="81785" Y="46306" Z="-3160" isChaotic="true" />
<spawn X="80708" Y="44609" Z="-3120" isChaotic="true" />
<spawn X="70139" Y="55885" Z="-3550" isChaotic="true" />
<spawn X="80236" Y="45675" Z="-3150" isChaotic="true" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2160" maxZ="-1960"> <!-- aden_castle_agit_001 -->
<stat name="clanHallId" val="36" />
<!-- residence_territory -->
<node X="148844" Y="22709" />
<node X="149424" Y="22709" />
<node X="149424" Y="23569" />
<node X="148844" Y="23569" />
<!-- owner_restart_point_list -->
<spawn X="149134" Y="23140" Z="-2160" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2150" maxZ="-1950"> <!-- aden_castle_agit_002 -->
<stat name="clanHallId" val="37" />
<!-- residence_territory -->
<node X="150343" Y="23193" />
<node X="150943" Y="23193" />
<node X="150943" Y="24113" />
<node X="150343" Y="24113" />
<node X="150343" Y="23693" />
<node X="150305" Y="23693" />
<node X="150305" Y="23618" />
<node X="150343" Y="23618" />
<!-- owner_restart_point_list -->
<spawn X="150644" Y="23653" Z="-2150" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2150" maxZ="-1950"> <!-- aden_castle_agit_003 -->
<stat name="clanHallId" val="38" />
<!-- residence_territory -->
<node X="145362" Y="24890" />
<node X="145972" Y="24890" />
<node X="145972" Y="25820" />
<node X="145362" Y="25820" />
<!-- owner_restart_point_list -->
<spawn X="145667" Y="25356" Z="-2150" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2280" maxZ="-2080"> <!-- aden_castle_agit_004 -->
<stat name="clanHallId" val="39" />
<!-- residence_territory -->
<node X="150460" Y="26108" />
<node X="151036" Y="26108" />
<node X="151036" Y="26972" />
<node X="150460" Y="26972" />
<node X="150460" Y="26585" />
<node X="150450" Y="26585" />
<node X="150450" Y="26505" />
<node X="150460" Y="26505" />
<!-- owner_restart_point_list -->
<spawn X="150748" Y="26540" Z="-2280" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2290" maxZ="-2090"> <!-- aden_castle_agit_005 -->
<stat name="clanHallId" val="40" />
<!-- residence_territory -->
<node X="143701" Y="26661" />
<node X="144299" Y="26661" />
<node X="144299" Y="27521" />
<node X="143701" Y="27521" />
<!-- owner_restart_point_list -->
<spawn X="143992" Y="27092" Z="-2290" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2280" maxZ="-2080"> <!-- aden_castle_agit_006 -->
<stat name="clanHallId" val="41" />
<!-- residence_territory -->
<node X="143704" Y="27734" />
<node X="144324" Y="27734" />
<node X="144324" Y="28155" />
<node X="144360" Y="28155" />
<node X="144360" Y="28245" />
<node X="144324" Y="28245" />
<node X="144324" Y="28670" />
<node X="143704" Y="28670" />
<!-- owner_restart_point_list -->
<spawn X="144014" Y="28202" Z="-2280" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3647" maxZ="-3297"> <!-- giran_castle_agit_001 -->
<stat name="clanHallId" val="42" />
<!-- residence_territory -->
<node X="78059" Y="147906" />
<node X="79122" Y="147906" />
<node X="79122" Y="148296" />
<node X="78620" Y="148296" />
<node X="78620" Y="148316" />
<node X="78524" Y="148316" />
<node X="78524" Y="148296" />
<node X="78059" Y="148296" />
<!-- owner_restart_point_list -->
<spawn X="78592" Y="148080" Z="-3581" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3647" maxZ="-3297"> <!-- giran_castle_agit_002 -->
<stat name="clanHallId" val="43" />
<!-- residence_territory -->
<node X="81859" Y="144802" />
<node X="82254" Y="144802" />
<node X="82254" Y="145870" />
<node X="81859" Y="145870" />
<node X="81859" Y="145355" />
<node X="81833" Y="145355" />
<node X="81833" Y="145274" />
<node X="81859" Y="145274" />
<!-- owner_restart_point_list -->
<spawn X="82032" Y="145328" Z="-3520" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3540" maxZ="-3190"> <!-- giran_castle_agit_003 -->
<stat name="clanHallId" val="44" />
<!-- residence_territory -->
<node X="83195" Y="144779" />
<node X="83591" Y="144779" />
<node X="83591" Y="145287" />
<node X="83615" Y="145287" />
<node X="83615" Y="145374" />
<node X="83594" Y="145374" />
<node X="83591" Y="145847" />
<node X="83195" Y="145847" />
<!-- owner_restart_point_list -->
<spawn X="83392" Y="145328" Z="-3389" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3647" maxZ="-3297"> <!-- giran_castle_agit_004 -->
<stat name="clanHallId" val="45" />
<!-- residence_territory -->
<node X="80773" Y="151053" />
<node X="81169" Y="151053" />
<node X="81169" Y="151560" />
<node X="81185" Y="151560" />
<node X="81185" Y="151653" />
<node X="81169" Y="151653" />
<node X="81169" Y="152121" />
<node X="80773" Y="152121" />
<!-- owner_restart_point_list -->
<spawn X="80960" Y="151600" Z="-3517" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-3647" maxZ="-3297"> <!-- giran_castle_agit_005 -->
<stat name="clanHallId" val="46" />
<!-- residence_territory -->
<node X="81903" Y="151377" />
<node X="82299" Y="151377" />
<node X="82299" Y="152445" />
<node X="81903" Y="152445" />
<node X="81903" Y="151945" />
<node X="81883" Y="151945" />
<node X="81883" Y="151850" />
<node X="81903" Y="151850" />
<!-- owner_restart_point_list -->
<spawn X="82064" Y="151904" Z="-3520" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2828" maxZ="-2528"> <!-- goddard_castle_agit_001 -->
<stat name="clanHallId" val="47" />
<!-- residence_territory -->
<node X="145660" Y="-55829" />
<node X="146459" Y="-55730" />
<node X="146402" Y="-55280" />
<node X="145605" Y="-55378" />
<!-- owner_restart_point_list -->
<spawn X="146022" Y="-55560" Z="-2765" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2828" maxZ="-2528"> <!-- goddard_castle_agit_002 -->
<stat name="clanHallId" val="48" />
<!-- residence_territory -->
<node X="146936" Y="-57320" />
<node X="147308" Y="-56607" />
<node X="146906" Y="-56397" />
<node X="146535" Y="-57111" />
<!-- owner_restart_point_list -->
<spawn X="146960" Y="-56768" Z="-2765" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2828" maxZ="-2528"> <!-- goddard_castle_agit_003 -->
<stat name="clanHallId" val="49" />
<!-- residence_territory -->
<node X="148487" Y="-57327" />
<node X="148887" Y="-57113" />
<node X="148508" Y="-56405" />
<node X="148108" Y="-56618" />
<!-- owner_restart_point_list -->
<spawn X="148480" Y="-56848" Z="-2765" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-2828" maxZ="-2528"> <!-- goddard_castle_agit_004 -->
<stat name="clanHallId" val="50" />
<!-- residence_territory -->
<node X="148962" Y="-55739" />
<node X="149759" Y="-55838" />
<node X="149815" Y="-55388" />
<node X="149018" Y="-55289" />
<!-- owner_restart_point_list -->
<spawn X="149376" Y="-55568" Z="-2765" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_001 -->
<stat name="clanHallId" val="51" />
<!-- residence_territory -->
<node X="37433" Y="-51016" />
<node X="38034" Y="-51016" />
<node X="38034" Y="-50565" />
<node X="37765" Y="-50565" />
<node X="37765" Y="-50445" />
<node X="37680" Y="-50445" />
<node X="37680" Y="-50565" />
<node X="37433" Y="-50565" />
<!-- owner_restart_point_list -->
<spawn X="37736" Y="-50777" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_002 -->
<stat name="clanHallId" val="52" />
<!-- residence_territory -->
<node X="38569" Y="-50790" />
<node X="39107" Y="-50522" />
<node X="38908" Y="-50119" />
<node X="38674" Y="-50238" />
<node X="38612" Y="-50125" />
<node X="38538" Y="-50162" />
<node X="38592" Y="-50271" />
<node X="38369" Y="-50386" />
<!-- owner_restart_point_list -->
<spawn X="38737" Y="-50491" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_003 -->
<stat name="clanHallId" val="53" />
<!-- residence_territory -->
<node X="39123" Y="-49827" />
<node X="39513" Y="-50048" />
<node X="39808" Y="-49526" />
<node X="39414" Y="-49304" />
<node X="39286" Y="-49533" />
<node X="39172" Y="-49472" />
<node X="39136" Y="-49546" />
<node X="39246" Y="-49605" />
<!-- owner_restart_point_list -->
<spawn X="39403" Y="-49668" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_004 -->
<stat name="clanHallId" val="54" />
<!-- residence_territory -->
<node X="39394" Y="-48636" />
<node X="39846" Y="-48636" />
<node X="39845" Y="-47837" />
<node X="39394" Y="-47837" />
<node X="39394" Y="-48198" />
<node X="39347" Y="-48198" />
<node X="39348" Y="-48290" />
<node X="39394" Y="-48290" />
<!-- owner_restart_point_list -->
<spawn X="39599" Y="-48264" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_005 -->
<stat name="clanHallId" val="55" />
<!-- residence_territory -->
<node X="39123" Y="-46646" />
<node X="39254" Y="-46879" />
<node X="39146" Y="-46939" />
<node X="39187" Y="-47014" />
<node X="39296" Y="-46958" />
<node X="39414" Y="-47172" />
<node X="39808" Y="-46954" />
<node X="39517" Y="-46427" />
<!-- owner_restart_point_list -->
<spawn X="39440" Y="-46806" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_006 -->
<stat name="clanHallId" val="56" />
<!-- residence_territory -->
<node X="38371" Y="-46086" />
<node X="38577" Y="-45688" />
<node X="39111" Y="-45960" />
<node X="38906" Y="-46362" />
<node X="38688" Y="-46252" />
<node X="38631" Y="-46361" />
<node X="38554" Y="-46324" />
<node X="38610" Y="-46214" />
<!-- owner_restart_point_list -->
<spawn X="38712" Y="-46042" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="850" maxZ="1150"> <!-- rune_castle_agit_007 -->
<stat name="clanHallId" val="57" />
<!-- residence_territory -->
<node X="37432" Y="-45908" />
<node X="37700" Y="-45908" />
<node X="37700" Y="-46030" />
<node X="37790" Y="-46030" />
<node X="37790" Y="-45908" />
<node X="38033" Y="-45908" />
<node X="38033" Y="-45457" />
<node X="37432" Y="-45457" />
<!-- owner_restart_point_list -->
<spawn X="37711" Y="-45723" Z="910" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1380" maxZ="-1130"> <!-- schuttgart_castle_agit_001 -->
<stat name="clanHallId" val="58" />
<!-- residence_territory -->
<node X="85259" Y="-143315" />
<node X="86057" Y="-143416" />
<node X="86108" Y="-142966" />
<node X="85311" Y="-142865" />
<!-- owner_restart_point_list -->
<spawn X="85812" Y="-143183" Z="-1230" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1380" maxZ="-1130"> <!-- schuttgart_castle_agit_002 -->
<stat name="clanHallId" val="59" />
<!-- residence_territory -->
<node X="86184" Y="-141594" />
<node X="86582" Y="-141377" />
<node X="86964" Y="-142085" />
<node X="86563" Y="-142300" />
<!-- owner_restart_point_list -->
<spawn X="86609" Y="-141949" Z="-1230" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1380" maxZ="-1130"> <!-- schuttgart_castle_agit_003 -->
<stat name="clanHallId" val="60" />
<!-- residence_territory -->
<node X="87767" Y="-142096" />
<node X="88135" Y="-141383" />
<node X="88537" Y="-141591" />
<node X="88167" Y="-142307" />
<!-- owner_restart_point_list -->
<spawn X="88093" Y="-141931" Z="-1230" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1380" maxZ="-1130"> <!-- schuttgart_castle_agit_004 -->
<stat name="clanHallId" val="61" />
<!-- residence_territory -->
<node X="88668" Y="-143423" />
<node X="89462" Y="-143324" />
<node X="89409" Y="-142877" />
<node X="88613" Y="-142975" />
<!-- owner_restart_point_list -->
<spawn X="88901" Y="-143200" Z="-1230" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1930" maxZ="-1680"> <!-- rainbow_spring -->
<stat name="clanHallId" val="62" />
<!-- residence_territory -->
<node X="141073" Y="-125043" />
<node X="140574" Y="-124709" />
<node X="140933" Y="-124171" />
<node X="141432" Y="-124505" />
<!-- owner_restart_point_list -->
<spawn X="140949" Y="-124658" Z="-1800" />
<!-- chao_restart_point_list -->
<spawn X="142656" Y="-55008" Z="-3024" isChaotic="true" />
<spawn X="142832" Y="-55680" Z="-3462" isChaotic="true" />
<spawn X="143152" Y="-56368" Z="-3456" isChaotic="true" />
<spawn X="145344" Y="-59472" Z="-3344" isChaotic="true" />
<spawn X="145872" Y="-59744" Z="-3328" isChaotic="true" />
<spawn X="150304" Y="-59800" Z="-3504" isChaotic="true" />
<spawn X="145248" Y="-60064" Z="-3440" isChaotic="true" />
<spawn X="144368" Y="-59616" Z="-3512" isChaotic="true" />
<spawn X="149680" Y="-59600" Z="-3440" isChaotic="true" />
<spawn X="149360" Y="-60576" Z="-3520" isChaotic="true" />
<spawn X="152114" Y="-57296" Z="-3451" isChaotic="true" />
<spawn X="150492" Y="-59719" Z="-3611" isChaotic="true" />
<spawn X="148791" Y="-60361" Z="-3537" isChaotic="true" />
<spawn X="146499" Y="-60242" Z="-3455" isChaotic="true" />
<spawn X="143052" Y="-56418" Z="-3490" isChaotic="true" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="-1407" maxZ="-907"> <!-- beast_farm_guildhall -->
<stat name="clanHallId" val="63" />
<!-- residence_territory -->
<node X="59997" Y="-96111" />
<node X="61969" Y="-92430" />
<node X="58303" Y="-89937" />
<node X="55402" Y="-91364" />
<node X="55254" Y="-92999" />
<node X="55344" Y="-93295" />
<node X="56049" Y="-94619" />
<!-- owner_restart_point_list -->
<spawn X="60608" Y="-94016" Z="-1349" />
<!-- chao_restart_point_list -->
<spawn X="42640" Y="-54496" Z="-2310" isChaotic="true" />
<spawn X="38304" Y="-55440" Z="-1136" isChaotic="true" />
<spawn X="40192" Y="-57600" Z="-2343" isChaotic="true" />
<spawn X="38400" Y="-56832" Z="-992" isChaotic="true" />
<spawn X="35632" Y="-54800" Z="-1744" isChaotic="true" />
<spawn X="37152" Y="-56272" Z="-272" isChaotic="true" />
<spawn X="43936" Y="-56480" Z="-3627" isChaotic="true" />
<spawn X="39440" Y="-60080" Z="-2870" isChaotic="true" />
<spawn X="41376" Y="-55376" Z="-1488" isChaotic="true" />
<spawn X="41920" Y="-57760" Z="-2392" isChaotic="true" />
<spawn X="42496" Y="-58192" Z="-3264" isChaotic="true" />
<spawn X="40784" Y="-59888" Z="-2600" isChaotic="true" />
</zone>
<zone type="ClanHallZone" shape="NPoly" minZ="305" maxZ="1685"> <!-- fortress_of_dead -->
<stat name="clanHallId" val="64" />
<!-- residence_territory -->
<node X="58672" Y="-30158" />
<node X="59478" Y="-29345" />
<node X="59477" Y="-25636" />
<node X="56445" Y="-25638" />
<node X="56445" Y="-29326" />
<node X="57277" Y="-30154" />
<!-- owner_restart_point_list -->
<spawn X="57932" Y="-26064" Z="595" />
<!-- chao_restart_point_list -->
<spawn X="42640" Y="-54496" Z="-2310" isChaotic="true" />
<spawn X="38304" Y="-55440" Z="-1136" isChaotic="true" />
<spawn X="40192" Y="-57600" Z="-2343" isChaotic="true" />
<spawn X="38400" Y="-56832" Z="-992" isChaotic="true" />
<spawn X="35632" Y="-54800" Z="-1744" isChaotic="true" />
<spawn X="37152" Y="-56272" Z="-272" isChaotic="true" />
<spawn X="43936" Y="-56480" Z="-3627" isChaotic="true" />
<spawn X="39440" Y="-60080" Z="-2870" isChaotic="true" />
<spawn X="41376" Y="-55376" Z="-1488" isChaotic="true" />
<spawn X="41920" Y="-57760" Z="-2392" isChaotic="true" />
<spawn X="42496" Y="-58192" Z="-3264" isChaotic="true" />
<spawn X="40784" Y="-59888" Z="-2600" isChaotic="true" />
</zone>
</list>

View File

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Damage Zones -->
<zone id="71001" type="DamageZone" shape="NPoly" minZ="-496" maxZ="-296"> <!-- aden_damage_1 -->
<stat name="castleId" val="5" />
<node X="145548" Y="6670" />
<node X="145813" Y="6669" />
<node X="145813" Y="6803" />
<node X="145548" Y="6804" />
</zone>
<zone id="71002" type="DamageZone" shape="NPoly" minZ="-496" maxZ="-296"> <!-- aden_damage_2 -->
<stat name="castleId" val="5" />
<node X="145548" Y="6798" />
<node X="145813" Y="6797" />
<node X="145813" Y="6931" />
<node X="145548" Y="6932" />
</zone>
<zone id="71003" type="DamageZone" shape="NPoly" minZ="-496" maxZ="-296"> <!-- aden_damage_3 -->
<stat name="castleId" val="5" />
<node X="145548" Y="6926" />
<node X="145813" Y="6925" />
<node X="145813" Y="7059" />
<node X="145548" Y="7060" />
</zone>
<zone id="71004" type="DamageZone" shape="NPoly" minZ="-528" maxZ="-328"> <!-- aden_damage_4 -->
<stat name="castleId" val="5" />
<node X="145548" Y="7054" />
<node X="145813" Y="7053" />
<node X="145813" Y="7187" />
<node X="145548" Y="7188" />
</zone>
<zone id="71005" type="DamageZone" shape="NPoly" minZ="-528" maxZ="-328"> <!-- aden_damage_5 -->
<stat name="castleId" val="5" />
<node X="149084" Y="6686" />
<node X="149349" Y="6685" />
<node X="149349" Y="6819" />
<node X="149084" Y="6820" />
</zone>
<zone id="71006" type="DamageZone" shape="NPoly" minZ="-528" maxZ="-328"> <!-- aden_damage_6 -->
<stat name="castleId" val="5" />
<node X="149084" Y="6814" />
<node X="149349" Y="6813" />
<node X="149349" Y="6947" />
<node X="149084" Y="6948" />
</zone>
<zone id="71007" type="DamageZone" shape="NPoly" minZ="-528" maxZ="-328"> <!-- aden_damage_7 -->
<stat name="castleId" val="5" />
<node X="149084" Y="6942" />
<node X="149349" Y="6941" />
<node X="149349" Y="7075" />
<node X="149084" Y="7076" />
</zone>
<zone id="71008" type="DamageZone" shape="NPoly" minZ="-560" maxZ="-360"> <!-- aden_damage_8 -->
<stat name="castleId" val="5" />
<node X="149084" Y="7070" />
<node X="149349" Y="7069" />
<node X="149349" Y="7203" />
<node X="149084" Y="7204" />
</zone>
<zone id="71009" type="DamageZone" shape="NPoly" minZ="-2627" maxZ="-2427"> <!-- gludio_damage_1 -->
<stat name="castleId" val="1" />
<node X="-18255" Y="110790" />
<node X="-17971" Y="110790" />
<node X="-17972" Y="111174" />
<node X="-18256" Y="111174" />
</zone>
<zone id="71010" type="DamageZone" shape="NPoly" minZ="-2595" maxZ="-2395"> <!-- gludio_damage_2 -->
<stat name="castleId" val="1" />
<node X="-19213" Y="107137" />
<node X="-18827" Y="107137" />
<node X="-18827" Y="107404" />
<node X="-19213" Y="107404" />
</zone>
<zone id="71011" type="DamageZone" shape="NPoly" minZ="-2821" maxZ="30341"> <!-- dion_damage_1 -->
<stat name="castleId" val="2" />
<node X="22215" Y="158960" />
<node X="21931" Y="158960" />
<node X="21932" Y="158576" />
<node X="22216" Y="158576" />
</zone>
<zone id="71012" type="DamageZone" shape="NPoly" minZ="-2789" maxZ="30373"> <!-- dion_damage_2 -->
<stat name="castleId" val="2" />
<node X="23173" Y="162613" />
<node X="22787" Y="162613" />
<node X="22787" Y="162346" />
<node X="23173" Y="162346" />
</zone>
<zone id="71013" type="DamageZone" shape="NPoly" minZ="-2694" maxZ="13957"> <!-- giran_damage_1 -->
<stat name="castleId" val="3" />
<node X="115132" Y="144954" />
<node X="115132" Y="145238" />
<node X="114748" Y="145237" />
<node X="114748" Y="144953" />
</zone>
<zone id="71014" type="DamageZone" shape="NPoly" minZ="-2662" maxZ="13989"> <!-- giran_damage_2 -->
<stat name="castleId" val="3" />
<node X="118785" Y="143996" />
<node X="118785" Y="144382" />
<node X="118518" Y="144382" />
<node X="118518" Y="143996" />
</zone>
<zone id="71015" type="DamageZone" shape="NPoly" minZ="-2421" maxZ="13957"> <!-- oren_damage_1 -->
<stat name="castleId" val="4" />
<node X="81208" Y="37049" />
<node X="81208" Y="37333" />
<node X="80824" Y="37332" />
<node X="80824" Y="37048" />
</zone>
<zone id="71016" type="DamageZone" shape="NPoly" minZ="-2389" maxZ="13989"> <!-- oren_damage_2 -->
<stat name="castleId" val="4" />
<node X="84861" Y="36091" />
<node X="84861" Y="36477" />
<node X="84594" Y="36477" />
<node X="84594" Y="36091" />
</zone>
<zone id="71017" type="DamageZone" shape="NPoly" minZ="-917" maxZ="30341"> <!-- innadrile_damage_1 -->
<stat name="castleId" val="6" />
<node X="116166" Y="247739" />
<node X="115882" Y="247739" />
<node X="115883" Y="247355" />
<node X="116167" Y="247355" />
</zone>
<zone id="71018" type="DamageZone" shape="NPoly" minZ="-885" maxZ="30373"> <!-- innadrile_damage_2 -->
<stat name="castleId" val="6" />
<node X="117124" Y="251392" />
<node X="116738" Y="251392" />
<node X="116738" Y="251125" />
<node X="117124" Y="251125" />
</zone>
<zone id="71019" type="DamageZone" shape="NPoly" minZ="-1789" maxZ="-1489"> <!-- goddard_damage_1 -->
<stat name="castleId" val="7" />
<node X="149235" Y="-47768" />
<node X="149579" Y="-47608" />
<node X="149515" Y="-47472" />
<node X="149169" Y="-47634" />
</zone>
<zone id="71020" type="DamageZone" shape="NPoly" minZ="-1789" maxZ="-1439"> <!-- goddard_damage_2 -->
<stat name="castleId" val="7" />
<node X="145352" Y="-47607" />
<node X="145696" Y="-47768" />
<node X="145760" Y="-47633" />
<node X="145415" Y="-47471" />
</zone>
<zone id="71021" type="DamageZone" shape="NPoly" minZ="509" maxZ="809"> <!-- rune_damage_1 -->
<stat name="castleId" val="8" />
<node X="13785" Y="-47663" />
<node X="14046" Y="-47854" />
<node X="14203" Y="-47668" />
<node X="13916" Y="-47450" />
</zone>
<zone id="71022" type="DamageZone" shape="NPoly" minZ="518" maxZ="818"> <!-- rune_damage_2 -->
<stat name="castleId" val="8" />
<node X="13917" Y="-50851" />
<node X="14209" Y="-50630" />
<node X="14052" Y="-50447" />
<node X="13788" Y="-50647" />
</zone>
<zone id="71023" type="DamageZone" shape="NPoly" minZ="-93" maxZ="207"> <!-- schutt_damage_1 -->
<stat name="castleId" val="9" />
<node X="75440" Y="-151667" />
<node X="75787" Y="-151830" />
<node X="75849" Y="-151697" />
<node X="75503" Y="-151535" />
</zone>
<zone id="71024" type="DamageZone" shape="NPoly" minZ="-77" maxZ="223"> <!-- schutt_damage_2 -->
<stat name="castleId" val="9" />
<node X="79322" Y="-151831" />
<node X="79668" Y="-151670" />
<node X="79606" Y="-151535" />
<node X="79261" Y="-151699" />
</zone>
<!-- Cruma (Damage Zone) -->
<zone type="DamageZone" shape="NPoly" minZ="-6519" maxZ="-6319"> <!-- cruma_boss_damage_zone -->
<node X="17869" Y="108566" />
<node X="18071" Y="108774" />
<node X="18072" Y="109060" />
<node X="17865" Y="109265" />
<node X="17580" Y="109264" />
<node X="17379" Y="109062" />
<node X="17379" Y="108774" />
<node X="17584" Y="108569" />
</zone>
<!-- Devil Isle Zones -->
<!-- Physical Damage -->
<zone type="DamageZone" shape="NPoly" minZ="-4048" maxZ="-3848"> <!-- devil_damage_001 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="51296" Y="205421" />
<node X="51788" Y="205266" />
<node X="51496" Y="205621" />
<node X="51072" Y="205896" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-4032" maxZ="-3732"> <!-- devil_damage_002 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="51820" Y="205340" />
<node X="52535" Y="205305" />
<node X="52535" Y="205436" />
<node X="51705" Y="205528" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3776" maxZ="-3626"> <!-- devil_damage_003 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="43439" Y="213259" />
<node X="43589" Y="213249" />
<node X="43750" Y="213760" />
<node X="43680" Y="214092" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3764" maxZ="-3564"> <!-- devil_damage_004 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="42805" Y="214266" />
<node X="43627" Y="214195" />
<node X="43386" Y="214355" />
<node X="42805" Y="214405" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3856" maxZ="-3656"> <!-- devil_damage_005 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="43511" Y="218426" />
<node X="43711" Y="218426" />
<node X="43711" Y="218759" />
<node X="43511" Y="218759" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3940" maxZ="-3740"> <!-- devil_damage_006 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="43012" Y="218850" />
<node X="43708" Y="218850" />
<node X="43719" Y="219260" />
<node X="43001" Y="219260" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3060" maxZ="-2860"> <!-- devil_damage_007 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="50630" Y="211383" />
<node X="51129" Y="211383" />
<node X="51129" Y="211858" />
<node X="50642" Y="211858" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-4008" maxZ="-3608"> <!-- devil_damage_008 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="51820" Y="206520" />
<node X="52792" Y="206500" />
<node X="52812" Y="207128" />
<node X="51844" Y="207060" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-3056" maxZ="-2706"> <!-- devil_damage_009 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="50673" Y="210566" />
<node X="51054" Y="210572" />
<node X="51054" Y="211317" />
<node X="50667" Y="211311" />
</zone>
<zone type="DamageZone" shape="NPoly" minZ="-2736" maxZ="-2536"> <!-- devil_damage_010 -->
<stat name="initialDelay" val="1000" />
<stat name="reuse" val="60000" />
<node X="50608" Y="209718" />
<node X="51145" Y="209718" />
<node X="51150" Y="210201" />
<node X="50614" Y="210201" />
</zone>
</list>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Monster Race Track -->
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3652" maxZ="-3452"> <!-- dion_monster_race1 -->
<node X="11714" Y="181568" />
<node X="14406" Y="181571" />
<node X="14405" Y="182673" />
<node X="11714" Y="182673" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3610" maxZ="-3410"> <!-- dion_monster_race2 -->
<node X="13309" Y="181324" />
<node X="14061" Y="181324" />
<node X="14061" Y="181610" />
<node X="13309" Y="181610" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3608" maxZ="-3408"> <!-- dion_monster_race3 -->
<node X="13559" Y="182641" />
<node X="14073" Y="182640" />
<node X="14073" Y="182919" />
<node X="13560" Y="182918" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3612" maxZ="-3412"> <!-- dion_monster_race4 -->
<node X="12196" Y="182662" />
<node X="12447" Y="182663" />
<node X="12447" Y="182766" />
<node X="12197" Y="182766" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3624" maxZ="-3424"> <!-- dion_monster_race5 -->
<node X="11706" Y="182774" />
<node X="13194" Y="182769" />
<node X="13194" Y="183006" />
<node X="11701" Y="183017" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3616" maxZ="-3416"> <!-- dion_monster_race6 -->
<node X="11701" Y="184017" />
<node X="13188" Y="184011" />
<node X="13194" Y="184265" />
<node X="11701" Y="184260" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3620" maxZ="-3420"> <!-- dion_monster_race7 -->
<node X="11697" Y="183013" />
<node X="11945" Y="183019" />
<node X="11940" Y="184015" />
<node X="11697" Y="184015" />
</zone>
<zone type="DerbyTrackZone" shape="NPoly" minZ="-3624" maxZ="-3424"> <!-- dion_monster_race8 -->
<node X="12945" Y="183013" />
<node X="13193" Y="183008" />
<node X="13193" Y="184009" />
<node X="12945" Y="184009" />
</zone>
</list>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Fishing Zones -->
<zone type="FishingZone" shape="NPoly" minZ="-3634" maxZ="-3434"> <!-- fishing_place_1 -->
<node X="141249" Y="-109636" />
<node X="141473" Y="-109798" />
<node X="141739" Y="-109821" />
<node X="141924" Y="-109669" />
<node X="142038" Y="-109397" />
<node X="141852" Y="-109130" />
<node X="141604" Y="-109051" />
<node X="141321" Y="-109091" />
<node X="141213" Y="-109266" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3634" maxZ="-3434"> <!-- fishing_place_2 -->
<node X="141249" Y="-109636" />
<node X="141473" Y="-109798" />
<node X="141739" Y="-109821" />
<node X="141924" Y="-109669" />
<node X="142038" Y="-109397" />
<node X="141852" Y="-109130" />
<node X="141604" Y="-109051" />
<node X="141321" Y="-109091" />
<node X="141213" Y="-109266" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3668" maxZ="-3468"> <!-- fishing_place_3 -->
<node X="140174" Y="-105832" />
<node X="140490" Y="-105875" />
<node X="140962" Y="-105738" />
<node X="141039" Y="-105378" />
<node X="140872" Y="-105119" />
<node X="140081" Y="-105295" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3724" maxZ="-3524"> <!-- fishing_place_4 -->
<node X="144927" Y="-105193" />
<node X="145226" Y="-105412" />
<node X="145576" Y="-105344" />
<node X="145819" Y="-104976" />
<node X="145575" Y="-104555" />
<node X="145217" Y="-104490" />
<node X="144935" Y="-104684" />
<node X="144832" Y="-104959" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-2871" maxZ="-2671"> <!-- fishing_place_5 -->
<node X="152081" Y="-108262" />
<node X="152455" Y="-108588" />
<node X="152835" Y="-108448" />
<node X="152992" Y="-108120" />
<node X="152817" Y="-107670" />
<node X="152310" Y="-107632" />
<node X="152069" Y="-107905" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-2787" maxZ="-2587"> <!-- fishing_place_6 -->
<node X="155279" Y="-105735" />
<node X="155448" Y="-105880" />
<node X="155992" Y="-105963" />
<node X="156201" Y="-105790" />
<node X="156133" Y="-105320" />
<node X="155896" Y="-105229" />
<node X="155459" Y="-105254" />
<node X="155283" Y="-105478" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-2717" maxZ="-2517"> <!-- fishing_place_7 -->
<node X="156838" Y="-109948" />
<node X="157133" Y="-110046" />
<node X="157436" Y="-109918" />
<node X="157491" Y="-109405" />
<node X="157197" Y="-109197" />
<node X="156843" Y="-109261" />
<node X="156683" Y="-109569" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-1609" maxZ="-1409"> <!-- fishing_place_8 -->
<node X="152063" Y="-116732" />
<node X="152505" Y="-116982" />
<node X="152904" Y="-116927" />
<node X="153020" Y="-116469" />
<node X="152881" Y="-116221" />
<node X="152555" Y="-116100" />
<node X="152285" Y="-116160" />
<node X="152099" Y="-116415" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-1694" maxZ="-1494"> <!-- fishing_place_9 -->
<node X="152683" Y="-112829" />
<node X="152796" Y="-113129" />
<node X="153125" Y="-113339" />
<node X="153557" Y="-113190" />
<node X="153649" Y="-112721" />
<node X="153344" Y="-112385" />
<node X="152937" Y="-112409" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-1979" maxZ="-1779"> <!-- fishing_place_10 -->
<node X="157444" Y="-115790" />
<node X="157774" Y="-115907" />
<node X="158174" Y="-115759" />
<node X="158017" Y="-114971" />
<node X="157625" Y="-114984" />
<node X="157439" Y="-115101" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-2152" maxZ="-1952"> <!-- fishing_place_11 -->
<node X="147182" Y="-113255" />
<node X="147194" Y="-113430" />
<node X="147312" Y="-113584" />
<node X="147467" Y="-113630" />
<node X="147748" Y="-113523" />
<node X="147816" Y="-113273" />
<node X="147723" Y="-113074" />
<node X="147512" Y="-112956" />
<node X="147258" Y="-113048" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4388" maxZ="-1388"> <!-- fishing_place_12 -->
<node X="35360" Y="70052" />
<node X="54640" Y="70780" />
<node X="58104" Y="89528" />
<node X="38900" Y="91644" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4916" maxZ="-1916"> <!-- fishing_place_13 -->
<node X="-99139" Y="207208" />
<node X="-65905" Y="254858" />
<node X="-65905" Y="261841" />
<node X="-124577" Y="261607" />
<node X="-128220" Y="215665" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4640" maxZ="-1640"> <!-- fishing_place_14 -->
<node X="134452" Y="66180" />
<node X="170228" Y="67184" />
<node X="172464" Y="97052" />
<node X="136188" Y="94940" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4216" maxZ="-1216"> <!-- fishing_place_15 -->
<node X="135800" Y="35476" />
<node X="162960" Y="35364" />
<node X="161056" Y="64920" />
<node X="136496" Y="65092" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-2568" maxZ="1432"> <!-- fishing_place_16 -->
<node X="97311" Y="-229576" />
<node X="201955" Y="-229291" />
<node X="201926" Y="-163450" />
<node X="97636" Y="-164202" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-7356" maxZ="-1356"> <!-- fishing_place_17 -->
<node X="89909" Y="158343" />
<node X="130731" Y="153447" />
<node X="130741" Y="261840" />
<node X="65549" Y="262183" />
<node X="65612" Y="189166" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3892" maxZ="-892"> <!-- fishing_place_18 -->
<node X="81328" Y="136658" />
<node X="139003" Y="123356" />
<node X="138584" Y="145204" />
<node X="121150" Y="155944" />
<node X="80807" Y="160436" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4684" maxZ="-1684"> <!-- fishing_place_19 -->
<node X="67326" Y="160359" />
<node X="86813" Y="160109" />
<node X="64159" Y="189723" />
<node X="42375" Y="183029" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4874" maxZ="-1874"> <!-- fishing_place_20 -->
<node X="30606" Y="184275" />
<node X="40957" Y="182824" />
<node X="62226" Y="189792" />
<node X="62509" Y="228946" />
<node X="30706" Y="228846" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4372" maxZ="-1372"> <!-- fishing_place_21 -->
<node X="65472" Y="71452" />
<node X="86420" Y="82248" />
<node X="97656" Y="93300" />
<node X="97692" Y="98032" />
<node X="64528" Y="97660" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4328" maxZ="-1328"> <!-- fishing_place_22 -->
<node X="66204" Y="3448" />
<node X="121052" Y="30384" />
<node X="87064" Y="56664" />
<node X="69484" Y="31724" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4096" maxZ="-1096"> <!-- fishing_place_23 -->
<node X="4721" Y="99932" />
<node X="60654" Y="99812" />
<node X="60606" Y="158582" />
<node X="40546" Y="154557" />
<node X="3147" Y="123027" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4724" maxZ="-1724"> <!-- fishing_place_24 -->
<node X="36902" Y="-98025" />
<node X="9543" Y="-42544" />
<node X="54988" Y="-7732" />
<node X="96957" Y="-65614" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4764" maxZ="-1764"> <!-- fishing_place_25 -->
<node X="436" Y="128216" />
<node X="10168" Y="128584" />
<node X="42184" Y="182056" />
<node X="31996" Y="197312" />
<node X="680" Y="197804" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3900" maxZ="-900"> <!-- fishing_place_26 -->
<node X="35960" Y="34780" />
<node X="61228" Y="52232" />
<node X="61704" Y="77128" />
<node X="43360" Y="66444" />
<node X="32924" Y="37972" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4004" maxZ="-1004"> <!-- fishing_place_27 -->
<node X="11764" Y="36204" />
<node X="42092" Y="63036" />
<node X="44408" Y="69824" />
<node X="444" Y="75320" />
<node X="2780" Y="51824" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3856" maxZ="-856"> <!-- fishing_place_28 -->
<node X="148" Y="77464" />
<node X="4116" Y="80668" />
<node X="4816" Y="95352" />
<node X="460" Y="94180" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4848" maxZ="-1848"> <!-- fishing_place_29 -->
<node X="-37560" Y="16423" />
<node X="-8388" Y="126" />
<node X="50773" Y="98" />
<node X="35243" Y="16780" />
<node X="-76016" Y="81087" />
<node X="-75777" Y="65779" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4044" maxZ="-1044"> <!-- fishing_place_30 -->
<node X="-27548" Y="90040" />
<node X="3188" Y="95180" />
<node X="1816" Y="117348" />
<node X="-1732" Y="130032" />
<node X="-25952" Y="130540" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4084" maxZ="-1084"> <!-- fishing_place_31 -->
<node X="-13628" Y="57148" />
<node X="-428" Y="57856" />
<node X="3668" Y="90204" />
<node X="-21376" Y="89884" />
<node X="-26808" Y="87940" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4880" maxZ="-1880"> <!-- fishing_place_32 -->
<node X="-64990" Y="-109438" />
<node X="32369" Y="-96091" />
<node X="31964" Y="-83063" />
<node X="4840" Y="-60901" />
<node X="-30730" Y="-68637" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4828" maxZ="-1828"> <!-- fishing_place_33 -->
<node X="-65739" Y="186145" />
<node X="-188" Y="193188" />
<node X="-470" Y="213105" />
<node X="-22923" Y="225218" />
<node X="-58597" Y="224836" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-3772" maxZ="-772"> <!-- fishing_place_34 -->
<node X="-62980" Y="111764" />
<node X="-50756" Y="126392" />
<node X="-63940" Y="140572" />
<node X="-71220" Y="133792" />
<node X="-69448" Y="120784" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4892" maxZ="-1892"> <!-- fishing_place_35 -->
<node X="-111370" Y="100078" />
<node X="-77020" Y="67100" />
<node X="-65711" Y="190964" />
<node X="-99937" Y="150239" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4115" maxZ="-3415"> <!-- fishing_place_36 -->
<node X="107720" Y="-121415" />
<node X="107976" Y="-121486" />
<node X="108054" Y="-121203" />
<node X="107681" Y="-121077" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4114" maxZ="-3414"> <!-- fishing_place_37 -->
<node X="107174" Y="-120338" />
<node X="107675" Y="-121072" />
<node X="107771" Y="-120739" />
<node X="107596" Y="-120492" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4100" maxZ="-3400"> <!-- fishing_place_38 -->
<node X="106925" Y="-121468" />
<node X="107499" Y="-121754" />
<node X="107718" Y="-121406" />
<node X="107676" Y="-121070" />
<node X="107140" Y="-120299" />
<node X="106748" Y="-121104" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4106" maxZ="-3406"> <!-- fishing_place_39 -->
<node X="107669" Y="-120279" />
<node X="108087" Y="-120174" />
<node X="108270" Y="-119950" />
<node X="107870" Y="-119379" />
<node X="107437" Y="-119884" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4108" maxZ="-3408"> <!-- fishing_place_40 -->
<node X="108275" Y="-119951" />
<node X="108903" Y="-119964" />
<node X="108806" Y="-119162" />
<node X="108431" Y="-118887" />
<node X="107867" Y="-119376" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4155" maxZ="-3455"> <!-- fishing_place_41 -->
<node X="108405" Y="-120801" />
<node X="109222" Y="-120654" />
<node X="109288" Y="-120048" />
<node X="108946" Y="-120080" />
<node X="108812" Y="-120306" />
<node X="108160" Y="-120322" />
<node X="108127" Y="-120625" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4157" maxZ="-3457"> <!-- fishing_place_42 -->
<node X="108450" Y="-121409" />
<node X="109231" Y="-121384" />
<node X="109222" Y="-120651" />
<node X="108396" Y="-120801" />
<node X="108274" Y="-121123" />
<node X="108507" Y="-121226" />
</zone>
<zone type="FishingZone" shape="NPoly" minZ="-4142" maxZ="-3442"> <!-- fishing_place_43 -->
<node X="108544" Y="-121991" />
<node X="109133" Y="-121703" />
<node X="109226" Y="-121385" />
<node X="108343" Y="-121415" />
<node X="108122" Y="-121599" />
<node X="108468" Y="-121820" />
</zone>
</list>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Fortress Zones -->
<zone id="21501" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Shanty Fortress -->
<stat name="fortId" val="101" />
<node X="-56256" Y="153728" />
<node X="-49536" Y="159424" />
<spawn X="-52695" Y="156457" Z="-2053" />
</zone>
<zone id="21502" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Southern Fortress -->
<stat name="fortId" val="102" />
<node X="-26304" Y="216576" />
<node X="-19584" Y="222912" />
<spawn X="-22759" Y="219818" Z="-3236" />
</zone>
<zone id="21503" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Hive Fortress -->
<stat name="fortId" val="103" />
<node X="12544" Y="185856" />
<node X="19456" Y="190272" />
<spawn X="16625" Y="188108" Z="-2924" />
</zone>
<zone id="21504" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Valley Fortress -->
<stat name="fortId" val="104" />
<node X="122432" Y="120192" />
<node X="129600" Y="126656" />
<spawn X="126058" Y="123425" Z="-2585" />
</zone>
<zone id="21505" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Ivory Fortress -->
<stat name="fortId" val="105" />
<node X="70080" Y="1984" />
<node X="74944" Y="6656" />
<spawn X="72808" Y="4307" Z="-3045" />
</zone>
<zone id="21506" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Narsell Fortress -->
<stat name="fortId" val="106" />
<node X="151936" Y="52736" />
<node X="157760" Y="58304" />
<spawn X="154966" Y="55276" Z="-3254" />
</zone>
<zone id="21507" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Bayou Fortress -->
<stat name="fortId" val="107" />
<node X="186368" Y="36288" />
<node X="192640" Y="42240" />
<spawn X="189910" Y="39770" Z="-3410" />
</zone>
<zone id="21508" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- White Sands Fortress -->
<stat name="fortId" val="108" />
<node X="114432" Y="201664" />
<node X="122176" Y="208704" />
<spawn X="118361" Y="204924" Z="-3333" />
</zone>
<zone id="21509" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Borderland Fortress -->
<stat name="fortId" val="109" />
<node X="155776" Y="-72896" />
<node X="162368" Y="-67776" />
<spawn X="159009" Y="-70167" Z="-2864" />
</zone>
<zone id="21510" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Marshland Fortress -->
<stat name="fortId" val="110" />
<node X="66304" Y="-63872" />
<node X="72832" Y="-58688" />
<spawn X="69791" Y="-61482" Z="-2786" />
</zone>
<zone id="21511" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Archaic Fortress -->
<stat name="fortId" val="111" />
<node X="106176" Y="-143616" />
<node X="112704" Y="-138752" />
<spawn X="109568" Y="-141277" Z="-2957" />
</zone>
<zone id="21512" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Floran Fortress - Border -->
<stat name="fortId" val="112" />
<node X="1472" Y="145216" />
<node X="9728" Y="155136" />
<spawn X="5688" Y="149726" Z="-2889" />
</zone>
<zone id="21513" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Cloud Mountain Fortress - Border -->
<stat name="fortId" val="113" />
<node X="-57408" Y="88704" />
<node X="-49408" Y="93824" />
<spawn X="-53204" Y="91210" Z="-2821" />
</zone>
<zone id="21514" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Tanor Fortress - Border -->
<stat name="fortId" val="114" />
<node X="56256" Y="136768" />
<node X="64256" Y="142016" />
<spawn X="60258" Y="139425" Z="-1754" />
</zone>
<zone id="21515" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Dragonspine Fortress - Border -->
<stat name="fortId" val="115" />
<node X="8000" Y="92928" />
<node X="14976" Y="97408" />
<spawn X="11542" Y="95060" Z="-3426" />
</zone>
<zone id="21516" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Antharas Fortress - Border -->
<stat name="fortId" val="116" />
<node X="75904" Y="86336" />
<node X="80448" Y="95488" />
<spawn X="79199" Y="91021" Z="-2878" />
</zone>
<zone id="21517" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Western Fortress - Border -->
<stat name="fortId" val="117" />
<node X="107264" Y="-17664" />
<node X="115392" Y="-12544" />
<spawn X="111376" Y="-15203" Z="-995" />
</zone>
<zone id="21518" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Hunters Fortress - Border -->
<stat name="fortId" val="118" />
<node X="121472" Y="92992" />
<node X="129088" Y="97792" />
<spawn X="125308" Y="95066" Z="-2140" />
</zone>
<zone id="21519" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Aaru Fortress - Border -->
<stat name="fortId" val="119" />
<node X="69120" Y="182400" />
<node X="76672" Y="190784" />
<spawn X="73066" Y="185954" Z="-2581" />
</zone>
<zone id="21520" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Demon Fortress - Border -->
<stat name="fortId" val="120" />
<node X="98432" Y="-56465" />
<node X="102912" Y="-52288" />
<spawn X="100698" Y="-55334" Z="-645" />
</zone>
<zone id="21521" type="FortZone" shape="Cuboid" minZ="-3800" maxZ="3200">
<!-- Monastic Fortress - Border -->
<stat name="fortId" val="121" />
<node X="68480" Y="-97536" />
<node X="75520" Y="-92224" />
<spawn X="72146" Y="-94782" Z="-1428" />
</zone>
</list>

View File

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Castle HQ Zones -->
<!-- Gludio Casle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-4484" maxZ="3515"> <!-- gludio_castle_headquarter_territory1 -->
<!-- headquarter_territory -->
<node X="-22052" Y="114025" />
<node X="-14221" Y="114007" />
<node X="-14197" Y="116558" />
<node X="-22032" Y="116566" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4420" maxZ="3579"> <!-- gludio_castle_headquarter_territory2 -->
<!-- headquarter_territory -->
<node X="-22030" Y="104809" />
<node X="-20270" Y="104817" />
<node X="-20266" Y="113735" />
<node X="-22031" Y="113732" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4388" maxZ="3611"> <!-- gludio_castle_headquarter_territory3 -->
<!-- headquarter_territory -->
<node X="-15554" Y="104834" />
<node X="-13917" Y="104839" />
<node X="-13914" Y="113757" />
<node X="-15554" Y="113757" />
</zone>
<!-- Dion Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-4678" maxZ="4000"> <!-- dion_castle_headquarter_territory1 -->
<!-- headquarter_territory -->
<node X="26012" Y="155725" />
<node X="18181" Y="155743" />
<node X="18157" Y="153192" />
<node X="25992" Y="153184" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4614" maxZ="4000"> <!-- dion_castle_headquarter_territory2 -->
<!-- headquarter_territory -->
<node X="25990" Y="164941" />
<node X="24230" Y="164933" />
<node X="24226" Y="156015" />
<node X="25991" Y="156018" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4582" maxZ="4000"> <!-- dion_castle_headquarter_territory3 -->
<!-- headquarter_territory -->
<node X="19514" Y="164916" />
<node X="17877" Y="164911" />
<node X="17874" Y="155993" />
<node X="19514" Y="155993" />
</zone>
<!-- Giran Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-4551" maxZ="19899"> <!-- giran_castle_headquarter_territory1 -->
<!-- headquarter_territory -->
<node X="111897" Y="141157" />
<node X="111915" Y="148988" />
<node X="109364" Y="149012" />
<node X="109356" Y="141177" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4487" maxZ="19963"> <!-- giran_castle_headquarter_territory2 -->
<!-- headquarter_territory -->
<node X="121113" Y="141179" />
<node X="121105" Y="142939" />
<node X="112187" Y="142943" />
<node X="112190" Y="141178" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4455" maxZ="19995"> <!-- giran_castle_headquarter_territory3 -->
<!-- headquarter_territory -->
<node X="121088" Y="147655" />
<node X="121083" Y="149292" />
<node X="112165" Y="149295" />
<node X="112165" Y="147655" />
</zone>
<!-- Oren Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-4278" maxZ="19899"> <!-- oren_castle_headquarter_territory1 -->
<!-- headquarter_territory -->
<node X="77973" Y="33252" />
<node X="77991" Y="41083" />
<node X="75440" Y="41107" />
<node X="75432" Y="33272" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4214" maxZ="19963"> <!-- oren_castle_headquarter_territory2 -->
<!-- headquarter_territory -->
<node X="87189" Y="33274" />
<node X="87181" Y="35034" />
<node X="78263" Y="35038" />
<node X="78266" Y="33273" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-4182" maxZ="19995"> <!-- oren_castle_headquarter_territory3 -->
<!-- headquarter_territory -->
<node X="87164" Y="39750" />
<node X="87159" Y="41387" />
<node X="78241" Y="41390" />
<node X="78241" Y="39750" />
</zone>
<!-- Aden Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-1158" maxZ="42"> <!-- aden_castle_headquarter_territory -->
<!-- headquarter_territory -->
<node X="144365" Y="9902" />
<node X="150572" Y="9919" />
<node X="150816" Y="4925" />
<node X="151831" Y="4916" />
<node X="151833" Y="7955" />
<node X="150754" Y="9839" />
<node X="150281" Y="10385" />
<node X="151282" Y="12184" />
<node X="151280" Y="13248" />
<node X="143668" Y="13224" />
<node X="143698" Y="12185" />
<node X="144657" Y="10353" />
<node X="144156" Y="9821" />
<node X="143148" Y="7939" />
<node X="143155" Y="4824" />
<node X="144053" Y="4830" />
</zone>
<!-- Innadril Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-2774" maxZ="4000"> <!-- innadrile_castle_headquarter_territory1 -->
<!-- headquarter_territory -->
<node X="119963" Y="244504" />
<node X="112132" Y="244522" />
<node X="112108" Y="241971" />
<node X="119943" Y="241963" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-2710" maxZ="4000"> <!-- innadrile_castle_headquarter_territory2 -->
<!-- headquarter_territory -->
<node X="119941" Y="253720" />
<node X="118181" Y="253712" />
<node X="118177" Y="244794" />
<node X="119942" Y="244797" />
</zone>
<zone type="HqZone" shape="NPoly" minZ="-2678" maxZ="4000"> <!-- innadrile_castle_headquarter_territory3 -->
<!-- headquarter_territory -->
<node X="113465" Y="253695" />
<node X="111828" Y="253690" />
<node X="111825" Y="244772" />
<node X="113465" Y="244772" />
</zone>
<!-- Goddard Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-2625" maxZ="1875"> <!-- goddard_castle_headquarter_territory -->
<!-- headquarter_territory -->
<node X="144715" Y="-43884" />
<node X="150045" Y="-43884" />
<node X="150037" Y="-43064" />
<node X="148924" Y="-42723" />
<node X="148512" Y="-41841" />
<node X="148496" Y="-40907" />
<node X="147063" Y="-40920" />
<node X="145883" Y="-42805" />
<node X="144692" Y="-42822" />
</zone>
<!-- Rune Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-1780" maxZ="-680"> <!-- rune_castle_headquarter_territory -->
<!-- headquarter_territory -->
<node X="26755" Y="-49171" />
<node X="22310" Y="-49171" />
<node X="22309" Y="-50415" />
<node X="21392" Y="-50412" />
<node X="21391" Y="-49164" />
<node X="19543" Y="-49168" />
<node X="19546" Y="-49074" />
<node X="21387" Y="-49070" />
<node X="21388" Y="-47783" />
<node X="22316" Y="-47784" />
<node X="22316" Y="-49082" />
<node X="26755" Y="-49082" />
</zone>
<!-- Schuttgart Castle HQ Zones -->
<zone type="HqZone" shape="NPoly" minZ="-3800" maxZ="1700"> <!-- schuttgart_castle_headquarter_territory -->
<!-- headquarter_territory -->
<node X="74554" Y="-148009" />
<node X="80640" Y="-148009" />
<node X="80631" Y="-147713" />
<node X="78857" Y="-147120" />
<node X="78119" Y="-146316" />
<node X="76767" Y="-146316" />
<node X="76314" Y="-147099" />
<node X="74533" Y="-147618" />
</zone>
<!-- Clan Hall HQ Zones -->
<!-- zone name="partisan_agit001_headquarter_territory" type="HqZone" shape="NPoly" minZ="0" maxZ="0" -->
<!-- stat name="clanHallId" val="21" / -->
<!-- /zone -->
<!-- zone name="devastated_castle_headquarter_territory" type="HqZone" shape="NPoly" minZ="-2405" maxZ="595">
<stat name="clanHallId" val="34" />
<node X="176740" Y="-13838" />
<node X="180040" Y="-13838" />
<node X="180040" Y="-13188" />
<node X="176740" Y="-13188" />
</zone -->
<!-- zone name="bandits'_stronghold_headquarter_territory" type="HqZone" shape="NPoly" minZ="0" maxZ="0" -->
<!-- stat name="clanHallId" val="35" / -->
<!-- /zone -->
<!-- zone name="rainbow_spring_headquarter_territory" type="HqZone" shape="NPoly" minZ="0" maxZ="0" -->
<!-- stat name="clanHallId" val="62" / -->
<!-- /zone -->
<!-- zone name="beast_farm_headquarter_territory" type="HqZone" shape="NPoly" minZ="0" maxZ="0" -->
<!-- stat name="clanHallId" val="63" / -->
<!-- /zone -->
<!-- zone name="fortress_of_dead_headquarter_territory" type="HqZone" shape="NPoly" minZ="-147" maxZ="1853">
<stat name="clanHallId" val="64" />
<node X="57502" Y="-31651" />
<node X="58431" Y="-31607" />
<node X="59638" Y="-30984" />
<node X="56685" Y="-30983" />
</zone -->
</list>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- GM Room Zones -->
<zone type="JailZone" shape="NPoly" minZ="-3049" maxZ="-2849"> <!-- gm_room_solo1 -->
<node X="-116299" Y="-251426" />
<node X="-115745" Y="-251426" />
<node X="-115745" Y="-250840" />
<node X="-116296" Y="-250840" />
<spawn X="-116059" Y="-251145" Z="-2992" />
<spawn X="-116126" Y="-251135" Z="-2992" />
<spawn X="-116050" Y="-251210" Z="-2992" />
<spawn X="-116049" Y="-251082" Z="-2992" />
<spawn X="-116059" Y="-251145" Z="-2992" isChaotic="true" />
<spawn X="-116126" Y="-251135" Z="-2992" isChaotic="true" />
<spawn X="-116050" Y="-251210" Z="-2992" isChaotic="true" />
<spawn X="-116049" Y="-251082" Z="-2992" isChaotic="true" />
</zone>
<zone type="JailZone" shape="NPoly" minZ="-3053" maxZ="-2853"> <!-- gm_room_solo2 -->
<node X="-113350" Y="-251408" />
<node X="-112797" Y="-251407" />
<node X="-112798" Y="-250855" />
<node X="-113353" Y="-250857" />
<spawn X="-112959" Y="-251147" Z="-2992" />
<spawn X="-113157" Y="-251149" Z="-2992" />
<spawn X="-113099" Y="-251231" Z="-2992" />
<spawn X="-113097" Y="-251033" Z="-2992" />
<spawn X="-112959" Y="-251147" Z="-2992" isChaotic="true" />
<spawn X="-113157" Y="-251149" Z="-2992" isChaotic="true" />
<spawn X="-113099" Y="-251231" Z="-2992" isChaotic="true" />
<spawn X="-113097" Y="-251033" Z="-2992" isChaotic="true" />
</zone>
<zone type="JailZone" shape="NPoly" minZ="-2992" maxZ="-2792"> <!-- gm_prison -->
<node X="-116390" Y="-251581" />
<node X="-112756" Y="-251617" />
<node X="-112720" Y="-248199" />
<node X="-116354" Y="-248217" />
</zone>
<zone type="JailZone" shape="NPoly" minZ="-3050" maxZ="-2850"> <!-- gm_room -->
<node X="-115727" Y="-251652" />
<node X="-113365" Y="-251655" />
<node X="-113365" Y="-248191" />
<node X="-115727" Y="-248194" />
<spawn X="-114598" Y="-249431" Z="-2984" />
<spawn X="-114527" Y="-249452" Z="-2984" />
<spawn X="-114567" Y="-249517" Z="-2984" />
<spawn X="-114634" Y="-249516" Z="-2984" />
<spawn X="-114665" Y="-249440" Z="-2984" />
<spawn X="-114626" Y="-249397" Z="-2984" />
<spawn X="-114567" Y="-249384" Z="-2984" />
<spawn X="-114566" Y="-249470" Z="-2984" />
<spawn X="-114601" Y="-249489" Z="-2984" />
<spawn X="-114630" Y="-249465" Z="-2984" />
<spawn X="-114501" Y="-249297" Z="-2984" />
<spawn X="-114475" Y="-249273" Z="-2984" />
<spawn X="-114441" Y="-249293" Z="-2984" />
<spawn X="-114598" Y="-249431" Z="-2984" isChaotic="true" />
<spawn X="-114527" Y="-249452" Z="-2984" isChaotic="true" />
<spawn X="-114567" Y="-249517" Z="-2984" isChaotic="true" />
<spawn X="-114634" Y="-249516" Z="-2984" isChaotic="true" />
<spawn X="-114665" Y="-249440" Z="-2984" isChaotic="true" />
<spawn X="-114626" Y="-249397" Z="-2984" isChaotic="true" />
<spawn X="-114567" Y="-249384" Z="-2984" isChaotic="true" />
<spawn X="-114566" Y="-249470" Z="-2984" isChaotic="true" />
<spawn X="-114601" Y="-249489" Z="-2984" isChaotic="true" />
<spawn X="-114630" Y="-249465" Z="-2984" isChaotic="true" />
<spawn X="-114501" Y="-249297" Z="-2984" isChaotic="true" />
<spawn X="-114475" Y="-249273" Z="-2984" isChaotic="true" />
<spawn X="-114441" Y="-249293" Z="-2984" isChaotic="true" />
</zone>
</list>

View File

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Elven Mother Tree Zones -->
<zone type="MotherTreeZone" shape="NPoly" minZ="-3550" maxZ="-3350"> <!-- mother_tree_start_zone -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="affectedRace" val="1" /> <!-- Elf -->
<stat name="enterMsgId" val="114" />
<stat name="leaveMsgId" val="115" />
<node X="45889" Y="41890" />
<node X="45277" Y="41672" />
<node X="45028" Y="41478" />
<node X="44809" Y="41230" />
<node X="44522" Y="40689" />
<node X="44501" Y="39970" />
<node X="44725" Y="39407" />
<node X="44930" Y="39145" />
<node X="45447" Y="38764" />
<node X="46073" Y="38618" />
<node X="46710" Y="38716" />
<node X="47255" Y="39049" />
<node X="47743" Y="39834" />
<node X="47772" Y="40568" />
<node X="47545" Y="41125" />
<node X="47108" Y="41599" />
<node X="46531" Y="41868" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-3121" maxZ="-2921"> <!-- mother_tree_town -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="affectedRace" val="1" /> <!-- Elf -->
<stat name="enterMsgId" val="114" />
<stat name="leaveMsgId" val="115" />
<node X="45234" Y="49892" />
<node X="45117" Y="49826" />
<node X="45031" Y="49722" />
<node X="44986" Y="49597" />
<node X="44985" Y="49462" />
<node X="45032" Y="49336" />
<node X="45116" Y="49233" />
<node X="45233" Y="49165" />
<node X="45365" Y="49143" />
<node X="45498" Y="49166" />
<node X="45614" Y="49235" />
<node X="45700" Y="49336" />
<node X="45746" Y="49462" />
<node X="45747" Y="49596" />
<node X="45699" Y="49723" />
<node X="45614" Y="49825" />
<node X="45498" Y="49893" />
<node X="45366" Y="49914" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-3745" maxZ="-3545"> <!-- 20_19_worldtree -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="affectedRace" val="1" /> <!-- Elf -->
<stat name="enterMsgId" val="114" />
<stat name="leaveMsgId" val="115" />
<node X="21101" Y="50538" />
<node X="21511" Y="50683" />
<node X="21642" Y="51005" />
<node X="21583" Y="51349" />
<node X="21255" Y="51581" />
<node X="20852" Y="51473" />
<node X="20627" Y="51121" />
<node X="20728" Y="50743" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-3260" maxZ="-3060"> <!-- 20_20_worldtree -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="affectedRace" val="1" /> <!-- Elf -->
<stat name="enterMsgId" val="114" />
<stat name="leaveMsgId" val="115" />
<node X="25548" Y="81124" />
<node X="25660" Y="81548" />
<node X="25380" Y="81884" />
<node X="24960" Y="81972" />
<node X="24660" Y="81716" />
<node X="24604" Y="81324" />
<node X="24816" Y="81012" />
<node X="25248" Y="80944" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-3775" maxZ="-3575"> <!-- 21_20_worldtree -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="affectedRace" val="1" /> <!-- Elf -->
<stat name="enterMsgId" val="114" />
<stat name="leaveMsgId" val="115" />
<node X="57755" Y="85802" />
<node X="57974" Y="86079" />
<node X="57953" Y="86404" />
<node X="57711" Y="86683" />
<node X="57324" Y="86686" />
<node X="57105" Y="86436" />
<node X="57088" Y="86061" />
<node X="57404" Y="85785" />
</zone>
<!-- Oracle of Dusk (Mp Regen Zones) -->
<zone type="MotherTreeZone" shape="NPoly" minZ="-5168" maxZ="-4968"> <!-- ssq_main_event_17_20_01 -->
<stat name="MpRegenBonus" val="2" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-79956" Y="84556" />
<node X="-79832" Y="84620" />
<node X="-79824" Y="84772" />
<node X="-79956" Y="84844" />
<node X="-80080" Y="84772" />
<node X="-80076" Y="84620" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-5164" maxZ="-4964"> <!-- ssq_main_event_17_20_04 -->
<stat name="MpRegenBonus" val="2" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-76936" Y="85164" />
<node X="-76820" Y="85232" />
<node X="-76816" Y="85380" />
<node X="-76948" Y="85444" />
<node X="-77068" Y="85376" />
<node X="-77068" Y="85236" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-5164" maxZ="-4964"> <!-- ssq_main_event_17_20_05 -->
<stat name="MpRegenBonus" val="3" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-74924" Y="87012" />
<node X="-74784" Y="87008" />
<node X="-74712" Y="87132" />
<node X="-74780" Y="87256" />
<node X="-74924" Y="87260" />
<node X="-75000" Y="87140" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-5176" maxZ="-4976"> <!-- ssq_main_event_17_20_03 -->
<stat name="MpRegenBonus" val="3" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-77200" Y="88820" />
<node X="-77076" Y="88896" />
<node X="-77076" Y="89040" />
<node X="-77204" Y="89108" />
<node X="-77328" Y="89044" />
<node X="-77328" Y="88892" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-5172" maxZ="-4972"> <!-- ssq_main_event_17_20_02 -->
<stat name="MpRegenBonus" val="4" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-80204" Y="88220" />
<node X="-80080" Y="88288" />
<node X="-80080" Y="88428" />
<node X="-80208" Y="88504" />
<node X="-80336" Y="88428" />
<node X="-80328" Y="88292" />
</zone>
<!-- Oracle of Dawn (Mp Regen Zones) -->
<zone type="MotherTreeZone" shape="NPoly" minZ="-4916" maxZ="-4716"> <!-- ssq_main_event_17_21_01 -->
<stat name="MpRegenBonus" val="2" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-78796" Y="109452" />
<node X="-78804" Y="109608" />
<node X="-78924" Y="109672" />
<node X="-79056" Y="109600" />
<node X="-79056" Y="109456" />
<node X="-78932" Y="109380" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-4908" maxZ="-4708"> <!-- ssq_main_event_17_21_02 -->
<stat name="MpRegenBonus" val="2" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-75920" Y="109992" />
<node X="-75792" Y="110068" />
<node X="-75792" Y="110220" />
<node X="-75912" Y="110288" />
<node X="-76048" Y="110212" />
<node X="-76044" Y="110068" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-4916" maxZ="-4716"> <!-- ssq_main_event_17_21_05 -->
<stat name="MpRegenBonus" val="3" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-73900" Y="111844" />
<node X="-73752" Y="111840" />
<node X="-73688" Y="111976" />
<node X="-73760" Y="112092" />
<node X="-73904" Y="112092" />
<node X="-73976" Y="111968" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-4912" maxZ="-4712"> <!-- ssq_main_event_17_21_03 -->
<stat name="MpRegenBonus" val="3" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-76172" Y="113656" />
<node X="-76052" Y="113728" />
<node X="-76048" Y="113872" />
<node X="-76172" Y="113944" />
<node X="-76308" Y="113876" />
<node X="-76304" Y="113728" />
</zone>
<zone type="MotherTreeZone" shape="NPoly" minZ="-4908" maxZ="-4708"> <!-- ssq_main_event_17_21_04 -->
<stat name="MpRegenBonus" val="4" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="-79184" Y="113040" />
<node X="-79060" Y="113116" />
<node X="-79052" Y="113268" />
<node X="-79184" Y="113336" />
<node X="-79304" Y="113260" />
<node X="-79304" Y="113116" />
</zone>
<!-- Devil Isle Zones -->
<!-- Recovery -->
<zone type="MotherTreeZone" shape="NPoly" minZ="-3913" maxZ="-3413"> <!-- devil_healing_zone -->
<stat name="HpRegenBonus" val="2" />
<stat name="MpRegenBonus" val="1" />
<stat name="enterMsgId" val="1054" />
<stat name="leaveMsgId" val="1055" />
<node X="41520" Y="205163" />
<node X="44448" Y="205623" />
<node X="44352" Y="208957" />
<node X="42813" Y="208983" />
<node X="41473" Y="207893" />
</zone>
</list>

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- No Landing Zones -->
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_01 -->
<node X="-20873" Y="-21000" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_02 -->
<node X="-120324" Y="-225077" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_03 -->
<node X="-102495" Y="-209023" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_04 -->
<node X="-120156" Y="-207378" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_05 -->
<node X="-87628" Y="-225021" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_06 -->
<node X="-81705" Y="-213209" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_07 -->
<node X="-87593" Y="-207339" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_08 -->
<node X="-93709" Y="-218304" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_09 -->
<node X="-77157" Y="-218608" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_10 -->
<node X="-69682" Y="-209027" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_11 -->
<node X="-76887" Y="-201256" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_12 -->
<node X="-109985" Y="-218701" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_13 -->
<node X="-126367" Y="-218228" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_14 -->
<node X="-109629" Y="-201292" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_15 -->
<node X="-87523" Y="-240169" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_16 -->
<node X="-81748" Y="-245950" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_17 -->
<node X="-77123" Y="-251473" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_18 -->
<node X="-69778" Y="-241801" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_19 -->
<node X="-76754" Y="-234014" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_20 -->
<node X="-93742" Y="-251032" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_21 -->
<node X="-87466" Y="-257752" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="7000"> <!-- nofly_olympiad_stadium_22 -->
<node X="-114413" Y="-213241" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-4096" maxZ="-3896"> <!-- boss_area_antaras -->
<node X="-58026" Y="-190958" />
<node X="-98030" Y="-190958" />
<node X="-97263" Y="-35335" />
<node X="-5341" Y="-34964" />
<node X="-5554" Y="-4207" />
<node X="-129444" Y="-4207" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-3753" maxZ="16407"> <!-- boss_area_valakas -->
<node X="196710" Y="-130845" />
<node X="228895" Y="-130845" />
<node X="229126" Y="-96162" />
<node X="196478" Y="-98187" />
</zone>
<zone type="NoLandingZone" shape="Cylinder" minZ="-10380" maxZ="16407" rad="10000"> <!-- nofly_TOI -->
<node X="115202" Y="16621" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-2610" maxZ="16407"> <!-- nofly_Rainbow_Spring -->
<node X="147262" Y="-130925" />
<node X="159640" Y="-130952" />
<node X="159532" Y="-121970" />
<node X="147455" Y="-121883" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-716" maxZ="16407"> <!-- 24_21_nofly -->
<node X="131156" Y="98394" />
<node X="163755" Y="98405" />
<node X="163747" Y="130995" />
<node X="131168" Y="131006" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-4044" maxZ="16407"> <!-- 25_21_nofly -->
<node X="163907" Y="98398" />
<node X="196477" Y="98408" />
<node X="196495" Y="130990" />
<node X="164032" Y="130993" />
</zone>
<zone type="NoLandingZone" shape="NPoly" minZ="-15000" maxZ="16407"> <!-- nofly_oren01_mb2220_ugoz01 -->
<node X="88417" Y="77085" />
<node X="105546" Y="77041" />
<node X="105421" Y="92728" />
<node X="88481" Y="92787" />
</zone>
</list>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- No Restart Zones -->
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart1 -->
<node X="-120682" Y="-182923" />
<node X="-115515" Y="-182923" />
<node X="-115515" Y="-180121" />
<node X="-120682" Y="-180121" />
</zone>
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart2 -->
<node X="-120677" Y="-180093" />
<node X="-115510" Y="-180093" />
<node X="-115510" Y="-177291" />
<node X="-120677" Y="-177291" />
</zone>
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart3 -->
<node X="-114045" Y="-182907" />
<node X="-108878" Y="-182907" />
<node X="-108878" Y="-180105" />
<node X="-114045" Y="-180105" />
</zone>
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart4 -->
<node X="-114040" Y="-180077" />
<node X="-108873" Y="-180077" />
<node X="-108873" Y="-177275" />
<node X="-114040" Y="-177275" />
</zone>
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart5 -->
<node X="-116267" Y="-177955" />
<node X="-113344" Y="-177955" />
<node X="-113344" Y="-172772" />
<node X="-116267" Y="-172773" />
</zone>
<zone type="NoRestartZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_no_restart6 -->
<node X="-116217" Y="-187430" />
<node X="-113293" Y="-187430" />
<node X="-113293" Y="-182247" />
<node X="-116217" Y="-182247" />
</zone>
</list>

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- CUSTOM - NO STORE ZONES -->
<!-- Giran - northern coridor - west -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3400" maxZ="-3550">
<node X="81446" Y="143530" />
<node X="81635" Y="147720" />
</zone>
<!-- Giran - northern coridor - east -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3350" maxZ="-3450">
<node X="83790" Y="143495" />
<node X="84000" Y="147230" />
</zone>
<!-- Giran - western coridor (up to the Dusk Priestess) -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3650" maxZ="-3400">
<node X="77080" Y="148525" />
<node X="81780" Y="148720" />
</zone>
<!-- Giran - southern coridor -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3550" maxZ="-3400">
<node X="81435" Y="149530" />
<node X="81640" Y="152920" />
</zone>
<!-- Giran - northern path -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="80930" Y="147680" />
<node X="82940" Y="147875" />
</zone>
<!-- Giran - western path -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="80930" Y="147680" />
<node X="81115" Y="149540" />
</zone>
<!-- Giran - southern path -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="80925" Y="149340" />
<node X="82940" Y="149535" />
</zone>
<!-- Giran - large temple area (gatekeeper and Priest of Dawn area) -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3350">
<node X="82735" Y="147000" />
<node X="84320" Y="149780" />
</zone>
<!-- Giran - olympiad manager -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="81985" Y="147450" />
<node X="82205" Y="147710" />
</zone>
<!-- Giran - manor manager -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="81865" Y="149530" />
<node X="82030" Y="149680" />
</zone>
<!-- Giran - auctioneer and gabrielle -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3500" maxZ="-3400">
<node X="81205" Y="149520" />
<node X="81510" Y="149830" />
</zone>
<!-- Giran - path to taurin -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3550" maxZ="-3450">
<node X="81055" Y="146820" />
<node X="81455" Y="147000" />
</zone>
<!-- Giran - path to warehouse -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3550" maxZ="-3450">
<node X="81620" Y="146465" />
<node X="82035" Y="146680" />
</zone>
<!-- Giran - Taurin -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3550" maxZ="-3450">
<node X="80655" Y="146350" />
<node X="80855" Y="146460" />
</zone>
<!-- Giran - Collob -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-3550" maxZ="-3450">
<node X="79200" Y="149455" />
<node X="79300" Y="149645" />
</zone>
<!-- Aden - olympiad manager square -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-2250" maxZ="-2150">
<node X="146841" Y="26541" />
<node X="148071" Y="27425" />
</zone>
<!-- Aden - central stairs -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-2250" maxZ="-1950">
<node X="147273" Y="25941" />
<node X="147645" Y="26538" />
</zone>
<!-- Aden - temple square -->
<zone type="NoStoreZone" shape="Cuboid" minZ="-2050" maxZ="-1950">
<node X="146233" Y="25938" />
<node X="148729" Y="25553" />
</zone>
</list>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-5383" maxZ="-4883"> <!-- oracle_of_dusk_waitroom -->
<node X="-82064" Y="85608" />
<node X="-75832" Y="85626" />
<node X="-75832" Y="88068" />
<node X="-82099" Y="88080" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-5118" maxZ="-4618"> <!-- oracle_of_dawn_waitroom -->
<node X="-74529" Y="110475" />
<node X="-75832" Y="110476" />
<node X="-74524" Y="113224" />
<node X="-80892" Y="113211" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-6949" maxZ="-6449"> <!-- rift_between_worlds_waitroom -->
<node X="-115608" Y="-182374" />
<node X="-113976" Y="-182380" />
<node X="-113990" Y="-177851" />
<node X="-115606" Y="-177858" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-3668" maxZ="-3168"> <!-- monster_derby_track -->
<node X="14566" Y="182997" />
<node X="13257" Y="182976" />
<node X="13250" Y="184333" />
<node X="11629" Y="184316" />
<node X="11621" Y="181298" />
<node X="14486" Y="181302" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-2992" maxZ="-2792"> <!-- gm_prison -->
<node X="-116390" Y="-251581" />
<node X="-112756" Y="-251617" />
<node X="-112720" Y="-248199" />
<node X="-116354" Y="-248217" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-3753" maxZ="32767"> <!-- boss_area_valakas -->
<node X="196710" Y="-130845" />
<node X="228895" Y="-130845" />
<node X="229126" Y="-96162" />
<node X="196478" Y="-98187" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-3753" maxZ="32767"> <!-- boss_area_valakas2 -->
<node X="183634" Y="-115085" />
<node X="183634" Y="-114885" />
<node X="184000" Y="-115085" />
<node X="184000" Y="-114885" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-10736" maxZ="-5736"> <!-- 20_26_basetower_inner_01 -->
<node X="12080" Y="274633" />
<node X="20523" Y="274633" />
<node X="20553" Y="284567" />
<node X="11947" Y="284600" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-15364" maxZ="-6864"> <!-- 19_26_tower_a_inner_01 -->
<node X="-23324" Y="276243" />
<node X="-17912" Y="276243" />
<node X="-17912" Y="280871" />
<node X="-23324" Y="280871" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-16148" maxZ="-4648"> <!-- 19_26_tower_b_inner_01 -->
<node X="-15081" Y="271397" />
<node X="-9858" Y="271401" />
<node X="-9809" Y="282115" />
<node X="-15085" Y="282131" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-10412" maxZ="-5112"> <!-- 20_24_beres_01 -->
<node X="11214" Y="205578" />
<node X="20607" Y="205578" />
<node X="20648" Y="220271" />
<node X="11172" Y="220271" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-14581" maxZ="-4581"> <!-- 20_21_cruma_tower -->
<node X="9951" Y="106537" />
<node X="25483" Y="106522" />
<node X="25456" Y="121770" />
<node X="9991" Y="121797" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-8800" maxZ="200"> <!-- 25_15_godard15_nocall -->
<node X="164226" Y="-94258" />
<node X="171998" Y="-94378" />
<node X="171845" Y="-84191" />
<node X="164030" Y="-83790" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-8800" maxZ="200"> <!-- 25_15_godard14_nocall -->
<node X="176475" Y="-90312" />
<node X="192224" Y="-90260" />
<node X="192236" Y="-84568" />
<node X="180669" Y="-84640" />
<node X="180606" Y="-82852" />
<node X="176498" Y="-82757" />
</zone>
<zone type="NoSummonFriendZone" shape="NPoly" minZ="-7318" maxZ="-6718"> <!-- 25_15_godard18_nocall -->
<node X="172063" Y="-90095" />
<node X="176460" Y="-90057" />
<node X="176460" Y="-74019" />
<node X="172089" Y="-74076" />
</zone>
</list>

View File

@ -0,0 +1,356 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Olympiad Stadium Zones -->
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3100" maxZ="-2825"> <!-- olympiad_stadium_01 -->
<node X="-21680" Y="-20140" />
<node X="-21965" Y="-20500" />
<node X="-21965" Y="-21530" />
<node X="-21680" Y="-21870" />
<node X="-19953" Y="-21870" />
<node X="-19670" Y="-21530" />
<node X="-19670" Y="-20500" />
<node X="-19953" Y="-20142" />
<!-- point1 -->
<spawn X="-21680" Y="-21028" Z="-3022" />
<!-- point2 -->
<spawn X="-19953" Y="-21028" Z="-3022" />
<!-- spectator -->
<spawn X="-20816" Y="-21028" Z="-3022" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_02 -->
<node X="-119418" Y="-225869" />
<node X="-119133" Y="-225519" />
<node X="-119133" Y="-224488" />
<node X="-119418" Y="-224138" />
<node X="-121143" Y="-224138" />
<node X="-121428" Y="-224488" />
<node X="-121428" Y="-225519" />
<node X="-121143" Y="-225869" />
<!-- point1 -->
<spawn X="-119418" Y="-225003" Z="-3327" />
<!-- point2 -->
<spawn X="-121143" Y="-225003" Z="-3327" />
<!-- spectator -->
<spawn X="-120280" Y="-225003" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_03 -->
<node X="-101625" Y="-209870" />
<node X="-101340" Y="-209520" />
<node X="-101340" Y="-208489" />
<node X="-101625" Y="-208139" />
<node X="-103350" Y="-208139" />
<node X="-103635" Y="-208489" />
<node X="-103635" Y="-209520" />
<node X="-103350" Y="-209870" />
<!-- point1 -->
<spawn X="-101625" Y="-209004" Z="-3327" />
<!-- point2 -->
<spawn X="-103350" Y="-209004" Z="-3327" />
<!-- spectator -->
<spawn X="-102487" Y="-209004" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_04 -->
<node X="-119385" Y="-208237" />
<node X="-119100" Y="-207887" />
<node X="-119100" Y="-206856" />
<node X="-119385" Y="-206506" />
<node X="-121110" Y="-206506" />
<node X="-121395" Y="-206856" />
<node X="-121395" Y="-207887" />
<node X="-121110" Y="-208237" />
<!-- point1 -->
<spawn X="-119385" Y="-207371" Z="-3327" />
<!-- point2 -->
<spawn X="-121110" Y="-207371" Z="-3327" />
<!-- spectator -->
<spawn X="-120247" Y="-207371" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_05 -->
<node X="-86650" Y="-225853" />
<node X="-86365" Y="-225503" />
<node X="-86365" Y="-224472" />
<node X="-86650" Y="-224122" />
<node X="-88375" Y="-224122" />
<node X="-88660" Y="-224472" />
<node X="-88660" Y="-225503" />
<node X="-88375" Y="-225853" />
<!-- point1 -->
<spawn X="-86650" Y="-224987" Z="-3327" />
<!-- point2 -->
<spawn X="-88375" Y="-224987" Z="-3327" />
<!-- spectator -->
<spawn X="-87512" Y="-224987" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_06 -->
<node X="-80875" Y="-214077" />
<node X="-80590" Y="-213727" />
<node X="-80590" Y="-212696" />
<node X="-80875" Y="-212346" />
<node X="-82600" Y="-212346" />
<node X="-82885" Y="-212696" />
<node X="-82885" Y="-213727" />
<node X="-82600" Y="-214077" />
<!-- point1 -->
<spawn X="-80875" Y="-213211" Z="-3327" />
<!-- point2 -->
<spawn X="-82600" Y="-213211" Z="-3327" />
<!-- spectator -->
<spawn X="-81737" Y="-213211" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_07 -->
<node X="-86610" Y="-208240" />
<node X="-86325" Y="-207890" />
<node X="-86325" Y="-206860" />
<node X="-86610" Y="-206510" />
<node X="-88335" Y="-206510" />
<node X="-88620" Y="-206860" />
<node X="-88620" Y="-207890" />
<node X="-88335" Y="-208240" />
<!-- point1 -->
<spawn X="-86610" Y="-207354" Z="-3327" />
<!-- point2 -->
<spawn X="-88335" Y="-207354" Z="-3327" />
<!-- spectator -->
<spawn X="-87472" Y="-207354" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_08 -->
<node X="-92940" Y="-219120" />
<node X="-92655" Y="-218770" />
<node X="-92655" Y="-217740" />
<node X="-92940" Y="-217390" />
<node X="-94665" Y="-217390" />
<node X="-94950" Y="-217740" />
<node X="-94950" Y="-218770" />
<node X="-94665" Y="-219120" />
<!-- point1 -->
<spawn X="-92940" Y="-218254" Z="-3327" />
<!-- point2 -->
<spawn X="-94665" Y="-218254" Z="-3327" />
<!-- spectator -->
<spawn X="-93802" Y="-218254" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_09 -->
<node X="-76250" Y="-219566" />
<node X="-75965" Y="-219216" />
<node X="-75965" Y="-218185" />
<node X="-76250" Y="-217835" />
<node X="-77975" Y="-217835" />
<node X="-78260" Y="-218185" />
<node X="-78260" Y="-219216" />
<node X="-77975" Y="-219566" />
<!-- point1 -->
<spawn X="-76250" Y="-218700" Z="-3327" />
<!-- point2 -->
<spawn X="-77975" Y="-218700" Z="-3327" />
<!-- spectator -->
<spawn X="-77112" Y="-218700" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_10 -->
<node X="-68857" Y="-209900" />
<node X="-68572" Y="-209550" />
<node X="-68572" Y="-208519" />
<node X="-68857" Y="-208169" />
<node X="-70582" Y="-208169" />
<node X="-70867" Y="-208519" />
<node X="-70867" Y="-209550" />
<node X="-70582" Y="-209900" />
<!-- point1 -->
<spawn X="-68857" Y="-209034" Z="-3327" />
<!-- point2 -->
<spawn X="-70582" Y="-209034" Z="-3327" />
<!-- spectator -->
<spawn X="-69719" Y="-209034" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_11 -->
<node X="-75962" Y="-202092" />
<node X="-75677" Y="-201742" />
<node X="-75677" Y="-200711" />
<node X="-75962" Y="-200361" />
<node X="-77687" Y="-200361" />
<node X="-77972" Y="-200711" />
<node X="-77972" Y="-201742" />
<node X="-77687" Y="-202092" />
<!-- point1 -->
<spawn X="-75962" Y="-201226" Z="-3327" />
<!-- point2 -->
<spawn X="-77687" Y="-201226" Z="-3327" />
<!-- spectator -->
<spawn X="-76824" Y="-201226" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_12 -->
<node X="-109018" Y="-219565" />
<node X="-108733" Y="-219215" />
<node X="-108733" Y="-218184" />
<node X="-109018" Y="-217834" />
<node X="-110743" Y="-217834" />
<node X="-111028" Y="-218184" />
<node X="-111028" Y="-219215" />
<node X="-110743" Y="-219565" />
<!-- point1 -->
<spawn X="-109018" Y="-218699" Z="-3327" />
<!-- point2 -->
<spawn X="-110743" Y="-218699" Z="-3327" />
<!-- spectator -->
<spawn X="-109880" Y="-218699" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_13 -->
<node X="-125722" Y="-219117" />
<node X="-125437" Y="-218767" />
<node X="-125437" Y="-217736" />
<node X="-125722" Y="-217386" />
<node X="-127447" Y="-217386" />
<node X="-127732" Y="-217736" />
<node X="-127732" Y="-218767" />
<node X="-127447" Y="-219117" />
<!-- point1 -->
<spawn X="-125722" Y="-218251" Z="-3327" />
<!-- point2 -->
<spawn X="-127447" Y="-218251" Z="-3327" />
<!-- spectator -->
<spawn X="-126584" Y="-218251" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_14 -->
<node X="-108730" Y="-202093" />
<node X="-108445" Y="-201743" />
<node X="-108445" Y="-200712" />
<node X="-108730" Y="-200362" />
<node X="-110455" Y="-200362" />
<node X="-110740" Y="-200712" />
<node X="-110740" Y="-201743" />
<node X="-110455" Y="-202093" />
<!-- point1 -->
<spawn X="-108730" Y="-201227" Z="-3327" />
<!-- point2 -->
<spawn X="-110455" Y="-201227" Z="-3327" />
<!-- spectator -->
<spawn X="-109592" Y="-201227" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_15 -->
<node X="-86618" Y="-241008" />
<node X="-86333" Y="-240658" />
<node X="-86333" Y="-239627" />
<node X="-86618" Y="-239277" />
<node X="-88343" Y="-239277" />
<node X="-88628" Y="-239627" />
<node X="-88628" Y="-240658" />
<node X="-88343" Y="-241008" />
<!-- point1 -->
<spawn X="-86618" Y="-240142" Z="-3327" />
<!-- point2 -->
<spawn X="-88343" Y="-240142" Z="-3327" />
<!-- spectator -->
<spawn X="-87480" Y="-240142" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_16 -->
<node X="-80890" Y="-246830" />
<node X="-80605" Y="-246480" />
<node X="-80605" Y="-245449" />
<node X="-80890" Y="-245099" />
<node X="-82615" Y="-245099" />
<node X="-82900" Y="-245449" />
<node X="-82900" Y="-246480" />
<node X="-82615" Y="-246830" />
<!-- point1 -->
<spawn X="-80890" Y="-245964" Z="-3327" />
<!-- point2 -->
<spawn X="-82615" Y="-245964" Z="-3327" />
<!-- spectator -->
<spawn X="-81752" Y="-245964" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_17 -->
<node X="-76249" Y="-252348" />
<node X="-75964" Y="-251998" />
<node X="-75964" Y="-250967" />
<node X="-76249" Y="-250617" />
<node X="-77974" Y="-250617" />
<node X="-78259" Y="-250967" />
<node X="-78259" Y="-251998" />
<node X="-77974" Y="-252348" />
<!-- point1 -->
<spawn X="-76249" Y="-251482" Z="-3327" />
<!-- point2 -->
<spawn X="-77974" Y="-251482" Z="-3327" />
<!-- spectator -->
<spawn X="-77111" Y="-251482" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_18 -->
<node X="-68857" Y="-242637" />
<node X="-68572" Y="-242287" />
<node X="-68572" Y="-241256" />
<node X="-68857" Y="-240906" />
<node X="-70582" Y="-240906" />
<node X="-70867" Y="-241256" />
<node X="-70867" Y="-242287" />
<node X="-70582" Y="-242637" />
<!-- point1 -->
<spawn X="-68857" Y="-241771" Z="-3327" />
<!-- point2 -->
<spawn X="-70582" Y="-241771" Z="-3327" />
<!-- spectator -->
<spawn X="-69719" Y="-241771" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_19 -->
<node X="-75961" Y="-234861" />
<node X="-75676" Y="-234511" />
<node X="-75676" Y="-233480" />
<node X="-75961" Y="-233130" />
<node X="-77686" Y="-233130" />
<node X="-77971" Y="-233480" />
<node X="-77971" Y="-234511" />
<node X="-77686" Y="-234861" />
<!-- point1 -->
<spawn X="-75961" Y="-233995" Z="-3327" />
<!-- point2 -->
<spawn X="-77686" Y="-233995" Z="-3327" />
<!-- spectator -->
<spawn X="-76823" Y="-233995" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_20 -->
<node X="-92953" Y="-251900" />
<node X="-92668" Y="-251550" />
<node X="-92668" Y="-250519" />
<node X="-92953" Y="-250169" />
<node X="-94678" Y="-250169" />
<node X="-94963" Y="-250519" />
<node X="-94963" Y="-251550" />
<node X="-94678" Y="-251900" />
<!-- point1 -->
<spawn X="-92953" Y="-251034" Z="-3327" />
<!-- point2 -->
<spawn X="-94678" Y="-251034" Z="-3327" />
<!-- spectator -->
<spawn X="-93815" Y="-251034" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_21 -->
<node X="-86650" Y="-258653" />
<node X="-86365" Y="-258303" />
<node X="-86365" Y="-257272" />
<node X="-86650" Y="-256922" />
<node X="-88375" Y="-256922" />
<node X="-88660" Y="-257272" />
<node X="-88660" Y="-258303" />
<node X="-88375" Y="-258653" />
<!-- point1 -->
<spawn X="-86650" Y="-257787" Z="-3327" />
<!-- point2 -->
<spawn X="-88375" Y="-257787" Z="-3327" />
<!-- spectator -->
<spawn X="-87512" Y="-257787" Z="-3327" />
</zone>
<zone type="OlympiadStadiumZone" shape="NPoly" minZ="-3400" maxZ="-3125"> <!-- olympiad_stadium_22 -->
<node X="-113674" Y="-214060" />
<node X="-113389" Y="-213710" />
<node X="-113389" Y="-212679" />
<node X="-113674" Y="-212329" />
<node X="-115399" Y="-212329" />
<node X="-115684" Y="-212679" />
<node X="-115684" Y="-213710" />
<node X="-115399" Y="-214060" />
<!-- point1 -->
<spawn X="-113674" Y="-213194" Z="-3327" />
<!-- point2 -->
<spawn X="-115399" Y="-213194" Z="-3327" />
<!-- spectator -->
<spawn X="-114536" Y="-213194" Z="-3327" />
</zone>
</list>

View File

@ -0,0 +1,915 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Peace Zones -->
<zone type="PeaceZone" shape="NPoly" minZ="-3966" maxZ="-3466"> <!-- talking_island_town_peace_zone1 -->
<node X="-84028" Y="239722" />
<node X="-81007" Y="243210" />
<node X="-81021" Y="243484" />
<node X="-84308" Y="246247" />
<node X="-84552" Y="246239" />
<node X="-87638" Y="242837" />
<node X="-87611" Y="242574" />
<node X="-84305" Y="239649" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3820" maxZ="-3320"> <!-- talking_island_town_peace_zone2 -->
<node X="-83428" Y="240398" />
<node X="-82605" Y="241262" />
<node X="-81512" Y="242568" />
<node X="-82035" Y="242583" />
<node X="-83396" Y="241129" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3789" maxZ="-3289"> <!-- talking_island_town_peace_zone3 -->
<node X="-86138" Y="243444" />
<node X="-85039" Y="244801" />
<node X="-84811" Y="245977" />
<node X="-86323" Y="244370" />
<node X="-87229" Y="243237" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3846" maxZ="-3346"> <!-- talking_island_town_peace_zone4 -->
<node X="-85539" Y="241748" />
<node X="-87612" Y="242572" />
<node X="-87470" Y="242383" />
<node X="-86310" Y="241337" />
<node X="-85622" Y="240814" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3699" maxZ="-2699"> <!-- mage_start_peace_1 -->
<node X="-90034" Y="248143" />
<node X="-89960" Y="248698" />
<node X="-90520" Y="248847" />
<node X="-91136" Y="248445" />
<node X="-91270" Y="248296" />
<node X="-91328" Y="248092" />
<node X="-91250" Y="247867" />
<node X="-91063" Y="247704" />
<node X="-90863" Y="247676" />
<node X="-90638" Y="247748" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4043" maxZ="-3043"> <!-- mage_start_peace_2 -->
<node X="-90165" Y="247096" />
<node X="-88576" Y="248162" />
<node X="-89962" Y="250239" />
<node X="-91512" Y="249150" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3659" maxZ="-2659"> <!-- mage_start_peace_3 -->
<node X="-88457" Y="248867" />
<node X="-88611" Y="249099" />
<node X="-89054" Y="249756" />
<node X="-89279" Y="250048" />
<node X="-89684" Y="250143" />
<node X="-90008" Y="249970" />
<node X="-88864" Y="248209" />
<node X="-88542" Y="248446" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3659" maxZ="-2659"> <!-- mage_start_peace_4 -->
<node X="-88732" Y="248912" />
<node X="-88418" Y="249116" />
<node X="-89005" Y="249980" />
<node X="-89311" Y="249787" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3659" maxZ="-2659"> <!-- mage_start_peace_5 -->
<node X="-88612" Y="249461" />
<node X="-88559" Y="249539" />
<node X="-88581" Y="249649" />
<node X="-88680" Y="249708" />
<node X="-88761" Y="249704" />
<node X="-89050" Y="249513" />
<node X="-89073" Y="249332" />
<node X="-88895" Y="249273" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3284" maxZ="-2284"> <!-- fighter_start_peace_1 -->
<node X="-73436" Y="257725" />
<node X="-71668" Y="256229" />
<node X="-69952" Y="258077" />
<node X="-71896" Y="259701" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3272" maxZ="-2272"> <!-- fighter_start_peace_2 -->
<node X="-73180" Y="257663" />
<node X="-72460" Y="258619" />
<node X="-72720" Y="258831" />
<node X="-73284" Y="258115" />
<node X="-73260" Y="257855" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3272" maxZ="-2272"> <!-- fighter_start_peace_3 -->
<node X="-71279" Y="256408" />
<node X="-70679" Y="257116" />
<node X="-70939" Y="257328" />
<node X="-71575" Y="256612" />
<node X="-71634" Y="256392" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3306" maxZ="-2306"> <!-- fighter_start_peace_4 -->
<node X="-72596" Y="259181" />
<node X="-70363" Y="257272" />
<node X="-70041" Y="257631" />
<node X="-72303" Y="259545" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-8507" maxZ="-1507"> <!-- darkelf_town_peace_zone -->
<node X="15719" Y="16735" />
<node X="14885" Y="19139" />
<node X="12223" Y="21049" />
<node X="8962" Y="20203" />
<node X="7340" Y="18060" />
<node X="7372" Y="15649" />
<node X="8018" Y="14013" />
<node X="9389" Y="12836" />
<node X="10669" Y="12131" />
<node X="12499" Y="12455" />
<node X="14684" Y="13625" />
<node X="15441" Y="15060" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4571" maxZ="-2071"> <!-- darkelf_start_peace_1 -->
<node X="28422" Y="8936" />
<node X="30282" Y="10670" />
<node X="29952" Y="11744" />
<node X="28457" Y="13117" />
<node X="27730" Y="13126" />
<node X="26435" Y="11893" />
<node X="26450" Y="10146" />
<node X="27792" Y="8929" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4588" maxZ="-2088"> <!-- darkelf_start_peace_2 -->
<node X="29434" Y="10233" />
<node X="31273" Y="10233" />
<node X="31273" Y="11827" />
<node X="29431" Y="11830" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3511" maxZ="-2011"> <!-- elf_town_peace1 -->
<node X="47758" Y="51443" />
<node X="46735" Y="52457" />
<node X="45358" Y="52947" />
<node X="44182" Y="52419" />
<node X="43398" Y="51830" />
<node X="43006" Y="51401" />
<node X="42508" Y="50515" />
<node X="42343" Y="49479" />
<node X="42547" Y="48421" />
<node X="43138" Y="47363" />
<node X="44342" Y="46639" />
<node X="45621" Y="46486" />
<node X="45974" Y="46554" />
<node X="47114" Y="46996" />
<node X="47777" Y="47710" />
<node X="48202" Y="48441" />
<node X="48400" Y="49391" />
<node X="48365" Y="50345" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4071" maxZ="-2571"> <!-- elf_start_peace1 -->
<node X="47987" Y="40688" />
<node X="47644" Y="41254" />
<node X="47139" Y="41756" />
<node X="46576" Y="42051" />
<node X="45590" Y="42006" />
<node X="44823" Y="41489" />
<node X="44355" Y="40860" />
<node X="44168" Y="40397" />
<node X="44319" Y="39900" />
<node X="44723" Y="39030" />
<node X="45366" Y="38626" />
<node X="46511" Y="38446" />
<node X="47292" Y="38808" />
<node X="47736" Y="39330" />
<node X="48079" Y="39911" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4082" maxZ="-2582"> <!-- elf_start_peace2 -->
<node X="44215" Y="39803" />
<node X="44497" Y="40504" />
<node X="43643" Y="41416" />
<node X="43398" Y="41419" />
<node X="42884" Y="41191" />
<node X="42475" Y="40529" />
<node X="42466" Y="40285" />
<node X="42762" Y="39658" />
<node X="43311" Y="39336" />
<node X="43546" Y="39327" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4082" maxZ="-2582"> <!-- elf_start_peace3 -->
<node X="49799" Y="39991" />
<node X="49812" Y="40226" />
<node X="48958" Y="41201" />
<node X="48724" Y="41204" />
<node X="48096" Y="40759" />
<node X="47883" Y="40159" />
<node X="48123" Y="39481" />
<node X="48636" Y="39123" />
<node X="48885" Y="39121" />
<node X="49368" Y="39360" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3245" maxZ="-2745"> <!-- guldiocastle_town_peace1 -->
<node X="-11998" Y="123905" />
<node X="-12880" Y="126192" />
<node X="-13928" Y="126485" />
<node X="-14408" Y="126484" />
<node X="-15239" Y="126174" />
<node X="-16120" Y="125367" />
<node X="-16551" Y="124468" />
<node X="-16550" Y="123911" />
<node X="-16509" Y="123323" />
<node X="-14638" Y="122381" />
<node X="-12022" Y="122270" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3156" maxZ="-2656"> <!-- guldiocastle_town_peace2 -->
<node X="-14956" Y="121115" />
<node X="-12670" Y="121093" />
<node X="-12021" Y="121755" />
<node X="-12019" Y="123005" />
<node X="-15400" Y="123009" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3244" maxZ="-2744"> <!-- gludin_town_peace1 -->
<node X="-79283" Y="149148" />
<node X="-78525" Y="149851" />
<node X="-78549" Y="152429" />
<node X="-82513" Y="152442" />
<node X="-82502" Y="149146" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3244" maxZ="-2744"> <!-- gludin_town_peace2 -->
<node X="-84874" Y="149370" />
<node X="-81337" Y="149370" />
<node X="-81337" Y="152419" />
<node X="-84874" Y="152419" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3276" maxZ="-2776"> <!-- gludin_town_peace3 -->
<node X="-84884" Y="152261" />
<node X="-78803" Y="152218" />
<node X="-78803" Y="156106" />
<node X="-84884" Y="156113" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3340" maxZ="-2840"> <!-- gludin_town_peace4 -->
<node X="-80698" Y="155950" />
<node X="-79097" Y="154122" />
<node X="-77125" Y="155447" />
<node X="-77948" Y="156503" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3456" maxZ="-2956"> <!-- gludin_town_peace5 -->
<node X="-78474" Y="156088" />
<node X="-77131" Y="155440" />
<node X="-77831" Y="156543" />
<node X="-78543" Y="156393" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3157" maxZ="-2157"> <!-- dion_town_peace1 -->
<node X="14290" Y="141403" />
<node X="15261" Y="141328" />
<node X="17478" Y="142633" />
<node X="17461" Y="143349" />
<node X="16751" Y="144384" />
<node X="15769" Y="144681" />
<node X="14470" Y="143863" />
<node X="14010" Y="143120" />
<node X="13978" Y="141885" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2802" maxZ="-2302"> <!-- dion_town_peace2 -->
<node X="15653" Y="141687" />
<node X="17220" Y="141541" />
<node X="17361" Y="142876" />
<node X="15789" Y="143037" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2858" maxZ="-2358"> <!-- dion_town_peace3 -->
<node X="17006" Y="141806" />
<node X="17410" Y="141768" />
<node X="17503" Y="142644" />
<node X="17107" Y="142709" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3267" maxZ="-2567"> <!-- dion_town_peace4 -->
<node X="15469" Y="143498" />
<node X="17126" Y="142976" />
<node X="19489" Y="144901" />
<node X="17833" Y="147643" />
<node X="16125" Y="146869" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3230" maxZ="-2530"> <!-- dion_town_peace5 -->
<node X="20387" Y="142469" />
<node X="21407" Y="143663" />
<node X="21402" Y="146315" />
<node X="16663" Y="146406" />
<node X="16461" Y="143892" />
<node X="18915" Y="142444" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3957" maxZ="-3357"> <!-- floran_town_peace1 -->
<node X="18134" Y="169527" />
<node X="18602" Y="169760" />
<node X="18641" Y="169827" />
<node X="18429" Y="170529" />
<node X="17386" Y="170916" />
<node X="16777" Y="170706" />
<node X="16555" Y="170564" />
<node X="16530" Y="170497" />
<node X="16732" Y="169864" />
<node X="17253" Y="169433" />
<node X="17396" Y="169394" />
<node X="17768" Y="169440" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3967" maxZ="-3367"> <!-- floran_town_peace2 -->
<node X="17082" Y="169410" />
<node X="17464" Y="169397" />
<node X="17285" Y="169889" />
<node X="16773" Y="170007" />
<node X="16717" Y="169945" />
<node X="16823" Y="169466" />
<node X="16882" Y="169431" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3956" maxZ="-3356"> <!-- floran_town_peace3 -->
<node X="18487" Y="170499" />
<node X="18390" Y="170915" />
<node X="18343" Y="170933" />
<node X="17768" Y="170965" />
<node X="17223" Y="170891" />
<node X="16878" Y="170752" />
<node X="18430" Y="170079" />
<node X="18543" Y="170093" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3464" maxZ="-3264"> <!-- giran_town_peace12 -->
<node X="85048" Y="145756" />
<node X="86104" Y="145752" />
<node X="86100" Y="145888" />
<node X="85060" Y="145856" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3654" maxZ="-2654"> <!-- giran_town_peace1 -->
<node X="77164" Y="147420" />
<node X="79291" Y="147417" />
<node X="79278" Y="149808" />
<node X="77155" Y="149824" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3598" maxZ="-1598"> <!-- giran_town_peace2 -->
<node X="79193" Y="144776" />
<node X="85019" Y="144748" />
<node X="85148" Y="149864" />
<node X="79198" Y="149858" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3602" maxZ="-2402"> <!-- giran_town_peace3 -->
<node X="79180" Y="149311" />
<node X="83508" Y="149374" />
<node X="83510" Y="151272" />
<node X="79197" Y="151297" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3636" maxZ="-3036"> <!-- giran_town_peace4 -->
<node X="85619" Y="150120" />
<node X="86004" Y="150125" />
<node X="86005" Y="152300" />
<node X="85617" Y="152305" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3799" maxZ="-2399"> <!-- giran_town_peace5 -->
<node X="84848" Y="152234" />
<node X="86779" Y="152240" />
<node X="86781" Y="153610" />
<node X="84844" Y="153610" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3872" maxZ="-1872"> <!-- giran_town_peace6 -->
<node X="84922" Y="146919" />
<node X="88437" Y="146909" />
<node X="88445" Y="150047" />
<node X="85090" Y="150032" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3810" maxZ="-2110"> <!-- giran_town_peace7 -->
<node X="80304" Y="143626" />
<node X="85033" Y="143631" />
<node X="85029" Y="144930" />
<node X="80298" Y="144914" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3538" maxZ="-3338"> <!-- giran_town_peace8 -->
<node X="79190" Y="150958" />
<node X="82705" Y="150962" />
<node X="82717" Y="152824" />
<node X="79202" Y="152821" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3496" maxZ="-2996"> <!-- giran_town_peace9 -->
<node X="84838" Y="145789" />
<node X="86101" Y="145774" />
<node X="86105" Y="146911" />
<node X="84842" Y="146925" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3599" maxZ="-2999"> <!-- giran_town_peace10 -->
<node X="85088" Y="149126" />
<node X="86468" Y="149142" />
<node X="86488" Y="150240" />
<node X="85089" Y="150240" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3410" maxZ="-3210"> <!-- giran_town_peace11 -->
<node X="83111" Y="143502" />
<node X="85038" Y="143499" />
<node X="85038" Y="143856" />
<node X="83111" Y="143859" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1483" maxZ="516"> <!-- orc_start_peace -->
<node X="-58952" Y="-115543" />
<node X="-52769" Y="-115553" />
<node X="-52758" Y="-111736" />
<node X="-58952" Y="-111749" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-397" maxZ="603"> <!-- orc_town_peace1 -->
<node X="-42044" Y="-113585" />
<node X="-42533" Y="-111862" />
<node X="-43811" Y="-110599" />
<node X="-45614" Y="-110071" />
<node X="-47375" Y="-110007" />
<node X="-47397" Y="-117215" />
<node X="-46661" Y="-117220" />
<node X="-45633" Y="-117094" />
<node X="-43791" Y="-116569" />
<node X="-42530" Y="-115322" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-460" maxZ="540"> <!-- orc_town_peace2 -->
<node X="-50211" Y="-116941" />
<node X="-47413" Y="-117301" />
<node X="-47358" Y="-109913" />
<node X="-49161" Y="-109305" />
<node X="-51245" Y="-109819" />
<node X="-53401" Y="-112501" />
<node X="-53788" Y="-113966" />
<node X="-52931" Y="-115293" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-652" maxZ="348"> <!-- dwarf_start -->
<node X="110063" Y="-175794" />
<node X="110565" Y="-173944" />
<node X="110518" Y="-173426" />
<node X="109153" Y="-171575" />
<node X="106345" Y="-171905" />
<node X="104853" Y="-174391" />
<node X="105481" Y="-176144" />
<node X="106031" Y="-177035" />
<node X="107660" Y="-177623" />
<node X="109208" Y="-177140" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1600" maxZ="-400"> <!-- dwarf_town_peace1 -->
<node X="117520" Y="-181718" />
<node X="117423" Y="-180017" />
<node X="115371" Y="-176774" />
<node X="114885" Y="-176815" />
<node X="114070" Y="-177180" />
<node X="113883" Y="-179469" />
<node X="114580" Y="-181875" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1685" maxZ="-685"> <!-- dwarf_town_peace2 -->
<node X="117630" Y="-182925" />
<node X="115159" Y="-182811" />
<node X="115477" Y="-183673" />
<node X="115600" Y="-183891" />
<node X="115740" Y="-184086" />
<node X="115948" Y="-184206" />
<node X="116257" Y="-184251" />
<node X="116710" Y="-184253" />
<node X="117023" Y="-184164" />
<node X="117204" Y="-184034" />
<node X="117335" Y="-183812" />
<node X="117503" Y="-183386" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1724" maxZ="-724"> <!-- dwarf_town_peace3 -->
<node X="114641" Y="-183866" />
<node X="117517" Y="-183140" />
<node X="117778" Y="-182649" />
<node X="117775" Y="-182246" />
<node X="117733" Y="-182086" />
<node X="117432" Y="-181576" />
<node X="114638" Y="-181551" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1000" maxZ="-400"> <!-- dwarf_town_peace4 -->
<node X="116406" Y="-176891" />
<node X="115964" Y="-176809" />
<node X="115535" Y="-176773" />
<node X="115142" Y="-176788" />
<node X="115867" Y="-178003" />
<node X="117355" Y="-179595" />
<node X="117300" Y="-178525" />
<node X="117172" Y="-177847" />
<node X="116798" Y="-177111" />
<node X="116643" Y="-176968" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1257" maxZ="-657"> <!-- dwarf_town_peace5 -->
<node X="116649" Y="-179760" />
<node X="117429" Y="-180911" />
<node X="117493" Y="-180052" />
<node X="117467" Y="-179575" />
<node X="116977" Y="-178211" />
<node X="116142" Y="-178429" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1822" maxZ="-1022"> <!-- oren_town_peace1 -->
<node X="78900" Y="52076" />
<node X="84126" Y="52049" />
<node X="84099" Y="57117" />
<node X="78872" Y="57144" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4652" maxZ="347"> <!-- ivory_tower_peace1 -->
<node X="86094" Y="16382" />
<node X="85888" Y="16744" />
<node X="85510" Y="16968" />
<node X="85139" Y="16966" />
<node X="84767" Y="16736" />
<node X="84576" Y="16394" />
<node X="84580" Y="15977" />
<node X="84783" Y="15631" />
<node X="85143" Y="15417" />
<node X="85499" Y="15403" />
<node X="85886" Y="15642" />
<node X="86049" Y="15990" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2749" maxZ="-1249"> <!-- hunter_town_peace1 -->
<node X="120837" Y="78996" />
<node X="118917" Y="80603" />
<node X="116981" Y="80412" />
<node X="115383" Y="79832" />
<node X="114029" Y="76721" />
<node X="114670" Y="74772" />
<node X="115464" Y="74131" />
<node X="118488" Y="74094" />
<node X="120717" Y="74271" />
<node X="121548" Y="76702" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2512" maxZ="-1012"> <!-- hunter_town_peace2 -->
<node X="117932" Y="74072" />
<node X="118560" Y="74104" />
<node X="118308" Y="74324" />
<node X="118108" Y="74324" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3434" maxZ="-2934"> <!-- hadin_peace1 -->
<node X="106216" Y="112467" />
<node X="106779" Y="113174" />
<node X="106759" Y="114084" />
<node X="106174" Y="115069" />
<node X="105181" Y="115072" />
<node X="104608" Y="113714" />
<node X="104782" Y="112755" />
<node X="105248" Y="112466" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2532" maxZ="-1032"> <!-- aden_town_peace1 -->
<node X="150222" Y="20224" />
<node X="151214" Y="21124" />
<node X="151291" Y="29988" />
<node X="150278" Y="30956" />
<node X="144297" Y="30912" />
<node X="143434" Y="30078" />
<node X="143415" Y="21117" />
<node X="144415" Y="20200" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2517" maxZ="-1017"> <!-- aden_town_peace2 -->
<node X="145783" Y="30543" />
<node X="149035" Y="30552" />
<node X="147953" Y="31586" />
<node X="147032" Y="31586" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2215" maxZ="-715"> <!-- aden_town_peace3 -->
<node X="151101" Y="24718" />
<node X="151485" Y="24715" />
<node X="151489" Y="25546" />
<node X="151098" Y="25549" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2101" maxZ="-601"> <!-- aden_town_peace4 -->
<node X="147162" Y="19914" />
<node X="147775" Y="19914" />
<node X="147834" Y="20395" />
<node X="147099" Y="20394" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2456" maxZ="-956"> <!-- aden_town_peace5 -->
<node X="143117" Y="25953" />
<node X="143728" Y="25712" />
<node X="143728" Y="26882" />
<node X="143118" Y="26712" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3684" maxZ="-3484"> <!-- speaking_port_peace1 -->
<node X="-96610" Y="258814" />
<node X="-96389" Y="258748" />
<node X="-96369" Y="258787" />
<node X="-96374" Y="259051" />
<node X="-96640" Y="259059" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3676" maxZ="-3476"> <!-- speaking_port_peace2 -->
<node X="-96561" Y="258759" />
<node X="-96411" Y="258764" />
<node X="-96553" Y="259066" />
<node X="-97256" Y="259068" />
<node X="-97245" Y="258787" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3672" maxZ="-3472"> <!-- speaking_port_peace3 -->
<node X="-96969" Y="259036" />
<node X="-96649" Y="259036" />
<node X="-96648" Y="261414" />
<node X="-96968" Y="261414" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3672" maxZ="-3472"> <!-- speaking_port_peace4 -->
<node X="-97161" Y="259866" />
<node X="-96961" Y="259866" />
<node X="-96961" Y="260203" />
<node X="-97161" Y="260203" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3679" maxZ="-3479"> <!-- speaking_port_peace5 -->
<node X="-96750" Y="259679" />
<node X="-96326" Y="259679" />
<node X="-96326" Y="260400" />
<node X="-96750" Y="260400" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3685" maxZ="-3485"> <!-- speaking_port_peace6 -->
<node X="-97290" Y="261068" />
<node X="-95888" Y="261068" />
<node X="-95888" Y="261419" />
<node X="-97290" Y="261418" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3681" maxZ="-3481"> <!-- speaking_port_peace7 -->
<node X="-97476" Y="260763" />
<node X="-97167" Y="260763" />
<node X="-97167" Y="261419" />
<node X="-97476" Y="261419" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3670" maxZ="-3470"> <!-- speaking_port_peace8 -->
<node X="-97237" Y="259333" />
<node X="-96923" Y="259333" />
<node X="-96923" Y="259637" />
<node X="-97237" Y="259637" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3708" maxZ="-3508"> <!-- gludin_port1 -->
<node X="-92600" Y="148457" />
<node X="-90416" Y="148372" />
<node X="-90412" Y="151666" />
<node X="-92508" Y="151678" />
<node X="-93497" Y="149244" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3694" maxZ="-3494"> <!-- gludin_port2 -->
<node X="-94294" Y="148251" />
<node X="-92763" Y="148869" />
<node X="-92437" Y="152317" />
<node X="-93461" Y="153244" />
<node X="-95444" Y="151462" />
<node X="-95446" Y="149881" />
<node X="-94588" Y="148248" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3625" maxZ="-3411"> <!-- giran_port1 -->
<node X="47189" Y="185982" />
<node X="49284" Y="183651" />
<node X="52767" Y="186787" />
<node X="49719" Y="190044" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3625" maxZ="-3311"> <!-- giran_port2 -->
<node X="45288" Y="186705" />
<node X="47947" Y="185316" />
<node X="50535" Y="189487" />
<node X="47639" Y="191052" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3606" maxZ="-3106"> <!-- giran_port3 -->
<node X="43935" Y="187891" />
<node X="45949" Y="186815" />
<node X="46215" Y="187346" />
<node X="44226" Y="188420" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3625" maxZ="-3314"> <!-- giran_port4 -->
<node X="41861" Y="188551" />
<node X="44221" Y="187269" />
<node X="46275" Y="191156" />
<node X="44031" Y="192413" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3652" maxZ="-3452"> <!-- dion_monster_race1 -->
<node X="11714" Y="181568" />
<node X="14406" Y="181571" />
<node X="14405" Y="182673" />
<node X="11714" Y="182673" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3610" maxZ="-3410"> <!-- dion_monster_race2 -->
<node X="13309" Y="181324" />
<node X="14061" Y="181324" />
<node X="14061" Y="181610" />
<node X="13309" Y="181610" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3608" maxZ="-3408"> <!-- dion_monster_race3 -->
<node X="13559" Y="182641" />
<node X="14073" Y="182640" />
<node X="14073" Y="182919" />
<node X="13560" Y="182918" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3612" maxZ="-3412"> <!-- dion_monster_race4 -->
<node X="12196" Y="182662" />
<node X="12447" Y="182663" />
<node X="12447" Y="182774" />
<node X="12197" Y="182774" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3624" maxZ="-3424"> <!-- dion_monster_race5 -->
<node X="11706" Y="182774" />
<node X="13194" Y="182774" />
<node X="13194" Y="183006" />
<node X="11701" Y="183017" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3616" maxZ="-3416"> <!-- dion_monster_race6 -->
<node X="11701" Y="184017" />
<node X="13188" Y="184011" />
<node X="13194" Y="184265" />
<node X="11701" Y="184260" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3660" maxZ="-3460"> <!-- dion_monster_race7 -->
<node X="11699" Y="182993" />
<node X="11949" Y="182990" />
<node X="11944" Y="184036" />
<node X="11697" Y="184032" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3636" maxZ="-3436"> <!-- dion_monster_race8 -->
<node X="12945" Y="182992" />
<node X="13193" Y="182987" />
<node X="13193" Y="184019" />
<node X="12945" Y="184029" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4287" maxZ="-3287"> <!-- heiness_peace1 -->
<node X="106085" Y="216119" />
<node X="116559" Y="216118" />
<node X="116533" Y="229030" />
<node X="106085" Y="229015" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4128" maxZ="-3128"> <!-- heiness_peace2 -->
<node X="103796" Y="217964" />
<node X="106602" Y="217963" />
<node X="106602" Y="218361" />
<node X="103796" Y="218363" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4096" maxZ="-3096"> <!-- heiness_peace3 -->
<node X="115950" Y="219084" />
<node X="118877" Y="219084" />
<node X="118879" Y="219496" />
<node X="115952" Y="219498" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3000" maxZ="-771"> <!-- goddard_peace1 -->
<node X="146517" Y="-59854" />
<node X="148916" Y="-59847" />
<node X="151301" Y="-58338" />
<node X="152005" Y="-56872" />
<node X="152043" Y="-55010" />
<node X="150847" Y="-51615" />
<node X="145228" Y="-51601" />
<node X="143824" Y="-54220" />
<node X="143444" Y="-56732" />
<node X="144680" Y="-58725" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1516" maxZ="484"> <!-- rune_peace1 -->
<node X="39503" Y="-52761" />
<node X="42159" Y="-46969" />
<node X="44445" Y="-45865" />
<node X="46202" Y="-46919" />
<node X="47212" Y="-48809" />
<node X="47224" Y="-51046" />
<node X="45845" Y="-51986" />
<node X="43334" Y="-52810" />
<node X="39608" Y="-53505" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-1516" maxZ="484"> <!-- rune_peace1 -->
<node X="40071" Y="-52192" />
<node X="42159" Y="-46969" />
<node X="44445" Y="-45865" />
<node X="46202" Y="-46919" />
<node X="47212" Y="-48809" />
<node X="47224" Y="-51046" />
<node X="45845" Y="-51986" />
<node X="43334" Y="-52810" />
<node X="41192" Y="-53281" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-7660" maxZ="7340"> <!-- rune_peace2 -->
<node X="43099" Y="-38911" />
<node X="40028" Y="-35494" />
<node X="37429" Y="-35357" />
<node X="32846" Y="-38149" />
<node X="32804" Y="-50466" />
<node X="36348" Y="-52427" />
<node X="39429" Y="-52058" />
<node X="46334" Y="-46534" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3723" maxZ="-3223"> <!-- gludin_pvp_peace_1 -->
<node X="-88445" Y="141473" />
<node X="-87166" Y="141474" />
<node X="-87166" Y="141726" />
<node X="-88441" Y="141726" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3745" maxZ="-3245"> <!-- gludin_pvp_peace_2 -->
<node X="-88666" Y="141473" />
<node X="-88417" Y="141474" />
<node X="-88414" Y="142740" />
<node X="-88666" Y="142746" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3723" maxZ="-3223"> <!-- gludin_pvp_peace_3 -->
<node X="-88665" Y="142716" />
<node X="-87165" Y="142716" />
<node X="-87165" Y="142973" />
<node X="-88667" Y="142973" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3732" maxZ="-3232"> <!-- gludin_pvp_peace_4 -->
<node X="-87418" Y="141681" />
<node X="-87165" Y="141680" />
<node X="-87166" Y="142779" />
<node X="-87416" Y="142779" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3851" maxZ="-3351"> <!-- giran_pvp_peace1 -->
<node X="73490" Y="142231" />
<node X="73743" Y="142232" />
<node X="73741" Y="143316" />
<node X="73494" Y="143312" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3855" maxZ="-3355"> <!-- giran_pvp_peace2 -->
<node X="72462" Y="142013" />
<node X="73744" Y="142013" />
<node X="73743" Y="142268" />
<node X="72461" Y="142268" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3853" maxZ="-3353"> <!-- giran_pvp_peace3 -->
<node X="72244" Y="142015" />
<node X="72497" Y="142012" />
<node X="72497" Y="143285" />
<node X="72242" Y="143280" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3856" maxZ="-3356"> <!-- giran_pvp_peace4 -->
<node X="72242" Y="143255" />
<node X="73743" Y="143257" />
<node X="73743" Y="143513" />
<node X="72243" Y="143514" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3468" maxZ="-3268"> <!-- colosseum_peace1 -->
<node X="147779" Y="46196" />
<node X="148045" Y="46481" />
<node X="148047" Y="46958" />
<node X="147772" Y="47256" />
<node X="147078" Y="47258" />
<node X="147095" Y="46203" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-3472" maxZ="-3272"> <!-- colosseum_peace2 -->
<node X="151221" Y="46184" />
<node X="151928" Y="46183" />
<node X="151925" Y="47248" />
<node X="151222" Y="47262" />
<node X="150952" Y="46956" />
<node X="150954" Y="46486" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2992" maxZ="-2792"> <!-- gm_prison -->
<node X="-116390" Y="-251581" />
<node X="-112756" Y="-251617" />
<node X="-112720" Y="-248199" />
<node X="-116354" Y="-248217" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4792" maxZ="208"> <!-- primeval_peace2 -->
<node X="4850" Y="-4736" />
<node X="7294" Y="-4712" />
<node X="8529" Y="-820" />
<node X="3615" Y="-737" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-6964" maxZ="-6064"> <!-- space_of_dimension_peace1 -->
<node X="-115441" Y="-182134" />
<node X="-114106" Y="-182134" />
<node X="-114106" Y="-178021" />
<node X="-115476" Y="-178021" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2444" maxZ="3556"> <!-- schuttgart_peace1 -->
<node X="91064" Y="-143193" />
<node X="90200" Y="-146685" />
<node X="84580" Y="-146745" />
<node X="83600" Y="-143273" />
<node X="84048" Y="-141429" />
<node X="84922" Y="-140225" />
<node X="86528" Y="-139365" />
<node X="88292" Y="-139397" />
<node X="89712" Y="-140205" />
<node X="90660" Y="-141409" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-2472" maxZ="2528"> <!-- rainbow_spring_peace1 -->
<node X="148724" Y="-128356" />
<node X="154172" Y="-130160" />
<node X="158636" Y="-126416" />
<node X="155456" Y="-123772" />
<node X="152140" Y="-124528" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-424" maxZ="376"> <!-- gludio_platform_peace1 -->
<node X="-151634" Y="252804" />
<node X="-147155" Y="252804" />
<node X="-147155" Y="257492" />
<node X="-151634" Y="257492" />
</zone>
<!-- Oracle of Dusk (Peace Zones) -->
<zone type="PeaceZone" shape="NPoly" minZ="-5208" maxZ="-5008"> <!-- ssq_peace_1720_01 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-78118" Y="86296" />
<node X="-75860" Y="86294" />
<node X="-75853" Y="87965" />
<node X="-78156" Y="87967" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-5200" maxZ="-5000"> <!-- ssq_peace_1720_02 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-81169" Y="85693" />
<node X="-78118" Y="85690" />
<node X="-78134" Y="87364" />
<node X="-81187" Y="87364" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-5200" maxZ="-5000"> <!-- ssq_peace_1720_03 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-81549" Y="86361" />
<node X="-80995" Y="86367" />
<node X="-80995" Y="86688" />
<node X="-81549" Y="86688" />
</zone>
<!-- Oracle of Dawn (Peace Zones) -->
<zone type="PeaceZone" shape="NPoly" minZ="-4952" maxZ="-4752"> <!-- ssq_peace_1721_01 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-77077" Y="111140" />
<node X="-74838" Y="111140" />
<node X="-74842" Y="112806" />
<node X="-77104" Y="112779" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4956" maxZ="-4756"> <!-- ssq_peace_1721_02 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-80075" Y="110530" />
<node X="-77066" Y="110552" />
<node X="-77092" Y="112188" />
<node X="-80089" Y="112184" />
</zone>
<zone type="PeaceZone" shape="NPoly" minZ="-4944" maxZ="-4744"> <!-- ssq_peace_1721_03 -->
<!-- stat name="allowStore" val="false" / -->
<node X="-80536" Y="111192" />
<node X="-79984" Y="111196" />
<node X="-79984" Y="111517" />
<node X="-80532" Y="111517" />
</zone>
</list>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Custom zone for Q636 -->
<zone id="100000" type="ScriptZone" shape="Cuboid" minZ="-10735" maxZ="-10720"> <!-- Pagans mark -->
<node X="-16100" Y="-36800" />
<node X="-16600" Y="-37100" />
</zone>
<!-- Custom zones for Q114 -->
<zone id="100001" type="ScriptZone" shape="Cuboid" minZ="-3300" maxZ="-3400"> <!-- archaic_laboratory_gate1 -->
<node X="89953" Y="-106250" />
<node X="90242" Y="-106143" />
</zone>
<zone id="100002" type="ScriptZone" shape="NPoly" minZ="-3300" maxZ="-3400"> <!-- archaic_laboratory_gate2 -->
<node X="91491" Y="-108277" />
<node X="91409" Y="-108192" />
<node X="91623" Y="-107981" />
<node X="91703" Y="-108064" />
</zone>
<zone id="100003" type="ScriptZone" shape="NPoly" minZ="-3300" maxZ="-3400"> <!-- archaic_laboratory_gate3 -->
<node X="88468" Y="-108063" />
<node X="88549" Y="-107983" />
<node X="88759" Y="-108195" />
<node X="88677" Y="-108275" />
</zone>
</list>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Swamp Zones -->
<zone type="SwampZone" shape="NPoly" minZ="-3964" maxZ="-3364"> <!-- devil_slow_8 -->
<!-- stat name="initialDelay" val="1000" / -->
<stat name="move_bonus" val="-80" />
<node X="55250" Y="210873" />
<node X="55762" Y="211217" />
<node X="55934" Y="212274" />
<node X="55686" Y="212533" />
<node X="54639" Y="212740" />
<node X="54276" Y="212407" />
<node X="54160" Y="211696" />
<node X="54332" Y="211108" />
</zone>
<!-- Sea of Spores (Swamp Zone) -->
<zone type="SwampZone" shape="NPoly" minZ="-4468" maxZ="-4118"> <!-- spore_boss_swamp_zone -->
<node X="43084" Y="15944" />
<node X="45140" Y="15816" />
<node X="45748" Y="17200" />
<node X="44504" Y="18780" />
<node X="43284" Y="18952" />
<node X="42476" Y="18164" />
<node X="42480" Y="16448" />
</zone>
</list>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,6 @@
package org.l2jmobius.gameserver.datatables.xml;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
@ -26,12 +25,11 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.instancemanager.ArenaManager;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.ClanHallManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,29 +53,6 @@ public class MapRegionData implements IXmlReader
public static final Location FLORAN_VILLAGE_LOCATION = new Location(17817, 170079, -3530);
public static final Location JAIL_LOCATION = new Location(-114356, -249645, -2984);
private static final Location EXIT_MONSTER_RACE_LOCATION = new Location(12661, 181687, -3560);
private static final List<Location> KARMA_LOCATIONS = new ArrayList<>();
static
{
KARMA_LOCATIONS.add(new Location(-79077, 240355, -3440)); // Talking Island Village
KARMA_LOCATIONS.add(new Location(43503, 40398, -3450)); // Elven Village
KARMA_LOCATIONS.add(new Location(1675, 19581, -3110)); // Dark Elven Village
KARMA_LOCATIONS.add(new Location(-44413, -121762, -235)); // Orc Village
KARMA_LOCATIONS.add(new Location(12009, -187319, -3309)); // Dwarven Village
KARMA_LOCATIONS.add(new Location(-18872, 126216, -3280)); // Town of Gludio
KARMA_LOCATIONS.add(new Location(-85915, 150402, -3060)); // Gludin Village
KARMA_LOCATIONS.add(new Location(23652, 144823, -3330)); // Town of Dion
KARMA_LOCATIONS.add(new Location(79125, 154197, -3490)); // Town of Giran
KARMA_LOCATIONS.add(new Location(73840, 58193, -2730)); // Town of Oren
KARMA_LOCATIONS.add(new Location(44413, 22610, 235)); // Town of Aden
KARMA_LOCATIONS.add(new Location(114137, 72993, -2445)); // Hunters Village
KARMA_LOCATIONS.add(new Location(79125, 154197, -3490)); // Giran Harbor
KARMA_LOCATIONS.add(new Location(119536, 218558, -3495)); // Heine
KARMA_LOCATIONS.add(new Location(42931, -44733, -1326)); // Rune Township
KARMA_LOCATIONS.add(new Location(147419, -64980, -3457)); // Town of Goddard
KARMA_LOCATIONS.add(new Location(85184, -138560, -2256)); // Town of Shuttgart
KARMA_LOCATIONS.add(new Location(17817, 170079, -3530)); // Floran Village
KARMA_LOCATIONS.add(new Location(9927, -24138, -3723)); // Primeval Isle Wharf
}
private static final int[][] REGIONS = new int[19][21];
protected MapRegionData()
@ -148,11 +123,129 @@ public class MapRegionData implements IXmlReader
return (posY >> 15) + 10;
}
public Location getTeleToLocation(Creature creature, TeleportWhereType teleportWhere)
{
// The character isn't a player, bypass all checks and retrieve a random spawn location on closest town.
if (!(creature instanceof PlayerInstance))
{
return getClosestTown(creature.getX(), creature.getY()).getSpawnLoc();
}
final PlayerInstance player = creature.getActingPlayer();
// If in Monster Derby Track
if (player.isInsideZone(ZoneId.MONSTER_TRACK))
{
return EXIT_MONSTER_RACE_LOCATION;
}
Castle castle = null;
Fort fort = null;
ClanHall clanhall = null;
if (player.getClan() != null)
{
// If teleport to clan hall
if (teleportWhere == TeleportWhereType.CLANHALL)
{
clanhall = ClanHallManager.getInstance().getClanHallByOwner(player.getClan());
if (clanhall != null)
{
final ClanHallZone zone = clanhall.getZone();
if (zone != null)
{
return zone.getSpawnLoc();
}
}
}
// If teleport to castle
if (teleportWhere == TeleportWhereType.CASTLE)
{
castle = CastleManager.getInstance().getCastleByOwner(player.getClan());
}
// If teleport to fort
if (teleportWhere == TeleportWhereType.FORTRESS)
{
fort = FortManager.getInstance().getFortByOwner(player.getClan());
}
// Check if player is on castle or fortress ground
if (castle == null)
{
castle = CastleManager.getInstance().getCastle(player);
}
if (fort == null)
{
fort = FortManager.getInstance().getFort(player);
}
if ((castle != null) && (castle.getCastleId() > 0))
{
// If Teleporting to castle or if is on caslte with siege and player's clan is defender
if ((teleportWhere == TeleportWhereType.CASTLE) || ((teleportWhere == TeleportWhereType.CASTLE) && castle.getSiege().isInProgress() && (castle.getSiege().getDefenderClan(player.getClan()) != null)))
{
return castle.getZone().getSpawnLoc();
}
if ((teleportWhere == TeleportWhereType.SIEGEFLAG) && castle.getSiege().isInProgress())
{
// Check if player's clan is attacker
final List<NpcInstance> flags = castle.getSiege().getFlag(player.getClan());
if ((flags != null) && !flags.isEmpty())
{
// Spawn to flag - Need more work to get player to the nearest flag
final NpcInstance flag = flags.get(0);
return new Location(flag.getX(), flag.getY(), flag.getZ());
}
}
}
else if ((fort != null) && (fort.getFortId() > 0))
{
// Teleporting to castle or fortress is on castle with siege and player's clan is defender
if ((teleportWhere == TeleportWhereType.FORTRESS) || ((teleportWhere == TeleportWhereType.FORTRESS) && fort.getSiege().isInProgress() && (fort.getSiege().getDefenderClan(player.getClan()) != null)))
{
return fort.getZone().getSpawnLoc();
}
if ((teleportWhere == TeleportWhereType.SIEGEFLAG) && fort.getSiege().isInProgress())
{
// Check if player's clan is attacker
final List<NpcInstance> flags = fort.getSiege().getFlag(player.getClan());
if ((flags != null) && !flags.isEmpty())
{
// Spawn to flag
final NpcInstance flag = flags.get(0);
return new Location(flag.getX(), flag.getY(), flag.getZ());
}
}
}
}
// Karma player lands out of city.
if (player.getKarma() > 0)
{
return getClosestTown(player).getChaoticSpawnLoc();
}
// Check if player is in arena.
final ArenaZone arena = ZoneData.getInstance().getZone(player, ArenaZone.class);
if (arena != null)
{
return arena.getSpawnLoc();
}
// Retrieve a random spawn location of the nearest town.
return getClosestTown(player).getSpawnLoc();
}
public int getAreaCastle(Creature creature)
{
switch (getClosestTownNumber(creature))
{
case 0:// Talking Island Village
case 0: // Talking Island Village
{
return 1;
}
@ -323,137 +416,261 @@ public class MapRegionData implements IXmlReader
}
}
public Location getTeleToLocation(Creature creature, TeleportWhereType teleportWhere)
/**
* A specific method, used ONLY by players. There's a Race condition.
* @param player : The player used to find race, x and y.
* @return the closest TownZone based on a X/Y location.
*/
private TownZone getClosestTown(PlayerInstance player)
{
if (creature instanceof PlayerInstance)
switch (getMapRegion(player.getX(), player.getY()))
{
final PlayerInstance player = creature.getActingPlayer();
// If in Monster Derby Track
if (player.isInsideZone(ZoneId.MONSTER_TRACK))
case 0: // TI
{
return EXIT_MONSTER_RACE_LOCATION;
return getTown(2);
}
Castle castle = null;
Fort fort = null;
ClanHall clanhall = null;
if (player.getClan() != null)
case 1: // Elven
{
// If teleport to clan hall
if (teleportWhere == TeleportWhereType.CLANHALL)
{
clanhall = ClanHallManager.getInstance().getClanHallByOwner(player.getClan());
if (clanhall != null)
{
final ClanHallZone zone = clanhall.getZone();
if (zone != null)
{
return zone.getSpawn();
}
}
}
// If teleport to castle
if (teleportWhere == TeleportWhereType.CASTLE)
{
castle = CastleManager.getInstance().getCastleByOwner(player.getClan());
}
// If teleport to fort
if (teleportWhere == TeleportWhereType.FORTRESS)
{
fort = FortManager.getInstance().getFortByOwner(player.getClan());
}
// Check if player is on castle or fortress ground
if (castle == null)
{
castle = CastleManager.getInstance().getCastle(player);
}
if (fort == null)
{
fort = FortManager.getInstance().getFort(player);
}
if ((castle != null) && (castle.getCastleId() > 0))
{
// If Teleporting to castle or if is on caslte with siege and player's clan is defender
if ((teleportWhere == TeleportWhereType.CASTLE) || ((teleportWhere == TeleportWhereType.CASTLE) && castle.getSiege().isInProgress() && (castle.getSiege().getDefenderClan(player.getClan()) != null)))
{
return castle.getZone().getSpawn();
}
if ((teleportWhere == TeleportWhereType.SIEGEFLAG) && castle.getSiege().isInProgress())
{
// Check if player's clan is attacker
final List<NpcInstance> flags = castle.getSiege().getFlag(player.getClan());
if ((flags != null) && !flags.isEmpty())
{
// Spawn to flag - Need more work to get player to the nearest flag
final NpcInstance flag = flags.get(0);
return new Location(flag.getX(), flag.getY(), flag.getZ());
}
}
}
else if ((fort != null) && (fort.getFortId() > 0))
{
// Teleporting to castle or fortress is on castle with siege and player's clan is defender
if ((teleportWhere == TeleportWhereType.FORTRESS) || ((teleportWhere == TeleportWhereType.FORTRESS) && fort.getSiege().isInProgress() && (fort.getSiege().getDefenderClan(player.getClan()) != null)))
{
return fort.getZone().getSpawn();
}
if ((teleportWhere == TeleportWhereType.SIEGEFLAG) && fort.getSiege().isInProgress())
{
// Check if player's clan is attacker
final List<NpcInstance> flags = fort.getSiege().getFlag(player.getClan());
if ((flags != null) && !flags.isEmpty())
{
// Spawn to flag
final NpcInstance flag = flags.get(0);
return new Location(flag.getX(), flag.getY(), flag.getZ());
}
}
}
return getTown((player.getTemplate().getRace() == Race.DARK_ELF) ? 1 : 3);
}
// Teleport red pk 5+ to Floran Village
if ((player.getPkKills() > 5) && (player.getKarma() > 1))
case 2: // DE
{
return FLORAN_VILLAGE_LOCATION;
return getTown((player.getTemplate().getRace() == Race.ELF) ? 3 : 1);
}
// Karma player land out of city
if (player.getKarma() > 1)
case 3: // Orc
{
final int closest = getMapRegion(creature.getX(), creature.getY());
if ((closest >= 0) && (closest < KARMA_LOCATIONS.size()))
{
return KARMA_LOCATIONS.get(closest);
}
return FLORAN_VILLAGE_LOCATION;
return getTown(4);
}
// Checking if in arena
final ArenaZone arena = ArenaManager.getInstance().getArena(player);
if (arena != null)
case 4: // Dwarven
{
return arena.getSpawnLoc();
return getTown(6);
}
case 5: // Gludio
{
return getTown(7);
}
case 6: // Gludin
{
return getTown(5);
}
case 7: // Dion
{
return getTown(8);
}
case 8: // Giran
case 12: // Giran Harbor
{
return getTown(9);
}
case 9: // Oren
{
return getTown(10);
}
case 10: // Aden
{
return getTown(12);
}
case 11: // HV
{
return getTown(11);
}
case 13: // Heine
{
return getTown(15);
}
case 14: // Rune
{
return getTown(14);
}
case 15: // Goddard
{
return getTown(13);
}
case 16: // Schuttgart
{
return getTown(17);
}
case 17: // Floran
{
return getTown(16);
}
case 18: // Primeval Isle
{
return getTown(19);
}
}
// Get the nearest town
TownZone localZone = null;
if ((creature != null) && ((localZone = TownManager.getInstance().getClosestTown(creature)) != null))
return getTown(16); // Default to floran
}
/**
* @param x : The current character's X location.
* @param y : The current character's Y location.
* @return the closest L2TownZone based on a X/Y location.
*/
private TownZone getClosestTown(int x, int y)
{
switch (getMapRegion(x, y))
{
return localZone.getSpawnLoc();
case 0: // TI
{
return getTown(2);
}
case 1: // Elven
{
return getTown(3);
}
case 2: // DE
{
return getTown(1);
}
case 3: // Orc
{
return getTown(4);
}
case 4: // Dwarven
{
return getTown(6);
}
case 5: // Gludio
{
return getTown(7);
}
case 6: // Gludin
{
return getTown(5);
}
case 7: // Dion
{
return getTown(8);
}
case 8: // Giran
case 12: // Giran Harbor
{
return getTown(9);
}
case 9: // Oren
{
return getTown(10);
}
case 10: // Aden
{
return getTown(12);
}
case 11: // HV
{
return getTown(11);
}
case 13: // Heine
{
return getTown(15);
}
case 14: // Rune
{
return getTown(14);
}
case 15: // Goddard
{
return getTown(13);
}
case 16: // Schuttgart
{
return getTown(17);
}
case 17: // Floran
{
return getTown(16);
}
case 18: // Primeval Isle
{
return getTown(19);
}
}
localZone = TownManager.getInstance().getTown(9); // Giran
return localZone.getSpawnLoc();
return getTown(16); // Default to floran
}
/**
* @param x : The current character's X location.
* @param y : The current character's Y location.
* @return the closest region based on a X/Y location.
*/
public int getClosestLocation(int x, int y)
{
switch (getMapRegion(x, y))
{
case 0: // TI
{
return 1;
}
case 1: // Elven
{
return 4;
}
case 2: // DE
{
return 3;
}
case 3: // Orc
case 4: // Dwarven
case 16: // Schuttgart
{
return 9;
}
case 5: // Gludio
case 6: // Gludin
{
return 2;
}
case 7: // Dion
{
return 5;
}
case 8: // Giran
case 12: // Giran Harbor
{
return 6;
}
case 9: // Oren
{
return 10;
}
case 10: // Aden
{
return 13;
}
case 11: // HV
{
return 11;
}
case 13: // Heine
{
return 12;
}
case 14: // Rune
{
return 14;
}
case 15: // Goddard
{
return 15;
}
}
return 0;
}
/**
* @param townId the townId to match.
* @return a TownZone based on the overall list of TownZone, matching the townId.
*/
public final TownZone getTown(int townId)
{
for (TownZone temp : ZoneData.getInstance().getAllZones(TownZone.class))
{
if (temp.getTownId() == townId)
{
return temp;
}
}
return null;
}
public static MapRegionData getInstance()

View File

@ -232,10 +232,9 @@ public class AdminSiege implements IAdminCommandHandler
else if (command.equalsIgnoreCase("admin_clanhallteleportself"))
{
final ClanHallZone zone = clanhall.getZone();
if (zone != null)
{
activeChar.teleToLocation(zone.getSpawn(), true);
activeChar.teleToLocation(zone.getSpawnLoc(), true);
}
}
else if (command.equalsIgnoreCase("admin_spawn_doors"))

View File

@ -16,11 +16,10 @@
*/
package org.l2jmobius.gameserver.handler.admincommandhandlers;
import java.util.Collection;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -61,63 +60,44 @@ public class AdminTownWar implements IAdminCommandHandler
// All Towns will become War Zones
if (Config.TW_ALL_TOWNS)
{
TownManager.getInstance().getTown(1).setParameter("noPeace", "true");
TownManager.getInstance().getTown(2).setParameter("noPeace", "true");
TownManager.getInstance().getTown(3).setParameter("noPeace", "true");
TownManager.getInstance().getTown(4).setParameter("noPeace", "true");
TownManager.getInstance().getTown(5).setParameter("noPeace", "true");
TownManager.getInstance().getTown(6).setParameter("noPeace", "true");
TownManager.getInstance().getTown(7).setParameter("noPeace", "true");
TownManager.getInstance().getTown(8).setParameter("noPeace", "true");
TownManager.getInstance().getTown(9).setParameter("noPeace", "true");
TownManager.getInstance().getTown(10).setParameter("noPeace", "true");
TownManager.getInstance().getTown(11).setParameter("noPeace", "true");
TownManager.getInstance().getTown(12).setParameter("noPeace", "true");
TownManager.getInstance().getTown(13).setParameter("noPeace", "true");
TownManager.getInstance().getTown(14).setParameter("noPeace", "true");
TownManager.getInstance().getTown(15).setParameter("noPeace", "true");
TownManager.getInstance().getTown(16).setParameter("noPeace", "true");
TownManager.getInstance().getTown(17).setParameter("noPeace", "true");
TownManager.getInstance().getTown(19).setParameter("noPeace", "true");
for (TownZone zone : ZoneData.getInstance().getAllZones(TownZone.class))
{
zone.setParameter("noPeace", "true");
}
}
// A Town will become War Zone
if (!Config.TW_ALL_TOWNS && (Config.TW_TOWN_ID != 18) && (Config.TW_TOWN_ID != 21) && (Config.TW_TOWN_ID != 22))
{
TownManager.getInstance().getTown(Config.TW_TOWN_ID).setParameter("noPeace", "true");
MapRegionData.getInstance().getTown(Config.TW_TOWN_ID).setParameter("noPeace", "true");
}
final Collection<PlayerInstance> pls = World.getInstance().getAllPlayers();
int x;
int y;
int z;
TownZone town;
for (PlayerInstance onlinePlayer : World.getInstance().getAllPlayers())
{
int x;
int y;
int z;
TownZone town;
for (PlayerInstance onlinePlayer : pls)
if (onlinePlayer.isOnline())
{
if (onlinePlayer.isOnline())
x = onlinePlayer.getX();
y = onlinePlayer.getY();
z = onlinePlayer.getZ();
town = ZoneData.getInstance().getZone(x, y, z, TownZone.class);
if (town != null)
{
x = onlinePlayer.getX();
y = onlinePlayer.getY();
z = onlinePlayer.getZ();
town = TownManager.getInstance().getTown(x, y, z);
if (town != null)
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
{
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, false);
onlinePlayer.revalidateZone(true);
}
else if (Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, false);
onlinePlayer.revalidateZone(true);
}
onlinePlayer.setInsideZone(ZoneId.PVP, false);
onlinePlayer.revalidateZone(true);
}
else if (Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, false);
onlinePlayer.revalidateZone(true);
}
onlinePlayer.setInTownWar(true);
}
onlinePlayer.setInTownWar(true);
}
}
@ -132,7 +112,7 @@ public class AdminTownWar implements IAdminCommandHandler
if (!Config.TW_ALL_TOWNS)
{
Announcements.getInstance().gameAnnounceToAll("Town War Event!");
Announcements.getInstance().gameAnnounceToAll(TownManager.getInstance().getTown(Config.TW_TOWN_ID).getName() + " has been set to war zone by " + activeChar.getName() + ".");
Announcements.getInstance().gameAnnounceToAll(MapRegionData.getInstance().getTown(Config.TW_TOWN_ID).getName() + " has been set to war zone by " + activeChar.getName() + ".");
}
}
@ -141,63 +121,58 @@ public class AdminTownWar implements IAdminCommandHandler
// All Towns will become Peace Zones
if (Config.TW_ALL_TOWNS)
{
TownManager.getInstance().getTown(1).setParameter("noPeace", "false");
TownManager.getInstance().getTown(2).setParameter("noPeace", "false");
TownManager.getInstance().getTown(3).setParameter("noPeace", "false");
TownManager.getInstance().getTown(4).setParameter("noPeace", "false");
TownManager.getInstance().getTown(5).setParameter("noPeace", "false");
TownManager.getInstance().getTown(6).setParameter("noPeace", "false");
TownManager.getInstance().getTown(7).setParameter("noPeace", "false");
TownManager.getInstance().getTown(8).setParameter("noPeace", "false");
TownManager.getInstance().getTown(9).setParameter("noPeace", "false");
TownManager.getInstance().getTown(10).setParameter("noPeace", "false");
TownManager.getInstance().getTown(11).setParameter("noPeace", "false");
TownManager.getInstance().getTown(12).setParameter("noPeace", "false");
TownManager.getInstance().getTown(13).setParameter("noPeace", "false");
TownManager.getInstance().getTown(14).setParameter("noPeace", "false");
TownManager.getInstance().getTown(15).setParameter("noPeace", "false");
TownManager.getInstance().getTown(16).setParameter("noPeace", "false");
TownManager.getInstance().getTown(17).setParameter("noPeace", "false");
TownManager.getInstance().getTown(19).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(1).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(2).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(3).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(4).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(5).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(6).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(7).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(8).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(9).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(10).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(11).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(12).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(13).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(14).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(15).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(16).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(17).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(19).setParameter("noPeace", "false");
}
// A Town will become Peace Zone
if (!Config.TW_ALL_TOWNS && (Config.TW_TOWN_ID != 18) && (Config.TW_TOWN_ID != 21) && (Config.TW_TOWN_ID != 22))
{
TownManager.getInstance().getTown(Config.TW_TOWN_ID).setParameter("noPeace", "false");
MapRegionData.getInstance().getTown(Config.TW_TOWN_ID).setParameter("noPeace", "false");
}
final Collection<PlayerInstance> pls = World.getInstance().getAllPlayers();
int x;
int y;
int z;
TownZone town;
for (PlayerInstance onlinePlayer : World.getInstance().getAllPlayers())
{
int x;
int y;
int z;
TownZone town;
for (PlayerInstance onlinePlayer : pls)
if (onlinePlayer.isOnline())
{
if (onlinePlayer.isOnline())
x = onlinePlayer.getX();
y = onlinePlayer.getY();
z = onlinePlayer.getZ();
town = ZoneData.getInstance().getZone(x, y, z, TownZone.class);
if (town != null)
{
x = onlinePlayer.getX();
y = onlinePlayer.getY();
z = onlinePlayer.getZ();
town = TownManager.getInstance().getTown(x, y, z);
if (town != null)
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
{
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, true);
onlinePlayer.revalidateZone(true);
}
else if (Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, true);
onlinePlayer.revalidateZone(true);
}
onlinePlayer.setInsideZone(ZoneId.PVP, true);
onlinePlayer.revalidateZone(true);
}
else if (Config.TW_ALL_TOWNS)
{
onlinePlayer.setInsideZone(ZoneId.PVP, true);
onlinePlayer.revalidateZone(true);
}
onlinePlayer.setInTownWar(false);
}
onlinePlayer.setInTownWar(false);
}
}
@ -210,7 +185,7 @@ public class AdminTownWar implements IAdminCommandHandler
// Announce for one town
if (!Config.TW_ALL_TOWNS)
{
Announcements.getInstance().gameAnnounceToAll(TownManager.getInstance().getTown(Config.TW_TOWN_ID).getName() + " has been set back to normal by " + activeChar.getName() + ".");
Announcements.getInstance().gameAnnounceToAll(MapRegionData.getInstance().getTown(Config.TW_TOWN_ID).getName() + " has been set back to normal by " + activeChar.getName() + ".");
}
}

View File

@ -18,91 +18,122 @@ package org.l2jmobius.gameserver.handler.admincommandhandlers;
import java.util.StringTokenizer;
import org.l2jmobius.gameserver.datatables.xml.AdminData;
import org.l2jmobius.commons.util.StringUtil;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/**
* @author luisantonioa
*/
public class AdminZone implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS =
{
"admin_zone_check",
"admin_zone_reload"
"admin_zone_visual"
};
@Override
public boolean useAdminCommand(String command, PlayerInstance activeChar)
{
final StringTokenizer st = new StringTokenizer(command, " ");
final String actualCommand = st.nextToken(); // Get actual command
if (activeChar == null)
{
return false;
}
StringTokenizer st = new StringTokenizer(command, " ");
String actualCommand = st.nextToken(); // Get actual command
if (actualCommand.equalsIgnoreCase("admin_zone_check"))
{
if (activeChar.isInsideZone(ZoneId.PVP))
{
BuilderUtil.sendSysMessage(activeChar, "This is a PvP zone.");
}
else
{
BuilderUtil.sendSysMessage(activeChar, "This is NOT a PvP zone.");
}
if (activeChar.isInsideZone(ZoneId.NO_LANDING))
{
BuilderUtil.sendSysMessage(activeChar, "This is a no landing zone.");
}
else
{
BuilderUtil.sendSysMessage(activeChar, "This is NOT a no landing zone.");
}
if (activeChar.isInsideZone(ZoneId.NO_STORE))
{
BuilderUtil.sendSysMessage(activeChar, "This is a no-store zone.");
}
else
{
BuilderUtil.sendSysMessage(activeChar, "This is NOT a no-store zone.");
}
BuilderUtil.sendSysMessage(activeChar, "MapRegion: x:" + MapRegionData.getInstance().getMapRegionX(activeChar.getX()) + " y:" + MapRegionData.getInstance().getMapRegionX(activeChar.getY()));
BuilderUtil.sendSysMessage(activeChar, "Closest Town: " + MapRegionData.getInstance().getClosestTownName(activeChar));
Location loc;
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, TeleportWhereType.CASTLE);
BuilderUtil.sendSysMessage(activeChar, "TeleToLocation (Castle): x:" + loc.getX() + " y:" + loc.getY() + " z:" + loc.getZ());
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, TeleportWhereType.CLANHALL);
BuilderUtil.sendSysMessage(activeChar, "TeleToLocation (ClanHall): x:" + loc.getX() + " y:" + loc.getY() + " z:" + loc.getZ());
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, TeleportWhereType.SIEGEFLAG);
BuilderUtil.sendSysMessage(activeChar, "TeleToLocation (SiegeFlag): x:" + loc.getX() + " y:" + loc.getY() + " z:" + loc.getZ());
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, TeleportWhereType.TOWN);
BuilderUtil.sendSysMessage(activeChar, "TeleToLocation (Town): x:" + loc.getX() + " y:" + loc.getY() + " z:" + loc.getZ());
showHtml(activeChar);
}
else if (actualCommand.equalsIgnoreCase("admin_zone_reload"))
else if (actualCommand.equalsIgnoreCase("admin_zone_visual"))
{
// TODO: ZONETODO ZoneManager.getInstance().reload();
AdminData.broadcastMessageToGMs("Zones can not be reloaded in this version.");
try
{
String next = st.nextToken();
if (next.equalsIgnoreCase("all"))
{
for (ZoneType zone : ZoneData.getInstance().getZones(activeChar))
{
zone.visualizeZone(activeChar.getZ());
}
showHtml(activeChar);
}
else if (next.equalsIgnoreCase("clear"))
{
ZoneData.getInstance().clearDebugItems();
showHtml(activeChar);
}
else
{
int zoneId = Integer.parseInt(next);
ZoneData.getInstance().getZoneById(zoneId).visualizeZone(activeChar.getZ());
}
}
catch (Exception e)
{
activeChar.sendMessage("Invalid parameter for //zone_visual.");
}
}
return true;
}
private static void showHtml(PlayerInstance activeChar)
{
final int x = activeChar.getX();
final int y = activeChar.getY();
final int rx = ((x - World.MAP_MIN_X) >> 15) + World.TILE_X_MIN;
final int ry = ((y - World.MAP_MIN_Y) >> 15) + World.TILE_Y_MIN;
final NpcHtmlMessage html = new NpcHtmlMessage(0);
html.setFile("data/html/admin/zone.htm");
html.replace("%MAPREGION%", "[x:" + MapRegionData.getInstance().getMapRegionX(x) + " y:" + MapRegionData.getInstance().getMapRegionY(y) + "]");
html.replace("%GEOREGION%", rx + "_" + ry);
html.replace("%CLOSESTTOWN%", MapRegionData.getInstance().getClosestTownName(activeChar));
html.replace("%CURRENTLOC%", x + ", " + y + ", " + activeChar.getZ());
html.replace("%PVP%", (activeChar.isInsideZone(ZoneId.PVP) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%PEACE%", (activeChar.isInsideZone(ZoneId.PEACE) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%SIEGE%", (activeChar.isInsideZone(ZoneId.SIEGE) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%MOTHERTREE%", (activeChar.isInsideZone(ZoneId.MOTHERTREE) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%CLANHALL%", (activeChar.isInsideZone(ZoneId.CLAN_HALL) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%NOLANDING%", (activeChar.isInsideZone(ZoneId.NO_LANDING) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%WATER%", (activeChar.isInsideZone(ZoneId.WATER) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%JAIL%", (activeChar.isInsideZone(ZoneId.JAIL) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%MONSTERTRACK%", (activeChar.isInsideZone(ZoneId.MONSTER_TRACK) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%CASTLE%", (activeChar.isInsideZone(ZoneId.CASTLE) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%SWAMP%", (activeChar.isInsideZone(ZoneId.SWAMP) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%NOSUMMONFRIEND%", (activeChar.isInsideZone(ZoneId.NO_SUMMON_FRIEND) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%NOSTORE%", (activeChar.isInsideZone(ZoneId.NO_STORE) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%TOWN%", (activeChar.isInsideZone(ZoneId.TOWN) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%HQ%", (activeChar.isInsideZone(ZoneId.HQ) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%DANGERAREA%", (activeChar.isInsideZone(ZoneId.DANGER_AREA) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%BOSS%", (activeChar.isInsideZone(ZoneId.BOSS) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
html.replace("%NORESTART%", (activeChar.isInsideZone(ZoneId.NO_RESTART) ? "<font color=\"LEVEL\">YES</font>" : "NO"));
final StringBuilder sb = new StringBuilder(100);
for (ZoneType zone : World.getInstance().getRegion(x, y).getZones())
{
if (zone.isCharacterInZone(activeChar))
{
StringUtil.append(sb, zone.getId(), " ");
}
}
html.replace("%ZLIST%", sb.toString());
activeChar.sendPacket(html);
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
}
}

View File

@ -165,7 +165,7 @@ public class SiegeFlag implements ISkillHandler
{
message = "You have already placed the maximum number of flags possible.";
}
else if (player.isInsideZone(ZoneId.NO_HQ))
else if (!player.isInsideZone(ZoneId.HQ))
{
message = "You cannot place flag here.";
}
@ -210,7 +210,7 @@ public class SiegeFlag implements ISkillHandler
{
message = "You have already placed the maximum number of flags possible.";
}
else if (player.isInsideZone(ZoneId.NO_HQ))
else if (!player.isInsideZone(ZoneId.HQ))
{
message = "You cannot place flag here.";
}

View File

@ -42,7 +42,7 @@ public class Escape implements IUserCommandHandler
@Override
public boolean useUserCommand(int id, PlayerInstance player)
{
final int unstuckTimer = player.getAccessLevel().isGm() ? 1000 : Config.UNSTUCK_INTERVAL * 1000;
final int unstuckTimer = player.isGM() ? 1000 : Config.UNSTUCK_INTERVAL * 1000;
// Check to see if the current player is in Festival.
if (player.isFestivalParticipant())

View File

@ -36,11 +36,6 @@ public class CastleManager
{
protected static final Logger LOGGER = Logger.getLogger(CastleManager.class.getName());
public static final CastleManager getInstance()
{
return SingletonHolder.INSTANCE;
}
private static final List<Castle> _castles = new CopyOnWriteArrayList<>();
private static final int[] _castleCirclets =
@ -62,25 +57,23 @@ public class CastleManager
load();
}
public int findNearestCastlesIndex(WorldObject obj)
public int findNearestCastleIndex(WorldObject obj)
{
int index = getCastleIndex(obj);
if (index < 0)
{
double closestDistance = 99999999;
double closestDistance = Double.MAX_VALUE;
double distance;
Castle castle;
for (int i = 0; i < getCastles().size(); i++)
{
castle = getCastles().get(i);
if (castle == null)
{
continue;
}
distance = castle.getDistance(obj);
if (closestDistance > distance)
{
closestDistance = distance;
@ -91,6 +84,28 @@ public class CastleManager
return index;
}
public Castle findNearestCastle(int x, int y)
{
double closestDistance = Double.MAX_VALUE;
double distance;
Castle result = null;
for (Castle castle : _castles)
{
if (castle == null)
{
continue;
}
distance = castle.getZone().getDistanceToZone(x, y);
if (closestDistance > distance)
{
closestDistance = distance;
result = castle;
}
}
return result;
}
private final void load()
{
LOGGER.info("Initializing CastleManager");
@ -354,6 +369,11 @@ public class CastleManager
}
}
public static final CastleManager getInstance()
{
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder
{
protected static final CastleManager INSTANCE = new CastleManager();

View File

@ -1,323 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.instancemanager;
import java.util.ArrayList;
import java.util.List;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.entity.siege.Castle;
import org.l2jmobius.gameserver.model.zone.type.TownZone;
public class TownManager
{
private List<TownZone> _towns;
private TownManager()
{
}
public void addTown(TownZone arena)
{
if (_towns == null)
{
_towns = new ArrayList<>();
}
_towns.add(arena);
}
public TownZone getClosestTown(WorldObject activeObject)
{
switch (MapRegionData.getInstance().getMapRegion(activeObject.getPosition().getX(), activeObject.getPosition().getY()))
{
case 0:
{
return getTown(2); // TI
}
case 1:
{
return getTown(3); // Elven
}
case 2:
{
return getTown(1); // DE
}
case 3:
{
return getTown(4); // Orc
}
case 4:
{
return getTown(6); // Dwarven
}
case 5:
{
return getTown(7); // Gludio
}
case 6:
{
return getTown(5); // Gludin
}
case 7:
{
return getTown(8); // Dion
}
case 8:
{
return getTown(9); // Giran
}
case 9:
{
return getTown(10); // Oren
}
case 10:
{
return getTown(12); // Aden
}
case 11:
{
return getTown(11); // HV
}
case 12:
{
return getTown(9); // Giran Harbour
}
case 13:
{
return getTown(15); // Heine
}
case 14:
{
return getTown(14); // Rune
}
case 15:
{
return getTown(13); // Goddard
}
case 16:
{
return getTown(17); // Schuttgart
}
case 17:
{
return getTown(16); // Floran
}
case 18:
{
return getTown(19); // Primeval Isle
}
}
return getTown(16); // Default to floran
}
public static final int getClosestLocation(WorldObject activeObject)
{
switch (MapRegionData.getInstance().getMapRegion(activeObject.getPosition().getX(), activeObject.getPosition().getY()))
{
case 0:
{
return 1; // TI
}
case 1:
{
return 4; // Elven
}
case 2:
{
return 3; // DE
}
case 3:
{
return 9; // Orc
}
case 4:
{
return 9; // Dwarven
}
case 5:
{
return 2; // Gludio
}
case 6:
{
return 2; // Gludin
}
case 7:
{
return 5; // Dion
}
case 8:
{
return 6; // Giran
}
case 9:
{
return 10; // Oren
}
case 10:
{
return 13; // Aden
}
case 11:
{
return 11; // HV
}
case 12:
{
return 6; // Giran Harbour
}
case 13:
{
return 12; // Heine
}
case 14:
{
return 14; // Rune
}
case 15:
{
return 15; // Goddard
}
case 16:
{
return 9; // Schuttgart
}
}
return 0;
}
public boolean townHasCastleInSiege(int townId)
{
final int[] castleidarray =
{
0,
0,
0,
0,
0,
0,
0,
1,
2,
3,
4,
0,
5,
7,
8,
6,
0,
9,
0
};
final int castleIndex = castleidarray[townId];
if (castleIndex > 0)
{
final Castle castle = CastleManager.getInstance().getCastles().get(CastleManager.getInstance().getCastleIndex(castleIndex));
if (castle != null)
{
return castle.getSiege().isInProgress();
}
}
return false;
}
public boolean townHasCastleInSiege(int x, int y)
{
final int curtown = MapRegionData.getInstance().getMapRegion(x, y);
final int[] castleidarray =
{
0,
0,
0,
0,
0,
1,
0,
2,
3,
4,
5,
0,
0,
6,
8,
7,
9,
0,
0
};
// find an instance of the castle for this town.
final int castleIndex = castleidarray[curtown];
if (castleIndex > 0)
{
final Castle castle = CastleManager.getInstance().getCastles().get(CastleManager.getInstance().getCastleIndex(castleIndex));
if (castle != null)
{
return castle.getSiege().isInProgress();
}
}
return false;
}
public TownZone getTown(int townId)
{
for (TownZone temp : _towns)
{
if (temp.getTownId() == townId)
{
return temp;
}
}
return null;
}
/**
* Returns the town at that position (if any)
* @param x
* @param y
* @param z
* @return
*/
public TownZone getTown(int x, int y, int z)
{
for (TownZone temp : _towns)
{
if (temp.isInsideZone(x, y, z))
{
return temp;
}
}
return null;
}
public static TownManager getInstance()
{
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder
{
protected static final TownManager INSTANCE = new TownManager();
}
}

View File

@ -17,6 +17,8 @@
package org.l2jmobius.gameserver.model;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.logging.Logger;
@ -76,6 +78,15 @@ public class WorldRegion
_zoneManager.unregisterZone(zone);
}
public List<ZoneType> getZones()
{
if (_zoneManager == null)
{
return Collections.emptyList();
}
return _zoneManager.getZones();
}
public void revalidateZones(Creature creature)
{
if (_zoneManager == null)

View File

@ -40,6 +40,7 @@ import org.l2jmobius.gameserver.datatables.HeroSkillTable;
import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.handler.ISkillHandler;
@ -49,7 +50,6 @@ import org.l2jmobius.gameserver.instancemanager.DimensionalRiftManager;
import org.l2jmobius.gameserver.instancemanager.DuelManager;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.ChanceSkillList;
import org.l2jmobius.gameserver.model.Effect;
import org.l2jmobius.gameserver.model.ForceBuff;
@ -663,14 +663,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
{
if (Config.TW_DISABLE_GK)
{
int x1;
int y1;
int z1;
x1 = getX();
y1 = getY();
z1 = getZ();
TownZone town;
town = TownManager.getInstance().getTown(x1, y1, z1);
final TownZone town = ZoneData.getInstance().getZone(getX(), getY(), getZ(), TownZone.class);
if ((town != null) && _inTownWar)
{
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
@ -6513,7 +6506,6 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
int bossId = -1;
NpcTemplate bossTemplate = null;
final BossZone bossZone = GrandBossManager.getInstance().getZone(this);
if (bossZone != null)
{
bossId = bossZone.getBossId();
@ -8301,7 +8293,6 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
{
// Set some values inside target's instance for later use
final Creature creature = (Creature) target;
if ((skill.getEffectType() == SkillType.BUFF) && creature.isBlockBuff())
{
continue;
@ -8310,7 +8301,6 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
if (target instanceof Creature)
{
final Creature targ = (Creature) target;
if (ChanceSkillList.canTriggerByCast(this, targ, skill))
{
// Maybe launch chance skills on us
@ -8345,7 +8335,6 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
int bossId = -1;
NpcTemplate bossTemplate = null;
final BossZone bossZone = GrandBossManager.getInstance().getZone(this);
if (bossZone != null)
{
bossId = bossZone.getBossId();

View File

@ -534,8 +534,7 @@ public class DoorInstance extends Creature
// Send a Server->Client packet MyTargetSelected to the PlayerInstance player
player.sendPacket(new MyTargetSelected(getObjectId(), 0));
final DoorStatusUpdate su = new DoorStatusUpdate(this);
player.sendPacket(su);
player.sendPacket(new DoorStatusUpdate(this));
// Send a Server->Client packet ValidateLocation to correct the NpcInstance position and heading on the client
player.sendPacket(new ValidateLocation(this));
@ -580,31 +579,25 @@ public class DoorInstance extends Creature
return;
}
if (player.getAccessLevel().isGm())
if (player.isGM())
{
player.setTarget(this);
player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel()));
if (isAutoAttackable(player))
{
final DoorStatusUpdate su = new DoorStatusUpdate(this);
player.sendPacket(su);
player.sendPacket(new DoorStatusUpdate(this));
}
final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
final StringBuilder html1 = new StringBuilder("<html><body><table border=0>");
html1.append("<tr><td><font color=\"LEVEL\">Door Information</font><br></td></tr>");
html1.append("<tr><td>Current HP " + getCurrentHp() + "</td></tr>");
html1.append("<tr><td>Max HP " + getMaxHp() + "</td></tr>");
html1.append("<tr><td>Object ID: " + getObjectId() + "</td></tr>");
html1.append("<tr><td>Door ID: " + _doorId + "</td></tr>");
html1.append("<tr><td><br></td></tr>");
html1.append("<tr><td>Class: " + getClass().getSimpleName() + "</td></tr>");
html1.append("<tr><td><br></td></tr>");
html1.append("</table>");
html1.append("<table><tr>");
html1.append("<td><button value=\"Open\" action=\"bypass -h admin_open " + _doorId + "\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>");
html1.append("<td><button value=\"Close\" action=\"bypass -h admin_close " + _doorId + "\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>");
@ -623,8 +616,7 @@ public class DoorInstance extends Creature
if (isAutoAttackable(player))
{
final DoorStatusUpdate su = new DoorStatusUpdate(this);
player.sendPacket(su);
player.sendPacket(new DoorStatusUpdate(this));
}
final NpcHtmlMessage reply = new NpcHtmlMessage(5);
@ -643,14 +635,12 @@ public class DoorInstance extends Creature
public void broadcastStatusUpdate()
{
final Collection<PlayerInstance> knownPlayers = getKnownList().getKnownPlayers().values();
if ((knownPlayers == null) || knownPlayers.isEmpty())
{
return;
}
final DoorStatusUpdate su = new DoorStatusUpdate(this);
for (PlayerInstance player : knownPlayers)
{
player.sendPacket(su);

View File

@ -293,7 +293,7 @@ public class MerchantInstance extends FolkInstance
return;
}
if (player.getAccessLevel().isGm())
if (player.isGM())
{
player.setTarget(this);

View File

@ -31,13 +31,13 @@ import org.l2jmobius.gameserver.datatables.SkillTable;
import org.l2jmobius.gameserver.datatables.sql.ClanTable;
import org.l2jmobius.gameserver.datatables.sql.HelperBuffTable;
import org.l2jmobius.gameserver.datatables.sql.SpawnTable;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.CustomNpcInstanceManager;
import org.l2jmobius.gameserver.instancemanager.DimensionalRiftManager;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.DropCategory;
import org.l2jmobius.gameserver.model.DropData;
import org.l2jmobius.gameserver.model.Skill;
@ -829,7 +829,7 @@ public class NpcInstance extends Creature
final Weapon currentWeapon = player.getActiveWeaponItem();
// Check if the PlayerInstance is a GM
if (player.getAccessLevel().isGm())
if (player.isGM())
{
// Set the target of the PlayerInstance player
player.setTarget(this);
@ -1135,8 +1135,7 @@ public class NpcInstance extends Creature
// Get castle this NPC belongs to (excluding Attackable)
if (_castleIndex < 0)
{
final TownZone town = TownManager.getInstance().getTown(getX(), getY(), getZ());
final TownZone town = ZoneData.getInstance().getZone(getX(), getY(), getZ(), TownZone.class);
if (town != null)
{
_castleIndex = CastleManager.getInstance().getCastleIndex(town.getTaxById());
@ -1144,7 +1143,7 @@ public class NpcInstance extends Creature
if (_castleIndex < 0)
{
_castleIndex = CastleManager.getInstance().findNearestCastlesIndex(this);
_castleIndex = CastleManager.getInstance().findNearestCastleIndex(this);
}
else
{

View File

@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.datatables.xml.FishData;
import org.l2jmobius.gameserver.datatables.xml.HennaData;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.datatables.xml.RecipeData;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -86,7 +87,6 @@ import org.l2jmobius.gameserver.instancemanager.ItemsOnGroundManager;
import org.l2jmobius.gameserver.instancemanager.PlayerCountManager;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.instancemanager.SiegeManager;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.AccessLevel;
import org.l2jmobius.gameserver.model.BlockList;
import org.l2jmobius.gameserver.model.Effect;
@ -6090,14 +6090,7 @@ public class PlayerInstance extends Playable
{
if (Config.TW_RESS_ON_DIE)
{
int x1;
int y1;
int z1;
x1 = getX();
y1 = getY();
z1 = getZ();
TownZone town;
town = TownManager.getInstance().getTown(x1, y1, z1);
final TownZone town = ZoneData.getInstance().getZone(getX(), getY(), getZ(), TownZone.class);
if ((town != null) && isinTownWar())
{
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
@ -6769,14 +6762,7 @@ public class PlayerInstance extends Playable
*/
public void increasePvpKills()
{
int x;
int y;
int z;
x = getX();
y = getY();
z = getZ();
TownZone town;
town = TownManager.getInstance().getTown(x, y, z);
final TownZone town = ZoneData.getInstance().getZone(getX(), getY(), getZ(), TownZone.class);
if ((town != null) && isinTownWar())
{
if ((town.getTownId() == Config.TW_TOWN_ID) && !Config.TW_ALL_TOWNS)
@ -7117,18 +7103,9 @@ public class PlayerInstance extends Playable
}
// Add karma to attacker and increase its PK counter
int x;
int y;
int z;
x = getX();
y = getY();
z = getZ();
// get local town
final TownZone town = TownManager.getInstance().getTown(x, y, z);
setPkKills(getPkKills() + 1);
final TownZone town = ZoneData.getInstance().getZone(getX(), getY(), getZ(), TownZone.class);
if ((town == null) || (isinTownWar() && Config.TW_ALLOW_KARMA))
{
setKarma(getKarma() + newKarma);

View File

@ -20,14 +20,15 @@ import java.util.StringTokenizer;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.datatables.sql.TeleportLocationTable;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.SiegeManager;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.model.TeleportLocation;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad;
import org.l2jmobius.gameserver.model.zone.type.BossZone;
import org.l2jmobius.gameserver.model.zone.type.TownZone;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
@ -217,7 +218,7 @@ public class TeleporterInstance extends FolkInstance
player.sendPacket(SystemMessageId.NO_PORT_THAT_IS_IN_SIGE);
return;
}
else if (!SiegeManager.getInstance().isTeleportToSiegeTownAllowed() && TownManager.getInstance().townHasCastleInSiege(list.getX(), list.getY()) && !player.isNoble())
else if (!SiegeManager.getInstance().isTeleportToSiegeTownAllowed() && (ZoneData.getInstance().getZone(list.getX(), list.getY(), list.getZ(), TownZone.class) != null) && CastleManager.getInstance().findNearestCastle(list.getX(), list.getY()).getSiege().isInProgress() && !player.isNoble())
{
player.sendPacket(SystemMessageId.NO_PORT_THAT_IS_IN_SIGE);
return;

View File

@ -19,7 +19,7 @@ package org.l2jmobius.gameserver.model.partymatching;
import java.util.ArrayList;
import java.util.List;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExManagePartyRoomMember;
@ -44,7 +44,7 @@ public class PartyMatchRoom
_id = id;
_title = title;
_loot = loot;
_location = TownManager.getClosestLocation(owner);
_location = MapRegionData.getInstance().getClosestLocation(owner.getX(), owner.getY());
_minlvl = minlvl;
_maxlvl = maxlvl;
_maxmem = maxmem;

View File

@ -0,0 +1,78 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone;
import java.util.ArrayList;
import java.util.List;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.model.Location;
/**
* Abstract zone with spawn locations.<br>
* It inherits regular ZoneType behavior, with the possible addition of 2 Lists holding Locations.
*/
public abstract class SpawnZone extends ZoneType
{
private List<Location> _spawnLocs = null;
private List<Location> _chaoticSpawnLocs = null;
public SpawnZone(int id)
{
super(id);
}
public final void addSpawn(int x, int y, int z)
{
if (_spawnLocs == null)
{
_spawnLocs = new ArrayList<>();
}
_spawnLocs.add(new Location(x, y, z));
}
public final void addChaoticSpawn(int x, int y, int z)
{
if (_chaoticSpawnLocs == null)
{
_chaoticSpawnLocs = new ArrayList<>();
}
_chaoticSpawnLocs.add(new Location(x, y, z));
}
public final List<Location> getSpawns()
{
return _spawnLocs;
}
public final Location getSpawnLoc()
{
return _spawnLocs.get(Rnd.get(_spawnLocs.size()));
}
public final Location getChaoticSpawnLoc()
{
if (_chaoticSpawnLocs != null)
{
return _chaoticSpawnLocs.get(Rnd.get(_chaoticSpawnLocs.size()));
}
return getSpawnLoc();
}
}

View File

@ -16,12 +16,20 @@
*/
package org.l2jmobius.gameserver.model.zone;
import java.awt.geom.Line2D;
import org.l2jmobius.gameserver.datatables.xml.ZoneData;
import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
/**
* Abstract base class for any zone form
* @author durgus
*/
public abstract class ZoneForm
{
protected static final int STEP = 50;
public abstract boolean isInsideZone(int x, int y, int z);
public abstract boolean intersectsRectangle(int x1, int x2, int y1, int y2);
@ -32,11 +40,13 @@ public abstract class ZoneForm
public abstract int getHighZ(); // New fishing patch makes use of that to get the Z for the hook
public abstract void visualizeZone(int id, int z);
// landing coordinates.
protected boolean lineSegmentsIntersect(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2)
{
return java.awt.geom.Line2D.linesIntersect(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2);
return Line2D.linesIntersect(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2);
}
protected boolean lineIntersectsLine(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2)
@ -82,4 +92,13 @@ public abstract class ZoneForm
{
return b > a ? (c >= a) && (c <= b) : (c >= b) && (c <= a);
}
protected static final void dropDebugItem(int id, int x, int y, int z)
{
final ItemInstance item = new ItemInstance(IdFactory.getInstance().getNextId(), 57);
item.setCount(id);
item.spawnMe(x, y, z + 5);
ZoneData.getInstance().addDebugItem(item);
}
}

View File

@ -22,22 +22,26 @@ package org.l2jmobius.gameserver.model.zone;
*/
public enum ZoneId
{
PVP,
PEACE,
SIEGE,
MOTHERTREE,
BOSS,
CASTLE,
CLAN_HALL,
UNUSED,
NO_LANDING,
WATER,
DANGER_AREA,
HQ,
JAIL,
MONSTER_TRACK,
SWAMP,
MOTHERTREE,
NO_LANDING,
NO_RESTART,
NO_STORE,
NO_SUMMON_FRIEND,
OLYMPIAD,
NO_HQ,
DANGER_AREA,
NO_STORE;
PEACE,
PVP,
SCRIPT,
SIEGE,
TOWN,
SWAMP,
WATER;
public static int getZoneCount()
{

View File

@ -19,8 +19,6 @@ package org.l2jmobius.gameserver.model.zone;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.w3c.dom.Node;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -149,10 +147,6 @@ public abstract class ZoneType
}
}
public void setSpawnLocs(Node node1)
{
}
/**
* Checks if the given character is affected by this zone
* @param creature
@ -364,4 +358,9 @@ public abstract class ZoneType
{
return _characterList;
}
public void visualizeZone(int z)
{
getZone().visualizeZone(_id, z);
}
}

View File

@ -198,4 +198,21 @@ public class ZoneCuboid extends ZoneForm
{
return _z2;
}
@Override
public void visualizeZone(int id, int z)
{
// x1->x2
for (int x = _x1; x < _x2; x = x + STEP)
{
dropDebugItem(id, x, _y1, z);
dropDebugItem(id, x, _y2, z);
}
// y1->y2
for (int y = _y1; y < _y2; y = y + STEP)
{
dropDebugItem(id, _x1, y, z);
dropDebugItem(id, _x2, y, z);
}
}
}

View File

@ -130,4 +130,17 @@ public class ZoneCylinder extends ZoneForm
{
return _z2;
}
@Override
public void visualizeZone(int id, int z)
{
int count = (int) ((2 * Math.PI * _rad) / STEP);
double angle = (2 * Math.PI) / count;
for (int i = 0; i < count; i++)
{
int x = (int) (Math.cos(angle * i) * _rad);
int y = (int) (Math.sin(angle * i) * _rad);
dropDebugItem(id, _x + x, _y + y, z);
}
}
}

View File

@ -136,4 +136,27 @@ public class ZoneNPoly extends ZoneForm
{
return _z2;
}
@Override
public void visualizeZone(int id, int z)
{
for (int i = 0; i < _x.length; i++)
{
int nextIndex = i + 1;
// ending point to first one
if (nextIndex == _x.length)
{
nextIndex = 0;
}
int vx = _x[nextIndex] - _x[i];
int vy = _y[nextIndex] - _y[i];
float lenght = (float) Math.sqrt((vx * vx) + (vy * vy));
lenght /= STEP;
for (int o = 1; o <= lenght; o++)
{
float k = o / lenght;
dropDebugItem(id, (int) (_x[i] + (k * vx)), (int) (_y[i] + (k * vy)), z);
}
}
}
}

View File

@ -17,58 +17,28 @@
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.SpawnZone;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* An arena
* @author durgus
*/
public class ArenaZone extends ZoneType
public class ArenaZone extends SpawnZone
{
private final Location _spawnLoc = new Location(0, 0, 0);
public ArenaZone(int id)
{
super(id);
}
@Override
public void setParameter(String name, String value)
{
switch (name)
{
case "spawnX":
{
_spawnLoc.setX(Integer.parseInt(value));
break;
}
case "spawnY":
{
_spawnLoc.setY(Integer.parseInt(value));
break;
}
case "spawnZ":
{
_spawnLoc.setZ(Integer.parseInt(value));
break;
}
default:
{
super.setParameter(name, value);
break;
}
}
}
@Override
protected void onEnter(Creature creature)
{
creature.setInsideZone(ZoneId.PVP, true);
creature.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
if (creature instanceof PlayerInstance)
{
@ -80,6 +50,7 @@ public class ArenaZone extends ZoneType
protected void onExit(Creature creature)
{
creature.setInsideZone(ZoneId.PVP, false);
creature.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
if (creature instanceof PlayerInstance)
{
@ -126,9 +97,4 @@ public class ArenaZone extends ZoneType
}
}
}
public Location getSpawnLoc()
{
return _spawnLoc;
}
}

View File

@ -28,6 +28,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
@ -90,7 +91,14 @@ public class BossZone extends ZoneType
*/
protected void onEnter(Creature creature)
{
if (_enabled && (creature instanceof PlayerInstance))
if (!_enabled)
{
return;
}
creature.setInsideZone(ZoneId.BOSS, true);
if (creature instanceof PlayerInstance)
{
final PlayerInstance player = (PlayerInstance) creature;
@ -163,7 +171,6 @@ public class BossZone extends ZoneType
* @param y
* @param z
*/
public void movePlayersTo(int x, int y, int z)
{
if (_characterList.isEmpty())
@ -187,7 +194,14 @@ public class BossZone extends ZoneType
@Override
protected void onExit(Creature creature)
{
if (_enabled && (creature instanceof PlayerInstance))
if (!_enabled)
{
return;
}
creature.setInsideZone(ZoneId.BOSS, false);
if (creature instanceof PlayerInstance)
{
// Thread.dumpStack();
final PlayerInstance player = (PlayerInstance) creature;

View File

@ -19,25 +19,22 @@ package org.l2jmobius.gameserver.model.zone.type;
import java.util.ArrayList;
import java.util.List;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.instancemanager.CastleManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.instance.SiegeSummonInstance;
import org.l2jmobius.gameserver.model.entity.siege.Castle;
import org.l2jmobius.gameserver.model.zone.SpawnZone;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* A castle zone
* @author durgus
*/
public class CastleZone extends ZoneType
public class CastleZone extends SpawnZone
{
private Castle _castle;
private final Location _spawnLoc = new Location(0, 0, 0);
public CastleZone(int id)
{
@ -57,21 +54,6 @@ public class CastleZone extends ZoneType
_castle.setZone(this);
break;
}
case "spawnX":
{
_spawnLoc.setX(Integer.parseInt(value));
break;
}
case "spawnY":
{
_spawnLoc.setY(Integer.parseInt(value));
break;
}
case "spawnZ":
{
_spawnLoc.setZ(Integer.parseInt(value));
break;
}
default:
{
super.setParameter(name, value);
@ -83,6 +65,8 @@ public class CastleZone extends ZoneType
@Override
protected void onEnter(Creature creature)
{
creature.setInsideZone(ZoneId.CASTLE, true);
if (_castle.getSiege().isInProgress())
{
creature.setInsideZone(ZoneId.PVP, true);
@ -98,6 +82,8 @@ public class CastleZone extends ZoneType
@Override
protected void onExit(Creature creature)
{
creature.setInsideZone(ZoneId.CASTLE, false);
if (_castle.getSiege().isInProgress())
{
creature.setInsideZone(ZoneId.PVP, false);
@ -189,7 +175,7 @@ public class CastleZone extends ZoneType
continue;
}
((PlayerInstance) temp).teleToLocation(TeleportWhereType.TOWN);
((PlayerInstance) temp).teleToLocation(getChaoticSpawnLoc(), true);
}
}
@ -227,11 +213,6 @@ public class CastleZone extends ZoneType
return players;
}
public Location getSpawn()
{
return _spawnLoc;
}
public boolean isSiegeActive()
{
if (_castle != null)

View File

@ -20,28 +20,24 @@ import java.util.Map;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.instancemanager.ClanHallManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.ClanHall;
import org.l2jmobius.gameserver.model.zone.SpawnZone;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.ClanHallDecoration;
/**
* A clan hall zone
* @author durgus
*/
public class ClanHallZone extends ZoneType
public class ClanHallZone extends SpawnZone
{
private int _clanHallId;
private final int[] _spawnLoc;
public ClanHallZone(int id)
{
super(id);
_spawnLoc = new int[3];
}
@Override
@ -56,21 +52,6 @@ public class ClanHallZone extends ZoneType
ClanHallManager.getInstance().getClanHallById(_clanHallId).setZone(this);
break;
}
case "spawnX":
{
_spawnLoc[0] = Integer.parseInt(value);
break;
}
case "spawnY":
{
_spawnLoc[1] = Integer.parseInt(value);
break;
}
case "spawnZ":
{
_spawnLoc[2] = Integer.parseInt(value);
break;
}
default:
{
super.setParameter(name, value);
@ -100,7 +81,7 @@ public class ClanHallZone extends ZoneType
// Send a message
if ((clanHall.getOwnerId() != 0) && (clanHall.getOwnerId() == ((PlayerInstance) creature).getClanId()))
{
((PlayerInstance) creature).sendMessage("You have entered your clan hall");
((PlayerInstance) creature).sendMessage("You have entered your clan hall.");
}
}
}
@ -116,7 +97,7 @@ public class ClanHallZone extends ZoneType
// Send a message
if ((((PlayerInstance) creature).getClanId() != 0) && (ClanHallManager.getInstance().getClanHallById(_clanHallId).getOwnerId() == ((PlayerInstance) creature).getClanId()))
{
((PlayerInstance) creature).sendMessage("You have left your clan hall");
((PlayerInstance) creature).sendMessage("You have left your clan hall.");
}
}
}
@ -158,13 +139,4 @@ public class ClanHallZone extends ZoneType
{
return _characterList;
}
/**
* Get the clan hall's spawn
* @return
*/
public Location getSpawn()
{
return new Location(_spawnLoc[0], _spawnLoc[1], _spawnLoc[2]);
}
}

View File

@ -1,111 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.ZoneType;
public class CustomZone extends ZoneType
{
public CustomZone(int id)
{
super(id);
_isFlyingEnable = true;
}
@Override
protected void onDieInside(Creature l2character)
{
}
@Override
protected void onReviveInside(Creature l2character)
{
}
@Override
public void setParameter(String name, String value)
{
switch (name)
{
case "name":
{
_zoneName = value;
break;
}
case "flying":
{
_isFlyingEnable = Boolean.parseBoolean(value);
break;
}
default:
{
super.setParameter(name, value);
break;
}
}
}
@Override
protected void onEnter(Creature creature)
{
if (creature instanceof PlayerInstance)
{
final PlayerInstance player = (PlayerInstance) creature;
if (!player.isGM() && player.isFlying() && !player.isInJail() && !_isFlyingEnable)
{
player.teleToLocation(TeleportWhereType.TOWN);
}
if (_zoneName.equalsIgnoreCase("tradeoff"))
{
player.sendMessage("Trade restrictions are involved.");
player.setTradeDisabled(true);
}
}
}
@Override
protected void onExit(Creature creature)
{
if (creature instanceof PlayerInstance)
{
final PlayerInstance player = (PlayerInstance) creature;
if (_zoneName.equalsIgnoreCase("tradeoff"))
{
player.sendMessage("Trade restrictions removed.");
player.setTradeDisabled(false);
}
}
}
public String getZoneName()
{
return _zoneName;
}
public boolean isFlyingEnable()
{
return _isFlyingEnable;
}
private String _zoneName;
private boolean _isFlyingEnable;
}

View File

@ -21,23 +21,21 @@ import java.util.List;
import org.l2jmobius.gameserver.enums.TeleportWhereType;
import org.l2jmobius.gameserver.instancemanager.FortManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.instance.SiegeSummonInstance;
import org.l2jmobius.gameserver.model.entity.siege.Fort;
import org.l2jmobius.gameserver.model.zone.SpawnZone;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* A castle zone
* @author programmos
*/
public class FortZone extends ZoneType
public class FortZone extends SpawnZone
{
private Fort _fort;
private final Location _spawnLoc = new Location(0, 0, 0);
public FortZone(int id)
{
@ -57,21 +55,6 @@ public class FortZone extends ZoneType
_fort.setZone(this);
break;
}
case "spawnX":
{
_spawnLoc.setX(Integer.parseInt(value));
break;
}
case "spawnY":
{
_spawnLoc.setY(Integer.parseInt(value));
break;
}
case "spawnZ":
{
_spawnLoc.setZ(Integer.parseInt(value));
break;
}
default:
{
super.setParameter(name, value);
@ -215,7 +198,6 @@ public class FortZone extends ZoneType
public List<PlayerInstance> getAllPlayers()
{
final List<PlayerInstance> players = new ArrayList<>();
for (Creature temp : _characterList.values())
{
if (temp instanceof PlayerInstance)
@ -223,16 +205,6 @@ public class FortZone extends ZoneType
players.add((PlayerInstance) temp);
}
}
return players;
}
/**
* Get the forts defender spawn
* @return
*/
public Location getSpawn()
{
return _spawnLoc;
}
}

View File

@ -0,0 +1,62 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
* The only zone where 'Build Headquarters' is allowed.
* @author Tryskell, reverted version of Gnat's NoHqZone
*/
public class HqZone extends ZoneType
{
public HqZone(final int id)
{
super(id);
}
@Override
protected void onEnter(final Creature character)
{
if (character instanceof PlayerInstance)
{
character.setInsideZone(ZoneId.HQ, true);
}
}
@Override
protected void onExit(final Creature character)
{
if (character instanceof PlayerInstance)
{
character.setInsideZone(ZoneId.HQ, false);
}
}
@Override
public void onDieInside(final Creature character)
{
}
@Override
public void onReviveInside(final Creature character)
{
}
}

View File

@ -40,7 +40,6 @@ public class MotherTreeZone extends ZoneType
if (creature instanceof PlayerInstance)
{
final PlayerInstance player = (PlayerInstance) creature;
if (player.isInParty())
{
for (PlayerInstance member : player.getParty().getPartyMembers())

View File

@ -1,62 +1,62 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
* Zone where 'Build Headquarters' is not allowed.
* @author Gnat
*/
public class NoHqZone extends ZoneType
{
public NoHqZone(int id)
{
super(id);
}
@Override
protected void onEnter(Creature creature)
{
if (creature instanceof PlayerInstance)
{
creature.setInsideZone(ZoneId.NO_HQ, true);
}
}
@Override
protected void onExit(Creature creature)
{
if (creature instanceof PlayerInstance)
{
creature.setInsideZone(ZoneId.NO_HQ, false);
}
}
@Override
public void onDieInside(Creature creature)
{
}
@Override
public void onReviveInside(Creature creature)
{
}
}
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
* A simple no restart zone
* @author GKR
*/
public class NoRestartZone extends ZoneType
{
public NoRestartZone(final int id)
{
super(id);
}
@Override
protected void onEnter(Creature character)
{
if (character instanceof PlayerInstance)
{
character.setInsideZone(ZoneId.NO_RESTART, true);
}
}
@Override
protected void onExit(Creature character)
{
if (character instanceof PlayerInstance)
{
character.setInsideZone(ZoneId.NO_RESTART, false);
}
}
@Override
public void onDieInside(Creature character)
{
}
@Override
public void onReviveInside(Creature character)
{
}
}

View File

@ -0,0 +1,56 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
* A simple no summon zone
* @author JIV
*/
public class NoSummonFriendZone extends ZoneType
{
public NoSummonFriendZone(int id)
{
super(id);
}
@Override
protected void onEnter(Creature character)
{
character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
}
@Override
protected void onExit(Creature character)
{
character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
}
@Override
public void onDieInside(Creature character)
{
}
@Override
public void onReviveInside(Creature character)
{
}
}

View File

@ -53,6 +53,8 @@ public class OlympiadStadiumZone extends ZoneType
public void onEnter(Creature creature)
{
creature.setInsideZone(ZoneId.PVP, true);
creature.setInsideZone(ZoneId.NO_RESTART, true);
creature.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
if (creature instanceof PlayerInstance)
{
@ -71,6 +73,8 @@ public class OlympiadStadiumZone extends ZoneType
public void onExit(Creature creature)
{
creature.setInsideZone(ZoneId.PVP, false);
creature.setInsideZone(ZoneId.NO_RESTART, false);
creature.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
if (creature instanceof PlayerInstance)
{

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.model.zone.type;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
@ -30,13 +31,15 @@ public class ScriptZone extends ZoneType
}
@Override
protected void onEnter(Creature creature)
protected void onEnter(Creature character)
{
character.setInsideZone(ZoneId.SCRIPT, true);
}
@Override
protected void onExit(Creature creature)
protected void onExit(Creature character)
{
character.setInsideZone(ZoneId.SCRIPT, false);
}
@Override

View File

@ -16,38 +16,29 @@
*/
package org.l2jmobius.gameserver.model.zone.type;
import java.util.ArrayList;
import java.util.List;
import org.w3c.dom.Node;
import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.zone.SpawnZone;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.model.zone.ZoneType;
/**
* A Town zone
* @author durgus
*/
public class TownZone extends ZoneType
public class TownZone extends SpawnZone
{
private String _townName;
private int _townId;
private int _redirectTownId;
private int _taxById;
private boolean _noPeace;
private final List<Location> _spawnLoc;
public TownZone(int id)
{
super(id);
_taxById = 0;
_spawnLoc = new ArrayList<>();
// Default to Giran
_redirectTownId = 9;
@ -85,12 +76,6 @@ public class TownZone extends ZoneType
}
}
@Override
public void setSpawnLocs(Node node)
{
_spawnLoc.add(new Location(Integer.parseInt(node.getAttributes().getNamedItem("X").getNodeValue()), Integer.parseInt(node.getAttributes().getNamedItem("Y").getNodeValue()), Integer.parseInt(node.getAttributes().getNamedItem("Z").getNodeValue())));
}
@Override
protected void onEnter(Creature creature)
{
@ -106,6 +91,7 @@ public class TownZone extends ZoneType
creature.setInsideZone(ZoneId.PEACE, true);
}
creature.setInsideZone(ZoneId.TOWN, true);
}
@Override
@ -115,6 +101,8 @@ public class TownZone extends ZoneType
{
creature.setInsideZone(ZoneId.PEACE, false);
}
creature.setInsideZone(ZoneId.TOWN, false);
}
@Override
@ -155,15 +143,6 @@ public class TownZone extends ZoneType
return _redirectTownId;
}
/**
* Returns this zones spawn location
* @return
*/
public Location getSpawnLoc()
{
return _spawnLoc.get(Rnd.get(_spawnLoc.size()));
}
/**
* Returns this town zones castle id
* @return

View File

@ -2096,10 +2096,23 @@ public enum SystemMessageId
PLAYING_FOR_LONG_TIME(764),
/**
* ID: 769 Message: A hacking tool has been discovered. Please try again after closing unnecessary programs.
* ID: 769<br>
* Message: A hacking tool has been discovered. Please try again after closing unnecessary programs.
*/
HACKING_TOOL(769),
/**
* ID: 778<br>
* Message: You may not log out from this location.
*/
NO_LOGOUT_HERE(778),
/**
* ID: 779<br>
* Message: You may not restart in this location.
*/
NO_RESTART_HERE(779),
/**
* ID: 780<br>
* Message: Observation is only possible during a siege.

View File

@ -50,7 +50,6 @@ public class Action extends GameClientPacket
{
// Get the current PlayerInstance of the player
final PlayerInstance player = getClient().getPlayer();
if (player == null)
{
return;
@ -64,7 +63,6 @@ public class Action extends GameClientPacket
}
final WorldObject obj;
if (player.getTargetId() == _objectId)
{
obj = player.getTarget();

View File

@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
@ -38,9 +39,8 @@ public class Logout extends GameClientPacket
@Override
protected void runImpl()
{
// Dont allow leaving if player is fighting
// Do not allow leaving if player is fighting
final PlayerInstance player = getClient().getPlayer();
if (player == null)
{
return;
@ -53,7 +53,12 @@ public class Logout extends GameClientPacket
return;
}
player.getInventory().updateDatabase();
if (player.isInsideZone(ZoneId.NO_RESTART))
{
player.sendPacket(SystemMessageId.NO_LOGOUT_HERE);
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player) && (!player.isGM() || !Config.GM_RESTART_FIGHTING))
{
@ -62,7 +67,7 @@ public class Logout extends GameClientPacket
return;
}
// Dont allow leaving if player is in combat
// Do not allow leaving if player is in combat
if (player.isInCombat() && !player.isGM())
{
player.sendMessage("You cannot logout while in combat mode.");
@ -70,7 +75,7 @@ public class Logout extends GameClientPacket
return;
}
// Dont allow leaving if player is teleporting
// Do not allow leaving if player is teleporting
if (player.isTeleporting() && !player.isGM())
{
player.sendMessage("You cannot logout while teleporting.");
@ -107,6 +112,8 @@ public class Logout extends GameClientPacket
}
}
player.getInventory().updateDatabase();
if (player.isFlying())
{
player.removeSkill(SkillTable.getInstance().getInfo(4289, 1));

View File

@ -16,7 +16,7 @@
*/
package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.partymatching.PartyMatchRoom;
@ -82,8 +82,7 @@ public class RequestOustFromPartyRoom extends GameClientPacket
PartyMatchWaitingList.getInstance().addPlayer(member);
// Send Room list
final int loc = TownManager.getClosestLocation(member);
member.sendPacket(new PartyMatchList(member, 0, loc, member.getLevel()));
member.sendPacket(new PartyMatchList(member, 0, MapRegionData.getInstance().getClosestLocation(member.getX(), member.getY()), member.getLevel()));
// Clean player's LFP title
member.broadcastUserInfo();

View File

@ -69,14 +69,14 @@ public class RequestRecipeShopListSet extends GameClientPacket
if (player.isTradeDisabled())
{
player.sendMessage("Private manufacture is disabled here. Try in another place.");
player.sendMessage("Private manufacture is disabled here. Try another place.");
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (player.isInsideZone(ZoneId.NO_STORE))
{
player.sendMessage("Private manufacture is disabled here. Try in another place.");
player.sendMessage("Private manufacture is disabled here. Try another place.");
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}

View File

@ -26,6 +26,7 @@ import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad;
import org.l2jmobius.gameserver.model.entity.sevensigns.SevenSignsFestival;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.GameClient.GameClientState;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -49,11 +50,8 @@ public class RequestRestart extends GameClientPacket
protected void runImpl()
{
final PlayerInstance player = getClient().getPlayer();
// Check if player is == null
if (player == null)
{
LOGGER.warning("[RequestRestart] activeChar null!?");
return;
}
@ -64,6 +62,13 @@ public class RequestRestart extends GameClientPacket
return;
}
if (player.isInsideZone(ZoneId.NO_RESTART))
{
player.sendPacket(SystemMessageId.NO_RESTART_HERE);
sendPacket(RestartResponse.valueOf(false));
return;
}
// Check if player are changing class
if (player.isLocked())
{
@ -72,8 +77,6 @@ public class RequestRestart extends GameClientPacket
return;
}
player.getInventory().updateDatabase();
// Check if player is in private store
if (player.getPrivateStoreType() != 0)
{
@ -126,6 +129,8 @@ public class RequestRestart extends GameClientPacket
return;
}
player.getInventory().updateDatabase();
// Fix against exploit anti-target
if (player.isCastingNow())
{

View File

@ -54,6 +54,40 @@ public class RequestRestartPoint extends GameClientPacket
_requestedPointType = readD();
}
@Override
protected void runImpl()
{
final PlayerInstance player = getClient().getPlayer();
if (player == null)
{
return;
}
if (player.isFakeDeath())
{
player.stopFakeDeath(null);
player.broadcastPacket(new Revive(player));
return;
}
else if (!player.isAlikeDead())
{
LOGGER.warning("Living player [" + player.getName() + "] called RestartPointPacket! Ban this player!");
return;
}
final Castle castle = CastleManager.getInstance().getCastle(player.getX(), player.getY(), player.getZ());
if ((castle != null) && castle.getSiege().isInProgress() && (player.getClan() != null) && castle.getSiege().checkIsAttacker(player.getClan()))
{
// Schedule respawn delay for attacker
ThreadPool.schedule(new DeathTask(player), castle.getSiege().getAttackerRespawnDelay());
player.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
return;
}
// Run immediately (no need to schedule)
new DeathTask(player).run();
}
class DeathTask implements Runnable
{
PlayerInstance _player;
@ -71,6 +105,7 @@ public class RequestRestartPoint extends GameClientPacket
_player.sendMessage("You cannot restart while participating in an event!");
return;
}
try
{
Location loc = null;
@ -213,38 +248,4 @@ public class RequestRestartPoint extends GameClientPacket
}
}
}
@Override
protected void runImpl()
{
final PlayerInstance player = getClient().getPlayer();
if (player == null)
{
return;
}
if (player.isFakeDeath())
{
player.stopFakeDeath(null);
player.broadcastPacket(new Revive(player));
return;
}
else if (!player.isAlikeDead())
{
LOGGER.warning("Living player [" + player.getName() + "] called RestartPointPacket! Ban this player!");
return;
}
final Castle castle = CastleManager.getInstance().getCastle(player.getX(), player.getY(), player.getZ());
if ((castle != null) && castle.getSiege().isInProgress() && (player.getClan() != null) && castle.getSiege().checkIsAttacker(player.getClan()))
{
// Schedule respawn delay for attacker
ThreadPool.schedule(new DeathTask(player), castle.getSiege().getAttackerRespawnDelay());
player.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
return;
}
// run immediately (no need to schedule)
new DeathTask(player).run();
}
}

View File

@ -99,7 +99,7 @@ public class SetPrivateStoreListBuy extends GameClientPacket
if (player.isInsideZone(ZoneId.NO_STORE))
{
player.sendPacket(new PrivateStoreManageListBuy(player));
player.sendMessage("Trade are disable here. Try in another place.");
player.sendMessage("Trade is disable here. Try another place.");
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}

View File

@ -99,7 +99,7 @@ public class SetPrivateStoreListSell extends GameClientPacket
if (player.isInsideZone(ZoneId.NO_STORE))
{
player.sendPacket(new PrivateStoreManageListSell(player));
player.sendMessage("Trade are disable here. Try in another place.");
player.sendMessage("Trade is disable here. Try another place.");
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}

View File

@ -16,7 +16,7 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.partymatching.PartyMatchRoom;
@ -46,7 +46,7 @@ public class ExManagePartyRoomMember extends GameServerPacket
writeS(_player.getName());
writeD(_player.getActiveClass());
writeD(_player.getLevel());
writeD(TownManager.getClosestLocation(_player));
writeD(MapRegionData.getInstance().getClosestLocation(_player.getX(), _player.getY()));
if (_room.getOwner().equals(_player))
{
writeD(1);

View File

@ -16,7 +16,7 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.gameserver.instancemanager.TownManager;
import org.l2jmobius.gameserver.datatables.xml.MapRegionData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.partymatching.PartyMatchRoom;
@ -41,18 +41,18 @@ public class ExPartyRoomMember extends GameServerPacket
writeH(0x0e);
writeD(_mode);
writeD(_room.getMembers());
for (PlayerInstance _member : _room.getPartyMembers())
for (PlayerInstance member : _room.getPartyMembers())
{
writeD(_member.getObjectId());
writeS(_member.getName());
writeD(_member.getActiveClass());
writeD(_member.getLevel());
writeD(TownManager.getClosestLocation(_member));
if (_room.getOwner().equals(_member))
writeD(member.getObjectId());
writeS(member.getName());
writeD(member.getActiveClass());
writeD(member.getLevel());
writeD(MapRegionData.getInstance().getClosestLocation(member.getX(), member.getY()));
if (_room.getOwner().equals(member))
{
writeD(1);
}
else if ((_room.getOwner().isInParty() && _member.isInParty()) && (_room.getOwner().getParty().getPartyLeaderOID() == _member.getParty().getPartyLeaderOID()))
else if ((_room.getOwner().isInParty() && member.isInParty()) && (_room.getOwner().getParty().getPartyLeaderOID() == member.getParty().getPartyLeaderOID()))
{
writeD(2);
}

View File

@ -758,8 +758,8 @@ public class GameStatusThread extends Thread
}
else if (type.equals("zone"))
{
_print.print("Reloading zone tables... ");
ZoneData.getInstance().load();
_print.print("Reloading zones... ");
ZoneData.getInstance().reload();
_print.println("done");
}
else if (type.equals("teleports"))