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

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

ruen
Форум/Квесты/L2day и пекло на скории
Поиск

L2day и пекло на скории

39 ответов506 просмотровСейчас просматривают: 1
L
l2jdb
· 17.12.2009, 21:17

Сборка: Interlude,Scoria 3.0 U84
Суть проблемы - не работает(
Помогите переделать эти ивенты
вот скрипты

Пекло

Раскрывающийся текст
Код
import sys

from net.sf.l2j.gameserver.model.quest import State

from net.sf.l2j.gameserver.model.quest import QuestState

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

from net.sf.l2j.gameserver import Announcements

from net.sf.l2j import L2DatabaseFactory

from net.sf.l2j.gameserver.ai import CtrlIntention

from net.sf.l2j.util import Rnd

from java.lang import System

from net.sf.l2j.gameserver.model import L2World



qn = "5555_Peklo"

annom=1

ATTAKERS = []

tek = 0

nyj = 1

res_timer = 0

closed = 1

# =======================================

#                config

# =======================================

NAME = "Peklo" # name

LOC = "Giran" # NPC loc.

REGISTER = 55557 # NPC id

locr = [83510,148831,-3405] # NPC (/loc)

PENI = 4037 # Item for registration

PENI_KOL = 0 # Items need for registration

LEVEL = 76 # Minimal level for registration

AFTER_RESTART = 60 # Time, after restart gameserver

TIME_FOR_WAIT = 90 # time for wait between events

TIME_FOR_REG = 10 # registration time

ANNOUNCE_INTERVAL = 2 # announce event interval

MOB = 55556 # id mob

locf = [149511,46714,-3410] # mob (/loc)

locfp = [149511,46714,-3410] # characters (/loc)

RESAEM = 1 # respawn players

RADIUS = 500 # radius of mob respawn with any mobs

YCH_MIN = 1 # minimal users

YCH_MAX = 60 # maximum users

MOBS_TO_CHEL = 2 # mobs for 1 player

CANCEL_TIME = 10 # time for cancel event

RES_TIME = 15 # respawn players time

REWARD =[[9999,4,100],[9997,15,100],[4037,3,15]] # Rewards

X_MIN = 79000 # min x

X_MAX = 86000 # max x

Y_MIN = -19000 # min y

Y_MAX = -14500 # max y



class Quest (JQuest) :

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def init_LoadGlobalData(self) :

   self.startQuestTimer("open", AFTER_RESTART *60000, None, None)

   return

def onTalk (Self,npc,player):

  global closed

  st = player.getQuestState(qn)

  global ATTAKERS

  npcId = npc.getNpcId()

  if npcId == REGISTER:

   if closed<>1:

    if not player.isInOlympiadMode() :

     if player.getLevel() >= LEVEL:

      if player.getName() not in ATTAKERS :

       kolych = len(ATTAKERS)

       if kolych <= YCH_MAX :

        if PENI_KOL<>0:  

         if st.getQuestItemsCount(PENI)>PENI_KOL:

           st.takeItems(PENI,PENI_KOL)

           ATTAKERS.append(player.getName())

           return "reg.htm"

         else:

           st.exitQuest(1)

           return "nopeni.htm"

        else:

           ATTAKERS.append(player.getName())

           return "reg.htm"

       else:        

         return "max.htm"

      else:

       return "yje.htm"

     else:

      return "lvl.htm"

    else:

     return "You register in olympiad games now"

   else:

    return "noreg.htm"  

  return



def onAdvEvent (self,event,npc,player):

   global res_timer,tek,nyj,ATTAKERS,kolych,annom,closed,RESAEM

   if event == "res" and res_timer==1 and RESAEM==1:

    self.startQuestTimer("res", RES_TIME*1000, None, None)

    for nm in ATTAKERS:

     i=L2World.getInstance().getPlayer(nm)

     if i<>None:

      if i.isOnline():

       if i.getX() not in range(X_MIN,X_MAX) or i.getY() not in range(Y_MIN,Y_MAX):

        i.teleToLocation(locfp[0],locfp[1],locfp[2])

      if i.isDead():

        i.doRevive()

        i.setCurrentCp(i.getMaxCp())

        i.setCurrentHp(i.getMaxHp())

        i.setCurrentMp(i.getMaxMp())

        i.teleToLocation(locfp[0],locfp[1],locfp[2])

   if event == "open" :

     ATTAKERS=[]

     closed=0

     annom=1

     npc=self.addSpawn(REGISTER,locr[0],locr[1],locr[2],30000,False,0)

     self.startQuestTimer("close", TIME_FOR_REG*60000, npc, None)

     self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)

     Announcements.getInstance().announceToAll("Opened registration for "+str(NAME)+" event! You can register in "+str(LOC)+".")

   if event == "close":

    res_timer = 1

    tek=0

    nyj=1

    self.startQuestTimer("res", RES_TIME*1000, None, None)

    self.startQuestTimer("open", TIME_FOR_WAIT*60000, None, None)

    kolych = len(ATTAKERS)

    if kolych < YCH_MIN :

      npc.deleteMe()

      closed=1

      Announcements.getInstance().announceToAll("Event "+str(NAME)+" was canceled due lack of participation.")

    else:

      closed=1

      Announcements.getInstance().announceToAll("Event "+str(NAME)+" has started!")

      npc.deleteMe()

      self.addSpawn(MOB,locf[0],locf[1],locf[2],30000,False,CANCEL_TIME*60000)

      self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None)

      for nm in ATTAKERS :

       i=L2World.getInstance().getPlayer(nm)

       if i<>None:

        if i.isOnline() :

         i.teleToLocation(locfp[0],locfp[1],locfp[2])

   if event == "announce" and closed==0 and (TIME_FOR_REG - ANNOUNCE_INTERVAL * annom)<>0:

     Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom ) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+". There are "+str(len(ATTAKERS))+" players in Event.")

     annom=annom+1

     self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)

   if event == "return" :

     res_timer = 0

     Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Players win!")

     for nm in ATTAKERS :

      i=L2World.getInstance().getPlayer(nm)

      if i<>None:

       if i.isOnline() :

        i.teleToLocation(locr[0],locr[1],locr[2])

   if event == "return_l" :

     res_timer = 0

     Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Monsters win!")

     for nm in ATTAKERS :

      i=L2World.getInstance().getPlayer(nm)

      if i<>None:

       if i.isOnline() :

        i.teleToLocation(locr[0],locr[1],locr[2])

   if event == "exit" :

     ATTAKERS.remove(player.getName())

     return "exit.htm"

   return



