Ir para conteúdo
  • Cadastre-se
  • 0

Npc Enchante Itens


foiayoung

Pergunta

Entao galera , primeiramente Boa Madrugada !

 

Bom, eu queria saber se tem algum jeito se alterar no npc enchanta o local para que exemplo:

 

O player nao precisa estar com uma arma +0 para ser enchantada, podendo estar qualquer valor , Ex -> Eu estou com um Bow +20 Quero enachanta-lo +25 com o Npc sem precisar da arma estar +0 , seria possivel ? e onde alterar ?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts recomendados


Script dentro do Spoiler.

 

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 L2JTeon "

 

QuestId = 99940

QuestName = "SafeEnchant"

QuestDesc = "custom"

 

ENCHANT_CHECK = 1

 

AMOUNT_OF_ENCHANT = 10

 

PAYMENT_ITEM_ID = 57

PAYMENT_AMOUNT = 100000

 

ENCHANT_NPC = 40010

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 += ""

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 = ""

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)

Link para o comentário
Compartilhar em outros sites

Script dentro do Spoiler.

 

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 L2JTeon "

 

QuestId = 99940

QuestName = "SafeEnchant"

QuestDesc = "custom"

 

ENCHANT_CHECK = 1

 

AMOUNT_OF_ENCHANT = 10

 

PAYMENT_ITEM_ID = 57

PAYMENT_AMOUNT = 100000

 

ENCHANT_NPC = 40010

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 += ""

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)

 

 

 

Creio que ele funcione com um início e um fim.

Você deve designar a partir de quanto que é pra enchantar e quanto e o maximo.

Ex: arma +5 e vai direto pra +30 ..

Enchants picados ex, +2 +3 ou +4 ele não reconhecer.

Espero ter ajudado , qqer coisa so chamar

LINEAGE 2 LENDARIOS

 

www.l2-lendarios.com

 

 

Abrirei e fecharei o meu servidor 1000x se preciso mais nunca desistirei.

Link para o comentário
Compartilhar em outros sites

 

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 L2JTeon "

 

QuestId = 99940

QuestName = "SafeEnchant"

QuestDesc = "custom"

 

ENCHANT_CHECK = 1

 

AMOUNT_OF_ENCHANT = 10

 

PAYMENT_ITEM_ID = 57

PAYMENT_AMOUNT = 100000

 

ENCHANT_NPC = 40010

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 , 1 , 2 , 3 , 4 , 5 : <------ ACHO QUE SE VC MUDAR OS VALORES AKI TIPO ASSIM DA.

htmltext += ""

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)

 

 

Espero Que desse Jeito Funcione

Editado por Rayon
4qj0.jpg

Link para o comentário
Compartilhar em outros sites

Creio que ele funcione com um início e um fim.

Você deve designar a partir de quanto que é pra enchantar e quanto e o maximo.

Ex: arma +5 e vai direto pra +30 ..

Enchants picados ex, +2 +3 ou +4 ele não reconhecer.

Espero ter ajudado , qqer coisa so chamar

 

Então , mais em qual parte do Script eu edito ?

 

 

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 L2JTeon "

 

QuestId = 99940

QuestName = "SafeEnchant"

QuestDesc = "custom"

 

ENCHANT_CHECK = 1

 

AMOUNT_OF_ENCHANT = 10

 

PAYMENT_ITEM_ID = 57

PAYMENT_AMOUNT = 100000

 

ENCHANT_NPC = 40010

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 , 1 , 2 , 3 , 4 , 5 : <------ ACHO QUE SE VC MUDAR OS VALORES AKI TIPO ASSIM DA.

htmltext += ""

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)

 

 

Espero Que desse Jeito Funcione

 

Vou testar e posto o resultado, obrigado.

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...



×
×
  • Criar Novo...

Important Information

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.