Jump to content

Recommended Posts

Posted

i was looking at this forums and found a lot of tricks/bugs to how to get out from jail

so i searched a little on the net and found this ! i hope it will be useful :

L2Extend.ini

[JailSystem]
ModEnabled=1
BlockChat=1
BlockParty=1
BlockItems=1
BlockAttack=1
BlockGeneralActions=1

 

CJailSystem.h

class CJailSystem
{
public:

	CJailSystem() { }
	~CJailSystem() { }
	static void Initialize();
	static bool IncommingPackets(CSocket *pSocket, CSPacket *pPacket, INT16 nPacketLen, BYTE nPacketID);
	static bool BlockPacket(CSocket *pSocket, BYTE *packet);
	static bool Say2(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length);
	static bool RequestSendFriendMsg(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length);
	static bool RequestJoinParty(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length);

private:

	bool bModEnabled;
	bool bBlockChat;
	bool bBlockParty;
	bool bBlockItems;
	bool bBlockAttack;
	bool bBlockGeneralActions;
};

CJailSystem *pJS = NULL;

void CJailSystem::Initialize()
{
// Initializing the Object
pJS = new CJailSystem();

// Parsing the Config File
pJS->bModEnabled = CIniFile::GetIntValue("ModEnabled","JailSystem","L2Extend.ini") == 1 ? true : false;
pJS->bBlockChat = CIniFile::GetIntValue("BlockChat","JailSystem","L2Extend.ini") == 1 ? true : false;
pJS->bBlockParty = CIniFile::GetIntValue("BlockParty","JailSystem","L2Extend.ini") == 1 ? true : false;
pJS->bBlockItems = CIniFile::GetIntValue("BlockItems","JailSystem","L2Extend.ini") == 1 ? true : false;
pJS->bBlockAttack = CIniFile::GetIntValue("BlockAttack","JailSystem","L2Extend.ini") == 1 ? true : false;
pJS->bBlockGeneralActions = CIniFile::GetIntValue("BlockGeneralActions","JailSystem","L2Extend.ini") == 1 ? true : false;

}

INT32 nJailSystemIncommingPackets = 0;
bool CJailSystem::IncommingPackets(CSocket *pSocket, CSPacket *pPacket, INT16 nPacketLen, BYTE nPacketID)
{
L2SERVER_SHARED_GUARD(nJailSystemIncommingPackets);
TLS_TRACE_BEGIN;

bool bResult = true;

if ( pJS->bModEnabled && pSocket->user->IsValidUser() )
{
	if ( !pSocket->user->SD->nBuilderLevel ) {

		// Is in jail
		if ( pSocket->user->IsInJail() ) {
			switch ( nPacketID )
			{
				case 0x21: //RequestBypassToServer
				case 0x2e: //RequestMagicSkillList
				case 0x33: //RequestShortCutReg
				case 0x34: //RequestShortCutUse
				case 0x35: //RequestShortCutDel
				case 0x3f: //RequestSkillList
				case 0x63: //RequestQuestList
				case 0x64: //RequestDestroyQuest
				case 0xcd: //RequestShowMiniMap
				case 0x5b: //SendBypassBuildCmd
				case 0x5e: //RequestFriendInvite
				case 0x5f: //RequestFriendAddReply
				case 0x61: //RequestFriendDel
				case 0x6d: //RequestRestartPoint
				case 0x6e: //RequestGMCommand
				case 0x81: //RequestGMList
				case 0x82: //RequestJoinAlly
				case 0x83: //RequestAnswerJoinAlly
				case 0x84: //RequestWithdrawAlly
				case 0x85: //RequestOustAlly
				case 0x86: //RequestDismissAlly
				case 0x87: //RequestSetAllyCrest
				case 0x88: //RequestAllyCrest
				case 0x89: //RequestChangePetName
				case 0xa0: //RequestBlock
				case 0xac: //RequestRecipeBookOpen
				case 0xad: //RequestRecipeBookDestroy
					if (pJS->bBlockGeneralActions) bResult = BlockPacket(pSocket, pPacket->GetBytes(0x00));
					break;

				case 0x1e: //RequestSellItem
				case 0x0f: //ItemList
				case 0x11: //RequestUnEquipItem
				case 0x12: //RequestDropItem 0x17 RequestDropItemFromPet (?)
				case 0x13: //GetItem (not used any more?)
				case 0x14: //UseItem
				case 0x15: //TradeRequest
				case 0x72: //RequestCrystallizeItem
				case 0x73: //RequestPrivateStoreManageSell
				case 0x74: //SetPrivateStoreListSell
				case 0x1f: //RequestBuyItem
				case 0x44: //AnswerTradeRequest
				case 0x58: //RequestEnchantItem
				case 0x59: //RequestDestroyItem
				case 0x8a: //RequestPetUseItem
				case 0x8b: //RequestGiveItemToPet
				case 0x76: //RequestPrivateStoreQuitSell
				case 0x91: //SetPrivateStoreListBuy
				case 0x92: //RequestPrivateStoreBuyManageCancel
				case 0x93: //RequestPrivateStoreBuyQuit
					if (pJS->bBlockItems) bResult = BlockPacket(pSocket, pPacket->GetBytes(0x00));
					break;

				case 0x0A: //Attack
				case 0x2F: //RequestMagicSkillUse
					if (pJS->bBlockAttack) bResult = BlockPacket(pSocket, pPacket->GetBytes(0x00));
					break;

				case 0x29: //RequestJoinParty
				case 0x2A: //RequestAnswerJoinParty
				case 0x2B: //RequestWithDrawalParty
					if (pJS->bBlockParty) bResult = BlockPacket(pSocket, pPacket->GetBytes(0x00));
					break;

				case 0xCC: //RequestSendFriendMsg
					if (pJS->bBlockChat) bResult = RequestSendFriendMsg(pSocket, pPacket, nPacketID, nPacketLen);
					break;
				case 0x38: //Say2
					if (pJS->bBlockChat) bResult = Say2(pSocket, pPacket, nPacketID, nPacketLen);
					break;

				default:
					bResult = true;
					break;
			}
		}
		// Try to interact with someone in jail
		else {
			switch ( nPacketID )
			{
				case 0xCC: //RequestSendFriendMsg
					if (pJS->bBlockChat) bResult = RequestSendFriendMsg(pSocket, pPacket, nPacketID, nPacketLen);
					break;
				case 0x38: //Say2
					if (pJS->bBlockChat) bResult = Say2(pSocket, pPacket, nPacketID, nPacketLen);
					break;
				case 0x29: //RequestJoinParty
					if (pJS->bBlockParty) bResult = RequestJoinParty(pSocket, pPacket, nPacketID, nPacketLen);
					break;

				default:
					bResult = true;
					break;
			}
		}
	}
}

if (!bResult) {
	//CLog::AddAnsi(1,"[%s] Blocked Pckt[0x%02X] from [%ls]",__FUNCTION__,nPacketID,pSocket->user->SD->wszName);
}

TLS_TRACE_END;
return bResult;
}