def onAttack (self,npc,player,damage,isPet):

  if player.getName() not in ATTAKERS :

     player.teleToLocation(147725,-56517,9999)

  return



def onKill(self,npc,player,isPet):

  global tek,nyj,kolych

  mobcount=(MOBS_TO_CHEL * kolych)

  tek=tek+1

  if tek==nyj and (2*nyj) < mobcount:

   for i in range(0,2*tek) :

      rand = Rnd.get(7)

      if rand in [0,4] :

        randx = 25*Rnd.get(20)

        randy = 25*Rnd.get(20)

      elif rand in [1,5] :

        randx = -25*Rnd.get(20)

        randy = -25*Rnd.get(20)

      elif rand in [2,6] :

        randx = 25*Rnd.get(20)

        randy = -25*Rnd.get(20)

      elif rand in [3,7] :

        randx = -25*Rnd.get(20)

        randy = 25*Rnd.get(20)

      self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000)

   nyj=2*tek

   tek=0

   self.cancelQuestTimer("return_l",None,None)

   self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None)

   Announcements.getInstance().announceToAll("Event "+str(NAME)+": You have "+str(CANCEL_TIME)+" minutes for kill this monsters!")

  elif tek==nyj and (2*nyj) > mobcount:

   for i in range(0,mobcount) :

      rand = Rnd.get(7)

      if rand in [0,4] :

        randx = 25*Rnd.get(20)

        randy = 25*Rnd.get(20)

      elif rand in [1,5] :

        randx = -25*Rnd.get(20)

        randy = -25*Rnd.get(20)

      elif rand in [2,6] :

        randx = 25*Rnd.get(20)

        randy = -25*Rnd.get(20)

      elif rand in [3,7] :

        randx = -25*Rnd.get(20)

        randy = 25*Rnd.get(20)

      mobb=self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000)

   nyj=mobcount+1

   tek=0

   self.cancelQuestTimer("return_l",None,None)

   self.startQuestTimer("return_l", (CANCEL_TIME)*60000, None, None)

   Announcements.getInstance().announceToAll("Event "+str(NAME)+": You have "+str(CANCEL_TIME)+" minutes for kill this monsters!")

  elif tek==mobcount:

   for nm in ATTAKERS :

    i=L2World.getInstance().getPlayer(nm)

    if i<>None:

     for id, count, chance in REWARD :

      if Rnd.get(100)<=chance :

       i.getQuestState(qn).giveItems(id,count)

   self.startQuestTimer("return", 30000, None, None)  

   self.cancelQuestTimer("return_l",None,None)    

  return

    

