/offtrade

Results 1 to 5 of 5
  1. #1
    Account Upgraded | Title Enabled! damixx1 is offline
    MemberRank
    Dec 2009 Join Date
    276Posts

    /offtrade

    Helo, how can i enable /offtrade in my server? its like when you /offftrade your character is online even if you already log-out?


  2. #2
    Account Upgraded | Title Enabled! damixx1 is offline
    MemberRank
    Dec 2009 Join Date
    276Posts

    Re: /offtrade

    Bump!

  3. #3
    Proficient Member rapa is offline
    MemberRank
    Jun 2006 Join Date
    RomaniaLocation
    158Posts

    Re: /offtrade

    you must code it into your GS.

  4. #4
    Account Upgraded | Title Enabled! damixx1 is offline
    MemberRank
    Dec 2009 Join Date
    276Posts

    Re: /offtrade

    yes i know, i want to know how? or is there already a release for it

  5. #5
    Apprentice Fan21 is offline
    MemberRank
    Apr 2012 Join Date
    ArgentinaLocation
    15Posts

    Re: /offtrade

    im in your situacion ..

    I found this Sources in google.. but is of a GS 1.00.18 , and I need to GS 1.00.90 , I Seeing how i can adapt.. (Sorry bad english)

    .cpp:

    #include "OfflineTrade.h"
    #include "GameServer.h"
    #include "Utilits.h"
    #include "ConsoleNew.h"
    #include "Log.h"
    #include <WinSock2.h>

    CRITICAL_SECTION criti;
    COFFTrade OFFTrade;
    OFFLINETRADE OfflineShop[OBJECT_MAX];
    OFFLINETRADELOGIN OfflineLogin[OBJECT_MAX];

    void COFFTrade::Init()
    {

    cLog.ConsoleOutput(WHITE,"[FAVORITE] (OFFTrade) System is Loaded");
    }

    void COFFTrade::CreateOfflineTrade(int aIndex)
    {
    OBJECTSTRUCT *gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
    if(gObj->m_bPShopOpen == false)
    {
    Messages.outNormal(aIndex,"Сперва откройте свой Personal Store!");
    return;
    }
    OfflineShop[aIndex].IsOffTrade=1;

    CloseClient(aIndex);
    }

    void CGPShopAnsCloseHook(int aIndex, BYTE btResult)
    {
    if(OfflineShop[aIndex].IsOffTrade)
    gObjDel(aIndex);

    CGPShopAnsClose(aIndex,btResult);
    }

    void CloseClientHook(int aIndex)
    {
    OBJECTSTRUCT *gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);

    if ( aIndex < 0 || aIndex > OBJECT_MAX-1 )
    return;

    if(OfflineShop[aIndex].IsOffTrade != 0)
    return;

    if ( gObj->Connected == PLAYER_EMPTY )
    return;

    if ( gObj->m_socket != INVALID_SOCKET )
    {
    closesocket(gObj->m_socket );
    gObj->m_socket = INVALID_SOCKET;
    }
    }

    void ResponErrorCloseClientHook(int aIndex)
    {
    OBJECTSTRUCT *gObj = (OBJECTSTRUCT*) OBJECT_POINTER(aIndex);

    if ( aIndex < 0 || aIndex > OBJECT_MAX-1 )
    return;

    if(OfflineShop[aIndex].IsOffTrade == 1)
    return;

    if (gObj->Connected == PLAYER_EMPTY )
    return;

    closesocket(gObj->m_socket);
    gObj->m_socket = INVALID_SOCKET;

    gObjDel(aIndex);
    }

    void CloseClient2Hook(_PER_SOCKET_CONTEXT * lpPerSocketContext, int result)
    {
    int index = -1;
    index = lpPerSocketContext->nIndex ;

    if ( index >= OBJECT_MIN && index < OBJECT_MAX )
    {
    OBJECTSTRUCT *gObj = (OBJECTSTRUCT*) OBJECT_POINTER(index);

    if(OfflineShop[index].IsOffTrade != 0)
    return;

    if ( gObj->m_socket != INVALID_SOCKET )
    {
    if (closesocket(gObj->m_socket) == -1 )
    {
    if ( WSAGetLastError() != WSAENOTSOCK )
    return;
    }
    gObj->m_socket = INVALID_SOCKET;
    }
    gObjDel(index);
    }
    }

    .H



    #include "StdAfx.h"
    #include "User.h"

    class COFFTrade
    {
    public:
    void Init();
    void CreateOfflineTrade(int aIndex);
    }; extern COFFTrade OFFTrade;

    struct _PER_SOCKET_CONTEXT
    {
    char unk[4]; //
    int nIndex; // 4

    char Unk[0x5E28];
    // _PER_IO_CONTEXT IOContext[2]; // 8
    // int dwIOCount; // 5E28
    };


    struct OFFLINETRADE{
    int IsOffTrade;
    }; extern OFFLINETRADE OfflineShop[OBJECT_MAX];

    struct OFFLINETRADELOGIN{
    int aIndex;
    LPBYTE aRecv;
    }; extern OFFLINETRADELOGIN OfflineLogin[OBJECT_MAX];

    void CGPShopAnsCloseHook(int aIndex, BYTE btResult); //00441070 - 0x00404174
    void ResponErrorCloseClientHook(int aIndex); //0048CC50 - 0x00403CF1
    void CloseClient2Hook(_PER_SOCKET_CONTEXT * lpPerSocketContext, int result); //0048CAB0 - 0x004054F7
    void CloseClientHook(int aIndex); //0048CB60 - 0x401046
    Credits:
    - LeGrand.
    - SmallHabbit.

    PD: If you can make something send me a PM!



Advertisement