awstudio 124 Опубликовано 19 апреля, 2016 (изменено) Доброго времени суток проблема данным ивентом, а именно телепортация после проверки еквипа персонажа. В конфигах выставляешь одно, а телепортирует в другое место А должен Не реагирует на конфигурацию в квесте #Введите координаты х,у,z на зону телепорта, координаты можно узнать из игры командой /loc st.getPlayer().teleToLocation(157000,120376,-2208) + к этому вылетает окно Script Error при ударе моба который указан в конфиге Ивент брал тут [spoiler='Полный код Ивента']# -*- coding: cp1251 -*- import sys from ru.catssoftware import Config from ru.catssoftware.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import QuestState from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest qn = "50000_NewbieZone" #НПЦ Старт квеста - указан ИД в строке. Starter = 50030 #Приз за успешное убийство монстра.указать ИД. ItemID = 9177 #Количество вещей дающихся за успешное убийство монстра. Указать количество - Внимание, не указывайте слишком высокие цифры если дело идет о вещах которые не складываются в одну ячейку, это может повредить серверу! Item_AMOUNT = 100 #IУкажите ИД вещей запрещенных на вход в евент. #Пример указывания ИД запрещенных вещей: # RI = [ ID, ID2, ID3...] class Quest (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() st = player.getQuestState(qn) if npc.getNpcId() in [Monsters] : #Выставляем ИД вещей которые НЕЛЬЗЯ использовать на квесте. if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: return else: st.giveItems(ItemID,Item_AMOUNT) else : return def onTalk (self,npc,player): htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.by Xenos_xp</body></html>" st = player.getQuestState(qn) if st: npcId = npc.getNpcId() id = st.getState() cond = st.getInt("cond") #Выставляем ИД вещей которые НЕЛЬЗЯ использовать на квесте. if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите хтмл файл который будет отображать что требования для входа в евент не подходящие. htmltext = "2.htm" else : #Введите координаты х,у,z на зону телепорта, координаты можно узнать из игры командой /loc st.getPlayer().teleToLocation(157032,120232,-2184) #Текст который будет появляться после успешного телепорта в локацию. htmltext = "3.htm" return htmltext def onAttack (self,npc,player,damage,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() #Выставляем ИД моба который будет участвовать в евенте, нет зависимости от конфигов. if npcId == 38040: if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите координаты х,у,z на которых будет перемещаться игрок, если он пробует бить монстра с не разреженным еквиптом. st.getPlayer().teleToLocation(82713,148620,-3467) #Выставляем циферку кармы, которая прибавляется при попытке наебать систему. st.getPlayer().setKarma(st.getPlayer().getKarma() +500) return QUEST = Quest(50000, qn, "NewbieZone") QUEST.addStartNpc(Starter) QUEST.addTalkId(Starter) #Монстры которые участвует в квесте, указать ИД. #Таблица монстров, пример вноса ИД в таблицу: #[1234, 33345, 3435] for Monsters in [38040]: QUEST.addKillId(Monsters) QUEST.addAttackId(38040) [/spoiler] Как исправить это ? Изменено 19 апреля, 2016 пользователем Valhalla Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 апреля, 2016 в методе teleToLocation видать идёт рандомный разброс. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 в методе teleToLocation видать идёт рандомный разброс. Не думаю т.к. телепортирует все время в 1 и ту же точку как на 1 скрине Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 апреля, 2016 Не думаю т.к. телепортирует все время в 1 и ту же точку как на 1 скрине посмотри сам метод что туда передаётся и что с координатами происходит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 19 апреля, 2016 Фи, питон =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 посмотри сам метод что туда передаётся и что с координатами происходит. А по подробнее Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 Фи, питон =) Ну а что поделать ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 (изменено) Проблему с телепортом решил но, вылазет окошко Script Error. Хотя итемы вадает в логах пишет 19/04/2016 13:17:58.765, /home/game/data/scripts/quests/50000_NewbieZone/__init__.py Traceback (innermost last): (no code object) at line 0 TypeError: onAttack() too many arguments; expected 5 got 6 Изменено 19 апреля, 2016 пользователем Valhalla Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 апреля, 2016 (изменено) onAttack() передаёшь 6 аргументов, а надо 5 Изменено 19 апреля, 2016 пользователем Evolution Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 У меня там сейчас стоит 5 аргументов но так же выдает ошибку. При чем там не менял ничего. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 19 апреля, 2016 У меня там сейчас стоит 5 аргументов но так же выдает ошибку. При чем там не менял ничего. значит 6 надо, ты же сам скинул ошибку TypeError: onAttack() too many arguments; expected 5 got 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 (изменено) def onAttack (self,npc,player,damage,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() #Выставляем ИД моба который будет участвовать в евенте, нет зависимости от конфигов. if npcId == 38040: if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите координаты х,у,z на которых будет перемещаться игрок, если он пробует бить монстра с не разреженным еквиптом. st.getPlayer().teleToLocation(82713,148620,-3467) #Выставляем циферку кармы, которая прибавляется при попытке наебать систему. st.getPlayer().setKarma(st.getPlayer().getKarma() +500) return QUEST = Quest(50000, qn, "NewbieZone") QUEST.addStartNpc(Starter) QUEST.addTalkId(Starter) #Монстры которые участвует в квесте, указать ИД. #Таблица монстров, пример вноса ИД в таблицу: #[1234, 33345, 3435] for Monsters in [38040]: QUEST.addKillId(Monsters) QUEST.addAttackId(38040) И какой тут 6 аргумент нужен? Изменено 19 апреля, 2016 пользователем Valhalla Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrDuck 5 Опубликовано 19 апреля, 2016 (изменено) def onAttack (self,npc,player,damage,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() #Выставляем ИД моба который будет участвовать в евенте, нет зависимости от конфигов. if npcId == 38040: if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите координаты х,у,z на которых будет перемещаться игрок, если он пробует бить монстра с не разреженным еквиптом. st.getPlayer().teleToLocation(82713,148620,-3467) #Выставляем циферку кармы, которая прибавляется при попытке наебать систему. st.getPlayer().setKarma(st.getPlayer().getKarma() +500) return QUEST = Quest(50000, qn, "NewbieZone") QUEST.addStartNpc(Starter) QUEST.addTalkId(Starter) #Монстры которые участвует в квесте, указать ИД. #Таблица монстров, пример вноса ИД в таблицу: #[1234, 33345, 3435] for Monsters in [38040]: QUEST.addKillId(Monsters) QUEST.addAttackId(38040) И какой тут 6 аргумент нужен? Так а в самой сборке поглядеть метод onAttack и что туда должно передаваться религия не позволяет? p.s. def onAttack (self,npc,player,damage,isPet,skill): Изменено 19 апреля, 2016 пользователем mrDuck Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 (изменено) Так а в самой сборке поглядеть метод onAttack и что туда должно передаваться религия не позволяет? p.s. def onAttack (self,npc,player,damage,isPet,skill): Смотрел но не нашел т.к. в аналогичных ивентах было только по 5 атрибутов Сделал как говорил в логах теперь File "__init__.py", line 29, in onKill AttributeError: 'NoneType' object has no attribute 'getQuestItemsCount' До этого такой ошибки не было вообще. Изменено 19 апреля, 2016 пользователем Valhalla Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 (изменено) # -*- coding: cp1251 -*- import sys from ru.catssoftware import Config from ru.catssoftware.gameserver.model.quest import State from ru.catssoftware.gameserver.model.quest import QuestState from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest qn = "50000_NewbieZone" #НПЦ Старт квеста - указан ИД в строке. Starter = 50030 #Приз за успешное убийство монстра.указать ИД. ItemID = 9177 #Количество вещей дающихся за успешное убийство монстра. Указать количество - Внимание, не указывайте слишком высокие цифры если дело идет о вещах которые не складываются в одну ячейку, это может повредить серверу! Item_AMOUNT = 100 #IУкажите ИД вещей запрещенных на вход в евент. #Пример указывания ИД запрещенных вещей: # RI = [ ID, ID2, ID3...] class Quest (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() st = player.getQuestState(qn) if npc.getNpcId() in [Monsters] : #Выставляем ИД вещей которые НЕЛЬЗЯ использовать на квесте. if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: return else: st.giveItems(ItemID,Item_AMOUNT) else : return def onTalk (self,npc,player): htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.by Xenos_xp</body></html>" st = player.getQuestState(qn) if st: npcId = npc.getNpcId() id = st.getState() cond = st.getInt("cond") #Выставляем ИД вещей которые НЕЛЬЗЯ использовать на квесте. if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите хтмл файл который будет отображать что требования для входа в евент не подходящие. htmltext = "2.htm" else : #Введите координаты х,у,z на зону телепорта, координаты можно узнать из игры командой /loc st.getPlayer().teleToLocation(156936,-120312,-2208) #Текст который будет появляться после успешного телепорта в локацию. htmltext = "3.htm" return htmltext def onAttack (self,npc,player,damage,isPet,skill): st = player.getQuestState(qn) npcId = npc.getNpcId() #Выставляем ИД моба который будет участвовать в евенте, нет зависимости от конфигов. if npcId == 38040: if st.getQuestItemsCount(10036) >= 1 or st.getQuestItemsCount(10035) >= 1 or st.getQuestItemsCount(10034) >= 1 or st.getQuestItemsCount(10033) >= 1 or st.getQuestItemsCount(10028) >= 1 or st.getQuestItemsCount(10026) >= 1 or st.getQuestItemsCount(10024) >= 1 or st.getQuestItemsCount(10022) >= 1 or st.getQuestItemsCount(10011) >= 1 or st.getQuestItemsCount(9993) >= 1 or st.getQuestItemsCount(9985) >= 1 or st.getQuestItemsCount(9984) >= 1 or st.getQuestItemsCount(9983) >= 1 or st.getQuestItemsCount(9964) >= 1 or st.getQuestItemsCount(9963) >= 1 or st.getQuestItemsCount(9962) >= 1 or st.getQuestItemsCount(9961) >= 1 or st.getQuestItemsCount(9960) >= 1 or st.getQuestItemsCount(9959) >= 1 or st.getQuestItemsCount(9958) >= 1 or st.getQuestItemsCount(9957) >= 1 or st.getQuestItemsCount(9956) >= 1 or st.getQuestItemsCount(9955) >= 1 or st.getQuestItemsCount(9954) >= 1 or st.getQuestItemsCount(9953) >= 1 or st.getQuestItemsCount(9952) >= 1 or st.getQuestItemsCount(9951) >= 1 or st.getQuestItemsCount(9950) >= 1 or st.getQuestItemsCount(9900) >= 1 or st.getQuestItemsCount(9754) >= 1 or st.getQuestItemsCount(9753) >= 1 or st.getQuestItemsCount(9752) >= 1 or st.getQuestItemsCount(9751) >= 1 or st.getQuestItemsCount(9750) >= 1 or st.getQuestItemsCount(9749) >= 1 or st.getQuestItemsCount(9748) >= 1 or st.getQuestItemsCount(9747) >= 1 or st.getQuestItemsCount(9746) >= 1 or st.getQuestItemsCount(9745) >= 1 or st.getQuestItemsCount(9744) >= 1 or st.getQuestItemsCount(9743) >= 1 or st.getQuestItemsCount(9742) >= 1 or st.getQuestItemsCount(9741) >= 1 or st.getQuestItemsCount(9740) >= 1 or st.getQuestItemsCount(9657) >= 1 or st.getQuestItemsCount(10010) >= 1 or st.getQuestItemsCount(10009) >= 1 or st.getQuestItemsCount(10008) >= 1 or st.getQuestItemsCount(10007) >= 1 or st.getQuestItemsCount(10006) >= 1 or st.getQuestItemsCount(10005) >= 1 or st.getQuestItemsCount(10004) >= 1 or st.getQuestItemsCount(10003) >= 1 or st.getQuestItemsCount(10002) >= 1 or st.getQuestItemsCount(10001) >= 1 or st.getQuestItemsCount(10000) >= 1 or st.getQuestItemsCount(9685) >= 1 or st.getQuestItemsCount(9526) >= 1 or st.getQuestItemsCount(9525) >= 1 or st.getQuestItemsCount(9524) >= 1 or st.getQuestItemsCount(9523) >= 1 or st.getQuestItemsCount(9522) >= 1 or st.getQuestItemsCount(9521) >= 1 or st.getQuestItemsCount(9520) >= 1 or st.getQuestItemsCount(9519) >= 1 or st.getQuestItemsCount(9518) >= 1 or st.getQuestItemsCount(9517) >= 1 or st.getQuestItemsCount(9516) >= 1 or st.getQuestItemsCount(9515) >= 1 or st.getQuestItemsCount(9514) >= 1 or st.getQuestItemsCount(9513) >= 1 or st.getQuestItemsCount(9512) >= 1 or st.getQuestItemsCount(9511) >= 1 or st.getQuestItemsCount(9510) >= 1 or st.getQuestItemsCount(9509) >= 1 or st.getQuestItemsCount(9508) >= 1 or st.getQuestItemsCount(9507) >= 1 or st.getQuestItemsCount(9506) >= 1 or st.getQuestItemsCount(9505) >= 1 or st.getQuestItemsCount(9504) >= 1 or st.getQuestItemsCount(9503) >= 1 or st.getQuestItemsCount(9502) >= 1 or st.getQuestItemsCount(9501) >= 1 or st.getQuestItemsCount(9500) >= 1: #Введите координаты х,у,z на которых будет перемещаться игрок, если он пробует бить монстра с не разреженным еквиптом. st.getPlayer().teleToLocation(17152,170144,-3490) #Выставляем циферку кармы, которая прибавляется при попытке наебать систему. st.getPlayer().setKarma(st.getPlayer().getKarma() +500) return QUEST = Quest(50000, qn, "NewbieZone") QUEST.addStartNpc(Starter) QUEST.addTalkId(Starter) #Монстры которые участвует в квесте, указать ИД. #Таблица монстров, пример вноса ИД в таблицу: #[1234, 33345, 3435] for Monsters in [38040]: QUEST.addKillId(Monsters) QUEST.addAttackId(38040) Полностью рабочий скрипт bypass -h npc_%objectId%_Quest 50000_NewbieZone для кнопки Изменено 19 апреля, 2016 пользователем Valhalla 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
awstudio 124 Опубликовано 19 апреля, 2016 Автоматически сформированное сообщение Тема закрыта модератором. Причина: Решено Если вы не согласны с закрытием темы, то можете обратиться к администратору. С наилучшими пожеланиями ForumMaxi - Сообщество администраторов онлайн игр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты