Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
куда вставить скрипт ??
#1
Подскажите нашел мануал по эвенту все сделал, кроме 1го скрипта т.к написано впишите скрипт, а куда именно не понятно, сборка L2gold Gracia final

Код:
import math
import sys
from net.sf.l2j.gameserver              import Announcements
from net.sf.l2j.util                    import Rnd
from java.lang                      import System
from net.sf.l2j.gameserver.model.actor.appearance   import PcAppearance
from net.sf.l2j.gameserver              import GameTimeController
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.model.actor.instance     import L2PcInstance
from net.sf.l2j.gameserver.model.actor.instance     import L2NpcInstance
    
    
MANAGER = 100400
TOPNPC  = 100401
Raids =  [ 25514,22216,25286,25283,25319 ]
    
#Mountain protected zone
MX  = 55312
MY  = 219168
MZ  = -3223
    
#Mountain top NPC coords
MNPCX   = 144291
MNPCY   = 157446
MNPCZ   = -466
    
#Mountain bottom and giran NPC coords
MBX1    = 82698
MBY1    = 148638
MBZ1    = -3468
MBX = 143370
MBY = 161135
MBZ = -1925
    
#number of participants
MountainMinPlayers = 6
MountainMaxPlayers = 30
    
EventNpcs = [ 100400, 100401 ]
    
