Deutsche Übersetzung für euch:
Ok leute, da ich derzeit nichts zu tun habe werde ich hier releasen wie ihr jedes crash/dupe Packet blocken und die/den ID/Nicknamen der Person, die versucht euren Server zu crashen, zu speichern.
Als erstes benötigt ihr ein installiertes VS.NET 2003 mit Service Pack 1 und den/die Flyff Source
Um diese packete zu blocken, müsst ihr due DPServer.cpp öffnen, welche sich im WORLDSERVER ordner befinded.
Equiptment Crash
Suche nach:
Code:
ar >> dwData >> objid >> nPart;
if( nPart >= MAX_HUMAN_PARTS )
return;
Füge unter das gefundene hinzu:
Code:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
//Crash packet
if ( nPart > 30 || dwData < 0 ) {
Error( "CDPSrvr::OnDoUseItem : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d]",
pUser->m_idPlayer, pUser->GetName(), dwData, objid, nPart );
return;
}
Und kommentiere das erste
Code:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
unter dem eingefügtem aus.
Buy Crash
Du musst dieses 2x machen!! Einmal für normale Käufe und einmal für Käufe mit Red Chips!!
Suche nach:
Code:
ar >> cTab >> nId >> nNum >> dwItemId;
if( cTab >= MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
return;
Füge darunter hinzu:
Code:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
//CRASH
if( cTab > 3 || cTab < 0 || nId < 0 || nNum <= 0 || nNum > 9999 || dwItemId < 0 ) {
Error( "CDPSrvr::OnBuyItem : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
pUser->m_idPlayer, pUser->GetName(), cTab, nId, nNum, dwItemId );
return;
}
Und kommentiere das erste
Code:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
unter dem eingefügtem aus.
Pocket Crash
Suche nach:
Code:
ar >> nPocket1 >> nItem >> nNum >> nPocket2;
if( nPocket1 == nPocket2 )
return;
Füge darunter hinzu:
Code:
//DUPE CODE
if( nNum <= 0 ) {
Error( "CDPSrvr::OnMoveItemOnPocket : Dupe Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
return;
}
//CRASH
if( nItem < 0 || nPocket2 > 2 || nPocket1 < -1 || nPocket1 > 52 ) {
Error( "CDPSrvr::OnMoveItemOnPocket : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
return;
}
Entschuldigt bitte falls ein paar English-fehler im Text sind, da ich Brasilianer bin.
Ach, ich würde es gut finden wenn es jemand auf Deutsch übersetzen kann
kkthbye