waiting for the Gmshop Guide :D
Printable View
waiting for the Gmshop Guide :D
Guys I have a big problem, in my titanium creation server pack, there was a npc buffer, I just try to create 1, following the guide.. but I dont work how I thinked :P and npc cannot spawn... But now I want back my old npc buffer? In game there are, but not buff me says "I have not task for u" Why?
I have lost buffer? O_O
Help me, im newbie.. Help me thanks
I'm with Interlude server files... in the 'Game Server Console' it don't load the quest 9999_NPCBuffer - not in the quests or custom? I've read the whole thread and didn't get the right answer to fix it... help I guess :? :}
Edit1:
I get the NPC spawned in server and says that 'They are no tasks for you right now.' I really need to load the quests... :S
Hi
About npcBuffer Can i changer buff for classid?
examp.i go npc cliking in buff me but i want it give me a subclass cumulative skkls
where do i have to changer Rows of texts for it work ?
In html ? in init_py ?
Thx a lot
Ok I get the buffer working but I had to delete the line:
" st.getPlayer().restoreHPMP() "
If I leave them in the __init__.py the buffer says "Script error" after I get the buff. When I delete the line the buffer is working properly but I rly need to auto-restore the MP of the player... HOW? I'm on Interlude server:
L2J Server Version: 1083
L2J Datapack Version: 3281
What line I have to put before "return x.htm" to make the buffer restore the MP of a player???
I researched about this... i decompiled a java class and i found a function replacement for restoreHPMP.
If you want fix this error, in the .py file you must replace restoreHPMP() for increaselevel().
With this your problem is fixed. No, this fix doesn't level up the players, simply restore HP, MP and CP, but i don't find something best.
Sorry for mi English
Firts sorry for my English.! Tanks.
I make a npcbuffer, have got a npc in database and have got the folders and files... But when i run the gameserver he display...
Initializing QuestManager
importing quests ...
importing quests: 241: Possessor Of A Precious Soul - 1
failed to import quest : 9999_NPCBuffer
... done
That cause problem in game, i click in the npc and run the html but when i click the button nothing happen :S
Anywone know what happent to my quest? ....
I have this config:
But how to add other buffer ?Quote:
NPC=[40006]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "custom"
InitialHtml = "1.htm"
NPC=[40006,40007,40008] ?
or
NPC=[40006;40007;40008] ?
I try this dont work for due or more buffers =/
how to make multi buffers ? thx
Hello for all. I combine fabrrp buffer code with antorni posted code and i thin all bugs go off :) here the code (for my l2jfree server working 100% without client moding):
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j import L2DatabaseFactory
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 = "9999_NPCBuffer"
NPC=[10600]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "quests"
InitialHtml = "1.htm"
print "importing custom: fabrrp's NPCBuffer"
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(ADENA_ID)
if count < 5000 or st.getPlayer().getLevel() < 0 :
htmltext = "<html><head><body>You dont have enought Adena.</body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
#Acumen
if event == "2":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(304,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body>I have nothing to say to you</body></html>"
st.setState(STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)
QUEST.setInitialState(CREATED)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
When i have i litle time i write code with comments
Same here, using ONEO server (INTERLUDE ). Tried several ways of coding the NPC however I believe either some of the syntax has changed for the function, or the quest isnt correctly imported.
The NPC buffer is spawned, and gets the correct HTML file in the beginning but obviously the quest isnt initialized properly because during gameserver start a message telling me that the quest was initialized incorrectly or wasnt able to be loaded. If anyone can shed some light, Thanks!
im try using the buffer for CT1 on l2jfree but i take errors in loeading __init__.py,anyone know one buffer complete with warcry dance song etc... for l2j-free CT1? please thanks.
Same here. I tryed hard enough for like 8 hours in front of the computer trying to figure out if I missed any comma or some small details on the htmls or __init__.py file on my CT1 server but no luck. I tested the same npc on my Interlude server and worked fine.
EDIT: I found a way to include the __init__.py file for loading but now I get tones of errors regarding loading that F****** file. No matter how much I try it simply creates stupid errors from syntax errors to unknown errors that even server loader cant report correctly.
Any idea on how to put this one working? I made a single buff script, used my own .py files and TONES of shared ones but none works.
This is farrp's code:
The error I get from loaderQuote:
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j import L2DatabaseFactory
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 = "9999_NPCBuffer"
NPC=[40006]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "quests"
InitialHtml = "1.htm"
print "importing custom: 9999_NPCBuffer"
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(ADENA_ID)
if count < 5000 or st.getPlayer().getLevel() < 0 :
htmltext = "<html><head><body>You dont have enought Adena.</body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
#Acumen
if event == "2":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9900,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Agility
if event == "3":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9901,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Berserker Spirit
if event == "4":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9902,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Bless Shield
if event == "5":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9903,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Blessed Body
if event == "6":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9904,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Blessed Soul
if event == "7":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9905,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Concentration
if event == "8":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9906,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Death Whisper
if event == "9":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9907,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Empower
if event == "10":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9908,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Focus
if event == "11":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9909,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Guidance
if event == "12":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9910,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Haste
if event == "13":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9911,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Magic Barrier
if event == "14":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9912,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Mental Shield
if event == "15":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9913,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Might
if event == "16":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9914,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Resist Shock
if event == "17":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9915,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Shield
if event == "18":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9916,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Vampiric Rage
if event == "19":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9917,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Aqua Guard
if event == "30":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9918,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Concentration
if event == "31":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9919,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Earth Guard
if event == "32":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9920,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Fire
if event == "33":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9921,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Fury
if event == "34":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9922,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Inspiration
if event == "35":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9923,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Light
if event == "36":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9924,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of the Mystic
if event == "37":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9925,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of Protection
if event == "38":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9926,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Siren's Dance
if event == "39":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9927,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of the Vampire
if event == "40":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9928,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Dance of the Warrior
if event == "41":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9929,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Champion
if event == "50":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9930,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Earth
if event == "51":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9931,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Flame Guard
if event == "52":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9932,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Hunter
if event == "53":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9933,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Invocation
if event == "54":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9934,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Life
if event == "55":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9935,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Meditation
if event == "56":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9936,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Renewal
if event == "57":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9937,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Storm Guard
if event == "58":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9938,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Vengeance
if event == "59":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9939,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Vitality
if event == "60":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9940,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Warding
if event == "61":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9941,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Water
if event == "62":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9942,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Song of Wind
if event == "63":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9943,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Greater Might
if event == "64":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9944,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Greater Shield
if event == "65":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9945,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Chant of Victory
if event == "66":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9946,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Prophecy of Fire
if event == "67":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9947,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Prophecy of Water
if event == "68":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9948,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Prophecy of Wind
if event == "69":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9949,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Cancellation
if event == "70":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Wind Walk
if event == "71":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9951,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body>I have nothing to say to you</body></html>"
st.setState(STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)
QUEST.setInitialState(CREATED)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Quote:
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 464, in ?
TypeError: net.sf.l2j.gameserver.model.quest.State(): expected 0 args; got 2
I have strange problem.
NPC Is loaded and giving a buff but......
WTF??? :eek:
http://img338.imageshack.us/img338/5...0005wh2.th.jpg
or
http://img153.imageshack.us/img153/4...0006ok5.th.jpg
http://img153.imageshack.us/img153/6...0007ye5.th.jpg
Any1 know wtf I made wrong? :eek:
Server: Interlude Branch - Clean Compile, no extras Rev 2741
My files:
gameserver\data\jscript\custom\__init__.py
gameserver\data\jscript\custom\7098_NPCBuffer\__init__.pyQuote:
__all__ = [
'3995_echo',
'7000_HeroItems',
'6050_KetraOrcSupport',
'6051_VarkaSilenosSupport',
'7098_NPCBuffer', //THIS IS MY NPC
]
print ""
print "importing custom data ..."
from data.jscript.custom import *
print "... done"
print ""
Quote:
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j.gameserver.datatables import ItemTable
from net.sf.l2j import L2DatabaseFactory
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 = "7098_NPCBuffer"
NPC=[7098]
ADENA_ID=57
QuestId = 7098
QuestName = "NPCBuffer"
QuestDesc = "custom"
InitialHtml = "1.htm"
print "importing custom: 7098: NPCBuffer"
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(ADENA_ID)
if count < 1500 or st.getPlayer().getLevel() < 5 :
htmltext = "<html><head><body>Nie posiadasz wystarczajacej ilosci Adeny, lub<br> masz za maly lvl. Musisz posiadac conajmniej 5 lvl.</body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
#Wind Walk
if event == "7":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1204,2),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Decrease Weight
if event == "8":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1087,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Shield
if event == "9":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1040,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Might
if event == "10":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1068,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Mental Shield
if event == "11":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1035,4),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Bless the Body
if event == "12":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1045,6),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Bless the Soul
if event == "13":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1048,6),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Magic Barrier
if event == "14":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1036,2),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Resist Shock
if event == "15":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1259,4),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Concentration
if event == "16":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1078,6),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Berserker Spirit
if event == "17":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1062,2),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Agility
if event == "18":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1257,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Vampiric Rage
if event == "19":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1268,4),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Acumen
if event == "20":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1085,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Empower
if event == "21":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1059,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Haste
if event == "22":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1086,2),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Guidance
if event == "23":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1240,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Focus
if event == "24":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1077,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Death Whisper
if event == "25":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1242,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
if event == "26":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(271,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "27":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(272,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "28":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(273,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "29":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(274,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "30":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(275,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "31":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(276,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "32":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(277,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "33":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(307,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "34":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(309,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "35":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(310,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "36":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(311,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "37":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(366,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "38":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(365,1),False,False)
st.getPlayer().restoreHPMP()
return "2.htm"
if event == "39":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(264,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "40":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(265,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "41":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(266,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "42":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(267,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "43":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(268,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "44":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(269,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "45":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(270,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "46":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(304,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "47":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(305,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "48":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(306,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "49":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(308,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "50":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(363,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "51":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(364,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
if event == "52":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(349,1),False,False)
st.getPlayer().restoreHPMP()
return "3.htm"
st.setState(COMPLETED)
#Chant of Battle
if event == "53":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1007,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Shielding
if event == "54":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1009,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Fire
if event == "55":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1006,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Flame
if event == "56":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1002,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of life
if event == "57":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1229,18),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Fury
if event == "58":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1251,2),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Evasion
if event == "59":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1252,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Rage
if event == "60":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1253,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Earth Chant
if event == "61":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1391,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Vampire
if event == "62":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1310,4),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Eagle
if event == "63":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1309,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Predator
if event == "64":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1308,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Spirit
if event == "65":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1362,1),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#Chant of Victory
if event == "66":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1363,1),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#War Chant
if event == "67":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1390,3),False,False)
st.getPlayer().restoreHPMP()
return "4.htm"
st.setState(COMPLETED)
#HPHEAL
if event == "68":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9997,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#MPHEAL
if event == "69":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9998,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#CPHEAL
if event == "70":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9999,1),False,False)
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
#Wild Magic
if event == "71":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1303,2),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Greater Might
if event == "73":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1388,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#Greater Shield
if event == "74":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1389,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#ProphecyOfWater
if event == "75":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1355,1),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#ProphecyOfFire
if event == "76":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1356,1),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#ProphecyOfWind
if event == "77":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1357,1),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#ArcanaProtection
if event == "78":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1354,1),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#DivineProtection
if event == "79":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1353,1),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#HolyResistance
if event == "80":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1392,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
#UnholyResist
if event == "81":
st.takeItems(ADENA_ID,1500)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1393,3),False,False)
st.getPlayer().restoreHPMP()
return "5.htm"
st.setState(COMPLETED)
if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body>Sorry %playername% I cannot help you right now.</body></html>"
st.setState(STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)
QUEST.setInitialState(CREATED)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)