Luna Admin
Nombre de messages : 169 Age : 42 Localisation : osaka-fu Date d'inscription : 30/09/2008
Lonelyheavens Race: Dwarf Niveau: 85 Classes: Maestro
| Sujet: event manager Mer 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!!!" | |
|
Luna Admin
Nombre de messages : 169 Age : 42 Localisation : osaka-fu Date d'inscription : 30/09/2008
Lonelyheavens Race: Dwarf Niveau: 85 Classes: Maestro
| Sujet: Re: event manager Mer 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. | |
|