Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Дополнения к Lineage 2 Java серверам/Эвент тыквы
Поиск

Эвент тыквы

2 ответов163 просмотровСейчас просматривают: 1
S
Sadwind

Автор

Новичок

Постов: 5

На форуме с: 30.01.2009

Рейтинг: 0

· 15.10.2009, 09:27

Сборка: La2base 1.1.7
Кто может переделать эвент тыкв из РТ в Ла2Бейз?

Раскрывающийся текст
Код
# ------------------------------------------------------------------------------------------
#  <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(myte
xt))]))
             self.nectar = self.nectar + 1
          elif  npc.getLifeTime() == 2000 : # неудачный
             mytext = ["Да не спеши же ты! Слишком часто, я не успеваю!"
                       "Ооопять, двадцать пять, я же говорила - не части"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             self.nectar = self.nectar + 1
          elif  npc.getLifeTime() == 3000 : # неудачный
             mytext = ["Да куда же ты торопишься! Слишком часто, я не успеваю!"
                       "Упс, опять слишком быстро"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             self.nectar = self.nectar + 1
          elif  npc.getLifeTime() == 4000 : # неудачный
             mytext = ["Давай чуток помедленней, не спеши, медленно достань бутылку и медленно ее вылей!"
                       "У тебя нет чувства скорости? Медленнее давай"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             self.nectar = self.nectar + 1
          elif  npc.getLifeTime() == 5000 : # удачный
             mytext = ["Плод прекрасной молодой тыквы начинает блестеть, когда семя предано земле! С этого времени будет способен стать здоровым и сильным!",
                       "О, давно не виделись?",
            "Неожидал увидеть мое красивое появление?",
            "Отлично! Это - нечто! Нектар?",
            "Дозаправка! Заправь 5 бутылок, чтобы я смогла превратиться в большую тыкву! О!"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             self.nectar = self.nectar + 1
          else :
             npc.setLifeTime(5000)           #  неудачный
             mytext = ["Чтобы быть способной расти, я должна пить только нектар ... причем чаще",
            "Если ты будеш быстрее выливать мне нектар - я быстрее выросту!",
            "Ну, верьте мне, прыскайте нектар! Я могу конечно превратиться в большую тыкву!!!",
            "Принеси нектар, чтобы вырастить тыкву!"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             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(myte
xt))]))
             self.nectar = self.nectar + 1
          else :
             npc.setLifeTime(10000)        #  неудачный
             mytext = ["О! Опять мимо! Может слишком быстро расходуеш нектар?",
                       "Если я умру такой как сейчас, Вы получите только молодую тыкву ...",
            "Выращивают немного быстрее! Неплохо было бы стать большой тыквой, молодая тыква не хороша!",
            "Такую маленькую тыкву вы все должны есть? Принесите нектар, я могу быть больше!"]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             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(myte
xt))]))
                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(myte
xt))]))
                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(myte
xt))]))
                 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(myte
xt))]))
                 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(myte
xt))]))
             self.nectar = self.nectar + 1
          else :
             npc.setLifeTime(20000)       #  неудачный
             mytext = ["Не воду ли Вы добавляете? Какой вкус?",
                       "Хозяин, спасите меня... Я не имею аромата нектара, я должна умереть ..."]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             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(myte
xt))]))
             self.nectar = 5
          else :
             npc.setLifeTime(25000)       #  неудачный
             mytext = ["Я голодна, Ты хочеш чтоб я засохла?",
                       "Требую нектар, чтобы расти немного быстрее."]
             npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(myte
xt))]))
             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")



Вот выдает ошибку:

Код
Error on: D:\PROla\La2Base_1.1.7\data\scripts\ai\group_template\squash.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('Lexical error at line 56, column 65.  Encountered: "@" (64), after : ""', ('squash.py', 56, 65, '       npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"">@>?8B5AL, C <5=O >AB0;>AL 2A53> 10 A5:C=4! 9. 8. 7 ..!"))'))

0
snake1
snake1

Пользователь

Бывалый

Постов: 155

На форуме с: 23.03.2008

Репутация: +132

Рейтинг: 0

· 15.10.2009, 18:23

эм.. у тебя тут чтоле квест лежит ??
попробуй его засунь в La2Base_1.1.7\data\scripts\custom


La2Base_1.1.7\data\scripts\ai\group_template\squash.py.error.log

0
Войдите или зарегистрируйтесь чтобы ответить