Jump to content

Recommended Posts

Posted (edited)

Hello.

 

This is a PvP protection system I made a while ago (1-2 years ago).

 

Basically what it is: If a player kills someone 4 consecutive times in a row without 10 seconds passing between each kill, a protection from the killer to the victim is added which means for the next 15 minutes, the killer will not get any rewards from killing the victim (rewards like pvp point and maybe other customs addons you have like on-kill reward). There are also checks for same clan, same ally and same ip. GMs are excluded from the protection.

 

If you find any issues reply here and I will fix them. There are NO CONFIGS, everything is hardcoded but it's basically 3 numbers that you can change on the code.

 

Ignore the l2spike package on PvpProtection class, add it anywhere and change it.

 

I know it can be improved to avoid many tasks, I will do it soon and update the topic.

 

http://pastebin.com/B9W2neb1

 

Use this one (avoid having many tasks by checking the time of each kill): http://pastebin.com/JD1igS6t

 

Also, in L2PcInstance, find setPvpKills(getPvpKills()+1) and ABOVE it add:

		if (PvpProtection.getInstance().protectionExists(this, targetPlayer))
		{
			sendMessage("You did not get any rewards from this kill.");
			return;
		}
		PvpProtection.getInstance().checkKill(this, targetPlayer);

And in GameServer add:

PvpProtection.getInstance();

It was coded on aCis (can't remember revision).

Edited by An4rchy
Posted (edited)

Don't forget AoE

This system checks player -> player kills, so aoe would still count. (since the player using AoE is killing another player, I mean same methods are called to update pvp kills)

Edited by An4rchy
Posted

Similar to your AuctionManager, probably end with ConcurrentException, both on maps and lists. Not sure about int integrity on kills aswell - notably on AoE kills (AtomicInteger is probably a better choice).

Posted (edited)

Similar to your AuctionManager, probably end with ConcurrentException, both on maps and lists. Not sure about int integrity on kills aswell - notably on AoE kills (AtomicInteger is probably a better choice).

I've tested similar systems (map accessed by many players, looped through etc) and never had a ConcurrentException before. Probably because it's too fast or I'm too lucky.

Anyway updated.

Edited by An4rchy
  • 1 year later...
Posted (edited)
    public void addNewProtection(Player killer, Player victim, KillStats ks)
    {
        killStats.remove(ks);
       
  ->      if (protections.containsKey(victim))
  ->         protections.get(victim).add(killer.getObjectId());
        else
        {

on these that i marked i get this warning  : Unlikely argument type Player for containsKey(Object) on a Map<Integer,List<Integer>>

 

what causing this ? i did compile and tested and wasnt working ...

**do we have any other code that protects pvp with hwid ip ?

 

i use 370 acis rev

Edited by Xenokage

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

    • LF the following chars / items on chronos   Elf - with class Aeore's Shillen Saint - this is possible if you had done a class change with a ticket in the past. Dwarf - with class Mystic Muse - same as above   Any greater jewels / Radiant Circle Grace or Foresight +5 and above Cloak      
    • First, you need to understand what you're doing and what you want to achieve. You have to choose a server core. After that, decide what you want your server to include, code it, modify the client to fit your server, go public, and drink champagne.   If you know how to code, creating a server is relatively easy — a few months of work and you can make it happen. Modifying the client is a completely different story. There’s a lack of tutorials, tools, and source materials. I’m currently working on the client myself, and I’ve already spent over three weeks just trying to get started due to the lack of information. If you don’t have the knowledge and experience, you’ll need a team and a bag of money — but realistically, it just won’t succeed.
    • The server has been online and stable for over 2 months now, and we’re still going strong! No wipes, no shortcuts ~ just continuous work, daily fixes, events, and improvements to ensure the best possible experience.   Great News! 🔥 CHAPTER II IS COMING — GRACIA FINAL 🔥 On February 16, L2Elixir enters a new era. The server will be officially updated to Gracia Final, opening Chapter II of our journey. Expect new content, improvements, and surprises that will refresh the gameplay while keeping the classic Gracia Final spirit alive.   More challenges, more competition, and more reasons to log in.   📅 Update Date: February 16 ⚔️ Chapter II: Gracia Final This is not a reset. This is evolution.   Prepare yourselves — Chapter II begins soon.   Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs    
    • 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
  • 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..