ewantesse 15 Опубликовано 3 января, 2013 Привет всем.Хотел бы поинтересоваться о рб беноме.Как вообще работает система 1 день до осады=его респ->если не убить то он респается в тронке руны.Хотел бы узнать так же его время респа в тронке за те 2 часа осады.Вообщем хотел бы узнать полную систему этого прикольного рб)Просто хотел бы такую тему к каждому замку припилить)))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 января, 2013 Работает так: За 24 до начала осады появляется тп в логово бенома, если члены клана не убили бенома за час до начала осады - после убийства 2 контрольных башен защиты, Беном спавнится на траке у тронки и крушит всех и вся по всей длине верхнего этажа. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ewantesse 15 Опубликовано 3 января, 2013 Работает так: За 24 до начала осады появляется тп в логово бенома, если члены клана не убили бенома за час до начала осады - после убийства 2 контрольных башен защиты, Беном спавнится на траке у тронки и крушит всех и вся по всей длине верхнего этажа. Спс)Узнал о башнях новое)Хотелось бы узнать в какой папке хрониться данный скрипт.))Если можешь то укажи путь) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 3 января, 2013 Спс)Узнал о башнях новое)Хотелось бы узнать в какой папке хрониться данный скрипт.))Если можешь то укажи путь) Насколько я знаю, он нигде не реализован. Пишите сам, я писал. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WTF 113 Опубликовано 3 января, 2013 benom.ai не? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HECKBuK 229 Опубликовано 4 января, 2013 У меня есть только вот так Сборка ГФ # By Live import sys from java.lang import System from com.l2emu import L2DatabaseFactory from com.l2emu.gameserver.ai import CtrlIntention from com.l2emu.gameserver.datatables import DoorTable from com.l2emu.gameserver.datatables import SpawnTable from com.l2emu.gameserver.instancemanager import CastleManager from com.l2emu.gameserver.model.quest import QuestState from com.l2emu.gameserver.model.quest import State from com.l2emu.gameserver.model.quest.jython import QuestJython as JQuest from com.l2emu.gameserver.network.serverpackets import NpcSay from com.l2emu.gameserver.network.serverpackets import SocialAction from com.l2emu.gameserver.network.serverpackets import SpecialCamera from com.l2emu.util import Rnd from com.l2emu.gameserver.model import Location Benom = 29054 BenomTeleport = 35506 BenomSpeak = [ "You should have finished me when you had the chance!!!", "I will crush all of you!!!", "I am not finished here, come face me!!!", "You cowards!!! I will torture each and everyone of you!!!" ] WalkTimes = [ 18000,17000,4500,16000,22000,14000,10500,14000,9500,12500,20500,14500,17000,20000,22000,11000,11000,20000,8000,5500,20000,18000,25000,28000,25000,25000,25000,25000,10000,24000,7000,12000,20000 ] def checkState() : checkState = False con = L2DatabaseFactory.getInstance().getConnection(None) offline = con.prepareStatement("SELECT state FROM grandboss_intervallist WHERE bossId = 29054") rs = offline.executeQuery() if rs : rs.next() try : checkState = rs.getInt("state") con.close() except : checkState = 1 try : con.close() except : pass else : checkState = 1 return int(checkState) def updateState(state) : con = L2DatabaseFactory.getInstance().getConnection(None) offline = con.prepareStatement("UPDATE grandboss_intervallist SET state = ? WHERE bossId = 29054") offline.setInt(1, state) try : offline.executeUpdate() offline.close() con.close() except : try : con.close() except : pass def unspawnNpc(npcId) : for spawn in SpawnTable.getInstance().getSpawnTable().values(): if spawn.getNpcId() == npcId : SpawnTable.getInstance().deleteSpawn(spawn, False) npc = spawn.getLastSpawn() npc.deleteMe() return benomWalkRoutes = { 0: [ 12565, -49739, -547 ], 1: [ 11242, -49689, -33 ], 2: [ 10751, -49702, 83 ], 3: [ 10824, -50808, 316 ], 4: [ 9084, -50786, 972 ], 5: [ 9095, -49787, 1252 ], 6: [ 8371, -49711, 1252 ], 7: [ 8423, -48545, 1252 ], 8: [ 9105, -48474, 1252 ], 9: [ 9085, -47488, 972 ], 10: [ 10858, -47527, 316 ], 11: [ 10842, -48626, 75 ], 12: [ 12171, -48464, -547 ], 13: [ 13565, -49145, -535 ], 14: [ 15653, -49159, -1059 ], 15: [ 15423, -48402, -839 ], 16: [ 15066, -47438, -419 ], 17: [ 13990, -46843, -292 ], 18: [ 13685, -47371, -163 ], 19: [ 13384, -47470, -163 ], 20: [ 14609, -48608, 346 ], 21: [ 13878, -47449, 747 ], 22: [ 12894, -49109, 980 ], 23: [ 10135, -49150, 996 ], 24: [ 12894, -49109, 980 ], 25: [ 13738, -50894, 747 ], 26: [ 14579, -49698, 347 ], 27: [ 12896, -51135, -166 ], 28: [ 12971, -52046, -292, ], 29: [ 15140, -50781, -442, ], 30: [ 15328, -50406, -603 ], 31: [ 15594, -49192, -1059 ], 32: [ 13175, -49153, -537 ] } class benom (JQuest): def __init__(self, id, name, descr) : JQuest.__init__(self, id, name, descr) castleOwner = CastleManager.getInstance().getCastleById(.getOwnerId() siegeDate = CastleManager.getInstance().getCastleById(.getSiegeDate().getTimeInMillis() benomRaidRoomSpawn = (siegeDate - System.currentTimeMillis()) - 86400000 benomRaidSiegeSpawn = (siegeDate - System.currentTimeMillis()) if benomRaidSiegeSpawn < 0 : benomRaidSiegeSpawn = 1 self.BenomWalkRouteStep = 0 self.BenomIsSpawned = 0 if castleOwner > 0 : if (siegeDate - System.currentTimeMillis()) > 0 : self.startQuestTimer("BenomRaidRoomSpawn", benomRaidRoomSpawn, None, None) self.startQuestTimer("BenomRaidSiegeSpawn", benomRaidSiegeSpawn, None, None) self.Benom = Benom def onAdvEvent(self, event, npc, player) : if event == "BenomRaidRoomSpawn" : if self.BenomIsSpawned == 0 and checkState() == 0 : self.addSpawn(Benom, 12047, -49211, -3009, 0, False, 0) self.BenomIsSpawned = 1 elif event == "BenomRaidSiegeSpawn" : if checkState() == 0 : if self.BenomIsSpawned == 0 : self.addSpawn(Benom, 11025, -49152, -537, 0, False, 0) self.BenomIsSpawned = 1 elif self.BenomIsSpawned == 1 : self.Benom.teleToLocation(11025, -49152, -537) self.startQuestTimer("BenomSpawnEffect", 100, npc, None) self.startQuestTimer("BenomBossDespawn", 5400000, npc, None) self.cancelQuestTimer("BenomSpawn", npc, None) elif event == "BenomSpawnEffect" : npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE) npc.broadcastPacket(SpecialCamera(npc.getObjectId(), 200, 0, 150, 0, 5000)) npc.broadcastPacket(SocialAction(npc.getObjectId(), 3)) self.startQuestTimer("BenomWalk", 5000, npc, None) self.BenomWalkRouteStep = 0 elif event == "Attacking" : NumPlayers = [] for player in npc.getKnownList().getKnownPlayers().values() : NumPlayers.append(player) if len(NumPlayers) > 0 : target = NumPlayers[Rnd.get(len(NumPlayers))] npc.addDamageHate(target, 0, 999) npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target) self.startQuestTimer("Attacking", 2000, npc, player) elif len(NumPlayers) == 0 : self.startQuestTimer("BenomWalkFinish", 2000, npc, None) elif event == "BenomWalkFinish" : if npc.getCastle().getSiege().getIsInProgress() : self.cancelQuestTimer("Attacking", npc, player) X = benomWalkRoutes[self.BenomWalkRouteStep][0] Y = benomWalkRoutes[self.BenomWalkRouteStep][1] Z = benomWalkRoutes[self.BenomWalkRouteStep][2] npc.teleToLocation(X, Y, Z) npc.setWalking() self.BenomWalkRouteStep = 0 self.startQuestTimer("BenomWalk", 2200, npc, None) elif event == "BenomWalk" : if self.BenomWalkRouteStep == 33 : self.BenomWalkRouteStep = 0 self.startQuestTimer("BenomWalk", 100, npc, None) else : self.startQuestTimer("Talk", 100, npc, None) if self.BenomWalkRouteStep == 14 : self.startQuestTimer("DoorOpen", 15000, None, None) self.startQuestTimer("DoorClose", 23000, None, None) if self.BenomWalkRouteStep == 32 : self.startQuestTimer("DoorOpen", 500, None, None) self.startQuestTimer("DoorClose", 4000, None, None) Time = WalkTimes[self.BenomWalkRouteStep] npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE) X = benomWalkRoutes[self.BenomWalkRouteStep][0] Y = benomWalkRoutes[self.BenomWalkRouteStep][1] Z = benomWalkRoutes[self.BenomWalkRouteStep][2] npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(X, Y, Z, 0), False) # L2EMU-VCT self.BenomWalkRouteStep = int(self.BenomWalkRouteStep) + 1 self.startQuestTimer("BenomWalk", Time, npc, None) elif event == "DoorOpen" : DoorTable.getInstance().getDoor(20160005).openMe() elif event == "DoorClose" : DoorTable.getInstance().getDoor(20160005).closeMe() elif event == "Talk" : if Rnd.get(100) < 40 : npc.broadcastPacket(NpcSay(npc.getObjectId(), 0, npc.getNpcId(), BenomSpeak[Rnd.get(4)])) elif event == "BenomBossDespawn" : updateState(0) self.BenomIsSpawned = 0 unspawnNpc(Benom) return def onAggroRangeEnter(self, npc, player, isPet) : self.cancelQuestTimer("BenomWalk", npc, None) self.cancelQuestTimer("BenomWalkFinish", npc, None) self.startQuestTimer("Attacking", 100, npc, player) return def onKill(self, npc, player, isPet) : updateState(1) self.cancelQuestTimer("BenomWalk", npc, None) self.cancelQuestTimer("BenomWalkFinish", npc, None) self.cancelQuestTimer("BenomBossDespawn", npc, None) self.cancelQuestTimer("Talk", npc, None) self.cancelQuestTimer("Attacking", npc, None) return def onTalk(self, npc, player) : st = player.getQuestState("benom") if not st : return X = 12558 + Rnd.get(-100, 100) Y = -49279 + Rnd.get(-100, 100) player.teleToLocation(X, Y, -3007) st.exitQuest(1) return "" QUEST = benom(-1, "benom", "ai") QUEST.addStartNpc(BenomTeleport) QUEST.addTalkId(BenomTeleport) QUEST.addAggroRangeEnterId(Benom) QUEST.addKillId(Benom) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ewantesse 15 Опубликовано 4 января, 2013 Насколько я знаю, он нигде не реализован. Пишите сам, я писал. Да в том то и прикол что за сутки до осады он у меня появляется.Во время осады только сообщения его идут из подвала.И телепорт почему-то стоит всегда к нему.Вообщем лан.Всем спс щас обращусь к админу рпг клаба Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты