Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

L2J [GUIDE] Make your own npc buffer!!

Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
Hi everyone another time, today is a good day, I hope you enjoy this guide.
Today we are going to learn how to make our own NPC Buffer, you can add the buff you want, superhaste, chants, dances, hero buffs, noblesse buffs, songs, hierophant buffs, souls, etc... etc...

I have noted that all people is allways searching for a NPC Buffer, but the true is that you will never find a perfect one so that's the reason I'm making this guide for you.

First of all you need to be patient, this is not an easy guide, but if you follow everything I type, I know you will understand and you will get the skill to create your own

First of all, If you have an HTML editor like dreamweaver, use it, if not, use notepad, if you don't like notepad, download the notepad++ Is pretty cool, Don't know where to get it??

If you want to make your own new NPC follow this little guide below, If you want to use an existing one just skip this step, but you have to enter the game and shift click the npc you wanna edit and see it's ID, then write it on a paper or in a place you will remember

STEP ONE:. CREATING THE NEW NPC

Enter Lineage II game, find a NPC you like, I don't know which, you can chose a granite golem. Antharas, Valakas, Baium, Gremlin, etc... etc.., in a few words just chose your favirite NPC template

Press the Shift key and click on it, there you will see the NPC ID like in image
antorni - [GUIDE] Make your own npc buffer!! - RaGEZONE Forums


Enter your MySQL Database and create a new row there you put in the column ID the number you want but make sure is not in use, try using some number like 99999
The other columns just copy them from the original NPC, but make sure the aggro colunm is 0 and the type must be "L2Npc"
In name and tittle just put what you want
In serversidename and serversidetittle put 1
Save your database and that's all

STEP TWO:. EDITING YOUR NPC HTML (THE TEXT IT SAYS)

Open your HTML editor or the notepad, and paste this code

Code:
<html>
<body>
<center>
<tr><td><font color="FF44FF">L2 Antorni Buffer</font></tr></td><br>
<br>
Welcome
<br>
I can buff you
<br>
<button value="Buff Me please" action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
</body>
</html>
go to menu file/save as..
name it as "ID of your npc".html for example 1234.html
Don't forget the .html, is very important
YOU MUST SAVE THE FILE INSITDE THE FOLDER \GAMESERVER\DATA\HTML\DEFAULT\

Explanation of the code,
"<html>" & "</html>" are telling us that is an html document
"<body>" & "</body>" are telling us that everything inside them is the content of the html document
"<center>" tell us that the next line will be centered
"<tr><td>" & "</tr></td>" tell us that will create a table
"<font color="FF44FF">" & "</font>" defines the color of the text inside them (color must be in hex format)
"<br>" means a line jump
"<button value="Buff Me please" will create a buton with the text buff me please action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" this is the action of the button, in this case is get the quest with the name 9999_NPCBuffer width=75 width of the button height=21 height of the button back="L2UI_ch3.Btn1_normalOn" this is tha background of the button fore="L2UI_ch3.Btn1_normal" this is the foreground of the button>"
Note that the background and the foreground are clientside images

so so sorry this guide is incomplete cause I click on submit post instead of preview, I will finish soon just sorry for the mistake LoL

STEP THREE:. CREATING THE BUFF FILES


Because of in our html we type 9999_NPCBuffer, we have to create a folder with this name in the folder gameserver\data\jscript\custom, if you want other name just change it on your HTML file and then create a folder with the same name

Go to your new folder, in this case gameserver\data\jscript\custom\9999_NPCBuffer\

There create a file with a name "__init__.py" if you don't know how, just open your notepad and click save as and you paste it, don't forget that must have the .py, without that, that's just a simple txt file

Open your __init__.py there is wher you will put the buffs, I will just explain how to do it, I will not do all the buffer, that will be your homework

