Hier mal der text:
Code:
# author theOne
import sys
from java.lang import System
from L2j.Infinity import Config
from L2j.Infinity import L2DatabaseFactory
from L2j.Infinity.gameserver import Announcements
from L2j.Infinity.gameserver.datatables import DoorTable
from L2j.Infinity.gameserver.datatables import SpawnTable
from L2j.Infinity.gameserver.instancemanager import HellboundManager
from L2j.Infinity.gameserver.model.quest import State
from L2j.Infinity.gameserver.model.quest import QuestState
from L2j.Infinity.gameserver.model.quest.jython import QuestJython as JQuest
from L2j.Infinity.gameserver.network.serverpackets import CreatureSay
from L2j.Infinity.util import Rnd
ghostofderek = 18465
Captain = 18466
WLGuard = 18467
chimeras = [22349, 22350, 22351, 22352]
celtus = 22353
Solomon = 32355
Traitor = 32364
Kief = 32354
Buron = 32345
Keltas = 22341
KeltasSpawn = [ -29569, 252834, -3518 ]
KeltasMinions = [ 22342, 22343 ]
KeltasMinionsSpawns = {
0:[ -23553, 251677, -3361 ],
1:[ -24381, 251555, -3351 ],
2:[ -25367, 252178, -3252 ],
3:[ -25390, 252405, -3252 ],
4:[ -24222, 252270, -3140 ],
5:[ -24441, 252295, -3085 ],
6:[ -24106, 252711, -3054 ],
7:[ -26930, 251951, -3518 ],
8:[ -27918, 251498, -3518 ],
9:[ -27764, 251124, -3521 ],
10:[ -28415, 251995, -3521 ],
11:[ -28640, 250998, -3518 ],
12:[ -28389, 250050, -3473 ],
13:[ -28610, 250034, -3473 ],
14:[ -28719, 252281, -3518 ],
15:[ -29477, 253089, -3518 ],
16:[ -29360, 252953, -3518 ],
17:[ -29689, 252685, -3518 ],
18:[ -29117, 252925, -3518 ],
19:[ -23496, 251924, -3364 ],
20:[ -23812, 251522, -3368 ],
21:[ -25035, 251961, -3295 ],
22:[ -23869, 252040, -3306 ],
23:[ -24689, 252583, -3043 ],
24:[ -23887, 253034, -3038 ],
25:[ -27273, 251871, -3518 ],
26:[ -27211, 251139, -3518 ],
27:[ -28683, 251590, -3518 ],
28:[ -29615, 253045, -3518 ],
29:[ -29345, 252660, -3518 ],
30:[ -29145, 252709, -3518 ], }
LOCS = [
[4276, 237245, -3310],
[11437, 236788, -1949],
[7647, 235672, -1977],
[1882, 233520, -3315]
]
def changeChimeraSpawnState(booleanValue):
worldObjects = SpawnTable.getInstance().getSpawnTable().values()
for i in worldObjects:
npcId = i.getNpcid()
if npcId in chimeras:
xx, yy, zz = i.getLocx(), i.getLocy(), i.getLocz()
if booleanValue == 1:
respTime = i.getRespawnDelay()
headg = i.getHeading()
newNpc = HellboundManager.getInstance().addSpawn(npcId, xx, yy, zz, headg, respTime)
if booleanValue == 0:
i.stopRespawn()
curNpc = i.getLastSpawn()
curNpc.onDecay()
def changeBoxesSpawnState(booleanValue):
worldObjects = SpawnTable.getInstance().getSpawnTable().values()
for i in worldObjects:
npcId = i.getNpcid()
if npcId == 32361:
xx, yy, zz = i.getLocx(), i.getLocy(), i.getLocz()
if booleanValue == 1:
respTime = i.getRespawnDelay()
headg = i.getHeading()
newNpc = HellboundManager.getInstance().addSpawn(npcId, xx, yy, zz, headg, respTime)
if booleanValue == 0:
i.stopRespawn()
curNpc = i.getLastSpawn()
curNpc.onDecay()
class Leveling_System (JQuest):
def __init__(self, id, name, descr):
JQuest.__init__(self, id, name, descr)
self.hellboundTrust = 0
self.hellboundLevel = 0
self.hellboundMobs = {
22320: {'points':10},
22321: {'points':10},
22324: {'points':1},
22325: {'points':1},
22327: {'points':3},
22328: {'points':3},
22329: {'points':3},
}
self.hellboundMobs1 = {
22322: {'points':-10},
22323: {'points':-10},
22342: {'points':3},
22343: {'points':3},
22361: {'points':20},
22449: {'points':50},
22450: {'points':-10},
25536: {'points':200}
}
self.buronloc = []
self.kiefloc = []
self.keltasmin = []
self.keltasloc = []
self.Keltas = 0
self.hellboundLevel = HellboundManager.getInstance().getLevel()
self.hellboundTrust = HellboundManager.getInstance().getTrust()
if self.hellboundLevel >= 2:
newFalk = self.addSpawn(32297, -19904, 250016, -3240, 12288, False, 0)
if self.hellboundLevel < 7:
changeChimeraSpawnState(0)
if self.hellboundLevel < 5:
self.buronloc = []
self.kiefloc = []
oldKief = self.addSpawn(Kief, -21271, 250238, -3314, 16384, False, 0)
oldBuron = self.addSpawn(Buron, -11173, 236537, -3236, 41760, False, 0)
self.buronloc.append(oldBuron)
self.kiefloc.append(oldKief)
if self.hellboundLevel >= 5:
newSolomon = self.addSpawn(Solomon, -28916, 249381, -3472, 0, False, 0)
newTraitor = self.addSpawn(Traitor, -27352, 252387, -3520, 5416, False, 0)
newKief = self.addSpawn(Kief, -28357, 248993, -3472, 16384, False, 0)
newBuron = self.addSpawn(Buron, -28567, 248994, -3472, 16384, False, 0)
if self.hellboundLevel < 6:
changeBoxesSpawnState(0)
if self.hellboundLevel < 7:
changeChimeraSpawnState(0)
if self.hellboundLevel >= 3 and self.hellboundLevel < 5:
self.keltasloc = []
xx, yy, zz = KeltasSpawn
newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0)
self.keltasloc.append(newKeltas)
self.keltasmin = []
for i in range(31):
xx, yy, zz = KeltasMinionsSpawns[i]
RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))]
newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0)
self.keltasmin.append(newKeltasMinion)
if self.hellboundLevel == 4:
newDerek = self.addSpawn(ghostofderek, -28058, 256885, -1934, 0, False, 0)
if self.hellboundLevel >= 7:
worldObjects = SpawnTable.getInstance().getSpawnTable().values()
for i in worldObjects:
npcId = i.getNpcid()
if npcId == WLGuard:
xx, yy, zz = i.getLocx(), i.getLocy(), i.getLocz()
i.stopRespawn()
curNpc = i.getLastSpawn()
curNpc.onDecay()
self.startQuestTimer("LevelCheck", 60000, None, None, True)
def onAdvEvent (self, event, npc, player) :
if npc:
npcId = npc.getNpcId()
npcObjId = npc.getObjectId()
if event == "keltasRespawn":
if self.hellboundLevel >= 5: return
self.keltasloc = []
xx, yy, zz = KeltasSpawn
newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0)
self.keltasloc.append(newKeltas)
self.keltasmin = []
self.Keltas = 0
for i in range(31):
xx, yy, zz = KeltasMinionsSpawns[i]
RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))]
newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0)
self.keltasmin.append(newKeltasMinion)
if event == "LevelCheck":
HellboundManager.getInstance().checkHellboundLevel()
newLevel = HellboundManager.getInstance().getLevel()
self.hellboundTrust = HellboundManager.getInstance().getTrust()
if newLevel > self.hellboundLevel:
self.hellboundLevel = newLevel
print "---- Hellbound achieved Level " + str(self.hellboundLevel)
announce = "Hellbound now has now reached level: " + str(self.hellboundLevel)
Announcements.getInstance().announceToAll(announce)
if newLevel == 2:
newFalk = self.addSpawn(32297, -19904, 250016, -3240, 12288, False, 0)
if newLevel == 3:
xx, yy, zz = KeltasSpawn
newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0)
self.keltasloc.append(newKeltas)
self.Keltas = 0
self.keltasmin = []
for i in range(31):
xx, yy, zz = KeltasMinionsSpawns[i]
RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))]
newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0)
self.keltasmin.append(newKeltasMinion)
if newLevel == 4:
newDerek = self.addSpawn(ghostofderek, -28058, 256885, -1934, 0, False, 0)
if newLevel == 5:
for i in self.buronloc:
i.deleteMe()
for i in self.kiefloc:
i.deleteMe()
for i in self.keltasloc:
i.deleteMe()
for i in self.keltasmin:
i.deleteMe()
newSolomon = self.addSpawn(Solomon, -28916, 249381, -3472, 0, False, 0)
newTraitor = self.addSpawn(Traitor, -27352, 252387, -3520, 5416, False, 0)
newKief = self.addSpawn(Kief, -28357, 248993, -3472, 16384, False, 0)
newBuron = self.addSpawn(Buron, -28567, 248994, -3472, 16384, False, 0)
if newLevel == 6:
changeBoxesSpawnState(1)
if newLevel == 7:
changeChimeraSpawnState(1)
LOC = LOCS[Rnd.get(len(LOCS))]
CeltrespTime = (18 + Rnd.get(36)) * 100 #between 30m and 1h
newCeltus = HellboundManager.getInstance().addSpawn(celtus, LOC[0], LOC[1], LOC[2], 0, CeltrespTime)
if newLevel == 8:
newCaptain = HellboundManager.getInstance().addSpawn(Captain, 4766, 243995, -1928, 36561, 0)
if self.hellboundLevel < 7:
DoorTable.getInstance().getDoor(20250002).closeMe()
if self.hellboundLevel >= 7:
DoorTable.getInstance().getDoor(20250002).openMe()
if self.hellboundLevel < 9:
DoorTable.getInstance().getDoor(20250001).closeMe()
if self.hellboundLevel >= 9:
DoorTable.getInstance().getDoor(20250001).openMe()
def onAttack(self, npc, player, damage, isPet, skill):
id = npc.getNpcId()
if self.Keltas == 0:
self.Keltas = 1
npc.broadcastPacket(CreatureSay(npc.getObjectId(), 1, npc.getName(), "Boys! Show them our power!!!!"))
def onKill(self, npc, player, isPet):
id = npc.getNpcId()
st = player.getQuestState("Leveling_System")
if not st:
st = self.newQuestState(player)
if npc:
if id == Keltas:
HellboundManager.getInstance().increaseTrust(100)
if HellboundManager.getInstance().getLevel() > 4: return
if HellboundManager.getInstance().getLevel() == 3: respTime = (72 + Rnd.get(144)) * 100 #between 2 and 4 hours respawn retail-like
if HellboundManager.getInstance().getLevel() == 4: respTime = (288 + Rnd.get(576)) * 100 #between 8 and 16 hours respawn retail-like
self.startQuestTimer("keltasRespawn", respTime, None, None)
for i in self.keltasmin:
i.deleteMe()
if id in self.hellboundMobs.keys():
if HellboundManager.getInstance().getLevel() > 1: return
HellboundManager.getInstance().increaseTrust(self.hellboundMobs[id]['points'])
if id in self.hellboundMobs1.keys():
HellboundManager.getInstance().increaseTrust(self.hellboundMobs1[id]['points'])
if id == WLGuard:
if HellboundManager.getInstance().getLevel() == 7:
worldObjects = SpawnTable.getInstance().getSpawnTable().values()
for i in worldObjects:
if i.getNpcid() == WLGuard:
i.stopRespawn()
QUEST = Leveling_System(-1, "Leveling_System", "instances")
for i in QUEST.hellboundMobs.keys() :
QUEST.addKillId(i)
for i in QUEST.hellboundMobs1.keys() :
QUEST.addKillId(i)
QUEST.addKillId(Keltas)
QUEST.addKillId(WLGuard)
QUEST.addAttackId(Keltas)
Ich denke das der Fehler in der respawn zeit liegt, der Bericht sagt:
2010.08.06 02:31:14,926WARNING15L2j.Infinity.gameserver.model .L2Spawnrespawn delay is negative for spawnId:0
Hoffe mir kann jemand helfen
Gruß Leri






