Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   htm bypass -h (https://forum.zone-game.info/showthread.php?t=16332)

NiddHoggUA 15.10.2011 23:23

htm bypass -h
 
Помогите разобраться...
у меня есть 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 - имя квеста.

только это не работает...
подскажите как сделать это правильно

Dеmon 16.10.2011 03:20

Re: htm bypass -h
 
Неплохо бы выложить скриптец, а то как-то не очень удобно гадать.

NiddHoggUA 16.10.2011 11:03

Re: htm bypass -h
 
скрипт чего именно?

mazillka 16.10.2011 11:15

Re: htm bypass -h
 
Цитата:

Сообщение от NiddHoggUA (Сообщение 143639)
скрипт чего именно?


наверное бафера?

NiddHoggUA 16.10.2011 12:12

Re: htm bypass -h
 
пф не знаю зачем но ок скину
Код:

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"

Azagthtot 16.10.2011 12:15

Re: htm bypass -h
 
Давайте поймем разницу между
npc_%objectId%_Quest
и просто Quest
в первом случае беретеся квест из привязанных к NPC (т.е. для тех NpcId,Ю для которых в квесте вызван addStartId и addTalkId)
во втором, квест будет искаться в списке квестов (для которых создан QuestState) у игрока.
Поэтому, если вы не уверены, взят ли квест у пользователя используйте вызов
npc_%objectId%_Quest и естественно, убедитесь что квест привязан к этому NPC

NiddHoggUA 16.10.2011 12:23

Re: htm bypass -h
 
спасибо за ответ

хорошо, допустим я буду использовать
npc_%objectId%_Quest 912_buffer

как мне сделать что бы оно переходило не на onFirstTalk а на мой Event(fullbuff) при нажатие на ту кнопку?

Azagthtot 16.10.2011 12:34

Re: htm bypass -h
 
написать имя эвента после имени квеста :)

NiddHoggUA 16.10.2011 18:13

Re: htm bypass -h
 
:D

npc_%objectId%_Quest 912_buffer fullbuff

и всё? правильно? оО

mazillka 16.10.2011 18:16

Re: htm bypass -h
 
Цитата:

Сообщение от NiddHoggUA (Сообщение 143700)
:D

npc_%objectId%_Quest 912_buffer fullbuff

и всё? правильно? оО

а почему бы вам самостоятельно не проверить? делов то на 2 минуты


Текущее время: 21:54. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot