- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
gmakhs
hi im trying to add the squish your squash event into my l2 server edit the script but i need some help becouse summon squash and squash don't work property the scripts is this if anyone can help me or provide more infos like skills and etcc it would me nice
# # Squish_your_squash 1.0 # by Gnacik # http://lineage2.oku.pl import sys from com.l2jserver.gameserver.ai import CtrlIntention from com.l2jserver.gameserver.idfactory import IdFactory from com.l2jserver.gameserver.datatables import NpcTable from com.l2jserver.gameserver.model.actor.instance import L2GuardInstance from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jserver.gameserver.datatables import SkillTable from com.l2jserver.gameserver.network.serverpackets import NpcSay from com.l2jserver.util import Rnd from com.l2jserver.gameserver import Announcements print "=======================================-[ LOAD ] [ Ai ] [ Event Squish squash ]" qn = "Sq" POLLEN = 6391 # Nectar and Fake - Heal/Battle Heal/Recharge SKILL_NECTAR = [2005,1011,1013,1015] CHRONOWEAPONS = [4202,5133,5817,7058,8350] SQUASHLIST = [12774,12775,12776,12777,12778,12779,13016,13017] CANNOTGROW = [13016,13017] class squash(JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) self.numatk = 0 self.nectar = 0 self.tmpatk = 0 for i in SQUASHLIST : self.addSkillSeeId(i) self.addAttackId(i) self.addKillId(i) self.addSpawnId(i) def onSpawn(self, npc) : self.numatk = 0 self.nectar = 0 self.tmpatk = 0 def onAdvEvent(self,event,npc,player) : self.numatk = 0 self.nectar = 0 self.tmpatk = 0 def onSkillSee(self, npc, caster, skill, targets, isPet): npcID = npc.getNpcId() if not npc in targets: return if skill.getId() not in SKILL_NECTAR : return if npc.getNpcId() in CANNOTGROW : return if self.nectar == 0 : if Rnd.get(3) == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-1.txt")) self.nectar = self.nectar + 1 elif self.nectar == 1 : if Rnd.get(3) == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-1.txt")) self.nectar = self.nectar + 1 elif self.nectar == 2 : if Rnd.get(3) == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-1.txt")) self.nectar = self.nectar + 1 elif self.nectar == 3 : if Rnd.get(3) == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-1.txt")) self.nectar = self.nectar + 1 elif self.nectar == 4 : if npcID == 12774 : # young squash newSquash = self.addSpawn(12776,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 elif npcID == 12777 : # large young squash newSquash = self.addSpawn(12779,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 else : self.nectar = self.nectar + 1 return elif self.nectar == 9 : if npcID == 12776 : # small low quality newSquash = self.addSpawn(12775,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 elif npcID == 12779 : # large low quality newSquash = self.addSpawn(12778,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 else : self.nectar = self.nectar + 1 return elif self.nectar == 19 : if npcID == 12775 : # high quality young newSquash = self.addSpawn(12775,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 elif npcID == 12778 : # high quality large newSquash = self.addSpawn(12778,npc) npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-2.txt")) npc.onDecay() self.nectar = 0 else : self.nectar = 0 return else : self.nectar = self.nectar + 1 return def onAttack(self,npc,player,damage,isPet,skill) : weapon = player.getActiveWeaponItem() if self.numatk > 20 : self.numatk = 0 if str(weapon) == "None" : npc.setIsInvul(True) if self.numatk < 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-3.txt")) self.numatk = self.numatk + 1 elif isPet == True : npc.setIsInvul(True) if self.numatk < 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-4.txt")) self.numatk = self.numatk + 1 else : if npc.getNpcId() in SQUASHLIST : if weapon.getItemId() in CHRONOWEAPONS : npc.setIsInvul(False) self.tmpatk = self.tmpatk + 1 if self.numatk < 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-5.txt")) self.numatk = self.numatk + 1 else : if npc.getNpcId() == 13016 or npc.getNpcId() == 13017: npc.setIsInvul(False) self.tmpatk = self.tmpatk + 1 if self.numatk < 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-5.txt")) self.numatk = self.numatk + 1 else : npc.setIsInvul(True) self.numatk = self.numatk + 1 if self.numatk == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-10.txt")) self.numatk = self.numatk + 1 if self.numatk == 10 : npc_talk = Rnd.get(3) if npc_talk > 2 : npc_talk = 2 if npc_talk == 0 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-6.txt")) elif npc_talk == 1 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-7.txt")) elif npc_talk == 2 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-8.txt")) if self.numatk == 15 : npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-10.txt")) self.numatk = 0 return return else : npc.setIsInvul(False) return return def onKill(self,npc,player,isPet) : st = player.getQuestState("Sq") amount = 0 if self.tmpatk > 10 and self.tmpatk < 20 : amount = amount + 2 if self.tmpatk > 20 and self.tmpatk < 30 : amount = amount + 3 if self.tmpatk > 30 and self.tmpatk < 40 : amount = amount + 4 if self.tmpatk > 40 : amount = amount + 5 if not st : st = self.newQuestState(player) npcID = npc.getNpcId() if npc.getNpcId() in SQUASHLIST : if npcID == 12774 :# Blessed Enchant Scroll A item = Rnd.get(2) amount = amount + 1 if item == 0 : player.getQuestState("Sq").giveItems(6569,amount) if item == 1 : player.getQuestState("Sq").giveItems(6570,amount) elif npcID == 12775 :# Blessed Enchant Scroll A item = Rnd.get(2) amount = amount + 3 if item == 0 : player.getQuestState("Sq").giveItems(6569,amount) if item == 1 : player.getQuestState("Sq").giveItems(6570,amount) elif npcID == 12776 :# Blessed Enchant Scroll A item = Rnd.get(2) amount = amount + 2 if item == 0 : player.getQuestState("Sq").giveItems(6569,amount) if item == 1 : player.getQuestState("Sq").giveItems(6570,amount) elif npcID == 12777 :# Blessed Enchant Scroll S item = Rnd.get(2) amount = amount + 1 if item == 0 : player.getQuestState("Sq").giveItems(6577,amount) if item == 1 : player.getQuestState("Sq").giveItems(6578,amount) elif npcID == 12778 :# Blessed Enchant Scroll S item = Rnd.get(2) amount = amount + 3 if item == 0 : player.getQuestState("Sq").giveItems(6577,amount) if item == 1 : player.getQuestState("Sq").giveItems(6578,amount) elif npcID == 12779 :# Blessed Enchant Scroll S item = Rnd.get(2) amount = amount + 2 if item == 0 : player.getQuestState("Sq").giveItems(6577,amount) if item == 1 : player.getQuestState("Sq").giveItems(6578,amount) elif npcID == 13016 : item = Rnd.get(2) amount = amount + 3 if item == 0 : player.getQuestState("Sq").giveItems(6577,amount) if item == 1 : player.getQuestState("Sq").giveItems(6578,amount) elif npcID == 13017 : item = Rnd.get(2) amount = amount + 3 if item == 0 : player.getQuestState("Sq").giveItems(6577,amount) if item == 1 : player.getQuestState("Sq").giveItems(6578,amount) st.playSound("ItemSound.quest_middle") npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"40017-9.txt")) self.numatk = 0 self.nectar = 0 self.tmpatk = 0 QUEST = squash(-1, "Sq", "ai") for i in SQUASHLIST: QUEST.addKillId(i)5 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now