This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
AdBlock Extension Detected!
Our website is made possible by displaying online advertisements to our members.
Please disable AdBlock browser extension first, to be able to use our community.
Question
IvanLabonia
Hi, i've got this event "Raid Event" from Freya, which automatic respawns a random raid and then gives a reward.
import math import sys from com.l2jserver.gameserver import Announcements from com.l2jserver.util import Rnd from java.lang import System from com.l2jserver.gameserver.model.actor.appearance import PcAppearance from com.l2jserver.gameserver import GameTimeController from com.l2jserver.gameserver.model.quest import State from com.l2jserver.gameserver.model.quest import QuestState from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jserver.gameserver.model.actor.instance import L2PcInstance from com.l2jserver.gameserver.model.actor.instance import L2NpcInstance qn = "2002_EventRaid" QuestDesc = "custom" Raids = [ 22799,18792,18863 ] #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 = 60000 #1 minute after each restart there is the first event class Quest (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) self.RaidBosses ={ 0: {'name':"Gabriel" , 'id':22799}, 1: {'name':"Draken" , 'id':18792}, 2: {'name':"Ugoros" , 'id':18863}, } self.RbCoords ={ 0: {'name':"in A Raid Zone" , 'X':115191 , 'Y':16607 , 'Z':10085}, 1: {'name':"in A Raid Zone" , 'X':115191 , 'Y':16607 , 'Z':10085}, 2: {'name':"in A Raid Zone" , 'X':115191 , 'Y':16607 , 'Z':10085}, } self.startQuestTimer("EventTrigger", FirstStart, None, None) self.RbSpawn = [] self.rewards ={ 0: {'prize':7609 , 'number':1}, } self.Event = [] def onAdvEvent (self,event,npc,player): if event == "EventTrigger" : self.Event = 1 #the spawn coords and which raidboss are both random and #independant from each other ra = int(Rnd.get(3)) rb = int(Rnd.get(3)) raidboss = self.RaidBosses[ra]['name'] location = self.RbCoords[rb]['name'] Announcements.getInstance().announceToAll(raidboss + " spawned " + location + " you have 30 minutes!") 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", 1800000, npc, player) if event == "RbDespawn": self.RbSpawn.deleteMe() Announcements.getInstance().announceToAll("The Raid has survived!") self.startQuestTimer("EventTrigger", eventInterval, npc, player) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if npcId in Raids: Announcements.getInstance().announceToAll("RaidBoss event ended, the Raid has been killed, good job!") self.cancelQuestTimer("RbDespawn", None, None) self.startQuestTimer("EventTrigger", eventInterval, npc, player) # Quest class and state definition QUEST = Quest(-1,qn,QuestDesc) for i in Raids: QUEST.addKillId(i) print "Event Manager loaded!!!"i need something like this for Interlude (Frozen) .. more specific, what i just need is the auto spawn/despawn of a certain NPC every xxxxx time with an announcement.
Does somebody has this?
Edited by IvanLabonia2 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now