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
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.

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

    • Complete development packages for Lineage 2 UI development, across all chronicles and an automated tool to update and patch Interface.u & Interface.xdat What I Offer Clean Sources: 100% clean, retail-based interface source code with zero unwanted custom modifications. Interface.u Update Tool: A standalone tool designed to patch, rebuild, and update Interface.u efficiently. Custom Modifications: Custom UI features and tailoring can be implemented upon request. Turnaround Time: Most major versions and protocols are ready for immediate delivery; other versions take up to 1 week. How It Works Let me know the specific chronicle or protocol version you are targeting. I will provide the tool, which is HWID-bound to your machine, for your setup. Once satisfied with the results, we finalize the deal. Pricing & Notes Both products are priced separately based on the target protocol and requirements. Package deals are negotiable if purchasing both. DM for inquiries, demos, and pricing quotes.    
    • Well u need to change when sm1 press exit it keeps it in game..  
    • That’s just part of buying and selling; if your service didn't appeal to me at the time, there's no reason for me to force myself to buy it. After all, I regularly buy other interfaces and clients from other users mostly Russians using USDT. But *I'm* the child here, even though *you're* the incredibly arrogant one.   The payment method or the amounts were never the problem you were. But life goes on; you’d rather stay caught up in your delusions, thinking you’re the protagonist of some anime. Princess Alice 😂   I have all the interfaces for the 474/506/509/520/542/563/557. and olds too.  Some were created by me, including the ARENA P140 interface, which will soon be released for free. This includes everything you make available. It will no longer be a monopoly held by just a few people.   Including your clients with system. like  
    • NEW: Ryzen 9 9950X VPS now Available! Our most Powerful VPS plans now available with dedicated Zen 5 cores clocked up to 5.7 GHz, DDR5 ECC, blazing NVMe Gen4 storage (~7 GB/s), 10 Gbit/s uplink with up to 50 TB traffic, and premium Anti-DDoS included on every plan. No KYC, crypto payments accepted, deployed in minutes. ⭐ RYZEN 9 9950X VPS: [ 9.99 ] 2vCore | 6GB DDR5 | 30GB NVMe - DEPLOY [ 19.99 ] 4vCore | 12GB DDR5 | 50GB NVMe - DEPLOY [ 39.99 ] 8vCore | 24GB DDR5 | 80GB NVMe - DEPLOY [ 69.99 ] 12vCore | 48GB DDR5 | 120GB NVMe - DEPLOY - 10 Gbit/s Port included in ALL Plans - Premium Anti-DDoS included in ALL Plans - No-KYC signup, crypto payments accepted ✅ Ryzen 9 9950X VPS ( vpslab.cloud )
    • I thiunk RU Federation having issues now with paypal?
  • 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..