Inside the __init__.py you will paste this code
Code:
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver             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
[COLOR=darkred]THE LINES AVOVE ARE JUST IMPORTING SOME DATA[/COLOR]
NPC=[1234]                 [COLOR=darkred]HERE YOU PUT THE ID OF YOUR NPC[/COLOR]
ADENA_ID=57               [COLOR=darkred]TIS IS JUST FOR TYPE ADENA_ID INSTEAD OF 57[/COLOR]
MIN_LEVEL=40              [COLOR=darkred]THIS IS THE MINIMUM LEVEL TO GET BUFFED[/COLOR]
QuestId     = 9999          [COLOR=darkred]THIS IS THE ID OF THE QUEST[/COLOR]
QuestName   = "NPCBuffer" [COLOR=darkred]THE NAME OF THE QUEST[/COLOR]
QuestDesc   = "custom"      [COLOR=darkred]THIS IS THE FOLDER OF THE QUEST[/COLOR]
InitialHtml = "1.htm"          [COLOR=darkred]THIS IS THE FILE OF YOUR NPC THA WILL START[/COLOR]
print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + QuestName,
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)[COLOR=darkred]HERE THE NPC GET YOUR ADENA[/COLOR]
  level=st.getPlayer().getLevel()                [COLOR=darkred]HERE THE NPC GET YOUR LEVEL[/COLOR]
  if count < 200000 and level  < MIN_LEVEL :
   htmltext = "<html><head><body>You dont have enough adena or your level is lower than st.getPlayer().getLevel().</body></html>"
  else:
   st.getPlayer().setTarget(st.getPlayer())
I will explain this just a little cause is a lot of code, just remember things in red have to be deleted to make the code works,
This code is very easy, what it do is just check if you have adena and the minimum level

After that code you have to put the buffs in this format
Code:
if event == "[COLOR=darkred]2[/COLOR]":    [COLOR=darkred]NEED TO START IN 2 AND MUST BE RAISING 1 EACH TIME[/COLOR]
st.takeItems(ADENA_ID,[COLOR=darkred]15000[/COLOR])   [COLOR=darkred]CHANGE IT FOR THE PRIZE YOU WANT[/COLOR]
st.getPlayer().useMagic(SkillTable.getInstance().getInfo([COLOR=darkred]4344[/COLOR],[COLOR=seagreen]3[/COLOR]),False,False) [COLOR=darkred]CHANGE IT FOR THE SKILL ID YOU WANT TO USE[/COLOR], [COLOR=seagreen]CHANGE IT FOR THE LEVEL OF THE SKILL[/COLOR]
st.getPlayer().restoreHPMP()  [COLOR=darkred]HERE IS JUST RESTORING PLAYERS MP CAUSE NPC USES PLAYER MP[/COLOR]
return "1.htm"   [COLOR=darkred]HERE YOU RETURN TO THE CHOSE BUFFS SCREEN [/COLOR]
st.setState(COMPLETED)
Note: for each buff you have to put this code, just change the ID of the buff, the level and the prize.. and of course the event number (if event == "2")

In that code you are chosing buff and prize, after that code you have to paste this

Code:
   if htmltext != event:
    st.setState(COMPLETED)
    st.exitQuest(1)
  return htmltext
 
        def onTalk (self,npc,st):
    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)
 STARTED.addTalkId(npcId)
print "...done"

I will not explain that code, just paste it, there is nothing interesting

Note: Remember the event number of each skill, or better write them in some paper

Now once you have created the __int__.py you have to create a file with name 1.html that will be the buffer selection screen

Inside the 1.html you just have to paste this code (I will explain this one)

Code:
<html>
<body>
<center>
<font color="FF40FF">L2 Antorni Buffer</font><br>
<br>
<font color="00FFBB">Buff List:</font><br>
<tr><td></td><td><button value="[COLOR=darkred]HERE PUT THE TEXT OF THE BUTTON, IRECOMMEND YOU TO PUT THE NAME OF THE BUFF JEJE[/COLOR]" action="bypass -h Quest 9999_NPCBuffer [COLOR=darkgreen]2"[/COLOR] [COLOR=darkgreen]THIS NUMBER IS VERY IMPORTANT, IS NE NUMBER OF THE EVENT THAT WILL CALL FROM __int__.py [/COLOR]width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
</center>
</body>
</html>
Pay a lot of attemption to this code and remember the number after 999_NPCBuffer is very important, to call the correct event, to add another buff just add this line to the code
Code:
<tr><td></td><td><button value="Heal" action="bypass -h Quest 9999_NPCBuffer 2" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>

