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

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

    • what do u mean i want to change the normal weapons some weapons are working perftect some not getting th effect and the arcana has the effect above the weapons as u see ... i dont what is the probkenm
    • Stop paying for files that are already public and free. Here you can download a fully working Interlude server with C4-like gameplay, including source code so you can compile it yourself and verify everything. People will try to convince you that free releases are “broken”, “full of backdoors”, etc. That’s exactly why I’m also providing the SVN with the full source – so you can: Review the code yourself Remove / modify whatever you don’t like Compile your own binaries What’s included GX-EXT Interlude server (C4-style gameplay) – L2Off Client Interlude tweaked for C4 gameplay Public SVN with source code Downloads: Server GX-EXT: https://www.mediafire.com/file/q5ipkjd36tnhfxv/L2OFF_C4_C4_ACU_GXEXT.rar/file Client Interlude C4 Gameplay: https://www.mediafire.com/file/rdkfc8wwau042oh/Cliente_Interlude_Jugabilidad_C4.rar/file SVN (source code, delayed a couple of months to avoid reselling fresh work): https://svn.l2servers.com.ar/!/#GX-EXT_INTERLUDE User: gx Pass: gx How to compile To compile the source you will need: Visual Studio 2005 (x64 toolset) (Classic L2Off toolchain – yes, it’s old, but that’s what the original server uses.) Use this as you want: learn, test, open your own server, or just audit the code. But please, stop buying the same leaked/resold files over and over when you can get them here for free, with source, and actually know what you’re running.  
    • @GX-Ext Please reupload the pack+web+client because all the links inside that post or in the https://l2servers.com.ar/ are dead
    • Weapon dat is not the same for all, since you have custom things for sure no. You can contact @NevesOma
    • hello guys im facing a problem with the weapons .. i want to add hero glow on s weapons arcana ,dragonic bow etc.. some weapons are work peftect .. some not for example i add the line  LineageEffect.e_u092_h for fists and didnt work didnt even get the hero glow.. and the arcana the glow is on the top of weapon not down side like hero zeus mace any ideas?.. or does anybody has the weapongrp.dat file ready ?
  • 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