[Ищу] Эвент Squash - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Описание темы:тыквы

Ответ
Опции темы
Непрочитано 29.10.2011, 16:11   #1
Пользователь

Автор темы (Топик Стартер) [Ищу] Эвент Squash

Доброго дня. Перекопал весь нэт, не могу найти нормального Squash эвента (тыквы). Сам нпц в сборке есть, дроп поливалок через фаенор - работает. Но вот как дело доходит до тыкв и дропа из них, а так же скилла поливалки - ничего не работает. Хотя вроде бы есть даже АИшка, вот она:


Код:
import sys
from com.l2jfrozen.gameserver.ai import CtrlIntention
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import CreatureSay
from com.l2jfrozen.util.random import Rnd

POLLEN = 6391
SKILL_NECTAR = 2004
# Поливаемые
WATERED_SQUASH = [12774,12775,12776,12777,12778,12779]

class squash(JQuest) :
def __init__(self,id,name,descr):
    JQuest.__init__(self,id,name,descr)
    # Выросшие
    self.adultSmallSquash = [12775,12776]
    self.adultLargeSquash = [12778,12779]

def onAdvEvent(self,event,npc,player) :
    objId = npc.getObjectId()
    if event == "Good By" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Good By!!  LOL."))
      npc.onDecay()
    elif event == "Good By1" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Всем, до свидания... Большая тыква сказала до свидания ..."))
      npc.onDecay()
    elif event == "Good By2" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Вы можете быстрее? Через 30 секунд я сбегу ..."))
    elif event == "Good By3" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Я прерву отношения с Вами через 20 секунд!"))
    elif event == "Good By4" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"У меня осталось всего 10 секунд! 9. 8. 7 ..!"))
    elif event == "Good By5" and npc and player :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Эй! Счастливо оставаться! Идиот, забудь обо мне!"))
    return
