Addition of ensoul extraction.

This commit is contained in:
MobiusDev 2019-03-03 01:19:23 +00:00
parent c1cdb862c8
commit 267f50a36b
76 changed files with 1600 additions and 332 deletions

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Pinter:<br>
Welcome. What brings you here, my friend? The name's Pinter. Yes, yes, I'm a Dwarf, and proud of it! My family has been blacksmiths in this town for three generations now! This place is in our blood!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Pushkin:<br>
Nice to meet you, wanderer!<br>
Rupio and I have come all the way from the Black Anvil Guild to set up shop here. We haven't been here long, but we're gonna turn this place into the best forge in Giran! What can we do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Kluto:<br>
Interested in seeing a genius at work, hmm? Just hang around!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Poitan:<br>
Nice to meet you, traveler. Your timing is excellent! I just finished remodeling the workshop yesterday, so you're my first customer this season!<br>
What can I do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -2,13 +2,14 @@
Hmph, who are you? Why did you come here? Unless you have a case of Dwarven beer in that tiny saddle bag, I don't want to hear about it! Bahhh!<br>
All I ever hear is heat this, cool that, get to the bellows, it's too hot, don't drop it! Argh! Makes me want to puke! It SO does not pay to be the low man on the totem pole! I want to MAKE something!<br>
Armor, a blade... anything!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_02.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>
</body></html>

View File

@ -1,10 +1,13 @@
<html><body>Blacksmith Duning:<br>
Hello there! Welcome to the forge! It's so exciting here. So many adventurers stopping by! Why just yesterday, I had lunch with a bounty hunter, tea with an informer, and supper with a ruins explorer! The stories! The romances! The adventures! Better than day time theater!<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN="LEFT" ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Wilbert:<br>
What do we do here? Well, blacksmiths make things like armor, swords, polearms, axes, plows... But wait! There's more! Look, over there... Aden Castle stands, proudly disregarding the laws of gravity. And you know why? Engineering! It would have collapsed a long time ago if it hadn't been for the efforts of the Black Anvil craftsmen.<br>
And... This is just a rumor, but... They say that the giant golem the rebels used to evict the Human lords was made and sold by the Black Anvil. After all, who else could do something like that, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Morning:<br>
Welcome! If you have money, I have skills. What do you need, friend?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body> Blacksmith Hilda:<br>
Do you have any business for Hilda? Hmm? Hilda is busy, busy! She must make swords, plows, polearms, and armor! No visiting! Hilda doesn't visit, just works! Hilda doesn't mind watchers, but if someone talks while Hilda works, someone might get hit by hammer. In the face. Hard.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Vincenz:<br>
Welcome to the thunder forge! Hahaha! Noisy, isn't it?<br>
Do you have anything that you like to craft? We do it all here! Order whatever you like. A pendant? A sword? A war golem? It's all the same to us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Buryun:<br>
Welcome! Your timing is impeccable, I just finished up a three-day job repairing this here Claymore for Fred. A nasty piece of work that! What can I help you with?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -19,6 +19,7 @@ package handlers.bypasshandlers;
import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulExtractionWindow;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow;
/**
@ -29,6 +30,7 @@ public class EnsoulWindow implements IBypassHandler
private static final String[] COMMANDS =
{
"show_ensoul_window",
"show_extract_ensoul_window"
};
@Override
@ -39,8 +41,17 @@ public class EnsoulWindow implements IBypassHandler
return false;
}
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
if (command.toLowerCase().startsWith(COMMANDS[0])) // show_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // show_extract_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulExtractionWindow.STATIC_PACKET);
return true;
}
return false;
}
@Override

View File

@ -17,6 +17,8 @@
package com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
@ -122,6 +124,11 @@ public class EnsoulData implements IGameXmlReader
parseReFee(feeNode, fee, 2);
break;
}
case "remove":
{
parseRemove(feeNode, fee);
break;
}
}
});
}
@ -143,6 +150,14 @@ public class EnsoulData implements IGameXmlReader
fee.setResoul(index, new ItemHolder(id, count));
}
private void parseRemove(Node ensoulNode, EnsoulFee fee)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
final int id = parseInteger(attrs, "itemId");
final int count = parseInteger(attrs, "count");
fee.addRemovalFee(new ItemHolder(id, count));
}
private void parseOptions(Node ensoulNode)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
@ -177,6 +192,12 @@ public class EnsoulData implements IGameXmlReader
return fee != null ? fee.getResoul(index) : null;
}
public Collection<ItemHolder> getRemovalFee(CrystalType type)
{
final EnsoulFee fee = _ensoulFees.get(type);
return fee != null ? fee.getRemovalFee() : Collections.emptyList();
}
public EnsoulOption getOption(int id)
{
return _ensoulOptions.get(id);
@ -187,6 +208,24 @@ public class EnsoulData implements IGameXmlReader
return _ensoulStones.get(id);
}
public int getStone(int type, int optionId)
{
for (EnsoulStone stone : _ensoulStones.values())
{
if (stone.getSlotType() == type)
{
for (int id : stone.getOptions())
{
if (id == optionId)
{
return stone.getId();
}
}
}
}
return 0;
}
/**
* Gets the single instance of EnsoulData.
* @return single instance of EnsoulData

View File

@ -16,6 +16,9 @@
*/
package com.l2jmobius.gameserver.model.ensoul;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.type.CrystalType;
@ -28,6 +31,7 @@ public class EnsoulFee
private final ItemHolder[] _ensoulFee = new ItemHolder[3];
private final ItemHolder[] _resoulFees = new ItemHolder[3];
private final List<ItemHolder> _removalFee = new ArrayList<>();
public EnsoulFee(CrystalType type)
{
@ -49,6 +53,11 @@ public class EnsoulFee
_resoulFees[index] = item;
}
public void addRemovalFee(ItemHolder itemHolder)
{
_removalFee.add(itemHolder);
}
public ItemHolder getEnsoul(int index)
{
return _ensoulFee[index];
@ -58,4 +67,9 @@ public class EnsoulFee
{
return _resoulFees[index];
}
public List<ItemHolder> getRemovalFee()
{
return _removalFee;
}
}

