Hi pals, i have some doubt, how i put this instance were only can enter whit a specific level
i try to fix the part (if not player.getLevel() >= 83)... but if the character is lvl 84 can enter in the same way.
#Instance Engine by Bloodshed, Fixed by Sakretsu
from java.lang import System
from java.sql import Connection
from java.sql import PreparedStatement
from java.sql import ResultSet
from java.util.logging import Level
from java.util.logging import Logger
from com.l2jserver import L2DatabaseFactory
from com.l2jserver.gameserver.instancemanager import InstanceManager
from com.l2jserver.gameserver.instancemanager.InstanceManager import InstanceWorld
from com.l2jserver.gameserver.model import L2ItemInstance
from com.l2jserver.gameserver.model import L2Object
from com.l2jserver.gameserver.model import L2World
from com.l2jserver.gameserver.model.actor import L2Character
from com.l2jserver.gameserver.model.actor import L2Summon
from com.l2jserver.gameserver.model.entity import Instance
from com.l2jserver.gameserver.model.itemcontainer import PcInventory
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jserver.gameserver.network.serverpackets import CreatureSay
from com.l2jserver.gameserver.network.serverpackets import InventoryUpdate
from com.l2jserver.gameserver.network.serverpackets import MagicSkillUse
from com.l2jserver.gameserver.network.serverpackets import SystemMessage
from com.l2jserver.gameserver.network.serverpackets import ExShowScreenMessage
from com.l2jserver.gameserver.network.serverpackets import Earthquake
from com.l2jserver.gameserver.network import SystemMessageId
from com.l2jserver.gameserver.util import Util
from com.l2jserver.util import Rnd
qn = "Bloodshed"
#Items
B_Eva = 4355
G_Bar = 3470
STONE = 9576
Codex = 6622
#NPCs
ROSE = 40000
CHEST = 40001
#Monsters
NAGLFAR = 40002
SENTRY1 = 40003
SENTRY2 = 40004
HOUND = 40005
#Timelimit
TIMELIMIT = 2700000
#Instance Id
INSTANCEID = 500000
#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):
st = player.getQuestState(qn)
reentertime = InstanceManager.getInstance().getInstanceTime(player.getObjectId(), INSTANCEID);
party = player.getParty()
if party:
player.sendPacket(SystemMessage.sendString("Usted no puede entrar a un partido."))
return False
if not player.getLevel() >= 83:
player.sendPacket(SystemMessage.sendString("Debes tener nivel 83 o superior para entrar en este Event."))
return False
if System.currentTimeMillis() < reentertime :
InstanceManager.getInstance().getInstanceTime(player.getObjectId(), INSTANCEID)
player.sendPacket(SystemMessage.sendString("Instancia en solitario: No puede volver a entrar."))
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("Has entrado en otra zona, por lo tanto usted no puede entrar en este."))
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
world.templateId = INSTANCEID
self.worlds[instanceId]=world
self.world_ids.append(instanceId)
print "Instance Bloodshed.xml Started: " +str(instanceId) + "Lineage 2 katian" + str(player.getName())
st = player.getQuestState(qn)
InstanceManager.getInstance().setInstanceTime(player.getObjectId(), INSTANCEID, ((System.currentTimeMillis() + TIMELIMIT)))
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 = 81895
tele.y = 149227
tele.z = -3468
exitInstance(player,tele)
st.giveItems(B_Eva,3)
st.giveItems(G_Bar,5)
st.giveItems(STONE,3)
st.giveItems(Codex,3)
st.playSound("ItemSound.quest_finish")
player.sendPacket(ExShowScreenMessage("Solo Instance Event (83+): Finalizado Felicidades", 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(), "Perdoname no fue mi intencion"))
st.giveItems(B_Eva,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(), "Perdoname mi maestro"))
st.giveItems(B_Eva,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(B_Eva,1)
player.sendPacket(ExShowScreenMessage("Demoníaca Naglfar ha aparecido!", 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(), "Como pudiste"))
player.sendPacket(ExShowScreenMessage("Felicidades! Has derrotado a Demoniaca Lord Naglfar.", 12000))
st.playSound("ItemSound.quest_middle")
st.giveItems(B_Eva,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)
My official facebook profile!: https://www.facebook.com/spectrumL2
Specifications:
Revamped L2JACIS revision FROM the core
Private project!!! Revision that has been receiving corrections for over 3 years!!!
Events already installed in the revision:
TVT
CTF
KTB
PARTY FARM
SPOIL EVENT
CRAZY RATES
TOURNAMENT
TIME ZONE (INSTANCE)
All working correctly!!!
SIEGE ESSENTIAL FEATURES:
Walls fix
Gates fix
Flags fix
100% functional:
OLYMPIADS:
Implemented settings
Hero receives enchanted Weapons with equal status PvP Weapons
Optional /true/false
Hero can acquire all Hero Weapons
Optional true/false
OTHER IMPLEMENTATIONS:
Teleport fixed (directly to Giran)
Teleport effect classic
Vip skins vip collor name
Pack NPCs with effect already configured
BOSES already configured
Mobs already configured
CLASS BALANCE SPECIAL SYSTEM
We have a SPECIAL system developed for Class Balance with only 1 digit in XML %tage of configurable debuffs
Player limitation system in BOSES or PvP zones
BS blocking system in FLEG zones or events
Among others dozens of improvements made in the review...
price: 390 USD !
OBS: WE CAN CHANGE THE BANNER AND NAME OF THE SERVICE TO THE ONE OF YOUR PREFERENCE BUT THE SETTINGS MUST BE KEPT ANY CHANGES REQUIRE ADDITION
Server is Online – 1,000+ Active Players!
We’re excited to announce the addition of a Europe Proxy to improve connectivity for our EU players!
Clans can now benefit from VIP Access to help you catch up faster.
🎯 If you're a clan leader with at least 9 active members, join our Discord and open a ticket to claim your VIP rewards!
The Telegram team is rolling out a new batch of Stars-only gifts you’ll be able to mint as NFTs.
Don’t miss your chance to join the next Telegram trend and earn from it!
Buy Telegram Stars cheap and KYC-free
1 Star from $0.0149 (min. 50 Stars, bulk discounts available)
Promo code STARS5 — 5 % off
Pay any way you like: bank cards · crypto · other popular methods
How to purchase:
➡Online Store — Click
➡ Telegram bot — Click
Other services:
➡ SMM panel — Click
Regular buyers get extra discounts and promo codes.
Support:
➡ Telegram: https://t.me/solomon_bog
➡ Telegram channel: https://t.me/accsforyou_shop
➡ Discord: https://discord.gg/y9AStFFsrh
➡ WhatsApp: https://wa.me/79051904467
➡ Email: solomonbog@socnet.store
Use these contacts to discuss wholesale orders, partnerships (current list: https://socnet.bgng.io/partners) or to become a supplier.
SocNet — your shop for digital goods and premium subscriptions
Question
JZZ
Hi pals, i have some doubt, how i put this instance were only can enter whit a specific level
i try to fix the part (if not player.getLevel() >= 83)... but if the character is lvl 84 can enter in the same way.
5 answers to this question
Recommended Posts