• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            跟逆向的協同是制定標準交互接口

            gtr_api.h
              1 /*
              2 gtr_api.h
              3 ========================
              4 定義與游戲邏輯交互的接口
              5 2009.12.12 zhangbin  created
              6     1. 修改二進制圖片的傳輸方式,通過context完成
              7     2. 定義輸出接口 init()/cleanup(),其他函數通過內部登記來實現
              8 2009.12.13 zhangbin
              9     1.添加日志回調
             10 
             11 2010.3.25 zhangbin 
             12     1.添加 auth() 密保認證回調;captureImage()抓屏幕回調
             13     3.添加 Gt_CallContext.id字段
             14 2010.3.29 zhangbin
             15 1.修正部分聲明的錯誤
             16 
             17 */
             18 #ifndef _GT_API_H
             19 #define _GT_API_H
             20 #include <windows.h>
             21 
             22 
             23 enum Gt_ReturnValueT{    
             24     GT_FALSE=0,                                        //
             25     GT_TRUE,                                            //
             26     GT_UNABLECONNECT,                            //無法連接
             27     GT_PASSWORDERROR,                            //賬號密碼錯誤
             28     GT_PLAYERINLINE,                            //玩家在線
             29     GT_VERSIONERROR,                            //版本錯誤
             30     GT_UNABLEGETINFO,                            //無法獲得
             31     GT_VERIFYCODEERROR,                        //驗證碼錯誤
             32     GT_ROLELOCK,                                    //角色被封
             33     GT_MBERROR,                                        //密保卡錯誤
             34     GT_ROLENEEDCHANGENAME,                //角色需要修改名字(DNF合服)
             35     GT_ROLEKICK,                                    //角色被踢下線
             36     //GT_NOROLE,                                        //角色名不存在
             37     //GT_NOBUYERROLE,                                //買家不存在
             38     GT_SECONDPWDERROR,                        //二級密碼或者倉庫密碼錯誤
             39     GT_UNABLEMOVETO,                            //無法到達
             40     GT_UNABLETALKTO,                            //無法對話
             41     GT_TIMEOUT,                                        //超時
             42     GT_PlAYERNOFEE,                                //賣家游戲點卡不足
             43     GT_CONNECTBREAK,                            //連接中斷
             44     GT_NOTEXISTED,                                //訪問對象不存在 2010.3.27
             45     GT_SKIP_PASS,                                    //此調用無需判斷,直接忽略
             46     GT_OK = GT_TRUE,              //成功    
             47     GT_UNKNOWN=0xffff
             48 };
             49 
             50 typedef int        GT_BOOL;
             51 #define POUT
             52 #define PIN
             53 #define PINOUT
             54 
             55 typedef Gt_ReturnValueT GT_RESULT;
             56 typedef int Gt_NPCID;
             57 
             58 enum Gt_ImageTypeT{
             59     GT_IMAGEJPEG =1,
             60     GT_IMAGEPNG,
             61     GT_IMAGEBMP
             62 };
             63 
             64 enum Gt_GameItemT{
             65     GT_ITEM_1,        //金幣
             66     GT_ITEM_2,        //金磚
             67     GT_ITEM_MAX
             68 };
             69 
             70 struct Gt_ApiList;
             71 
             72 typedef struct Gt_CallContext{
             73     int            timeout    ;            // msec 調用超時
             74     void*        cookie;                // 外部使用
             75     void*        cookie2;            // 游戲內部使用,可用于保持狀態
             76     char*        xdata;                // 數據交換地址,數據必須立刻復制
             77     int            xsize;                // 數據交換大小
             78     int            xtype;                // 交換數據類型
             79     Gt_ApiList*        apilist;    //函數入口表 游戲dll內部維持接口表,在初始化時賦值給此變量
             80     void    (*log)(Gt_CallContext* ctx,char* msg);                        //游戲邏輯運行時日志輸出
             81     void  (*log2)(Gt_CallContext* ctx,char* data,int size); //游戲邏輯運行時日志輸出    
             82     char* (*auth_coords)(Gt_CallContext* ctx,char* coords); //坐標認證
             83     char* (*auth_image)(Gt_CallContext* ctx,Gt_ImageTypeT imagetype,char* imagedata,int size,int width,int height);
             84     void     (*capture_image)(Gt_CallContext* ctx,char* excName,char* imagedata,int size,int width,int height);
             85     int        id;        //游戲邏輯使用
             86 }CALLCTX;
             87 
             88 
             89 struct Gt_ApiList{    
             90     GT_RESULT (*SelectServer)(char *,CALLCTX*);                        //選大區    訂單中大區信息    OK    無法連接                    SelectServer        char*
             91     GT_RESULT (*SelectArea)(char*,CALLCTX*);                            //選小區    訂單中小區信息    OK    無法連接                    SelectArea        char*
             92     // null 自動選擇線路
             93     GT_RESULT (*SelectLineByName)(char* line,CALLCTX*);        //         選線路    Ping值較低    OK    無法連接                    SelectLine        void
             94     // -1 自動選擇線路
             95     GT_RESULT (*SelectLineByIndex)(int line,CALLCTX*);        //         選線路    Ping值較低    OK    無法連接                    SelectLine        void    
             96     GT_RESULT (*Login)(char* usr,char* passwd,CALLCTX*);    //         賬號密碼輸入    訂單中賬號密碼信息    OK    賬號密碼錯誤    玩家在線        版本錯誤        Login        char* account, char* pwd
             97     GT_RESULT (*IsExistDynMB)(CALLCTX*);                                    //         查詢動態密保        有    無                    IsExistDynMB        void    
             98     GT_RESULT (*IsRightClass)(int,CALLCTX* );                            //         查詢角色陣營    訂單中賣家陣營    是    否                    IsRightClass        int    
             99     GT_RESULT (*IsExistBackHomeSkill)(CALLCTX*);                    //         查詢回城技能        是    否                    IsExistBackHomeSkill        void
            100     GT_RESULT (*UseBackHomeSkill)(CALLCTX*);                            //         使用回城技能        OK    失敗                    UseBackHomeSkill        void
            101     GT_RESULT (*IsExistBackHomeItem)(CALLCTX*);                    //         查詢是否存在回城物品        是    否                    
            102     GT_RESULT (*UseBackHomeItem)(CALLCTX*);                            //         使用回城物品        OK    失敗                        
            103     GT_RESULT (*QueryRoleLevel)(char* ,POUT int *,CALLCTX*); //         查詢賣家角色等級        OK    失敗                    QuerySellerLevel        char*, int*
            104     GT_RESULT (*SelectRoleByName)(char*,CALLCTX*);                //         角色選擇    訂單中的角色名信息    OK    角色名不存在    角色需要修改名字(DNF合服)                SelectRoleByName        char*
            105     GT_RESULT (*SelectRoleByIndex)(int,CALLCTX*);                    //         序號選擇    訂單中的角色序號信息    OK    無法登陸該序號角色                    SelectRoleByIndex        int
            106     GT_RESULT (*IsExistRoleByName)(char* ,CALLCTX*);            //         查詢買家角色名    訂單中買家角色名信息    有    無                    IsExistBuyerByName        char*
            107     GT_RESULT (*AddRoleToFriend)(char*,CALLCTX*);                //         加買家為好友    訂單中買家角色名信息    OK    無該玩家                    AddBuyerToFriend        char*        
            108     GT_RESULT (*QuerySafeTime)(POUT int* ,CALLCTX*);                        //         獲取安全時間            安全時間                    QuerySafeTime        int*        
            109     GT_RESULT (*IsExistNPC)(Gt_NPCID ,CALLCTX*);                                //         判定指定NPC是否在附近    NPCID    是    否                    IsExistNPC        int    
            110     GT_RESULT (*OpenWarehouse)(char* passwd,CALLCTX*);                        //         打開倉庫    訂單中的倉庫密碼信息    OK    密碼錯誤                    OpenWarehouse        char*
            111     GT_RESULT (*OpenMailBox)(char* passwd,CALLCTX*);                        //郵箱  二級密碼
            112     GT_RESULT (*OpenBank)(char* passwd,CALLCTX*);                            //銀行 二級密碼
            113     GT_RESULT (*OpenExchange)(char* passwd,CALLCTX*);                     //交易所 二級密碼    
            114     GT_RESULT (*OpenGrocer)(char* passwd,CALLCTX*);                     //雜貨商 二級密碼
            115     
            116     GT_RESULT (*MoveToByNpcID)(Gt_NPCID,CALLCTX*);                            //         跑地圖    NPCID    OK    無法到達                    MoveToByNpcID        int NPCID
            117     GT_RESULT (*Talk)(Gt_NPCID,CALLCTX*);                                            //         與郵箱NPC對話    NPCID    OK    無法對話                    Talk        int NPCID
            118     //查詢物品數量 ,  item - 具體的游戲可交易的對象(金幣、元寶、金磚。。。)
            119     GT_RESULT (*QueryItemsInBag)(Gt_GameItemT item,POUT INT64*,CALLCTX*);                //背包
            120     GT_RESULT (*QueryItemsInWarehouse)(Gt_GameItemT item,POUT INT64*,CALLCTX*);    //倉庫
            121     GT_RESULT (*QueryItemsInBank)(Gt_GameItemT item,POUT INT64*,CALLCTX*);                // 銀行
            122     GT_RESULT (*QueryItemsInExchange)(Gt_GameItemT item,POUT INT64*,CALLCTX*);        //交易所
            123     //郵件特例處理
            124     GT_RESULT (*IsEnoughItemsInMailbox)(Gt_GameItemT item,PINOUT INT64*,CALLCTX*);        // 郵箱金幣是否滿足差額
            125     //獲得指定物品數量 
            126     GT_RESULT (*WithdrawItemsInWarehouse)(Gt_GameItemT item,PINOUT INT64*,CALLCTX*);    //         獲取倉庫金幣信息            返回倉庫中金幣數額    無法獲取                QueryGoldsInWarehouse        int64*
            127     GT_RESULT (*WithdrawItemsInBank)(Gt_GameItemT item,PINOUT INT64*,CALLCTX*);                //         獲取倉庫金幣信息            返回倉庫中金幣數額    無法獲取                QueryGoldsInWarehouse        int64*
            128     GT_RESULT (*WithdrawItemsInExchange)(Gt_GameItemT item,PINOUT INT64*,CALLCTX*);        //         獲取倉庫金幣信息            返回倉庫中金幣數額    無法獲取                QueryGoldsInWarehouse        int64*
            129     GT_RESULT (*WithdrawItemsInMailbox)(Gt_GameItemT item,PINOUT  INT64*,CALLCTX*);        //         郵箱金幣是否滿足差額
            130     //發送郵件
            131     GT_RESULT (*SendMail)(char* reciever,char* title,char* content,INT64,CALLCTX*);    
            132     //兌換給Npc
            133     GT_RESULT (*SellItem)(int item,int itemNum,CALLCTX*);                            //         兌換銀票,金磚    金幣數額        返回兌換后金幣數額    無法獲取                SellItem        int64
            134     
            135     
            136     GT_RESULT (*Begin)(CALLCTX*);                //開單
            137     GT_RESULT (*End)(CALLCTX*);                    //結單
            138 
            139     //GT_RESULT (*QueryBuyerLevel)(char*,POUT int * ,CALLCTX*);                    //         查詢買家等級    訂單中買家角色名信息        買家角色等級                    QueryBuyerLevel        char*    
            140     //GT_RESULT (*IsExistSecondPwd)(CALLCTX*);                            //         查詢二級碼        是    否                    IsExistSecondPwd        void
            141     //GT_RESULT (*InputSecondPwd)(char* ,CALLCTX*);                //         輸入二級碼    訂單中的二級碼信息    OK    密碼錯誤                    InputeSecondPwd        char*
            142     //GT_RESULT    (*IsExistVerifyCode)(CALLCTX*);                            //         是否有驗證碼        是    否                    IsExistVerifyCode        void
            143     //GT_RESULT (*GetVerifyCode)(CALLCTX*);                                    //         獲取驗證碼            驗證碼圖片    無法獲得                GetVerifyCode        char** buf, int*                                                                                                                //        通過ctx::xdata,xsize進行數據交換
            144     //GT_RESULT (*InputeVerifyCode)(char* ,CALLCTX*);                //         驗證碼輸入    答題器中的驗證碼信息    OK    驗證碼錯誤                    InputeVerifyCode        char*    
            145     //GT_RESULT    (*IsExistMB)(CALLCTX*);                                            //         是否有密保卡        是    否                    IsExistMB        void
            146     //GT_RESULT (*GetMBCord)(CALLCTX*);                                            //         獲取密保坐標            OK    無法獲得                GetMBCord        char** buf, int*                                                                                                                //        通過ctx::xdata,xsize進行數據交換 
            147     //GT_RESULT (*InputMBInfo)(char* ,CALLCTX*);                        //         密保卡輸入    答題器中的密保卡信息    OK    密保卡錯誤                    InputeMBInfo        char*
            148 
            149 };
            150 
            151 //////////////////////////////////////////////////////////////////////////
            152 //game-dll必須導出以下函數即可
            153 GT_BOOL Init(char * gamedir,CALLCTX* ctx);
            154 void        CleanUp(CALLCTX* ctx);
            155 
            156 
            157 
            158 #endif


            posted on 2010-09-30 00:40 放屁阿狗 閱讀(1471) 評論(0)  編輯 收藏 引用 所屬分類: C++/Boost/STL/TemplateOpenSource開源工程
            国产精品福利一区二区久久| 超级碰久久免费公开视频| 精品久久久久久成人AV| 国产成人无码精品久久久久免费| 久久伊人中文无码| 国产综合久久久久| 亚洲色欲久久久久综合网| 996久久国产精品线观看| 亚洲国产精品无码久久青草| 狠狠色丁香婷婷综合久久来| 欧美亚洲国产精品久久| 久久99精品久久久久久齐齐| 亚洲va久久久噜噜噜久久男同 | 免费无码国产欧美久久18| 99久久777色| 久久久久亚洲Av无码专| 国产69精品久久久久APP下载| 久久99精品久久久久久齐齐| 久久国产免费观看精品| 久久久久人妻精品一区二区三区| 波多野结衣久久| 久久久久久噜噜精品免费直播 | 91精品婷婷国产综合久久| 久久久久人妻精品一区| 久久精品国产99久久久古代| 欧美亚洲日本久久精品| 国产真实乱对白精彩久久| 88久久精品无码一区二区毛片| 精品国产乱码久久久久久1区2区 | 久久免费精品一区二区| 久久久久亚洲AV无码网站| 国产精品久久久久a影院| 无码精品久久一区二区三区| 亚洲国产精品无码久久青草| 久久AⅤ人妻少妇嫩草影院| 久久久久国产成人精品亚洲午夜| 狠狠人妻久久久久久综合| 久久99精品免费一区二区| 久久精品无码一区二区三区免费| 国产免费福利体检区久久| 色婷婷综合久久久久中文字幕|