Necesito ayuda con una "quest" en phyton.
Les comento un poco sobre lo qe necesito, yo necesito que el AutoEnchanter"Npc" en vez de dejarme una sola ves, una sola ves enchantar me deje encantar la cantidad de veces que yo necesite, Siempre sin pasar el Max Enchant, aqui les dejo la quest por si alguien puede ayudarme. Suerte.
PD: INTERLUDE!
Spoiler
Código:
#By L2JTitan -
#..........................
import sys
from net.sf.l2j import Config
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
def onEvent (self,event,st) :
if event == "choose_item" :
htmltext = ""
for Item in st.getPlayer().getInventory().getItems():
# given an item instance, get the item template to check what type it is
itemType = Item.getItem().getItemType().toString()
itemGrade = Item.getItem().getCrystalType()
if itemType in acceptableItemTypes and itemGrade > 0 :
htmltext += "<a action=\"bypass -h Quest 99940_SafeEnchant enchantItem_" + str(Item.getObjectId()) +"\">" + Item.getItem().getName() + "+" + str(Item.getEnchantLevel()) + "</a><br>"
if htmltext == "":
htmltext = "You have no enchantable items equiped or in your inventory."
htmltext = "<html><title>Secure Enchant!</title><body>Here you can add any enchant 100%.<br>Por Favor Selecione Um Item a ser Enchantado na Lista Abaixo:<br><br>" + htmltext + "</body></html>"
elif event.startswith("enchantItem_"):
# get the object id out of the event string
objId = int(event.replace("enchantItem_", ""))
# to avoid exploitation, check if the stored objectId still corresponds to an existing item
Item = st.getPlayer().getInventory().getItemByObjectId(objId )
if Item :
itemType = Item.getItem().getItemType().toString()
itemEnchant = Item.getEnchantLevel()
if st.getQuestItemsCount(PAYMENT_ITEM_ID) >= PAYMENT_AMOUNT :
if (itemType in weapons and itemEnchant >= ENCHANT_CHECK) or (itemType in armors and itemEnchant >= ENCHANT_CHECK) or (itemType in jewels and itemEnchant > ENCHANT_CHECK) :
htmltext = "notPlusZero.htm"
else :
Item.setEnchantLevel(itemEnchant+AMOUNT_OF_ENCHANT)
st.takeItems(PAYMENT_ITEM_ID, PAYMENT_AMOUNT)
htmltext = "Congratulations.htm"
else :
htmltext = "notEnoughItems.htm"
else :
htmltext = "Error.htm"
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
st = player.getQuestState(qn)
if not st : return htmltext
if npc.getNpcId() == ENCHANT_NPC :
htmltext = "Start.htm"
return htmltext