Jump to content
  • 0

Who Know Java Code Killing Spree


Question

Posted (edited)

Hallo Guys I want make killing spree

 

this code

 

ndex: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4638)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)


@@ -243,6 +243,7 @@
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
import com.l2jserver.gameserver.skills.AbnormalEffect;
import com.l2jserver.gameserver.skills.Env;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jserver.gameserver.skills.Formulas;
import com.l2jserver.gameserver.skills.Stats;
import com.l2jserver.gameserver.skills.l2skills.L2SkillSiegeFlag;

@@ -5664,14 +5737,63 @@
	 * Increase the pvp kills count and send the info to the player
	 *
	 */
+		private int impro = 0;
	public void increasePvpKills(L2Character target)
	{
		if (target instanceof L2PcInstance
				&& AntiFeedManager.getInstance().check(this, target))
		{
+					impro++;
+					        
+					       switch(impro){
+					       
+					                case 3:
+			   				ExShowScreenMessage case3 = new ExShowScreenMessage("You reached 3 killing spree!", 10000);
+			   				sendPacket(case3);
+							Announcements.getInstance().announceToAll("Player: " + getName() + " :Just got a Triple Kill!");
+			   				break;
+			   				
+							case 5:
+			   				ExShowScreenMessage case5 = new ExShowScreenMessage("You reached 5 killing spree!", 10000);
+			   				sendPacket(case5);
+							Announcements.getInstance().announceToAll("Player: " + getName() + " :Just got an Ultra Kill!");
+			   				break;
+			   				
+							case 10:
+			   				ExShowScreenMessage case10 = new ExShowScreenMessage("You reached 10 killing spree!", 10000);
+			   				sendPacket(case10);
+			   				Announcements.getInstance().announceToAll("Player: " + getName() + " :reached 10 kill in a row!");
+			   				break;
+			   				
+							case 15:
+			  				ExShowScreenMessage case15 = new ExShowScreenMessage("You reached 15 killing spree!", 10000);
+			   				sendPacket(case15);
+			   				Announcements.getInstance().announceToAll("Player: " + getName() + " :reached 15 kill in a row!");
+			  				break;
+			   				
+							case 20:
+			   				ExShowScreenMessage case20 = new ExShowScreenMessage("You reached 20 killing spree!", 10000);
+			   				sendPacket(case20);
+			   				Announcements.getInstance().announceToAll("Player: " + getName() + " :reached 20 kill in a row!");
+			   				break;
+			  				
+							case 25:
+			   				ExShowScreenMessage case25 = new ExShowScreenMessage("You reached 25 killing spree!", 10000);
+			   				sendPacket(case25);
+			  				Announcements.getInstance().announceToAll("Player: " + getName() + " :reached 25 kill in a row!");
+			   				break;
+					          default:
+					           ;
+					        }
+				
+			


@@ -13495,6 +13639,8 @@
					setCurrentFeed(0);
					stopFeed();
					dismount();
+							
+							impro = 0;
					sendPacket(SystemMessage.getSystemMessage(SystemMessageId.OUT_OF_FEED_MOUNT_CANCELED));
				}

But not when he dies but with time  1 min 

 

impro = 0;  <<<< 1 min

 

Edited by MegaCheat

8 answers to this question

Recommended Posts

  • 1
Posted

 

Btw, you don't need to announce/screenmessage the pvp count in every line. 

  • Upvote 2
  • 0
Posted
1- You store a Future _spreeTask on the Player level (your impro variable should be named _impro, btw).
2 - You cancel it and relaunch it on every kill :

if (_spreeTask != null)
_spreeTask.cancel(false);

_spreeTask = ThreadPool.schedule(() -> _impro = 0, 60000L);

Basically, if you kill someone, it will cancel current task and reschedule it with a fresh timer. If you want to avoid to make one task per Player, you can also handled it using a Manager (similar to multiple other timed stuff : pvp, random animation timer, or even movement in default L2J...), where you register all Players on a 1sec task manager and test each of those every second.
  • Like 1
  • 0
Posted
9 hours ago, Tryskell said:

1- You store a Future _spreeTask on the Player level (your impro variable should be named _impro, btw).
2 - You cancel it and relaunch it on every kill :

if (_spreeTask != null)
_spreeTask.cancel(false);

_spreeTask = ThreadPool.schedule(() -> _impro = 0, 60000L);

Basically, if you kill someone, it will cancel current task and reschedule it with a fresh timer. If you want to avoid to make one task per Player, you can also handled it using a Manager (similar to multiple other timed stuff : pvp, random animation timer, or even movement in default L2J...), where you register all Players on a 1sec task manager and test each of those every second.

you talk to him like he is a casual Senior Java developer even tho you are right i dont think he will understand 😕

 

49 minutes ago, &#x27;Baggos&#x27; said:

 

Btw, you don't need to announce/screenmessage the pvp count in every line. 

nice job buddy

 

  • 0
Posted (edited)
3 hours ago, MegaCheat said:

thanks guys very mutch

the problem is chronical Hi5

Just changes the imports. Only in KillingSpreeTaskManager you get errors.

Remove imports, rename Player to L2PcInstance and press Ctrl + Shift + O

 

Instead of var change it to int

Remove:

World.announceToOnlinePlayers("Player " + getName() + ": reached " + value + " kills in a row!", true);

 

And put

Announcements.getInstance().announceToAll("Player " + getName() + ": reached " + value + " kills in a row!", true);

Edited by 'Baggos'
  • 0
Posted (edited)

private int _killCount;
private long _killTime;
 

public void increasePvpKills(L2Character target)
{
    if (target instanceof L2PcInstance && AntiFeedManager.getInstance().check(this, target))
    {

        if (_killTime < System.currentTimeMillis())
            _killCount = 0;
 

        _killCount++;
        _killTime = System.currentTimeMillis() + 60000L;

 
There is no need for any task @MegaCheat

Edited by StinkyMadness
  • Like 1
  • Thanks 1
  • Upvote 1
Guest
This topic is now closed to further replies.


  • Posts

    • Hello everyone, I am looking to purchase a Premium Lineage 2 High Five server pack. My main requirements are: Stability & Quality (Most Important): The pack must be highly stable with no system errors or major bugs. Custom Features: It must include ready-to-use custom features such as a fully functional Community Board, custom NPC Buffers, and Custom Item Sellers (GM Shops), etc. Complete Files: It is absolutely necessary that the full source code (src) and complete Geodata are included. If you are selling a pack that meets these criteria, please send me a PM or leave a reply with the following information: Brief details and key features of the pack Price Test server availability (I would like to test it before buying) Thank you!
    • L2jmobiusDevClon — Classic Interlude p110 Emulator L2jmobiusDevClon is actively developing a Lineage 2 Classic Interlude p110 emulator. Development is done in free time with a strong focus on: • Stability • Authentic Classic mechanics • Clean and optimized architecture The project is based on the L2jMobius source and is continuously evolving and improving. System Requirements: • Java 25 • MariaDB 12.0 • Client p110 Current Revision: 3.0 Development Status: Active Distribution: Free Official Website: https://www.l2jmobiusdevclon.pp.ua Discord Server: https://discord.gg/23a9S8g4Bn Contact: Telegram — @L2jmobiusDevClon Also available via private messages Project Goals: ✔ Improved stability ✔ Maximum Classic accuracy ✔ Core optimization We are currently looking for: • Testers • Server administrators Suggestions, bug reports, and ideas are always welcome. Contact us via: ✔ Discord ✔ Telegram ✔ Private Messages
    • i guess loading only the effects that are needed it will maybe work, like removing from reshade shader folder the ones that are not needed, depends on the pc also i guess, also limithing the game at 30fps can be better maybe
    • Up   SELL CHARACTERS L2 REBORN FRANZ x1     destroyer 74 lvl naked - 120 euro sws 71 lvl naked - 120 euro pp 66 skills - 120 euro se 64 lvl - 90 euro   Characters are legit with mail   i can wtt the characters for adena server franz   sell adena franz 250kk stock     add discord topeseller4081  
  • 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..