import sys
from com.l2jfrozen.gameserver.datatables import SkillTable
from com.l2jfrozen.gameserver.model import L2Augmentation
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import InventoryUpdate
from com.l2jfrozen.gameserver.templates import L2Item
QUEST_NUMBER, QUEST_NAME, QUEST_DESCRIPTION = 920, "920_Augment", "Custom"
NPC = 31391
def validateItem(rHand):
if rHand == None:
return "augment-02.htm"
if rHand.isWear() or rHand.getItem().getItemGrade() < L2Item.CRYSTAL_C or rHand.getItem().getType2() != L2Item.TYPE2_WEAPON or rHand.isDestroyable() == False:
return "augment-03.htm"
if rHand.isAugmented():
return "augment-04.htm"
return "ok"
def augmentItem(player, priceId, priceCount, rHand, augmentId, skillId, skillLvl):
qs = player.getQuestState(QUEST_NAME)
if qs.getQuestItemsCount(priceId) < priceCount:
return "augment-05.htm"
qs.takeItems(priceId, priceCount)
player.disarmWeapons()
rHand.setAugmentation(L2Augmentation(rHand, augmentId, SkillTable.getInstance().getInfo(skillId, skillLvl), True))
iu = InventoryUpdate()
iu.addModifiedItem(rHand)
player.sendPacket(iu)
return "augment-06.htm"
class Quest (JQuest):
def __init__(self, id, name, descr): JQuest.__init__(self, id, name, descr)
def onTalk (self, npc, player):
return "augment-01.htm"
def onAdvEvent (self, event, npc, player):
if event == "no":
return "augment-01.htm"
rHand = player.getInventory().getPaperdollItemByL2ItemId(0x80)
htmltext = validateItem(rHand)
if htmltext == "ok":
if event == "A1":
htmltext = "augment-A1.htm"
elif event == "A2":
htmltext = "augment-A2.htm"
elif event == "A3":
htmltext = "augment-A3.htm"
elif event == "A4":
htmltext = "augment-A4.htm"
elif event == "A5":
htmltext = "augment-A5.htm"
elif event == "A6":
htmltext = "augment-A6.htm"
elif event == "A7":
htmltext = "augment-A7.htm"
elif event == "A8":
htmltext = "augment-A8.htm"
elif event == "A9":
htmltext = "augment-A9.htm"
elif event == "A10":
htmltext = "augment-A10.htm"
elif event == "A11":
htmltext = "augment-A11.htm"
elif event == "A12":
htmltext = "augment-A12.htm"
elif event == "A13":
htmltext = "augment-A13.htm"
elif event == "A14":
htmltext = "augment-A14.htm"
elif event == "A15":
htmltext = "augment-A15.htm"
elif event == "YES-A1":
# Параметры метода:
# 1) player - не менять
# 2) 57 - ид итема цены
# 3) 1000 - количество итемов
# 4) rHand - не менять
# 5) Ид аугмента
# 6) Ид скила этого аугмента
# 7) Уровень скила
htmltext = augmentItem(player, 57, 1000, rHand, 956632560, 3124, 10)
elif event == "YES-A2":
# Параметры метода:
# 1) player - не менять
# 2) 57 - ид итема цены
# 3) 1000 - количество итемов
# 4) rHand - не менять
# 5) Ид аугмента
# 6) Ид скила этого аугмента
# 7) Уровень скила
htmltext = augmentItem(player, 57, 1000, rHand, 956698096, 3128, 10)
elif event == "YES-A3":
# Параметры метода:
# 1) player - не менять
# 2) 57 - ид итема цены
# 3) 1000 - количество итемов
# 4) rHand - не менять
# 5) Ид аугмента
# 6) Ид скила этого аугмента
# 7) Уровень скила
htmltext = augmentItem(player, 57, 1000, rHand, 956501488, 3131, 10)
elif event == "YES-A4":
htmltext = augmentItem(player, 57, 1000, rHand, 957091312, 3132, 10)
elif event == "YES-A5":
htmltext = augmentItem(player, 57, 1000, rHand, 956435952, 3133, 10)
elif event == "YES-A6":
htmltext = augmentItem(player, 57, 1000, rHand, 957222384, 3135, 10)
elif event == "YES-A7":
htmltext = augmentItem(player, 57, 1000, rHand, 956763632, 3136, 10)
elif event == "YES-A8":
htmltext = augmentItem(player, 57, 1000, rHand, 955452912, 3139, 10)
elif event == "YES-A9":
htmltext = augmentItem(player, 57, 1000, rHand, 956042736, 3140, 10)
elif event == "YES-A10":
htmltext = augmentItem(player, 57, 1000, rHand, 962399728, 3141, 10)
elif event == "YES-A11":
htmltext = augmentItem(player, 57, 1000, rHand, 962858480, 3142, 10)
elif event == "YES-A12":
htmltext = augmentItem(player, 57, 1000, rHand, 957484528, 3146, 1)
elif event == "YES-A13":
htmltext = augmentItem(player, 57, 1000, rHand, 954666480, 3157, 1)
elif event == "YES-A14":
htmltext = augmentItem(player, 57, 1000, rHand, 958074352, 3191, 10)
elif event == "YES-A15":
htmltext = augmentItem(player, 57, 1000, rHand, 957156848, 3192, 10)
return htmltext
QUEST = Quest(QUEST_NUMBER, QUEST_NAME, QUEST_DESCRIPTION)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)