Jump to content
  • 0

Character title "DISCONNECTED"


Question

Posted

Hello , i have saw on many recent server that when a character gets critical error and is in party , when relog player is still in party , character won't despawn from the world but get a title "DISCONNECTED" , i fiind this feature to be really good for a pvp server and im asking you guys if the code is already shared somewhere ?

  • Upvote 2

12 answers to this question

Recommended Posts

  • 0
Posted

well i managed to make characters not dissapear from the world when log out / rr but i have a problem with the party , when player logs in again server knows character is in party , but client doesen't know character is in party how to fix this ?

  • 0
Posted

This addon is very difficult to implement, although at first glance, everything looks very simple there. There are a lot of checks for interaction with the character and his servants / pets when he is in this mode. Also, the order of loading the character and his "ejection" from the world should be completely controlled.

 

Nobody will give it to you for free, but for money it will cost at least 300-400 euros.

  • Like 1
  • 0
Posted
4 hours ago, Rootware said:

This addon is very difficult to implement, although at first glance, everything looks very simple there. There are a lot of checks for interaction with the character and his servants / pets when he is in this mode. Also, the order of loading the character and his "ejection" from the world should be completely controlled.

 

Nobody will give it to you for free, but for money it will cost at least 300-400 euros.

300-400e for it rly ?  😮

  • 0
Posted
15 minutes ago, KejbL said:

300-400e for it rly ?  😮

 

those charge developers task is not easy even if you open Lucera lib you will see how hard coded it is 😄

  • Haha 1
  • 0
Posted (edited)
1 hour ago, Celestine said:

 

those charge developers task is not easy even if you open Lucera lib you will see how hard coded it is 😄

i would say noone will fix this bug on lucera for him xD not even for 300-400e

Edited by BruT
  • 0
Posted
1 hour ago, KejbL said:

300-400e for it rly ?  😮

I know what I'm talking about. It has been used on my server for 4 years already. And I still find from time to time either a bug with a potential vulnerability or a harmless visual bug. It is very difficult to explain this to a person who does not even have basic knowledge of gameplay.

 

As i said before while character as object staing in the world w/o client all interactions must be handled with him, because some request to "semi offline" player can be freezed and w/o restart they does not repaired or canceled.

 

And more and more details. Also, need avoid collision with entering and deleting by timeout character object. Otherwise you got two the same objects in bad case or the empty world for character in best case after reconnect.

 

Just try to implement it first, and then we will listen to your offer with a price.

  • 0
Posted
9 hours ago, arm4729 said:

well i managed to make characters not dissapear from the world when log out / rr but i have a problem with the party , when player logs in again server knows character is in party , but client doesen't know character is in party how to fix this ?

put a variable like "boolean noCarrier", and on EnterWorld, if TRUE, then send Party info packet. Or just if isInParty

  • 0
Posted
22 minutes ago, Rootware said:

I know what I'm talking about. It has been used on my server for 4 years already. And I still find from time to time either a bug with a potential vulnerability or a harmless visual bug. It is very difficult to explain this to a person who does not even have basic knowledge of gameplay.

 

As i said before while character as object staing in the world w/o client all interactions must be handled with him, because some request to "semi offline" player can be freezed and w/o restart they does not repaired or canceled.

 

And more and more details. Also, need avoid collision with entering and deleting by timeout character object. Otherwise you got two the same objects in bad case or the empty world for character in best case after reconnect.

 

Just try to implement it first, and then we will listen to your offer with a price.

If you do not exclude l2phx, it is better not to use this system at all. By replacing the package, you can do nasty things, even if the double login is fixed, that is, there are still some features.
I think you understand what I mean 🙂

  • 0
Posted
17 minutes ago, Psygrammator said:

If you do not exclude l2phx, it is better not to use this system at all. By replacing the package, you can do nasty things, even if the double login is fixed, that is, there are still some features.
I think you understand what I mean 🙂

 

There is not matter L2PHX usage. If you have logical errors inside a checks for incoming data even w/o this system any "crafted" packet will be produced unhandled exception and subsequent vulnerability.

 

Double login exploit was the result of a logical error in checks, also as @Celestinereport for "wearing equip" exploit few years ago.

  • Upvote 1
  • 0
Posted (edited)
On 10/8/2021 at 6:31 PM, KejbL said:

now need this too 😄

hah , you lucky 😄

 

22 hours ago, Rootware said:

This addon is very difficult to implement, although at first glance, everything looks very simple there. There are a lot of checks for interaction with the character and his servants / pets when he is in this mode. Also, the order of loading the character and his "ejection" from the world should be completely controlled.

 

Nobody will give it to you for free, but for money it will cost at least 300-400 euros.

You are right , it was not easy and at first i tought it will be ez , anyway 300-400 euro for a addon that is not fully functional and still has errors is way to much , but thank you for your reply you bring some light when you said that character loading / ejection should be controlled 

 

15 hours ago, HyperBlown said:

put a variable like "boolean noCarrier", and on EnterWorld, if TRUE, then send Party info packet. Or just if isInParty

yes it is something like this , but it was harder for me to fiind the party leader as when player relogs again , if you make a check

"if(!player.IsInParty)

player.sendMessage("You are not in party)

.. you will get the message you are not in party even if the other players see you in party .. you are not in party 🙂 , and this means there is no party to get the packets from.. but i managed to use playermemo system at its finest 😄

15 hours ago, Psygrammator said:

If you do not exclude l2phx, it is better not to use this system at all. By replacing the package, you can do nasty things, even if the double login is fixed, that is, there are still some features.
I think you understand what I mean 🙂

well the double login was a big problem in this , but i had to force remove the player from the world when trying to reconnect to server again , and not to remove it when players delog .. hope this won't make big problems

 

16 hours ago, BruT said:

i would say noone will fix this bug on lucera for him xD not even for 300-400e

i feel blessed 😄 im not using lucera im using aCis jaja

 

now here is the lines i added and for me is working fine , maybe it has some errors but i can't fiind any , maybe you guys tell me if you fiind any problems here , thank you !

 

actor/instance/player.java

void cleanup()

++++++++++++++++++++++

			if(getTitle() != null)
			PlayerMemo.setVar(this, "Title", getTitle(), 0);
			getAppearance().setTitleColor(321333);
			setTitle("DISCONNECTED");
			broadcastUserInfo();	
if(isInParty())
			{
				if(getParty().getLeader() != this)
				{
				PlayerMemo.setVar(this, "Party", getParty().getLeaderObjectId(), 0);

				int name = PlayerMemo.getVarInt(this, "Party");
				Player player = World.getInstance().getPlayer(name);
				player.sendMessage(this.getName() + " your party member has been disconnected from the game.");
				Player leader = getParty().getLeader();
				PlayerMemo.setVar(leader, "PartyLeft", this.toString(), 0);
				}
				if(getParty().getLeader() == this)
				{
					for(Player member : getParty().getMembers())
					{
						if(member == null)
							continue;
						
						getParty().changePartyLeader(member.getName());
						
					}
						
				PlayerMemo.setVar(this, "Party", getParty().getLeaderObjectId(), 0);

				int name = PlayerMemo.getVarInt(this, "Party");
				Player player = World.getInstance().getPlayer(name);
				player.sendMessage(this.getName() + " , your party member has been disconnected from the game.");
				Player leader = getParty().getLeader();
				PlayerMemo.setVar(leader, "PartyLeft", this.toString(), 0);
				}
			}
			// If a party is in progress, leave it
						if (_party != null)
							_party.removePartyMember(this, MessageType.DISCONNECTED);
						
						// If the Player has Pet, unsummon it
						if (getPet() != null)
							getPet().unSummon(this);

network/clientpackets/EnterWorld.java

++++++++++++++++++++++++++++++++++++

			if(PlayerMemo.getVarInt(activeChar, "Party") != 0)
			{		
				int name = PlayerMemo.getVarInt(activeChar, "Party");
				Player leader = World.getInstance().getPlayer(name);
				leader.sendMessage(activeChar.getName() + " your party member has connected back to game.");
				PlayerMemo.setVar(activeChar, "Party", 0, 0);
				PlayerMemo.setVar(leader, "PartyLeft", 0, 0);
				if(leader.isInParty())
					leader.getParty().addPartyMember(activeChar);
			}
			if(PlayerMemo.getVar(activeChar, "Title") != null) 
			{
				activeChar.setTitle(PlayerMemo.getVar(activeChar, "Title"));
			}

gameserver/network/L2GameClient.java

	public Player loadCharFromDisk(int slot)
	{
		final int objectId = getObjectIdForSlot(slot);
		if (objectId < 0)
			return null;
		
		Player player = World.getInstance().getPlayer(objectId);
		if (player != null)
		{
			// exploit prevention, should not happens in normal way
			_log.severe("Attempt of double login: " + player.getName() + "(" + objectId + ") " + getAccountName());
			
			if (player.getClient() != null)
				player.getClient().closeNow();
			else
----				player.deleteMe(); //removed
++++			World.getInstance().removePlayer(player); // force remove in case of crash during teleport
			
			return null;
		}
		
		player = Player.restore(objectId);
		if (player != null)
		{
			player.setRunning(); // running is default
			player.standUp(); // standing is default
			
			player.setOnlineStatus(true, false);
			World.getInstance().addPlayer(player);
		}
		else
			_log.severe("L2GameClient: could not restore in slot: " + slot);
		
		return player;
	}

 

 

Edited by arm4729

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

    • SOCNET VERIFICATION SERVICE — is a universal solution for those who value security, convenience, and quality. We turn the verification process into a convenient, fast, and highly confidential experience. Thanks to our service, any of your accounts receive identity confirmation, an increased level of trust from platforms and users, as well as protection from bans, fraud, and risks.   Promotion: Pay for your first verification and get a 10% discount on the second one! 💎 We help with verification on Fragment, crypto exchanges ByBit, Gate, Bitget, OKX, Binance, PayPal, KuCoin, and social networks LinkedIn, Facebook, Instagram, Twitter (X) and many other platforms! 💎 Verification for any service: crypto exchanges, trading platforms, hosting providers, casinos and other websites. Why choose us:   Premium quality — we use the most advanced verification methods. High processing speed — accelerated verification on leading platforms, online services and social networks. Full confidentiality — your personal information is protected. Increased trust and status — a verified account boosts influence and improves conversion. Individual approach — we work with bloggers, brands, businesses, and private clients. Simplifying complexity — we handle issues when dealing with foreign services. Important! Services related to illegal activities are strictly prohibited! 💳 Service pricing   ✅ Verification of individuals — from $30 (the exact cost depends on the required location and service/app/website). Learn more 👨‍💼 The cost of business verification for companies or legal entities is discussed individually with the service administration. Learn more If you want us to register your account on the required service and verify it — you will need to additionally pay 10% of the transaction amount. Available payment methods: cryptocurrency, credit cards, PayPal, and other payment methods in our online store and Telegram bot.   ⭐ Our Online Store ⭐ SOCNET.STORE ⭐ Telegram Store ⭐ SOCNET.SHOP ⭐ Our SMS Service ⭐ SOCNET.APP ⭐ Our Telegram Bot for buying Telegram Stars ⭐ SOCNET.CC ⭐ Our SMM Panel ⭐ SOCNET.PRO   ✅ News Resources ➡ Telegram Channel ➡ WhatsApp Channel ➡ Discord Server     ⭐ We invite you to COOPERATE and EARN with us ⭐ Would you like to sell your product or service in our stores and earn money? Become our partner or offer mutually beneficial collaboration? You can contact us via the CONTACTS listed in this topic. ✅ Contacts & Support ➡ Telegram Support ➡ WhatsApp Support ➡ Discord Support: socnet_support ➡ Email Support: solomonbog@socnet.store   Terms of Use and Refund Policy If you have any questions or issues, our fast support service is ready to respond to your requests! A refund for a completed service that does not fully meet the requirements or the declared quality is possible only if the product description includes a warranty and a valid warranty period. In other cases, a full refund for the service will not be provided! By purchasing such a service, you automatically agree to our refund rules for non-provided services! Refunds for countries selected by mistake are not provided after verification. To complete verification, you must provide full access to your account. We currently accept cryptocurrency, credit cards, PayPal, and other payment methods in our online store and Telegram bot! We value every client and provide replacements in case of invalid accounts via our contact channels! Attention: Your order will be delivered to your personal Google Drive/Mega.nz via a link (check the link, click “View content”) within 24 hours after the order confirmation! If you purchased more than 1 item at once, your entire order will be delivered via the first link! The remaining links will be empty! You will automatically receive an email notification after delivery! If you pay on our website via PayPal, you must pay an additional 20% commission (minimum $1). To avoid this commission, you can pay me directly via PayPal — instructions are available on the website! Refunds for items purchased by mistake or due to “I chose the wrong product and did not use it” are not accepted! You are fully responsible for your actions before and after purchase.
    • SOCNET VERIFICATION SERVICE — is a universal solution for those who value security, convenience, and quality. We turn the verification process into a convenient, fast, and highly confidential experience. Thanks to our service, any of your accounts receive identity confirmation, an increased level of trust from platforms and users, as well as protection from bans, fraud, and risks.   Promotion: Pay for your first verification and get a 10% discount on the second one! 💎 We help with verification on Fragment, crypto exchanges ByBit, Gate, Bitget, OKX, Binance, PayPal, KuCoin, and social networks LinkedIn, Facebook, Instagram, Twitter (X) and many other platforms! 💎 Verification for any service: crypto exchanges, trading platforms, hosting providers, casinos and other websites. Why choose us:   Premium quality — we use the most advanced verification methods. High processing speed — accelerated verification on leading platforms, online services and social networks. Full confidentiality — your personal information is protected. Increased trust and status — a verified account boosts influence and improves conversion. Individual approach — we work with bloggers, brands, businesses, and private clients. Simplifying complexity — we handle issues when dealing with foreign services. Important! Services related to illegal activities are strictly prohibited! 💳 Service pricing   ✅ Verification of individuals — from $30 (the exact cost depends on the required location and service/app/website). Learn more 👨‍💼 The cost of business verification for companies or legal entities is discussed individually with the service administration. Learn more If you want us to register your account on the required service and verify it — you will need to additionally pay 10% of the transaction amount. Available payment methods: cryptocurrency, credit cards, PayPal, and other payment methods in our online store and Telegram bot.   ⭐ Our Online Store ⭐ SOCNET.STORE ⭐ Telegram Store ⭐ SOCNET.SHOP ⭐ Our SMS Service ⭐ SOCNET.APP ⭐ Our Telegram Bot for buying Telegram Stars ⭐ SOCNET.CC ⭐ Our SMM Panel ⭐ SOCNET.PRO   ✅ News Resources ➡ Telegram Channel ➡ WhatsApp Channel ➡ Discord Server     ⭐ We invite you to COOPERATE and EARN with us ⭐ Would you like to sell your product or service in our stores and earn money? Become our partner or offer mutually beneficial collaboration? You can contact us via the CONTACTS listed in this topic. ✅ Contacts & Support ➡ Telegram Support ➡ WhatsApp Support ➡ Discord Support: socnet_support ➡ Email Support: solomonbog@socnet.store   Terms of Use and Refund Policy If you have any questions or issues, our fast support service is ready to respond to your requests! A refund for a completed service that does not fully meet the requirements or the declared quality is possible only if the product description includes a warranty and a valid warranty period. In other cases, a full refund for the service will not be provided! By purchasing such a service, you automatically agree to our refund rules for non-provided services! Refunds for countries selected by mistake are not provided after verification. To complete verification, you must provide full access to your account. We currently accept cryptocurrency, credit cards, PayPal, and other payment methods in our online store and Telegram bot! We value every client and provide replacements in case of invalid accounts via our contact channels! Attention: Your order will be delivered to your personal Google Drive/Mega.nz via a link (check the link, click “View content”) within 24 hours after the order confirmation! If you purchased more than 1 item at once, your entire order will be delivered via the first link! The remaining links will be empty! You will automatically receive an email notification after delivery! If you pay on our website via PayPal, you must pay an additional 20% commission (minimum $1). To avoid this commission, you can pay me directly via PayPal — instructions are available on the website! Refunds for items purchased by mistake or due to “I chose the wrong product and did not use it” are not accepted! You are fully responsible for your actions before and after purchase.
    • +8? Isnt +5 max per one stat?
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock