Страница 1 из 1 1
Модератор форума: BlesseNtumble  
Форум » Lineage 2 "Java" » Дополнения к серверам » Эвент тыквы (помогите) (нужен срочно эвент тыквы для la2base)
Эвент тыквы (помогите)
Sadwind Дата: Среда, 29.09.2010, 17:07 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Помогите пожалуйста, скиньте пожалуйста рабочий эвент тыкв для сборки la2base.
Тыквы сеються но не растут.
Вот Из сборки РТ, НО не работает, может нужно че переделать???
Code
# ------------------------------------------------------------------------------------------
#  <history>
#        Maked by Bibigon  Version: 0.2 Rev for T0  11.10.2007
#                          (http://l2rt.ru/)
#  Official idea - NCSoft (http://www.lineage2.com/).
#        "Мы пофлудисты - народ МуСКуЛистый" (шутка)
#  </history>
# -------------------------------------------------------------------------------------------
import sys

from net.sf.l2j.gameserver.ai                   import CtrlIntention
from net.sf.l2j.gameserver.idfactory            import IdFactory
from net.sf.l2j.gameserver.datatables           import NpcTable
from net.sf.l2j.gameserver.model.actor.instance import L2GourdInstance
from net.sf.l2j.gameserver.model.quest.jython   import QuestJython as JQuest
from net.sf.l2j.gameserver.serverpackets        import CreatureSay
from net.sf.l2j.gameserver.serverpackets        import SocialAction
from net.sf.l2j.util                            import Rnd

POLLEN = 6391
SKILL_NECTAR = 2005

class squash(JQuest) :

  # init function.  Add in here variables that you'd like to be inherited by subclasses (if any)
  def __init__(self,id,name,descr):
      JQuest.__init__(self,id,name,descr)
      # Поливаемые
      self.wateredSquash = [12774,12775,12776,12777,12778,12779]
      # Выросшие
      self.adultSmallSquash = [12775,12776]
      self.adultLargeSquash = [12778,12779]

      self.nectar = 0
    
      for i in self.wateredSquash :
          self.addSkillUseId(i)
          self.addAttackId(i)
          self.addKillId(i)
           
  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()
        self.nectar = 0
     elif event == "Good By1" and npc and player :
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Всем, до свидания... Большая тыква сказала до свидания ..."))
        npc.onDecay()
        self.nectar = 0
     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(),"Эй! Счастливо оставаться! Идиот, забудь обо мне!"))

  def onSkillUse (self,npc,player,skill):
     npcId = npc.getNpcId()
     skillId = skill.getId()
     if skillId != SKILL_NECTAR : return
     if npcId not in self.wateredSquash  : return
     objectId = npc.getObjectId()
     if skillId == SKILL_NECTAR :
# Первый полив
        if self.nectar == 0 :
           if  npc.getLifeTime() == 1000 : # неудачный
              mytext = ["Не спеши! Слишком часто, я не успеваю!"
                        "Я же не автомат, меня скорострельностью не напоиш"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           elif  npc.getLifeTime() == 2000 : # неудачный
              mytext = ["Да не спеши же ты! Слишком часто, я не успеваю!"
                        "Ооопять, двадцать пять, я же говорила - не части"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           elif  npc.getLifeTime() == 3000 : # неудачный
              mytext = ["Да куда же ты торопишься! Слишком часто, я не успеваю!"
                        "Упс, опять слишком быстро"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           elif  npc.getLifeTime() == 4000 : # неудачный
              mytext = ["Давай чуток помедленней, не спеши, медленно достань бутылку и медленно ее вылей!"
                        "У тебя нет чувства скорости? Медленнее давай"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           elif  npc.getLifeTime() == 5000 : # удачный
              mytext = ["Плод прекрасной молодой тыквы начинает блестеть, когда семя предано земле! С этого времени будет способен стать здоровым и сильным!",
                        "О, давно не виделись?",
    "Неожидал увидеть мое красивое появление?",
    "Отлично! Это - нечто! Нектар?",
    "Дозаправка! Заправь 5 бутылок, чтобы я смогла превратиться в большую тыкву! О!"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           else :
              npc.setLifeTime(5000)           #  неудачный
              mytext = ["Чтобы быть способной расти, я должна пить только нектар ... причем чаще",
    "Если ты будеш быстрее выливать мне нектар - я быстрее выросту!",
    "Ну, верьте мне, прыскайте нектар! Я могу конечно превратиться в большую тыкву!!!",
    "Принеси нектар, чтобы вырастить тыкву!"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
# Второй полив
        elif self.nectar == 1 :
           if  npc.getLifeTime() == 10000 : # удачный
              mytext = ["Желаю стать большой тыквой!",
                        "Ням, ням, ням! Вышло! Заботится - хорошо!,"
    "Как думаеш, я зрелая или гнилая?",
    "Нектар - только лучшее! Ха! Ха! Ха!"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           else :
              npc.setLifeTime(10000)        #  неудачный
              mytext = ["О! Опять мимо! Может слишком быстро расходуеш нектар?",
                        "Если я умру такой как сейчас, Вы получите только молодую тыкву ...",
    "Выращивают немного быстрее! Неплохо было бы стать большой тыквой, молодая тыква не хороша!",
    "Такую маленькую тыкву вы все должны есть? Принесите нектар, я могу быть больше!"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
# Третий полив
        elif self.nectar == 2 :
           if  npc.getLifeTime() == 15000 : # удачный
              if npcId == 12774 :
                 newGourd = self.addSpawn(12775,npc)  
                 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()
                 self.nectar = self.nectar + 1
              else :
                 newGourd = self.addSpawn(12778,npc)  
                 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 = ["Милосердность является очень хорошей чертой. Теперь посмотрите, я чувствую себя все более хорошо",
                           "Я убегу через 2 минуты"]           
                 npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
                 npc.onDecay()
                 self.nectar = self.nectar + 1
           else :                             #  неудачный
              npc.setLifeTime(15000)
              if npcId == 12774 :
                  newGourd = self.addSpawn(12776,npc)
                  mytext = ["Эй! Была - не была! Есть! Сейчас же! Ты не можешь должным образом заботиться? Я же так сгнию!",
                        "Ничего себе, остановки? За что тебя благодарить",
    "Жажду нектара о ...",
    "Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
                  npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
                  npc.onDecay()
                  self.nectar = self.nectar + 1
              if npcId == 12777 :
                  newGourd = self.addSpawn(12779,npc)
                  mytext = ["Эй! Была - не была! Есть! Сейчас же! Ты не можешь должным образом заботиться? Я так сгнию!",
                        "Ничего себе, остановки? За что тебя благодарить",
    "Жажду нектара о ...",
    "Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
                  npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
                  npc.onDecay()
                  self.nectar = self.nectar + 1
# Четвертый полив              
        elif self.nectar ==  3 :
           if  npc.getLifeTime() == 20000 : # удачный
              mytext = ["Большая тыква, изголодалась! Просит утолить жажду!",
                        "Ну наконец-то ..., это действительно вкусно! Есть еще?",
    "Ухаживаешь за мной только для того, чтобы есть? Отлично, является случайным ваш ..., чтобы не дать манну на самоубийство"]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
           else :
              npc.setLifeTime(20000)       #  неудачный
              mytext = ["Не воду ли Вы добавляете? Какой вкус?",
                        "Хозяин, спасите меня... Я не имею аромата нектара, я должна умереть ..."]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
# Пятый полив
        elif self.nectar == 4 :
           if  npc.getLifeTime() == 25000 : # удачный
              mytext = ["Очень хорошо, делаешь чрезвычайно хорошо! Знаешь что следующим шагом должен делать?",
                        "Если Вы поймаете меня, я даю Вам 10 миллионов adena!!! Согласны?"]           
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = 5
           else :
              npc.setLifeTime(25000)       #  неудачный
              mytext = ["Я голодна, Ты хочеш чтоб я засохла?",
                        "Требую нектар, чтобы расти немного быстрее."]
              npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
              self.nectar = self.nectar + 1
        return        
   
# К сожалению onAttack() получает фокус только в случае если
# damage > 0, но необходимо чтобы срабатывало и при damage == 0
# иначе фразы будут появляться только в случае применения Chrono оружия

  def onAttack(self,npc,player,damage,isPet) :
     npcId = npc.getNpcId()
     objId = npc.getObjectId()
     if npcId not in self.wateredSquash : return
     if npcId  in self.adultLargeSquash :
        if Rnd.get(30) < 2 :      # TODO : надо бы подобрать частоту выкриков
           mytext = ["Укусы плетут кружево крысой ..., чтобы заменить ... тело ...!",
                    "Ха ха, росла! Полностью на всех!",
                    "Не можете чтоли все прицелиться? Смотрите все, чтобы не сбежала ...",
                    "Я считаю ваши удары! О, напоминает удар снова!",
                    "Не тратьте впустую ваше время!",
                    "Ха, этот звук действительно приятно слышать?",
                    "Я потребляю ваши атаки, чтобы расти!",
                    "Время, чтобы ударить снова! Ударь еще разок!",
                    "Только полезная музыка может открыть большую тыкву... Меня нельзя открыть с оружием!"]
           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 self.wateredSquash  : return
     if npcId in self.adultSmallSquash :
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Тыква открывается!!"))
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей  ..."))
        self.nectar = 0
     elif npcId in self.adultLargeSquash :
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Тыква открывается!!"))
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей  ..."))        
        self.nectar = 0
     else :
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"За что, хозяин?!"))
        npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ой, кишки вывалились!!"))        
        self.nectar = 0
     return

QUEST       = squash(-1,"group_template","ai")


 
jeny Дата: Четверг, 30.09.2010, 14:15 | Сообщение # 2
Лейтенант
Группа: Пользователи
Сообщений: 75
Награды: 5
Репутация: 12
Статус: Offline
бывает ( up

 
Форум » Lineage 2 "Java" » Дополнения к серверам » Эвент тыквы (помогите) (нужен срочно эвент тыквы для la2base)
Страница 1 из 1 1
Поиск: