Jump to content

Recommended Posts

Posted

When 2 or more cardinals or other healers in one party the heal gets nerfed

net.sf.l2j.gameserver.handler.skillhandlers.heal.java

public void useSkill(Creature activeChar, L2Skill skill, WorldObject[] targets)
    {
        
        +int healers = 0;
        +int minus = 2;
        +
    +    if (activeChar.getParty() != null)
        +{
        +    for (Player player : activeChar.getParty().getMembers())
        +    {
        +        if (player != null && player.getClassId().getId() == 97)
            +    {
            +        healers++;
            +        
            +        if (minus != 2 && (player.getPvpFlag() != 0 || player.getKarma() > 0))
            +            minus = 2;
        +        }
        +    }
        +}

//go here

        hp = power;
                    hp *= target.calcStat(Stats.HEAL_EFFECTIVNESS, 100, null, null) / 100;
                    
            }
//and paste this too

        +if (healers >= 2) // 2 or more healers in party
            +{
            +    int nerfValue = (2 + (healers - minus));
            +    hp /= nerfValue;
        +    }
            
            // If you have full HP and you get HP buff, u will receive 0HP restored message

Posted

Do you realize that your int minus is always 2 and so, your check under a loop is redundant? And null check under a loop is also kinda useless. 

Posted (edited)
32 minutes ago, camenomat0 said:

Well, but what's the point? With the same logic, make a 3 Archer Pt do less crt. damage,or have less range.

The point is the share ;) Btw not bad idea about archers :P

 

@OnTopic

As sweets said you have useless checks and variables, You can update your post. Something like that would be better

 

 

### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: java/net/sf/l2j/gameserver/handler/skillhandlers/Heal.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/skillhandlers/Heal.java	(revision 3)
+++ java/net/sf/l2j/gameserver/handler/skillhandlers/Heal.java	(working copy)
@@ -1,5 +1,7 @@
 package net.sf.l2j.gameserver.handler.skillhandlers;
 
+import java.util.stream.Collectors;
+
 import net.sf.l2j.gameserver.handler.ISkillHandler;
 import net.sf.l2j.gameserver.handler.SkillHandler;
 import net.sf.l2j.gameserver.model.L2Skill;
@@ -111,6 +113,10 @@
 					hp *= target.calcStat(Stats.HEAL_EFFECTIVNESS, 100, null, null) / 100;
 			}
 			
+			final int healers = activeChar.getParty() == null ? 0 : activeChar.getParty().getMembers().stream().filter(mem -> mem.getClassId().getId() == 97).collect(Collectors.toList()).size();
+			if (healers >= 2)
+				hp /= healers;
+			
 			// If you have full HP and you get HP buff, u will receive 0HP restored message
 			if ((target.getCurrentHp() + hp) >= target.getMaxHp())
 				hp = target.getMaxHp() - target.getCurrentHp();

 

Edited by melron
  • Thanks 1
Posted (edited)

Where should i start and where should i end. 

I'll just write down that the whole thing you did can be done in 1 row more correctly. Cause basically no matter how many healers you have you always divine

by two since is static and does not increase in loop.

hp = hp / (activeChar.getParty() !=null ? activeChar.getParty().getPartyMembers().parallelStream().filter((player) -> player.getClassId().getId() == 97).count() : 1);

if (hp < 0){
 hp = 0;           
}

 

Edited by Evie Frye
Posted
29 minutes ago, SweeTs said:

@Evie Frye wanted to be a badass and used parallelStream, even if it has a much higher overhead compared to a sequential one. Don't be like Evie :(

 

@SweeTs I came, I saw, I conquered, thank you and goodnight.  

 

 

Posted
1 hour ago, Evie Frye said:

Where should i start and where should i end. 

I'll just write down that the whole thing you did can be done in 1 row more correctly. Cause basically no matter how many healers you have you always divine

by two since is static and does not increase in loop.


hp = hp % (activeChar.getParty() !=null ? activeChar.getParty().getPartyMembers().parallelStream().filter((player) -> player.getClassId().getId() == 99).count() : 1);

if (hp < 0){
 hp = 0;           
}

 

 

Great Job as always,such unique way fixing things.

49 minutes ago, SweeTs said:

@Evie Frye wanted to be a badass and used parallelStream, even if it has a much higher overhead compared to a sequential one. Don't be like Evie :(

 

No one can be like that.

  • Like 1
Posted
4 minutes ago, melron said:

my eyes are bleeding and stop spamming

 

yo budd, he did a good job fixing it and just mentioned it as the code looks nice,is not spam or anything,always on topic replies, never went off topic so please stop repeat yourselfe.Stop try to create drama for no reason, peace.

 

 

Posted
1 minute ago, camenomat0 said:

 

yo budd, he did a good job fixing it and just mentioned it as the code looks nice,is not spam or anything,always on topic replies, never went off topic so please stop repeat yourselfe.Stop try to create drama for no reason, peace.

 

He speaks for the topic owner.. The way he wrote the code is bleh. 

Posted (edited)
16 minutes ago, camenomat0 said:

 

yo budd, he did a good job fixing it and just mentioned it as the code looks nice,is not spam or anything,always on topic replies, never went off topic so please stop repeat yourselfe.Stop try to create drama for no reason, peace.

 

 

My answer was not only for this topic. peace

 

p.s the bleeding eyes thing wasn't for u

 

p.s2 how do you know if his code is good or not? With a small glance his code will give 0 heal if 2 or more healers found int the party

 

Proof:

858 heal % 3 (healers) ? 

 

result is 0...

 

Evie probably made a mistake and wanted to divide (/=)  instead of modulo...

Edited by melron
Posted (edited)
16 minutes ago, melron said:

My answer was not only for this topic. peace

 

p.s the bleeding eyes thing wasn't for u

 

p.s2 how do you know if his code is good or not? With a small glance his code will give 0 heal if 2 or more healers found int he game

 

Proof:

858 heal % 3 (healers) ? 

 

result is 0...

 

Evie probably made a mistake and wanted to divide (/=)  instead of ...

 

I wrote % instead of / (fixed also in my main post). 

About @SweeTs true Steam is slower and generally function forEach is slower than a normal loop but for such a small code won't affect much. We all know

VM is slow as fuck but let's no exaggerate.

Edited by Evie Frye
Posted (edited)
59 minutes ago, Evie Frye said:

 

We all know

VM is slow as fuck but let's no exaggerate.

Idk where you read this, we're not in 2006 btw.

Edited by An4rchy
Posted

1.4 mass heal if healer is 2 bad code.. i know heal give 2.1k heal if pt have 3 healers? give 800 hp ?

all party match is die. and dont forget l2 no have only heal's you can fix debuff. stun, silence, fear

all this.

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

    • Server owners, Top.MaxCheaters.com is now live and accepting Lineage 2 server listings. There is no voting, no rankings manipulation, and no paid advantages. Visibility is clean and equal, and early listings naturally appear at the top while the platform grows. If your server is active, it should already be listed. Submit here  https://Top.MaxCheaters.com This platform is part of the MaxCheaters.com network and is being built as a long-term reference point for the Lineage 2 community. — MaxCheaters.com Team
    • 🔥 Lineage 2 Haruna x3 – Interlude 🔥   Grand Opening 06.02.2026  Welcome to L2 Haruna x3, a classic Interlude server focused on retail-like gameplay, fair competition, and long-term stability. No pay-to-win, no broken customs — just real Lineage 2 the way it was meant to be played.   Website: https://l2haruna.com/ Discord: https://discord.gg/7DDC9Dsxnh Chronicle: Interlude Rates:  EXP/SP: x3   Adena: x2   Drop/Spoil: x1   Seal Stones: x1   Boss EXP/SP: x2 More Info: Click me Server Time: UTC +2 📈 Core Gameplay • Classic Interlude mechanics & formulas • Balanced economy • Real PvP, clan wars, sieges, and Olympiad 🏆 Olympiad Information • Olympiad starts 3 months after server opening • Participation only through the Olympiad Master • Competition time: 20:00 – 02:00 (UTC +2) ⚙️ Website & Account System • Master Account (MA) system on website • Game accounts must be created via Master Account • Vote system inside MA • Website rankings: PvP, PK, Clans, Castles 🧙 NPCs, Buffs & Utilities • Server Manager NPC in all towns and villages • Adventurer’s Guide (Miss Queen) in all towns and villages • Offline Buff Shops (.buffshop) allowed only in Monster Derby Track • In-game Mailbox system • Start-Up Bonus for all characters • FREE Teleport in all towns/villages until level 40 🎮 Interface & Quality of Life • ALT + K – Skill Panel (learn and enchant skills) • Alt + Click – Buff removal • Shift + Click on monsters – Drop and spoil information • Offline Shop system (set shop and exit game) • 35 seconds spawn protection • Captcha system in game (anti-bot protection) 💬 Chat System • Global chat (!) – Free, requires level 15 • Trade chat (+) – Free, requires level 15 • (!) Global chat • (+) Regional trade chat 🛡 Fair Play & Restrictions • Maximum 2 game clients per IP • Donate Coins and Vote Coins cannot be sold, dropped, traded, or destroyed • Cursed weapons disabled until first Heroes • Wedding system disabled (will be activated later) ⚔️ Class Progression • 1st Class Transfer – Quest required • 2nd Class Transfer – Quest required • 3rd Class Transfer – Full quest required • Subclass – Full quest required • Noblesse – Full quest required   🗡 Equipment • Shadow Weapons (D / C / B Grade) available via Shadow Weapon Manager 🧠 Technical & Protection • High-quality geodata and geo-engine • Advanced protection against DDoS attacks • Protection against third-party programs and cheats   Join Us Now! https://l2haruna.com/ 
    • High Five Part 5 can be uploaded?
  • 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..