View File

@ -2175,6 +2175,28 @@ public final class L2ItemInstance extends L2Object
}
}
public void removeSpecialAbility(int position, int type)
{
if (type == 1)
{
final EnsoulOption option = _ensoulOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulOptions.remove(position);
}
}
else if (type == 2)
{
final EnsoulOption option = _ensoulSpecialOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulSpecialOptions.remove(position);
}
}
}
public void clearSpecialAbilities()
{
_ensoulOptions.values().forEach(this::clearSpecialAbility);

View File

@ -70,6 +70,7 @@ import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrys
import com.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive;
import com.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import com.l2jmobius.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import com.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
@ -392,7 +393,7 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_SSO_AUTHN_TOKEN(0x125, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET_LOGIN(0x126, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_MEMO_INFO(0x127, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
REQUEST_RAIDBOSS_SPAWN_INFO(0x129, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
REQUEST_RAID_SERVER_INFO(0x12A, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
REQUEST_SHOW_AGIT_SIEGE_INFO(0x12B, null, ConnectionState.IN_GAME),

View File

@ -0,0 +1,118 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.ensoul;
import java.util.Collection;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.data.xml.impl.EnsoulData;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExEnSoulExtractionResult;
/**
* @author Mobius
*/
public class RequestTryEnSoulExtraction implements IClientIncomingPacket
{
private int _itemObjectId;
private int _type;
private int _position;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_itemObjectId = packet.readD();
_type = packet.readC();
_position = packet.readC() - 1;
return true;
}
@Override
public void run(L2GameClient client)
{
L2PcInstance player = client.getActiveChar();
if (player == null)
{
return;
}
final L2ItemInstance item = player.getInventory().getItemByObjectId(_itemObjectId);
if (item == null)
{
return;
}
EnsoulOption option = null;
if (_type == 1)
{
option = item.getSpecialAbility(_position);
}
if (_type == 2)
{
option = item.getAdditionalSpecialAbility(_position);
}
if (option == null)
{
return;
}
final Collection<ItemHolder> removalFee = EnsoulData.getInstance().getRemovalFee(item.getItem().getCrystalType());
if (removalFee.isEmpty())
{
return;
}
// Check if player has required items.
for (ItemHolder itemHolder : removalFee)
{
if (player.getInventory().getInventoryItemCount(itemHolder.getId(), -1) < itemHolder.getCount())
{
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
player.sendPacket(new ExEnSoulExtractionResult(false, item));
return;
}
}
// Take required items.
for (ItemHolder itemHolder : removalFee)
{
player.destroyItemByItemId("Rune Extract", itemHolder.getId(), itemHolder.getCount(), player, true);
}
// Remove equipped rune.
item.removeSpecialAbility(_position, _type);
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
// Add rune in player inventory.
final int runeId = EnsoulData.getInstance().getStone(_type, option.getId());
if (runeId > 0)
{
iu.addItem(player.addItem("Rune Extract", runeId, 1, player, true));
}
player.sendInventoryUpdate(iu);
player.sendPacket(new ExEnSoulExtractionResult(true, item));
}
}

View File

@ -0,0 +1,59 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExEnSoulExtractionResult implements IClientOutgoingPacket
{
private final boolean _success;
private final L2ItemInstance _item;
public ExEnSoulExtractionResult(boolean success, L2ItemInstance item)
{
_success = success;
_item = item;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_RESULT.writeId(packet);
packet.writeC(_success ? 1 : 0);
if (_success)
{
packet.writeC(_item.getSpecialAbilities().size());
for (EnsoulOption option : _item.getSpecialAbilities())
{
packet.writeD(option.getId());
}
packet.writeC(_item.getAdditionalSpecialAbilities().size());
for (EnsoulOption option : _item.getAdditionalSpecialAbilities())
{
packet.writeD(option.getId());
}
}
return true;
}
}

View File

@ -0,0 +1,40 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExShowEnsoulExtractionWindow implements IClientOutgoingPacket
{
public static final ExShowEnsoulExtractionWindow STATIC_PACKET = new ExShowEnsoulExtractionWindow();
private ExShowEnsoulExtractionWindow()
{
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_SHOW.writeId(packet);
return true;
}
}

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Pinter:<br>
Welcome. What brings you here, my friend? The name's Pinter. Yes, yes, I'm a Dwarf, and proud of it! My family has been blacksmiths in this town for three generations now! This place is in our blood!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Pushkin:<br>
Nice to meet you, wanderer!<br>
Rupio and I have come all the way from the Black Anvil Guild to set up shop here. We haven't been here long, but we're gonna turn this place into the best forge in Giran! What can we do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Kluto:<br>
Interested in seeing a genius at work, hmm? Just hang around!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Poitan:<br>
Nice to meet you, traveler. Your timing is excellent! I just finished remodeling the workshop yesterday, so you're my first customer this season!<br>
What can I do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -2,13 +2,14 @@
Hmph, who are you? Why did you come here? Unless you have a case of Dwarven beer in that tiny saddle bag, I don't want to hear about it! Bahhh!<br>
All I ever hear is heat this, cool that, get to the bellows, it's too hot, don't drop it! Argh! Makes me want to puke! It SO does not pay to be the low man on the totem pole! I want to MAKE something!<br>
Armor, a blade... anything!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_02.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>
</body></html>

View File

@ -1,10 +1,13 @@
<html><body>Blacksmith Duning:<br>
Hello there! Welcome to the forge! It's so exciting here. So many adventurers stopping by! Why just yesterday, I had lunch with a bounty hunter, tea with an informer, and supper with a ruins explorer! The stories! The romances! The adventures! Better than day time theater!<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN="LEFT" ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Wilbert:<br>
What do we do here? Well, blacksmiths make things like armor, swords, polearms, axes, plows... But wait! There's more! Look, over there... Aden Castle stands, proudly disregarding the laws of gravity. And you know why? Engineering! It would have collapsed a long time ago if it hadn't been for the efforts of the Black Anvil craftsmen.<br>
And... This is just a rumor, but... They say that the giant golem the rebels used to evict the Human lords was made and sold by the Black Anvil. After all, who else could do something like that, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Morning:<br>
Welcome! If you have money, I have skills. What do you need, friend?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body> Blacksmith Hilda:<br>
Do you have any business for Hilda? Hmm? Hilda is busy, busy! She must make swords, plows, polearms, and armor! No visiting! Hilda doesn't visit, just works! Hilda doesn't mind watchers, but if someone talks while Hilda works, someone might get hit by hammer. In the face. Hard.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Vincenz:<br>
Welcome to the thunder forge! Hahaha! Noisy, isn't it?<br>
Do you have anything that you like to craft? We do it all here! Order whatever you like. A pendant? A sword? A war golem? It's all the same to us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Buryun:<br>
Welcome! Your timing is impeccable, I just finished up a three-day job repairing this here Claymore for Fred. A nasty piece of work that! What can I help you with?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -19,6 +19,7 @@ package handlers.bypasshandlers;
import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulExtractionWindow;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow;
/**
@ -29,6 +30,7 @@ public class EnsoulWindow implements IBypassHandler
private static final String[] COMMANDS =
{
"show_ensoul_window",
"show_extract_ensoul_window"
};
@Override
@ -39,8 +41,17 @@ public class EnsoulWindow implements IBypassHandler
return false;
}
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
if (command.toLowerCase().startsWith(COMMANDS[0])) // show_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // show_extract_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulExtractionWindow.STATIC_PACKET);
return true;
}
return false;
}
@Override

View File

@ -17,6 +17,8 @@
package com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
@ -122,6 +124,11 @@ public class EnsoulData implements IGameXmlReader
parseReFee(feeNode, fee, 2);
break;
}
case "remove":
{
parseRemove(feeNode, fee);
break;
}
}
});
}
@ -143,6 +150,14 @@ public class EnsoulData implements IGameXmlReader
fee.setResoul(index, new ItemHolder(id, count));
}
private void parseRemove(Node ensoulNode, EnsoulFee fee)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
final int id = parseInteger(attrs, "itemId");
final int count = parseInteger(attrs, "count");
fee.addRemovalFee(new ItemHolder(id, count));
}
private void parseOptions(Node ensoulNode)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
@ -177,6 +192,12 @@ public class EnsoulData implements IGameXmlReader
return fee != null ? fee.getResoul(index) : null;
}
public Collection<ItemHolder> getRemovalFee(CrystalType type)
{
final EnsoulFee fee = _ensoulFees.get(type);
return fee != null ? fee.getRemovalFee() : Collections.emptyList();
}
public EnsoulOption getOption(int id)
{
return _ensoulOptions.get(id);
@ -187,6 +208,24 @@ public class EnsoulData implements IGameXmlReader
return _ensoulStones.get(id);
}
public int getStone(int type, int optionId)
{
for (EnsoulStone stone : _ensoulStones.values())
{
if (stone.getSlotType() == type)
{
for (int id : stone.getOptions())
{
if (id == optionId)
{
return stone.getId();
}
}
}
}
return 0;
}
/**
* Gets the single instance of EnsoulData.
* @return single instance of EnsoulData

View File

@ -16,6 +16,9 @@
*/
package com.l2jmobius.gameserver.model.ensoul;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.type.CrystalType;
@ -28,6 +31,7 @@ public class EnsoulFee
private final ItemHolder[] _ensoulFee = new ItemHolder[3];
private final ItemHolder[] _resoulFees = new ItemHolder[3];
private final List<ItemHolder> _removalFee = new ArrayList<>();
public EnsoulFee(CrystalType type)
{
@ -49,6 +53,11 @@ public class EnsoulFee
_resoulFees[index] = item;
}
public void addRemovalFee(ItemHolder itemHolder)
{
_removalFee.add(itemHolder);
}
public ItemHolder getEnsoul(int index)
{
return _ensoulFee[index];
@ -58,4 +67,9 @@ public class EnsoulFee
{
return _resoulFees[index];
}
public List<ItemHolder> getRemovalFee()
{
return _removalFee;
}
}

View File

@ -2175,6 +2175,28 @@ public final class L2ItemInstance extends L2Object
}
}
public void removeSpecialAbility(int position, int type)
{
if (type == 1)
{
final EnsoulOption option = _ensoulOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulOptions.remove(position);
}
}
else if (type == 2)
{
final EnsoulOption option = _ensoulSpecialOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulSpecialOptions.remove(position);
}
}
}
public void clearSpecialAbilities()
{
_ensoulOptions.values().forEach(this::clearSpecialAbility);

View File

@ -68,6 +68,7 @@ import com.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchant
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import com.l2jmobius.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import com.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
@ -396,7 +397,7 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_SSO_AUTHN_TOKEN(0x125, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET_LOGIN(0x126, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_MEMO_INFO(0x127, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
REQUEST_RAIDBOSS_SPAWN_INFO(0x129, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
REQUEST_RAID_SERVER_INFO(0x12A, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
REQUEST_SHOW_AGIT_SIEGE_INFO(0x12B, null, ConnectionState.IN_GAME),

View File

@ -0,0 +1,118 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.ensoul;
import java.util.Collection;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.data.xml.impl.EnsoulData;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExEnSoulExtractionResult;
/**
* @author Mobius
*/
public class RequestTryEnSoulExtraction implements IClientIncomingPacket
{
private int _itemObjectId;
private int _type;
private int _position;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_itemObjectId = packet.readD();
_type = packet.readC();
_position = packet.readC() - 1;
return true;
}
@Override
public void run(L2GameClient client)
{
L2PcInstance player = client.getActiveChar();
if (player == null)
{
return;
}
final L2ItemInstance item = player.getInventory().getItemByObjectId(_itemObjectId);
if (item == null)
{
return;
}
EnsoulOption option = null;
if (_type == 1)
{
option = item.getSpecialAbility(_position);
}
if (_type == 2)
{
option = item.getAdditionalSpecialAbility(_position);
}
if (option == null)
{
return;
}
final Collection<ItemHolder> removalFee = EnsoulData.getInstance().getRemovalFee(item.getItem().getCrystalType());
if (removalFee.isEmpty())
{
return;
}
// Check if player has required items.
for (ItemHolder itemHolder : removalFee)
{
if (player.getInventory().getInventoryItemCount(itemHolder.getId(), -1) < itemHolder.getCount())
{
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
player.sendPacket(new ExEnSoulExtractionResult(false, item));
return;
}
}
// Take required items.
for (ItemHolder itemHolder : removalFee)
{
player.destroyItemByItemId("Rune Extract", itemHolder.getId(), itemHolder.getCount(), player, true);
}
// Remove equipped rune.
item.removeSpecialAbility(_position, _type);
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
// Add rune in player inventory.
final int runeId = EnsoulData.getInstance().getStone(_type, option.getId());
if (runeId > 0)
{
iu.addItem(player.addItem("Rune Extract", runeId, 1, player, true));
}
player.sendInventoryUpdate(iu);
player.sendPacket(new ExEnSoulExtractionResult(true, item));
}
}

View File

@ -0,0 +1,59 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExEnSoulExtractionResult implements IClientOutgoingPacket
{
private final boolean _success;
private final L2ItemInstance _item;
public ExEnSoulExtractionResult(boolean success, L2ItemInstance item)
{
_success = success;
_item = item;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_RESULT.writeId(packet);
packet.writeC(_success ? 1 : 0);
if (_success)
{
packet.writeC(_item.getSpecialAbilities().size());
for (EnsoulOption option : _item.getSpecialAbilities())
{
packet.writeD(option.getId());
}
packet.writeC(_item.getAdditionalSpecialAbilities().size());
for (EnsoulOption option : _item.getAdditionalSpecialAbilities())
{
packet.writeD(option.getId());
}
}
return true;
}
}

View File

@ -0,0 +1,40 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExShowEnsoulExtractionWindow implements IClientOutgoingPacket
{
public static final ExShowEnsoulExtractionWindow STATIC_PACKET = new ExShowEnsoulExtractionWindow();
private ExShowEnsoulExtractionWindow()
{
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_SHOW.writeId(packet);
return true;
}
}

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Pinter:<br>
Welcome. What brings you here, my friend? The name's Pinter. Yes, yes, I'm a Dwarf, and proud of it! My family has been blacksmiths in this town for three generations now! This place is in our blood!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Pushkin:<br>
Nice to meet you, wanderer!<br>
Rupio and I have come all the way from the Black Anvil Guild to set up shop here. We haven't been here long, but we're gonna turn this place into the best forge in Giran! What can we do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Kluto:<br>
Interested in seeing a genius at work, hmm? Just hang around!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Poitan:<br>
Nice to meet you, traveler. Your timing is excellent! I just finished remodeling the workshop yesterday, so you're my first customer this season!<br>
What can I do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -2,13 +2,14 @@
Hmph, who are you? Why did you come here? Unless you have a case of Dwarven beer in that tiny saddle bag, I don't want to hear about it! Bahhh!<br>
All I ever hear is heat this, cool that, get to the bellows, it's too hot, don't drop it! Argh! Makes me want to puke! It SO does not pay to be the low man on the totem pole! I want to MAKE something!<br>
Armor, a blade... anything!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_02.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>
</body></html>

View File

@ -1,10 +1,13 @@
<html><body>Blacksmith Duning:<br>
Hello there! Welcome to the forge! It's so exciting here. So many adventurers stopping by! Why just yesterday, I had lunch with a bounty hunter, tea with an informer, and supper with a ruins explorer! The stories! The romances! The adventures! Better than day time theater!<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN="LEFT" ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Wilbert:<br>
What do we do here? Well, blacksmiths make things like armor, swords, polearms, axes, plows... But wait! There's more! Look, over there... Aden Castle stands, proudly disregarding the laws of gravity. And you know why? Engineering! It would have collapsed a long time ago if it hadn't been for the efforts of the Black Anvil craftsmen.<br>
And... This is just a rumor, but... They say that the giant golem the rebels used to evict the Human lords was made and sold by the Black Anvil. After all, who else could do something like that, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Morning:<br>
Welcome! If you have money, I have skills. What do you need, friend?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body> Blacksmith Hilda:<br>
Do you have any business for Hilda? Hmm? Hilda is busy, busy! She must make swords, plows, polearms, and armor! No visiting! Hilda doesn't visit, just works! Hilda doesn't mind watchers, but if someone talks while Hilda works, someone might get hit by hammer. In the face. Hard.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Vincenz:<br>
Welcome to the thunder forge! Hahaha! Noisy, isn't it?<br>
Do you have anything that you like to craft? We do it all here! Order whatever you like. A pendant? A sword? A war golem? It's all the same to us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Buryun:<br>
Welcome! Your timing is impeccable, I just finished up a three-day job repairing this here Claymore for Fred. A nasty piece of work that! What can I help you with?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -19,6 +19,7 @@ package handlers.bypasshandlers;
import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulExtractionWindow;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow;
/**
@ -29,6 +30,7 @@ public class EnsoulWindow implements IBypassHandler
private static final String[] COMMANDS =
{
"show_ensoul_window",
"show_extract_ensoul_window"
};
@Override
@ -39,8 +41,17 @@ public class EnsoulWindow implements IBypassHandler
return false;
}
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
if (command.toLowerCase().startsWith(COMMANDS[0])) // show_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // show_extract_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulExtractionWindow.STATIC_PACKET);
return true;
}
return false;
}
@Override

View File

@ -17,6 +17,8 @@
package com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
@ -122,6 +124,11 @@ public class EnsoulData implements IGameXmlReader
parseReFee(feeNode, fee, 2);
break;
}
case "remove":
{
parseRemove(feeNode, fee);
break;
}
}
});
}
@ -143,6 +150,14 @@ public class EnsoulData implements IGameXmlReader
fee.setResoul(index, new ItemHolder(id, count));
}
private void parseRemove(Node ensoulNode, EnsoulFee fee)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
final int id = parseInteger(attrs, "itemId");
final int count = parseInteger(attrs, "count");
fee.addRemovalFee(new ItemHolder(id, count));
}
private void parseOptions(Node ensoulNode)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
@ -177,6 +192,12 @@ public class EnsoulData implements IGameXmlReader
return fee != null ? fee.getResoul(index) : null;
}
public Collection<ItemHolder> getRemovalFee(CrystalType type)
{
final EnsoulFee fee = _ensoulFees.get(type);
return fee != null ? fee.getRemovalFee() : Collections.emptyList();
}
public EnsoulOption getOption(int id)
{
return _ensoulOptions.get(id);
@ -187,6 +208,24 @@ public class EnsoulData implements IGameXmlReader
return _ensoulStones.get(id);
}
public int getStone(int type, int optionId)
{
for (EnsoulStone stone : _ensoulStones.values())
{
if (stone.getSlotType() == type)
{
for (int id : stone.getOptions())
{
if (id == optionId)
{
return stone.getId();
}
}
}
}
return 0;
}
/**
* Gets the single instance of EnsoulData.
* @return single instance of EnsoulData

View File

@ -16,6 +16,9 @@
*/
package com.l2jmobius.gameserver.model.ensoul;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.type.CrystalType;
@ -28,6 +31,7 @@ public class EnsoulFee
private final ItemHolder[] _ensoulFee = new ItemHolder[3];
private final ItemHolder[] _resoulFees = new ItemHolder[3];
private final List<ItemHolder> _removalFee = new ArrayList<>();
public EnsoulFee(CrystalType type)
{
@ -49,6 +53,11 @@ public class EnsoulFee
_resoulFees[index] = item;
}
public void addRemovalFee(ItemHolder itemHolder)
{
_removalFee.add(itemHolder);
}
public ItemHolder getEnsoul(int index)
{
return _ensoulFee[index];
@ -58,4 +67,9 @@ public class EnsoulFee
{
return _resoulFees[index];
}
public List<ItemHolder> getRemovalFee()
{
return _removalFee;
}
}

View File

@ -2175,6 +2175,28 @@ public final class L2ItemInstance extends L2Object
}
}
public void removeSpecialAbility(int position, int type)
{
if (type == 1)
{
final EnsoulOption option = _ensoulOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulOptions.remove(position);
}
}
else if (type == 2)
{
final EnsoulOption option = _ensoulSpecialOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulSpecialOptions.remove(position);
}
}
}
public void clearSpecialAbilities()
{
_ensoulOptions.values().forEach(this::clearSpecialAbility);

View File

@ -68,6 +68,7 @@ import com.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchant
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import com.l2jmobius.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import com.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
@ -396,7 +397,7 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_SSO_AUTHN_TOKEN(0x125, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET_LOGIN(0x126, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_MEMO_INFO(0x127, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
REQUEST_RAIDBOSS_SPAWN_INFO(0x129, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
REQUEST_RAID_SERVER_INFO(0x12A, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
REQUEST_SHOW_AGIT_SIEGE_INFO(0x12B, null, ConnectionState.IN_GAME),

View File

@ -0,0 +1,118 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.ensoul;
import java.util.Collection;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.data.xml.impl.EnsoulData;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExEnSoulExtractionResult;
/**
* @author Mobius
*/
public class RequestTryEnSoulExtraction implements IClientIncomingPacket
{
private int _itemObjectId;
private int _type;
private int _position;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_itemObjectId = packet.readD();
_type = packet.readC();
_position = packet.readC() - 1;
return true;
}
@Override
public void run(L2GameClient client)
{
L2PcInstance player = client.getActiveChar();
if (player == null)
{
return;
}
final L2ItemInstance item = player.getInventory().getItemByObjectId(_itemObjectId);
if (item == null)
{
return;
}
EnsoulOption option = null;
if (_type == 1)
{
option = item.getSpecialAbility(_position);
}
if (_type == 2)
{
option = item.getAdditionalSpecialAbility(_position);
}
if (option == null)
{
return;
}
final Collection<ItemHolder> removalFee = EnsoulData.getInstance().getRemovalFee(item.getItem().getCrystalType());
if (removalFee.isEmpty())
{
return;
}
// Check if player has required items.
for (ItemHolder itemHolder : removalFee)
{
if (player.getInventory().getInventoryItemCount(itemHolder.getId(), -1) < itemHolder.getCount())
{
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
player.sendPacket(new ExEnSoulExtractionResult(false, item));
return;
}
}
// Take required items.
for (ItemHolder itemHolder : removalFee)
{
player.destroyItemByItemId("Rune Extract", itemHolder.getId(), itemHolder.getCount(), player, true);
}
// Remove equipped rune.
item.removeSpecialAbility(_position, _type);
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
// Add rune in player inventory.
final int runeId = EnsoulData.getInstance().getStone(_type, option.getId());
if (runeId > 0)
{
iu.addItem(player.addItem("Rune Extract", runeId, 1, player, true));
}
player.sendInventoryUpdate(iu);
player.sendPacket(new ExEnSoulExtractionResult(true, item));
}
}

View File

@ -0,0 +1,59 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExEnSoulExtractionResult implements IClientOutgoingPacket
{
private final boolean _success;
private final L2ItemInstance _item;
public ExEnSoulExtractionResult(boolean success, L2ItemInstance item)
{
_success = success;
_item = item;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_RESULT.writeId(packet);
packet.writeC(_success ? 1 : 0);
if (_success)
{
packet.writeC(_item.getSpecialAbilities().size());
for (EnsoulOption option : _item.getSpecialAbilities())
{
packet.writeD(option.getId());
}
packet.writeC(_item.getAdditionalSpecialAbilities().size());
for (EnsoulOption option : _item.getAdditionalSpecialAbilities())
{
packet.writeD(option.getId());
}
}
return true;
}
}

View File

@ -0,0 +1,40 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExShowEnsoulExtractionWindow implements IClientOutgoingPacket
{
public static final ExShowEnsoulExtractionWindow STATIC_PACKET = new ExShowEnsoulExtractionWindow();
private ExShowEnsoulExtractionWindow()
{
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_SHOW.writeId(packet);
return true;
}
}

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Pinter:<br>
Welcome. What brings you here, my friend? The name's Pinter. Yes, yes, I'm a Dwarf, and proud of it! My family has been blacksmiths in this town for three generations now! This place is in our blood!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Pushkin:<br>
Nice to meet you, wanderer!<br>
Rupio and I have come all the way from the Black Anvil Guild to set up shop here. We haven't been here long, but we're gonna turn this place into the best forge in Giran! What can we do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Kluto:<br>
Interested in seeing a genius at work, hmm? Just hang around!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Poitan:<br>
Nice to meet you, traveler. Your timing is excellent! I just finished remodeling the workshop yesterday, so you're my first customer this season!<br>
What can I do for you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -2,13 +2,14 @@
Hmph, who are you? Why did you come here? Unless you have a case of Dwarven beer in that tiny saddle bag, I don't want to hear about it! Bahhh!<br>
All I ever hear is heat this, cool that, get to the bellows, it's too hot, don't drop it! Argh! Makes me want to puke! It SO does not pay to be the low man on the totem pole! I want to MAKE something!<br>
Armor, a blade... anything!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_02.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>
</body></html>

View File

@ -1,10 +1,13 @@
<html><body>Blacksmith Duning:<br>
Hello there! Welcome to the forge! It's so exciting here. So many adventurers stopping by! Why just yesterday, I had lunch with a bounty hunter, tea with an informer, and supper with a ruins explorer! The stories! The romances! The adventures! Better than day time theater!<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN="LEFT" ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Wilbert:<br>
What do we do here? Well, blacksmiths make things like armor, swords, polearms, axes, plows... But wait! There's more! Look, over there... Aden Castle stands, proudly disregarding the laws of gravity. And you know why? Engineering! It would have collapsed a long time ago if it hadn't been for the efforts of the Black Anvil craftsmen.<br>
And... This is just a rumor, but... They say that the giant golem the rebels used to evict the Human lords was made and sold by the Black Anvil. After all, who else could do something like that, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Morning:<br>
Welcome! If you have money, I have skills. What do you need, friend?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade set options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_01.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body> Blacksmith Hilda:<br>
Do you have any business for Hilda? Hmm? Hilda is busy, busy! She must make swords, plows, polearms, and armor! No visiting! Hilda doesn't visit, just works! Hilda doesn't mind watchers, but if someone talks while Hilda works, someone might get hit by hammer. In the face. Hard.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,13 +1,14 @@
<html><body>Blacksmith Vincenz:<br>
Welcome to the thunder forge! Hahaha! Noisy, isn't it?<br>
Do you have anything that you like to craft? We do it all here! Order whatever you like. A pendant? A sword? A war golem? It's all the same to us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,12 +1,13 @@
<html><body>Blacksmith Buryun:<br>
Welcome! Your timing is impeccable, I just finished up a three-day job repairing this here Claymore for Fred. A nasty piece of work that! What can I help you with?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">R-grade set option</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">Craft a dual weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/weapon_sa_01.htm">Bestow a Soul Crystal effect on a weapon</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">Craft an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">Seal armor and accessories</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">Change a Bound Item to an Unidentified Item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">Augment an item</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_ensoul_window">"I want to bestow a Soul Crystal effect on a weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_show_extract_ensoul_window"><font color="LEVEL">"I want to remove the Soul Crystal effect from my weapon." (Extract Soul Crystal)</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">"I want to augment an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_03.htm">"Show me the R-grade Set Options."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/duals_03.htm">"I want to craft a dual weapon."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/crafting_01.htm">"I want to craft an item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">"I want to seal armor and accessories."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/cursed_to_unidentified.htm">"I want to change a Bound Item to an Unidentified Item."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -19,6 +19,7 @@ package handlers.bypasshandlers;
import com.l2jmobius.gameserver.handler.IBypassHandler;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulExtractionWindow;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow;
/**
@ -29,6 +30,7 @@ public class EnsoulWindow implements IBypassHandler
private static final String[] COMMANDS =
{
"show_ensoul_window",
"show_extract_ensoul_window"
};
@Override
@ -39,8 +41,17 @@ public class EnsoulWindow implements IBypassHandler
return false;
}
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
if (command.toLowerCase().startsWith(COMMANDS[0])) // show_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
return true;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // show_extract_ensoul_window
{
activeChar.sendPacket(ExShowEnsoulExtractionWindow.STATIC_PACKET);
return true;
}
return false;
}
@Override

View File

@ -17,6 +17,8 @@
package com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
@ -122,6 +124,11 @@ public class EnsoulData implements IGameXmlReader
parseReFee(feeNode, fee, 2);
break;
}
case "remove":
{
parseRemove(feeNode, fee);
break;
}
}
});
}
@ -143,6 +150,14 @@ public class EnsoulData implements IGameXmlReader
fee.setResoul(index, new ItemHolder(id, count));
}
private void parseRemove(Node ensoulNode, EnsoulFee fee)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
final int id = parseInteger(attrs, "itemId");
final int count = parseInteger(attrs, "count");
fee.addRemovalFee(new ItemHolder(id, count));
}
private void parseOptions(Node ensoulNode)
{
final NamedNodeMap attrs = ensoulNode.getAttributes();
@ -177,6 +192,12 @@ public class EnsoulData implements IGameXmlReader
return fee != null ? fee.getResoul(index) : null;
}
public Collection<ItemHolder> getRemovalFee(CrystalType type)
{
final EnsoulFee fee = _ensoulFees.get(type);
return fee != null ? fee.getRemovalFee() : Collections.emptyList();
}
public EnsoulOption getOption(int id)
{
return _ensoulOptions.get(id);
@ -187,6 +208,24 @@ public class EnsoulData implements IGameXmlReader
return _ensoulStones.get(id);
}
public int getStone(int type, int optionId)
{
for (EnsoulStone stone : _ensoulStones.values())
{
if (stone.getSlotType() == type)
{
for (int id : stone.getOptions())
{
if (id == optionId)
{
return stone.getId();
}
}
}
}
return 0;
}
/**
* Gets the single instance of EnsoulData.
* @return single instance of EnsoulData

View File

@ -16,6 +16,9 @@
*/
package com.l2jmobius.gameserver.model.ensoul;
import java.util.ArrayList;
import java.util.List;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.type.CrystalType;
@ -28,6 +31,7 @@ public class EnsoulFee
private final ItemHolder[] _ensoulFee = new ItemHolder[3];
private final ItemHolder[] _resoulFees = new ItemHolder[3];
private final List<ItemHolder> _removalFee = new ArrayList<>();
public EnsoulFee(CrystalType type)
{
@ -49,6 +53,11 @@ public class EnsoulFee
_resoulFees[index] = item;
}
public void addRemovalFee(ItemHolder itemHolder)
{
_removalFee.add(itemHolder);
}
public ItemHolder getEnsoul(int index)
{
return _ensoulFee[index];
@ -58,4 +67,9 @@ public class EnsoulFee
{
return _resoulFees[index];
}
public List<ItemHolder> getRemovalFee()
{
return _removalFee;
}
}

View File

@ -2175,6 +2175,28 @@ public final class L2ItemInstance extends L2Object
}
}
public void removeSpecialAbility(int position, int type)
{
if (type == 1)
{
final EnsoulOption option = _ensoulOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulOptions.remove(position);
}
}
else if (type == 2)
{
final EnsoulOption option = _ensoulSpecialOptions.get(position);
if (option != null)
{
removeSpecialAbility(option);
_ensoulSpecialOptions.remove(position);
}
}
}
public void clearSpecialAbilities()
{
_ensoulOptions.values().forEach(this::clearSpecialAbility);

View File

@ -68,6 +68,7 @@ import com.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchant
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import com.l2jmobius.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import com.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
@ -396,7 +397,7 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_SSO_AUTHN_TOKEN(0x125, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET_LOGIN(0x126, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_MEMO_INFO(0x127, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
REQUEST_RAIDBOSS_SPAWN_INFO(0x129, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
REQUEST_RAID_SERVER_INFO(0x12A, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
REQUEST_SHOW_AGIT_SIEGE_INFO(0x12B, null, ConnectionState.IN_GAME),

View File

@ -0,0 +1,118 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.ensoul;
import java.util.Collection;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.data.xml.impl.EnsoulData;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jmobius.gameserver.network.serverpackets.ensoul.ExEnSoulExtractionResult;
/**
* @author Mobius
*/
public class RequestTryEnSoulExtraction implements IClientIncomingPacket
{
private int _itemObjectId;
private int _type;
private int _position;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_itemObjectId = packet.readD();
_type = packet.readC();
_position = packet.readC() - 1;
return true;
}
@Override
public void run(L2GameClient client)
{
L2PcInstance player = client.getActiveChar();
if (player == null)
{
return;
}
final L2ItemInstance item = player.getInventory().getItemByObjectId(_itemObjectId);
if (item == null)
{
return;
}
EnsoulOption option = null;
if (_type == 1)
{
option = item.getSpecialAbility(_position);
}
if (_type == 2)
{
option = item.getAdditionalSpecialAbility(_position);
}
if (option == null)
{
return;
}
final Collection<ItemHolder> removalFee = EnsoulData.getInstance().getRemovalFee(item.getItem().getCrystalType());
if (removalFee.isEmpty())
{
return;
}
// Check if player has required items.
for (ItemHolder itemHolder : removalFee)
{
if (player.getInventory().getInventoryItemCount(itemHolder.getId(), -1) < itemHolder.getCount())
{
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
player.sendPacket(new ExEnSoulExtractionResult(false, item));
return;
}
}
// Take required items.
for (ItemHolder itemHolder : removalFee)
{
player.destroyItemByItemId("Rune Extract", itemHolder.getId(), itemHolder.getCount(), player, true);
}
// Remove equipped rune.
item.removeSpecialAbility(_position, _type);
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(item);
// Add rune in player inventory.
final int runeId = EnsoulData.getInstance().getStone(_type, option.getId());
if (runeId > 0)
{
iu.addItem(player.addItem("Rune Extract", runeId, 1, player, true));
}
player.sendInventoryUpdate(iu);
player.sendPacket(new ExEnSoulExtractionResult(true, item));
}
}

View File

@ -0,0 +1,59 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExEnSoulExtractionResult implements IClientOutgoingPacket
{
private final boolean _success;
private final L2ItemInstance _item;
public ExEnSoulExtractionResult(boolean success, L2ItemInstance item)
{
_success = success;
_item = item;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_RESULT.writeId(packet);
packet.writeC(_success ? 1 : 0);
if (_success)
{
packet.writeC(_item.getSpecialAbilities().size());
for (EnsoulOption option : _item.getSpecialAbilities())
{
packet.writeD(option.getId());
}
packet.writeC(_item.getAdditionalSpecialAbilities().size());
for (EnsoulOption option : _item.getAdditionalSpecialAbilities())
{
packet.writeD(option.getId());
}
}
return true;
}
}

View File

@ -0,0 +1,40 @@
/*
* 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 com.l2jmobius.gameserver.network.serverpackets.ensoul;
import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
/**
* @author Mobius
*/
public class ExShowEnsoulExtractionWindow implements IClientOutgoingPacket
{
public static final ExShowEnsoulExtractionWindow STATIC_PACKET = new ExShowEnsoulExtractionWindow();
private ExShowEnsoulExtractionWindow()
{
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ENSOUL_EXTRACTION_SHOW.writeId(packet);
return true;
}
}