Initial changes.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>L2J_Mobius_Classic_3.0_TheKamael</name>
|
<name>L2J_Mobius_Essence_4.0_DwellingOfSpirits</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
@@ -19,4 +19,4 @@
|
|||||||
<natures>
|
<natures>
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE xml>
|
<!DOCTYPE xml>
|
||||||
<project name="L2J_Mobius_Classic_3.0_TheKamael" default="cleanup" basedir=".">
|
<project name="L2J_Mobius_Essence_4.0_DwellingOfSpirits" default="cleanup" basedir=".">
|
||||||
<description>
|
<description>
|
||||||
This file is part of the L2J Mobius project.
|
This file is part of the L2J Mobius project.
|
||||||
|
|
||||||
@@ -132,15 +132,15 @@
|
|||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_3.0_TheKamael.zip" basedir="${build.dist}" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_4.0_DwellingOfSpirits.zip" basedir="${build.dist}" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_3.0_TheKamael.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_4.0_DwellingOfSpirits.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_3.0_TheKamael.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_4.0_DwellingOfSpirits.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
||||||
|
|||||||
@@ -270,9 +270,9 @@ MaxSp = 50000000000
|
|||||||
|
|
||||||
# Maximum Player Level
|
# Maximum Player Level
|
||||||
# WARNING: Cannot exceed the maximum experince.xml level.
|
# WARNING: Cannot exceed the maximum experince.xml level.
|
||||||
# Example: Set as 86 to force the maximum player level at 86.
|
# Example: Set as 90 to force the maximum player level at 90.
|
||||||
# Default: 86
|
# Default: 90
|
||||||
MaximumPlayerLevel = 86
|
MaximumPlayerLevel = 90
|
||||||
|
|
||||||
# Maximum number of allowed subclasses for every player.
|
# Maximum number of allowed subclasses for every player.
|
||||||
# Do not use more than 3!
|
# Do not use more than 3!
|
||||||
@@ -686,7 +686,7 @@ OffsetOnTeleportEnabled = True
|
|||||||
MaxOffsetOnTeleport = 50
|
MaxOffsetOnTeleport = 50
|
||||||
|
|
||||||
# Enable teleporting while siege in progress.
|
# Enable teleporting while siege in progress.
|
||||||
# Classic: True
|
# Default: True
|
||||||
TeleportWhileSiegeInProgress = True
|
TeleportWhileSiegeInProgress = True
|
||||||
|
|
||||||
# This option is to enable or disable the use of in game petitions.
|
# This option is to enable or disable the use of in game petitions.
|
||||||
|
|||||||
@@ -18,4 +18,5 @@ MobsSpawnNotRandom = 18812,18813,18814,22138,\
|
|||||||
18170,18171,18183,18184,18185,18186,18187,18191,18195,18196,18197,18198,18199,18212,18220,\
|
18170,18171,18183,18184,18185,18186,18187,18191,18195,18196,18197,18198,18199,18212,18220,\
|
||||||
18221,18222,18226,18230,18231,18232,18233,18234,18235,18236,18237,18238,18239,18240,18241,\
|
18221,18222,18226,18230,18231,18232,18233,18234,18235,18236,18237,18238,18239,18240,18241,\
|
||||||
18242,18243,18256,31452,31468,31469,31470,31471,31472,31473,31474,31475,31476,31477,31478,\
|
18242,18243,18256,31452,31468,31469,31470,31471,31472,31473,31474,31475,31476,31477,31478,\
|
||||||
31479,31480,31481,31482,31483,31484,31485,31486,31487
|
31479,31480,31481,31482,31483,31484,31485,31486,31487,\
|
||||||
|
22183
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ GameserverPort = 7777
|
|||||||
Driver = org.mariadb.jdbc.Driver
|
Driver = org.mariadb.jdbc.Driver
|
||||||
|
|
||||||
# Database URL
|
# Database URL
|
||||||
# Default: jdbc:mariadb://localhost/l2jmobiusclassic?useUnicode=true&characterEncoding=utf-8&useSSL=false
|
# Default: jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
|
||||||
URL = jdbc:mariadb://localhost/l2jmobiusclassic?useUnicode=true&characterEncoding=utf-8&useSSL=false
|
URL = jdbc:mariadb://localhost/l2jmobiusessence?useUnicode=true&characterEncoding=utf-8&useSSL=false
|
||||||
|
|
||||||
# Database user info (default is "root" but it's not recommended)
|
# Database user info (default is "root" but it's not recommended)
|
||||||
Login = root
|
Login = root
|
||||||
@@ -101,14 +101,14 @@ MaximumOnlineUsers = 2000
|
|||||||
# Numbers of protocol revisions that server allows to connect.
|
# Numbers of protocol revisions that server allows to connect.
|
||||||
# Delimiter is ;
|
# Delimiter is ;
|
||||||
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
|
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
|
||||||
# The Kamael: 228
|
# Dwelling of Spirits: 286
|
||||||
AllowedProtocolRevisions = 228
|
AllowedProtocolRevisions = 286
|
||||||
|
|
||||||
# Displays server type next to the server name on character selection.
|
# Displays server type next to the server name on character selection.
|
||||||
# Notes:
|
# Notes:
|
||||||
# Accepted Values: Normal, Relax, Test, Broad, Restricted, Event, Free, World, New, Classic
|
# Accepted Values: Normal, Relax, Test, Broad, Restricted, Event, Free, World, New, Essence
|
||||||
# Default: Free
|
# Default: Essence
|
||||||
ServerListType = Classic
|
ServerListType = Essence
|
||||||
|
|
||||||
# Displays server minimum age to the server name on character selection.
|
# Displays server minimum age to the server name on character selection.
|
||||||
# Notes:
|
# Notes:
|
||||||
|
|||||||
@@ -65,6 +65,18 @@
|
|||||||
<id>193</id> <!-- Soul Finder -->
|
<id>193</id> <!-- Soul Finder -->
|
||||||
<id>194</id> <!-- Soul Breaker -->
|
<id>194</id> <!-- Soul Breaker -->
|
||||||
<id>195</id> <!-- Soul Hound -->
|
<id>195</id> <!-- Soul Hound -->
|
||||||
|
<id>196</id> <!-- Death Pilgrim - Human -->
|
||||||
|
<id>205</id> <!-- Death Blade - Human -->
|
||||||
|
<id>202</id> <!-- Death Messenger - Human -->
|
||||||
|
<id>199</id> <!-- Death Knight - Human -->
|
||||||
|
<id>200</id> <!-- Death Pilgrim - Elf -->
|
||||||
|
<id>197</id> <!-- Death Blade - Elf -->
|
||||||
|
<id>206</id> <!-- Death Messenger - Elf -->
|
||||||
|
<id>203</id> <!-- Death Knight - Elf -->
|
||||||
|
<id>204</id> <!-- Death Pilgrim - Dark Elf -->
|
||||||
|
<id>201</id> <!-- Death Blade - Dark Elf -->
|
||||||
|
<id>198</id> <!-- Death Messenger - Dark Elf -->
|
||||||
|
<id>207</id> <!-- Death Knight - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="MAGE_GROUP">
|
<category name="MAGE_GROUP">
|
||||||
<id>10</id> <!-- mage -->
|
<id>10</id> <!-- mage -->
|
||||||
@@ -189,6 +201,18 @@
|
|||||||
<id>193</id> <!-- Soul Finder -->
|
<id>193</id> <!-- Soul Finder -->
|
||||||
<id>194</id> <!-- Soul Breaker -->
|
<id>194</id> <!-- Soul Breaker -->
|
||||||
<id>195</id> <!-- Soul Hound -->
|
<id>195</id> <!-- Soul Hound -->
|
||||||
|
<id>196</id> <!-- Death Pilgrim - Human -->
|
||||||
|
<id>205</id> <!-- Death Blade - Human -->
|
||||||
|
<id>202</id> <!-- Death Messenger - Human -->
|
||||||
|
<id>199</id> <!-- Death Knight - Human -->
|
||||||
|
<id>200</id> <!-- Death Pilgrim - Elf -->
|
||||||
|
<id>197</id> <!-- Death Blade - Elf -->
|
||||||
|
<id>206</id> <!-- Death Messenger - Elf -->
|
||||||
|
<id>203</id> <!-- Death Knight - Elf -->
|
||||||
|
<id>204</id> <!-- Death Pilgrim - Dark Elf -->
|
||||||
|
<id>201</id> <!-- Death Blade - Dark Elf -->
|
||||||
|
<id>198</id> <!-- Death Messenger - Dark Elf -->
|
||||||
|
<id>207</id> <!-- Death Knight - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="FIRST_CLASS_GROUP">
|
<category name="FIRST_CLASS_GROUP">
|
||||||
<id>0</id> <!-- fighter -->
|
<id>0</id> <!-- fighter -->
|
||||||
@@ -201,6 +225,9 @@
|
|||||||
<id>49</id> <!-- orc_mage -->
|
<id>49</id> <!-- orc_mage -->
|
||||||
<id>53</id> <!-- dwarven_fighter -->
|
<id>53</id> <!-- dwarven_fighter -->
|
||||||
<id>192</id> <!-- Jin Kamael Soldier -->
|
<id>192</id> <!-- Jin Kamael Soldier -->
|
||||||
|
<id>196</id> <!-- Death Pilgrim - Human -->
|
||||||
|
<id>200</id> <!-- Death Pilgrim - Elf -->
|
||||||
|
<id>204</id> <!-- Death Pilgrim - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="SECOND_CLASS_GROUP">
|
<category name="SECOND_CLASS_GROUP">
|
||||||
<id>1</id> <!-- warrior -->
|
<id>1</id> <!-- warrior -->
|
||||||
@@ -224,6 +251,9 @@
|
|||||||
<id>125</id> <!-- trooper -->
|
<id>125</id> <!-- trooper -->
|
||||||
<id>126</id> <!-- warder -->
|
<id>126</id> <!-- warder -->
|
||||||
<id>193</id> <!-- Soul Finder -->
|
<id>193</id> <!-- Soul Finder -->
|
||||||
|
<id>197</id> <!-- Death Blade - Human -->
|
||||||
|
<id>201</id> <!-- Death Blade - Elf -->
|
||||||
|
<id>205</id> <!-- Death Blade - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="THIRD_CLASS_GROUP">
|
<category name="THIRD_CLASS_GROUP">
|
||||||
<id>2</id> <!-- gladiator -->
|
<id>2</id> <!-- gladiator -->
|
||||||
@@ -260,6 +290,9 @@
|
|||||||
<id>127</id> <!-- berserker -->
|
<id>127</id> <!-- berserker -->
|
||||||
<id>130</id> <!-- arbalester -->
|
<id>130</id> <!-- arbalester -->
|
||||||
<id>194</id> <!-- Soul Breaker -->
|
<id>194</id> <!-- Soul Breaker -->
|
||||||
|
<id>198</id> <!-- Death Messenger - Human -->
|
||||||
|
<id>202</id> <!-- Death Messenger - Elf -->
|
||||||
|
<id>206</id> <!-- Death Messenger - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="FOURTH_CLASS_GROUP">
|
<category name="FOURTH_CLASS_GROUP">
|
||||||
<id>88</id> <!-- duelist -->
|
<id>88</id> <!-- duelist -->
|
||||||
@@ -296,6 +329,9 @@
|
|||||||
<id>131</id> <!-- doombringer -->
|
<id>131</id> <!-- doombringer -->
|
||||||
<id>134</id> <!-- trickster -->
|
<id>134</id> <!-- trickster -->
|
||||||
<id>195</id> <!-- Soul Hound -->
|
<id>195</id> <!-- Soul Hound -->
|
||||||
|
<id>199</id> <!-- Death Knight - Human -->
|
||||||
|
<id>203</id> <!-- Death Knight - Elf -->
|
||||||
|
<id>207</id> <!-- Death Knight - Dark Elf -->
|
||||||
</category>
|
</category>
|
||||||
<category name="BOUNTY_HUNTER_GROUP">
|
<category name="BOUNTY_HUNTER_GROUP">
|
||||||
<id>53</id> <!-- dwarven_fighter -->
|
<id>53</id> <!-- dwarven_fighter -->
|
||||||
|
|||||||
395
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/LCoinShop.xml
vendored
Normal file
395
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/LCoinShop.xml
vendored
Normal file
@@ -0,0 +1,395 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/LCoinShop.xsd">
|
||||||
|
<product id="70" category="0">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="93740" /> <!-- Giran Seal Pack -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="71" category="0">
|
||||||
|
<ingredient id="91663" count="100" /> L-Coin
|
||||||
|
<production id="94167" /> Hero's Shining Pack
|
||||||
|
</product>
|
||||||
|
<product id="72" category="1">
|
||||||
|
<ingredient id="91663" count="500" /> L-Coin
|
||||||
|
<production id="94303" /> Life Stone - Circlet
|
||||||
|
</product>
|
||||||
|
<product id="73" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> L-Coin
|
||||||
|
<production id="94188" /> Life Stone Lv. 2 - Armor
|
||||||
|
</product>
|
||||||
|
<product id="74" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> L-Coin
|
||||||
|
<production id="94186" /> Life Stone Lv. 2 - Weapon
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="75" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="93100" /> <!-- Life Stone Lv. 2 - Shield/ Sigil -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="76" category="0">
|
||||||
|
<ingredient id="91663" count="1000" /> Adena
|
||||||
|
<production id="94450" accountDailyLimit="1" /> Augustina's Support Box Lv. 1
|
||||||
|
</product>
|
||||||
|
<product id="77" category="0">
|
||||||
|
<ingredient id="91663" count="300000" /> Adena
|
||||||
|
<production id="94457" accountDailyLimit="1" /> Augustina's Support Box Lv. 2
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="1" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="90694" /> <!-- Sealed Soul Crystal Lv. 1 -->
|
||||||
|
</product>
|
||||||
|
<product id="2" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="9589" /> <!-- Talisman Bracelet Lv. 1 -->
|
||||||
|
</product>
|
||||||
|
<product id="3" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="90311" /> <!-- Brooch Lv. 1 -->
|
||||||
|
</product>
|
||||||
|
<product id="4" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="92034" /> <!-- Reinforced Jewel Box -->
|
||||||
|
</product>
|
||||||
|
<product id="5" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="91767" /> <!-- Enchant Kit: Talisman of Aden -->
|
||||||
|
</product>
|
||||||
|
<product id="6" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="92020" /> <!-- Enchant Kit: Talisman of Eva -->
|
||||||
|
</product>
|
||||||
|
<product id="7" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="91864" /> <!-- Dragon Belt Pack -->
|
||||||
|
</product>
|
||||||
|
<product id="57" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="93303" /> <!-- Package: Cloak of Protection -->
|
||||||
|
</product>
|
||||||
|
<product id="32" category="1">
|
||||||
|
<ingredient id="91663" count="1500" /> <!-- L-Coin -->
|
||||||
|
<production id="729" /> <!-- Scroll: Enchant A-grade Weapon (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<product id="31" category="1">
|
||||||
|
<ingredient id="91663" count="600" /> <!-- L-Coin -->
|
||||||
|
<production id="947" /> <!-- Scroll: Enchant B-grade Weapon (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<product id="30" category="1">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="951" /> <!-- Scroll: Enchant C-grade Weapon (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<product id="28" category="1">
|
||||||
|
<ingredient id="91663" count="350" /> <!-- L-Coin -->
|
||||||
|
<production id="730" /> <!-- Scroll: Enchant A-grade Armor (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<product id="27" category="1">
|
||||||
|
<ingredient id="91663" count="100" /> <!-- L-Coin -->
|
||||||
|
<production id="948" /> <!-- Scroll: Enchant B-grade Armor (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<product id="26" category="1">
|
||||||
|
<ingredient id="91663" count="50" /> <!-- L-Coin -->
|
||||||
|
<production id="952" /> <!-- Scroll: Enchant C-grade Armor (Exchangeable) -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="8" category="2">
|
||||||
|
<ingredient id="91663" count="120" /> L-Coin
|
||||||
|
<production id="71900" /> Limited Sayha's Blessing (1 Day)
|
||||||
|
</product>
|
||||||
|
<product id="9" category="2">
|
||||||
|
<ingredient id="91663" count="2000" /> L-Coin
|
||||||
|
<production id="71899" /> Limited Sayha's Blessing (30 Day)
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="11" category="2">
|
||||||
|
<ingredient id="91663" count="20" /> <!-- L-Coin -->
|
||||||
|
<production id="91641" /> <!-- Sayha's Blessing -->
|
||||||
|
</product>
|
||||||
|
<product id="12" category="2">
|
||||||
|
<ingredient id="91663" count="6" /> <!-- L-Coin -->
|
||||||
|
<production id="90907" /> <!-- Soulshot Ticket -->
|
||||||
|
</product>
|
||||||
|
<product id="13" category="2">
|
||||||
|
<ingredient id="91663" count="20" /> <!-- L-Coin -->
|
||||||
|
<production id="49674" /> <!-- XP Growth Scroll -->
|
||||||
|
</product>
|
||||||
|
<product id="14" category="2">
|
||||||
|
<ingredient id="91663" count="6" /> <!-- L-Coin -->
|
||||||
|
<production id="91690" /> <!-- Special HP Recovery Potion -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="15" category="2">
|
||||||
|
<ingredient id="91663" count="20" /> L-Coin
|
||||||
|
<production id="91689" /> Blessed Scroll of Escape
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="16" category="2">
|
||||||
|
<ingredient id="91663" count="300" /> <!-- L-Coin -->
|
||||||
|
<production id="90404" /> <!-- My Teleport Book -->
|
||||||
|
</product>
|
||||||
|
<product id="17" category="2">
|
||||||
|
<ingredient id="91663" count="20" /> <!-- L-Coin -->
|
||||||
|
<production id="90405" /> <!-- My Teleport Scroll -->
|
||||||
|
</product>
|
||||||
|
<product id="18" category="2">
|
||||||
|
<ingredient id="91663" count="50" /> <!-- L-Coin -->
|
||||||
|
<production id="91996" /> <!-- Scroll of Escape Pack: Tower of Insolence (Floors 1-7) -->
|
||||||
|
</product>
|
||||||
|
<product id="19" category="2">
|
||||||
|
<ingredient id="91663" count="100" /> <!-- L-Coin -->
|
||||||
|
<production id="92973" /> <!-- Scroll of Escape Pack: Tower of Insolence (Floors 8-12) -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="20" category="3">
|
||||||
|
<ingredient id="91663" count="300" /> L-Coin
|
||||||
|
<production id="92400" accountDailyLimit="1" /> Forgotten Primeval Garden's Time Stone
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="21" category="3">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="91983" accountDailyLimit="1" /> <!-- Primeval Isle's Time Stone -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="22" category="3">
|
||||||
|
<ingredient id="91663" count="200" /> L-Coin
|
||||||
|
<production id="93704" accountDailyLimit="1" /> Alligator Island's Time Stone
|
||||||
|
</product>
|
||||||
|
<product id="58" category="3">
|
||||||
|
<ingredient id="91663" count="600" /> L-Coin
|
||||||
|
<production id="93948" accountDailyLimit="1" /> Extra Pass: Transcendent Instance Zone
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="33" category="3">
|
||||||
|
<ingredient id="91663" count="2000" /> <!-- L-Coin -->
|
||||||
|
<production id="92004" /> <!-- Inventory Expansion Ticket Lv. 1 -->
|
||||||
|
</product>
|
||||||
|
<product id="34" category="3">
|
||||||
|
<ingredient id="91663" count="2000" /> <!-- L-Coin -->
|
||||||
|
<production id="92005" /> <!-- Inventory Expansion Ticket Lv. 2 -->
|
||||||
|
</product>
|
||||||
|
<product id="35" category="3">
|
||||||
|
<ingredient id="91663" count="2000" /> <!-- L-Coin -->
|
||||||
|
<production id="92006" /> <!-- Inventory Expansion Ticket Lv. 3 -->
|
||||||
|
</product>
|
||||||
|
<product id="36" category="3">
|
||||||
|
<ingredient id="91663" count="4000" /> <!-- L-Coin -->
|
||||||
|
<production id="8618" /> <!-- Buff Expansion Book Lv. 1 -->
|
||||||
|
</product>
|
||||||
|
<product id="37" category="3">
|
||||||
|
<ingredient id="91663" count="4000" /> <!-- L-Coin -->
|
||||||
|
<production id="8619" /> <!-- Buff Expansion Book Lv. 2 -->
|
||||||
|
</product>
|
||||||
|
<product id="38" category="3">
|
||||||
|
<ingredient id="91663" count="5000" /> <!-- L-Coin -->
|
||||||
|
<production id="32253" /> <!-- Infinite Mithril Quiver -->
|
||||||
|
</product>
|
||||||
|
<product id="39" category="3">
|
||||||
|
<ingredient id="91663" count="1000" /> <!-- L-Coin -->
|
||||||
|
<production id="32252" /> <!-- Infinite Silver Quiver -->
|
||||||
|
</product>
|
||||||
|
<product id="40" category="3">
|
||||||
|
<ingredient id="91663" count="400" /> <!-- L-Coin -->
|
||||||
|
<production id="32251" /> <!-- Infinite Steel Quiver -->
|
||||||
|
</product>
|
||||||
|
<product id="41" category="3">
|
||||||
|
<ingredient id="91663" count="200" /> <!-- L-Coin -->
|
||||||
|
<production id="32250" /> <!-- Infinite Bone Quiver -->
|
||||||
|
</product>
|
||||||
|
<product id="42" category="4">
|
||||||
|
<ingredient id="57" count="1000000" /> <!-- Adena -->
|
||||||
|
<production id="91767" accountDailyLimit="1" /> <!-- Enchant Kit: Talisman of Aden -->
|
||||||
|
</product>
|
||||||
|
<product id="43" category="4">
|
||||||
|
<ingredient id="57" count="1000000" /> <!-- Adena -->
|
||||||
|
<production id="92020" accountDailyLimit="1" /> <!-- Enchant Kit: Talisman of Eva -->
|
||||||
|
</product>
|
||||||
|
<product id="47" category="4">
|
||||||
|
<ingredient id="57" count="1000000" /> <!-- Adena -->
|
||||||
|
<production id="91864" accountDailyLimit="1" /> <!-- Dragon Belt Pack -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="59" category="4">
|
||||||
|
<ingredient id="57" count="30000000" /> Adena
|
||||||
|
<production id="94208" accountDailyLimit="1" /> Scroll of Blessing
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
<product id="49" category="4">
|
||||||
|
<ingredient id="57" count="50000" /> <!-- Adena -->
|
||||||
|
<production id="91641" accountDailyLimit="30" /> <!-- Sayha's Blessing -->
|
||||||
|
</product>
|
||||||
|
<product id="60" category="4">
|
||||||
|
<ingredient id="57" count="100000" /> <!-- Adena -->
|
||||||
|
<production id="94271" accountDailyLimit="30" /> <!-- Scroll: Enchant Protection -->
|
||||||
|
</product>
|
||||||
|
<product id="61" category="4">
|
||||||
|
<ingredient id="57" count="100000" /> <!-- Adena -->
|
||||||
|
<production id="94269" accountDailyLimit="30" /> <!-- Scroll: Enchant Attack -->
|
||||||
|
</product>
|
||||||
|
<!--
|
||||||
|
<product id="68" category="4">
|
||||||
|
<ingredient id="57" count="150000" /> Adena
|
||||||
|
<production id="94377" accountDailyLimit="10" /> Supply Pouch
|
||||||
|
</product>
|
||||||
|
<product id="69" category="4">
|
||||||
|
<ingredient id="57" count="30000" /> Adena
|
||||||
|
<production id="91690" accountDailyLimit="100" /> Special HP Recovery Potion
|
||||||
|
</product>
|
||||||
|
<product id="1001" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sirra's Blade (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94573" /> Package: +5 Sirra's Blade
|
||||||
|
</product>
|
||||||
|
<product id="1002" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sword of Ipos (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94574" /> Package: +5 Sword of Ipos
|
||||||
|
</product>
|
||||||
|
<product id="1003" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Barakiel's Axe (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94575" /> Package: +5 Barakiel's Axe
|
||||||
|
</product>
|
||||||
|
<product id="1004" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Behemoth' Tuning Fork (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94576" /> Package: +5 Behemoth' Tuning Fork
|
||||||
|
</product>
|
||||||
|
<product id="1005" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Naga's Storm (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94577" /> Package: +5 Naga's Storm
|
||||||
|
</product>
|
||||||
|
<product id="1006" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tiphon's Spear (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94578" /> Package: +5 Tiphon's Spear
|
||||||
|
</product>
|
||||||
|
<product id="1007" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Shyeed's Bow (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94579" /> Package: +5 Shyeed's Bow
|
||||||
|
</product>
|
||||||
|
<product id="1008" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sobekk's Hurricane (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94580" /> Package: +5 Sobekk's Hurricane
|
||||||
|
</product>
|
||||||
|
<product id="1009" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Themis' Tongue (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94581" /> Package: +5 Themis' Tongue
|
||||||
|
</product>
|
||||||
|
<product id="1010" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Cabrio's Hand (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94582" /> Package: +5 Cabrio's Hand
|
||||||
|
</product>
|
||||||
|
<product id="1011" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Daimon Crystal (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94583" /> Package: +5 Daimon Crystal
|
||||||
|
</product>
|
||||||
|
<product id="1012" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tallum Blade*Damascus (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94584" /> Package: +5 Tallum Blade*Damascus
|
||||||
|
</product>
|
||||||
|
<product id="1013" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Eclair Bijou (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94585" /> Package: +5 Eclair Bijou
|
||||||
|
</product>
|
||||||
|
<product id="1014" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Durendal (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="41" /> Giran Seal
|
||||||
|
<production id="94586" /> Package: +5 Durendal
|
||||||
|
</product>
|
||||||
|
<product id="1016" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Armor of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94587" /> Package: +5 Armor of Nightmare (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1017" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94588" /> Package: +5 Helm of Nightmare (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1018" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94589" /> Package: +5 Gauntlets of Nightmare (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1019" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94590" /> Package: +5 Boots of Nightmare (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1020" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Plate Armor (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94591" /> Package: +5 Majestic Plate Armor (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1021" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94592" /> Package: +5 Majestic Circlet (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1022" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94593" /> Package: +5 Majestic Gauntlets (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1023" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94594" /> Package: +5 Majestic Boots (Heavy) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1024" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Leather Armor of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94595" /> Package: +5 Leather Armor of Nightmare (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1025" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94596" /> Package: +5 Helm of Nightmare (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1026" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94597" /> Package: +5 Gauntlets of Nightmare (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1027" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94598" /> Package: +5 Boots of Nightmare (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1028" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Leather Armor (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94599" /> Package: +5 Majestic Leather Armor (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1029" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94600" /> Package: +5 Majestic Circlet (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1030" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94601" /> Package: +5 Majestic Gauntlets (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1031" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94602" /> Package: +5 Majestic Boots (Light) Armor
|
||||||
|
</product>
|
||||||
|
<product id="1032" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Robe of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94603" /> Package: +5 Robe of Nightmare (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1033" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94604" /> Package: +5 Helm of Nightmare (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1034" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94605" /> Package: +5 Gauntlets of Nightmare (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1035" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94606" /> Package: +5 Boots of Nightmare (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1036" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Robe (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94607" /> Package: +5 Majestic Robe (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1037" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94608" /> Package: +5 Majestic Circlet (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1038" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94609" /> Package: +5 Majestic Gauntlets (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1039" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
||||||
|
<ingredient id="92314" count="31" /> Giran Seal
|
||||||
|
<production id="94610" /> Package: +5 Majestic Boots (Robe)
|
||||||
|
</product>
|
||||||
|
<product id="1040" category="3"> TODO: It has a 50% chance of giving the item, or 50% chance of giving 7 Elixir Powders
|
||||||
|
<ingredient id="1" count="10" /> Elixir Powder. TODO: I don't have the ID for this item.
|
||||||
|
<production id="94314" /> Elixir
|
||||||
|
</product>
|
||||||
|
-->
|
||||||
|
</list>
|
||||||
@@ -1,3 +1,24 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list enabled="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/PrimeShop.xsd">
|
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/PrimeShop.xsd">
|
||||||
|
<!-- cat = 1 - Exping, 2 - Supplies, 3 - Cosmetic, 4 - Specials, 5 - Other -->
|
||||||
|
<!-- panelType = 0 - None, 1 - Event, 2 - Sale, 3 - New, 4 - Best -->
|
||||||
|
<!-- recommended = 1 - Top, 2 - Left, 4 - Right -->
|
||||||
|
<!-- paymentType = 0 - Euro, 1 - Adena, 2 - Hero Coin -->
|
||||||
|
<!-- on EU 1 NC coin/Prime point shows as 0.01 euros -->
|
||||||
|
<!-- startSale = unixTime -->
|
||||||
|
<!-- endSale = unixTime -->
|
||||||
|
|
||||||
|
<!-- Supplies -->
|
||||||
|
<item id="2090029" cat="2" panelType="3" paymentType="0" price="250" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
|
||||||
|
<item itemId="93628" count="1" /> <!-- L-Coins (1000 pcs.) -->
|
||||||
|
</item>
|
||||||
|
<item id="2090030" cat="2" panelType="2" paymentType="0" price="1499" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
|
||||||
|
<item itemId="91755" count="1" /> <!-- L-Coins (8000 pcs.) -->
|
||||||
|
</item>
|
||||||
|
<item id="2090028" cat="2" paymentType="0" price="600" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
|
||||||
|
<item itemId="93483" count="1" /> <!-- Growth Kit: L-Coins -->
|
||||||
|
</item>
|
||||||
|
<item id="2090027" cat="2" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
|
||||||
|
<item itemId="93484" count="1" /> <!-- Grace Kit: L-Coins -->
|
||||||
|
</item>
|
||||||
</list>
|
</list>
|
||||||
@@ -90,4 +90,6 @@
|
|||||||
<teleport id="417" x="-119618" y="51994" z="-832" price="500" /> <!-- Hill of Hope -->
|
<teleport id="417" x="-119618" y="51994" z="-832" price="500" /> <!-- Hill of Hope -->
|
||||||
<teleport id="418" x="-109670" y="45283" z="-1344" price="500" /> <!-- Hills of Gold -->
|
<teleport id="418" x="-109670" y="45283" z="-1344" price="500" /> <!-- Hills of Gold -->
|
||||||
<teleport id="422" x="107698" y="143854" z="-3440" price="1650" /> <!-- Giran Castle Siege Barracks -->
|
<teleport id="422" x="107698" y="143854" z="-3440" price="1650" /> <!-- Giran Castle Siege Barracks -->
|
||||||
|
<teleport id="430" x="45753" y="147564" z="-3680" price="200" /> <!-- The First Training Grounds -->
|
||||||
|
<teleport id="431" x="52642" y="148105" z="-2424" price="200" /> <!-- The Second Training Grounds -->
|
||||||
</list>
|
</list>
|
||||||
@@ -4,30 +4,48 @@
|
|||||||
<npc>30840</npc> <!-- Lorenzo -->
|
<npc>30840</npc> <!-- Lorenzo -->
|
||||||
</npcs>
|
</npcs>
|
||||||
<item id="1378" price="20259" /> <!-- Spellbook: Divine Heal -->
|
<item id="1378" price="20259" /> <!-- Spellbook: Divine Heal -->
|
||||||
<item id="1384" price="39134" /> <!-- Spellbook: Sprint -->
|
<item id="1519" price="14400" /> <!-- Amulet: Chant of Encouragement -->
|
||||||
<item id="1380" price="57438" /> <!-- Spellbook: Entangle -->
|
<item id="1521" price="48000" /> <!-- Amulet: Chant of Wild Magic -->
|
||||||
<item id="1382" price="39134" /> <!-- Spellbook: Power Break -->
|
<item id="4205" price="48000" /> <!-- Amulet: Chant of the Berserker Spirit -->
|
||||||
<item id="1381" price="47481" /> <!-- Spellbook: Freezing Strike -->
|
<item id="1518" price="31912" /> <!-- Amulet: Chant of Insight -->
|
||||||
<item id="3038" price="25724" /> <!-- Blueprint: Summon Mechanic Golem -->
|
<item id="3116" price="120000" /> <!-- Amulet: Chant of Haste -->
|
||||||
<item id="1399" price="8953" /> <!-- Spellbook: Concentration -->
|
<item id="1523" price="14400" /> <!-- Amulet: Chant of Focus -->
|
||||||
<item id="1394" price="12723" /> <!-- Spellbook: Sleep -->
|
<item id="91837" price="14400" /> <!-- Amulet: Chant of Purity -->
|
||||||
<item id="1517" price="18057" /> <!-- Spellbook: Body To Mind -->
|
<item id="3118" price="14400" /> <!-- Amulet: Chant of the Death Whisper -->
|
||||||
<item id="1409" price="52417" /> <!-- Spellbook: Slow -->
|
<item id="1530" price="52418" /> <!-- Amulet: Seal of Slowing -->
|
||||||
<item id="1416" price="52417" /> <!-- Spellbook: Curse Chaos -->
|
<item id="1536" price="18058" /> <!-- Amulet: Seal of Bindings -->
|
||||||
<item id="1514" price="8953" /> <!-- Spellbook: Resurrection -->
|
<item id="1378" price="20260" /> <!-- Spellbook - Fast Heal -->
|
||||||
<item id="1415" price="12723" /> <!-- Spellbook: Dryad Root -->
|
<item id="1391" price="14400" /> <!-- Spellbook - Inspire -->
|
||||||
<item id="1398" price="18057" /> <!-- Spellbook: Focus -->
|
<item id="1514" price="8954" /> <!-- Spellbook - Resurrection -->
|
||||||
<item id="1392" price="52417" /> <!-- Spellbook: Berserker Spirit -->
|
<item id="5815" price="48000" /> <!-- Spellbook - Wild Magic -->
|
||||||
<item id="1401" price="8953" /> <!-- Spellbook: Acumen -->
|
<item id="1392" price="48000" /> <!-- Spellbook - Spirit of the Berserker -->
|
||||||
<item id="1047" price="52417" /> <!-- Spellbook: Light -->
|
<item id="1409" price="52418" /> <!-- Spellbook - Slow -->
|
||||||
<item id="1385" price="25724" /> <!-- Spellbook: Recharge -->
|
<item id="1381" price="47482" /> <!-- Spellbook - Freeze Weapon -->
|
||||||
<item id="1388" price="18057" /> <!-- Spellbook: Mental Shield -->
|
<item id="93391" price="1200000" /> <!-- Spellbook - Lightning Call -->
|
||||||
<item id="1523" price="8953" /> <!-- Amulet: Chant of Shielding -->
|
<item id="93389" price="1200000" /> <!-- Spellbook - Call of the Flame -->
|
||||||
<item id="1521" price="1600" /> <!-- Amulet: Chant of Fire -->
|
<item id="93390" price="1200000" /> <!-- Spellbook - Call of Cold -->
|
||||||
<item id="1536" price="18057" /> <!-- Amulet: Seal of Binding -->
|
<item id="1399" price="8954" /> <!-- Spellbook - Concentration -->
|
||||||
<item id="1519" price="31911" /> <!-- Amulet: Pa'agrio's Gift -->
|
<item id="1415" price="12724" /> <!-- Spellbook - Dryad Root -->
|
||||||
<item id="1518" price="31911" /> <!-- Amulet: Chant of Flame -->
|
<item id="1097" price="8954" /> <!-- Spellbook - Life Steal -->
|
||||||
<item id="1530" price="52417" /> <!-- Amulet: Seal of Slow -->
|
<item id="3944" price="52418" /> <!-- Spellbook - Light -->
|
||||||
<item id="1391" price="18057" /> <!-- Spellbook: Empower -->
|
<item id="1388" price="18058" /> <!-- Spellbook - Mental Shield -->
|
||||||
<item id="1097" price="8953" /> <!-- Spellbook: Drain HP -->
|
<item id="1380" price="57438" /> <!-- Spellbook - Entangle -->
|
||||||
|
<item id="91946" price="500000" /> <!-- Spellbook - Mount Griffin -->
|
||||||
|
<item id="90038" price="500000" /> <!-- Spellbook - Ride Golden Lion -->
|
||||||
|
<item id="90041" price="500000" /> <!-- Spellbook - Ride Kukura -->
|
||||||
|
<item id="90039" price="500000" /> <!-- Spellbook - Ride Pegasus -->
|
||||||
|
<item id="90040" price="500000" /> <!-- Spellbook: Ride Sabretooth Cougar -->
|
||||||
|
<item id="93383" price="500000" /> <!-- Spellbook - Mount Nightmare Steed -->
|
||||||
|
<item id="90042" price="500000" /> <!-- Spellbook - Mount Black Bear -->
|
||||||
|
<item id="1416" price="52418" /> <!-- Spellbook: Curse of Chaos -->
|
||||||
|
<item id="1401" price="8954" /> <!-- Spellbook - Insight -->
|
||||||
|
<item id="1517" price="18058" /> <!-- Spellbook - Self-flagellation -->
|
||||||
|
<item id="1382" price="39135" /> <!-- Spellbook - Break of Might -->
|
||||||
|
<item id="1384" price="39135" /> <!-- Spellbook - Sprint -->
|
||||||
|
<item id="1385" price="25725" /> <!-- Spellbook - Mana Boost -->
|
||||||
|
<item id="3099" price="120000" /> <!-- Spellbook - Haste -->
|
||||||
|
<item id="1394" price="12724" /> <!-- Spellbook: Sleep -->
|
||||||
|
<item id="1398" price="14400" /> <!-- Spellbook - Focus -->
|
||||||
|
<item id="8397" price="14400" /> <!-- Spellbook - Purity -->
|
||||||
|
<item id="3101" price="14400" /> <!-- Spellbook - Death Whisper -->
|
||||||
</list>
|
</list>
|
||||||
|
|||||||
24
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/buylists/3413901.xml
vendored
Normal file
24
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/buylists/3413901.xml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/buylist.xsd">
|
||||||
|
<npcs>
|
||||||
|
<npc>34139</npc> <!-- Mathorn -->
|
||||||
|
</npcs>
|
||||||
|
<item id="91927" price="23" /> <!-- Soulshot -->
|
||||||
|
<item id="91928" price="34" /> <!-- Spiritshot -->
|
||||||
|
<item id="91929" price="57" /> <!-- Blessed Soulshot -->
|
||||||
|
<item id="91930" price="86" /> <!-- Blessed Spiritshot -->
|
||||||
|
<item id="17" price="2" /> <!-- Wooden Arrow -->
|
||||||
|
<item id="1341" price="3" /> <!-- Bone Arrow -->
|
||||||
|
<item id="1831" price="86" /> <!-- Antidote -->
|
||||||
|
<item id="1833" price="86" /> <!-- Bandage -->
|
||||||
|
<item id="734" price="1380" /> <!-- Wind Walk Potion -->
|
||||||
|
<item id="735" price="2760" /> <!-- Haste Potion -->
|
||||||
|
<item id="6035" price="2760" /> <!-- Magic Haste Potion -->
|
||||||
|
<item id="736" price="460" /> <!-- Scroll of Escape -->
|
||||||
|
<item id="737" price="2300" /> <!-- Scroll of Resurrection -->
|
||||||
|
<item id="3031" price="460" /> <!-- Spirit Ore -->
|
||||||
|
<item id="1785" price="287" /> <!-- Soulstone -->
|
||||||
|
<item id="5589" price="115" /> <!-- Momentum Stone -->
|
||||||
|
<item id="5192" price="115" /> <!-- Magic Rope (D-grade) -->
|
||||||
|
<item id="91912" price="34" /> <!-- HP Potion -->
|
||||||
|
</list>
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td width="50"></td>
|
<td width="50"></td>
|
||||||
<td align="center" width="695" height="30" align="left">
|
<td align="center" width="695" height="30" align="left">
|
||||||
<img src="l2ui.bbs_lineage2" width="128" height="16" >
|
<font name="hs12">&$2306;</font>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<table width=270 cellpadding="4">
|
<table width=270 cellpadding="4">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Coin Type:</td>
|
<td>Coin Type:</td>
|
||||||
<td><combobox width=120 height=17 var=ebox list=Adena;AncientAdena;FestivalAdena;BlueEva;GoldEinhasad;SilverShilen;BloodyPaagrio;FantasyIsleCoin></td>
|
<td><combobox width=120 height=17 var=ebox list=Adena;AncientAdena;FestivalAdena;BlueEva;GoldEinhasad;SilverShilen;BloodyPaagrio;FantasyIsleCoin;LCoin></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Amount:</td>
|
<td>Amount:</td>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
53
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/admin/setclass/death_knight.htm
vendored
Normal file
53
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/admin/setclass/death_knight.htm
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<html><body>
|
||||||
|
<title>//setclass Menu</title>
|
||||||
|
<table width="260"><tr>
|
||||||
|
<td width="40"><center><button value="Back to Main Menu" action="bypass -h admin_admin" width="292" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center></td>
|
||||||
|
</tr></table>
|
||||||
|
<table width="260" border="0" bgcolor="000000">
|
||||||
|
<tr>
|
||||||
|
<td><button value="Human F." action="bypass -h admin_html setclass/human_fighter.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Human M." action="bypass -h admin_html setclass/human_mage.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Elf F." action="bypass -h admin_html setclass/elf_fighter.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Elf M." action="bypass -h admin_html setclass/elf_mage.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><button value="Dark Elf F." action="bypass -h admin_html setclass/dark_elf_fighter.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Dark Elf M." action="bypass -h admin_html setclass/dark_elf_mage.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Orc F." action="bypass -h admin_html setclass/orc_fighter.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Orc M." action="bypass -h admin_html setclass/orc_mage.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
<tr>
|
||||||
|
<td><button value="H. Pilgrim" action="bypass -h admin_setclass 196" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="E. Pilgrim" action="bypass -h admin_setclass 200" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Pilgrim" action="bypass -h admin_setclass 204" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="302" border="0" bgcolor="666666">
|
||||||
|
<tr>
|
||||||
|
<td><button value="H. Blade" action="bypass -h admin_setclass 197" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="E. Blade" action="bypass -h admin_setclass 201" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Blade" action="bypass -h admin_setclass 205" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="302" border="0" bgcolor="0066FF">
|
||||||
|
<tr>
|
||||||
|
<td><button value="H. Messenger" action="bypass -h admin_setclass 198" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="E. Messenger" action="bypass -h admin_setclass 202" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Messenger" action="bypass -h admin_setclass 206" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="302" border="0" bgcolor="0066FF">
|
||||||
|
<tr>
|
||||||
|
<td><button value="H. Knight" action="bypass -h admin_setclass 199" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="E. Knight" action="bypass -h admin_setclass 203" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_setclass 207" width="86" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body></html>
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="308" border="0" bgcolor="999999">
|
<table width="308" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Dwarf" action="bypass -h admin_html setclass/dwarf.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
<td><button value="Kamael" action="bypass -h admin_html setclass/kamael.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
|
<td><button value="D. Knight" action="bypass -h admin_html setclass/death_knight.htm" width="70" height="15" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table width="302" border="0" bgcolor="999999">
|
<table width="302" border="0" bgcolor="999999">
|
||||||
|
|||||||
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/default/34138.htm
vendored
Normal file
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/default/34138.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Head Trainer Kilremange:<br>
|
||||||
|
You don't like the life of a Death Knight? You should be proud, what's the use of suffering?<br>
|
||||||
|
Sure, out lot might be hard and sometimes we have to do things we don't want to do, but even in these dire circumstances it is possible to find the strength to fight and win.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||||
|
</body></html>
|
||||||
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/merchant/34139.htm
vendored
Normal file
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/merchant/34139.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Quartermaster Mathorn:<br>
|
||||||
|
Death Knights must always be training. Their fate must be a source of pride, not shame.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 3413901">Buy supplies and minerals</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||||
|
</body></html>
|
||||||
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/teleporter/34140.htm
vendored
Normal file
5
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/teleporter/34140.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Gatekeeper Marillia:<br>
|
||||||
|
What? You need to teleport? Sure, I'll help you.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_showTeleportList">Teleport</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||||
|
</body></html>
|
||||||
7
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141-1.htm
vendored
Normal file
7
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141-1.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<html><body>Warehouse Keeper Ryuchia:<br>
|
||||||
|
<center>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_DepositP">Deposit an item (Private Warehouse)</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_WithdrawP">Withdraw an item (Private Warehouse)</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</center>
|
||||||
|
</body></html>
|
||||||
7
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141-2.htm
vendored
Normal file
7
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141-2.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<html><body>Warehouse Keeper Ryuchia:<br>
|
||||||
|
<center>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_DepositC" msg="1039">Deposit Item (Clan Warehouse)</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_WithdrawC">Withdraw Item (Clan Warehouse)</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</center>
|
||||||
|
</body></html>
|
||||||
6
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141.htm
vendored
Normal file
6
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/html/warehouse/34141.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<html><body>Warehouse Keeper Ryuchia:<br>
|
||||||
|
If you want to leave anything here, let me know. I will keep your items safe and sound.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Private Warehouse</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">Clan warehouse</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||||
|
</body></html>
|
||||||
11
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/mapregion/death_knight_base.xml
vendored
Normal file
11
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/mapregion/death_knight_base.xml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- TODO: Remove "castle" attributes from here, it should be loaded from TaxZones -->
|
||||||
|
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/MapRegion.xsd">
|
||||||
|
<!-- Death Knight Base -->
|
||||||
|
<region name="death_knight_base" town="Death Knight Base" castle="2" locId="916" bbs="5">
|
||||||
|
<respawnPoint X="47485" Y="152730" Z="-2728" />
|
||||||
|
<respawnPoint X="48120" Y="147377" Z="-3431" isChaotic="true" />
|
||||||
|
<respawnPoint X="36218" Y="148110" Z="-3644" isChaotic="true" />
|
||||||
|
<map X="21" Y="22" />
|
||||||
|
</region>
|
||||||
|
</list>
|
||||||
@@ -30,6 +30,5 @@
|
|||||||
<map X="20" Y="21" />
|
<map X="20" Y="21" />
|
||||||
<map X="20" Y="22" />
|
<map X="20" Y="22" />
|
||||||
<map X="21" Y="21" />
|
<map X="21" Y="21" />
|
||||||
<map X="21" Y="22" />
|
|
||||||
</region>
|
</region>
|
||||||
</list>
|
</list>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<production id="91043" count="1" chance="35" /> <!-- Nebula 1 High -->
|
<production id="91043" count="1" chance="35" /> <!-- Nebula 1 High -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91043" count="1" /> <!-- Nebula 1 -->
|
<ingredient id="91043" count="1" /> <!-- Nebula 1 -->
|
||||||
<ingredient id="91039" count="600" /> <!-- Water Attribute Fragment -->
|
<ingredient id="91039" count="600" /> <!-- Water Attribute Fragment -->
|
||||||
<ingredient id="57" count="200000" /> <!-- Adena -->
|
<ingredient id="57" count="200000" /> <!-- Adena -->
|
||||||
<production id="91044" count="1" chance="20" /> <!-- Nebula 2 list -->
|
<production id="91044" count="1" chance="20" /> <!-- Nebula 2 list -->
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
<production id="91043" count="1" chance="65" /> <!-- Nebula 1 standar -->
|
<production id="91043" count="1" chance="65" /> <!-- Nebula 1 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91044" count="1" /> <!-- Nebula 2 -->
|
<ingredient id="91044" count="1" /> <!-- Nebula 2 -->
|
||||||
<ingredient id="91039" count="800" /> <!-- Water Attribute Fragment -->
|
<ingredient id="91039" count="800" /> <!-- Water Attribute Fragment -->
|
||||||
<ingredient id="57" count="300000" /> <!-- Adena -->
|
<ingredient id="57" count="300000" /> <!-- Adena -->
|
||||||
<production id="91045" count="1" chance="15" /> <!-- Nebula 3 list -->
|
<production id="91045" count="1" chance="15" /> <!-- Nebula 3 list -->
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<production id="91044" count="1" chance="75" /> <!-- Nebula 2 standar -->
|
<production id="91044" count="1" chance="75" /> <!-- Nebula 2 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91045" count="1" /> <!-- Nebula 3 -->
|
<ingredient id="91045" count="1" /> <!-- Nebula 3 -->
|
||||||
<ingredient id="91039" count="900" /> <!-- Water Attribute Fragment -->
|
<ingredient id="91039" count="900" /> <!-- Water Attribute Fragment -->
|
||||||
<ingredient id="57" count="400000" /> <!-- Adena -->
|
<ingredient id="57" count="400000" /> <!-- Adena -->
|
||||||
<production id="91116" count="1" chance="10" /> <!-- Nebula 4 list -->
|
<production id="91116" count="1" chance="10" /> <!-- Nebula 4 list -->
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<production id="91045" count="1" chance="85" /> <!-- Nebula 3 standar -->
|
<production id="91045" count="1" chance="85" /> <!-- Nebula 3 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91116" count="1" /> <!-- Nebula 4 -->
|
<ingredient id="91116" count="1" /> <!-- Nebula 4 -->
|
||||||
<ingredient id="91039" count="1200" /> <!-- Water Attribute Fragment -->
|
<ingredient id="91039" count="1200" /> <!-- Water Attribute Fragment -->
|
||||||
<ingredient id="57" count="500000" /> <!-- Adena -->
|
<ingredient id="57" count="500000" /> <!-- Adena -->
|
||||||
<production id="91117" count="1" chance="2" /> <!-- Nebula 5 list -->
|
<production id="91117" count="1" chance="2" /> <!-- Nebula 5 list -->
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
<production id="91046" count="1" chance="35" /> <!-- Ignis 1 High -->
|
<production id="91046" count="1" chance="35" /> <!-- Ignis 1 High -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91046" count="1" /> <!-- Ignis 1 -->
|
<ingredient id="91046" count="1" /> <!-- Ignis 1 -->
|
||||||
<ingredient id="91040" count="600" /> <!-- Fire Attribute Fragment -->
|
<ingredient id="91040" count="600" /> <!-- Fire Attribute Fragment -->
|
||||||
<ingredient id="57" count="200000" /> <!-- Adena -->
|
<ingredient id="57" count="200000" /> <!-- Adena -->
|
||||||
<production id="91047" count="1" chance="20" /> <!-- Ignis 2 list -->
|
<production id="91047" count="1" chance="20" /> <!-- Ignis 2 list -->
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
<production id="91046" count="1" chance="65" /> <!-- Ignis 1 standar -->
|
<production id="91046" count="1" chance="65" /> <!-- Ignis 1 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91047" count="1" /> <!-- Ignis 2 -->
|
<ingredient id="91047" count="1" /> <!-- Ignis 2 -->
|
||||||
<ingredient id="91040" count="800" /> <!-- Fire Attribute Fragment -->
|
<ingredient id="91040" count="800" /> <!-- Fire Attribute Fragment -->
|
||||||
<ingredient id="57" count="300000" /> <!-- Adena -->
|
<ingredient id="57" count="300000" /> <!-- Adena -->
|
||||||
<production id="91048" count="1" chance="15" /> <!-- Ignis 3 list -->
|
<production id="91048" count="1" chance="15" /> <!-- Ignis 3 list -->
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<production id="91047" count="1" chance="75" /> <!-- Ignis 2 standar -->
|
<production id="91047" count="1" chance="75" /> <!-- Ignis 2 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91048" count="1" /> <!-- Ignis 3 -->
|
<ingredient id="91048" count="1" /> <!-- Ignis 3 -->
|
||||||
<ingredient id="91040" count="900" /> <!-- Fire Attribute Fragment -->
|
<ingredient id="91040" count="900" /> <!-- Fire Attribute Fragment -->
|
||||||
<ingredient id="57" count="400000" /> <!-- Adena -->
|
<ingredient id="57" count="400000" /> <!-- Adena -->
|
||||||
<production id="91118" count="1" chance="10" /> <!-- Ignis 4 list -->
|
<production id="91118" count="1" chance="10" /> <!-- Ignis 4 list -->
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
<production id="91048" count="1" chance="85" /> <!-- Ignis 3 standar -->
|
<production id="91048" count="1" chance="85" /> <!-- Ignis 3 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91118" count="1" /> <!-- Ignis 4 -->
|
<ingredient id="91118" count="1" /> <!-- Ignis 4 -->
|
||||||
<ingredient id="91040" count="1200" /> <!-- Fire Attribute Fragment -->
|
<ingredient id="91040" count="1200" /> <!-- Fire Attribute Fragment -->
|
||||||
<ingredient id="57" count="500000" /> <!-- Adena -->
|
<ingredient id="57" count="500000" /> <!-- Adena -->
|
||||||
<production id="91119" count="1" chance="2" /> <!-- Ignis 5 list -->
|
<production id="91119" count="1" chance="2" /> <!-- Ignis 5 list -->
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
<production id="91049" count="1" chance="35" /> <!-- Procella 1 High -->
|
<production id="91049" count="1" chance="35" /> <!-- Procella 1 High -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91049" count="1" /> <!-- Procella 1 -->
|
<ingredient id="91049" count="1" /> <!-- Procella 1 -->
|
||||||
<ingredient id="91041" count="600" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91041" count="600" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="200000" /> <!-- Adena -->
|
<ingredient id="57" count="200000" /> <!-- Adena -->
|
||||||
<production id="91050" count="1" chance="20" /> <!-- Procella 2 list -->
|
<production id="91050" count="1" chance="20" /> <!-- Procella 2 list -->
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<production id="91049" count="1" chance="65" /> <!-- Procella 1 standar -->
|
<production id="91049" count="1" chance="65" /> <!-- Procella 1 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91050" count="1" /> <!-- Procella 2 -->
|
<ingredient id="91050" count="1" /> <!-- Procella 2 -->
|
||||||
<ingredient id="91041" count="800" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91041" count="800" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="300000" /> <!-- Adena -->
|
<ingredient id="57" count="300000" /> <!-- Adena -->
|
||||||
<production id="91051" count="1" chance="15" /> <!-- Procella 3 list -->
|
<production id="91051" count="1" chance="15" /> <!-- Procella 3 list -->
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
<production id="91050" count="1" chance="75" /> <!-- Procella 2 standar -->
|
<production id="91050" count="1" chance="75" /> <!-- Procella 2 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91051" count="1" /> <!-- Procella 3 -->
|
<ingredient id="91051" count="1" /> <!-- Procella 3 -->
|
||||||
<ingredient id="91041" count="900" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91041" count="900" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="400000" /> <!-- Adena -->
|
<ingredient id="57" count="400000" /> <!-- Adena -->
|
||||||
<production id="91120" count="1" chance="10" /> <!-- Procella 4 list -->
|
<production id="91120" count="1" chance="10" /> <!-- Procella 4 list -->
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
<production id="91051" count="1" chance="85" /> <!-- Procella 3 standar -->
|
<production id="91051" count="1" chance="85" /> <!-- Procella 3 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91120" count="1" /> <!-- Procella 4 -->
|
<ingredient id="91120" count="1" /> <!-- Procella 4 -->
|
||||||
<ingredient id="91041" count="1200" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91041" count="1200" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="500000" /> <!-- Adena -->
|
<ingredient id="57" count="500000" /> <!-- Adena -->
|
||||||
<production id="91121" count="1" chance="2" /> <!-- Procella 5 list -->
|
<production id="91121" count="1" chance="2" /> <!-- Procella 5 list -->
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<production id="91052" count="1" chance="35" /> <!-- Petram 1 High -->
|
<production id="91052" count="1" chance="35" /> <!-- Petram 1 High -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91052" count="1" /> <!-- Petram 1 -->
|
<ingredient id="91052" count="1" /> <!-- Petram 1 -->
|
||||||
<ingredient id="91042" count="600" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91042" count="600" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="200000" /> <!-- Adena -->
|
<ingredient id="57" count="200000" /> <!-- Adena -->
|
||||||
<production id="91053" count="1" chance="20" /> <!-- Petram 2 list -->
|
<production id="91053" count="1" chance="20" /> <!-- Petram 2 list -->
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<production id="91052" count="1" chance="65" /> <!-- Petram 1 standar -->
|
<production id="91052" count="1" chance="65" /> <!-- Petram 1 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91053" count="1" /> <!-- Petram 2 -->
|
<ingredient id="91053" count="1" /> <!-- Petram 2 -->
|
||||||
<ingredient id="91042" count="800" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91042" count="800" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="300000" /> <!-- Adena -->
|
<ingredient id="57" count="300000" /> <!-- Adena -->
|
||||||
<production id="91054" count="1" chance="15" /> <!-- Petram 3 list -->
|
<production id="91054" count="1" chance="15" /> <!-- Petram 3 list -->
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<production id="91053" count="1" chance="75" /> <!-- Petram 2 standar -->
|
<production id="91053" count="1" chance="75" /> <!-- Petram 2 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91054" count="1" /> <!-- Petram 3 -->
|
<ingredient id="91054" count="1" /> <!-- Petram 3 -->
|
||||||
<ingredient id="91042" count="900" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91042" count="900" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="400000" /> <!-- Adena -->
|
<ingredient id="57" count="400000" /> <!-- Adena -->
|
||||||
<production id="91122" count="1" chance="10" /> <!-- Petram 4 list -->
|
<production id="91122" count="1" chance="10" /> <!-- Petram 4 list -->
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
<production id="91054" count="1" chance="85" /> <!-- Petram 3 standar -->
|
<production id="91054" count="1" chance="85" /> <!-- Petram 3 standar -->
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<ingredient id="91122" count="1" /> <!-- Petram 4 -->
|
<ingredient id="91122" count="1" /> <!-- Petram 4 -->
|
||||||
<ingredient id="91042" count="1200" /> <!-- Wind Attribute Fragment -->
|
<ingredient id="91042" count="1200" /> <!-- Wind Attribute Fragment -->
|
||||||
<ingredient id="57" count="500000" /> <!-- Adena -->
|
<ingredient id="57" count="500000" /> <!-- Adena -->
|
||||||
<production id="91123" count="1" chance="2" /> <!-- Petram 5 list -->
|
<production id="91123" count="1" chance="2" /> <!-- Petram 5 list -->
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ public class Arushinai extends AbstractNpcAI
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY_AND_CAN_T_SEND_MESSAGES_TO_THE_PARTY_CHAT);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ public final class LimitBarrier extends AbstractNpcAI
|
|||||||
npc.abortAttack();
|
npc.abortAttack();
|
||||||
npc.abortCast();
|
npc.abortCast();
|
||||||
npc.doCast(LIMIT_BARRIER.getSkill());
|
npc.doCast(LIMIT_BARRIER.getSkill());
|
||||||
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SEC, 2, 5000, true));
|
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
|
||||||
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -210,7 +210,7 @@ public final class LimitBarrier extends AbstractNpcAI
|
|||||||
npc.abortAttack();
|
npc.abortAttack();
|
||||||
npc.abortCast();
|
npc.abortCast();
|
||||||
npc.doCast(LIMIT_BARRIER.getSkill());
|
npc.doCast(LIMIT_BARRIER.getSkill());
|
||||||
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SEC, 2, 5000, true));
|
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
|
||||||
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,7 +222,7 @@ public final class LimitBarrier extends AbstractNpcAI
|
|||||||
npc.abortAttack();
|
npc.abortAttack();
|
||||||
npc.abortCast();
|
npc.abortCast();
|
||||||
npc.doCast(LIMIT_BARRIER.getSkill());
|
npc.doCast(LIMIT_BARRIER.getSkill());
|
||||||
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SEC, 2, 5000, true));
|
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_NFOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
|
||||||
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1229,7 +1229,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (manor.isManorApproved())
|
if (manor.isManorApproved())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_4_30_AM_AND_8_PM);
|
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_6_00_AM_AND_8_00_PM);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.sendPacket(new ExShowSeedSetting(castleId));
|
player.sendPacket(new ExShowSeedSetting(castleId));
|
||||||
@@ -1239,7 +1239,7 @@ public class CastleChamberlain extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (manor.isManorApproved())
|
if (manor.isManorApproved())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_4_30_AM_AND_8_PM);
|
player.sendPacket(SystemMessageId.A_MANOR_CANNOT_BE_SET_UP_BETWEEN_6_00_AM_AND_8_00_PM);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.sendPacket(new ExShowCropSetting(castleId));
|
player.sendPacket(new ExShowCropSetting(castleId));
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ public class ClanHallAuctioneer extends AbstractNpcAI
|
|||||||
final ClanHall playerClanHall = ClanHallData.getInstance().getClanHallByClan(clan);
|
final ClanHall playerClanHall = ClanHallData.getInstance().getClanHallByClan(clan);
|
||||||
if (playerClanHall != null)
|
if (playerClanHall != null)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.EMPTY_462);
|
player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIREMENTS_TO_PARTICIPATE_IN_AN_AUCTION);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ public class ClanHallManager extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
final int funcVal = (int) oldFunc.getTemplate().getValue();
|
final int funcVal = (int) oldFunc.getTemplate().getValue();
|
||||||
htmltext = getHtm(player, "ClanHallManager-manageFuncAlreadySet.html");
|
htmltext = getHtm(player, "ClanHallManager-manageFuncAlreadySet.html");
|
||||||
htmltext = htmltext.replace("%funcEffect%", "<fstring p1=\"" + (funcVal > 0 ? funcVal : oldFunc.getLevel()) + "\">" + (funcVal > 0 ? NpcStringId.S1.getId() : NpcStringId.STAGE_S1.getId()) + "</fstring>");
|
htmltext = htmltext.replace("%funcEffect%", "<fstring p1=\"" + (funcVal > 0 ? funcVal : oldFunc.getLevel()) + "\">" + (funcVal > 0 ? NpcStringId.S1.getId() : NpcStringId.LV_S1.getId()) + "</fstring>");
|
||||||
}
|
}
|
||||||
else if ((funcId >= 1) && (funcId <= 8))
|
else if ((funcId >= 1) && (funcId <= 8))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
|
|||||||
{
|
{
|
||||||
if (!Olympiad.getInstance().inCompPeriod())
|
if (!Olympiad.getInstance().inCompPeriod())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THE_OLYMPIAD_GAMES_ARE_NOT_CURRENTLY_IN_PROGRESS);
|
player.sendPacket(SystemMessageId.THE_OLYMPIAD_IS_NOT_HELD_RIGHT_NOW);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
|
|||||||
}
|
}
|
||||||
else if (!Olympiad.getInstance().inCompPeriod())
|
else if (!Olympiad.getInstance().inCompPeriod())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THE_OLYMPIAD_GAMES_ARE_NOT_CURRENTLY_IN_PROGRESS);
|
player.sendPacket(SystemMessageId.THE_OLYMPIAD_IS_NOT_HELD_RIGHT_NOW);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (player.isOnEvent())
|
else if (player.isOnEvent())
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
|||||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExRequestClassChangeUi;
|
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExClassChangeSetAlarm;
|
||||||
|
|
||||||
import ai.AbstractNpcAI;
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ public class SecondClassChange extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
|
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
|
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
|
||||||
@@ -81,7 +81,7 @@ public class SecondClassChange extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
|
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args)
|
public static void main(String[] args)
|
||||||
|
|||||||
48
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/ai/others/TrainingDummy.java
vendored
Normal file
48
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/ai/others/TrainingDummy.java
vendored
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* 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 ai.others;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
|
||||||
|
import ai.AbstractNpcAI;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class TrainingDummy extends AbstractNpcAI
|
||||||
|
{
|
||||||
|
// NPC
|
||||||
|
private static final int TRAINING_DUMMY = 22183;
|
||||||
|
|
||||||
|
private TrainingDummy()
|
||||||
|
{
|
||||||
|
addSpawnId(TRAINING_DUMMY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onSpawn(Npc npc)
|
||||||
|
{
|
||||||
|
npc.disableCoreAI(true);
|
||||||
|
npc.setImmobilized(true);
|
||||||
|
return super.onSpawn(npc);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
new TrainingDummy();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<html><body>Event Manager Augustina:<br>
|
||||||
|
Hello! My name is Augustina. I came here to celebrate the Blossom festival. But I've been awfully busy lately, and I've been late getting ready, so it's only now that I realize some of the items are missing. I can't have a celebration without them.<br>
|
||||||
|
You look like a brave warrior. Therefore, I ask for your help in returning the missing item! Of course, not for nothing. I have special gifts for my assistants.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlossomFestival reward">Get Augustina's Daily Gift Box</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3416301">Exchange Augustina's Seeds for useful items</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlossomFestival 34163-02.html">Ask about preparations to the Blosson festival</Button>
|
||||||
|
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest BlossomFestival 34163-03.html">Event duration and item deletion</Button> -->
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<html><body>Event Manager Augustina:<br>
|
||||||
|
This year is really stressing for everybody, and I would really like to lighten up the mood somehow.<br>
|
||||||
|
That is why I've decided to plant beautiful flowers, but unfortunately all my seeds have been lost. Then I've heard about people finding boxes with seeds all over the world! I think those are mine! But how am I going to collect them?<br>
|
||||||
|
If you find Augustina's Chests while traveling, could you please get the seeds out of them and bring them back to me?<br>
|
||||||
|
I'll exchange them for useful items, so come back any time.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<html><body>Event will last from <font color="LEVEL">August 19 to September 16</font>.<br>
|
||||||
|
<font color="LEVEL">On Septeber 16</font> the main items will be deleted:<br1>
|
||||||
|
-Augustina's Coupon<br1>
|
||||||
|
-Augustina's Seeds<br1>
|
||||||
|
-Shiny Jewelry Box - Event<br1>
|
||||||
|
-Augustina's Essence - Event<br1>
|
||||||
|
-HP Recovery Potion - Event<br1>
|
||||||
|
-My teleport Scroll (obtained during the event)<br1>
|
||||||
|
-Augustina's Daily Gift Box<br1>
|
||||||
|
-Augustina's Support Box Lv. 1 (all levels)<br1>
|
||||||
|
-Augustina's Support Box Lv. 2 (all levels)<br1>
|
||||||
|
-Talisman Fortune Box<br1>
|
||||||
|
-Agathion Pack<br>
|
||||||
|
<font color="LEVEL">On September 30</font> the additional items will be deleted:<br1>
|
||||||
|
-Sayha's Cookie - Event<br1>
|
||||||
|
-Scroll: Enchant Attack - Event<br1>
|
||||||
|
-scroll: Enchant Protection - Event<br>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Event Manager Augustina:<br>
|
||||||
|
Augustina's Daily Gift Box can be obtained only by characters of Lv. 60+.<br>
|
||||||
|
Come back when you get stronger!<br>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Event Manager Augustina:<br>
|
||||||
|
It is no time yet to receive your gift.<br1>
|
||||||
|
Try again later.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* 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 events.BlossomFestival;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.LongTimeEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class BlossomFestival extends LongTimeEvent
|
||||||
|
{
|
||||||
|
// NPC
|
||||||
|
private static final int AUGUSTINA = 34163;
|
||||||
|
// Item
|
||||||
|
private static final int REWARD = 94448;
|
||||||
|
// Misc
|
||||||
|
private static final String REWARD_VAR = "AUGUSTINA_REWARD_VAR";
|
||||||
|
private static final Object REWARD_LOCK = new Object();
|
||||||
|
|
||||||
|
private BlossomFestival()
|
||||||
|
{
|
||||||
|
addFirstTalkId(AUGUSTINA);
|
||||||
|
addTalkId(AUGUSTINA);
|
||||||
|
addSpawnId(AUGUSTINA);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
switch (event)
|
||||||
|
{
|
||||||
|
case "34163-02.html":
|
||||||
|
case "34163-03.html":
|
||||||
|
{
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
case "reward":
|
||||||
|
{
|
||||||
|
if (player.getLevel() < 60)
|
||||||
|
{
|
||||||
|
return "34163-04.html";
|
||||||
|
}
|
||||||
|
|
||||||
|
synchronized (REWARD_LOCK)
|
||||||
|
{
|
||||||
|
final long currentTime = System.currentTimeMillis();
|
||||||
|
if (player.getVariables().getLong(REWARD_VAR, 0) < currentTime)
|
||||||
|
{
|
||||||
|
player.getVariables().set(REWARD_VAR, currentTime + 86400000); // 24 hours
|
||||||
|
giveItems(player, REWARD, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "34163-05.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
return "34163-01.html";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
new BlossomFestival();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<event name="Blossom Festival" active="19 08 2020-16 10 2029" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
|
||||||
|
<droplist>
|
||||||
|
<add item="94446" min="1" max="1" chance="1%" minLevel="40" /> <!-- Augustina's Seed -->
|
||||||
|
</droplist>
|
||||||
|
<spawnlist>
|
||||||
|
<add npc="34163" x="83332" y="149161" z="-3384" heading="49151" /> <!-- Augustina -->
|
||||||
|
</spawnlist>
|
||||||
|
</event>
|
||||||
@@ -225,6 +225,7 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("MaxHp", MaxHp::new);
|
EffectHandler.getInstance().registerHandler("MaxHp", MaxHp::new);
|
||||||
EffectHandler.getInstance().registerHandler("MaxMagicCriticalRate", MaxMagicCriticalRate::new);
|
EffectHandler.getInstance().registerHandler("MaxMagicCriticalRate", MaxMagicCriticalRate::new);
|
||||||
EffectHandler.getInstance().registerHandler("MaxMp", MaxMp::new);
|
EffectHandler.getInstance().registerHandler("MaxMp", MaxMp::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("ModifyDeathPoints", ModifyDeathPoints::new);
|
||||||
EffectHandler.getInstance().registerHandler("ModifyVital", ModifyVital::new);
|
EffectHandler.getInstance().registerHandler("ModifyVital", ModifyVital::new);
|
||||||
EffectHandler.getInstance().registerHandler("Mp", Mp::new);
|
EffectHandler.getInstance().registerHandler("Mp", Mp::new);
|
||||||
EffectHandler.getInstance().registerHandler("MpConsumePerLevel", MpConsumePerLevel::new);
|
EffectHandler.getInstance().registerHandler("MpConsumePerLevel", MpConsumePerLevel::new);
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public class SkillConditionMasterHandler
|
|||||||
SkillConditionHandler.getInstance().registerHandler("CheckLevel", CheckLevelSkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("CheckLevel", CheckLevelSkillCondition::new);
|
||||||
SkillConditionHandler.getInstance().registerHandler("CheckSex", CheckSexSkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("CheckSex", CheckSexSkillCondition::new);
|
||||||
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("ConsumeBody", ConsumeBodySkillCondition::new);
|
||||||
|
SkillConditionHandler.getInstance().registerHandler("DeathPoints", DeathPointsSkillCondition::new);
|
||||||
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("EnergySaved", EnergySavedSkillCondition::new);
|
||||||
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("EquipArmor", EquipArmorSkillCondition::new);
|
||||||
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
|
SkillConditionHandler.getInstance().registerHandler("EquipShield", EquipShieldSkillCondition::new);
|
||||||
|
|||||||
@@ -348,6 +348,10 @@ public class AdminCreateItem implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
id = 13067;
|
id = 13067;
|
||||||
}
|
}
|
||||||
|
else if (name.equalsIgnoreCase("lcoin"))
|
||||||
|
{
|
||||||
|
id = 91663;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
id = 0;
|
id = 0;
|
||||||
|
|||||||
@@ -411,6 +411,11 @@ public class AdminEditChar implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
player.getAppearance().setFemale();
|
player.getAppearance().setFemale();
|
||||||
}
|
}
|
||||||
|
// Death Knight checks.
|
||||||
|
if ((classidval > 195) && (classidval < 208))
|
||||||
|
{
|
||||||
|
player.getAppearance().setMale();
|
||||||
|
}
|
||||||
|
|
||||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||||
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
// if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class AdminLevel implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
if ((targetChar != null) && targetChar.isPlayable())
|
if ((targetChar != null) && targetChar.isPlayable())
|
||||||
{
|
{
|
||||||
((Playable) targetChar).getStat().addLevel(Byte.parseByte(val));
|
((Playable) targetChar).getStat().addLevel(Integer.parseInt(val));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (NumberFormatException e)
|
catch (NumberFormatException e)
|
||||||
@@ -78,7 +78,7 @@ public class AdminLevel implements IAdminCommandHandler
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final byte level = Byte.parseByte(val);
|
final int level = Integer.parseInt(val);
|
||||||
if ((level >= 1) && (level <= maxLevel))
|
if ((level >= 1) && (level <= maxLevel))
|
||||||
{
|
{
|
||||||
final long pXp = targetPlayer.getExp();
|
final long pXp = targetPlayer.getExp();
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.l2jmobius.gameserver.data.xml.impl.EquipmentUpgradeData;
|
|||||||
import org.l2jmobius.gameserver.data.xml.impl.FakePlayerData;
|
import org.l2jmobius.gameserver.data.xml.impl.FakePlayerData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.FishingData;
|
import org.l2jmobius.gameserver.data.xml.impl.FishingData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.ItemCrystallizationData;
|
import org.l2jmobius.gameserver.data.xml.impl.ItemCrystallizationData;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.impl.LCoinShopData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
import org.l2jmobius.gameserver.data.xml.impl.MultisellData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.NpcData;
|
import org.l2jmobius.gameserver.data.xml.impl.NpcData;
|
||||||
import org.l2jmobius.gameserver.data.xml.impl.NpcNameLocalisationData;
|
import org.l2jmobius.gameserver.data.xml.impl.NpcNameLocalisationData;
|
||||||
@@ -280,6 +281,12 @@ public class AdminReload implements IAdminCommandHandler
|
|||||||
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Prime Shop data.");
|
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Prime Shop data.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "limitshop":
|
||||||
|
{
|
||||||
|
LCoinShopData.getInstance().load();
|
||||||
|
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Limit Shop data.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "appearance":
|
case "appearance":
|
||||||
{
|
{
|
||||||
AppearanceItemData.getInstance().load();
|
AppearanceItemData.getInstance().load();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class ChatParty implements IChatHandler
|
|||||||
{
|
{
|
||||||
if (!activeChar.isInParty())
|
if (!activeChar.isInParty())
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY);
|
activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY_AND_CAN_T_SEND_MESSAGES_TO_THE_PARTY_CHAT);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public class ChatWorld implements IChatHandler
|
|||||||
}
|
}
|
||||||
else if (activeChar.getWorldChatUsed() >= activeChar.getWorldChatPoints())
|
else if (activeChar.getWorldChatUsed() >= activeChar.getWorldChatPoints())
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(SystemMessageId.YOU_HAVE_SPENT_YOUR_WORLD_CHAT_QUOTA_FOR_THE_DAY_A_NEW_DAY_STARTS_EVERY_DAY_AT_18_30);
|
activeChar.sendPacket(SystemMessageId.YOU_HAVE_SPENT_YOUR_WORLD_CHAT_QUOTA_FOR_THE_DAY_IT_IS_RESET_DAILY_AT_7_A_M);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
{
|
{
|
||||||
final int itemId;
|
final int itemId;
|
||||||
final int npcId;
|
final int npcId;
|
||||||
final byte npcLevel;
|
final int npcLevel;
|
||||||
final long min;
|
final long min;
|
||||||
final long max;
|
final long max;
|
||||||
final double chance;
|
final double chance;
|
||||||
@@ -119,7 +119,7 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
DROP_INDEX_CACHE.values().stream().forEach(l -> l.sort((d1, d2) -> Byte.valueOf(d1.npcLevel).compareTo(Byte.valueOf(d2.npcLevel))));
|
DROP_INDEX_CACHE.values().stream().forEach(l -> l.sort((d1, d2) -> Integer.valueOf(d1.npcLevel).compareTo(Integer.valueOf(d2.npcLevel))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addToDropList(NpcTemplate npcTemplate, DropHolder dropHolder)
|
private void addToDropList(NpcTemplate npcTemplate, DropHolder dropHolder)
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public class ConvertItem extends AbstractEffect
|
|||||||
final SystemMessage sm;
|
final SystemMessage sm;
|
||||||
if (unequippedItem.getEnchantLevel() > 0)
|
if (unequippedItem.getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.S1_S2_HAS_BEEN_UNEQUIPPED);
|
sm = new SystemMessage(SystemMessageId.S1_S2_UNEQUIPPED);
|
||||||
sm.addInt(unequippedItem.getEnchantLevel());
|
sm.addInt(unequippedItem.getEnchantLevel());
|
||||||
sm.addItemName(unequippedItem);
|
sm.addItemName(unequippedItem);
|
||||||
}
|
}
|
||||||
@@ -147,7 +147,7 @@ public class ConvertItem extends AbstractEffect
|
|||||||
final SystemMessage msg;
|
final SystemMessage msg;
|
||||||
if (newItem.getEnchantLevel() > 0)
|
if (newItem.getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
msg = new SystemMessage(SystemMessageId.EQUIPPED_S1_S2);
|
msg = new SystemMessage(SystemMessageId.S1_S2_EQUIPPED);
|
||||||
msg.addInt(newItem.getEnchantLevel());
|
msg.addInt(newItem.getEnchantLevel());
|
||||||
msg.addItemName(newItem);
|
msg.addItemName(newItem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class Disarmor extends AbstractEffect
|
|||||||
SystemMessage sm = null;
|
SystemMessage sm = null;
|
||||||
if (unequiped[0].getEnchantLevel() > 0)
|
if (unequiped[0].getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.S1_S2_HAS_BEEN_UNEQUIPPED);
|
sm = new SystemMessage(SystemMessageId.S1_S2_UNEQUIPPED);
|
||||||
sm.addInt(unequiped[0].getEnchantLevel());
|
sm.addInt(unequiped[0].getEnchantLevel());
|
||||||
sm.addItemName(unequiped[0]);
|
sm.addItemName(unequiped[0]);
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ public class Disarmor extends AbstractEffect
|
|||||||
{
|
{
|
||||||
if (item.getEnchantLevel() > 0)
|
if (item.getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.EQUIPPED_S1_S2);
|
sm = new SystemMessage(SystemMessageId.S1_S2_EQUIPPED);
|
||||||
sm.addInt(item.getEnchantLevel());
|
sm.addInt(item.getEnchantLevel());
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,10 +17,14 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.ExUserBoostStat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class ExpModify extends AbstractStatAddEffect
|
public class ExpModify extends AbstractStatAddEffect
|
||||||
{
|
{
|
||||||
@@ -28,4 +32,17 @@ public class ExpModify extends AbstractStatAddEffect
|
|||||||
{
|
{
|
||||||
super(params, Stat.BONUS_EXP);
|
super(params, Stat.BONUS_EXP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pump(Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
effected.getStat().mergeAdd(Stat.BONUS_EXP, _amount);
|
||||||
|
|
||||||
|
// Send exp bonus to player.
|
||||||
|
final PlayerInstance player = effected.getActingPlayer();
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
player.sendPacket(new ExUserBoostStat(player));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* 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 handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class ModifyDeathPoints extends AbstractEffect
|
||||||
|
{
|
||||||
|
private final int _amount;
|
||||||
|
|
||||||
|
public ModifyDeathPoints(StatSet params)
|
||||||
|
{
|
||||||
|
_amount = params.getInt("amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInstant()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||||
|
{
|
||||||
|
if (effected == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final PlayerInstance player = effected.getActingPlayer();
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setDeathPoints(player.getDeathPoints() + _amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -70,7 +70,7 @@ public class Plunder extends AbstractEffect
|
|||||||
|
|
||||||
if (monster.isSpoiled())
|
if (monster.isSpoiled())
|
||||||
{
|
{
|
||||||
effector.sendPacket(SystemMessageId.PLUNDER_SKILL_HAS_BEEN_ALREADY_USED_ON_THIS_TARGET);
|
effector.sendPacket(SystemMessageId.THE_TARGET_HAS_BEEN_ALREADY_ROBBED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class Restoration extends AbstractEffect
|
|||||||
|
|
||||||
if ((_itemId <= 0) || (_itemCount <= 0))
|
if ((_itemId <= 0) || (_itemCount <= 0))
|
||||||
{
|
{
|
||||||
effected.sendPacket(SystemMessageId.THERE_WAS_NOTHING_FOUND_INSIDE);
|
effected.sendPacket(SystemMessageId.FAILED_TO_CHANGE_THE_ITEM);
|
||||||
LOGGER.warning(Restoration.class.getSimpleName() + " effect with wrong item Id/count: " + _itemId + "/" + _itemCount + "!");
|
LOGGER.warning(Restoration.class.getSimpleName() + " effect with wrong item Id/count: " + _itemId + "/" + _itemCount + "!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class RestorationRandom extends AbstractEffect
|
|||||||
final PlayerInstance player = effected.getActingPlayer();
|
final PlayerInstance player = effected.getActingPlayer();
|
||||||
if (creationList.isEmpty())
|
if (creationList.isEmpty())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THERE_WAS_NOTHING_FOUND_INSIDE);
|
player.sendPacket(SystemMessageId.FAILED_TO_CHANGE_THE_ITEM);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ public class RestorationRandom extends AbstractEffect
|
|||||||
}
|
}
|
||||||
else if (item.getEnchantLevel() > 0)
|
else if (item.getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_A_S1_S2);
|
sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_S1_S2);
|
||||||
sm.addInt(item.getEnchantLevel());
|
sm.addInt(item.getEnchantLevel());
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class SoulEating extends AbstractEffect
|
|||||||
final int maxSouls = (int) player.getStat().getValue(Stat.MAX_SOULS, 0);
|
final int maxSouls = (int) player.getStat().getValue(Stat.MAX_SOULS, 0);
|
||||||
if (player.getChargedSouls() >= maxSouls)
|
if (player.getChargedSouls() >= maxSouls)
|
||||||
{
|
{
|
||||||
playable.sendPacket(SystemMessageId.SOUL_CANNOT_BE_ABSORBED_ANYMORE);
|
playable.sendPacket(SystemMessageId.YOU_CAN_T_ABSORB_MORE_SOULS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,11 @@
|
|||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Stat;
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.ExUserBoostStat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Mobius
|
* @author Mobius
|
||||||
@@ -28,4 +32,17 @@ public class VitalityExpRate extends AbstractStatPercentEffect
|
|||||||
{
|
{
|
||||||
super(params, Stat.VITALITY_EXP_RATE);
|
super(params, Stat.VITALITY_EXP_RATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pump(Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
effected.getStat().mergeMul(Stat.VITALITY_EXP_RATE, (_amount / 100) + 1);
|
||||||
|
|
||||||
|
// Send exp bonus to player.
|
||||||
|
final PlayerInstance player = effected.getActingPlayer();
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
player.sendPacket(new ExUserBoostStat(player));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ public class BeastSpiritShot implements IItemHandler
|
|||||||
// Not enough SpiritShots to use.
|
// Not enough SpiritShots to use.
|
||||||
if (!activeOwner.disableAutoShot(itemId))
|
if (!activeOwner.disableAutoShot(itemId))
|
||||||
{
|
{
|
||||||
activeOwner.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_SERVITOR);
|
activeOwner.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SPIRITSHOTS_FOR_THE_SERVITOR);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -114,7 +114,7 @@ public class BeastSpiritShot implements IItemHandler
|
|||||||
{
|
{
|
||||||
if (!activeOwner.disableAutoShot(itemId))
|
if (!activeOwner.disableAutoShot(itemId))
|
||||||
{
|
{
|
||||||
activeOwner.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SPIRITSHOTS_NEEDED_FOR_A_SERVITOR);
|
activeOwner.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SPIRITSHOTS_FOR_THE_SERVITOR);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class ExtractableItems implements IItemHandler
|
|||||||
|
|
||||||
if (!player.isInventoryUnder80(false))
|
if (!player.isInventoryUnder80(false))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.EMPTY_463);
|
player.sendPacket(SystemMessageId.NOT_ENOUGH_SPACE_IN_INVENTORY_UNABLE_TO_PROCESS_THIS_REQUEST_UNTIL_YOUR_INVENTORY_S_WEIGHT_IS_LESS_THAN_80_AND_SLOT_COUNT_IS_LESS_THAN_90_OF_CAPACITY);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,6 +71,7 @@ public class ExtractableItems implements IItemHandler
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean primeReward = false;
|
||||||
final Map<ItemInstance, Long> extractedItems = new HashMap<>();
|
final Map<ItemInstance, Long> extractedItems = new HashMap<>();
|
||||||
final List<ItemInstance> enchantedItems = new ArrayList<>();
|
final List<ItemInstance> enchantedItems = new ArrayList<>();
|
||||||
if (etcitem.getExtractableCountMin() > 0)
|
if (etcitem.getExtractableCountMin() > 0)
|
||||||
@@ -109,6 +110,14 @@ public class ExtractableItems implements IItemHandler
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (expi.getId() == -1) // Prime points
|
||||||
|
{
|
||||||
|
player.setPrimePoints(player.getPrimePoints() + createItemAmount);
|
||||||
|
player.sendMessage("You have obtained " + (createItemAmount / 100) + " Euro!");
|
||||||
|
primeReward = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (ItemTable.getInstance().getTemplate(expi.getId()).isStackable() || (createItemAmount == 1))
|
if (ItemTable.getInstance().getTemplate(expi.getId()).isStackable() || (createItemAmount == 1))
|
||||||
{
|
{
|
||||||
final ItemInstance newItem = player.addItem("Extract", expi.getId(), createItemAmount, player, false);
|
final ItemInstance newItem = player.addItem("Extract", expi.getId(), createItemAmount, player, false);
|
||||||
@@ -156,6 +165,14 @@ public class ExtractableItems implements IItemHandler
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (expi.getId() == -1) // Prime points
|
||||||
|
{
|
||||||
|
player.setPrimePoints(player.getPrimePoints() + createItemAmount);
|
||||||
|
player.sendMessage("You have obtained " + (createItemAmount / 100) + " Euro!");
|
||||||
|
primeReward = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (ItemTable.getInstance().getTemplate(expi.getId()).isStackable() || (createItemAmount == 1))
|
if (ItemTable.getInstance().getTemplate(expi.getId()).isStackable() || (createItemAmount == 1))
|
||||||
{
|
{
|
||||||
final ItemInstance newItem = player.addItem("Extract", expi.getId(), createItemAmount, player, false);
|
final ItemInstance newItem = player.addItem("Extract", expi.getId(), createItemAmount, player, false);
|
||||||
@@ -184,9 +201,9 @@ public class ExtractableItems implements IItemHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extractedItems.isEmpty())
|
if (extractedItems.isEmpty() && !primeReward)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THERE_WAS_NOTHING_FOUND_INSIDE);
|
player.sendPacket(SystemMessageId.FAILED_TO_CHANGE_THE_ITEM);
|
||||||
}
|
}
|
||||||
if (!enchantedItems.isEmpty())
|
if (!enchantedItems.isEmpty())
|
||||||
{
|
{
|
||||||
@@ -229,7 +246,7 @@ public class ExtractableItems implements IItemHandler
|
|||||||
}
|
}
|
||||||
else if (item.getEnchantLevel() > 0)
|
else if (item.getEnchantLevel() > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_A_S1_S2);
|
sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_S1_S2);
|
||||||
sm.addInt(item.getEnchantLevel());
|
sm.addInt(item.getEnchantLevel());
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class FatedSupportBox implements IItemHandler
|
|||||||
|
|
||||||
if (!player.isInventoryUnder80(false))
|
if (!player.isInventoryUnder80(false))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.EMPTY_463);
|
player.sendPacket(SystemMessageId.NOT_ENOUGH_SPACE_IN_INVENTORY_UNABLE_TO_PROCESS_THIS_REQUEST_UNTIL_YOUR_INVENTORY_S_WEIGHT_IS_LESS_THAN_80_AND_SLOT_COUNT_IS_LESS_THAN_90_OF_CAPACITY);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class ItemSkills extends ItemSkillsTemplate
|
|||||||
final PlayerInstance player = playable.getActingPlayer();
|
final PlayerInstance player = playable.getActingPlayer();
|
||||||
if ((player != null) && player.isInOlympiadMode())
|
if ((player != null) && player.isInOlympiadMode())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_CANNOT_USE_THAT_ITEM_IN_A_OLYMPIAD_MATCH);
|
player.sendPacket(SystemMessageId.THE_ITEM_CANNOT_BE_USED_IN_THE_OLYMPIAD);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return super.useItem(playable, item, forceUse);
|
return super.useItem(playable, item, forceUse);
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class ItemSkillsTemplate implements IItemHandler
|
|||||||
{
|
{
|
||||||
if (itemSkill.hasEffectType(EffectType.EXTRACT_ITEM) && (playable.getActingPlayer() != null) && !playable.getActingPlayer().isInventoryUnder80(false))
|
if (itemSkill.hasEffectType(EffectType.EXTRACT_ITEM) && (playable.getActingPlayer() != null) && !playable.getActingPlayer().isInventoryUnder80(false))
|
||||||
{
|
{
|
||||||
playable.getActingPlayer().sendPacket(SystemMessageId.EMPTY_463);
|
playable.getActingPlayer().sendPacket(SystemMessageId.NOT_ENOUGH_SPACE_IN_INVENTORY_UNABLE_TO_PROCESS_THIS_REQUEST_UNTIL_YOUR_INVENTORY_S_WEIGHT_IS_LESS_THAN_80_AND_SLOT_COUNT_IS_LESS_THAN_90_OF_CAPACITY);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ public class ItemSkillsTemplate implements IItemHandler
|
|||||||
SystemMessage sm = null;
|
SystemMessage sm = null;
|
||||||
if (hours > 0)
|
if (hours > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_HOUR_S_S3_MINUTE_S_AND_S4_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
|
sm = new SystemMessage(SystemMessageId.S1_WILL_BE_AVAILABLE_AGAIN_IN_S2_H_S3_MIN_S4_SEC);
|
||||||
if ((skill == null) || skill.isStatic())
|
if ((skill == null) || skill.isStatic())
|
||||||
{
|
{
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
@@ -214,7 +214,7 @@ public class ItemSkillsTemplate implements IItemHandler
|
|||||||
}
|
}
|
||||||
else if (minutes > 0)
|
else if (minutes > 0)
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_MINUTE_S_S3_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
|
sm = new SystemMessage(SystemMessageId.S1_WILL_BE_AVAILABLE_AGAIN_IN_S2_MIN_S3_SEC);
|
||||||
if ((skill == null) || skill.isStatic())
|
if ((skill == null) || skill.isStatic())
|
||||||
{
|
{
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
@@ -227,7 +227,7 @@ public class ItemSkillsTemplate implements IItemHandler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
|
sm = new SystemMessage(SystemMessageId.S1_WILL_BE_AVAILABLE_AGAIN_IN_S2_SEC);
|
||||||
if ((skill == null) || skill.isStatic())
|
if ((skill == null) || skill.isStatic())
|
||||||
{
|
{
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class Recipes implements IItemHandler
|
|||||||
|
|
||||||
if (recipeLevel)
|
if (recipeLevel)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOUR_CREATE_ITEM_LEVEL_IS_TOO_LOW_TO_REGISTER_THIS_RECIPE);
|
player.sendPacket(SystemMessageId.THE_LEVEL_OF_CREATE_ITEM_IS_TOO_LOW_FOR_REGISTERING_THE_RECIPE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public class Recipes implements IItemHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.destroyItem("Consume", item.getObjectId(), 1, null, false);
|
player.destroyItem("Consume", item.getObjectId(), 1, null, false);
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_HAS_BEEN_ADDED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_ADDED);
|
||||||
sm.addItemName(item);
|
sm.addItemName(item);
|
||||||
player.sendPacket(sm);
|
player.sendPacket(sm);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class RollingDice implements IItemHandler
|
|||||||
final int itemId = item.getId();
|
final int itemId = item.getId();
|
||||||
if (player.isInOlympiadMode())
|
if (player.isInOlympiadMode())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_CANNOT_USE_THAT_ITEM_IN_A_OLYMPIAD_MATCH);
|
player.sendPacket(SystemMessageId.THE_ITEM_CANNOT_BE_USED_IN_THE_OLYMPIAD);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class PetAttack implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if ((player.getPet() == null) || !player.getPet().isPet())
|
if ((player.getPet() == null) || !player.getPet().isPet())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class PetHold implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if ((player.getPet() == null) || !player.getPet().isPet())
|
if ((player.getPet() == null) || !player.getPet().isPet())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class PetMove implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if ((player.getPet() == null) || !player.getPet().isPet())
|
if ((player.getPet() == null) || !player.getPet().isPet())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class PetSkillUse implements IPlayerActionHandler
|
|||||||
final PetInstance pet = player.getPet();
|
final PetInstance pet = player.getPet();
|
||||||
if (pet == null)
|
if (pet == null)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
}
|
}
|
||||||
else if (pet.isUncontrollable())
|
else if (pet.isUncontrollable())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class PetStop implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if ((player.getPet() == null) || !player.getPet().isPet())
|
if ((player.getPet() == null) || !player.getPet().isPet())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class ServitorAttack implements IPlayerActionHandler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ public class ServitorHold implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if (!player.hasServitors())
|
if (!player.hasServitors())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class ServitorMode implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if (!player.hasServitors())
|
if (!player.hasServitors())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class ServitorMove implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if (!player.hasServitors())
|
if (!player.hasServitors())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class ServitorSkillUse implements IPlayerActionHandler
|
|||||||
final Summon summon = player.getAnyServitor();
|
final Summon summon = player.getAnyServitor();
|
||||||
if ((summon == null) || !summon.isServitor())
|
if ((summon == null) || !summon.isServitor())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class ServitorStop implements IPlayerActionHandler
|
|||||||
{
|
{
|
||||||
if (!player.hasServitors())
|
if (!player.hasServitors())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class UnsummonPet implements IPlayerActionHandler
|
|||||||
final Summon pet = player.getPet();
|
final Summon pet = player.getPet();
|
||||||
if (pet == null)
|
if (pet == null)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_PET);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
|
||||||
}
|
}
|
||||||
else if (((PetInstance) pet).isUncontrollable())
|
else if (((PetInstance) pet).isUncontrollable())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class UnsummonServitor implements IPlayerActionHandler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR);
|
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class CanBookmarkAddSlotSkillCondition implements ISkillCondition
|
|||||||
|
|
||||||
if ((player.getBookMarkSlot() + _teleportBookmarkSlots) > 18)
|
if ((player.getBookMarkSlot() + _teleportBookmarkSlots) > 18)
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOUR_NUMBER_OF_MY_TELEPORTS_SLOTS_HAS_REACHED_ITS_MAXIMUM_LIMIT);
|
player.sendPacket(SystemMessageId.YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_MY_TELEPORT_SLOTS_OR_USE_CONDITIONS_ARE_NOT_OBSERVED);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* 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 handlers.skillconditionhandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.WorldObject;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class DeathPointsSkillCondition implements ISkillCondition
|
||||||
|
{
|
||||||
|
private final int _amount;
|
||||||
|
|
||||||
|
public DeathPointsSkillCondition(StatSet params)
|
||||||
|
{
|
||||||
|
_amount = params.getInt("amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canUse(Creature caster, Skill skill, WorldObject target)
|
||||||
|
{
|
||||||
|
return caster.getActingPlayer().getDeathPoints() >= _amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -44,7 +44,7 @@ public class ChannelDelete implements IUserCommandHandler
|
|||||||
if (player.isInParty() && player.getParty().isLeader(player) && player.getParty().isInCommandChannel() && player.getParty().getCommandChannel().getLeader().equals(player))
|
if (player.isInParty() && player.getParty().isLeader(player) && player.getParty().isInCommandChannel() && player.getParty().getCommandChannel().getLeader().equals(player))
|
||||||
{
|
{
|
||||||
final CommandChannel channel = player.getParty().getCommandChannel();
|
final CommandChannel channel = player.getParty().getCommandChannel();
|
||||||
channel.broadcastPacket(new SystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_HAS_BEEN_DISBANDED));
|
channel.broadcastPacket(new SystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_IS_DISBANDED));
|
||||||
channel.disbandChannel();
|
channel.disbandChannel();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class ChannelLeave implements IUserCommandHandler
|
|||||||
final CommandChannel channel = player.getParty().getCommandChannel();
|
final CommandChannel channel = player.getParty().getCommandChannel();
|
||||||
final Party party = player.getParty();
|
final Party party = player.getParty();
|
||||||
channel.removeParty(party);
|
channel.removeParty(party);
|
||||||
party.getLeader().sendPacket(SystemMessageId.YOU_HAVE_QUIT_THE_COMMAND_CHANNEL);
|
party.getLeader().sendPacket(SystemMessageId.YOU_HAVE_LEFT_THE_COMMAND_CHANNEL);
|
||||||
|
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.C1_S_PARTY_HAS_LEFT_THE_COMMAND_CHANNEL);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.C1_S_PARTY_HAS_LEFT_THE_COMMAND_CHANNEL);
|
||||||
sm.addPcName(party.getLeader());
|
sm.addPcName(party.getLeader());
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public class ClanWarsList implements IUserCommandHandler
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Target Without Ally
|
// Target Without Ally
|
||||||
sm = new SystemMessage(SystemMessageId.S1_NO_ALLIANCE_EXISTS);
|
sm = new SystemMessage(SystemMessageId.S1_S2_ALLIANCE_2);
|
||||||
sm.addString(clanName);
|
sm.addString(clanName);
|
||||||
}
|
}
|
||||||
player.sendPacket(sm);
|
player.sendPacket(sm);
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class OlympiadStat implements IUserCommandHandler
|
|||||||
sm.addInt(Olympiad.getInstance().getNoblePoints((PlayerInstance) target));
|
sm.addInt(Olympiad.getInstance().getNoblePoints((PlayerInstance) target));
|
||||||
player.sendPacket(sm);
|
player.sendPacket(sm);
|
||||||
|
|
||||||
final SystemMessage sm2 = new SystemMessage(SystemMessageId.THE_MATCHES_THIS_WEEK_ARE_ALL_CLASS_BATTLES_THE_NUMBER_OF_MATCHES_THAT_ARE_ALLOWED_TO_PARTICIPATE_IS_S1);
|
final SystemMessage sm2 = new SystemMessage(SystemMessageId.THIS_WEEK_YOU_CAN_PARTICIPATE_IN_A_TOTAL_OF_S1_MATCHES);
|
||||||
sm2.addInt(Olympiad.getInstance().getRemainingWeeklyMatches(nobleObjId));
|
sm2.addInt(Olympiad.getInstance().getRemainingWeeklyMatches(nobleObjId));
|
||||||
player.sendPacket(sm2);
|
player.sendPacket(sm2);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class Unstuck implements IUserCommandHandler
|
|||||||
|
|
||||||
if (player.isInOlympiadMode())
|
if (player.isInOlympiadMode())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_CANNOT_USE_THAT_SKILL_IN_A_OLYMPIAD_MATCH);
|
player.sendPacket(SystemMessageId.THE_SKILL_CANNOT_BE_USED_IN_THE_OLYMPIAD);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class LastImperialTomb extends AbstractInstance
|
|||||||
{
|
{
|
||||||
// NPCs
|
// NPCs
|
||||||
private static final int GUIDE = 32011;
|
private static final int GUIDE = 32011;
|
||||||
private static final int CUBE = 29061;
|
private static final int CUBE = 31843; // 29061
|
||||||
private static final int HALL_ALARM = 18328;
|
private static final int HALL_ALARM = 18328;
|
||||||
private static final int HALL_KEEPER_SUICIDAL_SOLDIER = 18333;
|
private static final int HALL_KEEPER_SUICIDAL_SOLDIER = 18333;
|
||||||
private static final int DUMMY = 29052;
|
private static final int DUMMY = 29052;
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class MonsterArena extends AbstractInstance
|
|||||||
player.teleToLocation(world.getNpc(MACHINE), true, world);
|
player.teleToLocation(world.getNpc(MACHINE), true, world);
|
||||||
if ((world.getStatus() > 0) && (world.getStatus() < 5)) // Show remaining countdown.
|
if ((world.getStatus() > 0) && (world.getStatus() < 5)) // Show remaining countdown.
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExSendUIEvent(player, false, false, (int) (world.getRemainingTime() / 1000), 0, NpcStringId.REMAINING_TIME));
|
player.sendPacket(new ExSendUIEvent(player, false, false, (int) (world.getRemainingTime() / 1000), 0, NpcStringId.TIME_LEFT));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ public class MonsterArena extends AbstractInstance
|
|||||||
world.setStatus(1);
|
world.setStatus(1);
|
||||||
for (PlayerInstance plr : world.getPlayers())
|
for (PlayerInstance plr : world.getPlayers())
|
||||||
{
|
{
|
||||||
plr.sendPacket(new ExSendUIEvent(plr, false, false, 1200, 0, NpcStringId.REMAINING_TIME));
|
plr.sendPacket(new ExSendUIEvent(plr, false, false, 1200, 0, NpcStringId.TIME_LEFT));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -266,7 +266,7 @@ public class MonsterArena extends AbstractInstance
|
|||||||
@Override
|
@Override
|
||||||
public void onInstanceLeave(PlayerInstance player, Instance instance)
|
public void onInstanceLeave(PlayerInstance player, Instance instance)
|
||||||
{
|
{
|
||||||
player.sendPacket(new ExSendUIEvent(player, false, false, 0, 0, NpcStringId.REMAINING_TIME));
|
player.sendPacket(new ExSendUIEvent(player, false, false, 0, 0, NpcStringId.TIME_LEFT));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -298,7 +298,7 @@ public class MonsterArena extends AbstractInstance
|
|||||||
{
|
{
|
||||||
for (PlayerInstance plr : world.getPlayers())
|
for (PlayerInstance plr : world.getPlayers())
|
||||||
{
|
{
|
||||||
plr.sendPacket(new ExSendUIEvent(plr, false, false, 0, 0, NpcStringId.REMAINING_TIME));
|
plr.sendPacket(new ExSendUIEvent(plr, false, false, 0, 0, NpcStringId.TIME_LEFT));
|
||||||
}
|
}
|
||||||
world.finishInstance();
|
world.finishInstance();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,6 +148,12 @@ public class Q00255_Tutorial extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
|
// Death Knights.
|
||||||
|
if ((player == null) || (player.getClassId().getId() > 195))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (qs == null)
|
if (qs == null)
|
||||||
{
|
{
|
||||||
@@ -223,6 +229,12 @@ public class Q00255_Tutorial extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
|
// Death Knights.
|
||||||
|
if (player.getClassId().getId() > 195)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (qs != null)
|
if (qs != null)
|
||||||
{
|
{
|
||||||
@@ -402,6 +414,12 @@ public class Q00255_Tutorial extends Quest
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Death Knights.
|
||||||
|
if (player.getClassId().getId() > 195)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final QuestState qs = getQuestState(player, true);
|
final QuestState qs = getQuestState(player, true);
|
||||||
if ((qs != null) && (qs.getMemoState() < 4) && STARTING_VOICE_HTML.containsKey(player.getClassId().getId()))
|
if ((qs != null) && (qs.getMemoState() < 4) && STARTING_VOICE_HTML.containsKey(player.getClassId().getId()))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import org.l2jmobius.gameserver.model.quest.Quest;
|
|||||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
import org.l2jmobius.gameserver.model.quest.State;
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExRequestClassChangeUi;
|
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExClassChangeSetAlarm;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Saga of Legend (10673)
|
* Saga of Legend (10673)
|
||||||
@@ -100,6 +100,7 @@ public class Q10673_SagaOfLegend extends Quest
|
|||||||
private static final int SPELLBOOK_ORC = 90042; // Spellbook: Mount Black Bear
|
private static final int SPELLBOOK_ORC = 90042; // Spellbook: Mount Black Bear
|
||||||
private static final int SPELLBOOK_DWARF = 90041; // Spellbook: Mount Kukuru
|
private static final int SPELLBOOK_DWARF = 90041; // Spellbook: Mount Kukuru
|
||||||
private static final int SPELLBOOK_KAMAEL = 91946; // Spellbook: Mount Griffin
|
private static final int SPELLBOOK_KAMAEL = 91946; // Spellbook: Mount Griffin
|
||||||
|
private static final int SPELLBOOK_DEATH_KNIGHT = 93383; // Spellbook: Mount Nightmare Steed
|
||||||
// Misc
|
// Misc
|
||||||
private static final int MIN_LEVEL = 76;
|
private static final int MIN_LEVEL = 76;
|
||||||
private static final String KILL_COUNT_VAR = "KillCount";
|
private static final String KILL_COUNT_VAR = "KillCount";
|
||||||
@@ -160,7 +161,7 @@ public class Q10673_SagaOfLegend extends Quest
|
|||||||
qs.exitQuest(false, true);
|
qs.exitQuest(false, true);
|
||||||
if (CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, player.getClassId().getId()))
|
if (CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, player.getClassId().getId()))
|
||||||
{
|
{
|
||||||
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
|
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
|
||||||
}
|
}
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
@@ -275,7 +276,7 @@ public class Q10673_SagaOfLegend extends Quest
|
|||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if ((qs != null) && qs.isCompleted())
|
if ((qs != null) && qs.isCompleted())
|
||||||
{
|
{
|
||||||
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
|
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,6 +301,13 @@ public class Q10673_SagaOfLegend extends Quest
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Death Knights.
|
||||||
|
if (player.getClassId().getId() > 195)
|
||||||
|
{
|
||||||
|
giveItems(player, SPELLBOOK_DEATH_KNIGHT, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if ((qs != null) && qs.isCompleted())
|
if ((qs != null) && qs.isCompleted())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Head Trainer Kilremange:<br>
|
||||||
|
Would you like to stop being a recluse and return to a life full of adventure?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10957_TheLifeOfADeathKnight 34138-02.htm">"Oh, it's a bit awkward..."</Button>
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<html><body>Head Trainer Kilremange:<br>
|
||||||
|
No wander you find it awkward.<br>
|
||||||
|
I'm feeling a bit awkward myself. Ha-ha!<br>
|
||||||
|
But since you decided to return to this world, wouldn't it be right to live life to the fullest?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10957_TheLifeOfADeathKnight 34138-03.htm">"What do you mean?"</Button>
|
||||||
|
</body></html>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user