/* * Patch for filter_var() */ if(!function_exists('filter_var')){ define('FILTER_VALIDATE_IP', 'ip'); define('FILTER_FLAG_IPV4', 'ipv4'); define('FILTER_FLAG_IPV6', 'ipv6'); define('FILTER_VALIDATE_EMAIL', 'email'); define('FILTER_FLAG_EMAIL_UNICODE', 'unicode'); function filter_var($variable, $filter, $option = false){ if($filter == 'ip'){ if($option == 'ipv4'){ if(preg_match("/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $variable, $matches)){ $variable = $matches[1]; return $variable; } } if($option == 'ipv6'){ if(preg_match("/\s*(([:.]{0,7}[0-9a-fA-F]{0,4}){1,8})\s*/", $variable, $matches)){ $variable = $matches[1]; return $variable; } } } if($filter == 'email'){ if($option == 'unicode' || $option == false){ if(preg_match("/\s*(\S*@\S*\.\S*)\s*/", $variable, $matches)){ $variable = $matches[1]; return $variable; } } } } }
<html><title>Buffer</title>
<body>
<br>
<br>
Jakiś tekst
<br>
<img src="L2UI_CH3.onscrmsg_pattern01_1" width=300 height=32 align=left>
<center>
<table border="0" cellspacing="0">
<tr>
<td valign=top><img src=icon.skill1240 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1087 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1010 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1036 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1243 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1033 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1303 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1035 width=32 height=32 align=left></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1032 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1048 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1078 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1085 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1059 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1352 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1259 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1393 width=32 height=32 align=left></td>
</tr>
</table>
<br>
<img src="L2UI_CH3.onscrmsg_pattern01_2" width=300 height=32 align=left>
<td><button value="Buff Me" action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<br>
</body>
</center>
</html>
import sysDzięki nim buffer może nas buffnąc. :P
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"Jak sam pozątek wskazuje qn = quest name czyli nazwa questu :)
NPC=[40010]ta linijka mówi nam do jakiego NPC sie odnosi
ADENA_ID=57- tu podajemy ID adeny - można również dac inne ID za które buffer będzie buffował :)
QuestId = 9999- ID questu (Tu nic nie zmieniamy)
QuestName = "NPCBuffer"nie musze pisac
QuestDesc = "custom"
print "importing custom: 9999: NPCBuffer"- to akurat jest mało ważne - odpowiada za wyświetlanie w konsoli podczas ładowania questów
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 < 150000 or st.getPlayer().getLevel() < 40 :
htmltext = "<html><head><body>No Tienes Adena.<br></body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
if event == "1":
st.takeItems(ADENA_ID,1000)
st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp())
st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
if event == "3":Zmieniamy kolejno
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
if event == "2":na
if event == "3":I tak dalej.
#Wind Walk
if event == "2":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Decrease Weight
if event == "3":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4343,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Shield
if event == "4":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Might
if event == "5":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Mental Shield
if event == "6":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Bless the Body
if event == "7":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Bless the Soul
if event == "8":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4348,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Magic Barrier
if event == "9":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Resist Shock
if event == "10":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Concentration
if event == "11":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Berserker Spirit
if event == "12":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Bless Shield
if event == "13":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Vampiric Rage
if event == "14":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4354,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Acumen
if event == "15":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Empower
if event == "16":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Haste
if event == "17":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Guidance
if event == "18":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Focus
if event == "19":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Death Whisper
if event == "20":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4360,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
if event == "21":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "22":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "23":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "24":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "25":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "26":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "27":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "28":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "29":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "30":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "31":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "32":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(366,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "33":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "34":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "35":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "36":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "37":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "38":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "39":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "40":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "41":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "42":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "43":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "44":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "45":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "46":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
if event == "47":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Battle
if event == "48":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1007,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Shielding
if event == "49":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1009,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Fire
if event == "50":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1006,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Flame
if event == "51":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1002,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of life
if event == "52":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1229,18).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Fury
if event == "53":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1251,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Evasion
if event == "54":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Rage
if event == "55":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1253,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Revenge
if event == "56":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Vampire
if event == "57":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1310,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Eagle
if event == "58":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1309,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Predator
if event == "59":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1308,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Spirit
if event == "60":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Chant of Victory
if event == "61":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#chant of magnus
if event == "62":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#MPreg
if event == "63":
st.takeItems(ADENA_ID,1000)
SkillTable.getInstance().getInfo(1013,32).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#greatmight
if event == "64":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#greatshield
if event == "65":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#holyresist
if event == "66":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#Unholyresist
if event == "67":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#pof
if event == "68":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#elemtprotect
if event == "69":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#wildmagic
if event == "70":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#advblock
if event == "71":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1304,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#divProtect
if event == "72":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#pow
if event == "73":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#powi
if event == "74":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#manaregen
if event == "75":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1047,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#ba
if event == "76":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1311,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
#noble
if event == "77":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer(),st.getPlayer())
st.setState(COMPLETED)
#Cancellation
if event == "78":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.setState(COMPLETED)
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(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
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=[40010]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "custom"
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 < 150000 or st.getPlayer().getLevel() < 40 :
htmltext = "<html><head><body>No Tienes Adena.<br></body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
if event == "1":
st.takeItems(ADENA_ID,1000)
st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp())
st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
#Wind Walk
if event == "2":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Decrease Weight
if event == "3":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4343,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Shield
if event == "4":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Might
if event == "5":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Mental Shield
if event == "6":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless the Body
if event == "7":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless the Soul
if event == "8":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4348,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Magic Barrier
if event == "9":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Resist Shock
if event == "10":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Concentration
if event == "11":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Berserker Spirit
if event == "12":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless Shield
if event == "13":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Vampiric Rage
if event == "14":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4354,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Acumen
if event == "15":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Empower
if event == "16":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Haste
if event == "17":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Guidance
if event == "18":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Focus
if event == "19":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Death Whisper
if event == "20":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4360,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
if event == "21":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "22":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "23":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "24":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "25":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "26":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "27":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "28":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "29":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "30":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "31":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "32":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(366,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "33":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "34":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "35":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "36":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "37":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "38":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "39":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "40":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "41":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "42":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "43":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "44":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "45":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "46":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "47":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
st.setState(COMPLETED)
#Chant of Battle
if event == "48":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1007,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Shielding
if event == "49":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1009,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Fire
if event == "50":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1006,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Flame
if event == "51":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1002,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of life
if event == "52":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1229,18).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Fury
if event == "53":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1251,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Evasion
if event == "54":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Rage
if event == "55":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1253,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Revenge
if event == "56":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Vampire
if event == "57":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1310,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Eagle
if event == "58":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1309,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Predator
if event == "59":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1308,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Spirit
if event == "60":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Victory
if event == "61":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#chant of magnus
if event == "62":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#MPreg
if event == "63":
st.takeItems(ADENA_ID,1000)
SkillTable.getInstance().getInfo(1013,32).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
#greatmight
if event == "64":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#greatshield
if event == "65":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#holyresist
if event == "66":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Unholyresist
if event == "67":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#pof
if event == "68":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#elemtprotect
if event == "69":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#wildmagic
if event == "70":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#advblock
if event == "71":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1304,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#divProtect
if event == "72":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#pow
if event == "73":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#powi
if event == "74":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#manaregen
if event == "75":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1047,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#ba
if event == "76":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1311,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#noble
if event == "77":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer(),st.getPlayer())
return "1.htm"
st.setState(COMPLETED)
#Cancellation
if event == "78":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
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(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
<html><title>Buffer</title>
<body>
<br>
<br>
Jakis tekst
<br>
<img src="L2UI_CH3.onscrmsg_pattern01_1" width=300 height=32 align=left>
<center>
<table border="0" cellspacing="0">
<tr>
<td valign=top><img src=icon.skill1240 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1087 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1010 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1036 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1243 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1033 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1303 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1035 width=32 height=32 align=left></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1032 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1048 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1078 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1085 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1059 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1352 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1259 width=32 height=32 align=left></td>
<td valign=top><img src=icon.skill1393 width=32 height=32 align=left></td>
</tr>
</table>
<br>
<img src="L2UI_CH3.onscrmsg_pattern01_2" width=300 height=32 align=left>
<table width="200" border="0">
<tr>
<td><button value="HP-MP-CP" action="bypass -h Quest 9999_NPCBuffer 1" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><button value="Noblesse" action="bypass -h Quest 9999_NPCBuffer 77" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><button value="Choose Buffs" action="bypass -h Quest 9999_NPCBuffer 2.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><button value="Dances" action="bypass -h Quest 9999_NPCBuffer 3.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><button value="Songs" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><button value="Chants" action="bypass -h Quest 9999_NPCBuffer 5.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td> </td>
<td><button value="Cancel Buff" action="bypass -h Quest 9999_NPCBuffer 78" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td> </td>
</tr>
</table>
</body>
</center>
</html>
<html><title>Choose Buffs</title>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
<table>
<tr>
<td valign=top><img src=icon.skill1204 width=32 height=32 align=left></td>
<td valign=top><button value="WindWalk" action="bypass -h Quest 9999_NPCBuffer 2" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1040 width=32 height=32 align=left></td>
<td valign=top><button value="Shield" action="bypass -h Quest 9999_NPCBuffer 4" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1068 width=32 height=32 align=left></td>
<td valign=top><button value="Might" action="bypass -h Quest 9999_NPCBuffer 5" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1035 width=32 height=32 align=left></td>
<td valign=top><button value="MentalShield" action="bypass -h Quest 9999_NPCBuffer 6" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1045 width=32 height=32 align=left></td>
<td valign=top><button value="BlessBody" action="bypass -h Quest 9999_NPCBuffer 7" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1048 width=32 height=32 align=left></td>
<td valign=top><button value="BlessSoul" action="bypass -h Quest 9999_NPCBuffer 8" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1036 width=32 height=32 align=left></td>
<td valign=top><button value="MagicBarrier" action="bypass -h Quest 9999_NPCBuffer 9" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1259 width=32 height=32 align=left></td>
<td valign=top><button value="ResistShock" action="bypass -h Quest 9999_NPCBuffer 10" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1078 width=32 height=32 align=left></td>
<td valign=top><button value="Concentration" action="bypass -h Quest 9999_NPCBuffer 11" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1062 width=32 height=32 align=left></td>
<td valign=top><button value="BerserkerSpirit" action="bypass -h Quest 9999_NPCBuffer 12" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1243 width=32 height=32 align=left></td>
<td valign=top><button value="BlessShield" action="bypass -h Quest 9999_NPCBuffer 13" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1268 width=32 height=32 align=left></td>
<td valign=top><button value="VampiricRage" action="bypass -h Quest 9999_NPCBuffer 14" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1085 width=32 height=32 align=left></td>
<td valign=top><button value="Acumen" action="bypass -h Quest 9999_NPCBuffer 15" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1059 width=32 height=32 align=left></td>
<td valign=top><button value="Empower" action="bypass -h Quest 9999_NPCBuffer 16" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1086 width=32 height=32 align=left></td>
<td valign=top><button value="Haste" action="bypass -h Quest 9999_NPCBuffer 17" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1240 width=32 height=32 align=left></td>
<td valign=top><button value="Guidance" action="bypass -h Quest 9999_NPCBuffer 18" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1077 width=32 height=32 align=left></td>
<td valign=top><button value="Focus" action="bypass -h Quest 9999_NPCBuffer 19" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><font color="B09878"><img src=icon.skill1242 width=32 height=32 align=left></font></td>
<td valign=top><button value="DeathWhisper" action="bypass -h Quest 9999_NPCBuffer 20" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1388 width=32 height=32 align=left></td>
<td valign=top><button value="GreaterMight" action="bypass -h Quest 9999_NPCBuffer 64" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1389 width=32 height=32 align=left></td>
<td valign=top><button value="GreaterShield" action="bypass -h Quest 9999_NPCBuffer 65" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1392 width=32 height=32 align=left></td>
<td valign=top><button value="HolyResist" action="bypass -h Quest 9999_NPCBuffer 66" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1393 width=32 height=32 align=left></td>
<td valign=top><button value="UNHolyResis" action="bypass -h Quest 9999_NPCBuffer 67" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1356 width=32 height=32 align=left></td>
<td valign=top><button value="PropheofFire" action="bypass -h Quest 9999_NPCBuffer 68" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1352 width=32 height=32 align=left></td>
<td valign=top><button value="ElementalProte" action="bypass -h Quest 9999_NPCBuffer 69" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1303 width=32 height=32 align=left></td>
<td valign=top><button value="WildMagic" action="bypass -h Quest 9999_NPCBuffer 70" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1304 width=32 height=32 align=left></td>
<td valign=top><button value="AdvancedBlock" action="bypass -h Quest 9999_NPCBuffer 71" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1355 width=32 height=32 align=left></td>
<td valign=top><button value="PropheofWater" action="bypass -h Quest 9999_NPCBuffer 73" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1357 width=32 height=32 align=left></td>
<td valign=top><button value="PropheofWind" action="bypass -h Quest 9999_NPCBuffer 74" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td valign=top><img src=icon.skill1047 width=32 height=32 align=left></td>
<td valign=top><button value="ManaRegenera" action="bypass -h Quest 9999_NPCBuffer 75" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td valign=top><img src=icon.skill1257 width=32 height=32 align=left></td>
<td valign=top><button value="DecreaseWeight" action="bypass -h Quest 9999_NPCBuffer 3" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</table>
<td>
<br>
<button value="Go Back" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
</center>
</body>
</html>
<html><title>Dances</title>
<center>
<body>
<br>
<br>
<br>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
<table>
<tr>
<td><img src=icon.skill0271 width=32 height=32 align=left></td>
<td><button value="Warrior" action="bypass -h Quest 9999_NPCBuffer 21" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0272 width=32 height=32 align=left></td>
<td><button value="Inspiration" action="bypass -h Quest 9999_NPCBuffer 22" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0273 width=32 height=32 align=left></td>
<td><button value="Mystic" action="bypass -h Quest 9999_NPCBuffer 23" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0274 width=32 height=32 align=left></td>
<td><button value="Fire" action="bypass -h Quest 9999_NPCBuffer 24" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0275 width=32 height=32 align=left></td>
<td><button value="Fury" action="bypass -h Quest 9999_NPCBuffer 25" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0276 width=32 height=32 align=left></td>
<td><button value="Concentration" action="bypass -h Quest 9999_NPCBuffer 26" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0277 width=32 height=32 align=left></td>
<td><button value="Light" action="bypass -h Quest 9999_NPCBuffer 27" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0307 width=32 height=32 align=left></td>
<td><button value="Aqua Guard" action="bypass -h Quest 9999_NPCBuffer 28" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0309 width=32 height=32 align=left></td>
<td><button value="Earth Guard" action="bypass -h Quest 9999_NPCBuffer 29" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0310 width=32 height=32 align=left></td>
<td><button value="Vampire" action="bypass -h Quest 9999_NPCBuffer 30" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0311 width=32 height=32 align=left></td>
<td><button value="Protection" action="bypass -h Quest 9999_NPCBuffer 31" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0366 width=32 height=32 align=left></td>
<td><button value="Shadow" action="bypass -h Quest 9999_NPCBuffer 32" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
</tr>
<tr>
<td><img src=icon.skill0365 width=32 height=32 align=left></td>
<td><button value="Siren" action="bypass -h Quest 9999_NPCBuffer 33" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td></td>
<td></td>
</tr>
</table>
<br>
<td><button value="Go Back" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</td>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
</body>
</center>
</html>
<html><title>Songs</title>
<center>
<body>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
<table border="0">
<tr>
<td><img src=icon.skill0264 width=32 height=32 align=left></td>
<td><button value="Earth" action="bypass -h Quest 9999_NPCBuffer 34" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0265 width=32 height=32 align=left></td>
<td><button value="Life" action="bypass -h Quest 9999_NPCBuffer 35" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0266 width=32 height=32 align=left></td>
<td><button value="Water" action="bypass -h Quest 9999_NPCBuffer 36" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0267 width=32 height=32 align=left></td>
<td><button value="Warding" action="bypass -h Quest 9999_NPCBuffer 37" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0268 width=32 height=32 align=left></td>
<td><button value="Wind" action="bypass -h Quest 9999_NPCBuffer 38" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0269 width=32 height=32 align=left></td>
<td><button value="Hunter" action="bypass -h Quest 9999_NPCBuffer 39" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0270 width=32 height=32 align=left></td>
<td><button value="Invocation" action="bypass -h Quest 9999_NPCBuffer 40" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0304 width=32 height=32 align=left></td>
<td><button value="Vitality" action="bypass -h Quest 9999_NPCBuffer 41" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0305 width=32 height=32 align=left></td>
<td><button value="Vengeance" action="bypass -h Quest 9999_NPCBuffer 42" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0306 width=32 height=32 align=left></td>
<td><button value="Flame Guard" action="bypass -h Quest 9999_NPCBuffer 43" width=80 height=20 back"L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0307 width=32 height=32 align=left></td>
<td><button value="Storm Guard" action="bypass -h Quest 9999_NPCBuffer 44" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0308 width=32 height=32 align=left></td>
<td><button value="Meditation" action="bypass -h Quest 9999_NPCBuffer 45" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill0364 width=32 height=32 align=left></td>
<td><button value="Champion" action="bypass -h Quest 9999_NPCBuffer 46" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill0349 width=32 height=32 align=left></td>
<td><button value="Renewal" action="bypass -h Quest 9999_NPCBuffer 47" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
</table>
<br>
<td><button value="Go Back" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
</body>
</center>
</html>
<html><title>Chants</title>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
<table border="0">
<tr>
<td><img src=icon.skill1007 width=32 height=32 align=left></td>
<td><button value="Battle" action="bypass -h Quest 9999_NPCBuffer 48" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1009 width=32 height=32 align=left></td>
<td><button value="Shielding" action="bypass -h Quest 9999_NPCBuffer 49" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1006 width=32 height=32 align=left></td>
<td><button value="Fire" action="bypass -h Quest 9999_NPCBuffer 50" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1002 width=32 height=32 align=left></td>
<td><button value="Flame" action="bypass -h Quest 9999_NPCBuffer 51" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1229 width=32 height=32 align=left></td>
<td><button value="Life" action="bypass -h Quest 9999_NPCBuffer 52" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1251 width=32 height=32 align=left></td>
<td><button value="Fury" action="bypass -h Quest 9999_NPCBuffer 53" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1252 width=32 height=32 align=left></td>
<td><button value="Evasion" action="bypass -h Quest 9999_NPCBuffer 54" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1253 width=32 height=32 align=left></td>
<td><button value="Rage" action="bypass -h Quest 9999_NPCBuffer 55" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1284 width=32 height=32 align=left></td>
<td><button value="Revenge" action="bypass -h Quest 9999_NPCBuffer 56" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1310 width=32 height=32 align=left></td>
<td><button value="Vampire" action="bypass -h Quest 9999_NPCBuffer 57" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1309 width=32 height=32 align=left></td>
<td><button value="Eagle" action="bypass -h Quest 9999_NPCBuffer 58" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1308 width=32 height=32 align=left></td>
<td><button value="Predator" action="bypass -h Quest 9999_NPCBuffer 59" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1362 width=32 height=32 align=left></td>
<td><button value="Spirit" action="bypass -h Quest 9999_NPCBuffer 60" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td><img src=icon.skill1363 width=32 height=32 align=left></td>
<td><button value="Victory" action="bypass -h Quest 9999_NPCBuffer 61" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
</tr>
<tr>
<td><img src=icon.skill1413 width=32 height=32 align=left></td>
<td><button value="Magnus" action="bypass -h Quest 9999_NPCBuffer 62" width=80 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<td> </td>
<td> </td>
</tr>
</table>
<button value="Go Back" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=100 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<img src="L2UI_CH3.herotower_deco" height="32" width="256">
</body>
</center>
</html>
# Customtego dodajemy:
custom/3995_echo/__init__.py
custom/4000_ShadowWeapons/__init__.py
custom/7000_HeroItems/__init__.py
custom/8000_RaidbossInfo/__init__.py
custom/6050_KetraOrcSupport/__init__.py
custom/6051_VarkaSilenosSupport/__init__.py
custom/8500_Buffer/__init__.py
custom/8501_Regen/__init__.py
custom/8502_raid_antharas/__init__.py
custom/8502_raid_baium/__init__.py
custom/8502_raid_valakas/__init__.py
custom/9999_NPCBuffer/__init__.py
INSERT INTO `npc` VALUES ('40010', '32174', 'Npc Buffer', '1', 'buu', '1', 'LineageNPC2.K_F1_guard', '13.00', '22.50', '70', 'female', 'L2Npc', '40', '3862', '1494', null, null, '40', '43', '30', '21', '20', '10', '5879', '590', '1444', '514', '760', '381', '253', '0', '253', '9644', '0', '0', '80', '120', null, null, '0', '0', 'LAST_HIT');
"Gratz" Maślan spisałeś się :D
Wszystko wydaje się proste.....ale mam już pierwszy problem gdy klikam na mojego Bufera w jej okienku zamiast tekstu mam tylko -cyt."Html was too long "
I druga spraw jak zmienić jej Imię ,(Title)
Wpisałem niby w Navicat....no ale lipa:/ :_delf_2:
#Cancellation
if event == "78":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
kod po 'return' sie nigdy nie wykona i masz tak w kazdym ifie.
from java.util import Iterator
from net.sf.l2j import L2DatabaseFactory
Po kolejne:Cytujfrom java.util import Iterator
from net.sf.l2j import L2DatabaseFactory
Po co importujesz klasy, ktorych nie uzywasz ?
I fundamentalne pytanie: czy ty to napisales sam czy skads przekopiowales, bo sa watpliwosci.
Właśnie chyba z dodaniem do bazy sql nie wiem za bardzo jak dodać , chyba o co chodzi.
Jeżeli unsuccesfull to znaczy , że coś nie pasuje . W tym wypadku możesz dodac ręcznie do bazy danych .Dzięki opcji "Insert record"(taki plusik)... A tak nawiasem to aż ręce opadają...
PPM na bazie danych i Execute Batch File
Bo to jest wielka filozofia zrobić plik tekstowy, nie? :)
Znowu angielski ćwiczysz na mnie ? :P
Zaciągne L2JFree Interlude Final.
Zaciągnąłem i nie ma w katalogu data takiego pliku? Czy to nie dziwne? Dodatkowo jest tam oddzielne archimu o nazwie l2jfree_datapack i nie ma tam.
Swoją drogą jaka jest różnica pomiędzy plikami Free a L2JDB?
Witam Was. przpraszam że odkopuje temat
Mam problem z wgraniem do SQL tej części
INSERT INTO `npc` VALUES ('40010', '32174', 'Npc Buffer', '1', 'buu', '1', 'LineageNPC2.K_F1_guard', '13.00', '22.50', '70', 'female', 'L2Npc', '40', '3862', '1494', null, null, '40', '43', '30', '21', '20', '10', '5879', '590', '1444', '514', '760', '381', '253', '0', '253', '9644', '0', '0', '80', '120', null, null, '0', '0', 'LAST_HIT', '0', '0', '0', 'fighter');
próbwalem z róznymi kombinacjami, zmienianiem konca polecenia i dalej to samo :
[Err] 1136 - Column count doesn't match value count at row 1
[Msg] Zakończono bez powodzenia
może mi ktos pomoc?
INSERT INTO npc
(id, idTemplate, name, serverSideName, title, serverSideTitle, class, collision_radius, collision_height, level, sex, type, attackrange, hp, mp, hpreg, mpreg, str, con, dex, int, wit, men, exp, sp, patk, pdef, matk, mdef, atkspd, aggro, matkspd, rhand, lhand, armor, walkspd, runspd, faction_id, faction_range, isUndead, absorb_level, absorb_type, ss, bss, ss_rate, AI, drop_herbs)
VALUES
(1, 1, "Thomas D. Turkey", 0, "Misguided Holiday Scrooge", 0, "Branch.br_crazy_turkey", 22, 32, 85, "male", "L2Npc", 40, 751, 331, "2,37", "1,53", 80, 80, 80, 80, 80, 80, 0, 0, 88, 119, 37, 112, 282, 0, 5000, 0, 0, 0, 30, 132, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter", "false");
INSERT INTO npc
(id, idTemplate, name, serverSideName, title, serverSideTitle, class, collision_radius, collision_height, level, sex, type, attackrange, hp, mp, hpreg, mpreg, str, con, dex, int, wit, men, exp, sp, patk, pdef, matk, mdef, atkspd, aggro, matkspd, rhand, lhand, armor, walkspd, runspd, faction_id, faction_range, isUndead, absorb_level, absorb_type, ss, bss, ss_rate, AI, drop_herbs)
VALUES
(40010, 32174, "Npc Buffer", 0, "buu", 1, "LineageNPC2.K_F1_guard", 22, 32, 85, "male", "L2Npc", 40, 751, 331, "2,37", "1,53", 80, 80, 80, 80, 80, 80, 0, 0, 88, 119, 37, 112, 282, 0, 5000, 0, 0, 0, 30, 132, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter", "false");
[i]Error on: C:\Documents and Settings\Pawloo\Pulpit\serwerCT1.5\Gameserver\data\scripts\custom\9999_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('Lexical error at line 30, column 56. Encountered: "\\r" (13), after : ""', ('__init__.py', 30, 56, ' htmltext = "<html><head><body>No Tienes Adena.'))
[/i]
O tym przecież właśnie pisał Impos , a w errorze pisze Ci , w której linijce masz błąd , pisze Ci także jaki .
jeszcze zauważyłem ze w katalogu: 9999_NPCBuffer pojawił się plik: __init__.py.error w ktorym jest tresc:
Error on: C:\Documents and Settings\Pawloo\Pulpit\serwerCT1.5\Gameserver\data\scripts\custom\9999_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('Lexical error at line 30, column 56. Encountered: "\\r" (13), after : ""', ('__init__.py', 30, 56, ' htmltext = "<html><head><body>No Tienes Adena.'))
o co może chodzić??
Error on: C:\Server\gameserver\data\scripts\custom\9999_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('Lexical error at line 30, column 56. Encountered: "\\r" (13), after : ""', ('__init__.py', 30, 56, ' htmltext = "<html><head><body>No Tienes Adena.'))
htmltext = "<html><head><body>No Tienes Adena.
</body></html>"
zmieńcie na htmltext = "<html><head><body>No Tienes Adena</body></html>"
Error on: C:\Server\gameserver\data\scripts\custom\9999_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 38, 33, ' st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp())'))
.getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().restoreHPMP()
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=[40010]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "custom"
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 < 150000 or st.getPlayer().getLevel() < 40 :
htmltext = "<html><head><body>No Tienes Adena</body></html>"
else:
st.takeItems(ADENA_ID,0)
st.getPlayer().setTarget(st.getPlayer())
if event == "1":
st.takeItems(ADENA_ID,1000)
st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp())
st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
#Wind Walk
if event == "2":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Decrease Weight
if event == "3":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4343,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Shield
if event == "4":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Might
if event == "5":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Mental Shield
if event == "6":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless the Body
if event == "7":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless the Soul
if event == "8":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4348,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Magic Barrier
if event == "9":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Resist Shock
if event == "10":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Concentration
if event == "11":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Berserker Spirit
if event == "12":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Bless Shield
if event == "13":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Vampiric Rage
if event == "14":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4354,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Acumen
if event == "15":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Empower
if event == "16":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Haste
if event == "17":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Guidance
if event == "18":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Focus
if event == "19":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Death Whisper
if event == "20":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(4360,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
if event == "21":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "22":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "23":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "24":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "25":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "26":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "27":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "28":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "29":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "30":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "31":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "32":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(366,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "33":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "3.htm"
if event == "34":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "35":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "36":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "37":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "38":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "39":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "40":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "41":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "42":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "43":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "44":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "45":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "46":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
if event == "47":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
st.setState(COMPLETED)
#Chant of Battle
if event == "48":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1007,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Shielding
if event == "49":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1009,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Fire
if event == "50":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1006,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Flame
if event == "51":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1002,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of life
if event == "52":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1229,18).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Fury
if event == "53":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1251,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Evasion
if event == "54":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Rage
if event == "55":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1253,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Revenge
if event == "56":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Vampire
if event == "57":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1310,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Eagle
if event == "58":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1309,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Predator
if event == "59":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1308,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Spirit
if event == "60":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#Chant of Victory
if event == "61":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#chant of magnus
if event == "62":
st.takeItems(ADENA_ID,20000)
SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "5.htm"
st.setState(COMPLETED)
#MPreg
if event == "63":
st.takeItems(ADENA_ID,1000)
SkillTable.getInstance().getInfo(1013,32).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
#greatmight
if event == "64":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#greatshield
if event == "65":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#holyresist
if event == "66":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#Unholyresist
if event == "67":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#pof
if event == "68":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#elemtprotect
if event == "69":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#wildmagic
if event == "70":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#advblock
if event == "71":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1304,3).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#divProtect
if event == "72":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#pow
if event == "73":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#powi
if event == "74":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#manaregen
if event == "75":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1047,4).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#ba
if event == "76":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1311,6).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "2.htm"
st.setState(COMPLETED)
#noble
if event == "77":
st.takeItems(ADENA_ID,25000)
SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer(),st.getPlayer())
return "1.htm"
st.setState(COMPLETED)
#Cancellation
if event == "78":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
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(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Error on: D:\serwer\serwerCT1.5\Gameserver\data\scripts\custom\9999_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 2, in ?
ImportError: no module named net
Traceback (innermost last):
File "__init__.py", line 2, in ?
ImportError: no module named net[/code]
hmm... co jest z tym nie tak :x
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
import sys
from com.l2jfree.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from com.l2jfree.gameserver.datatables import SkillTable
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
Error on: D:\serwer\serwerCT1.5\Gameserver\data\scripts\custom\997_Buffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
File "__init__.py", line 569, in ?
TypeError: com.l2jfree.gameserver.model.quest.State(): expected 0 args; got 2
if event == "78":
st.takeItems(ADENA_ID,5000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(9950,1),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "1.htm"
st.setState(COMPLETED)
Oczywistym jest ze to setState sie nigdy nie wykonaif htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)
ktore tez sie nigdy nie wykona, bo sterowanie tu nie ma szans dojsc.import sys
from com.l2jfree.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from com.l2jfree.gameserver.datatables import SkillTable
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
qn = "9999_NPCBuffer"
NPC = [40010]
ADENA_ID = 57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "custom"
InitialHtml = "1.htm"
print "importing custom: 9999: NPCBuffer"
BUFFS = {
#event id, adena, sk_id, sk_lv, html
"2":[25000, 4342, 2, "2.htm"], #Wind walk
"3":[25000, 4343, 3, "2.htm"], #Decrease weight
"4":[25000, 4344, 3, "2.htm"], #Shield
"5":[25000, 4345, 3, "2.htm"], #Might
"6":[25000, 4346, 4, "2.htm"], #Mental Shield
"7":[25000, 4347, 6, "2.htm"], #Bless the body
"8":[25000, 4348, 6, "2.htm"], #Bless the soul
"9":[25000, 4349, 2, "2.htm"], #Magic Barrier
"10":[25000, 4350, 4, "2.htm"], #Resist Shock
"11":[25000, 4351, 6, "2.htm"], #Concentration
"12":[25000, 4352, 2, "2.htm"], #Berserker Spirit
"13":[25000, 4353, 6, "2.htm"], #Bless Shield
"14":[25000, 4354, 4, "2.htm"], #Vampiric Rage
"15":[25000,4355,3,"2.html"], #Acumen
"16":[25000,4356,3,"2.html"], #Empower
"17":[25000,4357,2,"2.html"], #Haste
"18":[25000,4358,3,"2.html"], #Guidance
"19":[25000,4359,3,"2.html"], #Focus
"20":[25000,4360,3,"2.html"], #DeathWhisper
"21":[20000,271,1,"3.html"],
"22":[20000,272,1,"3.html"],
"23":[20000,273,1,"3.html"],
"24":[20000,274,1,"3.html"],
"25":[20000,275,1,"3.html"],
"26":[20000,276,1,"3.html"],
"27":[20000,277,1,"3.html"],
"28":[20000,307,1,"3.html"],
"29":[20000,309,1,"3.html"],
"30":[20000,310,1,"3.html"],
"31":[20000,311,1,"3.html"],
"32":[20000,366,1,"3.html"],
"33":[20000,365,1,"3.html"],
"34":[20000,264,1,"4.html"],
"35":[20000,265,1,"4.html"],
"36":[20000,266,1,"4.html"],
"37":[20000,267,1,"4.html"],
"38":[20000,268,1,"4.html"],
"39":[20000,269,1,"4.html"],
"40":[20000,270,1,"4.html"],
"41":[20000,304,1,"4.html"],
"42":[20000,305,1,"4.html"],
"43":[20000,306,1,"4.html"],
"44":[20000,308,1,"4.html"],
"45":[20000,363,1,"4.html"],
"46":[20000,364,1,"4.html"],
"47":[20000,349,1,"4.html"],
"48":[20000,1007,3,"5.html"], #ChantofBattle
"49":[20000,1009,3,"5.html"], #ChantofShielding
"50":[20000,1006,3,"5.html"], #ChantofFire
"51":[20000,1002,3,"5.html"], #ChantofFlame
"52":[20000,1229,18,"5.html"], #Chantoflife
"53":[20000,1251,2,"5.html"], #ChantofFury
"54":[20000,1252,3,"5.html"], #ChantofEvasion
"55":[20000,1253,3,"5.html"], #ChantofRage
"56":[20000,1284,3, "5.html"], #ChantofRevenge
"57":[20000,1310,4,"5.html"], #ChantofVampire
"58":[20000,1309,3,"5.html"], #ChantofEagle
"59":[20000,1308,3,"5.html"], #ChantofPredator
"60":[20000,1362,1,"5.html"], #ChantofSpirit
"61":[20000,1363,1,"5.html"], #ChantofVictory
"62":[20000,1413,1,"5.html"], #chantofmagnus
"63":[1000,1013,32,"1.html"], #MPreg
"64":[25000,1388,3,"2.html"], #greatmight
"65":[25000,1389,3,"2.html"], #greatshield
"66":[25000,1392,3,"2.html"], #holyresist
"67":[25000,1393,3,"2.html"], #Unholyresist
"68":[25000,1356,1,"2.html"], #pof
"69":[25000,1352,1,"2.html"], #elemtprotect
"70":[25000,1303,2,"2.html"], #wildmagic
"71":[25000,1304,3,"2.html"], #advblock
"72":[25000,1353,1,"2.html"], #divProtect
"73":[25000,1355,1,"2.html"], #pow
"74":[25000,1357,1,"2.html"], #powi
"75":[25000,1047,4,"2.html"], #manaregen
"76":[25000,1311,6,"2.html"], #ba
"77":[25000,1323,1,"1.html"] #noble
}
class Quest (JQuest) :
def __init__(self, id, name, descr): JQuest.__init__(self, id, name, descr)
def buffPlayer(self, event, st):
if not BUFFS.has_key(event):
return event
adena, skill_id, skill_lv, html = BUFFS[event]
player = st.getPlayer()
st.takeItems(ADENA_ID, adena)
SkillTable.getInstance().getInfo(skill_id, skill_lv).getEffects(player, player)
player.setCurrentMp(player.getMaxMp())
return html
def onEvent(self, event, st):
player = st.getPlayer()
htmltext = event
if st.getQuestItemsCount(ADENA_ID) < 150000 or player.getLevel() < 40 :
htmltext = "<html><head><body>No Tienes Adena</body></html>"
else:
player.setTarget(st.getPlayer())
if event == "1":
st.takeItems(ADENA_ID, 1000)
player.setCurrentCp(player.getMaxCp())
player.setCurrentHp(player.getMaxHp())
player.setCurrentMp(player.getMaxMp())
htmltext = "1.htm"
elif event == "78": #cancellation
st.takeItems(ADENA_ID, 5000)
player.useMagic(SkillTable.getInstance().getInfo(9950, 1), False, False)
player.setCurrentMp(player.getMaxMp())
htmltext = "1.htm"
else:
htmltext = self.buffPlayer(event, st)
return htmltext
def onTalk (self, npc, player):
st = player.getQuestState(qn)
st.setState(State.STARTED)
return InitialHtml
QUEST = Quest(QuestId, str(QuestId) + "_" + QuestName, QuestDesc)
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Error on: D:\serwer\serwerCT1.5\Gameserver\data\scripts\custom\997_Buffer\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 117, 9, ' st.takeItems(ADENA_ID, adena)'))
Witam,
Mam problem z tym bufferem w momencie gdy chce wgrac tego npc do bazy mysql to wywala mi taki blad : 1048 - Column 'runspd' cannot be null ktos wie o co chodzi prosze o pomoc (zaznaczam ze zrobilem w wszystko tak jak Maślan opisał).
Nie mam pojęcia jak zrobić 1wyjscie 2wpisalem ręcznie i spawnuje mi npc ale nie widzę go no i jak kliknę na niego i biorę q wtedy mam komunikat "you are either not on a quest that involves this NPC,or you don't meet this npc's minimum quest requirements." i nie wiem co jest gdzie znajdę tego runspd bo nie wiem gdzie szukać :( a buffera nie ściągałem zrobiłem krok po kroku jak pisal maslan chyba muszę sobie odpuścić buffera na servie bo za długo sie z tym mecze tak samo jak z global gk i gm shop ^^.Przecież to są najprostsze rzeczy jakie mogą być. Odpalasz nawicata, wklejasz npcki, podmieniasz html'e, //spawn 1234 i masz gotowe.
Nayana, plusik :)
Według mnie, najlepiej wpisywać sobie wszystkie nowe NPC'ki w tabeli custom_npc, wtedy jest najmniej zamieszania z wpisywaniem. Ale jeśli chcesz wpisać tego npcka, to najlepiej zjedź na sam koniec w tabeli npc, zobacz jakie jest ostatnie ID npcka, a następnie wpisz swojego buffera. Np. jeżeli ostatni npc ma ID 77777 to wpisujesz 777778, tylko pamiętaj żeby też zmienić ID w pliku buffera na takie samo.Dokładnie.
Witam (Na wstępie powiem, że jestem tu nowy)1. Wszystkie pliki zostały wgrane prawidłowo? Jeżeli tak to wgraj screena.
Mam problem z działeniem NPC buffera na mojim serverze Lineage 2.
Kożystam z plików pobranych z tej strony: http://www.l2jserver.com/nightly/index.php?dir=old%2FInterlude%2F
Problem polega na tym, że po wybraniu odpowiedniego buffa wyskakuje mi puste okienko Z tytulem Script Error
Domyślam sie ze coś może być nie tak w pliku __init__.py , ale specjalistą nie jestem. Chciał bym aby po kliknięciu na buff i kolejno zabaffowaniu program skierował gracza do miejsca skąd wybrał buffa. Jeśli ktoś bedzie w stanie to zrobić będe bardzo wdzięczny :)
Oto Link to mojego buffera: https://rapidshare.com/files/1317432717/NPC-Buffer-by-H0M3R.exe
Jeżeli popełniłem jakieś błedy co to struktury postu to bardzo przepraszam ;S.
Pozdrawiam Greaver178
Co zrobić, gdy wywala ''You are either not carrying out your quest or don't meet the criteria" po kliknięciu buff me? Tworzę właśnie serwer na L2j Interlude i żaden buffer nie chce mi działać, nawet ten z tego tematu.Jakich dokładnie plików używasz i czy na pewno nie masz żadnych problemów z wgraniem plików NPC?