# Made by Vice [L2JOneo] import sys from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver.ai import CtrlIntention from net.sf.l2j.gameserver.model import L2CharPosition #NPC STATUE = 32109 VELOCIRAPTOR = 22196 PTEROSAUR = 22199 TYRANNOSAURUS = 22217 SAILREN = 29065 #ITEM GAZKH = 8784 #POSITIONS STARTX = 27852 STARTY = -5536 STARTZ = -1983 STARTHDG = 44732 GOTOX = 27628 GOTOY = -6109 GOTOZ = -1982 GOTOHDG = 44732 #TIMERS TIMER1 = 30000 TIMER2 = 3600000 #HTML htmlerror = """Stone Statue of Shilen:

Shilen's protection is not with you -- go away! You are not qualified to fight against Sailren...
If you want to enter Sailren's nest, then you should find a party leader who can fight against Sailren and join his party. Or you can complete my quest to become a party leader, form your own party, and then return here.
""" # Boss: sailren def spawnMob(self,idMob) : self.vlk = self.addSpawn(idMob,STARTX,STARTY,STARTZ,STARTHDG,False,0) updateKnownList(self) self.vlk.setRunning() self.vlk.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,self.pos) self.vlk.setSpawn(None); #updateKnownList(self) def updateKnownList(self) : self.vlk.getKnownList().getKnownPlayers().clear() party = self.partyLeader.getParty() if party : for partyMember in party.getPartyMembers().toArray() : self.vlk.getKnownList().getKnownPlayers().put(partyMember.getObjectId(), partyMember); class sailren (JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) self.isRaidStarted = 0 self.pos = L2CharPosition(GOTOX,GOTOY,GOTOZ,GOTOHDG); self.vlk = None self.partyLeader = None def onAdvEvent (self,event,npc,player): objId=0 if event == "sailren_timer1" : spawnMob(self,VELOCIRAPTOR) self.startQuestTimer("sailren_timer2",TIMER2, self.vlk,player) elif event == "sailren_timer2" : if self.isRaidStarted == 1 : self.vlk.reduceCurrentHp(16660000,self.vlk) self.isRaidStarted = 0 self.vlk = None self.partyLeader = None if player : if not player.isInParty() : st = player.getQuestState("sailren") if st : st.exitQuest(1) return party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray() : st = partyMember.getQuestState("sailren") if st : st.exitQuest(1) partyMember.teleToLocation(23677,-7673,-1241) return def onTalk (self,npc,player): st = player.getQuestState("sailren") if not st : return "You are either not carrying out your quest or don't meet the criteria." npcId = npc.getNpcId() if npcId == STATUE : if st.getQuestItemsCount(GAZKH) < 1 : st.exitQuest(1) return htmlerror if not player.isInParty() : st.exitQuest(1) return htmlerror if player.getParty().getPartyLeaderOID() != player.getObjectId() : st.exitQuest(1) return htmlerror if self.isRaidStarted == 1 : st.exitQuest(1) return "Shilen's Stone Statue:
Another party is fighting with Sailren. You must wait." party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray() : partyMember.teleToLocation(27291,-6899,-1974) if self.isRaidStarted == 0 : self.startQuestTimer("sailren_timer1",TIMER1, npc, player) self.isRaidStarted = 1 st.takeItems(GAZKH,1) self.partyLeader = player return "Shilen's Stone Statue:
Please seal the sailren by your ability." def onKill (self,npc,player,isPet): if not player.isInParty() : return if player.getParty().getPartyLeaderOID() != self.partyLeader.getObjectId() : return st = self.partyLeader.getQuestState("sailren") if not st: return st = player.getQuestState("sailren") npcId = npc.getNpcId() xx = int(player.getX()) yy = int(player.getY()) zz = int(player.getZ()) if xx >= 26095 and xx <= 28987 and yy >=-8084 and yy <= -5295 : if npcId == VELOCIRAPTOR : spawnMob(self,PTEROSAUR) elif npcId == PTEROSAUR : spawnMob(self,TYRANNOSAURUS) elif npcId == TYRANNOSAURUS : spawnMob(self,SAILREN) elif npcId == SAILREN : party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray() : partyMember.teleToLocation(23677,-7673,-1241) self.isRaidStarted = 0 st.exitQuest(1) self.vlk = None self.partyLeader = None return # Quest class and state definition QUEST = sailren(-1, "sailren", "ai") CREATED = State('Start', QUEST) # Quest initialization QUEST.setInitialState(CREATED) # Quest NPC starter initialization QUEST.addStartNpc(STATUE) QUEST.addTalkId(STATUE) QUEST.addKillId(VELOCIRAPTOR) QUEST.addKillId(PTEROSAUR) QUEST.addKillId(TYRANNOSAURUS) QUEST.addKillId(SAILREN)