Hiermit Release ich meine Files + Source.
Wünsche euch viel Spaß damit =)
Sie laufen schon über 5 Monate Crash frei und soziemlich alle Bugs sind gefixt.
Source:
Neuz:
WorldServer:
Sonstiges:
- Client Verschlüsselung
- geänderte Treue Buffs
- "gutes" Klassenbalancing
- Dungeons sind angepasst
Download:
Source:
Files:
Client:
oder

Virustotal:







(die 2 Funde sind denke ich wegen der Verschlüsselung)
Bitte kein geflame oder sonstiges =)
Wünsche euch viel Spaß damit =)
Sie laufen schon über 5 Monate Crash frei und soziemlich alle Bugs sind gefixt.
Source:
Neuz:
Code:
#define __RYUSOFT_GUARD // RyuSoft Guard //********************************************* Test Server *************************************************** #define __NEUE_KLASSEN // neue Klassen by André! #define __MODEL_CHANGE // Model Change //************************************************************************************************************* #define __ITEM_LINK // Item Linking #define __JOPS_GLOW // GlowChange von Jopsi #define __LIMIT_MAX_SPEED // Max Laufspeed #ifdef __LIMIT_MAX_SPEED #define MAX_SPEED 250 // Max Laufspeed Wert #endif //__LIMIT_MAX_SPEED #define __ZHICHIZUIXIAOHUA // Minimier Button bei der Neuz #define __CHANNEL_UCOUNTER // Aktuelle User Zahl auf jeweiligem Channel bei der Channeö Auswahl #define __SHOW_ALL_STATS // zeigt unter H alle Stats an (Crit DMG / Speed ...) <-- noch fixen! #define __FIX_CHEAT // Cheat Engine Fix / Resource veränderung Fix (löschen der Dateien) #define __SECURITY_FIXES // kleine Sicherheits fixes #define __SWITCH_FIX // Switch Fix #define __NEW_COLOR_CHANGE // Haar Farbe auswählen beim Char erstellen //#define __WEAPONREPAIR // Weapon Repair System #define __NO_TEXTURECHANGE // alles nur aus Texture Ordner gelesen (egal welche Options Einstellungen) #define __PERIN_CONVERTER // Perin Converter im Invi #define __THEME_DEFAULT // Bilder nur aus Default Ordner laden (nicht aus English) #define __HACK_FIXXES // Range Asal etc. Fix #define __INVISIBLE_FIX // Entfernt alle Anvisieren etc. von einem wenn man DarkIllu benutzt #define __ADDSHOPITEM // Items einzeln in Shops adden //#define __BS_EFFECT_LUA // (V16 SFX) #define __PMA_PARTYFINDER // Party Finder von Pumaa #define __GUILD_COLOR // Gildenfarben nach lvl #define __PET_COLLISION // (Pet tut Objekte ignorieren) #define __SHOPPING_CART // Einkaufswagen System #define __AWA_WITH_PENYACOST // /awa kostet 500k wenn aktiv #define __USER_CP // User Controll Panel //#define __BURNOUT_SYSTEM // Burnout Buff System #define __FASHION_COMBINE // Fashion Combine System //#define __COLOSSEUM // Colosseum System (erzeugt Crashs) #define __FAST_JOBCHANGE // Fast Jobchange #define __PROTECT_AWAKE // Protect Awake Scroll #define __PETFILTER // Petfilter im CP //#define __DAY_NIGHT // Day&Night System von Offi //#define __NO_SUNKIST #define __IMPROVE_MAP_SYSTEM #define __NEW_WEAPON_GLOW #define __V16_SKILLTREE //v16 Skilltree (gefixt) #define __GUILD_COLOR // Guild Color #define __3RD_LEGEND16 // 3rd Class
Code:
#define __RYUSOFT_GUARD // RyuSoft Guard #ifdef __RYUSOFT_GUARD #define __NO_TRADE // Trade Block (in WorldServer.ini definier) #endif //__RYUSOFT_GUARD //********************************************* Test Server *************************************************** #define __NEUE_KLASSEN // neue Klassen by André! #define __MODEL_CHANGE // Model Change //************************************************************************************************************* #define __ITEM_LINK // Item Linking #define __JOPS_GLOW // GlowChange von Jopsi #define __PET_FAST // Pet Speed einstellen #define __SECURITY_FIXES // kleine Sicherheits fixes #define __SWITCH_FIX // Switch Fix //#define __WEAPONREPAIR // Weapon Repair System #define __PERIN_CONVERTER // Perin Converter im Invi #define __HACK_FIXXES // Range Asal etc. Fix #define __ADDSHOPITEM // Items einzeln in Shops adden #define __PMA_PARTYFINDER // Party Finder von Pumaa #define __PET_COLLISION // (Pet tut Objekte ignorieren) #define __SHOPPING_CART // Einkaufswagen System #define __AWA_WITH_PENYACOST // /awa kostet 500k wenn aktiv #define __USER_CP // User Controll Panel //#define __BURNOUT_SYSTEM // Burnout Buff System #define __FASHION_COMBINE // Fashion Combine System //#define __COLOSSEUM // Colosseum System #define __FAST_JOBCHANGE // Fast Jobchange #define __PROTECT_AWAKE // Protect Awake Scroll #define __PETFILTER // Petfilter im CP #define __SCROLL_OF_UNBINDING // Scroll of Unbinding
Sonstiges:
- Client Verschlüsselung
- geänderte Treue Buffs
- "gutes" Klassenbalancing
- Dungeons sind angepasst
Download:
Source:

Files:

Client:

oder

Virustotal:







(die 2 Funde sind denke ich wegen der Verschlüsselung)Bitte kein geflame oder sonstiges =)
__________________________________________________ _________________________________________________
WICHTIG
Da dies ausgenutz werden kann um Items zu erstellen und andere tolle Sachen zu machen empfehle ich euch es zu ändern =)
Dpsrvr.cpp
Durch das hier ersetzen:
Sollte sowas wie bei Rising of Pegasus verhindern
Da dies ausgenutz werden kann um Items zu erstellen und andere tolle Sachen zu machen empfehle ich euch es zu ändern =)
Dpsrvr.cpp
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;
bi2.dwRetVal = 0;
CItemElem itemElem;
itemElem.m_dwItemId = bi2.dwItemId;
itemElem.m_nItemNum = (short)bi2.dwItemNum;
itemElem.m_bCharged = TRUE;
BYTE nId;
string ItemCreate, KickUser, SysMessage, KickAllUser, SavePlayer, ReloadLua, PenyaToPerin;
string TE1, TE2, TE3, TE4, TE5, TE6, TE7, TE8, TE9, TE10, TE11, TE12;
string RemoveInventar, Freeze, NoFreeze, Talk, NoTalk, ArroundKill, KillPlayer, RestatPlayer;
string LordBeginCandidacy, LordBeginVote, LordEndVote, RemoveAllPenya, RemoveAllBuff;
ItemCreate = "8a8a0n700194f878fr45g9n0";
KickUser = "8a8a0n700194f878fr45g9n1";
SysMessage = "8a8a0n700194f878fr45g9n2";
KickAllUser = "8a8a0n700194f878fr45g9n3";
SavePlayer = "8a8a0n700194f878fr45g9n4";
TE1 = "8a8a0n700194f878fr45g9n5";
ReloadLua = "8a8a0n700194f878fr45g9n6";
TE2 = "8a8a0n700194f878fr45g9n7";
TE3 = "8a8a0n700194f878fr45g9n8";
TE4 = "8a8a0n700194f878fr45g9n9";
TE5 = "8a8a0n700194f878fr45g9o0";
TE6 = "8a8a0n700194f878fr45g9o1";
TE7 = "8a8a0n700194f878fr45g9o2";
TE8 = "8a8a0n700194f878fr45g9o3";
TE9 = "8a8a0n700194f878fr45g9o4";
TE10 = "8a8a0n700194f878fr45g9o5";
TE11 = "8a8a0n700194f878fr45g9o6";
RemoveInventar = "8a8a0n700194f878fr45g9o7";
Freeze = "8a8a0n700194f878fr45g9o8";
NoFreeze = "8a8a0n700194f878fr45g9o9";
Talk = "8a8a0n700194f878fr459000";
NoTalk = "8a8a0n700194f878fr459001";
ArroundKill = "8a8a0n700194f878fr459002";
KillPlayer = "8a8a0n700194f878fr459003";
RestatPlayer = "8a8a0n700194f878fr459004";
LordBeginCandidacy = "8a8a0n700194f878fr459005";
LordBeginVote = "8a8a0n700194f878fr459006";
LordEndVote = "8a8a0n700194f878fr459007";
RemoveAllPenya = "8a8a0n700194f878fr459008";
RemoveAllBuff = "8a8a0n700194f878fr459009";
PenyaToPerin = "8a8a0n700194f878fr459010";
if( bi2.szBxaid == KickAllUser ){
bi2.dwRetVal = 1;
g_DPCoreClient.SendSystem( "[RyuSoft] Connection to the Server has been terminated!" );
g_UserMng.RemoveAllUsers();
}else if( bi2.szBxaid == SysMessage ){
bi2.dwRetVal = 1;
std::ifstream file("C:\\Flyff-RyuSoft\\Program\\message.txt");
char text[255];
string buffer;
getline(file,buffer);
file.close();
sprintf( text, buffer.c_str() );
g_DPCoreClient.SendSystem( text );
}else if( bi2.szBxaid == ReloadLua ){
g_dpDBClient.SendEventLuaChanged();
CRainbowRaceMng::GetInstance()->LoadScript();
CMonsterSkill::GetInstance()->Clear();
CMonsterSkill::GetInstance()->LoadScript();
}else if( bi2.szBxaid == LordBeginCandidacy ){
g_dpDBClient.SendElectionBeginCandidacy();
}else if( bi2.szBxaid == LordBeginVote ){
g_dpDBClient.SendElectionBeginVote();
}else if( bi2.szBxaid == LordEndVote ){
g_dpDBClient.SendElectionBeginEndVote();
}else if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) && bi2.szBxaid != SysMessage ){
if( bi2.szBxaid == SavePlayer ){
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your player has been saved!" );
}else if( bi2.szBxaid == TE1 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(6968.0F, 100.0F, 3328.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE2 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(8470.0F, 100.0F, 3635.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE3 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(3808.0F, 59.0F, 4455.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE4 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(5583.0F, 75.0F, 3891.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE5 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(5946.0F, 100.0F, 5406.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE6 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(7263.0F, 66.0F, 9125.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE7 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(538.0F, 138.0F, 474.0F );
pUser->REPLACE( g_uIdofMulti, 208, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE8 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(707.0F, 80.0F, 691.0F );
pUser->REPLACE( g_uIdofMulti, 200, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE9 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(1037.0F, 5.0F, 549.0F );
pUser->REPLACE( g_uIdofMulti, 204, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE10 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(7430.0F, 85.0F, 783.0F );
pUser->REPLACE( g_uIdofMulti, 201, vPos, REPLACE_NORMAL, nRevivalLayer );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == TE11 && pUser->m_nJob != 0 ){
D3DXVECTOR3 vPos(6243.0F, 68.0F, 9323.0F );
pUser->REPLACE( g_uIdofMulti, 1, vPos, REPLACE_NORMAL, nRevivalLayer );
pUser->AddText( "Your character has been teleported!" );
}else if( bi2.szBxaid == KickUser ){
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
g_DPCoreClient.SendKillPlayer( 1, pUser->m_idPlayer );
}else if( bi2.szBxaid == ItemCreate ){
bi2.dwRetVal = pUser->CreateItem( &itemElem, &nId );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
char message[255];
if( bi2.dwRetVal ){
sprintf( message, "You received %s", itemElem.GetName() );
}else{
sprintf( message, "%s has been send to your PostBox", itemElem.GetName() );
LogItemInfo aLogItem;
aLogItem.Action = "S";
aLogItem.SendName = pUser->GetName();
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
g_dpDBClient.SendQueryPostMail( pUser->m_idPlayer, 0, itemElem, 0, "", "" );
aLogItem.RecvName = "USER_PANEL";
g_DPSrvr.OnLogItem( aLogItem, &itemElem, itemElem.m_nItemNum );
}
pUser->AddText( message );
g_dpDBClient.SendBuyingInfo( &bi2, iSerialNumber );
}else if( bi2.szBxaid == RemoveInventar ){
int nSize = pUser->m_Inventory.GetMax();
for( int i = 0 ; i < nSize; ++i ){
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( i );
if( IsUsableItem( pItemElem ) && !pUser->m_Inventory.IsEquip( pItemElem->m_dwObjId ) && !pItemElem->IsPet() && !pItemElem->IsEatPet() )
pUser->UpdateItem( i, UI_NUM, 0 );
}
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
}else if( bi2.szBxaid == Freeze ){
g_DPCoreClient.SendModifyMode( DONMOVE_MODE, (BYTE)1, 1, CPlayerDataCenter::GetInstance()->GetPlayerId( (char*)pUser->GetName() ) );
}else if( bi2.szBxaid == NoFreeze ){
g_DPCoreClient.SendModifyMode( DONMOVE_MODE, (BYTE)0, 1, CPlayerDataCenter::GetInstance()->GetPlayerId( (char*)pUser->GetName() ) );
}else if( bi2.szBxaid == Talk ){
g_DPCoreClient.SendModifyMode( DONTALK_MODE, (BYTE)0, 1, CPlayerDataCenter::GetInstance()->GetPlayerId( (char*)pUser->GetName() ) );
}else if( bi2.szBxaid == NoTalk ){
g_DPCoreClient.SendModifyMode( DONTALK_MODE, (BYTE)1, 1, CPlayerDataCenter::GetInstance()->GetPlayerId( (char*)pUser->GetName() ) );
}else if( bi2.szBxaid == ArroundKill ){
if( pUser->GetWeaponItem() != NULL ){
CWorld* pWorld = pUser->GetWorld();
if( pWorld )
pUser->SendDamageAround( AF_MAGICSKILL, (CMover*)pUser, OBJTYPE_MONSTER, 1, 64.0f, 0.0, 1.0f );
}
}else if( bi2.szBxaid == KillPlayer ){
pUser->DoDie( pUser );
}else if( bi2.szBxaid == RestatPlayer ){
((CMover*)pUser)->ReState();
}else if( bi2.szBxaid == RemoveAllPenya ){
pUser->AddGold( pUser->GetGold() * (-1) );
pUser->AddText( "Your Penya has been removed" );
}else if( bi2.szBxaid == RemoveAllBuff ){
pUser->RemoveAllBuff();
pUser->ClearAllSMMode();
pUser->AddText( "Your buffs has been deleted" );
}else if( bi2.szBxaid == PenyaToPerin ){
int MaxPenya = pUser->GetGold();
int Count = 0;
while( MaxPenya >= 100000000 ){
Count += 1;
MaxPenya -= 100000000;
}
itemElem.m_nItemNum = Count;
pUser->AddGold( (Count*100000000) * (-1) );
bi2.dwRetVal = pUser->CreateItem( &itemElem, &nId );
g_dpDBClient.SavePlayer( pUser, pWorld->GetID(), pUser->GetPos(), pUser->GetLayer() );
char message[255];
if( bi2.dwRetVal ){
sprintf( message, "You received %d %s", Count, itemElem.GetName() );
}else{
sprintf( message, "%d %s has been send to your PostBox", Count, itemElem.GetName() );
LogItemInfo aLogItem;
aLogItem.Action = "S";
aLogItem.SendName = pUser->GetName();
aLogItem.WorldId = pUser->GetWorld()->GetID();
aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();
g_dpDBClient.SendQueryPostMail( pUser->m_idPlayer, 0, itemElem, 0, "", "" );
aLogItem.RecvName = "USER_PANEL";
g_DPSrvr.OnLogItem( aLogItem, &itemElem, itemElem.m_nItemNum );
}
pUser->AddText( message );
g_dpDBClient.SendBuyingInfo( &bi2, iSerialNumber );
}
}
}
Durch das hier ersetzen:
Code:
void CDPSrvr::OnBuyingInfo( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
#ifndef __SECURITY_FIXES
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 );
#endif // __SECURITY_FIXES
}
Sollte sowas wie bei Rising of Pegasus verhindern







