Jump to content

Question

Posted

Hello,

 

How can i add here:

    public boolean isAllowedToEnchantSkills()
    {
        if (isLocked())
            return false;
        if (isTransformed())
            return false;
        if (AttackStanceTaskManager.getInstance().getAttackStanceTask(this))
            return false;
        if (isCastingNow() || isCastingSimultaneouslyNow() || isInCombat())
            return false;
        if (isInBoat() || isInAirShip())
            return false;
        return true;
    }

If the skill has cooldown to return false?
 

    // Check if this skill is enabled (ex : reuse time)
        if (isSkillDisabled(skill))
        {
            SystemMessage sm = null;
            
            if (_reuseTimeStamps.containsKey(Integer.valueOf(skill.getReuseHashCode())))
            {
                int remainingTime = (int)(_reuseTimeStamps.get(Integer.valueOf(skill.getReuseHashCode())).getRemaining()/1000);
                int hours = remainingTime / 3600;
                int minutes = (remainingTime % 3600) / 60;
                int seconds = (remainingTime % 60);
                if (hours > 0)
                {
                    sm = new SystemMessage(SystemMessageId.S2_HOURS_S3_MINUTES_S4_SECONDS_REMAINING_FOR_REUSE_S1);
                    sm.addSkillName(skill);
                    sm.addNumber(hours);
                    sm.addNumber(minutes);
                }
                else if (minutes > 0)
                {
                    sm = new SystemMessage(SystemMessageId.S2_MINUTES_S3_SECONDS_REMAINING_FOR_REUSE_S1);
                    sm.addSkillName(skill);
                    sm.addNumber(minutes);
                }
                else
                {
                    sm = new SystemMessage(SystemMessageId.S2_SECONDS_REMAINING_FOR_REUSE_S1);
                    sm.addSkillName(skill);
                }
                
                sm.addNumber(seconds);
            }
            else
            {
                sm = new SystemMessage(SystemMessageId.S1_PREPARED_FOR_REUSE);
                sm.addSkillName(skill);
            }
            
            sendPacket(sm);
            return false;
        }

 

Recommended Posts

  • 0
Posted

I don't think it really matters , l2j epilogue its the same

On client packets there is a packet like EnchantSkill.java. Can u upload it to Pastebin? I will look at it and try to see how u can do it. Also the codes you posted, are they from L2PcInstance?

  • 0
Posted (edited)

After this try to do the following (i dont remember how they should be exactly but you will get the point)

                  if (Config.ES_SP_BOOK_NEEDED && usesBook)
                    {
                        // Haven't spellbook
                        if (spb == null)
                        {
                            player.sendPacket(SystemMessageId.YOU_DONT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_THAT_SKILL);
                            return;
                        }
                    }

                    if (!player.canUseSkill(skill.getId(),skill.getLevel()-1)

                  {

                       player.sendMessage("skill is on CD");

                        return;

                     }

 

As i can remember the skill.getLevel will return the next skill level, so the current level on player's skill is -1...

Edited by Solomun
  • 0
Posted

I dont have canuseskill on l2pcinstance i just want to block enchanting skill when it is on cooldown

                    if (player.isSkillDisabled(skill))

                            {

                                 player.sendMessage("skill is on CD");

                                  return;

                               }

tried this but it doesn't work , i think that it can be fixed somehow with the isDisabledsSkill

  • 0
Posted

I dont have canuseskill on l2pcinstance i just want to block enchanting skill when it is on cooldown

                    if (player.isSkillDisabled(skill))

                            {

                                 player.sendMessage("skill is on CD");

                                  return;

                               }

tried this but it doesn't work , i think that it can be fixed somehow with the isDisabledsSkill

I'm from phone right now. I have this code ready. If you cant find the solution till tommorow I will post it here.

  • 0
Posted (edited)

Try this

for (L2Skill skill : player.getSkills().values())
{
   if (player.isSkillDisabled(skill))
   {
      player.sendMessage("Crap, you can not do it right now.");
      return false;
   }
}
Edited by SweeTs
  • 0
Posted

 

Try this

for (L2Skill skill : player.getSkills().values())
{
   if (player.isSkillDisabled(skill))
   {
      player.sendMessage("Crap, you can not do it right now.");
      return false;
   }
}

it is working but how can we do it for Skill id check? because now if one skill is on reuse and trying to enchant on another you get the return false

  • 0
Posted

it is working but how can we do it for Skill id check? because now if one skill is on reuse and trying to enchant on another you get the return false

 

Client packet EnchantSkill has variable L2Skill skill.

 

Try this:

 

if (player.isSkillDisabled(skill)) return;

 

p.s: i didnt remember that there is a method isSkillDisabled :P

  • 0
Posted

 

Try this

for (L2Skill skill : player.getSkills().values())
{
   if (player.isSkillDisabled(skill))
   {
      player.sendMessage("Crap, you can not do it right now.");
      return false;
   }
}

Why to check all skills since he want to check the skill that selected for enchant?

 

as solomoun suggested,

if (player.isSkillDisabled(skill))
      return false;
  • 0
Posted

only sweets work so far, but it doesn't check for the specific skill

As i promised you, i searched for the solution. Here you go, i ve tested this in freya and it worked like a charm....

 

 

Index: java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java

===================================================================

--- java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java (revision 13244)

+++ java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java (working copy)

@@ -26,6 +26,7 @@

import com.l2jserver.gameserver.model.L2ItemInstance;

import com.l2jserver.gameserver.model.L2ShortCut;

import com.l2jserver.gameserver.model.L2Skill;

+import com.l2jserver.gameserver.model.actor.L2Character;

import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

import com.l2jserver.gameserver.network.SystemMessageId;

import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;

@@ -85,7 +86,11 @@

    player.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILL_ENCHANT_ON_THIS_LEVEL);

    return;

   }

+  if (!player.isInsideZone(L2Character.ZONE_PEACE) && !player.isGM()) //Another prevent

+  {

+   player.sendMessage("You can enchant your skills only in peace zone.");

+   return;

+  }

   if (!player.isAllowedToEnchantSkills())

   {

    player.sendPacket(SystemMessageId.YOU_CANNOT_USE_SKILL_ENCHANT_ATTACKING_TRANSFORMED_BOAT);

@@ -93,11 +98,16 @@

   }

  

   final L2Skill skill = SkillTable.getInstance().getInfo(_skillId, _skillLvl);

+  final L2Skill prev_skill = SkillTable.getInstance().getInfo(_skillId, _skillLvl - 1);

   if (skill == null)

   {

    return;

   }

+  if (!player.checkCanUse(prev_skill))

+  {

+   player.sendMessage("You cant enchant this skill at this momment.");

+   return;

+  }

   final int costMultiplier = EnchantGroupsTable.NORMAL_ENCHANT_COST_MULTIPLIER;

   final int reqItemId = EnchantGroupsTable.NORMAL_ENCHANT_BOOK;

 

 

I told you that you want the level -1 ;)

 

Add this protection to other skill enchants too (GCM and green giant codex)

  • 0
Posted

seems good  but i dont have the checkCanUse in L2PCinstance, do you have it?

Oops, i totally forgot to check that. It seems checkCanUse is one of my methods.

 

Here it is:

+	public boolean checkCanUse(L2Skill skill)
+	{
+		return checkUseMagicConditions(skill, false, false);
+	}

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

    • p0w3rf1y was Nikita? also how do these things work, they take a base lets say acis or lucera version XXX and then they build up from that to whatever they have today themselves without further company from..again, lucera or acis for example?
    • - CHAPTER IV NEW START FROM 16.MAY.2026 - RATES Experience (EXP) 30x Skill Points (SP) 30x Adena 10x Drop for Spoil 10x General Drop 10x RaidBoss Drop 3x Manor 4x Quest Drop 2x Quest Reward 3x Fishing Drop 10x Vitality System 25x Clan Reputation Point 2x ENCHANTS Safe Enchant +3 Max. Enchant +16 Normal Scroll chance 70% Blessed Scroll chance 80% Max donation enchant is +8 Yogi event enchant rate is 35% -Olf Max Enchant +9 enchant rates: +1 to +3 100%, +4 65%, +5 65%, +6 60%, +7 60%, +8 50%, +9 45% Elemental Max. Level Level 7 Elemental Stone chance 55% Elemental Crystal chance 50% CONFIGURATION Buffs, Dances, Songs Duration 2 hours Buff Slots 28+4+12 Max. Clients per PC 2 / IP 4 Olympiads Max. Enchant +8 Premium Geodata and Pathnodes Sub-Class Max. Level 85 Offline Shop mode Auto Learn Skills Vitality System Champions System Wedding System Class Master AUTO EVENTS Team vs. Team Last Man Standing Treasure Hunt Korean Style Capture the Flag Lucky Creatures Protect the King Russian Roulette Fight For Throne Deathmatch Domination TvT VIP Advanced Zombies Treasure Hunt No-PvP Hunting Grounds Mass Domination Lucky Chests Mutant Battlefields Mini Events Rabbits Simon Says Summer Meleons Pirates Treasure Hitman - Bounty Hunters Medal Collector Boss Random Etc. RAIDS RESPAWN TIME Valakas 72 hours / 24 hours random spawn Antharas 72 hours / 8 hours random spawn Baium 48 hours / 2 hours random spawn Baylor 24 hours/ 12 hours random spawn Beleth 48 hour OTHER Special Goddess of Destruction and Heroic Cloaks Goddess of Destruction .dress me Armors PvP + Rank + RPC Reward system Daily Quests available in community board New Achievements system Tournament system 1vs1 + Daily Tournament Academy Search for newbies, with payment Party Matching with class filter and manage Register to Fortress Siege as single player Cancelled buffs will return in 60 seconds (disabled) Improved .acpon will use now: MP, CP, GCP, GHP. SOULS Maximum number of slots for Private Store is 50 The maximum level for subclass is up to level 85 Multiple commands with advanced options, see them in com board You can view a monster drop rate and list by using shift+click Olympiad - Heroes are formed every Saturday at 01:05 GMT+2 Advanced Community Board with lots of new features for perfect play Advanced NPC buffer with almost all skills and up to 4 schemes per character Special Quiz event every 5 hours with over 500 questions and good reward Custom special Raids with special drop, with A.I against bots All major raids drop Donation Coins and Divine S Scrolls Super T.Rex with better drop and starting premium pets Glittering Medals from all mobs to exchange for special items Reduced number of clan members to raise the clan level and less reputation required Clan / Alliance has a reduced penalty AutoFarm, Community Cleaner, Weapon Repair system, Player Info, Server Online Statistics And many more... http://l2viserion.com https://www.facebook.com/l2viserion
    • - CHAPTER IV NEW START FROM 16.MAY.2026 - RATES Experience (EXP) 30x Skill Points (SP) 30x Adena 10x Drop for Spoil 10x General Drop 10x RaidBoss Drop 3x Manor 4x Quest Drop 2x Quest Reward 3x Fishing Drop 10x Vitality System 25x Clan Reputation Point 2x ENCHANTS Safe Enchant +3 Max. Enchant +16 Normal Scroll chance 70% Blessed Scroll chance 80% Max donation enchant is +8 Yogi event enchant rate is 35% -Olf Max Enchant +9 enchant rates: +1 to +3 100%, +4 65%, +5 65%, +6 60%, +7 60%, +8 50%, +9 45% Elemental Max. Level Level 7 Elemental Stone chance 55% Elemental Crystal chance 50% CONFIGURATION Buffs, Dances, Songs Duration 2 hours Buff Slots 28+4+12 Max. Clients per PC 2 / IP 4 Olympiads Max. Enchant +8 Premium Geodata and Pathnodes Sub-Class Max. Level 85 Offline Shop mode Auto Learn Skills Vitality System Champions System Wedding System Class Master AUTO EVENTS Team vs. Team Last Man Standing Treasure Hunt Korean Style Capture the Flag Lucky Creatures Protect the King Russian Roulette Fight For Throne Deathmatch Domination TvT VIP Advanced Zombies Treasure Hunt No-PvP Hunting Grounds Mass Domination Lucky Chests Mutant Battlefields Mini Events Rabbits Simon Says Summer Meleons Pirates Treasure Hitman - Bounty Hunters Medal Collector Boss Random Etc. RAIDS RESPAWN TIME Valakas 72 hours / 24 hours random spawn Antharas 72 hours / 8 hours random spawn Baium 48 hours / 2 hours random spawn Baylor 24 hours/ 12 hours random spawn Beleth 48 hour OTHER Special Goddess of Destruction and Heroic Cloaks Goddess of Destruction .dress me Armors PvP + Rank + RPC Reward system Daily Quests available in community board New Achievements system Tournament system 1vs1 + Daily Tournament Academy Search for newbies, with payment Party Matching with class filter and manage Register to Fortress Siege as single player Cancelled buffs will return in 60 seconds (disabled) Improved .acpon will use now: MP, CP, GCP, GHP. SOULS Maximum number of slots for Private Store is 50 The maximum level for subclass is up to level 85 Multiple commands with advanced options, see them in com board You can view a monster drop rate and list by using shift+click Olympiad - Heroes are formed every Saturday at 01:05 GMT+2 Advanced Community Board with lots of new features for perfect play Advanced NPC buffer with almost all skills and up to 4 schemes per character Special Quiz event every 5 hours with over 500 questions and good reward Custom special Raids with special drop, with A.I against bots All major raids drop Donation Coins and Divine S Scrolls Super T.Rex with better drop and starting premium pets Glittering Medals from all mobs to exchange for special items Reduced number of clan members to raise the clan level and less reputation required Clan / Alliance has a reduced penalty AutoFarm, Community Cleaner, Weapon Repair system, Player Info, Server Online Statistics And many more... http://l2viserion.com https://www.facebook.com/l2viserion
    • TG Support: Buying Proxy | Channel: Buying Proxy Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server! Create your account for free here
    • It’s been a while since this situation started. As I’ve mentioned before, you are no longer kids you’re grown adults. Please resolve your disagreements through DMs, not forum threads.   I understand that you are competitors, but the rest of the community isn’t interested in your disputes. Stop publicly accusing each other and focus on handling issues privately.   The reputation system is not to be abused. Hearing complaints like “he downvoted me” every day is not productive. This thread will remain locked. Please grow up and handle your problems through private messages.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..