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)
I tried to find where this was disabled in Engie DLL, but to no avail.
Later, someone suggested that you can convert the animation to Verеmesh and play it through an emitter, but I haven't figured out how to do that yet.
Hello gamers.
Let’s start with something simple that everyone can understand:
MARKETING = THE KEY TO SUCCESS 🔑
Ever watched a PvP or clan promo and thought “damn, that looks clean”?
I can help you make your videos look just like that.
💻 I offer professional video editing & montage services made specifically for gamers, private server owners, and Lineage 2 content creators — or for any game you’re passionate about.
🎮 Perfect for:
PvP / Mass PvP highlights
Clan recruitment or promo videos
YouTube / TikTok / Instagram clips
Funny or cinematic edits
🧠 Why me:
Experienced with gaming content & timing (no random effect spam)
Clean transitions, music sync, subtitles, dynamic cuts, 3D text
Fast delivery & affordable prices
Over 350+ hours of professional editing for YouTube creators
Skilled with Adobe Premiere Pro, After Effects, Photoshop, plugins & AI tools
Our montage services are new to this community, but as passionate gamers ourselves, we know exactly the do’s and don’ts of creating content that hits.
You can check out our showcase & recent projects on Discord. Our marketing/montage services isn't the only thing we offer, feel free to check out more in our hub:
👉https://discord.gg/9CS24dUZ
Whether you want a short TikTok, a YouTube montage, or a full cinematic video — we got you.
💬 DM me here or join the Discord to talk details!
Thank you for your time.
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
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