rasad Posted August 22, 2009 Posted August 22, 2009 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 Quote
pant3ra9 Posted August 23, 2009 Posted August 23, 2009 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 Quote
HoH4XoR Posted September 13, 2009 Posted September 13, 2009 Nice :D I hope that no1 will escape now :P Quote
pant3ra9 Posted September 17, 2009 Posted September 17, 2009 u need a pet....... but i cannot tell what kind of pet......:D Quote
mistermvr Posted October 19, 2009 Posted October 19, 2009 Did not have any system failure to block actions? Quote
mariucha Posted November 9, 2009 Posted November 9, 2009 someone can tell me really it's working? Quote
Recommended Posts
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.