Jump to content

Recommended Posts

  • 2 weeks later...
  • 1 month later...
Posted

To dleogr:

The error line when i put your code in my freya is

 

SystemMessage sm = new SystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);

 

The contruction SystemMessage(SystemMessageId) is not visible.

 

What is mean?

Posted

This add on event is not what we need... Is allow the event to running only one time per day.

And is not codded well also.

So here is the correct one for Freya !

 

Index: data/scripts/handlers/usercommandhandlers/InstanceZone.java
===================================================================
--- data/scripts/handlers/usercommandhandlers/InstanceZone.java	(revision 7669)
+++ data/scripts/handlers/usercommandhandlers/InstanceZone.java	(working copy)
@@ -72,13 +72,22 @@
						firstMessage = false;
						activeChar.sendPacket(new SystemMessage(SystemMessageId.INSTANCE_ZONE_TIME_LIMIT));
					}
-					int hours = (int) (remainingTime / 3600);
-					int minutes = (int) ((remainingTime%3600) / 60);
-					SystemMessage sm = new SystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);
-					sm.addString(InstanceManager.getInstance().getInstanceIdName(instanceId));
-					sm.addNumber(hours);
-					sm.addNumber(minutes);
-					activeChar.sendPacket(sm);
+					if (instanceId != 500000)
+					{
+						int hours = (int) (remainingTime / 3600);
+						int minutes = (int) ((remainingTime%3600) / 60);
+						SystemMessage sm = new SystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);
+						sm.addString(InstanceManager.getInstance().getInstanceIdName(instanceId));
+						sm.addNumber(hours);
+						sm.addNumber(minutes);
+						activeChar.sendPacket(sm);
+					}
+					else
+					{
+						int hours = (int) (remainingTime / 3600);
+						int minutes = (int) ((remainingTime%3600) / 60);
+						activeChar.sendMessage("Solo Instance will be available to re-use in " + hours + " hours and " + minutes + " minutes.");
+					}
				}
				else
					InstanceManager.getInstance().deleteInstanceTime(activeChar.getObjectId(), instanceId);
Index: data/scripts.cfg
===================================================================
--- data/scripts.cfg	(revision 7669)
+++ data/scripts.cfg	(working copy)
@@ -207,6 +207,7 @@
village_master/orc_occupation_change_2/__init__.py

# Instance Dungeons Section
+instances/Bloodshed/__init__.py
instances/DarkCloudMansion/DarkCloudMansion.java
instances/CrystalCaverns/CrystalCaverns.java
instances/Kamaloka/Kamaloka.java

 

And here is the __init__.py

 

#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
E_APIGA	= 14720
ADENA	= 57
STONE	= 9576
SCROLL	= 960

#NPCs
ROSE	= 40000
CHEST	= 40001

#Monsters
NAGLFAR	= 40002
SENTRY1	= 40003
SENTRY2	= 40004
HOUND	= 40005

#Timelimit
TIMELIMIT = 86400000

#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("You may not enter with a party."))
	return False
if not player.getLevel() >= 83:
	player.sendPacket(SystemMessage.sendString("You must be level 83 or higher to enter."))
	return False
if System.currentTimeMillis() < reentertime :
	InstanceManager.getInstance().getInstanceTime(player.getObjectId(), INSTANCEID)
	player.sendPacket(SystemMessage.sendString("Solo Instance: You may not re-enter yet."))
	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
		world.templateId = INSTANCEID
		self.worlds[instanceId]=world
		self.world_ids.append(instanceId)
		print "Instance Bloodshed.xml Started: " +str(instanceId) + " created by " + 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 = 83279
		tele.y = 148011
		tele.z = -3404
		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 (83+): 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)

 

 

Credits go to Sakretsu !

 

thx for set timer to instance.

Posted

To dleogr:

The error line when i put your code in my freya is

 

SystemMessage sm = new SystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);

 

The contruction SystemMessage(SystemMessageId) is not visible.

 

What is mean?

 

Change that line with this one:

 

SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);

Posted

Change that line with this one:

 

SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);

Thanks so much. It's work fine now.

