Jump to content
  • 0

Question

Posted (edited)

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 IvanLabonia

2 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 account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

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.

I've Disabled AdBlock