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.
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.
From Salvation onwards I think you need a patched nwindow.dll that allows such modifications, try to see if you get what you need here:
https://drive.google.com/drive/u/1/folders/1LLbQFGf8KlR-O0Iv5umfF-pwZgrDh9bd
hello everyone!
I am wanting to save the files (Ini. - Data - ) of the EP5 Client: Salvation... But they generate the error "corrupt files"... I tried several versions of L2FileEditor without good results.
I need help! Thank you!
Opening December 6th at 19:00 (GMT +3)!
Open Beta Test from November 30th!
https://l2soe.com/
🌟 Introducing L2 Saga of Eternia: A Revolution in Lineage 2 High Five! 🌟
Dear Lineage 2 enthusiasts,
Prepare to witness the future of private servers! L2 Saga of Eternia is not just another High Five project—it’s a game-changing experience designed to compete with the giants of the Lineage 2 private server scene. Built for the community, by the community, we’re here to raise the bar in quality, innovation, and longevity.
What Sets Us Apart?
💎 No Wipes, Ever
Say goodbye to the fear of losing your progress. Our server is built to last and will never close. Stability and consistency are our promises to you.
⚔️ Weekly New Content
Our dedicated development team ensures fresh challenges, events, and updates every week. From custom quests to exclusive features, there will always be something exciting to explore.
💰 No Pay-to-Win
Skill and strategy matter most here. Enjoy a balanced gameplay environment where your achievements come from effort, not your wallet.
🌍 A Massive Community
With 2000+ players expected, join a vibrant and active community of like-minded adventurers ready to conquer the world of Aden.
🏆 Fair and Competitive Gameplay
Our systems are designed to promote healthy competition while avoiding abusive mechanics and exploits.
🔧 Professional Development
From advanced bug fixes to carefully curated content, we pride ourselves on smooth performance, no lag, and unparalleled server quality.
Key Features
Chronicle: High Five with unique interface
Rate: Dynamic x10 rates
Class Balance: Carefully fine-tuned for a fair experience
PvP Focused: PvP Ranking & aura display effect for 3 Top PvPers every week
Custom Events: Seasonal and permanent events to keep you engaged
Additional Features:
Custom Endgame Content: Introduce unique dungeons, raids, or zones unavailable in other servers.
Player-Driven Economy: Implement a strong market system and avoid overinflated drops or rewards.
Epic Siege Battles: Announce special large-scale sieges and PvP events.
Incentives for Streamers and Clans: Attract influencers and big clans to boost server publicity.
Roadmap Transparency: Share a public roadmap of planned updates to build trust and excitemen
Here you can read all the features: https://l2soe.com/features
Video preview:
Join the Revolution!
This is your chance to be part of something legendary. L2 Saga of Eternia is not just a server; it’s a movement to redefine what Lineage 2 can be. Whether you’re a seasoned veteran or a newcomer to the world of Aden, we invite you to experience Lineage 2 at its finest.
Official Launch Date: December 6th 2024
Website: https://l2soe.com/
Facebook: https://www.facebook.com/l2soe
Discord: https://discord.com/invite/l2eternia
Let’s build the ultimate Lineage 2 experience together. See you in-game! 🎮
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
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.