Merged with released L2J-Unity files.

This commit is contained in:
mobiusdev
2016-06-12 01:34:09 +00:00
parent e003e87887
commit 635557f5da
18352 changed files with 3245113 additions and 2892959 deletions

View File

@@ -0,0 +1,10 @@
<html><body>Greetings, my lord.<br1>
I am at your service.<br>
<center>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanHallManager manageDoors">Open/close the door</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanHallManager expel">Expel an outsider</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanHallManager useFunctions">Clan Hall function</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanHallManager warehouse">Clan Warehouse</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanHallManager manageFunctions">Manage Clan Hall</Button>
</center>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>
<font color="LEVEL">[Overdue Clan Hall Payment Notice]</font><br>
The rental fee for your clan hall is past due. Please check the balance of your clan's warehouse.<br>
Sufficient funding must be deposited in your clan's warehouse within <font color="FF9999">%costFailDayLeft%</font> days in order to avoid repossession.<br>
All payments will be processed within 24 hours.<br>
<button action="bypass -h Quest ClanHallManager index" value="Confirm" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>
Would you care for a nice cup of tea?
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body>
This function opens and closes the clan hall door.<br>
When the door open, anyone can enter -- even those who are not members of the clan. For security purposes, you should keep the door closed as much as possible.<br>
If you wish to expel non-clan members, use the &nbsp;<a action="bypass -h Quest ClanHallManager expel">Expel Outsider</A>&nbsp; menu.<br>
<center>
<br><button action="bypass -h Quest ClanHallManager manageDoors 1" value="Open" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager manageDoors 2" value="Close" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager index" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>
The clan hall door is now <font color="FF9955">open</font>.<br>
Anyone can enter as long as it remains open, even those who are not clan members. For security's sake, you should close the door as soon as possible.<br>
<center>
<br><button action="bypass -h Quest ClanHallManager manageDoors 2" value="Close" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager index" value="Start Screen" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>
The clan hall door is now <font color="FF9955">closed</font>.<br>
Use the "Dismiss" function to expel anyone who is not a clan member.<br>
<center>
<br><button action="bypass -h Quest ClanHallManager expel 1" value="Expel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager index" value="Start Screen" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>
I can expel any uninvited guests that might be present.<br>
Do you wish for me to do so now?<br>
<center>
<br><button action="bypass -h Quest ClanHallManager expel 1" value="Expel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager index" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>
All uninvited guests have been shown out.<br><br>
<center>
<button action="bypass -h Quest ClanHallManager index" value="Start Screen" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,12 @@
<html><body>
Special functions for Clan Hall are available to use.<br>
In order to use the below functions, each function should be activated in the&nbsp;<a action="bypass -h Quest ClanHallManager manageFunctions">Managing Clan Hall</a>&nbsp;menu.<br><br>
<center>
<font color="LEVEL">HP Recovery</font> : <font color="00FFFF">%hpFunction%</font> % is being applied <br><font color="LEVEL">MP Recovery</font> : <font color="00FFFF">%mpFunction%</font> % is being applied<br>
<font color="LEVEL">XP Resurrection Recovery</font> : <font color="00FFFF">%resFunction%</font> % is being applied<br>
<button action="bypass -h Quest ClanHallManager useFunctions teleport" value="Teleport" width=120 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
<button action="bypass -h Quest ClanHallManager useFunctions buffs" value="Supplemental Magic" width=120 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
<button action="bypass -h Quest ClanHallManager useFunctions items" value="Item Creation" width=120 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
<button action="bypass -h Quest ClanHallManager index" value="Main Screen" width=120 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
</center>
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body>
This warehouse may only be used by clan members.<br>
Please be mindful of your Adena balance remaining, as both the rental fee and usage fee for this clan hall will automatically withdrawn from this account.<br>
The current Clan Hall Rental Fee is <font color="LEVEL">%lease% Adena</font>, and the scheduled withdrawal time for the Clan Hall Rental Fee is <font color="LEVEL">%payDate%</font>.<br><br>
<center>
<button action="bypass -h npc_%objectId%_depositc" value="Deposit" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
<button action="bypass -h npc_%objectId%_withdrawc" value="Withdraw" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
<button action="bypass -h Quest ClanHallManager index" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br>
</center>
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<center>
<br><button action="bypass -h Quest ClanHallManager manageFunctions recovery" value="Recovery" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager manageFunctions other" value="Other" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br><button action="bypass -h Quest ClanHallManager manageFunctions decor" value="Decor" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
<br>
<br><button action="bypass -h Quest ClanHallManager index" value="Main Screen" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>
You have cast support magic.<br>
You have <font color="00FFFF">%manaLeft%</font> MP remaining.<br><br>
<center><button action="bypass -h Quest ClanHallManager useFunctions buffs" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>
<font color="LEVEL">Your attempt to cast support magic has failed.</font><br><br>
You do not have sufficient MP for the spell selected. <br1>Please try again later.<br>
(You have <font color="00FFFF">%manaLeft%</font> MP remaining.)<br><br>
<center><button action="bypass -h Quest ClanHallManager useFunctions buffs" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>
<font color="LEVEL">Your attempt to cast support magic has failed.</font><br><br>
Your casting power must now regenerate.<br1>Try casting again in a few moments.<br>
You have <font color="00FFFF">%manaLeft%</font> MP remaining.<br><br>
<center><button action="bypass -h Quest ClanHallManager useFunctions buffs" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center>
</body></html>

