Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


 
AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 event manager

Aller en bas 
AuteurMessage
Luna
Admin
Luna


Nombre de messages : 169
Age : 42
Localisation : osaka-fu
Date d'inscription : 30/09/2008

Lonelyheavens
Race: Dwarf
Niveau: 85
Classes: Maestro

event manager Empty
MessageSujet: event manager   event manager Icon_minitimeMer 15 Oct - 15:40

Core
Code:

# # Event Manager by Luna

# 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().announceToAll("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")
#        if 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.Registration.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("eventmanager").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!!!"
Revenir en haut Aller en bas
http://lonelyheavens.com
Luna
Admin
Luna


Nombre de messages : 169
Age : 42
Localisation : osaka-fu
Date d'inscription : 30/09/2008

Lonelyheavens
Race: Dwarf
Niveau: 85
Classes: Maestro

event manager Empty
MessageSujet: Re: event manager   event manager Icon_minitimeMer 15 Oct - 15:49

100400htm
Code:
  1. <html>
  2. <body>
  3. <center>
  4. <img src="L2UI_CH3.herotower_deco" width=256 height=32>
  5. <br>So... you want to participate in the event?
  6. <br><br>
  7. <button value="Yes!" action="bypass -h npc_%objectId%_Quest eventmanager" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
  8. <img src=Sek.start_logo width=256 height=256 align=center>
  9. </center></body>
  10. </html>
Revenir en haut Aller en bas
http://lonelyheavens.com
Luna
Admin
Luna


Nombre de messages : 169
Age : 42
Localisation : osaka-fu
Date d'inscription : 30/09/2008

Lonelyheavens
Race: Dwarf
Niveau: 85
Classes: Maestro

event manager Empty
MessageSujet: Re: event manager   event manager Icon_minitimeMer 15 Oct - 15:50

100401htm
Code:
  1. <html>
  2. <body>
  3. <center>
  4. <img src="L2UI_CH3.herotower_deco" width=256 height=32>
  5. <br>hmmm... it seems you have defeted my defenders... So, you want your reward then?
  6. <br><br>
  7. <button value="Yes we do!" action="bypass -h npc_%objectId%_Quest eventmanager" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
  8. <img src=Sek.start_logo width=256 height=256 align=center>
  9. </center></body>
  10. </html>
Revenir en haut Aller en bas
http://lonelyheavens.com
Luna
Admin
Luna


Nombre de messages : 169
Age : 42
Localisation : osaka-fu
Date d'inscription : 30/09/2008

Lonelyheavens
Race: Dwarf
Niveau: 85
Classes: Maestro

event manager Empty
MessageSujet: Re: event manager   event manager Icon_minitimeMer 15 Oct - 15:50

antikarma
Code:
  1. insert  into zone_vertices values
  2. ('25100', '0', '143314', '164544'),
  3. ('25100', '1', '144215', '160270'),
  4. ('25100', '2', '145877', '159158'),
  5. ('25100', '3', '145397', '158735'),
  6. ('25100', '4', '142822', '155102'),
  7. ('25100', '5', '140831', '158004'),
  8. ('25100', '6', '141794', '160570');
  9. 
Revenir en haut Aller en bas
http://lonelyheavens.com
Luna
Admin
Luna


Nombre de messages : 169
Age : 42
Localisation : osaka-fu
Date d'inscription : 30/09/2008

Lonelyheavens
Race: Dwarf
Niveau: 85
Classes: Maestro

event manager Empty
MessageSujet: Re: event manager   event manager Icon_minitimeMer 15 Oct - 15:51

zone
Code:
# <zone id='25100' type='Arena' shape='Npoly' minZ='-2100' maxZ='-100'>
#        <stat name='name' val='Special Mountain Arena'/>
#        <stat name='spawnX' val='-59858'/>
#        <stat name='spawnY' val='-57495'/>
#        <stat name='spawnZ' val='-2039'/>
#    </zone>
Revenir en haut Aller en bas
http://lonelyheavens.com
Contenu sponsorisé





event manager Empty
MessageSujet: Re: event manager   event manager Icon_minitime

Revenir en haut Aller en bas
 
event manager
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: Beta Dev :: Holding pen-
Sauter vers: