[Source] Trade Block System

02/28/2011 20:30 Sedrika#1
.
02/28/2011 23:27 I<3-electro&house#2
Benutz mal einen spoiler so ist das ja viel zu groß aber sonst nice release :D
02/28/2011 23:34 Sedrika#3
Hab mal nen Code-Block genommen, ist auch strukturierter.
02/28/2011 23:42 I<3-electro&house#4
Jo so ist es direkt viel besser!
habs gerade mal getestet und es geht
habs bei mir allerdings etwas angepasst weil es mehr ränge gibt^^
02/28/2011 23:46 Sedrika#5
Ich sollte nochmal dabei sagen, dass nicht die PostBox geblockt wird =) Das kann man nun aber auch selber machen.
02/28/2011 23:48 I<3-electro&house#6
Quote:
Originally Posted by Sedrika View Post
Ich sollte nochmal dabei sagen, dass nicht die PostBox geblockt wird =) Das kann man nun aber auch selber machen.
Ingame shops werden doch auch nicht geblockt oder ? aber naja das kriegt man schon hin wenn dann ist das ja eh nur für gamemaster/supporter sinnvoll die normale spieler nicht pushen sollen
02/28/2011 23:55 Shizuka®#7
Find ich sinnlos, da man seinen GM´s vertrauen sollte. ;)
02/28/2011 23:57 I<3-electro&house#8
Quote:
Originally Posted by Shizuka® View Post
Find ich sinnlos, da man seinen GM´s vertrauen sollte. ;)
Ja haste eigentlich schon recht aber naja sieht man ja immer wieder auf viele server von gm's gepushte spieler
03/01/2011 00:00 Sedrika#9
Quote:
Originally Posted by I<3-electro&house View Post
Ingame shops werden doch auch nicht geblockt oder ? aber naja das kriegt man schon hin wenn dann ist das ja eh nur für gamemaster/supporter sinnvoll die normale spieler nicht pushen sollen
Shops auch nicht, doch kann man ähnlich machen.

Quote:
Originally Posted by Shizuka® View Post
Find ich sinnlos, da man seinen GM´s vertrauen sollte. ;)
Man kann nie jemandem richtig trauen =)

Quote:
Originally Posted by I<3-electro&house View Post
Ja haste eigentlich schon recht aber naja sieht man ja immer wieder auf viele server von gm's gepushte spieler
Man sieht echt, wie oft GM's auf server ihre freunde im spiel pushen.
06/21/2011 03:32 Vulcanraven#10
Nett Sedrika dennoch wäre es über ein Command wirksamer :)
06/21/2011 11:10 Yunoki#11
jetzt stelt sich mir die frage in welche datei muss das rein xD

und ich habe den sin nicht ganz geraft
06/21/2011 12:17 Incestus#12
Quote:
Originally Posted by Yunoki View Post
jetzt stelt sich mir die frage in welche datei muss das rein xD

und ich habe den sin nicht ganz geraft
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
};
Hast du jetzt ernsthaft geschrieben das du nicht weißt wo rein es kommt?