INT32 nBlockPacket = 0;
bool CJailSystem::BlockPacket(CSocket *pSocket, BYTE *packet)
{
L2SERVER_SHARED_GUARD(nBlockPacket);
TLS_TRACE_BEGIN;

if(pSocket->user->IsValidUser()) {
	pSocket->Send("c", 0x25); // 0x1F - ActionFailed
	goto ACTION_FAILED;
}

TLS_TRACE_END;
return true;

ACTION_FAILED:
TLS_TRACE_END;
return false;

}

INT32 nSay2 = 0;
bool CJailSystem::Say2(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length)
{
L2SERVER_SHARED_GUARD(nSay2);
TLS_TRACE_BEGIN;

INT32 nPos = 0;
wstring sText		= pPacket->GetWString(nPos) ; nPos += ((sText.size()*2)+2);
INT32 nType			= pPacket->GetDWord(nPos) ; nPos += 4;
wstring sTarget     = pPacket->GetWString(nPos) ; nPos += ((sTarget.size()*2)+2);

if(pSocket->user->IsValidUser()) {
	if (pSocket->user->IsInJail() && nType>1) {
		pSocket->SendSystemMessage(1357); // You have been blocked from chatting with that contact.
		goto ACTION_FAILED;
	}
	else if (nType == 2) {
		CObjectEx *pTargetEx = CPlayerTracker::GetUserByName(sTarget);
		if ( pTargetEx && pTargetEx->pCreature->IsValidUser() ) {
			if ( pTargetEx->pCreature->IsInJail() && pTargetEx->pCreature->SD->nBuilderLevel==0 ) {
				pSocket->SendSystemMessage(1355); // That contact is currently blocked from chatting
				goto ACTION_FAILED;
			}
		}
	}
}

TLS_TRACE_END;
return true;

ACTION_FAILED:
TLS_TRACE_END;
return false;
}

INT32 nRequestSendFriendMsg = 0;
bool CJailSystem::RequestSendFriendMsg(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length)
{
L2SERVER_SHARED_GUARD(nRequestSendFriendMsg);
TLS_TRACE_BEGIN;

INT32 nPos = 0;
wstring sText		= pPacket->GetWString(nPos) ; nPos += ((sText.size()*2)+2);
wstring sTarget     = pPacket->GetWString(nPos) ; nPos += ((sTarget.size()*2)+2);

if(pSocket->user->IsValidUser()) {
	CObjectEx *pTargetEx = CPlayerTracker::GetUserByName(sTarget);
	if ( pTargetEx && pTargetEx->pCreature->IsValidUser() ) {
		if ( pSocket->user->IsInJail() ) {
			pSocket->SendSystemMessage(1357); // You have been blocked from chatting with that contact.
			goto ACTION_FAILED;
		}
		else if ( pTargetEx->pCreature->IsInJail() && pTargetEx->pCreature->SD->nBuilderLevel==0 ) {
			pSocket->SendSystemMessage(1355); // That contact is currently blocked from chatting
			goto ACTION_FAILED;
		}
	}
}

TLS_TRACE_END;
return true;

ACTION_FAILED:
TLS_TRACE_END;
return false;
}


