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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...