Owndx3 (20.05.11)
Da Morgen ja der Hack releast werden soll kommt hier der Fixx von YannickMAMA also alle Thx gehen an ihm !.
1. Ihr geht zuerst in die DPSrvr.cpp
2. Ihr sucht folgende Funktionen:
CDPSrvr::OnModifyMode
CDPSrvr::OnSummonPlayer
CDPSrvr::OnTeleportPlayer
3. Nun ändert diesen Coden:
#ifdef __HACK_0516
DPID dpid;
ar >> dpid;
if( pUser->m_Snapshot.dpidUser != dpid )
{
Error( "[%s] try to hack : PACKETTYPE_MODIFYMODE", pUser->GetName() );
return;
}
#endif // __HACK_0516
zu diesen code:
#ifdef __HACK_0516
DPID dpid;
ar >> dpid;
if( pUser->m_Snapshot.dpidUser != dpid )
{
Error( "[%s] try to hack : PACKETTYPE_MODIFYMODE", pUser->GetName() );
return;
}
if( !pUser->IsAuthHigher(AUTH_GAMEMASTER) )
{
Error( "[%s] try to hack with dpid : PACKETTYPE_MODIFYMODE", pUser->GetName() );
return;
}
#endif // __HACK_0516
Bei OnModifyMode bin ich mir nicht genau sicher ob dies bei DARK ILLU benutzt wird oder iwo anderst im Source.
Ihr könnt da auch hineditieren:
if( dwMode == ONEKILL_MODE && !pUser->IsAuthHigher(AUTH_GAMEMASTER) )
{ Error("..."); Return; }
.................................................. .............................
Weiter gehts!
Fixx für Items erstellen!
Sucht einfach die funktion CDPSrvr::OnBuyingInfo in der DPSrvr.cpp und kommentiert diese aus (nur den bereich zwischen den geschweiften "{}" klammern.
Credits: YannickMAMA 99%
Credits: *hust* Soul 1%
Lesen kannst du nicht oder ? Das kommt alles von Yannick sag ihm das, Ich habe es hier nur releast weil er Banned ist.
Und da er mit Yannick nicht redet sollst du es für ihn übernehmen. Ich meine, bist ja schon der Lakai eines Herrn. Wieso, dann nicht zweier?
Ansonsten einfach den AH von dem Tom downloaden, da ist der Fix bei der Free- Version auch dabei!
Und da der Tom die Lücken gefunden hat, weiß er sicherlich mehr über den Protect ...
XDDD Ja ne ist klar es wurde bei Elite Releast und ich dachte es ist eine gute idee, Aber wenn ich so was schon lese muss ich lachen nix wissen aber so ein mist schreiben.
CDPSrvr::OnBuyingInfo
Sollte man einfach ne Überprüfung oder als Notlösung ne Dummy Variable mit irgendeinem Inhalt wie dfh8gsdf8 reinhauen, da das ganze sowieso von Trans zu World geht und der Spieler es nicht einsehen kann :)
verstehe den teil nicht
wo muss ich das ausklammern ?Weiter gehts!
Fixx für Items erstellen!
Sucht einfach die funktion CDPSrvr::OnBuyingInfo in der DPSrvr.cpp und kommentiert diese aus (nur den bereich zwischen den geschweiften "{}" klammern.
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
g_dpDBClient.DestroyPlayer( dpidUser );
return;
BUYING_INFO2 bi2;
ar.Read( (void*)&bi2, sizeof(BUYING_INFO2) );
CWorld* pWorld;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
SERIALNUMBER iSerialNumber = 0;
if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) )
{
bi2.dwRetVal = 0;
CItemElem itemElem;
itemElem.m_dwItemId = bi2.dwItemId;
itemElem.m_nItemNum = (short)bi2.dwItemNum;
itemElem.m_bCharged = TRUE;
BYTE nId;
bi2.dwRetVal = pUser->CreateItem( &itemElem, &nId );
#ifdef __LAYER_1015
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
#else // __LAYER_1015
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos() );
#endif // __LAYER_1015
if( bi2.dwRetVal )
{
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( nId );
if( pItemElem )
{
iSerialNumber = pItemElem->GetSerialNumber();
pItemElem->m_bCharged = TRUE;
if( bi2.dwSenderId > 0 )
{
// %sÀ» %s´ÔÀ¸·ÎºÎÅÍ ¼±¹° ¹Þ¾Ò½À´Ï´Ù.
}
}
}
}
Ich würde es ja so machen:
Dann hat sich das ganze mit dem Namen ändern etc auch schon geklärt.
if( !pUser->IsAuthHigher(AUTH_GAMEMASTER) && !(dwMode == TRANSPARENT_MODE && pUser->HasBuff( BUFF_SKILL, SI_ACR_SUP_DARKILLUSION )) && !(dwMode == MODE_OPTION_DONT_RENDER_MASK) && !(dwMode == PVPCONFIRM_MODE) && !(dwMode == FREEPK_MODE) && !(dwMode == EQUIP_DENIAL_MODE))
{
Error( "[%s] try to hack : PACKETTYPE_MODIFYMODE", pUser->GetName() );
return;
}
könnte mir das jemand trotzdem speziell dafür jetzt mal zeigen :P ?
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
Hinter der Klammer { ein /* setzen.
Vor dem letzten } ein */ setzen.
Sieht in etwa so aus
{
/*
blahblah
*/
}
an welcher stelle muss ich es hier machen hab es unterschiedlich probiert an {} klammern aber geht nicht kriege zich errors :o
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
g_dpDBClient.DestroyPlayer( dpidUser );
return;
BUYING_INFO2 bi2;
ar.Read( (void*)&bi2, sizeof(BUYING_INFO2) );
CWorld* pWorld;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
SERIALNUMBER iSerialNumber = 0;
if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) )
{
bi2.dwRetVal = 0;
CItemElem itemElem;
itemElem.m_dwItemId = bi2.dwItemId;
itemElem.m_nItemNum = (short)bi2.dwItemNum;
itemElem.m_bCharged = TRUE;
BYTE nId;
bi2.dwRetVal = pUser->CreateItem( &itemElem, &nId );
#ifdef __LAYER_1015
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
#else // __LAYER_1015
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos() );
#endif // __LAYER_1015
if( bi2.dwRetVal )
{
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( nId );
if( pItemElem )
{
iSerialNumber = pItemElem->GetSerialNumber();
pItemElem->m_bCharged = TRUE;
if( bi2.dwSenderId > 0 )
{
// %sÀ» %s´ÔÀ¸·ÎºÎÅÍ ¼±¹° ¹Þ¾Ò½À´Ï´Ù.
}
}
}
}
frage bleibt noch bestehen..
Schwer oder?Code:void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) {/* BUYING_INFO2 bi2; ar.Read( (void*)&bi2, sizeof(BUYING_INFO2) ); CWorld* pWorld; CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser ); SERIALNUMBER iSerialNumber = 0; if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) ) { bi2.dwRetVal = 0; CItemElem itemElem; itemElem.m_dwItemId = bi2.dwItemId; itemElem.m_nItemNum = (short)bi2.dwItemNum; itemElem.m_bCharged = TRUE; BYTE nId; bi2.dwRetVal = pUser->CreateItem( &itemElem, &nId ); #ifdef __LAYER_1015 g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() ); #else // __LAYER_1015 g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos() ); #endif // __LAYER_1015 if( bi2.dwRetVal ) { CItemElem* pItemElem = pUser->m_Inventory.GetAtId( nId ); if( pItemElem ) { iSerialNumber = pItemElem->GetSerialNumber(); pItemElem->m_bCharged = TRUE; if( bi2.dwSenderId > 0 ) { // %s을 %s님으로부터 선물 받았습니다. } } } } g_dpDBClient.SendBuyingInfo( &bi2, iSerialNumber ); // FILEOUT( "buyinginfo.txt", "dwServerIndex = %d\tdwPlayerId = %d\tdwItemId = %d\tdwItemNum = %d\n", // bi2.dwServerIndex, bi2.dwPlayerId, bi2.dwItemId, bi2.dwItemNum ); static char lpOutputString[260] = { 0, }; sprintf( lpOutputString, "dwServerIndex = %d\tdwPlayerId = %d\tdwItemId = %d\tdwItemNum = %d", bi2.dwServerIndex, bi2.dwPlayerId, bi2.dwItemId, bi2.dwItemNum ); OutputDebugString( lpOutputString ); */}
Owndx3 (20.05.11)
Lesezeichen