Jump to content

Recommended Posts

Posted

Commands: .lvl20 / .lvl40 / .lvl60 / .lvl75

 

config:
# Specified reward item rnd qty
ChampionRewardItemQty = 1
+
+# ----------------------------------------------
+#  Level Up Areas
+# ----------------------------------------------
+# Custom Level Zones. (.lvl20)
+Lvl20CommandAllow = True
+# Enter your spawn Location.
+lvl20_X = x
+lvl20_Y = y
+lvl20_Z = z
+Level20Messenge = You are in 20 Level Area.
+
+# Custom Level Zones. (.lvl40)
+Lvl40CommandAllow = True
# Enter your spawn Location.
+lvl40_X = x
+lvl40_Y = y
+lvl40_Z = z
+Level20Messenge = You are in 40 Level Area.
+
+# Custom Level Zones. (.lvl60)
+Lvl60CommandAllow = True
# Enter your spawn Location.
+lvl60_X = x
+lvl60_Y = y
+lvl60_Z = z
++Level20Messenge = You are in 60 Level Area.
+
+# Custom Level Zones. (.lvl75)
+Lvl75CommandAllow = True
# Enter your spawn Location.
+lvl75_X = x
+lvl75_Y = y
+lvl75_Z = z
+Level20Messenge = You are in 75 Level Area.
+
=====
Index: sf/l2j/config.java
       public static int L2JMOD_CHAMPION_REWARD_QTY;
+	public static String LVL20_MESSAGE;
+	public static String LVL40_MESSAGE;
+	public static String LVL60_MESSAGE;
+	public static String LVL75_MESSAGE;
+    public static boolean LVL20_COMMAND_ALLOW;
+    public static boolean LVL40_COMMAND_ALLOW;
+    public static boolean LVL60_COMMAND_ALLOW;
+    public static boolean LVL75_COMMAND_ALLOW;
+	public static int LVL20_X;
+	public static int LVL20_Y;
+	public static int LVL20_Z;
+	public static int LVL40_X;
+	public static int LVL40_Y;
+	public static int LVL40_Z;
+	public static int LVL60_X;
+	public static int LVL60_Y;
+	public static int LVL60_Z;
+	public static int LVL75_X;
+	public static int LVL75_Y;
+	public static int LVL75_Z;


                  L2JMOD_CHAMPION_REWARD_QTY            = Integer.parseInt(L2JModSettings.getProperty("ChampionRewardItemQty", "1"));
