Jump to content

Question

Posted

Hi all, i have just a question. It is possible to restrict all items (armor,weapons,etc etc) and leave just 1 type or armor to access in zone? I mean for VoiceCommand teleport?

 

Recommended Posts

  • 0
Posted
if (command.startsWith("easy"))
				{
					if (!activeChar.isNoble())
					{
						activeChar.destroyItemByItemId("consume", 57, 50000, activeChar, true);
					}
					
					if (!(activeChar.getLevel() < 80))
					{
						activeChar.sendMessage("You have been teleported to easy zone ");
						activeChar.teleToLocation(89006, 27373, -15691);
					}
					
					_reuse.put(activeChar.getObjectId(), System.currentTimeMillis() + delay);
				}
				
				if (activeChar.checkItemGrade())
				{
					if (!checkItemGrade(activeChar, Inventory.PAPERDOLL_CHEST) || !checkItemGrade(activeChar, Inventory.PAPERDOLL_RHAND))
					
					{
						
						activeChar.sendMessage("S-Grade gear is required in order to enter the zone.");
						
					}
				}

It is ok now?

 

  • 0
Posted

Ok, it is appear just msg. Now i want to make to work that method.

Code is here 

package handlers.voicedcommandhandlers;

import java.util.HashMap;
import java.util.Map;

import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.items.type.CrystalType;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;

/**
 * @author L2Amyra
 */
public class FarmZone implements IVoicedCommandHandler
{
	private static final String[] VOICED_COMMANDS =
	{
		"easy",
		"mid",
		"hard",
		"dungeon"
	};
	private static final long delay = 5000; // Millisecounds
	private static Map<Integer, Long> _reuse = new HashMap<>();
	
	@Override
	public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
	{
		if (_reuse.containsKey(activeChar.getObjectId()))
		{
			if (_reuse.get(activeChar.getObjectId()) > System.currentTimeMillis())
			{
				activeChar.sendMessage("Sorry, you can not use this command. You can use it within " + ((_reuse.get(activeChar.getObjectId()) - System.currentTimeMillis()) / 1000) + " sec's");
				return false;
			}
		}
		{
			
			if (activeChar.isDead())
			{
				activeChar.sendMessage("You can't teleport while you are dead!");
				return false;
			}
			else if (activeChar.isInOlympiadMode())
			{
				
				activeChar.sendMessage("You can't use this command durring olympiad!");
				return false;
			}
			else if (activeChar.isInDuel())
			{
				activeChar.sendMessage("You can't use this command when you are in duel!");
				return false;
			}
			else if (activeChar.isInCombat())
			{
				activeChar.sendMessage("You can't use this command when you are in combat!");
				return false;
			}
			else if (activeChar.getPvpFlag() > 0)
			{
				CreatureSay i = new CreatureSay(activeChar.getObjectId(), Say2.PARTY, "admin", "You can't use this command when you are flagged. Try again...!");
				activeChar.sendPacket(i);
				return false;
			}
			else if (activeChar.isJailed())
			{
				activeChar.sendMessage("You can't use this command when you are in jail");
				return false;
			}
			
			else if (activeChar.getInventory().getInventoryItemCount(57, 0) < 50000)
			{
				activeChar.sendMessage("No enough Adena!");
				return false;
			}
			else if (activeChar.getKarma() > 0)
			{
				activeChar.sendMessage("Go away. You are not welcome here !");
				return false;
			}
			else if (!activeChar.isNoble())
			{
				activeChar.sendMessage("Only Noblesse players can teleport.");
				return false;
			}
			else if (activeChar.getLevel() < 80)
			{
				activeChar.sendMessage("You can only use the command after level 80");
				return false;
			}
			{
				
				if (command.startsWith("easy"))
				{
					if (!activeChar.isNoble())
					{
						activeChar.destroyItemByItemId("consume", 57, 50000, activeChar, true);
					}
					
					if (!checkItemGrade(activeChar, Inventory.PAPERDOLL_CHEST) || !checkItemGrade(activeChar, Inventory.PAPERDOLL_RHAND))
					{
						
						activeChar.sendMessage("S-Grade gear is required in order to enter the zone.");
						
					}
					if (!(activeChar.getLevel() < 80))
					{
						activeChar.sendMessage("You have been teleported to easy zone ");
						activeChar.teleToLocation(89006, 27373, -15691);
					}
					
					_reuse.put(activeChar.getObjectId(), System.currentTimeMillis() + delay);
				}
				
				else if (command.startsWith("mid"))
				{
					
					if (!activeChar.isNoble())
					{
						activeChar.destroyItemByItemId("consume", 57, 50000, activeChar, true);
					}
					
					if (!(activeChar.getLevel() < 80))
					{
						activeChar.sendMessage("You have been teleported to mid zone ");
						activeChar.teleToLocation(89006, 27373, -15691);
					}
					
					_reuse.put(activeChar.getObjectId(), System.currentTimeMillis() + delay);
				}
				else if (command.startsWith("hard"))
				{
					
					if (!activeChar.isNoble())
					{
						activeChar.destroyItemByItemId("consume", 57, 50000, activeChar, true);
					}
					if (!(activeChar.getLevel() < 80))
					{
						activeChar.sendMessage("You have been teleported to hard zone ");
						activeChar.teleToLocation(89006, 27373, -15691);
					}
					
					_reuse.put(activeChar.getObjectId(), System.currentTimeMillis() + delay);
				}
				else if (command.startsWith("dungeon"))
				{
					
					if (!activeChar.isNoble())
					{
						activeChar.destroyItemByItemId("consume", 57, 50000, activeChar, true);
					}
					if (!(activeChar.getLevel() < 80))
					{
						activeChar.sendMessage("WARNING !! You have been teleported to dungeon zone. ");
						activeChar.teleToLocation(89006, 27373, -15691);
					}
					
					_reuse.put(activeChar.getObjectId(), System.currentTimeMillis() + delay);
				}
			}
			
			return true;
		}
	}
	
	public static final boolean checkItemGrade(L2PcInstance player, int slotId)
	{
		final L2ItemInstance item = player.getInventory().getPaperdollItem(slotId);
		if ((item != null) && (item.getItem().getCrystalType() == CrystalType.S))
		{
			return true;
		}
		
		return false;
	}
	
	@Override
	public String[] getVoicedCommandList()
	{
		return VOICED_COMMANDS;
	}
	
}

Tell me Sweets what's wrong.

  • 0
Posted
50 minutes ago, InFocus said:

Tell me Sweets what's wrong.

I tell you what's wrong. You are trying to think and code on your own and that's your biggest issue. use FULL code I provided. Where the RETURN, why you removed all returns?!?!?!?!

 

Atm your code ONLY throw message, the code is still EXECUTED and nothing changes. ALL CHECKS MUST HAVE RETURN to INTERRUPT / BREAK the code to proceed.

 

All back return false in all checks where code SHOULD BREAK.

  • 0
Posted

I wish and i want to understand this method. But if you have patience with me, i will understand. So please, Explain me in exemple, i post here code. Please have patience ! Please Please Please !!!!!!!!!!

  • 0
Posted
3 minutes ago, SweeTs said:

I tell you what's wrong. You are trying to think and code on your own and that's your biggest issue. use FULL code I provided. Where the RETURN, why you removed all returns?!?!?!?!

 

Atm your code ONLY throw message, the code is still EXECUTED and nothing changes. ALL CHECKS MUST HAVE RETURN to INTERRUPT / BREAK the code to proceed.

 

All back return false in all checks where code SHOULD BREAK.

Sir can the code executed and work without a return? I don't like the return :/ 

Thanks a lot.

  • 0
Posted

We alreadyu have / had, again 5 pages for ONE LINE. And you deny the knowledge. I wonder how you graduated, if you did.

 

I won't. Simply check the code I provided, the if (checkItemGrade and your and see what's missing. Missing, the most important thing is the RETURN. If the method is a boolean, you must define true / false. So, RETURN or RETURN FALSE, TERMINATES THE CODE. So, the code is NOT processing. Sooooooooo, add that godamn RETURN FALSE after the message.

  • 0
Posted
3 minutes ago, Kara` said:

Sir can the code executed and work without a return? I don't like the return :/ 

Thanks a lot.

The method is boolean, stupid people from MxC share return, Eclipse is throwing error, let's remove the return and wonder why my code is not working :(

  • 0
Posted
29 minutes ago, SweeTs said:

The method is boolean, stupid people from MxC share return, Eclipse is throwing error, let's remove the return and wonder why my code is not working :(

From now on inFocus will be your best friend :) for the rest of your life :) 

  • 0
Posted

@InFocus mate,

 

We have something that called patience. When this thing exceed the limit will just ignore you.

 

2 options.

 

1) Pay for the rest of the things you want to be done in 1 day

2) Explain with readable words what you need and do exactly what someone will say for you.

 

 

Finally, we are not forced to give you ready codes since it is help section too.

Next time that will happen something like this your topic will instant be locked and you will get a warn for spam . No more excuses.

 

Topic locked.

  • Upvote 1
Guest
This topic is now closed to further replies.



  • Posts

    • Do you want stability? Lagless and bugless game? Instant support? Daily PVP? Long-Term playing? You are in the right place, time to start! Lineage2 X70 Interlude NEW Season 2025 February 8th 13:00 UTC+2 Greece/Lithuania: 13:00 UTC+2 Poland/Norway: 12:00 UTC+1 United Kingdom: 11:00 UTC+0 Brazil/Argentina: 8:00 UTC-3 Opening Bonus First 100 players after third class changing will automaticly get Premium Coin award in their inventory. All new players spawn in town of Gludio! All players start from 25 LvL with starter pack (adenas and equipment)! RATES XP: x70 | SP: x70 Party XP/ SP: x1.2 Adenas drop rate: x30 Drop Items: x25 | Spoil: x25 Drop SealStones rate: x1.2 Drop Manor rate: x1 Drop Quest rate: x5 | Reward rates: x2 (NOT FOR ALL) Raid Boss Drop: x10 Raid Boss Adenas Drop: x3 Grand Boss Drop: x1 Grand Boss Adenas Drop: x2 Information NPC Buffer 32 Buffs | 4 Debuffs PET Buffer for all classes [Except Necromancer] Scheme buffer: 3 Profiles. Buffs time: 2 Hours | Summons buffs - 60min. Global Gatekeeper. GM SHOP till weapon / armor / jewel B grade. Caradine letter 3rd part in GM Shop. Offline shop: SELL , PRIVATE CREATION , PACKAGE SALE from 35 LvL ! Mana potions: 500MP/2s. Spawn Protection: 20 Seconds. EVENTS Manager [TVT/DM]. Max Clients for one PC: 5 Rift | 4S Players: 3 Maximum inventory slots: 240 Maximum inventory slots for Dwarf: 250 Custom drop list: - Raid Boss Horus, Ember, Brakki, Nakondas: 1 VIP COIN (25%) | Korim (50%). - Raid Boss Apepi, Shacram, Atraiban, Korim: 1 BEWS (25%). - Raid Boss Glaki, Olkuth: 1-2 BEAS (40%). - Raid Boss Golkonda, Galaxia: 1-3 BEAS (60%). - Raid Boss Shyeed: 1-3 BEWS (30%) | 1-7 BEAS (40%) | 1-5 TOP LS 76 (50%). - Raid Boss Shuriel: 1-7 TOP LS 76 (50%) | 1-4 BEAS (60%). - Raid Boss Ashakiel: 1-2 BEWS (30%) | 1-7 TOP LS 76 (50%) | 1-4 BEAS (75%). - Raid Boss Antharas Priest Cloe: 1-3 BEWS (30%) | 1-7 TOP LS 76 (70%). ------------------------------------------------ - Hestia: Demon Splinters / Forgotten Blande (10%). - Ember: Arcana Mace / Draconic Bow (10%). - Galaxia: Angel Slayer / Heaven's Divider (10%). 1. Baium Lair and TOI 13/14 are PVP zones. 2. Valakas PVP zone near NPC "Klein" and inside Valakas room. 3. Antharas Lair and near "Heart Of Warding" are PVP zones. 4. Frintezza PVP zone is in first Imperial Tomb room. 5. Queen Ant PVP zone after the bridge and near Boss. 6. Zaken ship deck and rooms - PVP area. How to connect STEP BY STEP: 1. Install clear Lineage2 Interlude client 2. Download our patch, delete old system folder and add our 3. Delete, turn off anti virus or add our system folder to anti virus exceptions 4. Run l2.exe from Lineage2/system 5. Enter data on login window and enjoy the game! * You have to remove, turn off or use exceptions of antivirus because of our security protection. It is not a virus. * If you have connection issues with Windows 8 or 10, press right mouse button on l2.exe icon, press Properties, choose compatibility and unmark compatibility mode. Take your friends, clan, alliance, enemys, sharp your swords, clean your armors and meet your destiny at 2025 February 8th 13:00 UTC+2! WWW.L2BLAZE.NET INTERLUDE Empire X70 New Season: 2025 February 8th 13:00 UTC+2! WEBSITE: http://WWW.L2BLAZE.NET
    • Hello all,  i use L2jAcis 409 and i have problem with oly cycle, everyday is a different oly cycle and oly won't finish at the end of the month...almost 50 cycles and no end. I see oly matches in db but no points and after a day pass with /olympiadstat no points... Any help welcome, thank you.
    • Bump NEW USER IN TELEGRAM AND DISCORD IS "mileanum"  NEW USER IN TELEGRAM AND DISCORD IS "mileanum"  NEW USER IN TELEGRAM AND DISCORD IS "mileanum" NEW USER IN TELEGRAM AND DISCORD IS "mileanum" 
  • Topics

×
×
  • Create New...