2015年4月—2024年4月,论坛已建立9周年,欢迎加入QQ群讨论:419848937

可以让你的NPC拥有辅助状态服务

爆率、物品、补丁修改等技术参考资料
回复
头像
天堂之手
Mr.GL
Mr.GL
帖子: 263
注册时间: 2018-02-24 21:37

可以让你的NPC拥有辅助状态服务

帖子 天堂之手 » 2018-03-14 16:06

gameserver\data\html\default\32073.htm (如果没有这个就自己增加吧)

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<tr><td><font color="FF40FF">路过的老婆婆:</font></tr></td><br>
<br>
我的城主大人,很高兴您回来看我!
<br>
我可以给你有用的辅助状态,要吗?(限制40级以上)<br>
<button value="麻烦帮我++吧" action="bypass -h npc_%objectId%_Quest 9999_NPCBuffer" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
<img src=Sek.start_logo width=256 height=256 align=center>
</body></html>


gameserver\data\jscript\custom\ 里面增加个 "9999_NPCBuffer" 资料夹
以下都在资料夹里面增加

gameserver\data\jscript\custom\9999_NPCBuffer\__init__.py

Copy code
import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
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=[32073]
ADENA_ID=57
QuestId = 9999
QuestName = "NPCBuffer"
QuestDesc = "custom"
InitialHtml = "1.htm"

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

class Quest (JQuest) :

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)


def onEvent(self,event,st):
htmltext = event
count=st.getQuestItemsCount(ADENA_ID)
if count < 200000 :
htmltext = "<html><head><body>金币或等级不足。</body></html>"
else:
st.getPlayer().setTarget(st.getPlayer())
if event == "2":
st.takeItems(ADENA_ID,160000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
st.setState(COMPLETED)

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

if event == "4":
st.takeItems(ADENA_ID,140000)
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)
st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())
return "4.htm"
st.setState(COMPLETED)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


def onTalk (self,npc,player):
htmltext = "<html><head><body>没进行任务或条件不符合。</body></html>"
st = player.getQuestState(qn)
st.setState(STARTED)
return InitialHtml
###################new###############################
# def onTalk (self,npc,player):
# st = player.getQuestState(qn)
# if not st : return "<html><head><body>没进行任务或条件不符合。</body></html>"
# return InitialHtml
#
#####################new############################


QUEST = Quest(QuestId,qn,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)


QUEST.setInitialState(CREATED)

for npcId in NPC:
QUEST.addStartNpc(32073)
QUEST.addTalkId(32073)

print "...done"



再来增加htm
gameserver\data\jscript\custom\9999_NPCBuffer\1.htm

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<font color="FF40FF">全能++NPC</font><br>
欢迎使用城堡专属技能,不相信可以试用看看吧<br>
<br>
<font color="00FFBB">辅助技能列表:</font><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<tr><td></td><td><button value="回血 (1千/次)" action="bypass -h Quest 9999_NPCBuffer 6" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<tr>
<td><button value="辅助技能" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="舞蹈辅助" action="bypass -h Quest 9999_NPCBuffer 2.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="诗歌辅助" action="bypass -h Quest 9999_NPCBuffer 3.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
</center>
</body>
</html>


gameserver\data\jscript\custom\9999_NPCBuffer\2.htm

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<tr>
<td><font color="00FFBB">舞蹈辅助 (2万/个) 注意:必须装备双刀才能使用</font></td>
</tr>
<tr>
<td> </td>
</tr>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td>

<table width="260">
<tr>
<td><button value="战士之舞" action="bypass -h Quest 9999_NPCBuffer 26" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="士气之舞" action="bypass -h Quest 9999_NPCBuffer 27" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="神秘之舞" action="bypass -h Quest 9999_NPCBuffer 28" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="火灵之舞" action="bypass -h Quest 9999_NPCBuffer 29" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="狂暴之舞" action="bypass -h Quest 9999_NPCBuffer 30" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="专注之舞" action="bypass -h Quest 9999_NPCBuffer 31" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="光耀之舞" action="bypass -h Quest 9999_NPCBuffer 32" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="抗水之舞" action="bypass -h Quest 9999_NPCBuffer 33" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="抗土之舞" action="bypass -h Quest 9999_NPCBuffer 34" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="吸血之舞" action="bypass -h Quest 9999_NPCBuffer 35" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="保护之舞" action="bypass -h Quest 9999_NPCBuffer 36" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="暗影之舞" action="bypass -h Quest 9999_NPCBuffer 37" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="艳惑之舞" action="bypass -h Quest 9999_NPCBuffer 38" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
</table><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</center>
</body>
</html>


gameserver\data\jscript\custom\9999_NPCBuffer\3.htm

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<tr>
<td><font color="00FFBB">诗歌辅助 (2万/个)</font></td>
</tr>
<tr>
<td> </td>
</tr>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td>

<table width="260">
<tr>
<td><button value="大地之歌" action="bypass -h Quest 9999_NPCBuffer 39" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="生命之歌" action="bypass -h Quest 9999_NPCBuffer 40" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="水灵之歌" action="bypass -h Quest 9999_NPCBuffer 41" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="护卫之歌" action="bypass -h Quest 9999_NPCBuffer 42" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="风灵之歌" action="bypass -h Quest 9999_NPCBuffer 43" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="猎者之歌" action="bypass -h Quest 9999_NPCBuffer 44" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="祈愿之歌" action="bypass -h Quest 9999_NPCBuffer 45" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="胜利之歌" action="bypass -h Quest 9999_NPCBuffer 46" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="复仇之歌" action="bypass -h Quest 9999_NPCBuffer 47" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="抗火之歌" action="bypass -h Quest 9999_NPCBuffer 48" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="抗风之歌" action="bypass -h Quest 9999_NPCBuffer 49" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="沉思之歌" action="bypass -h Quest 9999_NPCBuffer 50" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="斗者之歌" action="bypass -h Quest 9999_NPCBuffer 51" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="奋迅之歌" action="bypass -h Quest 9999_NPCBuffer 52" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
</table><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td>
</center>
</body>
</html>


gameserver\data\jscript\custom\9999_NPCBuffer\4.htm

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<tr>
<td><font color="00FFBB">先知辅助技能</font></td>
</tr>
<tr>
<td> </td>
</tr>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<tr><td><button value="战士 - 16万" action="bypass -h Quest 9999_NPCBuffer 2" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><button value="法师 - 8万" action="bypass -h Quest 9999_NPCBuffer 3" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><button value="其他 - 14万" action="bypass -h Quest 9999_NPCBuffer 4" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><button value="所有 - 40万" action="bypass -h Quest 9999_NPCBuffer 5" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><button value="自选" action="bypass -h Quest 9999_NPCBuffer 5.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td>
</center>
</body>
</html>


gameserver\data\jscript\custom\9999_NPCBuffer\5.htm

Copy code
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<tr>
<td><font color="00FFBB">自选你要的辅助技能(1万5千/个)</font></td>
</tr>
<tr>
<td> </td>
</tr>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td>
<tr>
<td> </td>
</tr>

<table width="260">
<tr>
<td><button value="风之疾走" action="bypass -h Quest 9999_NPCBuffer 7" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="减轻负重" action="bypass -h Quest 9999_NPCBuffer 8" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="保护盾" action="bypass -h Quest 9999_NPCBuffer 9" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="力量强化" action="bypass -h Quest 9999_NPCBuffer 10" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="心灵防护" action="bypass -h Quest 9999_NPCBuffer 11" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="神佑之体" action="bypass -h Quest 9999_NPCBuffer 12" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="神佑之魂" action="bypass -h Quest 9999_NPCBuffer 13" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="魔法屏障" action="bypass -h Quest 9999_NPCBuffer 14" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="抵抗冲击" action="bypass -h Quest 9999_NPCBuffer 15" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="精神专注" action="bypass -h Quest 9999_NPCBuffer 16" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="狂战士魂" action="bypass -h Quest 9999_NPCBuffer 17" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="祝福之盾" action="bypass -h Quest 9999_NPCBuffer 18" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="吸血怒击" action="bypass -h Quest 9999_NPCBuffer 19" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="灵活思绪" action="bypass -h Quest 9999_NPCBuffer 20" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="魔力催化" action="bypass -h Quest 9999_NPCBuffer 21" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="速度激发" action="bypass -h Quest 9999_NPCBuffer 22" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="引导,导致" action="bypass -h Quest 9999_NPCBuffer 23" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="弱点侦测" action="bypass -h Quest 9999_NPCBuffer 24" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
<tr>
<td><button value="死之呢喃" action="bypass -h Quest 9999_NPCBuffer 25" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</tr>
</table><br>
<tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br>
<td><button value="返回" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br>
</center>
</body>
</html>
NPCBuffer(加状态师).rar
最后进到游戏里用GM号创造32073这个NPC就可以正常用了
自己目前是用这个给城堡的血盟++的
您没有权限查看这个主题的附件。
图片

lls120257
流浪者
流浪者
帖子: 1
注册时间: 2020-10-25 15:44

Re: 可以让你的NPC拥有辅助状态服务

帖子 lls120257 » 2020-10-29 18:48

目前没有执行任务,或条件不符合
 

carttlew
流浪者
流浪者
帖子: 3
注册时间: 2021-05-01 23:12

Re: 可以让你的NPC拥有辅助状态服务

帖子 carttlew » 2021-05-23 22:30

C6的java服务端完美使用,可惜要消耗mp,舞蹈还要装备双刀,取消这些限制就好了。

回复