+                LVL20_COMMAND_ALLOW = Boolean.parseBoolean(L2JModSettings.getProperty("Lvl20CommandAllow", "false"));
+                LVL40_COMMAND_ALLOW = Boolean.parseBoolean(L2JModSettings.getProperty("Lvl40CommandAllow", "false"));
+                LVL60_COMMAND_ALLOW = Boolean.parseBoolean(L2JModSettings.getProperty("Lvl60CommandAllow", "false"));
+                LVL75_COMMAND_ALLOW = Boolean.parseBoolean(L2JModSettings.getProperty("Lvl75CommandAllow", "false"));
+                LVL20_X = Integer.parseInt(L2JModSettings.getProperty("lvl20_X", "x));
+                LVL20_Y = Integer.parseInt(L2JModSettings.getProperty("lvl20_Y", "y"));
+                LVL20_Z = Integer.parseInt(L2JModSettings.getProperty("lvl20_Z", "z"));
+                LVL40_X = Integer.parseInt(L2JModSettings.getProperty("lvl40_X", "x));
+                LVL40_Y = Integer.parseInt(L2JModSettings.getProperty("lvl40_Y", "y"));
+                LVL40_Z = Integer.parseInt(L2JModSettings.getProperty("lvl40_Z", "z"));
+                LVL60_X = Integer.parseInt(L2JModSettings.getProperty("lvl60_X", "x"));
+                LVL60_Y = Integer.parseInt(L2JModSettings.getProperty("lvl60_Y", "y"));
+                LVL60_Z = Integer.parseInt(L2JModSettings.getProperty("lvl60_Z", "z"));
+                LVL75_X = Integer.parseInt(L2JModSettings.getProperty("lvl75_X", "x"));
+                LVL75_Y = Integer.parseInt(L2JModSettings.getProperty("lvl75_Y", "y"));
+                LVL75_Z = Integer.parseInt(L2JModSettings.getProperty("lvl75_Z", "z"));
+                LVL20_MESSAGE = L2JModSettings.getProperty("Level20Messenge", "You have been teleported to Farm Zone 1!");
+                LVL40_MESSAGE = L2JModSettings.getProperty("Level40Messenge", "You have been teleported to Farm Zone 2!");
+                LVL60_MESSAGE = L2JModSettings.getProperty("Level60Messenge", "You have been teleported to PvP Zone 1!");
+                LVL75_MESSAGE = L2JModSettings.getProperty("Level75Messenge", "You have been teleported to PvP Zone 2!");




=====
Index: net.sf.l2j.gameserver.handler.VoicedCommandHandler.java

import java.util.logging.Logger;

+import net.sf.l2j.gameserver.handler.voicedcommandhandlers.LevelZones;

import javolution.util.FastMap;


private VoicedCommandHandler()
{
	_datatable = new FastMap<String, IVoicedCommandHandler>();
+		if(Config.LVL20_COMMAND_ALLOW || Config.LVL40_COMMAND_ALLOW || Config.LVL60_COMMAND_ALLOW || Config.LVL75_COMMAND_ALLOW)
+		{
+			registerVoicedCommandHandler(new LevelZones());
+		}
}

public void registerVoicedCommandHandler(IVoicedCommandHandler handler)

 

Create a New Class LevelZone.java

=====
Index: net.sf.l2j.gameserver.handler.voicedcommandhandlers.LevelZones.java

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
* 
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* 
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.l2j.gameserver.handler.voicedcommandhandlers;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.serverpackets.SetupGauge;
import net.sf.l2j.gameserver.ThreadPoolManager;

@SuppressWarnings("unused")
public class LevelZones implements net.sf.l2j.gameserver.handler.IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
		"lvl20", "lvl40", "lvl60", "lvl75"
};

@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
	int placex;
	int placey;
	int placez;
	String message;

	if(command.equalsIgnoreCase("lvl20") && Config.LVL20_COMMAND_ALLOW)
	{
		placex = Config.LVL20_X;
		placey = Config.LVL20_Y;
		placez = Config.LVL20_Z;
		message = Config.LVL20_MESSAGE;
	}
	else if(command.equalsIgnoreCase("lvl40") && Config.LVL40_COMMAND_ALLOW)
	{
		placex = Config.LVL40_X;
		placey = Config.LVL40_Y;
		placez = Config.LVL40_Z;
		message = Config.LVL40_MESSAGE;
	}
	else if(command.equalsIgnoreCase("lvl60") && Config.LVL60_COMMAND_ALLOW)
	{
		placex = Config.LVL60_X;
		placey = Config.LVL60_Y;
		placez = Config.LVL60_Z;
		message = Config.LVL60_MESSAGE;
	}
	else if(command.equalsIgnoreCase("lvl75") && Config.LVL75_COMMAND_ALLOW)
	{
		placex = Config.LVL75_X;
		placey = Config.LVL75_Y;
		placez = Config.LVL75_Z;
		message = Config.LVL75_MESSAGE;
	}
	else
		return false;

	if(activeChar.isInJail())
	{
		activeChar.sendMessage("Sorry,you are in Jail!");
		return false;
	}
	else if(activeChar.isInOlympiadMode())
	{
		activeChar.sendMessage("Sorry,you are in the Olympiad now.");
		return false;
	}
	else if(activeChar.isInDuel())
	{
		activeChar.sendMessage("Sorry,you are in a duel!");
		return false;
	}
	else if(activeChar.inObserverMode())
	{
		activeChar.sendMessage("Sorry,you are in the observation mode.");
		return false;
	}
	else if(activeChar.isFestivalParticipant())
	{
		activeChar.sendMessage("Sorry,you are in a festival.");
		return false;
	}
	else if(!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && activeChar.getKarma() > 0)
	{
		activeChar.sendMessage("Sorry,PK player can't use this.");
		return false;
	}
	else if(activeChar.isDead())
	{
		activeChar.sendMessage("Sorry,Dead player can't teleport.");			
                        return false;
	}
	else if(activeChar.isFakeDeath())
	{
		activeChar.sendMessage("Sorry,on fake death mode can't use this.");
		return false;
	}
	else if(activeChar.atEvent)
	{
		activeChar.sendMessage("Sorry,you are on event now.");
		return false;
	}

	SetupGauge sg = new SetupGauge(SetupGauge.BLUE, 15000);
	activeChar.sendPacket(sg);
	sg = null;
	activeChar.setIsImobilised(true);

	ThreadPoolManager.getInstance().scheduleGeneral(new teleportTask(activeChar, placex, placey, placez, message), 15000);

	return true;
}

@Override
public String[] getVoicedCommandList()
{
	return VOICED_COMMANDS;
}

class teleportTask implements Runnable
{
	private final L2PcInstance _activeChar;
	private final int _x;
	private final int _y;
	private final int _z;
	private final String _message;

	teleportTask(L2PcInstance activeChar, int x, int y, int z, String message)
	{
		_activeChar = activeChar;
		_x = x;
		_y = y;
		_z = z;
		_message = message;
	}

	@Override
	public void run()
	{
		if(_activeChar == null)
			return;

		_activeChar.teleToLocation(_x, _y, _z);
		_activeChar.sendMessage(_message);
		_activeChar.setIsImobilised(false);
	}
}
}

Posted

activeChar.setIsImobilised(true);

_activeChar.setIsImobilised(false);

 

I think that's useless since it takes no time to do:

 

_activeChar.teleToLocation(_x, _y, _z);

 

not?

Posted

activeChar.setIsImobilised(true);

_activeChar.setIsImobilised(false);

 

I think that's useless since it takes no time to do:

 

_activeChar.teleToLocation(_x, _y, _z);

 

not?

And of course takes time.

Posted

Ah sorry so.

It's common to immobilize the player before teleport on IL? Never saw it, sorry if I'm wrong.

good share :)

Posted

Ah sorry so.

It's common to immobilize the player before teleport on IL? Never saw it, sorry if I'm wrong.

good share :)

Yes there is, but the problem? not stopping nor with esc.

When player is on this mode, can't stop the teleport.

 

And Thank you dude.

Posted

implements net.sf.l2j.gameserver.handler.IVoicedCommandHandler

 

Delete the net.sf.l2j.gameserver.handler

 

Sorry but as i can see code is a mess.It can be done in less lines..

 

GoodLuck

Posted

Hello, i could really use this for my server, i think i know how to apply this patch the only thing i am not sure about is where i put the config i know what to do with everything under that thanks. L2J High Five

 

config:

# Specified reward item rnd qty

ChampionRewardItemQty = 1

+

+# ----------------------------------------------

+#  Level Up Areas

+# ----------------------------------------------

+# Custom Level Zones. (.lvl20)

+Lvl20CommandAllow = True

+# Enter your spawn Location.

+lvl20_X = x

+lvl20_Y = y

+lvl20_Z = z

+Level20Messenge = You are in 20 Level Area.

+

+# Custom Level Zones. (.lvl40)

+Lvl40CommandAllow = True

# Enter your spawn Location.

+lvl40_X = x

+lvl40_Y = y

+lvl40_Z = z

+Level20Messenge = You are in 40 Level Area.

+

+# Custom Level Zones. (.lvl60)

+Lvl60CommandAllow = True

# Enter your spawn Location.

+lvl60_X = x

+lvl60_Y = y

+lvl60_Z = z

++Level20Messenge = You are in 60 Level Area.

+

+# Custom Level Zones. (.lvl75)

+Lvl75CommandAllow = True

# Enter your spawn Location.

+lvl75_X = x

+lvl75_Y = y

+lvl75_Z = z

+Level20Messenge = You are in 75 Level Area.

+

Posted

Hello, i could really use this for my server, i think i know how to apply this patch the only thing i am not sure about is where i put the config i know what to do with everything under that thanks. L2J High Five

 

config:

# Specified reward item rnd qty

ChampionRewardItemQty = 1

+

+# ----------------------------------------------

+#  Level Up Areas

+# ----------------------------------------------

+# Custom Level Zones. (.lvl20)

+Lvl20CommandAllow = True

+# Enter your spawn Location.

+lvl20_X = x

+lvl20_Y = y

+lvl20_Z = z

+Level20Messenge = You are in 20 Level Area.

+

+# Custom Level Zones. (.lvl40)

+Lvl40CommandAllow = True

# Enter your spawn Location.

+lvl40_X = x

+lvl40_Y = y

+lvl40_Z = z

+Level20Messenge = You are in 40 Level Area.

+

+# Custom Level Zones. (.lvl60)

+Lvl60CommandAllow = True

# Enter your spawn Location.

+lvl60_X = x

+lvl60_Y = y

+lvl60_Z = z

++Level20Messenge = You are in 60 Level Area.

+

+# Custom Level Zones. (.lvl75)

+Lvl75CommandAllow = True

# Enter your spawn Location.

+lvl75_X = x

+lvl75_Y = y

+lvl75_Z = z

+Level20Messenge = You are in 75 Level Area.

+

put it whenever you want,just be sure you'll make the proper changes in config.java

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 account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • 📢 ¡ATENCIÓN JUGADORES DE LINEAGE 2! 📢   ¡L2 Crest Converter ha llegado! El programa creado por PulserX para obtener crests de clan (banderas) que realmente funciona, programado y distribuido de manera gratuita a todo el mundo por su humilde servidor.   ¿Cansado de que el viejo CrestMaker falle y arruine tus imágenes en Windows 10/11? Hemos creado una solución actualizada.   ✅ Optimizado para Windows 10/11 ✅ Convierte PNG/JPG perfectamente ✅ Adiós a las imágenes cuadriculadas   L2 Crest Converter es la herramienta que garantiza que tu crest se vea tal como la diseñaste. Descárgalo y velo en acción aquí: 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE    
    • New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
    • New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
    • New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
    • Dear users! We are happy to announce a major update of our bot! What’s new: Long-term number rental You can now rent virtual numbers for a long period (hours, days, or months)! This is perfect for those who need constant access to a number to receive SMS from various services. Number history A new feature allows you to view all your rented numbers in one place! You can: • See the full history of all numbers (instant and long-term) • View all received SMS codes • Return to active numbers to receive additional SMS • See the status of each number Gift coupon system You can now activate gift coupons directly in the bot! Just go to your profile and click “Activate gift coupon” — your balance will be topped up automatically! Chinese language Full support for the Chinese language has been added! The bot is now available in three languages: Russian, English, and Chinese. Switching languages has become even more convenient. Improved rental process Before purchasing a number, detailed service information is now displayed: • Service name • Ability to receive repeated SMS • Rental duration • Cost This will help you make a more informed decision before renting. Quick rental The “Virtual numbers (SMS)” button has now been renamed to “Quick rental” for greater clarity and convenience. Go to the SMS service
  • 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