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