- 0
-
Quem Está Navegando
- Nenhum usuário registrado visualizando esta página.
-
Posts
-
O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
Boa Noite Galera o @Mr.Kadu postou o link do projeto mas eu fiz um erro e estarei postando a correção. aqueles que baixou o projeto e tentou ligar e deu erro e por causa do java que foi copilado eu copilei no java 22 e o projeto e no java 17 vou postar o link aqui para vcs, vai incluso a Geodata O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
Nova Revisão com AutoFarm e .Menu O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
alguem tambem esta tendo problemas com email ? quando vc loga com a conta e nao tem email cadastrado. eu levo erro 500
-
muito bom meu amigo. vou começar os testes........
-
@Mr.Kadu VOU COMEÇA OS TESTES AGORA MESMO. VOU VER SE COLOCO UM PROJETO ONLINE. USANDO SUA BASE, AI SERÁ MUITO BOM PRA REPORTAR. abraços mano e muito boa iniciativa com esse projeto, que muitos usaram.
-
Por Gabrieljdb · Postado
Falta arquivo "armorgrp.dat" alguém poderia postar. Grato! -
Também to querendo só a textura do drop no chão, se alguém tiver.
-
Opa Obrigado amigo e aguarde que vamos tentar por todas as quests 99,9% funcional principalemnte porque projeto acis nao vi ate agora com quest 90%
-
Pergunta
StrongA
Estou Procurando um evento de Raid Boss Spawn, tipo ter varios RB só para esse efeito e x em x tempo serem spawnados aleatoriamente mostrando aos players em annoucement.
Obrigado.
Encontrei este script:
Pasta eventmanager, criar dentro um ficheiro __init__.py
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
MANAGER = 100400
TOPNPC = 100401
Raids = [ 290990,290280,290190,290200,291030 ]
#Mountain protected zone
MX = 55312
MY = 219168
MZ = -3223
#Mountain top NPC coords
MNPCX = 144291
MNPCY = 157446
MNPCZ = -466
#Mountain bottom and giran NPC coords
MBX1 = 82698
MBY1 = 148638
MBZ1 = -3468
MBX = 143370
MBY = 161135
MBZ = -1925
#number of participants
MountainMinPlayers = 6
MountainMaxPlayers = 30
EventNpcs = [ 100400, 100401 ]
#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 = 2700000 #45 minutes after each restart there is the first event
class eventmanager (JQuest):
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.RaidBosses ={
0: {'name':"Baylor" , 'id':290990},
1: {'name':"Valakas" , 'id':290280},
2: {'name':"Antharas" , 'id':290190},
3: {'name':"Baium" , 'id':290200},
4: {'name':"Baylor" , 'id':291030},
}
self.RbCoords ={
0: {'name':"in the colliseum" , 'X':150086 , 'Y':46733 , 'Z':-3407},
1: {'name':"near the entrance of the Garden of Eva" , 'X':84805 , 'Y':233832 , 'Z':-3669},
2: {'name':"close to the western entrance of the Cemetary" , 'X':161385 , 'Y':21032 , 'Z':-3671},
3: {'name':"at Gludin's Harbor" , 'X':89199 , 'Y':149962 , 'Z':-3581},
}
self.startQuestTimer("EventTrigger", FirstStart, None, None)
self.RbSpawn = []
self.rewards ={
0: {'prize':6577 , 'number':2}, #King of the hill event, dont forget to change the reward
}
self.Teams = []
self.Event = []
self.True = True
self.False = False
self.Group = []
self.EventManager1 = []
self.EventManager = []
self.Registration = []
self.numberPlayers = []
self.One = 1
self.Team1 = []
self.Team2 = []
self.numberOfTeams = []
self.Trigger = 1
self.Count = 2
self.Add = 1
self.Full = False
self.TopNpc = []
self.EventNames = {0:"King of the hill", 1:"kill the Raidboss"}
def onAdvEvent (self,event,npc,player):
if event == "EventTrigger" :
rr = int(Rnd.get(2))
Announcestart = "The " + self.EventNames[rr] + " event is about to start!!!"
Announcements.getInstance().announceToAll(Announcestart)
if rr == 0:
self.Event = 0
eventmanager1 = self.addSpawn(MANAGER,MBX1,MBY1,MBZ1,0,False,0)
self.EventManager1 = eventmanager1
topnpc = self.addSpawn(TOPNPC,MNPCX,MNPCY,MNPCZ,0,False,0)
self.TopNpc = topnpc
Announcements.getInstance().announceToAll("All those who wish to participate should come to meet me in Giran town")
Announcements.getInstance().announceToAll("Registration will last 15 minutes")
self.startQuestTimer("MountainSelect", 900000, npc, player)
self.startQuestTimer("10minutes", 300000, npc, player)
self.startQuestTimer("5minutes", 600000, npc, player)
self.startQuestTimer("2minutes", 780000, npc, player)
self.startQuestTimer("1minute", 840000, npc, player)
if rr == 1:
self.Event = 1
#the spawn coords and which raidboss are both random and
#independant from each other
ra = int(Rnd.get(5))
rb = int(Rnd.get(4))
self.RbSpawn = []
raidboss = self.RaidBosses[ra]['name']
location = self.RbCoords[rb]['name']
Announcements.getInstance().announceToAll(raidboss + " has just been spawned " + location + " and will disappear in 2 hours, hurry!")
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", 7150000, npc, player)
self.startQuestTimer("EventTrigger", eventInterval, npc, player)
if event == "10minutes":
Announcements.getInstance().announceToAll("10 minutes left for event registration in Giran")
if event == "5minutes":
Announcements.getInstance().announceToAll("5 minutes left for event registration in Giran")
if event == "2minutes":
Announcements.getInstance().announceToAll("2 minutes left for event registration in Giran")
if event == "1minutes":
Announcements.getInstance().announceToAll("1 minute left for event registration in Giran")
if event == "MountainSelect" :
self.EventManager1.deleteMe()
self.startQuestTimer("MountainStart", 60000, npc, player)
totalplayers = len(self.Registration)
if totalplayers >= MountainMinPlayers:
#5 players per team, max 6 teams can participate
self.numberOfTeams = int((len(self.Registration))/2)
numberOfTeams = int((len(self.Registration))/2)
playerList = list(self.Registration)
Team1 = []
Team2 = []
for i in range(len(playerList)/2) :
Team1.append(playerList.pop(Rnd.get(len(playerList))))
Team2 = playerList
for i in Team1:
i.teleToLocation(MNPCX,MNPCY,MNPCZ)#tele to top of mountain
i.getAppearance().setNameColor(0x005de2) #orange
i.getAppearance().setTitleColor(0x005de2) #orange
i.getQuestState("eventmanager").set("cond","3")
for i in Team2:
i.teleToLocation(144428,161151,-2460)#tele to location A
i.getAppearance().setNameColor(0xd5e200) #yellow
i.getAppearance().setTitleColor(0xd5e200) #yellow
i.getQuestState("eventmanager").set("cond","4")
Announcements.getInstance().announceToAll("Team 1 - blue - has 20 minutes to take control of the mountain and talk to the Flag NPC to win this event.")
Announcements.getInstance().announceToAll("Team 2 - orange - has to defend the mountain to win. Event starts in 1 minute, wait for the signal.")
self.Team1 = Team1
self.Team2 = Team2
self.numberOfTeams = numberOfTeams
else:
Announcements.getInstance().announceToAll("Event cancelled due to lack of participation.")
self.EventManager1.deleteMe()
self.TopNpc.deleteMe()
self.cancelQuestTimer("round_finish", None, None)
self.cancelQuestTimer("15Tofinish", None, None)
self.cancelQuestTimer("10Tofinish", None, None)
self.cancelQuestTimer("5Tofinish", None, None)
self.cancelQuestTimer("1Tofinish", None, None)
if event == "MountainStart":
for i in self.Team2:
i.teleToLocation(MBX,MBY,MBZ)#tele to location A
Announcements.getInstance().announceToAll("Start the event!!! Team 2, ATTACK!!! Good luck to both teams!")
self.Attacker = self.Team2
self.Defender = self.Team1
self.startQuestTimer("round_finish", 1200000, npc, player) #sera 1200000
self.startQuestTimer("15Tofinish", 300000, npc, player)
self.startQuestTimer("10Tofinish", 600000, npc, player)
self.startQuestTimer("5Tofinish", 900000, npc, player)
self.startQuestTimer("1Tofinish", 1140000, npc, player)
if event == "15Tofinish":
Announcements.getInstance().announceToAll("15 minutes until the end of the event")
if event == "10Tofinish":
Announcements.getInstance().announceToAll("10 minutes until the end of the event")
if event == "5Tofinish":
Announcements.getInstance().announceToAll("5 minutes until the end of the event")
if event == "1Tofinish":
Announcements.getInstance().announceToAll("1 minute until the end of the event")
if event == "round_finish" and npc and player:
self.TopNpc.deleteMe()
self.startQuestTimer("EventTrigger", eventInterval, npc, player)
self.cancelQuestTimer("15Tofinish", None, None)
self.cancelQuestTimer("10Tofinish", None, None)
self.cancelQuestTimer("5Tofinish", None, None)
self.cancelQuestTimer("1Tofinish", None, None)
Announcements.getInstance().announceToAll("Orange team wins!")
rr = self.Event
reward = self.rewards
for i in self.Team2:
i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
i.getAppearance().setNameColor(0xffffff)
i.getAppearance().setTitleColor(0xffffff)
i.getQuestState("eventmanager").set("cond","0")
for i in self.Team1:
i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
i.getQuestState("eventmanager").giveItems(reward[rr]['prize'],reward[rr]['number'])
i.getQuestState("eventmanager").playSound("ItemSound.quest_fanfare_1")
i.getAppearance().setNameColor(0xffffff)
i.getAppearance().setTitleColor(0xffffff)
i.getQuestState("eventmanager").set("cond","0")
if event == "RbDespawn":
self.RbSpawn.deleteMe()
def onTalk (self,npc,player) :
npcId = npc.getNpcId()
cond = player.getQuestState("eventmanager").getInt("cond")
if npcId == MANAGER :
if not cond == 2:
if self.Event == 0:
if len(self.Registration) < MountainMaxPlayers:
player.getQuestState("eventmanager").set("cond","2")
self.Registration.append(player)
Reg = list(self.Registration)
return "<html><body>You have been added to the event list, teams will be made randomly 1 minute before the start of the event</body></html>"
else:
Announcements.getInstance().announceToAll("Event is now full, no more registration accepted.")
self.Full = True
return "<html><body>Event is full, try again next time</body></html>"
else:
return "<html><body>You are already registered</body></html>"
if npcId == TOPNPC :
if not cond == 3:
self.TopNpc.deleteMe()
self.cancelQuestTimer("round_finish", None, None)
self.cancelQuestTimer("15Tofinish", None, None)
self.cancelQuestTimer("10Tofinish", None, None)
self.cancelQuestTimer("5Tofinish", None, None)
self.cancelQuestTimer("1Tofinish", None, None)
Announcements.getInstance().announceToAll("Blue team wins!")
rr = self.Event
reward = self.rewards
self.startQuestTimer("EventTrigger", eventInterval, npc, player)
for i in self.Team1:
i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
i.getAppearance().setNameColor(0xffffff)
i.getAppearance().setTitleColor(0xffffff)
i.getQuestState("eventmanager").set("cond","0")
for i in self.Team2:
i.teleToLocation(MBX1,MBY1,MBZ1)#tele back to town
i.getQuestState("eventmanager").playSound("ItemSound.quest_fanfare_1")
i.getQuestState("eventmanager").giveItems(reward[rr]['prize'],reward[rr]['number'])
i.getAppearance().setNameColor(0xffffff)
i.getAppearance().setTitleColor(0xffffff)
i.getQuestState("eventmanager").set("cond","0")
else:
return "<html><body>You are on the defending team!!! defend me, stop talking!</body></html>"
def onKill (self,npc,player,isPet):
if npc in self.RbSpawn:
self.cancelQuestTimer("RbDespawn", None, None)
# Quest class and state definition
QUEST = eventmanager(-1, "eventmanager", "ai")
for i in Raids:
QUEST.addKillId(i)
for i in EventNpcs:
QUEST.addTalkId(i)
QUEST.addStartNpc(i)
print "Event Manager loaded!!!"
==============================================================
Criar dois NPCs
html:100400
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<br>So... you want to participate in the event?
<br><br>
<button value="Yes!" action="bypass -h npc_%objectId%_Quest eventmanager" width=75 height=21 back="L2UI_CT1.Windows_DF_Drawer_Bg_Darker" fore="L2UI_CT1.Windows_DF_Drawer_Bg_Darker">
<img src=Sek.start_logo width=256 height=256 align=center>
</center></body>
</html>
=======================================================================================
html: 100401
<html>
<body>
<center>
<img src="L2UI_CH3.herotower_deco" width=256 height=32>
<br>hmmm... it seems you have defeted my defenders... So, you want your reward then?
<br><br>
<button value="Yes we do!" action="bypass -h npc_%objectId%_Quest eventmanager" width=75 height=21 back="L2UI_CT1.Windows_DF_Drawer_Bg_Darker" fore="L2UI_CT1.Windows_DF_Drawer_Bg_Darker">
<img src=Sek.start_logo width=256 height=256 align=center>
</center></body>
</html>
===========================================================
Custom_npcs.SQL
INSERT INTO `custom_npc` VALUES ('100400', '32130', 'Atome', '1', 'Event L2NeWorld', '1', 'LineageMonster3.king_of_cat', '6.00', '16.01', '80', 'male', 'L2Npc', '40', '6053', '2143', '13.43', '3.09', '40', '43', '30', '21', '20', '25', '0', '0', '2646', '633', '2006', '593', '278', '0', '0', '333', '0', '0', '0', '58', '198', '0', '0', '0', '0');
INSERT INTO `custom_npc` VALUES ('100401', '32130', 'Atome', '1', 'Event L2NeWorld', '1', 'LineageMonster3.king_of_cat', '6.00', '16.01', '80', 'male', 'L2Npc', '40', '6053', '2143', '13.43', '3.09', '40', '43', '30', '21', '20', '25', '0', '0', '2646', '633', '2006', '593', '278', '0', '0', '333', '0', '0', '0', '58', '198', '0', '0', '0', '0');
========================================================================
zone_vertices.sql
insert into zone_vertices values
('25100', '0', '143314', '164544'),
('25100', '1', '144215', '160270'),
('25100', '2', '145877', '159158'),
('25100', '3', '145397', '158735'),
('25100', '4', '142822', '155102'),
('25100', '5', '140831', '158004'),
('25100', '6', '141794', '160570');
=================================================
E adicionar esta linha em Scripts
quests/eventmanager/__init__.py
==============================================================
Testei e funcina rev Freya l2jserver.
Alguem consegue alterar só para spawn de Raid Boss???
Obrigado.
Editado por StrongALink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts recomendados
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.