1. Fix the Overflow
In the function "CDPCacheSrvr::OnGuildPenya" from the files CoreServer/DPCacheSrvr.cpp add the following "check".
2. Fix the Creation of the Guild Cloak
In the function "CDPSrvr::OnCreateGuildCloak" from the files WorldServer/DPSrvr.cpp change this code.
To this one :
3. Clear the Guild Logo
Use the following request on the CHARACTER_01_DBF.
4.1 How to found item create with the Guild Cloak System
Use the following request on the LOGGING_01_DBF.
Each result found is a item "Exploit".
4.2 How to found item create with the Guild Cloak System
When an item is create by the Guild Cloak System, it is assigned a "m_idGuild" parameter to it.
You will have to check the "pItemElem->m_idGuild" of each item who isn't a Cloak, to found what have been create using this exploit.
You can use many different method, like using the "GetOneItem" function, or simple add a code to remove item who isn't a cloak but have a m_idGuild param != 0.
In the function "CDPCacheSrvr::OnGuildPenya" from the files CoreServer/DPCacheSrvr.cpp add the following "check".
Code:
if( dwType < 0 || dwType >= MAX_GM_LEVEL ) return;
In the function "CDPSrvr::OnCreateGuildCloak" from the files WorldServer/DPSrvr.cpp change this code.
Code:
if( pGuild->m_dwLogo == 0 || pGuild->IsMaster( pUser->m_idPlayer ) == FALSE )
{
if( pGuild->m_dwLogo == 0 )
{
pUser->AddDefinedText( TID_GAME_GUILDSETTINGLOGO, "" );
}
else
{
pUser->AddDefinedText( TID_GAME_GUILDONLYMASTERLOGO, "" );
}
return;
}
Code:
if( pGuild->m_dwLogo == 0 || pGuild->m_dwLogo > 20 || pGuild->IsMaster( pUser->m_idPlayer ) == FALSE )
{
if( pGuild->m_dwLogo == 0 )
{
pUser->AddDefinedText( TID_GAME_GUILDSETTINGLOGO, "" );
}
else
{
pUser->AddDefinedText( TID_GAME_GUILDONLYMASTERLOGO, "" );
}
return;
}
Use the following request on the CHARACTER_01_DBF.
Code:
UPDATE GUILD_TBL SET m_dwLogo = '0' where m_dwLogo > 20
Use the following request on the LOGGING_01_DBF.
Code:
SELECT m_idGuild, m_idPlayer, serverindex, m_Item, State, s_date, Item_count, Item_UniqueNo, SEQ FROM LOG_GUILD_BANK_TBL WHERE (State = 'C') AND (m_Item > 5000)
4.2 How to found item create with the Guild Cloak System
When an item is create by the Guild Cloak System, it is assigned a "m_idGuild" parameter to it.
You will have to check the "pItemElem->m_idGuild" of each item who isn't a Cloak, to found what have been create using this exploit.
You can use many different method, like using the "GetOneItem" function, or simple add a code to remove item who isn't a cloak but have a m_idGuild param != 0.