QUEST = Quest(5555, qn, "Peklo")



QUEST.addKillId(int(MOB))

QUEST.addAttackId(int(MOB))

QUEST.addStartNpc(int(REGISTER))

QUEST.addTalkId(int(REGISTER))


Л2дей

Раскрывающийся текст
Код
import sys

from net.l2emuproject.gameserver.model.quest        import State

from net.l2emuproject.gameserver.model.quest        import QuestState

from net.l2emuproject.gameserver.model.quest.jython import QuestJython as JQuest



### Settings

qn = "5011_l2day"

QuestDesc   = "custom"

InitialHtml = "1.htm"



### Items - Format [name, giveItemId, giveItemQty, giveItem1Id, giveItem1Qty, giveItem2Id, giveItem2Qty, giveItem3Id, giveItem3Qty, giveItem4Id, giveItem4Qty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty, takeItem3Id, takeItem3Qty, takeItem4Id, takeItem4Qty, takeItem5Id, takeItem5Qty, takeItem6Id, takeItem6Qty, takeItem7Id, takeItem7Qty, takeItem8Id, takeItem8Qty, takeItem9Id, takeItem9Qty]

Items       = [

["Lineage II", 3959, 3, 3958, 3, 3929, 3, 3932, 3, 3882, 1, 3881, 1, 3883, 1, 3877, 2, 3875, 1, 3879, 1, 3888, 1, 3876, 0, 3878, 0],

["NCSOFT", 3958, 1, 3959, 1, 3926, 1, 3927, 1, 3883, 1, 3876, 1, 3886, 1, 3884, 1, 3878, 1, 3887, 1, 3875, 0, 3877, 0, 3879, 0],

["CHRONICLE", 3934, 2, 3959, 2, 3958, 2, 3928, 2, 3876, 2, 3880, 1, 3885, 1, 3884, 1, 3883, 1, 3881, 1, 3882, 1, 3877, 1, 3887, 0]

]



def do_RequestedEvent(event, st, giveItem1Id, giveItem1Qty, giveItem2Id, giveItem2Qty, giveItem3Id, giveItem3Qty, giveItem4Id, giveItem4Qty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty, takeItem3Id, takeItem3Qty, takeItem4Id, takeItem4Qty, takeItem5Id, takeItem5Qty, takeItem6Id, takeItem6Qty, takeItem7Id, takeItem7Qty, takeItem8Id, takeItem8Qty, takeItem9Id, takeItem9Qty) :

    if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty and st.getQuestItemsCount(takeItem2Id) >= takeItem2Qty and st.getQuestItemsCount(takeItem3Id) >= takeItem3Qty and st.getQuestItemsCount(takeItem4Id) >= takeItem4Qty and st.getQuestItemsCount(takeItem5Id) >= takeItem5Qty and st.getQuestItemsCount(takeItem6Id) >= takeItem6Qty and st.getQuestItemsCount(takeItem7Id) >= takeItem7Qty and st.getQuestItemsCount(takeItem8Id) >= takeItem8Qty and st.getQuestItemsCount(takeItem9Id) >= takeItem9Qty :

        st.takeItems(takeItem1Id, takeItem1Qty)

        st.takeItems(takeItem2Id, takeItem2Qty)

        st.takeItems(takeItem3Id, takeItem3Qty)

        st.takeItems(takeItem4Id, takeItem4Qty)

        st.takeItems(takeItem5Id, takeItem5Qty)

        st.takeItems(takeItem6Id, takeItem6Qty)

        st.takeItems(takeItem7Id, takeItem7Qty)

        st.takeItems(takeItem8Id, takeItem8Qty)

        st.takeItems(takeItem9Id, takeItem9Qty)

        st.giveItems(giveItem1Id, giveItem1Qty)

        st.giveItems(giveItem2Id, giveItem2Qty)

        st.giveItems(giveItem3Id, giveItem3Qty)

        st.giveItems(giveItem4Id, giveItem4Qty)

        return "2.htm"

    else :

        return "You do not have enough materials."



class Quest (JQuest) :



def __init__(self,id,name,descr):

     JQuest.__init__(self,id,name,descr)



def onEvent (self,event,st) :

    htmltext = event



    if event == "0":

        return InitialHtml



    for item in Items:

        if event == str(item[1]):

            htmltext = do_RequestedEvent(event, st, item[1], item[2], item[3], item[4], item[5], item[6], item[7], item[8], item[9], item[10], item[11], item[12], item[13], item[14], item[15], item[16], item[17], item[18], item[19], item[20], item[21], item[22], item[23], item[24], item[25], item[26])

    

    if htmltext != event:

      st.setState(State.COMPLETED)

      st.exitQuest(1)



    return htmltext



def onTalk (Self,npcId,player):

   st = player.getQuestState(qn)

   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.</body></html>"

   st.set("cond","0")

   st.setState(State.STARTED)

   return InitialHtml



QUEST       = Quest(QuestId,qn,QuestDesc)



QUEST.addStartNpc(31230)



QUEST.addTalkId(31230)



Попробовал как в бафере переделать net.sf.l2j. на com.l2scoria.

выдает следующие ошибки

L2day
Раскрывающийся текст
Код
Error on: /home/akimm/scor/L2Jscoria-Game/data/scripts/custom/5011_l2day/__init__.py.error.log

Line: -1 - Column: -1



Traceback (innermost last):
  File "__init__.py", line 65, in ?
NameError: QuestId


Пекло
Раскрывающийся текст
Код
Error on: /home/akimm/scor/L2Jscoria-Game/data/scripts/quests/5555_Peklo/__init__.py.error.log

Line: -1 - Column: -1



Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('Lexical error at line 1, column 1.  Encountered: "\\u00ff" (255), after : ""', ('__init__.py', 1, 1, '\xFFimport sys'))


Заранее большое спасибо

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 10:10

L2Day:
Найди это:

Цитата
QUEST = Quest(QuestId,qn,QuestDesc)

Поменяй на это
Цитата
QUEST = Quest(5011, qn, "Custom")

0
L
l2jdb
· 18.12.2009, 10:34

l2day редактнул сервер прогрузился без ошибки на л2дей вызываю нпса 31230 а он мне впаривает что я кв не выполнил

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 10:37

Может ты незалил sql файл?. Или же этот нпц просто отсутствует в этой сборке?

0
B
Baium
· 18.12.2009, 10:39

На счёт пекла: создай новый файл .py с такой же кодировкой, которая используется в остальных файлах!
На счёт L2Day: Меняй импорты к серверу в своём файле .py

0
L
l2jdb
· 18.12.2009, 10:54

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

импорты это net.sf.l2j. на com.l2scoria. ?

импорты я сменил все на
from com.l2scoria.gameserver.model.quest import State

from com.l2scoria.gameserver.model.quest import QuestState

from com.l2scoria.gameserver.model.quest.jython import QuestJython as JQuest

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 11:10

__http://depositfiles.com/files/cx4y739f2
Вот пак эвентов .
Тут есть и полный L2Day только под сборку La2base.
Думаю сможеш хтмлки переделать под скорию.

0
L
l2jdb
· 18.12.2009, 11:25

Большое спасибо л2дей заработал)

0
djon
djon

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

Бывалый

Постов: 117

На форуме с: 27.10.2008

Рейтинг: 0

· 18.12.2009, 11:39

Может и мне поможите с евентом ПЕКЛО сборка la2base ошибка в логе : Error on: C:\Server\data\scripts\quests\5555_Peklo\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 104, 103, ' Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom - 1) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".")'))

За помощью по серверам lineage II обращаться в аську 463659020

0
L
l2jdb
· 18.12.2009, 11:47

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

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 11:54

Вот
_http://dump.ru/file/3965037
здесь 2 инит
1)__init__.py - Кодировка ANSI
2)__init__2.py - Кодировка UTF-8

Пробуй что то из этих должно подойти

0
B
Baium
· 18.12.2009, 11:56

l2jdb: на пекле не получается кодировку сменить кто нибуть может выложить с норм кодировкой?


Используй редактор Notepad++




xsparco: Может и мне поможите с евентом ПЕКЛО сборка la2base ошибка в логе : Error on: C:\Server\data\scripts\quests\5555_Peklo\__init__.py.error.log
Line: -1 - Column: -1
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 104, 103, ' Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom - 1) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".")'))


Неправильный синтаксис а если быть точней ошибся с отступом.



0
L
l2jdb
· 18.12.2009, 12:26

Код
Error on: /home/akimm/scor/L2Jscoria-Game/data/scripts/quests/5555_Peklo/__init__.py.error.log

Line: -1 - Column: -1



Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 99, 1, 'def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)'))
black eye.gif

0
B
Baium
· 18.12.2009, 12:38

l2jdb:
Код
Error on: /home/akimm/scor/L2Jscoria-Game/data/scripts/quests/5555_Peklo/__init__.py.error.log

Line: -1 - Column: -1



Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 99, 1, 'def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)'))
black eye.gif


Не соблюдён отступ, редактируйте в notepad++ там всё очень понятно и наглядно.
А если соовсем не чего не понимаешь в Jython тогда не стоит туда лесть.

0
L
l2jdb
· 18.12.2009, 12:58

я не понимаю jython кто нибуть может помочь исправить этот синтаксис? я пользуюсь и ++ и gedit

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 13:23

Методом експерементирования у меня всё таки вышло загрузить квест
Вот рабочий инит . проверял.

0
L
l2jdb
· 18.12.2009, 13:32

Жму на регистрацию и нечего не происходит ошибок при загрузке нету

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 14:04

в общем
_http://dump.ru/file/3965922
вот , рабочий.... я заходил в игру , проверял , регает .
суть того что нужно его не в папку customs а в quests.
подправиш свой хтмл файл.

да и забыл * требовал он итем под идом 4037 ( Coin of Luck)
изменил в конфиге чтоб требовал адену.

0
L
l2jdb
· 18.12.2009, 14:20

всем большое спасибо все работает)

0
FA113N
FA113N

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

Бывалый

Постов: 197

На форуме с: 03.08.2009

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

Рейтинг: 0

· 18.12.2009, 14:23

Да и просьба выложить эвенты со sql файлами и хтмлками ) на сайте.
чтоб таких тем неповторялось....

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