[Source] Trade Block System

Results 1 to 15 of 15
  1. #1
    Apprentice Thecoreman is offline
    MemberRank
    Feb 2011 Join Date
    netherlandsLocation
    11Posts

    [Source] Trade Block System

    Blocks Member/Team/Admin Trade, have fun with it
    Code:
    WORLD SERVER:
    
    --- README ---
    
    ITS NOT TESTED ! BUT IT MUST STILL WORK
    
    (C) CoReX & Sedrika
    
    NO_MEMBER_TRADE ---> No Users can Trade
    NO_TEAM_TRADE ---> No Helper's GM's or Operator's can trade
    NO_ADMIN_TRADE ---> No Admins can Trade
    
    --- BUILD LOG ---
    
    Build: 1 succeeded, 0 failed, 0 skipped
    
    --- WorldServer.ini ---
    
    NO_MEMBER_TRADE
    NO_TEAM_TRADE
    NO_ADMIN_TRADE
    
    --- VersionCommon.h ---
    
    #define		__NO_TRADE
    
    --- DpSrvr.cpp ---
    
    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 && pUser->m_dwAuthorization <= AUTH_JOURNALIST || pTrader->m_dwAuthorization >= AUTH_GENERAL && 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 && pUser->m_dwAuthorization <= AUTH_OPERATOR || pTrader->m_dwAuthorization >= AUTH_HELPER  && pTrader->m_dwAuthorization <= AUTH_OPERATOR)
    					{
    						pUser->AddText("Team Members 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 );
    			}
    		}
    	}
    }
    
    --- WorldServer.cpp ---
    
    
    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;
    }
    
    --- flyffevent.h ---
    
    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
    };
    
    --- FuncTextCmd.cpp ---
    #ifdef __NO_TRADE
    BOOL TextCmd_NoMTrade( CScanner& scanner )
    {
    #ifdef __WORLDSERVER
    	CUser* pUser	= (CUser*)scanner.dwValue;
    	const CHAR* szString;
    	if(g_eLocal.GetState(EVE_NO_MEMBER_TRADE))
    	{
    		g_eLocal.SetState( EVE_NO_MEMBER_TRADE, 0 );
    		pUser->AddText( "Trade enabled" );
    		szString = "Trade enabled";
    	}
    	else
    	{
    		g_eLocal.SetState( EVE_NO_MEMBER_TRADE, 1 );
    		szString = "Trade disabled";
    		pUser->AddText( "Trade disabled" );
    	}
    	g_DPCoreClient.SendSystem( szString );
    	scanner.GetLastFull();
    	
    #endif
    	return TRUE;
    }
    BOOL TextCmd_NoTTrade( CScanner& scanner )
    {
    #ifdef __WORLDSERVER
    	CUser* pUser	= (CUser*)scanner.dwValue;
    	LPCSTR szString;
    	if(g_eLocal.GetState(EVE_NO_TEAM_TRADE))
    	{
    		g_eLocal.SetState( EVE_NO_TEAM_TRADE, 0 );
    		szString = "Team Trade enabled";
    	}
    	else
    	{
    		g_eLocal.SetState( EVE_NO_TEAM_TRADE, 1 );
    		szString = "Team Trade disabled";
    	}
    	pUser->AddText( szString );
    #endif
    	return TRUE;
    }
    BOOL TextCmd_NoATrade( CScanner& scanner )
    {
    #ifdef __WORLDSERVER
    	CUser* pUser	= (CUser*)scanner.dwValue;
    	LPCSTR szString;
    	if(g_eLocal.GetState(EVE_NO_ADMIN_TRADE))
    	{
    		g_eLocal.SetState( EVE_NO_ADMIN_TRADE, 0 );
    		szString = "Admin Trade enabled";
    	}
    	else
    	{
    		g_eLocal.SetState( EVE_NO_ADMIN_TRADE, 1 );
    		szString = "Admin Trade disabled";
    	}
    	pUser->AddText( szString );
    #endif
    	return TRUE;
    }
    #endif // __NO_TRADE
    
    #ifdef __NO_TRADE
    	ON_TEXTCMDFUNC( TextCmd_NoMTrade,              "NoMemberTrade",      "nmt",            "ij¸¯ÅÍ»ý¼º",     "ij»ý",    TCM_BOTH, AUTH_SERVER, "ij¸¯ÅÍ»ý¼º" )
    	ON_TEXTCMDFUNC( TextCmd_NoTTrade,              "NoTeamTrade",        "ntt",            "ij¸¯ÅÍ»ý¼º",     "ij»ý",    TCM_BOTH, AUTH_SERVER, "ij¸¯ÅÍ»ý¼º" )
    	ON_TEXTCMDFUNC( TextCmd_NoATrade,              "NoAdminTrade",       "nat",            "ij¸¯ÅÍ»ý¼º",     "ij»ý",    TCM_BOTH, AUTH_SERVER, "ij¸¯ÅÍ»ý¼º" )
    #endif //__NO_TRADE
    Last edited by Thecoreman; 02-03-11 at 05:45 PM. Reason: update


  2. #2
    Doggie And Rice. Military is offline
    MemberRank
    Jun 2009 Join Date
    Here and AboutLocation
    3,301Posts

    Re: [Source] Trade Block System

    Well thanks for this , I may not need it yet.

  3. #3
    the sound's resound echo Jelle is offline
    MemberRank
    Jun 2009 Join Date
    ._.Location
    1,036Posts

    Re: [Source] Trade Block System

    Could be useful.
    Nice release ;)

  4. #4
    Apprentice Thecoreman is offline
    MemberRank
    Feb 2011 Join Date
    netherlandsLocation
    11Posts

    Re: [Source] Trade Block System

    thanks, i think it helps some servers ;)

  5. #5
    Doggie And Rice. Military is offline
    MemberRank
    Jun 2009 Join Date
    Here and AboutLocation
    3,301Posts

    Re: [Source] Trade Block System

    Quote Originally Posted by Thecoreman View Post
    thanks, i think it helps some servers ;)
    Dupe wise , but there's always the mailbox.


    Edit : Do these have a enable and disable feature? e.g NO_USER_TRADE = true;
    Last edited by Military; 28-02-11 at 10:12 PM.

  6. #6
    Proficient Member Sedrika is offline
    MemberRank
    Sep 2009 Join Date
    162Posts

    Re: [Source] Trade Block System

    Quote Originally Posted by Military View Post
    Dupe wise , but there's always the mailbox.


    Edit : Do these have a enable and disable feature? e.g NO_USER_TRADE = true;
    --- WorldServer.ini ---

    NO_MEMBER_TRADE
    NO_TEAM_TRADE
    NO_ADMIN_TRADE


    ^This =)

    and we didn't wrote the Postbox because not everyone need all parts of a small system. Everyone who waants to block the postbox to have to do it by himself.

  7. #7
    Doggie And Rice. Military is offline
    MemberRank
    Jun 2009 Join Date
    Here and AboutLocation
    3,301Posts

    Re: [Source] Trade Block System

    Quote Originally Posted by Sedrika View Post
    --- WorldServer.ini ---

    NO_MEMBER_TRADE
    NO_TEAM_TRADE
    NO_ADMIN_TRADE


    ^This =)

    and we didn't wrote the Postbox because not everyone need all parts of a small system. Everyone who waants to block the postbox to have to do it by himself.
    That sucks , I really wanted NO_ADMIN_TRADE etc = true/false;

  8. #8
    1/11/1995 ~ 23/11/2011 rebora2007 is offline
    MemberRank
    Nov 2010 Join Date
    Care much ?Location
    2,346Posts

    Re: [Source] Trade Block System

    Nice release thanks

  9. #9
    Proficient Member Sedrika is offline
    MemberRank
    Sep 2009 Join Date
    162Posts

    Re: [Source] Trade Block System

    Quote Originally Posted by Military View Post
    That sucks , I really wanted NO_ADMIN_TRADE etc = true/false;
    NO_ADMIN_TRADE <- Enabled
    //NO_ADMIN_TRADE <- Disabled

    Its very easy xD

  10. #10
    gooby pls Phant0m is offline
    MemberRank
    Mar 2008 Join Date
    ArgentinaLocation
    1,498Posts

    Re: [Source] Trade Block System

    @Sedrika
    If there was an input, like he mentioned before, it could be used much easily with a config on the server-side, and/or a command from in-game.

  11. #11
    Apprentice Thecoreman is offline
    MemberRank
    Feb 2011 Join Date
    netherlandsLocation
    11Posts

    Re: [Source] Trade Block System

    Quote Originally Posted by Phant0m View Post
    @Sedrika
    If there was an input, like he mentioned before, it could be used much easily with a config on the server-side, and/or a command from in-game.
    we maked an update, with better functions, cmd´s etc but we dont release it

  12. #12
    Apprentice Thecoreman is offline
    MemberRank
    Feb 2011 Join Date
    netherlandsLocation
    11Posts

    Re: [Source] Trade Block System

    I Maked a Update have fun :)

  13. #13
    Account Upgraded | Title Enabled! xsilentx is offline
    MemberRank
    Dec 2006 Join Date
    213Posts

    Re: [Source] Trade Block System

    Kinda sad, even with the source, people still don't know how to do things properly. =[

  14. #14
    Proficient Member Sedrika is offline
    MemberRank
    Sep 2009 Join Date
    162Posts

    Re: [Source] Trade Block System

    If they dont now how to do they should delete the source from the HDD.

  15. #15
    Apprentice shaear is offline
    MemberRank
    Nov 2009 Join Date
    11Posts

    Re: [Source] Trade Block System

    can teach me step by step how to put that on my server please? thx~!



Advertisement