Hi all ! i have a problem i was trying to make a custom quest i want a npc teleport to a raidboss ,when char is there i want to spawn 4 bosses 1 by one with cinematic ,so i copied and adapt sailren .py but i have a problem that i cant understand.i am getting error at line 48 "getObjectId" the python code is below.i use l2jfrozen.
import sys
from com.l2jfrozen.gameserver.ai import CtrlIntention
from com.l2jfrozen.gameserver.managers import GrandBossManager
from com.l2jfrozen.gameserver.model.actor.position import L2CharPosition
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import SocialAction
from com.l2jfrozen.gameserver.network.serverpackets import SpecialCamera
from com.l2jfrozen.util.random import Rnd
from java.lang import System
STATUE = 50000
SAILREN = 35646
VELO = 35647
PTERO = 90000
TREX = 35648
STONE = 6673
class Grandmaster (JQuest) :
def __init__(self,id,name,descr):
self.vlc = []
self.ptr = []
self.trx = []
self.slrn = []
JQuest.__init__(self,id,name,descr)
def onAdvEvent (self,event,npc,player):
if event == "start" :
self.vlc = self.addSpawn(VELO,96452,159940,-3275,45000,False,0)
self.startQuestTimer("camera",2000, self.vlc, player)
self.cancelQuestTimer("start",npc,None)
if event == "round2" :
self.ptr = self.addSpawn(PTERO,96409,160011,-3261,45000,False,0)
self.startQuestTimer("camera",2000, self.ptr, player)
self.cancelQuestTimer("round2",npc,None)
if event == "round3" :
self.trx = self.addSpawn(TREX,96500,159998,-3275,45000,False,0)
self.startQuestTimer("camera",2000, self.trx, player)
self.cancelQuestTimer("round3",npc,None)
if event == "grandmaster" :
self.slrn = self.addSpawn(SAILREN,96403,160011,-3299,45000,False,0)
self.startQuestTimer("camera",2000, self.slrn, player)
self.startQuestTimer("vkrovatku",1200000, self.slrn, None)
self.cancelQuestTimer("round4",npc,None)
elif event == "camera" :
player.broadcastPacket(SpecialCamera(npc.getObjectId(),400,-75,3,-150,5000))
npc.broadcastPacket(SocialAction(npc.getObjectId(),1))
elif event == "open" :
self.deleteGlobalQuestVar("close")
self.cancelQuestTimer("open",npc,None)
elif event == "vkrovatku" :
npc.deleteMe()
self.deleteGlobalQuestVar("close")
self.cancelQuestTimer("open",npc,None)
self.cancelQuestTimer("vkrovatku",npc,None)
return
def onTalk (self,npc,player):
st = player.getQuestState("grandmaster")
npcId = npc.getNpcId()
close = self.loadGlobalQuestVar("close")
time = self.loadGlobalQuestVar("time")
party = player.getParty()
if npcId == STATUE :
if st.getQuestItemsCount(STONE) >= 1 :
if close == "" :
if party:
for player in party.getPartyMembers() :
st.takeItems(STONE,1)
self.saveGlobalQuestVar("close", "1")
zone = GrandBossManager.getInstance().getZone(97235,160539,-3312)
if zone:
zone.allowPlayerEntry(player, 3600)
player.teleToLocation(97235,160539,-3312)
self.startQuestTimer("start",30000,npc,player)
self.startQuestTimer("open",1800000,npc,None)
else :
return "<html><body><font color=LEVEL>Only with party...</font></body></html>"
else :
return "<html><body><font color=LEVEL>Some one else is inside...</font></body></html>"
else :
return "<html><body>You need quest item: <font color=LEVEL>Gazkh...</font></body></html>"
return
def onKill(self,npc,player,isPet):
if npc == self.vlc :
self.startQuestTimer("round2",30000,npc,player)
if npc == self.ptr :
self.startQuestTimer("round3",60000,npc,player)
if npc == self.trx :
self.startQuestTimer("grandmaster",180000,npc,player)
if npc == self.slrn :
self.deleteGlobalQuestVar("close")
self.cancelQuestTimer("open",npc,None)
return
QUEST = Grandmaster(-1,"grandmaster","ai")
CREATED = State('Start',QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(STATUE)
QUEST.addTalkId(STATUE)
QUEST.addKillId(VELO)
QUEST.addKillId(PTERO)
QUEST.addKillId(TREX)
QUEST.addKillId(SAILREN)
Hello, lovely people, how are you? I just finished compiling the L2jFrozen project Rev: 1132 (very old).
I don't mind it being too old, since the project is for me and my children. (LAN/Offline) it's not meant to be put online. I want to learn and give my children more comfort when playing. And for my part, I also experiment with the game.
My problem is that I don't know much about the subject. I was able to make some basic configurations to my liking and that of my children, but it never compiles or anything like that... I would really need help from you, the community... I simply want to remove all subclass restrictions, remove the restriction on "Overlord, Warsmith, and Dark Elf subclasses with White Elves and vice versa." Thank you very much in advance! Greetings, community.
Warriors, prepare for a new era!
We are pleased to announce that on July 12, with the morning restart, Airin will be updated to Chronicle 4: Scions of Destiny.
- Open Beta Testing (OBT) will begin on July 9. Everyone will be able to test the update in advance, including class mechanics, quests, and new content.
- The Clan Hall Auction will take place on July 13.
We’ve also prepared a traditional bonus start - details will be shared in the coming days.
The full list of changes is available in the official patch notes.
Thank you for your support and participation in the project. See you in Chronicle 4!
The game client download will be available soon.
Question
sakisd
Hi all !
i have a problem i was trying to make a custom quest i want a npc teleport to a raidboss ,when char is there i want to spawn 4 bosses 1 by one with cinematic ,so i copied and adapt sailren .py but i have a problem that i cant understand.i am getting error at line 48 "getObjectId" the python code is below.i use l2jfrozen.
2 answers to this question
Recommended Posts