Code:
--- [COLOR="Red"]WorldServer.ini [/COLOR]---
NO_MEMBER_TRADE
NO_TEAM_TRADE
NO_ADMIN_TRADE
--- [COLOR="#ff0000"]VersionCommon.h [/COLOR]---
#define __NO_TRADE
--- [COLOR="#ff0000"]DpSrvr.cpp[/COLOR] ---
void CDPSrvr::OnTrade( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
OBJID objidTrader;
ar >> objidTrader;
CWorld* pWorld;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) && pUser->m_vtInfo.GetOther() == NULL )
{
CMover* pTrader = prj.GetMover( objidTrader );
if( IsValidObj( pTrader ) && pTrader->GetWorld() && pTrader->m_vtInfo.GetOther() == NULL )
{
if( pTrader->IsPlayer() ) // pc
{
#ifdef __NO_TRADE
if(g_eLocal.GetState(EVE_NO_MEMBER_TRADE))
{
if( pUser->m_dwAuthorization == AUTH_GENERAL || pTrader->m_dwAuthorization == AUTH_GENERAL)
{
pUser->AddText("Trade wurde abgeschaltet!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_OBSERVER || pTrader->m_dwAuthorization == AUTH_OBSERVER)
{
pUser->AddText("Trade wurde abgeschaltet!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_LOGCHATTING || pTrader->m_dwAuthorization == AUTH_LOGCHATTING)
{
pUser->AddText("Trade wurde abgeschaltet!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_JOURNALIST || pTrader->m_dwAuthorization == AUTH_JOURNALIST)
{
pUser->AddText("Trade wurde abgeschaltet!");
return;
}
}
if(g_eLocal.GetState(EVE_NO_TEAM_TRADE))
{
if( pUser->m_dwAuthorization == AUTH_HELPER || pTrader->m_dwAuthorization == AUTH_HELPER)
{
pUser->AddText("Gamemasters or Administrators can't trade!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER || pTrader->m_dwAuthorization == AUTH_GAMEMASTER)
{
pUser->AddText("Gamemasters or Administrators can't trade!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER2 || pTrader->m_dwAuthorization == AUTH_GAMEMASTER2)
{
pUser->AddText("Gamemasters or Administrators can't trade!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER3 || pTrader->m_dwAuthorization == AUTH_GAMEMASTER3)
{
pUser->AddText("Gamemasters or Administrators can't trade!");
return;
}
else if( pUser->m_dwAuthorization == AUTH_OPERATOR || pTrader->m_dwAuthorization == AUTH_OPERATOR)
{
pUser->AddText("Gamemasters or Administrators can't trade!");
return;
}
}
if(g_eLocal.GetState(EVE_NO_ADMIN_TRADE))
{
if( pUser->m_dwAuthorization == AUTH_ADMINISTRATOR || pTrader->m_dwAuthorization == AUTH_ADMINISTRATOR )
{
pUser->AddText("Administrators can't trade!");
return;
}
}
#endif
#if __VER >= 8 // 8Â÷ µà¾ó 061226 ma
if( 0 < pUser->m_nDuel || 0 < pTrader->m_nDuel )
{
return;
}
#endif // __VER >= 8 // 8Â÷ µà¾ó 061226 ma
//°³ÀλóÁ¡ Áß¿¡´Â °Å·¡ ºÒ°¡
if( pUser->m_vtInfo.VendorIsVendor() || pUser->m_vtInfo.IsVendorOpen() ||
pTrader->m_vtInfo.VendorIsVendor() || pTrader->m_vtInfo.IsVendorOpen() )
{
return; //
}
#ifdef __S_SERVER_UNIFY
if( pUser->m_bAllAction == FALSE || ((CUser*)pTrader)->m_bAllAction == FALSE )
return;
#endif // __S_SERVER_UNIFY
if( pUser->m_bBank || pTrader->m_bBank )
{
pUser->AddDefinedText( TID_GAME_TRADELIMITPC, "" );
return; //
}
if( pUser->m_bGuildBank || pTrader->m_bGuildBank )
{
pUser->AddDefinedText( TID_GAME_TRADELIMITPC, "" );
return; //
}
pUser->m_vtInfo.SetOther( pTrader );
pTrader->m_vtInfo.SetOther( pUser );
pUser->AddTrade( (CUser*)pTrader, pUser->m_idPlayer );
( (CUser*)pTrader )->AddTrade( pUser, pUser->m_idPlayer );
}
}
}
}
--- [COLOR="#ff0000"]WorldServer.cpp[/COLOR] ---
BOOL Script( LPCSTR lpszFileName )
{
g_eLocal.SetState( EVE_RESPAWN, 1 );
CScanner s;
if( s.Load( lpszFileName ) == FALSE)
{
Error("Fail to open file - %s", lpszFileName );
return FALSE;
}
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == "ResourceFolder" )
{
s.GetToken();
if( !SetCurrentDirectory( s.Token ) )
{
Error( "Folder not found, %s", s.Token );
return FALSE;
}
}
else if( s.Token == "Key" )
{
g_uKey = (DWORD)s.GetNumber();
#ifdef __S8_SERVER_PORT
g_uIdofMulti = g_uKey % 100;
#else // __S8_SERVER_PORT
g_uIdofMulti = g_uKey / 100;
#endif // __S8_SERVER_PORT
}
else if( s.Token == "Core" )
{
s.GetToken();
strcpy( g_szCoreAddr, s.Token );
}
else if( s.Token == "DB" )
{
s.GetToken();
strcpy( g_szDBAddr, s.Token );
}
else if( s.Token == "Account" )
{
s.GetToken();
/*
#ifdef __GIFTBOX0213
lstrcpy( s_szAccountAddr, s.Token );
#endif // __GIFTBOX0213
*/
}
else if( s.Token == "Heartbeat" )
{
s.GetToken();
strcpy( g_sHeartbeat, s.Token );
}
else if( s.Token == "18" )
{
g_eLocal.SetState( EVE_18, 1 ); // 18¼¼ ¼*¹ö
}
else if( s.Token == "PK" )
{
g_eLocal.SetState( EVE_PK, 1 );
}
else if( s.Token == "PKCOST" )
{
g_eLocal.SetState( EVE_PKCOST, 1 );
}
else if( s.Token == "STEAL" )
{
g_eLocal.SetState( EVE_STEAL, 1 );
}
else if (s.Token == "GUILDBANK")
{
g_eLocal.SetState( ENABLE_GUILD_INVENTORY, 1 );
}
else if( s.Token == "GUILDWAR" )
{
g_eLocal.SetState( EVE_GUILDWAR, 1 );
}
else if( s.Token == "DROPITEM_REMOVE" )
{
g_eLocal.SetState( EVE_DROPITEMREMOVE, 1 );
}
else if( s.Token == "SCHOOL" )
{
//g_eLocal.SetState( EVE_SCHOOL, 1 );
}
else if( s.Token == "GUILDCOMBAT")
{
g_eLocal.SetState( EVE_GUILDCOMBAT, 1 );
}
else if( s.Token == "WORMON" )
{
g_eLocal.SetState( EVE_WORMON, 1 );
}
else if( s.Token == "respawn" )
{
g_eLocal.SetState( EVE_RESPAWN, (BYTE)s.GetNumber() );
}
#ifdef __S_RECOMMEND_EVE
else if( s.Token == "RECOMMEND" )
{
g_eLocal.SetState( EVE_RECOMMEND, 1 );
}
#endif // __S_RECOMMEND_EVE
#if __VER >= 11 // __GUILD_COMBAT_1TO1
else if( s.Token == "GUILDCOMBAT1TO1" )
{
g_eLocal.SetState( EVE_GUILDCOMBAT1TO1, 1 );
}
#endif // __GUILD_COMBAT_1TO1
#ifdef __JEFF_11_4
else if( s.Token == "ARENA" )
{
g_eLocal.SetState( EVE_ARENA, 1 );
}
#endif // __JEFF_11_4
#if __VER >= 12 // __SECRET_ROOM
else if( s.Token == "SECRETROOM" )
{
g_eLocal.SetState( EVE_SECRETROOM, 1 );
}
#endif // __SECRET_ROOM
#if __VER >= 13 // __RAINBOW_RACE
else if( s.Token == "RAINBOWRACE" )
{
g_eLocal.SetState( EVE_RAINBOWRACE, 1 );
}
#endif // __RAINBOW_RACE
#ifdef __NO_TRADE
else if ( s.Token == "NO_MEMBER_TRADE")
{
g_eLocal.SetState( EVE_NO_MEMBER_TRADE, 1 );
}
else if ( s.Token == "NO_TEAM_TRADE")
{
g_eLocal.SetState( EVE_NO_TEAM_TRADE, 1 );
}
else if ( s.Token == "NO_ADMIN_TRADE")
{
g_eLocal.SetState( EVE_NO_ADMIN_TRADE, 1 );
}
#endif
s.GetToken();
}
return TRUE;
}
--- [COLOR="#ff0000"]flyffevent.h[/COLOR] ---
enum
{
EVE_0401A, EVE_18, ENABLE_GUILD_INVENTORY,
EVE_GUILDWAR,
EVE_SCHOOL, EVE_SCHOOL_BATTLE,
EVE_NOFLYMONSTER, // ºñÇà ¸ó½ºÅÍ Á¦°Å
EVE_NODARKON, // ´ÙÄÜ Á¦°Å
EVE_NOGUILD, // ±æµå Á¦°Å
EVE_WORMON,
EVE_RESPAWN,
EVE_PK,
EVE_PKCOST,
EVE_STEAL,
EVE_EVENT0913,
EVE_GUILDCOMBAT,
EVE_DROPITEMREMOVE,
EVE_EVENT1206,
EVE_EVENT1219,
EVE_EVENT0127,
EVE_EVENT0214,
#ifdef __S_RECOMMEND_EVE
EVE_RECOMMEND,
#endif // __S_RECOMMEND_EVE
#if __VER >= 11 // __GUILD_COMBAT_1TO1
EVE_GUILDCOMBAT1TO1,
#endif // __GUILD_COMBAT_1TO1
#ifdef __JEFF_11_4
EVE_ARENA,
#endif // __JEFF_11_4
EVE_SECRETROOM, // 12Â÷ ºñ¹ÐÀÇ ¹æ
EVE_RAINBOWRACE,
#ifdef __NO_TRADE
EVE_NO_MEMBER_TRADE,
EVE_NO_TEAM_TRADE,
EVE_NO_ADMIN_TRADE,
#endif
};