Just change the number of event and the button value

For the last step you just need to add this line of code inside the __int__.py that is inside the folder gameserver\data\jscript\custom\
Code:
'9999_NPCBuffer',

STEP FOUR:. TESTING THE BUFFER

Enter the game and now type //spawn "ID of your NPC"
if your NPC Buffer works correctly then you did it well, if not, just send a reply and tell me your problem, I will try to fix it.

Thanks to read this post
Cya in the next tutorial i think will be [GUIDE] Making your custom GMshop
 
Last edited:
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
Any feedback?
Is a good guide?
Is a bad guide?
Is an horrible guide?
Or maybe you have stopped reading this guide at the half?
Comment something jejeje
 
Newbie Spellweaver
Joined
Feb 19, 2007
Messages
19
Reaction score
0
hey antorni hola ^^ well i think is better english here i got question do you know how to make npc rent strider i allready set allowrent True and nothing happend or the ip id of npc who rent strider i located the id shop of the guy supposse to rent and he dosnt
 
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
well i have never used the allow rent pet, but if you say don't work, let me try to program an npc that can rent a pet, I just need to know the prize and the time the pet will be with you
 
Newbie Spellweaver
Joined
Feb 19, 2007
Messages
19
Reaction score
0
thx you im planning to make an rentnpc that rent only strider and will be rentting 15 min 400 000 adena 30 min 700 000 if you can do that i will thx you all my life
 
Newbie Spellweaver
Joined
Feb 19, 2007
Messages
19
Reaction score
0
if you want my msn i think ill be better...
 
Newbie Spellweaver
Joined
Nov 26, 2005
Messages
27
Reaction score
0
I used it but when i load my server is doesnt say importing quest 9999 NPC Buffer and it doesnt work in game it says i have no taks for you :S can someone help me plz
 
Skilled Illusionist
Joined
Dec 9, 2006
Messages
390
Reaction score
0
Wow man u have lot free time to make guides like that!!!

I like U!! :p
 
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
so sorry for the late time but, I didn't have chance to reply look at the guide
it says you must add this in the __int__.py
'9999_NPCBuffer',

that line must be added in the server\gameserver\data\jscript\quest\
 
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
paste your file sources, including the __int__.py's so I can help you better
 
Newbie Spellweaver
Joined
Feb 19, 2007
Messages
19
Reaction score
0
hey antorni sup did you read your ragezone email?
 
