estaz Posted November 25, 2010 Share Posted November 25, 2010 Hi everyone :) I wanted to ask you, what have to be the code, to take item in order to enter instance (party and solo instances) in .py files . Thanks. - estaz Link to comment Share on other sites More sharing options...
0 estaz Posted November 26, 2010 Author Share Posted November 26, 2010 bump Link to comment Share on other sites More sharing options...
0 SkyNet Posted November 27, 2010 Share Posted November 27, 2010 all the stuff exist already in game, so get it from your server files and re-write it by your self... Link to comment Share on other sites More sharing options...
0 estaz Posted November 27, 2010 Author Share Posted November 27, 2010 yeah i tried.. I found only java file, that onenter to instance, it would take some items by id, but when i rewrote it from java to .py, it dropped me a syntax error.. Link to comment Share on other sites More sharing options...
0 SkyNet Posted November 27, 2010 Share Posted November 27, 2010 if u get an error maybe its a good idea to show them here ? :) there are also teleport .py scripts too which u could try to use... Link to comment Share on other sites More sharing options...
0 estaz Posted November 27, 2010 Author Share Posted November 27, 2010 Sorry, every file, except Gracia_heart in teleports are rewritten in java :-\ After a fev. sec. i will upload the .py error.. And this is the error, when i load the instance not in py file but in java, because i have it in java too, but still: 1. ERROR in \BloodShedParty.java (at line 72) public BSPWorld() ^^^^^^^^^^ No enclosing instance of type InstanceManager is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super construc tor invocation with an instance of InstanceManager (e.g. x.super() where x is an instance of InstanceManager). ---------- 2. WARNING in \BloodShedParty.java (at line 374) private int GetKilledMobs(int npcId) ^^^^^^^^^^^^^^^^^^^^^^^^ The method GetKilledMobs(int) from the type BloodShedParty is never used locally Link to comment Share on other sites More sharing options...
0 estaz Posted November 28, 2010 Author Share Posted November 28, 2010 Sorry that i didnt posted the error, that i get from .py file, its just a syntax error because i use private static final. I just ask for a example code, that would check onenter to instance if the player has the required item and onteleport, teleporter would take it (in .py file).. Link to comment Share on other sites More sharing options...
0 estaz Posted November 29, 2010 Author Share Posted November 29, 2010 bump ---- edited Okey, here is the .py file, error and the lines i edited : The File Red lines - the edited qn = "Bloodshedparty" #Items E_APIGA = 14720 ADENA = 57 STONE = 9576 STONE82 = 10486 STONE84 = 14169 SCROLL = 960 SCROLLB = 6577 GOLDDRAGON = 3481 ECCACOIN = 4037 #NPCs ROSE = 2009001 CHEST = 2010010 #FIRST CHAMBER MOBS GUARD = 2010001 KEYKEEPER = 2010013 PROTECTOR = 2010005 BELETH = 2010007 BAYLOR = 2010008 TIAT = 2010009 #Doors DOOR = 20240001 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 not party: player.sendPacket(ExShowScreenMessage("You are not currently in a party, so you cannot enter.", 8000)) return False if party and party.getMemberCount() < 2: player.sendPacket(ExShowScreenMessage("You cannot enter because there is too less people in your party. Minimum is 6 people.", 8000)) return False for partyMember in party.getPartyMembers().toArray(): if partyMember.getLevel() < 80: player.sendPacket(SystemMessage.sendString(partyMember.getName()+"s level is too low and cannot be entered.")) return False if not Util.checkIfInRange(1000, player, partyMember, True) and new: player.sendPacket(SystemMessage.sendString(partyMember.getName()+" is too far away ask him to come here.")) return False return True 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 for partyMember in party.getPartyMembers().toArray(): teleportplayer(self,partyMember,teleto) return instanceId return instanceId def exitInstance(player,tele): party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray(): partyMember.setInstanceId(0) partyMember.teleToLocation(tele.x, tele.y, tele.z) pet = partyMember.getPet() if pet != None : pet.setInstanceId(0) pet.teleToLocation(tele.x, tele.y, tele.z) else : 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) InstanceManager.getInstance().destroyInstance(player.getInstanceId()) class Bloodshedparty(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 : if st.getQuestItemsCount(ECCACOIN) >= 4 : htmltext = "2009002.htm" else : st.takeItems(ECCACOIN,5) tele = PyObject() tele.x = 16345 tele.y = 209051 tele.z = -9357 enterInstance(self, player, "Bloodshedparty.xml", tele) st.playSound("ItemSound.quest_middle") elif npcId == CHEST : npc.decayMe() tele = PyObject() tele.x = 82200 tele.y = 148347 tele.z = -3467 party = player.getParty() if party : for partyMember in party.getPartyMembers().toArray(): exitInstance(partyMember,tele) else: exitInstance(player,tele) st.giveItems(ADENA,10000) if Rnd.get(100) < 10 : st.giveItems(STONE84,1) if Rnd.get(100) < 15 : st.giveItems(STONE82,1) if Rnd.get(100) < 25 : st.giveItems(STONE,1) if Rnd.get(100) < 25 : st.giveItems(SCROLLB,1) if Rnd.get(100) < 50 : st.giveItems(SCROLL,1) st.playSound("ItemSound.quest_finish") player.sendPacket(ExShowScreenMessage("This world was destroyed: Completed", 8000)) player.sendPacket(ExShowScreenMessage("Baylor: You fools, We will meet in your world soon.....Aha ha ha", 15000)) return def onKill(self,npc,player,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == GUARD : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Master, Forgive Me! I failed")) #newNpc = self.addSpawn(int npcId,x,y,z,heading,randomOffset,despawnDelay,isSummonSpawn,instanceId) newNpc = self.addSpawn(PROTECTOR,16658,211498,-9357,0,False,0,False,npc.instanceId) player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "You fools, here's your end")) player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Ooo...It is a good day to die")) openDoor(DOOR,npc.instanceId) elif npcId == PROTECTOR : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Master, Forgive Me!")) player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "I failed, give me another chance to protect you")) st.giveItems(E_APIGA,2) player.sendPacket(ExShowScreenMessage("Fools, here's your end!", 8000)) #newNpc = self.addSpawn(int npcId,x,y,z,heading,randomOffset,despawnDelay,isSummonSpawn,instanceId) newNpc = self.addSpawn(BELETH,16344,213091,-9356,0,False,0,False,npc.instanceId) player.sendPacket(Earthquake(16344,213091,-9356,20,5)) elif npcId == BELETH : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "My world.....")) player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "Baylorrrrr")) st.giveItems(E_APIGA,2) player.sendPacket(ExShowScreenMessage("Baylor:My Brother, I will avenge you!", 12000)) #newNpc = self.addSpawn(int npcId,x,y,z,heading,randomOffset,despawnDelay,isSummonSpawn,instanceId) newNpc = self.addSpawn(BAYLOR,16344,213091,-9356,0,False,0,False,npc.instanceId) player.sendPacket(Earthquake(16344,213091,-9356,20,5)) elif npcId == BAYLOR : if npc.getInstanceId() in self.worlds: world = self.worlds[npc.getInstanceId()] player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "My death is nothing, your end is near")) player.sendPacket(CreatureSay(npc.getObjectId(), 0, npc.getName(), "You fools ....Aha ha ha ha")) st.giveItems(E_APIGA,1) player.sendPacket(ExShowScreenMessage("..............kill them all!", 8000)) #newNpc = self.addSpawn(int npcId,x,y,z,heading,randomOffset,despawnDelay,isSummonSpawn,instanceId) newNpc = self.addSpawn(TIAT,16344,213091,-9356,0,False,0,False,npc.instanceId) player.sendPacket(Earthquake(16344,213091,-9356,80,5)) elif npcId == TIAT : 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.", 12000)) st.playSound("ItemSound.quest_finish") st.giveItems(E_APIGA,4) st.giveItems(GOLDDRAGON,4) #newNpc = self.addSpawn(int npcId,x,y,z,heading,randomOffset,despawnDelay,isSummonSpawn,instanceId) newNpc = self.addSpawn(CHEST,16225,213040,-9357,0,False,0,False,npc.instanceId) return QUEST = Bloodshedparty(-1, qn, "Bloodshedparty") QUEST.addStartNpc(ROSE) QUEST.addTalkId(ROSE) QUEST.addTalkId(CHEST) QUEST.addKillId(GUARD) QUEST.addKillId(PROTECTOR) QUEST.addKillId(BELETH) QUEST.addKillId(BAYLOR) QUEST.addKillId(TIAT) the error: Line: -1 - Column: -1 Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('__init__.py', 160, 17, ' if st.getQuestItemsCount(ECCACOIN) >= 4 :')) Why does this error appear? Do i need to add something in the checkConditions section or what? Link to comment Share on other sites More sharing options...
0 estaz Posted November 30, 2010 Author Share Posted November 30, 2010 please, someone, help me, i really need this code.. bump Link to comment Share on other sites More sharing options...
0 estaz Posted December 1, 2010 Author Share Posted December 1, 2010 bump :/ Link to comment Share on other sites More sharing options...
0 estaz Posted December 2, 2010 Author Share Posted December 2, 2010 still bumpin' :( Link to comment Share on other sites More sharing options...
0 estaz Posted December 3, 2010 Author Share Posted December 3, 2010 bump Link to comment Share on other sites More sharing options...
0 estaz Posted December 4, 2010 Author Share Posted December 4, 2010 problem solved by varens :) thank you :) . someone can lock the topic now. Link to comment Share on other sites More sharing options...
0 Furiosus Posted December 4, 2010 Share Posted December 4, 2010 someone can lock the topic now. Link to comment Share on other sites More sharing options...
Question
estaz
Hi everyone :)
I wanted to ask you, what have to be the code, to take item in order to enter instance (party and solo instances) in .py files .
Thanks.
- estaz
Link to comment
Share on other sites
13 answers to this question
Recommended Posts