Can someone help me with this script?Im need if one person attack him or Leave from his room without kill him the baium despawn and spawn the stone mode again!Now im manage to do this just without attack him just wakeup him and leave and baium is despawned after 5 min.Just if you attack him and leave the boss alive he not despawn to stone and the teleport to him is disabled and need server restart to unblock the teleport and spawn the stone mode!
Can someone help me?Thx with Advance!
Here is the code:the import from the script is not included!
1. STONE_BAIUM = 29025
2. ANGELIC_VORTEX = 31862
3. LIVE_BAIUM = 29020
4.
5. # Boss: Baium
6. #
7. # Note1: if the server gets rebooted while players are still fighting Baium, there is no lock, but
8. # players also lose their ability to wake baium up. However, should another person
9. # enter the room and wake him up, the players who had stayed inside may join the raid.
10. # This can be helpful for players who became victims of a reboot (they only need 1 new player to
11. # enter and wake up baium) and is not too exploitable since any player wishing to exploit it
12. # would have to suffer 5 days of being parked in an empty room.
13. # Note2: Neither version of Baium should be a permanent spawn. This script is fully capable of
14. # spawning the statue-version when the lock expires and switching it to the mob version promptly.
15. #
16. # Additional notes ( source http://aleenaresron.blogspot.com/2006_0 ... chive.html ):
17. # * Baium only first respawns five days after his last death. And from those five days he will
18. # respawn within 1-8 hours of his last death. So, you have to know his last time of death.
19. # * If by some freak chance you are the only one in Baium's chamber and NO ONE comes in
20. # [ha, ha] you or someone else will have to wake Baium. There is a good chance that Baium
21. # will automatically kill whoever wakes him. There are some people that have been able to
22. # wake him and not die, however if you've already gone through the trouble of getting the
23. # bloody fabric and camped him out and researched his spawn time, are you willing to take that
24. # chance that you'll wake him and not be able to finish your quest? Doubtful.
25. # [ this powerful attack vs the player who wakes him up is NOT yet implemented here]
26. # * once someone starts attacking Baium no one else can port into the chamber where he is.
27. # Unlike with the otehr raid bosses, you can just show up at any time as long as you are there
28. # when they die. Not true with Baium. Once he gets attacked, the port to Baium closes. byebye,
29. # see you in 5 days. If nobody attacks baium for 30 minutes, he auto-despawns and unlocks the
30. # vortex
31. class baium (JQuest):
32.
33. def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
34.
35. def init_LoadGlobalData(self) :
36. # initialize
37. self.isBaiumAwake = False
38. self.playersInside = []
39. self.isBaiumLocked = False
40. self.lastAttackVsBaiumTime = 0
41.
42. # load the unlock date and time for baium from DB
43. temp = self.loadGlobalQuestVar("unlockDatetime")
44. # if baium is locked until a certain time, mark it so and start the unlock timer
45. if temp == "" :
46. self.addSpawn(STONE_BAIUM,115213,16623,10080,41740,False,0)
47. else :
48. # the unlock time has not yet expired. Mark Baium as currently locked. Setup a timer
49. # to fire at the correct time (calculate the time between now and the unlock time,
50. # setup a timer to fire after that many msec)
51. temp = long(temp) - System.currentTimeMillis()
52. if temp > 0 :
53. self.isBaiumLocked = True
54. self.startQuestTimer("baium_unlock", temp, None, None)
55. else :
56. # the time has already expired while the server was offline. Delete the saved time and
57. # immediately spawn the stone-baium. Also the variable is not changed from "isBaiumLocked = False"
58. self.deleteGlobalQuestVar("unlockDatetime")
59. self.addSpawn(STONE_BAIUM,115213,16623,10080,41740,False,0)
60. return
61.
62. def onAdvEvent (self,event,npc,player):
63. objId=0
64. if event == "baium_unlock" :
65. self.isBaiumLocked = False
66. self.deleteGlobalQuestVar("unlockDatetime")
67. self.addSpawn(STONE_BAIUM,115213,16623,10080,41740,False,0)
68. elif event == "baium_wakeup" and npc:
69. if npc.getNpcId() == LIVE_BAIUM :
70. npc.broadcastPacket(SocialAction(npc.getObjectId(),1))
71. npc.broadcastPacket(Earthquake(npc.getX(), npc.getY(), npc.getZ(),40,5))
72. # once Baium is awaken, no more people may enter until he dies, the server reboots, or
73. # 30 pass with no attacks made against Baium.
74. self.isBaiumLocked = True
75. # start monitoring baium's inactivity
76. self.lastAttackVsBaiumTime = System.currentTimeMillis()
77. self.startQuestTimer("baium_despawn", 3000, npc, None)
78. # TODO: the person who woke baium up should be knocked across the room, onto a wall, and
79. # lose massive amounts of HP.
80. # despawn the live baium after 30 minutes of inactivity
81. elif event == "baium_despawn" and npc:
82. if (npc.getNpcId() == LIVE_BAIUM) and (self.lastAttackVsBaiumTime + 3000 < System.currentTimeMillis()) :
83. npc.deleteMe() # despawn the live-baium
84. self.addSpawn(STONE_BAIUM,115213,16623,10080,41740,False,0) # spawn stone-baium
85. self.deleteGlobalQuestVar("unlockDatetime") # make sure that all locks are deleted from the DB
86. self.isBaiumAwake = False # mark that Baium is not awake any more
87. self.isBaiumLocked = False # unlock the entrance
88. self.playersInside = []
89. else :
90. # if baium's inactivity is still younger than 30 minutes, just re-add the timer
91. self.startQuestTimer("baium_despawn", 3000, npc, None)
92. return
93.
94. def onTalk (self,npc,player):
95. npcId = npc.getNpcId()
96. htmltext = ""
97. if npcId == STONE_BAIUM :
98. if player in self.playersInside :
99. if not npc.isBusy():
100. npc.setBusy(True)
101. npc.setBusyMessage("Attending another player's request")
102. npc.deleteMe()
103. baium = self.addSpawn(LIVE_BAIUM,npc)
104. baium.broadcastPacket(SocialAction(baium.getObjectId(),2))
105. self.startQuestTimer("baium_wakeup",15000, baium, None)
106. self.playersInside = []
107. else:
108. htmltext = "Conditions are not right to wake up Baium"
109. elif npcId == ANGELIC_VORTEX :
110. if not self.isBaiumLocked :
111. if player.isFlying() :
112. print "Player "+player.getName()+" attempted to enter Baium's layer while flying!"
113. htmltext = '<html><body>Angelic Vortex:<br>You may not enter while flying a wyvern</body></html>'
114. if player.getQuestState("baium").getQuestItemsCount(4295) : # bloody fabric
115. player.getQuestState("baium").takeItems(4295,1)
116. player.teleToLocation(113100,14500,10077)
117. if not self.isBaiumAwake :
118. self.playersInside.append(player)
119. else :
120. htmltext = '<html><body>Angelic Vortex:<br>You do not have Bloody Fabric!</body></html>'
121. else :
122. htmltext = '<html><body>Angelic Vortex:<br>You may not enter at this time!</body></html>'
123. return htmltext
124.
125. def onAttack(self, npc, player, damage, isPet) :
126. # update a variable with the last action against baium
127. self.lastAttackVsBaiumTime = System.currentTimeMillis()
128.
129. def onKill(self,npc,player,isPet):
130. objId=npc.getObjectId()
131. npc.broadcastPacket(PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ()))
132. # spawn the "Teleportation Cubic" for 15 minutes (to allow players to exit the lair)
133. self.addSpawn(29055,115203,16620,10078,0,False,900000)
134.
135. # "lock" baium for 5 days and 1 to 8 hours [i.e. 432,000,000 + 1*3,600,000 + random-less-than(8*3,600,000) millisecs]
136. respawnTime = 5455000 + Rnd.get(0*0)
137. self.isBaiumLocked = True
138. self.startQuestTimer("baium_unlock", respawnTime, None, None)
139. # also save the respawn time so that the info is maintained past reboots
140. self.saveGlobalQuestVar("unlockDatetime", str(System.currentTimeMillis() + respawnTime))
141.
142.
143. # Quest class and state definition
144. QUEST = baium(-1, "baium", "ai")
145. CREATED = State('Start', QUEST)
146.
147. # Quest initialization
148. QUEST.setInitialState(CREATED)
149. # Quest NPC starter initialization
150. QUEST.addStartNpc(STONE_BAIUM)
151. QUEST.addStartNpc(ANGELIC_VORTEX)
152. QUEST.addTalkId(STONE_BAIUM)
153. QUEST.addTalkId(ANGELIC_VORTEX)
154.
155. QUEST.addKillId(LIVE_BAIUM)
156. QUEST.addAttackId(LIVE_BAIUM)
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.
When I have free time, I will update it for version 409.
I might also make some changes, such as allowing you to choose whether you want the berserker at level 1 or 2.
The sale of the pack is valid until 12/31/2024.
The share is prohibited at any time, in any form.
This pack will never be shared by me personally because too many people work on it.
If you bought or will buy the pack not from me, do not expect any claims regarding functionality, answers to questions, help, etc., do not even write))
Question
motili
Hi All!
Can someone help me with this script?Im need if one person attack him or Leave from his room without kill him the baium despawn and spawn the stone mode again!Now im manage to do this just without attack him just wakeup him and leave and baium is despawned after 5 min.Just if you attack him and leave the boss alive he not despawn to stone and the teleport to him is disabled and need server restart to unblock the teleport and spawn the stone mode!
Can someone help me?Thx with Advance!
Here is the code:the import from the script is not included!
4 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.