Newbie Spellweaver
Joined
Nov 26, 2005
Messages
27
Reaction score
0
the _int_.py from quests
Code:
__all__ = [
'1_LettersOfLove1',
'2_WhatWomenWant1',
'3_ReleaseDarkelfElder1',
'4_LongLiveLordOfFlame',
'5_MinersFavor',
'6_StepIntoTheFuture',
'7_ATripBegins',
'8_AnAdventureBegins',
'9_IntoTheCityOfHumans',
'10_IntoTheWorld',
'13_ParcelDelivery',
'14_WhereaboutsOfTheArchaeologist',
'15_SweetWhisper',
'16_TheComingDarkness',
'19_GoToThePastureland',
'31_SecretBuriedInTheSwamp',
'32_AnObviousLie',
'33_MakeAPairOfDressShoes',
'34_InSearchOfClothes',
'35_FindGlitteringJewelry',
'36_MakeASewingKit',
'37_PleaseMakeMeFormalWear',
'39_RedEyedInvaders',
'42_HelpTheUncle',
'43_HelpTheSister',
'44_HelpTheSon',
'45_ToTalkingIsland',
'46_OnceMoreInTheArmsOfTheMotherTree',
'47_IntoTheDarkForest',
'48_ToTheImmortalPlateau',
'49_TheRoadHome',
'90_SagaOfTheStormScreamer',
'101_SwordOfSolidarityQuest',
'102_FungusFever',
'103_SpiritOfCraftsman',
'104_SpiritOfMirror',
'105_SkirmishWithOrcs',
'106_ForgottenTruth',
'107_ShowNoMercy',
'108_DiamondGambit',
'122_OminousNews',
'151_SaveMySister1',
'152_ShardsOfGolem',
'153_WharfOldtimersFavor',
'154_SacrificeToSea',
'155_FindSirWindawood',
'156_MillenniumLove',
'157_RecoverSmuggled',
'158_SeedOfEvil',
'159_ProtectHeadsprings',
'160_NerupasFavor',
'161_FruitsOfMothertree',
'162_CurseOfFortress',
'163_LegacyOfPoet',
'164_BloodFiend',
'165_WildHunt',
'166_DarkMass',
'167_DwarvenKinship',
'168_DeliverSupplies',
'169_NightmareChildren',
'170_DangerousAllure',
'171_ActsOfEvil',
#'188_ToLeadAndBeLed',
'211_TrialOfChallenger',
'212_TrialOfDuty',
'213_TrialOfSeeker',
'214_TrialOfScholar',
'215_TrialOfPilgrim',
'216_TrialOfGuildsman',
'217_TestimonyOfTrust',
'218_TestimonyOfLife',
'219_TestimonyOfFate',
'220_TestimonyOfGlory',
'221_TestimonyOfProsperity',
'222_TestOfDuelist',
'223_TestOfChampion',
'224_TestOfSagittarius',
'225_TestOfSearcher',
'226_TestOfHealer',
'227_TestOfReformer',
'228_TestOfMagus',
'229_TestOfWitchcraft',
'230_TestOfSummoner',
'231_TestOfMaestro',
'232_TestOfLord',
'233_TestOfWarspirit',
'234_FatesWhisper',
'235_MimirsElixir',
'241_PossessorOfAPreciousSoul_1',
'242_PossessorOfAPreciousSoul_2',
'246_PossessorOfAPreciousSoul_3',
'247_PossessorOfAPreciousSoul_4',
'257_GuardIsBusy1',
'258_BringWolfPelt1',
'259_RanchersPlea',
'260_HuntForOrcs1',
'261_DreamOfMoneylender1',
'262_BringMeMushrooms1',
'263_KillAllSylphs1',
'264_KeenClaws',
'265_ChainsOfSlavery',
'266_PleaOfPixies',
'267_WrathOfVerdure',
'271_ProofOfValor',
'272_WrathOfAncestors',
'273_InvadersOfHolyland',
'274_AgainstWolfMen',
'275_BlackWingedSpies',
'276_HestuiTotem',
'277_GatekeepersOffering',
'291_RedBonnetsRevenge',
'292_CrushBrigands',
'293_HiddenVein',
'294_CovertBusiness',
'295_DreamsOfFlight',
'296_SilkOfTarantula',
'297_GatekeepersFavor',
'298_LizardmensConspiracy',
'299_GatherIngredientsForPie',
'300_HuntingLetoLizardman',
'303_CollectArrowheads',
'306_CrystalOfFireice',
'313_CollectSpores',
'316_DestroyPlaguebringers',
'317_CatchTheWind',
'319_ScentOfDeath',
'320_BonesTellFuture',
'324_SweetestVenom',
'325_GrimCollector',
'326_VanquishRemnants',
'327_ReclaimTheLand',
'328_SenseForBusiness',
'329_CuriosityOfDwarf',
'330_AdeptOfTaste',
'331_ArrowForVengeance',
'333_BlackLionHunt',
'334_TheWishingPotion',
'336_CoinOfMagic',
'338_AlligatorHunter',
'341_HuntingForWildBeasts',
'343_UnderTheShadowOfTheIvoryTower',
'344_1000YearsEndofLamentation',
'345_MethodToRaiseTheDead',
'347_GoGetTheCalculator',
'348_ArrogantSearch',
'350_EnhanceYourWeapon',
'351_BlackSwan',
'352_HelpRoodRaiseANewPet',
'353_PowerOfDarkness',
'354_ConquestOfAlligatorIsland',
'355_FamilyHonor',
'356_DigUpTheSeaOfSpores',
'357_WarehouseKeepersAmbition',
'358_IllegitimateChildOfAGoddess',
'359_ForSleeplessDeadmen',
'360_PlunderTheirSupplies',
'362_BardsMandolin',
'363_SorrowfulSoundofFlute',
'364_JovialAccordion',
'365_DevilsLegacy',
'366_SilverHairedShaman',
'367_ElectrifyingRecharge',
'368_TrespassingIntoTheSacredArea',
'369_CollectorOfJewels',
'370_AWisemanSowsSeeds',
'372_LegacyOfInsolence',
'373_SupplierOfReagents',
'374_WhisperOfDreams1',
'375_WhisperOfDreams2',
'376_GiantsExploration1',
'377_GiantsExploration2',
'378_MagnificentFeast',
'379_FantasyWine',
'380_BringOutTheFlavorOfIngredients',
'381_LetsBecomeARoyalMember',
'382_KailsMagicCoin',
'383_SearchingForTreasure',
'385_YokeofthePast',
'386_StolenDignity',
'401_PathToWarrior',
'402_PathToKnight',
'403_PathToRogue',
'404_PathToWizard',
'405_PathToCleric',
'406_PathToElvenKnight',
'407_PathToElvenScout',
'408_PathToElvenwizard',
'409_PathToOracle',
'410_PathToPalusKnight',
'411_PathToAssassin',
'412_PathToDarkwizard',
'413_PathToShillienOracle',
'414_PathToOrcRaider',
'415_PathToOrcMonk',
'416_PathToOrcShaman',
'417_PathToScavenger',
'418_PathToArtisan',
'419_GetAPet',
'420_LittleWings',
'421_LittleWingAdventures',
'426_FishingShot',
'431_WeddingMarch',
'432_BirthdayPartySong',
'501_ProofOfClanAlliance',
'503_PursuitClanAmbition',
'601_WatchingEyes',
'602_ShadowOfLight',
'605_AllianceWithKetraOrcs',
'607_ProveYourCourage_Ketra',
'608_SlayTheEnemyCommander_Ketra',
'611_AllianceWithVarkaSilenos',
'613_ProveYourCourage_Varka',
'614_SlayTheEnemyCommander_Varka',
'621_EggDelivery',
'622_DeliveryOfSpecialLiquor',
'623_TheFinestFood',
'624_TheFinestIngredientsPart1',
'626_ADarkTwilight',
'627_HeartInSearchOfPower',
'628_HuntGoldenRam',
'629_CleanUpTheSwampOfScreams',
'631_DeliciousTopChoiceMeat',
'634_InSearchofDimensionalFragments',
'636_TruthBeyond',
'637_ThroughOnceMore',
'647_InfluxOfMachines',
'999_C3Tutorial',
'9999_NPCBuffer'
]
print ""
print "importing quests ..."
from data.jscript.quests import *
print"... done"