def onSkillUse(self,npc,player,skill):
    npcId = npc.getNpcId()
    skillId = skill.getId()
    if skillId != SKILL_NECTAR : return
    if npcId not in WATERED_SQUASH : return
    objectId = npc.getObjectId()
    if skillId == SKILL_NECTAR :
      # Первый полив
      if npc.getNectar() == 0 :
        if Rnd.get(2) == 1 :
          mytext = ["Чтобы быть способной расти, я должна пить только нектар ... причем чаще",
                    "Если ты будеш быстрее выливать мне нектар - я быстрее выросту!",
                    "Ну, верьте мне, прыскайте нектар! Я могу конечно превратиться в большую тыкву!!!",
                    "Принеси нектар, чтобы вырастить тыкву!",
                    "Плод прекрасной молодой тыквы начинает блестеть, когда семя предано земле! С этого времени будет способен стать здоровым и сильным!",
                    "О, давно не виделись?",
                    "Неожидал увидеть мое красивое появление?",
                    "Отлично! Это - нечто! Нектар?",
                    "Дозаправка! Заправь 5 бутылок, чтобы я смогла превратиться в большую тыкву! О!"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
          npc.addGood()
        else :
          mytext = ["Не спеши! Слишком часто, я не успеваю!",
                    "Я же не автомат, меня скорострельностью не напоиш",
                    "Да куда же ты торопишься! Слишком часто, я не успеваю!",
                    "Упс, опять слишком быстро",
                    "Давай чуток помедленней, не спеши, медленно достань бутылку и медленно ее вылей!",
                    "У тебя нет чувства скорости? Медленнее давай"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
      # Второй полив
      elif npc.getNectar() == 1 :
        if Rnd.get(2) == 1 :
          mytext = ["Желаю стать большой тыквой!",
                    "Ням, ням, ням! Вышло! Заботится - хорошо!",
                    "Как думаеш, я зрелая или гнилая?",
                    "Нектар - только лучшее! Ха! Ха! Ха!"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
          npc.addGood()
        else :
          mytext = ["О! Опять мимо! Может слишком быстро расходуеш нектар?",
                    "Если я умру такой как сейчас, Вы получите только молодую тыкву ...",
                    "Выращивают немного быстрее! Неплохо было бы стать большой тыквой, молодая тыква не хороша!",
                    "Tакую маленькую тыкву вы все должны есть? Принесите нектар, я могу быть больше!"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
      # Третий полив
      elif npc.getNectar() == 2 :
        if Rnd.get(2) == 1 :
          mytext = ["Tыква, изголодалась! Просит утолить жажду!",
                    "Ну наконец-то ..., это действительно вкусно! Есть еще?",
                    "Ухаживаешь за мной только для того, чтобы есть? Отлично, является случайным ваш ..., чтобы не дать манну на самоубийство"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
          npc.addGood()
        else :
          mytext = ["Не воду ли Вы добавляете? Какой вкус?",
                    "Хозяин, спасите меня... Я не имею аромата нектара, я должна умереть ..."]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
      # Четвертый полив
      elif npc.getNectar() == 3 :
        if Rnd.get(2) == 1 :
          mytext = ["Очень хорошо, делаешь чрезвычайно хорошо! Знаешь что следующим шагом должен делать?",
                    "Если Вы поймаете меня, я даю Вам 10 миллионов adena!!! Согласны?"]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
          npc.addGood()
        else :
          mytext = ["Я голодна, Tы хочеш чтоб я засохла?",
                    "Tребую нектар, чтобы расти немного быстрее."]
          npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
          npc.addNectar()
      # Пятый полив
      elif npc.getNectar() == 4 :
        if Rnd.get(2) == 1 :
          npc.addGood()
        if npc.getGood() >= 3 :
            if npcId == 12774 :
              newGourd = self.addSpawn(12775,npc)
              newGourd.setOwner(player.getName())
              self.startQuestTimer("Good By", 120000, newGourd, player)   # Через 2 минуты исчезновение
              self.startQuestTimer("Good By2", 90000, newGourd, player)   # 30 секунд до исчезновения
              self.startQuestTimer("Good By3", 100000, newGourd, player)  # 20 секунд до исчезновения
              self.startQuestTimer("Good By4", 110000, newGourd, player)  # 10 секунд до исчезновения
              mytext = ["Молодая тыква, жаждящая! Как, уже выросла?",
                        "Я убегу через 2 минуты"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              npc.onDecay()
            else :
              newGourd = self.addSpawn(12778,npc)
              newGourd.setOwner(player.getName())
              self.startQuestTimer("Good By1", 120000, newGourd, player)  # Через 2 минуты исчезновение
              self.startQuestTimer("Good By2", 90000, newGourd, player)   # 30 секунд до исчезновения
              self.startQuestTimer("Good By3", 100000, newGourd, player)  # 20 секунд до исчезновения
              self.startQuestTimer("Good By4", 110000, newGourd, player)  # 10 секунд до исчезновения
              mytext = ["Милосердность является очень хорошей чертой. Tеперь посмотрите, я чувствую себя все более хорошо",
                        "Я убегу через 2 минуты"]         
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              npc.onDecay()
        else :
          if npcId == 12774 :
            newGourd = self.addSpawn(12776,npc)
            newGourd.setOwner(player.getName())
            mytext = ["Эй! Была - не была! Есть! Сейчас же! Tы не можешь должным образом заботиться? Я же так сгнию!",
                      "Ничего себе, остановки? За что тебя благодарить",
                      "Жажду нектара о ...",
                      "Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
            npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
            npc.onDecay()
          if npcId == 12777 :
            newGourd = self.addSpawn(12779,npc)
            newGourd.setOwner(player.getName())
            mytext = ["Эй! Была - не была! Есть! Сейчас же! Tы не можешь должным образом заботиться? Я так сгнию!",
                      "Ничего себе, остановки? За что тебя благодарить",
                      "Жажду нектара о ...",
                      "Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
            npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
            npc.onDecay()
    return

def onAttack(self,npc,player,damage,isPet) :
    npcId = npc.getNpcId()
    objId = npc.getObjectId()
    if npcId not in WATERED_SQUASH : return
    if npcId  in self.adultLargeSquash :
      if Rnd.get(30) < 2 :
        mytext = ["Укусы плетут кружево крысой ..., чтобы заменить ... тело ...!",
                  "Ха ха, росла! Полностью на всех!",
                  "Не можете чтоли все прицелиться? Смотрите все, чтобы не сбежала ...",
                  "Я считаю ваши удары! О, напоминает удар снова!",
                  "Не тратьте впустую ваше время!",
                  "Ха, этот звук действительно приятно слышать?",
                  "Я потребляю ваши атаки, чтобы расти!",
                  "Время, чтобы ударить снова! Ударь еще разок!",
                  "Tолько полезная музыка может открыть большую тыкву... Меня нельзя открыть с оружием!"]
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
    return

def onKill(self,npc,player,isPet) :
    npcId = npc.getNpcId()
    objId = npc.getObjectId()
    if npcId not in WATERED_SQUASH : return
    if npcId in self.adultSmallSquash :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Tыква открывается!!"))
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей  ..."))
    elif npcId in self.adultLargeSquash :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Tыква открывается!!"))
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей  ..."))
    else :
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"За что, хозяин?!"))
      npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ой, кишки вывалились!!"))
    return

QUEST = squash(-1,"group_template","ai")
CREATED = State('Start', QUEST)
QUEST.setInitialState(CREATED)

for i in WATERED_SQUASH:
    QUEST.addSkillUseId(i)
    QUEST.addAttackId(i)
    QUEST.addKillId(i)

если у кого-нибудь есть полный эвент, нормально работающий, поделитесь пожалуйста, очень прошу!
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 29.10.2011, 21:45   #2
Изгнанные

По умолчанию Re: [Ищу] Эвент Squash

под какую сборку
Darvin вне форума Отправить сообщение для Darvin с помощью ICQ Отправить сообщение для Darvin с помощью Skype™ Ответить с цитированием
Непрочитано 29.10.2011, 22:40   #3
Аватар для R2D2
Custodem

По умолчанию Re: [Ищу] Эвент Squash

Цитата:
Сообщение от Darvin Посмотреть сообщение
под какую сборку
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest

а так не видать?
__________________
Пусть в горле ложка застрянет у того кто писал систему вступления в клан. © Mifesto
R2D2 вне форума Отправить сообщение для R2D2 с помощью ICQ Отправить сообщение для R2D2 с помощью Skype™ Ответить с цитированием
Непрочитано 30.10.2011, 13:05   #4
Пользователь

Автор темы (Топик Стартер) Re: [Ищу] Эвент Squash

да под любую С6. просто вообще нет ничего путевого(, ну не верится что никто так и не реализовал этот маленький эвент..

Добавлено через 1 час 7 минут
уже разобрался и исправил, спасибо ,можно закрывать
__________________

Последний раз редактировалось mego4el; 30.10.2011 в 14:13. Причина: Добавлено сообщение
mego4el вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эвент JustPewPew Работа со скриптами 9 19.09.2011 03:05
Регистрация на эвент Duha199612 Lineage II 1 20.07.2011 23:23
Эвент на Interlude eforall Lineage II 2 12.10.2010 21:19
Не запускается эвент Solking Lineage II 7 22.09.2010 19:37
ТвТ эвент Delakrua Lineage II 3 26.12.2009 08:27


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 12:45. Часовой пояс GMT +3.

Вверх