View File

@@ -0,0 +1,24 @@
<html><body>
Select the support magic to cast.<br1>
Casting is limited as it requires the Manager's MP.<br>
<font color="00FFFF">%manaLeft%</font> MP remaining.<br>
<center>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4342_2">Wind Walk Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4343_3">Decrease Weight Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4344_3">Shield Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4346_4">Mental Shield Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4345_3">Might Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15374_1">Horn Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15375_1">Drum Melody Lv.1</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4347_2">Blessed Body Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4349_1">Magic Barrier Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4350_1">Resist Shock Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4348_2">Blessed Soul Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15376_1">Pipe Organ Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15377_1">Guitar Melody Lv.1</a><br1>
<br>
<button action="bypass -h Quest ClanHallManager useFunctions" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,35 @@
<html><body>
Select the support magic to cast.<br1>
Casting is limited as it requires the Manager's MP.<br>
<font color="00FFFF">%manaLeft%</font> MP remaining.<br>
<center>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4342_2">Wind Walk Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4343_3">Decrease Weight Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4344_3">Shield Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4346_4">Mental Shield Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4345_3">Might Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15374_1">Horn Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15375_1">Drum Melody Lv.1</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4347_2">Blessed Body Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4349_1">Magic Barrier Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4350_1">Resist Shock Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4348_2">Blessed Soul Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15376_1">Pipe Organ Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15377_1">Guitar Melody Lv.1</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4351_2">Concentration Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4352_1">Berserker Spirit Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4353_2">Blessed Shield Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4358_1">Guidance Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4354_1">Vampiric Rage Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15378_1">Harp Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15379_1">Lute Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15380_1">Knight's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15381_1">Warrior's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15382_1">Wizard's Harmony Lv.1</a><br1>
<br>
<button action="bypass -h Quest ClanHallManager useFunctions" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,34 @@
<html><body>
Select the support magic to cast.<br1>
Casting is limited as it requires the Manager's MP.<br>
<font color="00FFFF">%manaLeft%</font> MP remaining.<br><br>
<center>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4342_2">Wind Walk Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4343_3">Decrease Weight Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4344_3">Shield Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4346_4">Mental Shield Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4345_3">Might Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15374_2">Horn Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15375_2">Drum Melody Lv.2</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4347_6">Blessed Body Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4349_2">Magic Barrier Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4350_4">Resist Shock Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4348_6">Blessed Soul Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15376_2">Pipe Organ Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15377_1">Guitar Melody Lv.1</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4351_6">Concentration Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4352_2">Berserker Spirit Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4353_6">Blessed Shield Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4358_3">Guidance Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4354_4">Vampiric Rage Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15378_1">Harp Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15379_1">Lute Melody Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15380_1">Knight's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15381_1">Warrior's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15382_1">Wizard's Harmony Lv.1</a><br1>
<br>
<button action="bypass -h Quest ClanHallManager useFunctions" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,40 @@
<html><body>
Select the support magic to cast.<br1>
Casting is limited as it requires the Manager's MP.<br>
<font color="00FFFF">%manaLeft%</font> MP remaining.<br><br>
<center>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4342_2">Wind Walk Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4343_3">Decrease Weight Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4344_3">Shield Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4346_4">Mental Shield Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4345_3">Might Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15374_2">Horn Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15375_2">Drum Melody Lv.2</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4347_6">Blessed Body Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4349_2">Magic Barrier Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4350_4">Resist Shock Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4348_6">Blessed Soul Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15376_2">Pipe Organ Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15377_2">Guitar Melody Lv.2</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4351_6">Concentration Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4352_2">Berserker Spirit Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4353_6">Blessed Shield Lv.6</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4358_3">Guidance Lv.3</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4354_4">Vampiric Rage Lv.4</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15378_2">Harp Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15379_2">Lute Melody Lv.2</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15380_1">Knight's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15381_1">Warrior's Harmony Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 15382_1">Wizard's Harmony Lv.1</a><br1>
<br>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4355_1">Acumen Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4356_1">Empower Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4357_1">Haste Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4359_1">Focus Lv.1</a><br1>
<a action="bypass -h Quest ClanHallManager useFunctions buffs 4360_1">Death Whisper Lv.1</a><br1>
<br>
<button action="bypass -h Quest ClanHallManager useFunctions" value="List" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,29 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Fireplace (HP Recovery Device)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td>%funcCost%</td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Provides additional HP recovery for clan members in the clan hall.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,29 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Carpet (MP Recovery)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td><font color="00FFFF">%funcCost%</font></td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Provides additional MP recovery for clan members in the clan hall.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,29 @@
<html><body><br><font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Chandelier (XP Recovery Device)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td><font color="00FFFF">%funcCost%</font></td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Restores XP of any clan member who is resurrected in the clan hall.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,30 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Mirror (Teleportation Device)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td><font color="00FFFF">%funcCost%</font></td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Teleports clan members in a clan hall to the target staging area</td>.
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,30 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Insignia (Supplementary Magic)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td>%funcCost%</td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Enables the use of supplementary magic.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,30 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Magic Curtain (Item Creation Device)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td>%funcCost%</td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Allows the purchase of a specialty item. Items must be bought separately within the specified time period.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,29 @@
<html><body><br>
<font color="LEVEL">[Managing Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Curtain (a decoration)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td><td>%funcCost%</td>
</tr>
<tr>
<td valign=top><font color="999999">Function</font></td>
<td>An item to decorate Clan Hall.</td>
</tr>
</table>
<br>
The fee to use this facility item is payment in advance.<br>
The first usage fee will be <font color="LEVEL">drafted from the inventory of</font> the Clan Leader, and the next usage fee thereafter will be automatically withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not a sufficient Adena fund in the clan warehouse, the <font color="LEVEL">facility will return to the initial condition</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,30 @@
<html><body><br>
<font color="LEVEL">[Manage Clan Hall]</font><br>
<table width=275 cellspacing=3 cellpadding=0>
<tr>
<td FIXWIDTH=65><font color="999999">Name</font></td>
<td FIXWIDTH=230>Front Platform (Decoration)</td>
</tr>
<tr>
<td><font color="999999">Cost</font></td>
<td>%funcCost%</td>
</tr>
<tr>
<td valign=top><font color="999999">Use</font></td>
<td>Used to decorate the clan hall.</td>
</tr>
</table>
<br>
The fee for using this feature must be paid in advance.<br>
The initial fee will be deducted from the Clan Leader's <font color="LEVEL">inventory</font>, and subsequent fees will be withdrawn from the <font color="LEVEL">clan warehouse</font>.<br>
If there is not sufficient Adena in the clan warehouse,<font color="LEVEL"> the facility will be reset</font>.<br>
<center>
<table width=200>
<tr><td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions setFunction %funcId% %funcLv%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td> <td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td></tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>&$556;<br>
<br>
%teleportList%
<br>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>
The facility is already set as <font color="00FFFF">%funcEffect%</font>.<br>
The facility setting has not been changed.<br>
<center>
<br><button action="bypass -h Quest ClanHallManager manageFunctions" value="Management" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,32 @@
<html><body><br>
<font color="LEVEL">[Clan Hall Facility Management]</font><br>
<table width=100% cellspacing=2 cellpadding=0>
<tr>
<td width=60><font color="999999">Function</font></td>
<td width=220><font color="LEVEL">Curtain</font> %CURTAINprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%CURTAINexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%CURTAINdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 7 1">Stage 1</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 7 2">Stage 2</a>]<br></td>
</tr>
<tr>
<td><font color="999999">Function</font></td>
<td><font color="LEVEL">Front Podium</font> %PODIUMprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%PODIUMexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%PODIUMdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 8 1">Stage 1</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 8 2">Stage 2</a>]<br></td>
</tr>
</table>
<br><button action="bypass -h Quest ClanHallManager manageFunctions" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>
Clan hall functions have been activated.<br>
The usage fee for each function will be automatically deducted from the clan warehouse account for each time period. If there are no more funds in the account, the applicable function will be reset.<br>
To check the remaining time available for each function, use the clan hall Management menu.<br><br>
<center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Management" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,44 @@
<html><body><br>
<font color="LEVEL">[Clan Hall Facility Management]</font><br>
<table width=100% cellspacing=2 cellpadding=0>
<tr>
<td fixwidth=60><font color="999999">Function</font></td>
<td fixwidth=220><font color="LEVEL">Teleport</font> %TPprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%TPexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%TPdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 4 1">Stage 1</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 4 2">Stage 2</a>]<br></td>
</tr>
<tr>
<td><font color="999999">Function</font></td>
<td><font color="LEVEL">Support Magic</font> %BUFFprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%BUFFexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%BUFFdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 5 1">Stage 1</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 5 2">Stage 2</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 5 3">Stage 3</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 5 4">Stage 4</a>]<br></td>
</tr>
<tr>
<td><font color="999999">Function</font></td>
<td><font color="LEVEL">Item production</font> %ITEMprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%ITEMexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%ITEMdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 6 1">Stage 1</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 6 2">Stage 2</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 6 3">Stage 3</a>]<br></td>
</tr>
</table>
<br><button action="bypass -h Quest ClanHallManager manageFunctions" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</body></html>

View File

@@ -0,0 +1,44 @@
<html><body><br>
<font color="LEVEL">[Clan Hall Facility Management]</font><br>
<table width=100% cellspacing=2 cellpadding=0>
<tr>
<td width=60><font color="999999">Function</font></td>
<td width=220><font color="LEVEL">HP Recovery</font> <font color="00FFFF">%HPrecovery%</font> %HPprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%HPexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%HPdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 1 1">200%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 1 2">300%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 1 3">500%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 1 4">700%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 1 5">1000%</a>]<br></td>
</tr>
<tr>
<td><font color="999999">Function</font></td>
<td><font color="LEVEL">MP Recovery</font> <font color="00FFFF">%MPrecovery%</font> %MPprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%MPexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%MPdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 2 1">500%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 2 2">1000%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 2 3">2000%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 2 4">3000%]</a><br></td>
</tr>
<tr>
<td><font color="999999">Function</font></td>
<td><font color="LEVEL">XP Recovery</font> <font color="00FFFF">%XPrecovery%</font> %XPprice%</td>
</tr>
<tr>
<td><font color="999999">Period</font></td>
<td>%XPexpire%</td>
</tr>
<tr>
<td><font color="999999">Change</font><br></td>
<td>%XPdeactive%[<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 3 1">35%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 3 2">45%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 3 3">55%</a>][<a action="bypass -h Quest ClanHallManager manageFunctions selectFunction 3 4">70%</a>]<br></td>
</tr>
</table>
<br><button action="bypass -h Quest ClanHallManager manageFunctions" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>
You don't have enough money.<br>
<center>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanHallManager index">Back</Button>
</center>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>
<br><br>
<center>
<font color="LEVEL">You aren't authorized to do that.</font>
</center>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>
That function has not been activated.<br>
<a action="bypass -h Quest ClanHallManager manageFunctions"></a>Use the Manage Clan Hall menu to activate functions.<br>
<center>
<button action="bypass -h Quest ClanHallManager useFunctions" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,18 @@
<html><body>
<font color="LEVEL">[Manage Clan Hall]</font><br>
This function will be reset.<br>
The fee will no longer be automatically withdrawn from the clan warehouse.<br>
Do you wish to continue?<br>
<center>
<table width=200>
<tr>
<td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions removeFunction remove %FUNC_TYPE%" value="OK" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td>
<td align=center>
<button action="bypass -h Quest ClanHallManager manageFunctions" value="Cancel" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</td>
</tr>
</table>
</center>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>
Clan hall functions have been initialized.<br>
The usage fee will no longer be deducted from the clan warehouse account.<br>
You can use the Clan Hall Management menu to manage functions.<br>
<center>
<br><button action="bypass -h Quest ClanHallManager manageFunctions" value="Management" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>
Clan hall initialization has failed.<br>
Do you know why?<br>
<center>
<br><button action="bypass -h Quest ClanHallManager index" value="Back" width=80 height=27 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
</center>
</body></html>

View File

@@ -0,0 +1,517 @@
/*
* 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.ClanHallManager;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
import com.l2jmobius.commons.util.CommonUtil;
import com.l2jmobius.gameserver.data.xml.impl.ResidenceFunctionsData;
import com.l2jmobius.gameserver.model.ClanPrivilege;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2MerchantInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.entity.ClanHall;
import com.l2jmobius.gameserver.model.holders.ClanHallTeleportHolder;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.residences.ResidenceFunction;
import com.l2jmobius.gameserver.model.residences.ResidenceFunctionTemplate;
import com.l2jmobius.gameserver.model.residences.ResidenceFunctionType;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.AgitDecoInfo;
import ai.AbstractNpcAI;
/**
* Clan Hall Manager AI.
* @author St3eT
*/
public final class ClanHallManager extends AbstractNpcAI
{
// NPCs
// @formatter:off
private static final int[] CLANHALL_MANAGERS =
{
35384, 35386, 35388, // Gludio
35400, 35392, 35394, 35396, 35398, // Gludin
35403, 35405, 35407, // Dion
35439, 35441, 35443, 35445, 35447, 35449, // Aden
35451, 35453, 35455, 35457, 35459, // Giran
35461, 35463, 35465, 35467, // Goddard
35566, 35568, 35570, 35572, 35574, 35576, 35578, // Rune
35580, 35582, 35584, 35586, // Schuttgart
36721, 36723, 36725, 36727, // Gludio Outskirts
36729, 36731, 36733, 36735, // Dion Outskirts
36737, 36739, // Floran Village
};
// @formatter:on
// Misc
private static final int[] ALLOWED_BUFFS =
{
4342, // Wind Walk
4343, // Decrease Weight
4344, // Shield
4346, // Mental Shield
4345, // Might
15374, // Horn Melody
15375, // Drum Melody
4347, // Blessed Body
4349, // Magic Barrier
4350, // Resist Shock
4348, // Blessed Soul
15376, // Pipe Organ Melody
15377, // Guitar Melody
4351, // Concentration
4352, // Berserker Spirit
4353, // Blessed Shield
4358, // Guidance
4354, // Vampiric Rage
15378, // Harp Melody
15379, // Lute Melody
15380, // Knight's Harmony
15381, // Warrior's Harmony
15382, // Wizard's Harmony
4355, // Acumen
4356, // Empower
4357, // Haste
4359, // Focus
4360, // Death Whisper
};
private ClanHallManager()
{
addStartNpc(CLANHALL_MANAGERS);
addTalkId(CLANHALL_MANAGERS);
addFirstTalkId(CLANHALL_MANAGERS);
addSeeCreatureId(CLANHALL_MANAGERS);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final StringTokenizer st = new StringTokenizer(event, " ");
final String action = st.nextToken();
final ClanHall clanHall = npc.getClanHall();
String htmltext = null;
if ((clanHall != null) && isOwningClan(player, npc))
{
switch (action)
{
case "index":
{
htmltext = isOwningClan(player, npc) ? "ClanHallManager-01.html" : "ClanHallManager-03.html";
break;
}
case "manageDoors":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OPEN_DOOR))
{
if (st.hasMoreTokens())
{
final boolean open = st.nextToken().equals("1");
clanHall.openCloseDoors(open);
htmltext = "ClanHallManager-0" + (open ? "5" : "6") + ".html";
}
else
{
htmltext = "ClanHallManager-04.html";
}
}
else
{
htmltext = "ClanHallManager-noAuthority.html";
}
break;
}
case "expel":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_DISMISS))
{
if (st.hasMoreTokens())
{
clanHall.banishOthers();
htmltext = "ClanHallManager-08.html";
}
else
{
htmltext = "ClanHallManager-07.html";
}
}
else
{
htmltext = "ClanHallManager-noAuthority.html";
}
break;
}
case "useFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_OTHER_RIGHTS))
{
if (!st.hasMoreTokens())
{
final ResidenceFunction hpFunc = clanHall.getFunction(ResidenceFunctionType.HP_REGEN);
final ResidenceFunction mpFunc = clanHall.getFunction(ResidenceFunctionType.MP_REGEN);
final ResidenceFunction xpFunc = clanHall.getFunction(ResidenceFunctionType.EXP_RESTORE);
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-09.html");
htmltext = htmltext.replaceAll("%hpFunction%", hpFunc != null ? String.valueOf((int) hpFunc.getValue()) : "0");
htmltext = htmltext.replaceAll("%mpFunction%", mpFunc != null ? String.valueOf((int) mpFunc.getValue()) : "0");
htmltext = htmltext.replaceAll("%resFunction%", xpFunc != null ? String.valueOf((int) xpFunc.getValue()) : "0");
}
else
{
switch (st.nextToken())
{
case "teleport":
{
final int teleportLevel = clanHall.getFunctionLevel(ResidenceFunctionType.TELEPORT);
if (teleportLevel > 0)
{
if (!st.hasMoreTokens())
{
final StringBuilder sb = new StringBuilder();
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcTeleport.html");
// Generate teleport list
clanHall.getTeleportList(teleportLevel).forEach(teleport ->
{
final String price = (teleport.getCost() > 0) ? (" - " + teleport.getCost() + " Adena") : "";
sb.append("<button align=left icon=\"teleport\" action=\"bypass -h Quest ClanHallManager useFunctions teleport " + teleport.getNpcStringId().getId() + "\" msg=\"811;F;" + teleport.getNpcStringId().getId() + "\"><fstring>" + teleport.getNpcStringId().getId() + "</fstring>" + price + "</button>");
});
htmltext = htmltext.replaceAll("%teleportList%", sb.toString());
}
else
{
final int destination = Integer.parseInt(st.nextToken());
final ClanHallTeleportHolder holder = clanHall.getTeleportList(teleportLevel).stream().filter(tel -> tel.getNpcStringId().getId() == destination).findFirst().orElse(null);
if (holder != null)
{
if (player.getAdena() >= holder.getCost())
{
player.reduceAdena("Clan Hall Teleport", holder.getCost(), npc, true);
player.teleToLocation(holder.getLocation());
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
}
}
else
{
htmltext = "ClanHallManager-noFunction.html";
}
}
}
else
{
htmltext = "ClanHallManager-noFunction.html";
}
break;
}
case "buffs":
{
final int buffLevel = clanHall.getFunctionLevel(ResidenceFunctionType.BUFF);
if (buffLevel > 0)
{
if (!st.hasMoreTokens())
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcBuffs_" + buffLevel + ".html");
htmltext = htmltext.replaceAll("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
}
else
{
final String[] skillData = st.nextToken().split("_");
final SkillHolder skill = new SkillHolder(Integer.parseInt(skillData[0]), Integer.parseInt(skillData[1]));
if (CommonUtil.contains(ALLOWED_BUFFS, skill.getSkillId()))
{
if (npc.getCurrentMp() < (npc.getStat().getMpConsume(skill.getSkill()) + npc.getStat().getMpInitialConsume(skill.getSkill())))
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcBuffsNoMp.html");
}
else if (npc.isSkillDisabled(skill.getSkill()))
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcBuffsNoReuse.html");
}
else
{
castSkill(npc, player, skill);
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcBuffsDone.html");
}
htmltext = htmltext.replaceAll("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
}
}
}
else
{
htmltext = "ClanHallManager-noFunction.html";
}
break;
}
case "items":
{
final int itemLevel = clanHall.getFunctionLevel(ResidenceFunctionType.ITEM);
switch (itemLevel)
{
case 1:
case 2:
case 3:
((L2MerchantInstance) npc).showBuyWindow(player, Integer.parseInt(npc.getId() + "0" + (itemLevel - 1)));
break;
default:
htmltext = "ClanHallManager-noFunction.html";
}
break;
}
}
}
}
else
{
htmltext = "ClanHallManager-noAuthority.html";
}
break;
}
case "warehouse":
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-10.html");
htmltext = htmltext.replaceAll("%lease%", String.valueOf(clanHall.getLease()));
htmltext = htmltext.replaceAll("%payDate%", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(clanHall.getNextPayment())));
break;
}
case "manageFunctions":
{
if (player.hasClanPrivilege(ClanPrivilege.CH_SET_FUNCTIONS))
{
if (!st.hasMoreTokens())
{
htmltext = "ClanHallManager-11.html";
}
else
{
switch (st.nextToken())
{
case "recovery":
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-manageFuncRecovery.html");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.HP_REGEN), htmltext, "HP");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.MP_REGEN), htmltext, "MP");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.EXP_RESTORE), htmltext, "XP");
break;
}
case "other":
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-manageFuncOther.html");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.TELEPORT), htmltext, "TP");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.BUFF), htmltext, "BUFF");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.ITEM), htmltext, "ITEM");
break;
}
case "decor":
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-manageFuncDecor.html");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.CURTAIN), htmltext, "CURTAIN");
htmltext = getFunctionInfo(clanHall.getFunction(ResidenceFunctionType.PLATFORM), htmltext, "PODIUM");
break;
}
case "selectFunction":
{
if (st.countTokens() == 2)
{
final int funcId = Integer.parseInt(st.nextToken());
final int funcLv = Integer.parseInt(st.nextToken());
final ResidenceFunction oldFunc = clanHall.getFunction(funcId, funcLv);
if (oldFunc != null)
{
final int funcVal = (int) oldFunc.getTemplate().getValue();
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-manageFuncAlreadySet.html");
htmltext = htmltext.replaceAll("%funcEffect%", "<fstring p1=\"" + (funcVal > 0 ? funcVal : oldFunc.getLevel()) + "\">" + (funcVal > 0 ? NpcStringId.S1.getId() : NpcStringId.STAGE_S1.getId()) + "</fstring>");
}
else if ((funcId >= 1) && (funcId <= 8))
{
final ResidenceFunctionTemplate template = ResidenceFunctionsData.getInstance().getFunction(funcId, funcLv);
if (template != null)
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-funcConfirm" + funcId + ".html");
htmltext = htmltext.replaceAll("%funcId%", String.valueOf(funcId));
htmltext = htmltext.replaceAll("%funcLv%", String.valueOf(funcLv));
htmltext = htmltext.replaceAll("%funcCost%", "<fstring p1=\"" + template.getCost().getCount() + "\" p2=\"" + template.getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
}
}
}
break;
}
case "setFunction":
{
if (st.countTokens() == 2)
{
final int funcId = Integer.parseInt(st.nextToken());
final int funcLv = Integer.parseInt(st.nextToken());
final ResidenceFunctionTemplate template = ResidenceFunctionsData.getInstance().getFunction(funcId, funcLv);
if ((template != null) && (getQuestItemsCount(player, template.getCost().getId()) >= template.getCost().getCount()))
{
if (clanHall.getFunction(funcId, funcLv) != null)
{
return null;
}
takeItems(player, template.getCost().getId(), template.getCost().getCount());
clanHall.addFunction(funcId, funcLv);
updateVisualEffects(clanHall, npc);
htmltext = "ClanHallManager-manageFuncDone.html";
}
else
{
htmltext = "ClanHallManager-noAdena.html";
}
}
break;
}
case "removeFunction":
{
if (st.countTokens() == 2)
{
final String act = st.nextToken();
final ResidenceFunctionType funcType = ResidenceFunctionType.valueOf(st.nextToken());
if (funcType != null)
{
if (act.equals("confirm"))
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-removeFunctionConfirm.html");
htmltext = htmltext.replaceAll("%FUNC_TYPE%", funcType.toString());
}
else if (act.equals("remove"))
{
final ResidenceFunction func = clanHall.getFunction(funcType);
if (func != null)
{
clanHall.removeFunction(func);
updateVisualEffects(clanHall, npc);
htmltext = "ClanHallManager-removeFunctionDone.html";
}
else
{
htmltext = "ClanHallManager-removeFunctionFail.html";
}
}
else
{
htmltext = "ClanHallManager-removeFunctionFail.html";
}
}
else
{
htmltext = "ClanHallManager-removeFunctionFail.html";
}
}
else
{
htmltext = "ClanHallManager-removeFunctionFail.html";
}
break;
}
}
}
}
else
{
htmltext = "ClanHallManager-noAuthority.html";
}
break;
}
}
}
return htmltext;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final ClanHall clanHall = npc.getClanHall();
if (isOwningClan(player, npc))
{
if (clanHall.getCostFailDay() == 0)
{
htmltext = "ClanHallManager-01.html";
}
else
{
htmltext = getHtm(player.getHtmlPrefix(), "ClanHallManager-02.html");
htmltext = htmltext.replaceAll("%costFailDayLeft%", Integer.toString((8 - clanHall.getCostFailDay())));
}
}
else
{
htmltext = "ClanHallManager-03.html";
}
return htmltext;
}
@Override
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
{
if (creature.isPlayer())
{
final ClanHall clanHall = npc.getClanHall();
if (clanHall != null)
{
creature.getActingPlayer().sendPacket(new AgitDecoInfo(clanHall));
}
}
return super.onSeeCreature(npc, creature, isSummon);
}
private void updateVisualEffects(ClanHall clanHall, L2Npc npc)
{
L2World.getInstance().forEachVisibleObject(npc, L2PcInstance.class, player -> player.sendPacket(new AgitDecoInfo(clanHall)));
}
private String getFunctionInfo(ResidenceFunction func, String htmltext, String name)
{
if (func != null)
{
htmltext = htmltext.replaceAll("%" + name + "recovery%", String.valueOf((int) func.getTemplate().getValue()) + "%");
htmltext = htmltext.replaceAll("%" + name + "price%", "<fstring p1=\"" + func.getTemplate().getCost().getCount() + "\" p2=\"" + func.getTemplate().getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
htmltext = htmltext.replace("%" + name + "expire%", "Withdraw the fee for the next time at " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(func.getExpiration())));
htmltext = htmltext.replaceAll("%" + name + "deactive%", "[<a action=\"bypass -h Quest ClanHallManager manageFunctions removeFunction confirm " + func.getType().toString() + "\">Deactivate</a>]");
}
else
{
htmltext = htmltext.replaceAll("%" + name + "recovery%", "<fstring p1=\"\" p2=\"\">" + NpcStringId.NONE2.getId() + "</fstring>");
htmltext = htmltext.replaceAll("%" + name + "price%", "");
htmltext = htmltext.replaceAll("%" + name + "expire%", "");
htmltext = htmltext.replaceAll("%" + name + "deactive%", "");
}
return htmltext;
}
private boolean isOwningClan(L2PcInstance player, L2Npc npc)
{
return ((npc.getClanHall().getOwnerId() == player.getClanId()) && (player.getClanId() != 0));
}
public static void main(String[] args)
{
new ClanHallManager();
}
}