and here the _int_.py from custom
Code:
__all__ = [
'3995_echo',
'3996_echoc',
'9999_NPCBuffer',
'5007_pet_exchange',
'5011_l2day',
'9987_aa',
'12535_WakeBaium',
'7000_HeroItems',
]
print ""
print "importing custom data ..."
from data.jscript.custom import *
print "... done"
print ""

and here the _init_.py from my buffer
Code:
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver             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

NPC=[8000]
ADENA_ID=57
QuestId     = 9999
QuestName   = "NPCBuffer"
QuestDesc   = "custom"
InitialHtml = "1.html"

print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + QuestName,

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 < 200000 :
			htmltext = "<html><head><body>You dont have enough adena.</body></html>"
		else:
			st.getPlayer().setTarget(st.getPlayer())
			if event == "2":
				st.takeItems(ADENA_ID,160000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False)
				st.getPlayer().restoreHPMP()		
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False)
				st.getPlayer().restoreHPMP()
				return "4.htm"
				st.setState(COMPLETED)

			if event == "3":
				st.takeItems(ADENA_ID,80000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False)	
				st.getPlayer().restoreHPMP()	
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False)
				st.getPlayer().restoreHPMP()
				return "4.htm"
				st.setState(COMPLETED)

			if event == "4":
				st.takeItems(ADENA_ID,140000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)
				st.getPlayer().restoreHPMP()
				return "4.htm"
				st.setState(COMPLETED)
                        
			if event == "5":
				st.takeItems(ADENA_ID,400000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False)	
				st.getPlayer().restoreHPMP()	
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False)
				st.getPlayer().restoreHPMP()		
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)
				st.getPlayer().restoreHPMP()
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False)	
				st.getPlayer().restoreHPMP()
				return "4.htm"			
				st.setState(COMPLETED)

			if event == "6":
				st.takeItems(ADENA_ID,1000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1218,33),False,False)
				st.getPlayer().restoreHPMP()
				return "1.htm"		
				st.setState(COMPLETED)

			#Wind Walk
			if event == "7":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Decrease Weight
			if event == "8":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Shield
			if event == "9":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Might
			if event == "10":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Mental Shield
			if event == "11":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Bless the Body
			if event == "12":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Bless the Soul
			if event == "13":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Magic Barrier
			if event == "14":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Resist Shock
			if event == "15":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Concentration
			if event == "16":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Berserker Spirit
			if event == "17":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Bless Shield
			if event == "18":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Vampiric Rage
			if event == "19":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Acumen
			if event == "20":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Empower
			if event == "21":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Haste
			if event == "22":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Guidance
			if event == "23":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Focus
			if event == "24":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

			#Death Whisper
			if event == "25":
				st.takeItems(ADENA_ID,15000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False)
				st.getPlayer().restoreHPMP()
				return "5.htm"		
				st.setState(COMPLETED)

                        #Greater Might 
                        if event == "26":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1388,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Greater Shield  
                        if event == "27":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1389,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)              

                        #Holy Resistance   
                        if event == "28":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1392,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED) 
             
                        #UNHoly Resistance   
                        if event == "29":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1393,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)              

                        #Propherty of Fire   
                        if event == "30":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1356,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Elemental Protection   
                        if event == "31":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1352,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Wind Magic    
                        if event == "32":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1303,2),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Advenced Block   
                        if event == "33":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1304,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Divine Protection  
                        if event == "34":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1353,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Prophecy of Water   
                        if event == "35":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1355,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Prophecy of Wind   
                        if event == "36":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1357,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Life Cubic    
                        if event == "37":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4338,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Body of Avatar    
                        if event == "38":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1311,6),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Mana Regeneration    
                        if event == "39":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1047,4),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Deflect Arrow    
                        if event == "40":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(112,4),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Reflect Damage    
                        if event == "41":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(86,170),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Majesty   
                        if event == "42":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(82,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Clarity    
                        if event == "43":
				st.takeItems(ADENA_ID,50000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1397,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "5.htm"
                                st.setState(COMPLETED)

                        #Summon Phantom Cubic   
                        if event == "44":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(33,8),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Vampiric Cubic    
                        if event == "45":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(22,7),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Viper Cubic    
                        if event == "46":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(278,6),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Storm Cubic    
                        if event == "47":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(10,8),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Life Cubic    
                        if event == "48":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(67,7),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Sumon Binding Cubic    
                        if event == "49":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1279,9),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Spark Cubic   
                        if event == "50":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1281,9),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Aqua Cubic    
                        if event == "51":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1280,9),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Blessing of Queen   
                        if event == "52":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4699,13),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Gift of Queen    
                        if event == "53":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4700,13),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Blessing of Seraphim   
                        if event == "54":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4702,13),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Gift of  Seraphim    
                        if event == "55":
				st.takeItems(ADENA_ID,15000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4703,13),False,False)	
				st.getPlayer().restoreHPMP()
				return "6.htm"
                                st.setState(COMPLETED)

                        #Flame Chant    
                        if event == "56":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1002,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Fire    
                        if event == "57":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1006,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Battle    
                        if event == "58":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1007,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Shielding    
                        if event == "59":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1009,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Soul Shield   
                        if event == "60":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1010,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Life   
                        if event == "61":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1229,18),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Evasion    
                        if event == "62":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1252,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Fury    
                        if event == "63":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1252,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Seal of Rage    
                        if event == "64":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1253,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Predator    
                        if event == "65":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1308,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Eagle    
                        if event == "66":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1309,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Vampire    
                        if event == "67":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1310,4),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #War Chant    
                        if event == "68":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1390,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Spirit    
                        if event == "69":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1362,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Chanet of Victory    
                        if event == "70":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1363,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Earth Chant    
                        if event == "71":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1391,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "7.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Blessing    
                        if event == "72":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1005,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Wisdom   
                        if event == "73":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1004,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Glory     
                        if event == "74":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1008,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Sight    
                        if event == "75":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1249,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Heart    
                        if event == "76":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1256,13),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Tact    
                        if event == "77":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1260,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Rage    
                        if event == "78":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1261,2),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Chant of Revenge    
                        if event == "79":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1284,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Honor   
                        if event == "80":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1305,5),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Eye   
                        if event == "81":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1364,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's of Soul   
                        if event == "82":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1365,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Shield    
                        if event == "83":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1250,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Speed   
                        if event == "84":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1282,2),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Power   
                        if event == "85":
				st.takeItems(ADENA_ID,1000000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1003,3),False,False)	
				st.getPlayer().restoreHPMP()
				return "8.htm"
                                st.setState(COMPLETED)

                        if event == "86":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(271,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "87":
				st.takeItems(ADENA_ID,20000)	
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(272,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "88":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(273,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "89":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(274,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "90":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(275,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "91":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(276,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "92":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(277,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "93":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(307,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "94":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(309,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "95":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(310,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "96":
				st.takeItems(ADENA_ID,20000)		
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(311,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "97":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(366,1),False,False)
				st.getPlayer().restoreHPMP()
				return "2.htm"

			if event == "98":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(365,1),False,False)
				st.getPlayer().restoreHPMP()			
				return "2.htm"

			if event == "99":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(264,1),False,False)	
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "100":
				st.takeItems(ADENA_ID,20000)	
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(265,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "101":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(266,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "102":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(267,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "103":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(268,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "104":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(269,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "105":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(270,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "106":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(304,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "107":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(305,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "108":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(306,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"	

			if event == "109":
				st.takeItems(ADENA_ID,20000)	
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(308,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "110":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(363,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"

			if event == "111":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(364,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"	

			if event == "112":
				st.takeItems(ADENA_ID,20000)
				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(349,1),False,False)
				st.getPlayer().restoreHPMP()
				return "3.htm"		
				st.setState(COMPLETED)

			if htmltext != event:
				st.setState(COMPLETED)
				st.exitQuest(1)
		return htmltext


        def onTalk (self,npc,st):
	   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)
 STARTED.addTalkId(npcId)

print "...done"
 
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
maybe one of this things, the first I think is that in your __int__.py from quests you missed a comma, you have this " '9999_NPCBuffer' ", just add a comma " '9999_NPCBuffer', " the second think that may be causing the problem is that you don't have a folder with name 9999_NPCBuffer in your custom folder, the third thing may be that in the 9999_NPCBuffer folder you don't have a 1.html, or the third thing, maybe you have in the 9999_NPCBuffer folder a _int_.py instead of __ind__.py remember the file has two _ like _ _ i n t _ _ . p y

other thing, maybe your npc that is starting the quest is not the 8000 like in your .py doc
 
Newbie Spellweaver
Joined
May 12, 2006
Messages
27
Reaction score
2
Really Importatn Change

Ok I updated my server to the newest revition and I noted that Quest didn't loaded, so if you have this problem, you just need to searchat the top in the __int__.py of your buffer this line

Code:
from net.sf.l2j.gameserver              import SkillTable

just change it to this one

Code:
from net.sf.l2j.gameserver.datatable import SkillTable

so that's all, if your quest don't load, just find and replace that line
 
Newbie Spellweaver
Joined
Jun 23, 2006
Messages
26
Reaction score
0
my npc CAN'T FIND the html! i am going crazy, what do i have to do in order to find it?
 
Back
Top