INT32 nRequestJoinParty = 0;
bool CJailSystem::RequestJoinParty(CSocket *pSocket, CSPacket *pPacket, int nPacketID, int Length)
{
L2SERVER_SHARED_GUARD(nRequestJoinParty);
TLS_TRACE_BEGIN;

INT32 nPos = 0;
wstring sTarget         = pPacket->GetWString(nPos); nPos += ((sTarget.size()*2)+2);
INT32 nItemDistribution = pPacket->GetDWord(nPos);   nPos += 4;

if(pSocket->user->IsValidUser()) {
	CObjectEx *pTargetEx = CPlayerTracker::GetUserByName(sTarget);
	if ( pTargetEx && pTargetEx->pCreature->IsValidUser() ) {
		if ( pSocket->user->IsInJail() ) goto ACTION_FAILED;
		else if ( pTargetEx->pCreature->IsInJail() && pTargetEx->pCreature->SD->nBuilderLevel==0 ) goto ACTION_FAILED;
	}
}

TLS_TRACE_END;
return true;

ACTION_FAILED:
TLS_TRACE_END;
return false;
}

 

this will block almost everything a player can do

credits go to fidow for making it and me for share it here

Posted

hmmmm this might work.... but is a funny way to get out from jail.....TESTED...in over 10 servers....low-mid-high-rate srvs......is a sort of bug that it cannot be resolved......if u want to know how to escape from jail send me a msg.....love this bug:X:X:X:X:X:X

  • 3 weeks later...
  • 5 weeks later...
  • 3 weeks later...
  • Vision changed the title to Gracia CT 2 jail system

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • its not imagination we skip that on this topic my offer still stands i am accepting a house Mr. @ERROR501 for more information please contact me
    • Sell ready interlude server files, with all popular features and tested, stable source + fully functional premium geodata for free.   Features include: Events: DM CTF TVT LM Dressme system Custom Buffer GM Shop Custom community board Donation manager  Auto Farm   Album: sell c6 — ImgBB   Test Server online: Patch link: https://drive.google.com/file/d/1mvEbv9XESsvfWwc638xFyyzyESeE2U95/view?usp=drive_link Auto acc create and auto admin   Price: 300$. Discord: l2retro
    • Faltan demasiados archivos,  y lógicas en clases claves como L2pcInstance, entre otras. si bien muchas cosas están y el flujo es valorable.  Gracias por tu esfuerzo es bastante... pero realmente no esta completo el código, falta que subas todas las modificaciones en clases colaterales... podrías intentar subir un diff de todo el mod  completo de tu pack y bueno ahí si que cada uno adapte... pero faltan muchas cosas, dudo que haya gente que lo haya echo funcionar con esto... 
    • I know people who have fully bypassed and reversed AAC. One day, they might even release the full source code, but for now, they’re still making money off it. I won’t name anyone, but it’s clear that there aren’t any truly solid anticheats for Lineage2. As I’ve said before, kernel level anticheats are the only real solution. Anything that runs as Internal and injects gets flagged, and your account ends up getting kicked or banned. That’s just how most games handle it nowadays. To TL;DR the whole thing cheating will always exist because there are people out there smart enough to bypass any protection and run private cheats. Public cheats are always detected eventually, so I don’t see any point in buying AAC, especially when they claim it blocks adr, which simply isn’t true.
    • 🌐 Website: https://l2adonis.com 📅 GRAND OPENING: July 18, 2025 – 20:00 (UTC+2) 💬 Discord: https://discord.com/invite/tZBj8JxAwx 🚫 No auto-farm • No auto-macro • No pay-to-win • No custom   Some Basic Info's (More detalied info's on website)  EXP/SP: x25  Adena: x15  Drop: x15  Spoil: x15  Seal Stones: x15  Raid Boss Drop: x10  Epic Boss Drop: x1  Manor: x10  Safe Enchant: +4  Max Enchant: +16  Normal Scroll Chance: 50%  Blessed Scroll Chance: 66% (If enchant fail item remain +4)  Buff Slots (30+4 extra with Divine Inspiration)  Dances/Songs Slots 14  Auto-learn skills  ⚔️ Real PvP • Real Progression • Retail-like experience JOIN NOW and relive the real L2 experience!
  • 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