| _Dudu_1533 |
24-02-2009 11:00 PM |
NPC Hero
Boa noite.
Estou tentando criar um NPC, que quando o char visita, e seleciona a opção Tornar HERO, o NPC dê hero à ele.
Claro, se tiver o ítem requirido.
Veja meu código .py
Código:
print "QUEST ISHERO carregada!"
import sys
from net.l2emuproject.gameserver.model.quest import State
from net.l2emuproject.gameserver.model.quest import QuestState
from net.l2emuproject.gameserver.model.quest.jython import QuestJython as JQuest
from net.l2emuproject.gameserver.datatables import ItemTable
qn = "10000_ISHERO"
ITEM_ID = 21000
QuestId = 10000
QuestName = "ISHERO"
QuestDesc = "custom"
NPC=[40008]
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
htmltext = event
count=st.getQuestItemsCount(ITEM_ID)
if event == "1":
if count < 600 :
htmltext = "<html><head><title>ERRO</title></head><body>Voce precisa de 600 Tickets Donators para se tornar HERO</body></html>"
else:
st.getPlayer().setTarget(st.getPlayer())
st.takeItems(ITEM_ID,600)
st.getPlayer.setHero(true)
htmltext = "<html><head></head><body>Parabens, voce acaba de se tornar HERO! <br>Divirta-se!</body></html>"
st.setState(COMPLETED)
if event == "2":
st.getPlayer().setTarget(st.getPlayer())
st.getPlayer.setHero(false)
htmltext = "<html><head></head><body>Voce escolheu por tirar seu HERO<br>Agora devera fazer a QUEST ou doar R$300,00 pro servidor.</body></html>"
st.setState(COMPLETED)
if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
return htmltext
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body>Nao tenho nada para dizer.</body></html>"
st.setState(State.STARTED)
return htmltext
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
O HTML nem precisa postar, pois ele está certo.
Vale lembrar, que quando ligo o gameserver, ele carrega a quest perfeitamente, sem erro.
O que acham que pode ser?
Até mais!
|