ADM_Name) 1 Опубликовано 16 января, 2012 скачал вот етот евент ТЫц как мне ево запустить???я все файлы загрузил....как сделать что б он в игре роботал? вот он... Скрытый текст#Instance Event by Bloodshedfrom net.sf.l2j.gameserver.instancemanager import InstanceManager from net.sf.l2j.gameserver.model import L2ItemInstance from net.sf.l2j.gameserver.model.actor import L2Summon from net.sf.l2j.gameserver.model.entity import Instance from net.sf.l2j.gameserver.model.itemcontainer import PcInventory 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.network.serverpackets import CreatureSay from net.sf.l2j.gameserver.network.serverpackets import InventoryUpdate from net.sf.l2j.gameserver.network.serverpackets import MagicSkillUse from net.sf.l2j.gameserver.network.serverpackets import SystemMessage from net.sf.l2j.gameserver.network.serverpackets import ExShowScreenMessage from net.sf.l2j.gameserver.network.serverpackets import Earthquake from net.sf.l2j.gameserver.network import SystemMessageId from net.sf.l2j.gameserver.util import Util from net.sf.l2j.util import Rnd qn = "Bloodshed" #Items E_APIGA = 14720 ADENA = 57 STONE = 9576 SCROLL = 960 #NPCs ROSE = 2009001 CHEST = 2009002 #Monsters NAGLFAR = 2009010 SENTRY1 = 2009011 SENTRY2 = 2009012 HOUND = 2009013 #Doors DOOR1 = 12240001 DOOR2 = 12240002 class PyObject: pass def openDoor(doorId,instanceId): for door in InstanceManager.getInstance().getInstance(instanceId).getDoors(): if door.getDoorId() == doorId: door.openMe() def closeDoor(doorId,instanceId): for door in InstanceManager.getInstance().getInstance(instanceId).getDoors(): if door.getDoorId() == doorId: door.closeMe() def checkConditions(player, new): party = player.getParty() if party: player.sendPacket(SystemMessage.sendString("You may not enter with a party.")) return False if not player.getLevel() >= 78: player.sendPacket(SystemMessage.sendString("You must be level 78 or higher to enter.")) return False if not party: return True return False def teleportplayer(self,player,teleto): player.setInstanceId(teleto.instanceId) player.teleToLocation(teleto.x, teleto.y, teleto.z) pet = player.getPet() if pet != None : pet.setInstanceId(teleto.instanceId) pet.teleToLocation(teleto.x, teleto.y, teleto.z) return def enterInstance(self,player,template,teleto): instanceId = 0 party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray(): st = partyMember.getQuestState(qn) if not st : st = self.newQuestState(partyMember) if partyMember.getInstanceId()!=0: instanceId = partyMember.getInstanceId() else : if player.getInstanceId()!=0: instanceId = player.getInstanceId() if instanceId != 0: if not checkConditions(player,False): return 0 foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("You have entered another zone, therefore you cannot enter this one.")) return 0 teleto.instanceId = instanceId teleportplayer(self,player,teleto) return instanceId else: if not checkConditions(player,True): return 0 instanceId = InstanceManager.getInstance().createDynamicInstance(template) if not instanceId in self.world_ids: world = PyObject() world.rewarded=[] world.instanceId = instanceId self.worlds[instanceId]=world self.world_ids.append(instanceId) print "Instance: Started " + template + " Instance: " +str(instanceId) + " created by " + str(player.getName()) teleto.instanceId = instanceId teleportplayer(self,player,teleto) return instanceId return instanceId def exitInstance(player,tele): player.setInstanceId(0) player.teleToLocation(tele.x, tele.y, tele.z) pet = player.getPet() if pet != None : pet.setInstanceId(0) pet.teleToLocation(tele.x, tele.y, tele.z) class Bloodshed(JQuest): def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) self.worlds = {} self.world_ids = [] def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == ROSE : tele = PyObject() tele.x = -238599 tele.y = 219983 tele.z = -10144 enterInstance(self, player, "Bloodshed.xml", tele) st.playSound("ItemSound.quest_middle") elif npcId == CHEST : npc.decayMe() tele = PyObject() tele.x = 82200 tele.y = 148347 tele.z = -3467 exitInstance(player,tele) st.giveItems(ADENA,2750000) st.giveItems(STONE,1) st.giveItems(SCROLL,1) st.playSound("ItemSound.quest_finish") player.sendPacket(ExShowScreenMessage("Solo Instance Event (78+): Completed", 8000)) return def onKill(self,npc,player,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == SENTRY1 : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] st.playSound("ItemSound.quest_middle") player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Master, Forgive Me!")) st.giveItems(E_APIGA,1) openDoor(DOOR1,npc.instanceId) elif npcId == SENTRY2 : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] st.playSound("ItemSound.quest_middle") player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Master, Forgive Me!")) st.giveItems(E_APIGA,1) openDoor(DOOR2,npc.instanceId) elif npcId == HOUND : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] st.playSound("ItemSound.quest_middle") st.giveItems(E_APIGA,2) player.sendPacket(ExShowScreenMessage("Demonic Lord Naglfar Has Appeared!", 8000)) newNpc = self.addSpawn(NAGLFAR,-242754,219982,-9985,306,False,0,False,npc.instanceId) player.sendPacket(Earthquake(240826,219982,-9985,20,10)) elif npcId == NAGLFAR : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Ugh.... Defeated.. How!?")) player.sendPacket(ExShowScreenMessage("Congratulations! You Have Defeated Demonic Lord Naglfar.", 12000)) st.playSound("ItemSound.quest_fanfare_2") st.giveItems(E_APIGA,4) newNpc = self.addSpawn(CHEST,-242754,219982,-9985,306,False,0,False,npc.instanceId) return QUEST = Bloodshed(-1, qn, "Bloodshed") QUEST.addStartNpc(ROSE) QUEST.addTalkId(ROSE) QUEST.addTalkId(CHEST) QUEST.addKillId(NAGLFAR) QUEST.addKillId(HOUND) QUEST.addKillId(SENTRY1) QUEST.addKillId(SENTRY2) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Teams 30 Опубликовано 16 января, 2012 что в гс пишет? ты нпц ставил от этого евента квест же у него берётся Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ADM_Name) 1 Опубликовано 16 января, 2012 ...ага значит кв непашет..................................................................... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ADM_Name) 1 Опубликовано 16 января, 2012 from net.sf.l2j.gameserver.instancemanager import InstanceManager кароче пишет что ошибка вначале...выше строка со скаченого... import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; ето с моего....как должно быть ??может надо просто ето поменять ?? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ADM_Name) 1 Опубликовано 16 января, 2012 Error on: D:\serverL2\Server\gameserver\data\scripts\instances\Bloodshed\__init__.py.error.log Line: -1 - Column: -1 No engine registered for extension (py) вот ето лог Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ADM_Name) 1 Опубликовано 16 января, 2012 выа Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты