Сообщений: 72
Тем: 18
Зарегистрирован: Aug 2011
Репутация:
7
Помогите разобраться...
у меня есть npc, его id 40002
есть htm для него, то есть та, которая показывается когда нажимаешь на нпц. (40002.htm)
в этом файле есть такая кнопка и в ней такой екшн:
Код: bypass -h npc_%objectId%_Quest 912_buffer
что оно делает.... оно переносит меня на на другую страницу...
и что же мне надо? Мне надо что бы при нажатие кнопки происходило какое то действие.
Что то вроде :
Код: bypass -h npc_%objectId%_Quest 912_buffer fullbuff
или же
Код: bypass -h Quest 912_buffer fullbuff
где fullbuff - event в скрипте который отвечает за баф,
а 912_buffer - имя квеста.
только это не работает...
подскажите как сделать это правильно
Сообщений: 2,036
Тем: 37
Зарегистрирован: Jun 2011
Репутация:
10,597
Неплохо бы выложить скриптец, а то как-то не очень удобно гадать.
Сообщений: 72
Тем: 18
Зарегистрирован: Aug 2011
Репутация:
7
Сообщений: 805
Тем: 21
Зарегистрирован: Apr 2008
Репутация:
1,605
NiddHoggUA Написал:скрипт чего именно?
наверное бафера?
Сообщений: 72
Тем: 18
Зарегистрирован: Aug 2011
Репутация:
7
10-16-2011, 12:12 PM
(Сообщение последний раз редактировалось: 10-16-2011, 12:12 PM NiddHoggUA.)
пф не знаю зачем но ок скину
Код: import sys
from l2jlionna.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from l2jlionna.gameserver.datatables import SkillTable
from l2jlionna import L2DatabaseFactory
from l2jlionna.gameserver.model.quest import State
from l2jlionna.gameserver.model.quest import QuestState
from l2jlionna.gameserver.model.quest.jython import QuestJython as JQuest
qn = "912_buffer"
#Включение\выключение разделов. Для выключения замените ON на OFF
attack = "ON"
defence = "ON"
resist = "ON"
support = "ON"
warcryer = "ON"
overlord = "ON"
song = "ON"
dance = "ON"
noble = "ON"
summon = "ON"
cubic = "ON"
NPC = [40002]
prise_ID = 57
QuestId = 912
vip_ID = 1166
QuestName = "buffer"
QuestDesc = "custom"
InitialHtml = "buff.htm"
#Выставление цен на бафы
min_level = 1
max_level = 90
min_prise = 1
buff_prise = 0
Chant_prise = 0
song_prise = 0
Dance_prise = 0
Hero_prise = 0
Noble_prise = 0
Summon_prise = 0
Prophecy_prise = 0
cubic_prise = 0
Full_buff_f1_prise = 0
Full_buff_f2_prise = 0
Full_buff_f3_prise = 0
Full_buff_m1_prise = 0
Full_buff_m2_prise = 0
Full_buff_m3_prise = 0
all_song_prise = 0
all_dance_prise = 0
print "importing custom: 912_buffer OK"
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(prise_ID)
if count < min_prise :
htmltext = "<html><head><body>У вас не достаточно денег.</body></html>"
if st.getPlayer().getLevel() < min_level :
htmltext = "<html><head><body>У вас слишком маленький уровень.</body></html>"
if st.getPlayer().getLevel() < max_level :
htmltext = "<html><head><body>У вас слишком высокий уровень.</body></html>"
else:
st.takeItems(prise_ID,0)
st.getPlayer().setTarget(st.getPlayer())
if event == "30100":
amount=st.getQuestItemsCount(vip_ID)
if amount < min_prise :
return "no_vip.htm"
st.setState(State.COMPLETED)
else:
return "vip.htm"
st.setState(State.COMPLETED)
if event == "fullbuff":
st.getPlayer().setTarget(st.getPlayer().getPet())
if st.getPlayer().getPet() == None :
return "no_pet.htm"
st.setState(State.COMPLETED)
else:
st.getPlayer().getPet().stopAllEffects()
SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1242,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(4699,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1397,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet())
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(912,qn,"custom")
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)
Добавлено через 38 секунд
то есть мне надо что бы при нажатие на кнопку сразу кидало на Event "fullbuff"
Сообщений: 1,326
Тем: 10
Зарегистрирован: Apr 2010
Репутация:
2,078
Давайте поймем разницу между
npc_%objectId%_Quest
и просто Quest
в первом случае беретеся квест из привязанных к NPC (т.е. для тех NpcId,Ю для которых в квесте вызван addStartId и addTalkId)
во втором, квест будет искаться в списке квестов (для которых создан QuestState) у игрока.
Поэтому, если вы не уверены, взят ли квест у пользователя используйте вызов
npc_%objectId%_Quest и естественно, убедитесь что квест привязан к этому NPC
Сообщений: 72
Тем: 18
Зарегистрирован: Aug 2011
Репутация:
7
спасибо за ответ
хорошо, допустим я буду использовать
npc_%objectId%_Quest 912_buffer
как мне сделать что бы оно переходило не на onFirstTalk а на мой Event(fullbuff) при нажатие на ту кнопку?
Сообщений: 1,326
Тем: 10
Зарегистрирован: Apr 2010
Репутация:
2,078
написать имя эвента после имени квеста
Сообщений: 72
Тем: 18
Зарегистрирован: Aug 2011
Репутация:
7
npc_%objectId%_Quest 912_buffer fullbuff
и всё? правильно? оО
Сообщений: 805
Тем: 21
Зарегистрирован: Apr 2008
Репутация:
1,605
NiddHoggUA Написал:
npc_%objectId%_Quest 912_buffer fullbuff
и всё? правильно? оО
а почему бы вам самостоятельно не проверить? делов то на 2 минуты
|