Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo.
Caso seja registrado, efetue login.
Esqueceu sua senha? Clique aqui
Recomendamos o uso do Mozilla Firefox para uma melhor visualização.    


Início Postados Hoje Marcar Fóruns Como Lidos Álbums Banidos SE Team Medalhas
Voltar   Secret Experience > Private Server & MMORPG - Administre Um > Lineage II - OFF > [L2OFF] Administrador > [L2OFF | Admin] Downloads > [L2OFF | Admin] Custom Server & Client
Registrar Loteria VIPStaff SERegras do fórum Comunidade Arcade Postados Hoje Pesquisar Experience
   

Secret Experience.NET   Secret Experience Corporation - Welcome To The Real World
     Anúncios SE

Resposta
 
Ferramentas do Tópico Modos de Exibição
Antigo 12-08-2013, 05:21 PM   #1
Setokaiba
Jesus Te Ama, Mas EU Não!
 
Avatar de Setokaiba
 
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradeceu: 837
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade

Inventório de Setokaiba Usuário possui 1x Lock Fan Usuário possui 1x Oakley Usuário possui 1x Apple Inc. Fan/User Usuário possui 1x Honda Usuário possui 1x Windows Seven User

Padrão Gracia CT 2 Jail System

Como existem inúmeros bugs e truques para se libertarem da prisão, segue um código para evitar isso:

L2Extend.ini
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
[JailSystem]
ModEnabled=1
BlockChat=1
BlockParty=1
BlockItems=1
BlockAttack=1
BlockGeneralActions=1
CJailSystem.h
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
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;
};
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
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;
}
Dessa forma o char ficará impossibilitado de executar inúmeras ações.

By FidoW

Setokaiba está online agora  
Links Patrocinados
Resposta

Tags
gracia, jail, jaula, l2off, prisão, prision, sistema, system


Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


Horários baseados na GMT -3. Agora são 09:33 PM.