Secret Experience

Secret Experience (https://secretexperience.net/index.php)
-   [L2J] Dúvidas (https://secretexperience.net/forumdisplay.php?f=37)
-   -   [Interlude] [Phyton-Help] Quest Modify (https://secretexperience.net/showthread.php?t=19739)

NeferTiti 18-03-2010 07:09 PM

[Phyton-Help] Quest Modify
 
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

qn = "99940_SafeEnchant"

print "..............! - Importing Custom: Auto-Enchant- L2JTitaN.............."

QuestId    = 99940
QuestName  = "SafeEnchant"
QuestDesc  = "custom"

ENCHANT_CHECK    = 1

AMOUNT_OF_ENCHANT    = 1

PAYMENT_ITEM_ID    = 5556
PAYMENT_AMOUNT    = 7500

ENCHANT_NPC = 21
weapons = ['Sword','Blunt','Dagger','Bow','Pole','Etc','Fist','Dual Sword','Dual Fist','Big Sword','Big Blunt','Ancient','Crossbow','Rapier','Dual Dagger']
armors = ['Light','Heavy','Magic','Shield','Sigil']
jewels = ['None']
acceptableItemTypes = weapons+armors+jewels

class Quest (JQuest) :

  def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

  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

QUEST      = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

QUEST.addStartNpc(ENCHANT_NPC)
QUEST.addTalkId(ENCHANT_NPC)


Solution: ENCHANT_CHECK = 1
Change the 1 for your max enchant, bb!


Horários baseados na GMT -3. Agora são 11:51 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.