Jump to content
  • 0

How Do I Adapt The Script Of This Npc To L2Jsunrise?


Question

Posted

I'm having trouble adding npc the script settings "__init__.py" are not working on my l2jsunrise server! Can anyone adapt?

import sys
from l2r import Config
from l2r.gameserver.model.quest import State
from l2r.gameserver.model.quest import QuestState
from l2r.gameserver.model.quest.jython import QuestJython as JQuest

qn = "99940_SafeEnchant"

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

ENCHANT_CHECK = 1
AMOUNT_OF_ENCHANT = 5
PAYMENT_ITEM_ID = 57
PAYMENT_AMOUNT = 1
ENCHANT_NPC = 80007
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 = "Você não tem itens encantáveis equipados ou em sua mochila."
      htmltext = "<html><title>LNG Destruction</title><body><center> Para que seu item seja encantado é preciso que o mesmo esteja +0.<br>Por favor selecione um item a ser encantado na lista abaixo<br><br>" + htmltext + "</center></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>Houve algum problema relacionado a este Npc, reporte ao administrador.</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)

Does anyone know where I choose the safe enchant of L2jsurise? I do not think I want the weapons to be enchanted until +20

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..