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_CustomBoss"
QuestDesc = "custom"
Raids = [ 25524 ]
#time between events in milliseconds
eventInterval = 86400000
FirstStart = 30000
class Quest (JQuest):
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.RaidBosses ={
0: {'name':"Custom Raid Boss" , 'id':25524},
}
self.RbCoords ={
0: {'name':"in Raid Zone" , 'X':144644 , 'Y':-5644 , 'Z':-4723},
}
self.startQuestTimer("EventTrigger", FirstStart, None, None)
self.RbSpawn = []
self.rewards ={
0: {'prize':40022 , '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(1))
rb = int(Rnd.get(1))
raidboss = self.RaidBosses[ra]['name']
location = self.RbCoords[rb]['name']
Announcements.getInstance().announceToAll(raidboss + " spawned ")
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", 86400000, npc, player)
if event == "RbDespawn":
self.RbSpawn.deleteMe()
Announcements.getInstance().announceToAll("Custom Raid Boss is still alive")
self.startQuestTimer("EventTrigger", eventInterval, npc, player)
def onKill (self,npc,player,isPet):
npcId = npc.getNpcId()
if npcId in Raids:
Announcements.getInstance().announceToAll("Custom Raid Boss has been killed")
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 "Custom Raid Boss Loaded"
And my question is, how do i make this script that, onKill of the raid boss, all those who have hitted the raid get a reward?
Perhaps hitted and in range, etc. In the code it says "{'prize':40022 , 'number':1}, " but still not working, that ID of a custom quest item frome me, and i need to all who participate in killing the raid to obtain it.
Any help? I know it should not be so difficult, but what i tryed didnt work, so i ask for help now.
Question
Drynisan
Hi, i have this code
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_CustomBoss" QuestDesc = "custom" Raids = [ 25524 ] #time between events in milliseconds eventInterval = 86400000 FirstStart = 30000 class Quest (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) self.RaidBosses ={ 0: {'name':"Custom Raid Boss" , 'id':25524}, } self.RbCoords ={ 0: {'name':"in Raid Zone" , 'X':144644 , 'Y':-5644 , 'Z':-4723}, } self.startQuestTimer("EventTrigger", FirstStart, None, None) self.RbSpawn = [] self.rewards ={ 0: {'prize':40022 , '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(1)) rb = int(Rnd.get(1)) raidboss = self.RaidBosses[ra]['name'] location = self.RbCoords[rb]['name'] Announcements.getInstance().announceToAll(raidboss + " spawned ") 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", 86400000, npc, player) if event == "RbDespawn": self.RbSpawn.deleteMe() Announcements.getInstance().announceToAll("Custom Raid Boss is still alive") self.startQuestTimer("EventTrigger", eventInterval, npc, player) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if npcId in Raids: Announcements.getInstance().announceToAll("Custom Raid Boss has been killed") 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 "Custom Raid Boss Loaded"And my question is, how do i make this script that, onKill of the raid boss, all those who have hitted the raid get a reward?
Perhaps hitted and in range, etc. In the code it says "{'prize':40022 , 'number':1}, " but still not working, that ID of a custom quest item frome me, and i need to all who participate in killing the raid to obtain it.
Any help? I know it should not be so difficult, but what i tryed didnt work, so i ask for help now.
Thank you.
0 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