#time between events in milliseconds
eventInterval = 7200000  # 2 hours after the first event there is the second one and the others after are 2 hours too
FirstStart = 2700000  #45 minutes after each restart there is the first event
    
    
class eventmanager (JQuest):
    
      def __init__(self,id,name,descr):
          JQuest.__init__(self,id,name,descr)
          self.RaidBosses ={
                  0: {'name':"Queen Shyeed" , 'id':25514},
                  1: {'name':"Tyrannosaurus" , 'id':22216},
                  2: {'name':"Anakim" , 'id':25286},
                  3: {'name':"Lilith" , 'id':25283},    
                  4: {'name':"Ember" , 'id':25319},
                  }
          self.RbCoords ={
                  0: {'name':"in the colliseum" , 'X':150086 , 'Y':46733 , 'Z':-3407},    
                  1: {'name':"near the entrance of the Garden of Eva" , 'X':84805 , 'Y':233832 , 'Z':-3669},
                  2: {'name':"close to the western entrance of the Cemetary" , 'X':161385 , 'Y':21032 , 'Z':-3671},
                  3: {'name':"at Gludin's Harbor" , 'X':89199 , 'Y':149962 , 'Z':-3581},
                  }
          self.startQuestTimer("EventTrigger", FirstStart, None, None)
          self.RbSpawn = []
          self.rewards ={
                  0: {'prize':4357 , 'number':1}, #King of the hill event, dont forget to change the reward
                  }
          self.Teams = []
          self.Event = []
          self.True = True
          self.False = False
          self.Group = []
          self.EventManager1 = []
          self.EventManager = []
          self.Registration = []
          self.numberPlayers = []
          self.One = 1
          self.Team1 = []
          self.Team2 = []
          self.numberOfTeams = []
          self.Trigger = 1
          self.Count = 2
          self.Add = 1
          self.Full = False
          self.TopNpc = []
          self.EventNames = {0:"King of the hill", 1:"kill the Raidboss"}
    
    
      def onAdvEvent (self,event,npc,player):
          if event == "EventTrigger" :
              rr = int(Rnd.get(2))
              Announcestart = "The " + self.EventNames[rr] + " event is about to start!!!"
              Announcements.getInstance().announceToAll(Announcestart)
              if rr == 0:
                  self.Event = 0
                  eventmanager1 = self.addSpawn(MANAGER,MBX1,MBY1,MBZ1,0,False,0)
                  self.EventManager1 = eventmanager1
                  topnpc = self.addSpawn(TOPNPC,MNPCX,MNPCY,MNPCZ,0,False,0)
                  self.TopNpc = topnpc
                  Announcements.getInstance().announceToAll("All those who wish to participate should come to meet me in Giran town")
                  Announcements.getInstance().announceToAll("Registration will last 15 minutes")
                  self.startQuestTimer("MountainSelect", 900000, npc, player)                    
                  self.startQuestTimer("10minutes", 300000, npc, player)                    
                  self.startQuestTimer("5minutes", 600000, npc, player)                    
                  self.startQuestTimer("2minutes", 780000, npc, player)                    
                  self.startQuestTimer("1minute", 840000, npc, player)                    
              if rr == 1:
                  self.Event = 1
                  #the spawn coords and which raidboss are both random and
                  #independant from each other
                  ra = int(Rnd.get(5))
                  rb = int(Rnd.get(4))
                  self.RbSpawn = []
                  raidboss = self.RaidBosses[ra]['name']
                  location = self.RbCoords[rb]['name']
                  Announcements.getInstance().announceToAll(raidboss + " has just been spawned " + location + " and will disappear in 2 hours, hurry!")
                  self.RbSpawn = self.addSpawn(self.RaidBosses[ra]['id'],self.RbCoords[rb]['X'],self.RbCoords[rb]['Y'],self.RbCoords[rb]['Z'],0,False,0)
                  self.startQuestTimer("RbDespawn", 7150000, npc, player)                    
                  self.startQuestTimer("EventTrigger", eventInterval, npc, player)                            
          if event == "10minutes":
              Announcements.getInstance().announceToAll("10 minutes left for event registration in Giran")
          if event == "5minutes":
              Announcements.getInstance().announceToAll("5 minutes left for event registration in Giran")
          if event == "2minutes":
              Announcements.getInstance().announceToAll("2 minutes left for event registration in Giran")
          if event == "1minutes":
              Announcements.getInstance().announceToAll("1 minute left for event registration in Giran")
          if event == "MountainSelect" :
                  self.EventManager1.deleteMe()
                  self.startQuestTimer("MountainStart", 60000, npc, player)                    
                  totalplayers = len(self.Registration)
                  if totalplayers >= MountainMinPlayers:
                      #5 players per team, max 6 teams can participate
                      self.numberOfTeams = int((len(self.Registration))/2)
                      numberOfTeams = int((len(self.Registration))/2)
                      playerList = list(self.Registration)
                      Team1 = []
                      Team2 = []
                      for i in range(len(playerList)/2) :
                          Team1.append(playerList.pop(Rnd.get(len(playerList))))
                      Team2 = playerList
                      for i in Team1:
                          i.teleToLocation(MNPCX,MNPCY,MNPCZ)#tele to top of mountain
                          i.getAppearance().setNameColor(0x005de2) #orange
                          i.getAppearance().setTitleColor(0x005de2) #orange
                          i.getQuestState("eventmanager").set("cond","3")
                      for i in Team2:
                          i.teleToLocation(144428,161151,-2460)#tele to location A
                          i.getAppearance().setNameColor(0xd5e200) #yellow
                          i.getAppearance().setTitleColor(0xd5e200) #yellow
                          i.getQuestState("eventmanager").set("cond","4")
                      Announcements.getInstance().announce ToAll("Team 1 - blue - has 20 minutes to take control of the mountain and talk to the Flag NPC to win this event.")
                      Announcements.getInstance().announceToAll("Team 2 - orange - has to defend the mountain to win.  Event starts in 1 minute, wait for the signal.")
                      self.Team1 = Team1
                      self.Team2 = Team2
                      self.numberOfTeams = numberOfTeams
                  else:
                      Announcements.getInstance().announceToAll("Event cancelled due to lack of participation.")
                      self.EventManager1.deleteMe()
                      self.TopNpc.deleteMe()
                      self .cancelQuestTimer("round_finish", None, None)
                      self.cancelQuestTimer("15Tofinish", None, None)
                      self.cancelQuestTimer("10Tofinish", None, None)
                      self.cancelQuestTimer("5Tofinish", None, None)
                      self.cancelQuestTimer("1Tofinish", None, None)
          if event == "MountainStart":
              for i in self.Team2:
                  i.teleToLocation(MBX,MBY,MBZ)#tele to location A
              Announcements.getInstance().announceToAll("Start the event!!! Team 2, ATTACK!!! Good luck to both teams!")
              self.Attacker = self.Team2
              self.Defender = self.Team1
              self.startQuestTimer("round_finish", 1200000, npc, player) #sera 1200000                    
              self.startQuestTimer("15Tofinish", 300000, npc, player)                    
              self.startQuestTimer("10Tofinish", 600000, npc, player)                    
              self.startQuestTimer("5Tofinish", 900000, npc, player)                    
              self.startQuestTimer("1Tofinish", 1140000, npc, player)                    
          if event == "15Tofinish":
              Announcements.getInstance().announceToAll("15 minutes until the end of the event")
          if event == "10Tofinish":
              Announcements.getInstance().announceToAll("10 minutes until the end of the event")
          if event == "5Tofinish":
              Announcements.getInstance().announceToAll("5 minutes until the end of the event")
          if event == "1Tofinish":
              Announcements.getInstance().announceToAll("1 minute until the end of the event")
          if event == "round_finish" and npc and player:
              self.TopNpc.deleteMe()
              self.startQuestTimer("EventTrigger", eventInterval, npc, player)                            
              self.cancelQuestTimer("15Tofinish", None, None)
              self.cancelQuestTimer("10Tofinish", None, None)
              self.cancelQuestTimer("5Tofinish", None, None)
              self.cancelQuestTimer("1Tofinish", None, None)
              Announcements.getInstance().announceToAll("Orange team wins!")
              rr = self.Event
              reward = self.rewards
              for i in self.Team2:
                  i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
                  i.getAppearance().setNameColor(0xffffff)
                  i.getAppearance().setTitleColor(0xffffff)
                  i .getQuestState("eventmanager").set("cond","0")
              for i in self.Team1:
                  i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
                  i.getQuestState("eventmanager").giveItems(reward[rr]['prize'],reward[rr]['number'])
                  i.getQuestState("eventmanager").playSound("ItemSound.quest_fanfare_1")
                  i.getAppearance().setNameColor( 0xffffff)
                  i.getAppearance().setTitleColor(0xffffff)
                  i.getQuestState("eventmanager").set("cond","0")
          i f event == "RbDespawn":
              self.RbSpawn.deleteMe()
    
      def onTalk (self,npc,player) :
          npcId = npc.getNpcId()
          cond = player.getQuestState("eventmanager").getInt("cond")
          if npcId == MANAGER :
              if not cond == 2:
                  if self.Event == 0:
                      if len(self.Registration) < MountainMaxPlayers:
                          player.getQuestState("eventmanager").set("cond","2")
                          self.Registrati on.append(player)
                          Reg = list(self.Registration)
                          return "<html><body>You have been added to the event list, teams will be made randomly 1 minute before the start of the event</body></html>"
                      else:
                          Announcements.getInstance().announceToAll("Event is now full, no more registration accepted.")
                          self.Full = True
                          return "<html><body>Event is full, try again next time</body></html>"
              else:
                  return "<html><body>You are already registered</body></html>"
          if npcId == TOPNPC :
              if not cond == 3:
                  self.TopNpc.deleteMe()
                  self.cancelQuestTimer("round_finish", None, None)
                  self.cancelQuestTimer("15Tofinish", None, None)
                  self.cancelQuestTimer("10Tofinish", None, None)
                  self.cancelQuestTimer("5Tofinish", None, None)
                  self.cancelQuestTimer("1Tofinish", None, None)
                  Announcements.getInstance().announceToAll("Blue team wins!")
                  rr = self.Event
                  reward = self.rewards
                  self.startQuestTimer("EventTrigger", eventInterval, npc, player)                            
                  for i in self.Team1:
                      i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
                      i.getAppearance().setNameColor(0xffffff)
                      i.getAppearance().setTitleColor(0xffffff)
                      i .getQuestState("eventmanager").set("cond","0")
                  for i in self.Team2:
                      i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
                      i.getQuestState("eventmanager").playSound("ItemSound.quest_fanfare_1")
                      i.getQuestState("eve ntmanager").giveItems(reward[rr]['prize'],reward[rr]['number'])
                      i.getAppearance().setNameColor(0xffffff)
                      i.getAppearance().setTitleColor(0xffffff)
                      i .getQuestState("eventmanager").set("cond","0")
              else:
                  return "<html><body>You are on the defending team!!! defend me, stop talking!</body></html>"
    
      def onKill (self,npc,player,isPet):
          if npc in self.RbSpawn:
              self.cancelQuestTimer("RbDespawn", None, None)
    