Guest
This topic is now closed to further replies.



  • Posts

    • Telegram Stars | Old groups and channels | Accounts from different countries | Telegram Premium | Fast delivery and discounts Telegram Stars: Telegram Stars on Post | 1 star from $0.016 | Discounts on bulk orders | Delivery within 1 hour after purchase | Possible spellings Telegram Stars | 1 star from $0.0149 | Discounts on bulk orders | Delivery within 1 hour after purchase Old real Telegram groups from 2023. Current price: $12. Groups and channels: Groups IMPORT and REAL | From 2014 to 2024 to choose from! | For safe invitations | Low price and high quality! | Price from $1.8 Telegram Real Old Channels (2022–2023: year of your choice) | Real Channel | Ownership transferred to your account | Price from $3 Old Real Telegram groups 2024 | Price from $4.5 Telegram accounts: Telegram USA/CANADA +1 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 Telegram Indonesia +62 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 Telegram South Africa +27 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $1.8 Telegram Philippines +63 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2 Telegram Israel +972 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 USA (+1) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.5 Canada (+1) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.5 Russia (+7) | TDATA format | No Spam Block | 2FA included (if enabled) | Price from $2 Brazil (+55) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $2.5 United Kingdom (+44) Autoreg | Registered 3+ days ago | TDATA SESSION JSON | 2FA included | Price from $1.3 Germany (+49) Autoreg | Registered 3+ days ago | TDATA SESSION JSON | 2FA included | Price from $4 Myanmar (+95) Autoreg | TDATA, SESSION, JSON, 2FA | 2FA included | Price from $0.38 Bangladesh (+880) Autoreg | TDATA/SESSION+JSON | 2FA included | Price from $0.4 Indonesia (+62) Autoreg | Registered 3+ days ago | Session JSON/TDATA | 2FA included | Price from $0.5 Chile (+56) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.8 Philippines (+63) Autoreg | TDATA/SESSION+JSON | 2FA included | Price from $0.64 Old Telegram accounts: Best accounts for any purpose USA/Canada | Registered in November 2024 (7 months ago) | No spam block | Not used for invites or spam | Activity in bots and channel subscriptions | Available: about 3000 pcs | Format: tdata and session+json | Actual Price: $1.95 Best accounts for any purpose Colombia/Yemen | Registered in October 2024 (8 months ago) | No spam block | Not used for invites or spam | Activity in bots and channel subscriptions | Available: about 600 pcs | Format: tdata and session+json | Actual Price: $1.95 Telegram Premium: Telegram Premium 1-month subscription to your account | Authorization in your account is required (via TDATA or phone number) | Price from $6 Telegram Premium 3-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $19 Telegram Premium 6-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $23 Telegram Premium 12-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $37 Relevant links: Digital goods store (Website): Go Telegram bot for buying Telegram Stars: Go SMM Panel: Go – promotion of your social accounts. Telegram shop bot: Go We present you the current list of promotions and special offers for purchasing our service’s products: 1. Promo code SEPTEMBER2025 (10% discount) for purchases in our store (Website, bot) during September! You can also use promo code SOCNET for your first purchase (15% discount) 2. Get $1 to your store balance or a 10–20% discount, just write your username after registration on our website using the following template "SEND ME BONUS, MY USERNAME IS..." – you need to write this in our forum thread! 3. Get $1 for your first trial run of the SMM Panel: just open a ticket with the subject “Get Trial Bonus” on our website (Support). 4. Weekly giveaways of Telegram Stars in our Telegram channel and in our Telegram Stars purchase bot! Contacts and support: ➡ Telegram: https://t.me/socnet_support ✅ ➡ WhatsApp: https://wa.me/79051904467 ✅ ➡ Discord: socnet_support ✅ ➡ ✉ Email: solomonbog@socnet.store ✅ News resources: ➡ Telegram channel: https://t.me/accsforyou_shop ✅ ➡ WhatsApp channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ✅ ➡ Discord server: https://discord.gg/y9AStFFsrh ✅
    • Telegram Stars | Old groups and channels | Accounts from different countries | Telegram Premium | Fast delivery and discounts Telegram Stars: Telegram Stars on Post | 1 star from $0.016 | Discounts on bulk orders | Delivery within 1 hour after purchase | Possible spellings Telegram Stars | 1 star from $0.0149 | Discounts on bulk orders | Delivery within 1 hour after purchase Old real Telegram groups from 2023. Current price: $12. Groups and channels: Groups IMPORT and REAL | From 2014 to 2024 to choose from! | For safe invitations | Low price and high quality! | Price from $1.8 Telegram Real Old Channels (2022–2023: year of your choice) | Real Channel | Ownership transferred to your account | Price from $3 Old Real Telegram groups 2024 | Price from $4.5 Telegram accounts: Telegram USA/CANADA +1 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 Telegram Indonesia +62 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 Telegram South Africa +27 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $1.8 Telegram Philippines +63 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2 Telegram Israel +972 Autoreg | Registered 180+ days ago | TDATA+SESSION+JSON+2FA | 2FA included | Price from $2.5 USA (+1) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.5 Canada (+1) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.5 Russia (+7) | TDATA format | No Spam Block | 2FA included (if enabled) | Price from $2 Brazil (+55) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $2.5 United Kingdom (+44) Autoreg | Registered 3+ days ago | TDATA SESSION JSON | 2FA included | Price from $1.3 Germany (+49) Autoreg | Registered 3+ days ago | TDATA SESSION JSON | 2FA included | Price from $4 Myanmar (+95) Autoreg | TDATA, SESSION, JSON, 2FA | 2FA included | Price from $0.38 Bangladesh (+880) Autoreg | TDATA/SESSION+JSON | 2FA included | Price from $0.4 Indonesia (+62) Autoreg | Registered 3+ days ago | Session JSON/TDATA | 2FA included | Price from $0.5 Chile (+56) Autoreg | TDATA SESSION JSON 2FA | 2FA included | Price from $0.8 Philippines (+63) Autoreg | TDATA/SESSION+JSON | 2FA included | Price from $0.64 Old Telegram accounts: Best accounts for any purpose USA/Canada | Registered in November 2024 (7 months ago) | No spam block | Not used for invites or spam | Activity in bots and channel subscriptions | Available: about 3000 pcs | Format: tdata and session+json | Actual Price: $1.95 Best accounts for any purpose Colombia/Yemen | Registered in October 2024 (8 months ago) | No spam block | Not used for invites or spam | Activity in bots and channel subscriptions | Available: about 600 pcs | Format: tdata and session+json | Actual Price: $1.95 Telegram Premium: Telegram Premium 1-month subscription to your account | Authorization in your account is required (via TDATA or phone number) | Price from $6 Telegram Premium 3-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $19 Telegram Premium 6-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $23 Telegram Premium 12-month subscription to your account | No authorization required in your account | Full guarantee during subscription period | Price from $37 Relevant links: Digital goods store (Website): Go Telegram bot for buying Telegram Stars: Go SMM Panel: Go – promotion of your social accounts. Telegram shop bot: Go We present you the current list of promotions and special offers for purchasing our service’s products: 1. Promo code SEPTEMBER2025 (10% discount) for purchases in our store (Website, bot) during September! You can also use promo code SOCNET for your first purchase (15% discount) 2. Get $1 to your store balance or a 10–20% discount, just write your username after registration on our website using the following template "SEND ME BONUS, MY USERNAME IS..." – you need to write this in our forum thread! 3. Get $1 for your first trial run of the SMM Panel: just open a ticket with the subject “Get Trial Bonus” on our website (Support). 4. Weekly giveaways of Telegram Stars in our Telegram channel and in our Telegram Stars purchase bot! Contacts and support: ➡ Telegram: https://t.me/socnet_support ✅ ➡ WhatsApp: https://wa.me/79051904467 ✅ ➡ Discord: socnet_support ✅ ➡ ✉ Email: solomonbog@socnet.store ✅ News resources: ➡ Telegram channel: https://t.me/accsforyou_shop ✅ ➡ WhatsApp channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ✅ ➡ Discord server: https://discord.gg/y9AStFFsrh ✅
    • 🌟 L2 Exoplanet – New Season start 19.09.2025🌟       Website: https://l2exoplanet.net Facebook: https://www.facebook.com/L2-Exoplanet-106811564103836 Discord: https://discord.gg/4fzhW7ZSPc   Get ready for the ultimate High Five adventure on L2Exoplanet.net!   🎉 Grand Opening: 19.09.2025 – 20:00 (GMT+2) 🧪 Beta Test: 12.09.2025   🔥 Game Rates: EXP x10 | SP x10 | Adena x8 | Drop x8 | Spoil x8 | Quest x5 | Raid Boss Drop x5 | Fame x2 Epaulette x8 | Manor x8   ✨ Features & Improvements: Brand new Somik Interface Kain Raid Boss – new challenge awaits! Upgraded Community Board Fully functional events: Korean Style, Treasure Hunt, CtF, TvT, Death Match… Autofarm – time-limited automation Strong New Anticheat protection Balanced economy & rewards Advanced Achievement System – goals for every type of player …and many more enhancements for next-level gameplay!   🛡 Core Server: Previous season merged into Core Core remains our main long-term world Seasonal servers 1–2× per year will merge into Core No characters or items will ever be lost!   Join us for the best High Five experience with a strong community, balanced gameplay, and professional support. 🌌 L2Exoplanet.net – Where legends rise!
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock