Jump to content
  • 0

AutoLoot


nakashimi

Question

 Could any good soul adapt this mode to l2jfrozen?

package handlers.voicedcommandhandlers;

import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

/**
* @author Cobra
*/

public class autoloot implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
private static String[] _voicedCommands =
{
    "autolooton",
    "autolootoff"
};

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

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
    if (command.equalsIgnoreCase("autolooton"))
    {
        activeChar.setAutoLootEnabled(true);
        activeChar.sendMessage("Auto loot is now enabled.");
    }
    else if (command.equalsIgnoreCase("autolootoff"))
    {
        activeChar.setAutoLootEnabled(false);
        activeChar.sendMessage("Auto loot is now disabled.");
    }
    return true;
}
}

It is for l2jserver but it is missing the L2PCInstance file from setAutoLootEnabled

I even tried it but when I tested it it didn't run the code I created it was this

/** AutoLoot parameters*/
private boolean _autoLootEnabled = false;

public void setAutoLootEnabled(final boolean autoLootEnabled)
{
_autoLootEnabled = autoLootEnabled;

}

 

/**
* @param reference
* @return Returns the autoLootEnabled.
*/

public boolean isAutoLootEnabled(final L2Object reference)
{
return _autoLootEnabled && !(reference instanceof L2GrandBossInstance)
&& !(reference instanceof L2RaidBossInstance)
&& !(reference instanceof L2MinionInstance);

}

 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

If you sit down and study the code for several minutes you will understand how it work

and you won't need any help or copy paste the exact code.

 

This code:

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
    if (command.equalsIgnoreCase("autolooton"))
    {
        activeChar.setAutoLootEnabled(true);
        activeChar.sendMessage("Auto loot is now enabled.");
    }
    else if (command.equalsIgnoreCase("autolootoff"))
    {
        activeChar.setAutoLootEnabled(false);
        activeChar.sendMessage("Auto loot is now disabled.");
    }
    return true;
}

 

can turn into this:

@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
    activeChar.setIsAutoLoot(!activeChar.isAutoLoot());
    activeChar.sendMessage("Auto loot is now " + (isAutoLoot(null) ? "enabled." : "disabled"));
    return true;
}

You don't need the if statement since there are only 2 cases and the useVoicedCommand will only executed when 1 of these handler that are in String[] are called. 

 

And this code: 

private boolean _autoLootEnabled = false;

public void setAutoLootEnabled(final boolean autoLootEnabled)
{
_autoLootEnabled = autoLootEnabled;

}

 

/**
* @param reference
* @return Returns the autoLootEnabled.
*/

public boolean isAutoLootEnabled(final L2Object reference)
{
return _autoLootEnabled && !(reference instanceof L2GrandBossInstance)
&& !(reference instanceof L2RaidBossInstance)
&& !(reference instanceof L2MinionInstance);

}

Should be better:

private boolean _isAutoLoot;

public void setIsAutoLoot(final boolean val)
{
   _isAutoLoot = val;
}

public boolean isAutoLoot(final L2Character target)
{
   return Objects.nonNull(target) && target.isRaid() ? false : _isAutoLoot;
}

 

Edited by EdithFinch
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Hello lads,   AA-Astral Assassins are recruiting active players/cps to join us on https://l2noxis.com/ . The server runs on GOD client.  We are around 20+ members with a very active discord. Most of the players are EU based but we also have Aussies, Brits (brexit), Canadians and BRs. Anyone is welcome to join and cause some havoc.  Feel free to pm me if you need any further info or if u want to join ingame "MarkoPolo or on discord "markopolol2 The server it self is fairly new with around 200-400 active players. Balance is in the works but admins seem very active. 
    • does anyone have one Quest, which when he kills 100 monsters Take Reward item.. but without speak any npc.. like this quest but 100 monsters package l2s.gameserver.scripts.custom; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.concurrent.TimeUnit; import l2s.commons.db.DatabaseFactory; import l2s.gameserver.Announcements; import l2s.gameserver.datatables.SkillTable; import l2s.gameserver.model.L2Skill; import l2s.gameserver.model.actor.L2Npc; import l2s.gameserver.model.actor.instance.L2PcInstance; import l2s.gameserver.model.quest.Quest; /** * @author SoFace */ public class SuperMonster extends Quest { // Monsters's ID. private static final int MONSTERS[] = { 12564 }; private static final boolean REWARD_PARTY = false; // Reward party ? private final static boolean REWARD_NOBLE = true; // Give Noblesse ? private final static boolean REWARD_HERO = false; // Give Hero ? private final static int REWARD_HERO_DAYS = -1; // How many days to give the status of Hero ? // 0 - Until relogin. -1 - Forever. private final static boolean REWARD_SKILL = true; // Give Skill ? private final static int REWARD_SKILL_ID = 0; // Skill's ID. private final static int REWARD_SKILL_LVL = 0; // Skill's LvL. private final static boolean REWARD_ITEMS = true; // Give Items ? private final static int REWARD_ITEM_ID = 4037; // Item's ID. private final static int REWARD_ITEM_COUNT = 5; // Count. public SuperMonster() { super(-1, "SuperMonster", "custom"); for (int mobs : MONSTERS) addKillId(mobs); } @Override public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) { L2Skill skill = SkillTable.getInstance().getInfo(REWARD_SKILL_ID, REWARD_SKILL_LVL); Announcements.announceToAll("SuperMonster was killed."); if (REWARD_PARTY) { if (player.getParty() != null) { for (L2PcInstance members : player.getParty().getPartyMembers()) { members.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) members.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, members, true); if (REWARD_SKILL) members.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!members.isNoble()) members.setNoble(true, true); else members.sendMessage("You already Noblesse."); } members.broadcastUserInfo(); } } else { player.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true); if (REWARD_SKILL) player.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!player.isNoble()) player.setNoble(true, true); else player.sendMessage("You already Noblesse."); } player.broadcastUserInfo(); } } else { player.sendMessage("Congratulations ! You killed The SuperMonster !"); if (REWARD_ITEMS) player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true); if (REWARD_SKILL) player.addSkill(skill, true); if (REWARD_HERO) { if (!player.isHero()) addHero(player, REWARD_HERO_DAYS); else player.sendMessage("You already Hero."); } if (REWARD_NOBLE) { if (!player.isNoble()) player.setNoble(true, true); else player.sendMessage("You already Noblesse."); } player.broadcastUserInfo(); } return null; } private void addHero(L2PcInstance player, int days) { long _heroExpire = 0L; player.setHero(true); player.broadcastUserInfo(); if (days == 0) { _heroExpire = 3L; return; } _heroExpire = (days == -1 ? 1L : System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days)); try (Connection con = DatabaseFactory.getConnection(); PreparedStatement stm = con.prepareStatement("UPDATE `characters` SET `hero`=? WHERE `obj_Id`=?")) { stm.setLong(1, _heroExpire); stm.setInt(2, player.getObjectId()); stm.execute(); } catch (SQLException e) { _log.warn("[SuperMonster] addHero(days) error: ", e); } } public static void main(String args[]) { new SuperMonster(); } }  
    • Very beautiful, I would certainly like to use it, make some changes, and create my own. Your work is very beautiful.
  • Topics

×
×
  • Create New...