# Quest class and state definition
QUEST       = eventmanager(-1, "eventmanager", "ai")
    
for i in Raids:
      QUEST.addKillId(i)
    
for i in EventNpcs:
      QUEST.addTalkId(i)
      QUEST.addStartNpc(i)
    
print "Event Manager loaded!!!"
Ответ
#2
Вот сюда посмотрите и сделайте "по шаблону".
Цитата:gameserver\data\scripts\custom\

Потом пропишите загрузку скрипта в:
Цитата:gameserver\data\scripts.cfg
Ответ
#3
Ой чото не то пишет :
Error on: E:\Fart\Game\data\scripts\custom\RBoxota\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 154, 60, ' Announcements.getInstance().announce ToAll("Team 1 - blue - has 20 minutes to take control of the mountain and talk to the Flag NPC to win this event.") '))
Ответ
#4
Гарантировать работу скрипта никто не сможет. Из кода видно, что написан для L2jServer и возможно в вашей сборке нет необходимых компонентов.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Скрипт для альт+б Jm0t 0 1,808 03-21-2019, 04:18 PM
Последний пост: Jm0t
  Помогите переписать скрипт с Python на Java Virrilis3 0 1,471 03-29-2018, 10:55 PM
Последний пост: Virrilis3
  кто может открыть .u формат скрипт? velterna 1 1,918 01-31-2018, 09:49 PM
Последний пост: PROGRAMMATOR
  Скрипт не срабатывает сразу Froust 4 2,381 09-22-2017, 02:14 PM
Последний пост: Froust
  скрипт на превращение зарича по id v1kt0r 3 2,123 05-07-2017, 10:04 PM
Последний пост: Emperor
  Скрипт статистики онлайн серверов NewUser 18 4,984 01-26-2015, 02:33 PM
Последний пост: Apoloser
  Скрипт установки сервера не работает. Linux /. SunWar 2 1,326 08-24-2014, 06:48 PM
Последний пост: SunWar
  Нужен скрипт на услуги донат менеджера (PW Soft) Intruder 3 2,268 05-26-2014, 08:22 AM
Последний пост: Masone
  скрипт Vasya 12 2,873 04-16-2014, 04:33 PM
Последний пост: Cywka!
  скрипт кс Vasya 9 2,252 04-07-2014, 08:20 PM
Последний пост: L2scripts-Guard

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)