|
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 |
|
|||||||
| Registrar | Loteria VIP | Staff SE | Regras do fórum | Comunidade | Arcade | Postados Hoje | Pesquisar | Experience |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
![]() |
|
|
LinkBack | Ferramentas do Tópico | Modos de Exibição |
|
|
#1 (permalink) | ||||||||||||||
|
Jesus Te Ama, Mas EU Não!
![]() 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:
![]()
Nome Real: Anderson Andrade
|
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 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;
}
![]() By FidoW |
||||||||||||||
|
|
|||||||||||||||
| Links Patrocinados |
![]() |
| Tags |
| gracia, jail, jaula, l2off, prisão, prision, sistema, system |
|
|