| //³ÆºÅ±í #tagDienstgrad  | 
|   | 
| struct    tagDienstgrad  | 
| {  | 
|     DWORD        _ID;    //Í·ÏÎid  | 
|     WORD        Type;    //Í·ÏÎÀàÐÍ  | 
|     DWORD        ExpireTime;    //ÓÐЧʱ¼ä  | 
|     list        LightType;    //µãÁÁÊôÐÔÀàÐÍ  | 
|     list        LightAttribute;    //µãÁÁÊôÐÔÖµ  | 
|     list        Skills;        //±»¶¯¼¼ÄÜ  | 
| };  | 
|   | 
| //¾³½ç±í #tagRealm  | 
|   | 
| struct    tagRealm  | 
| {  | 
|     WORD        _Lv;    //¾³½çµÈ¼¶  | 
|     BYTE        IsBigRealm;    //ÊÇ·ñ´ó¾³½ç  | 
|     DWORD        NeedPoint;    //¿ªÆô¶É½ÙÐèÒªÐÞÁ¶µã  | 
|     DWORD        NeedItemID;    //¿ªÆô¶É½ÙÐèÒªµÀ¾ßID  | 
|     WORD        NeedItemCnt;    //¿ªÆô¶É½ÙÏûºÄµÄµÀ¾ßÊýÁ¿  | 
|     dict        NeedActiveTreasure;    //¿ªÆô¶É½ÙÐèÒª¼¤»î·¨±¦Ìõ¼þ  | 
|     list        AddAttrType;    //¾³½ç¼Ó³ÉÊôÐÔÀàÐÍ      | 
|     list        AddAttrNum;    //¾³½ç¼Ó³ÉÊôÐÔÖµ  | 
|     DWORD        BossID;    //¶É½Ùbossid  | 
|     dict        SitTime;    //´ò×øÊ±¼ä  | 
|     dict        TeamAward;    //×é¶Ó°ï´òµÄÈ˵Ľ±Àø  | 
| };  | 
|   | 
| //Éñ±ø±í #tagGodWeapon  | 
|   | 
| struct    tagGodWeapon  | 
| {  | 
|     WORD        _Type;    //Éñ±øÀàÐÍ  | 
|     WORD        _LV;    //µÈ¼¶  | 
|     DWORD        Exp;  | 
|     list        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     list        AttrNum;    //ÊôÐÔÖµ  | 
|     DWORD        SkillID;    //¼¤»î¼¼ÄÜID  | 
|     char        SysMark;    //ϵͳÌáʾ  | 
| };  | 
|   | 
| //¹¦ÄÜÅäÖñí¸ñ #tagFuncConfig  | 
|   | 
| struct    tagFuncConfig  | 
| {  | 
|     char        _Key;    //±êʶ  | 
|     char        Numerical1;    //Êý¾Ý1  | 
|     char        Numerical2;    //Êý¾Ý2  | 
|     char        Numerical3;    //Êý¾Ý3  | 
|     char        Numerical4;    //Êý¾Ý4  | 
|     char        Numerical5;    //Êý¾Ý5  | 
| };  | 
|   | 
| //µÈ¼¶¿ªÆô¹¦ÄÜ #tagFuncOpenLV  | 
|   | 
| struct    tagFuncOpenLV  | 
| {  | 
|     DWORD        _FuncId;    //¹¦Äܱêʶ  | 
|     DWORD        LimitLV;    //¿ªÆôµÈ¼¶  | 
|     DWORD        LimitMagicWeapon;    //ÐèÒª½âËø·¨±¦ID  | 
|     WORD        LimiRealmLV;    //ÐèÒª¾³½çµÈ¼¶  | 
|     DWORD        LimitMissionID;    //ÐèÒªÍê³ÉµÄÈÎÎñID  | 
|     BYTE        LimitVIPLV;    //ÐèÒªVIPµÈ¼¶  | 
| };  | 
|   | 
|   | 
| //ºÏ³É±í #tagItemCompound  | 
|   | 
| struct    tagItemCompound  | 
| {  | 
|     WORD        _ID;    //ºÏ³ÉÅäÖñàºÅID  | 
|     BYTE        ComposeGroup;    //ºÏ³É¹é×éÀàÐÍ  | 
|     list        MakeID;    //¿ÉºÏ³ÉµÄµÀ¾ßID£¬¶à¸öÔòËæ»úÒ»¸ö  | 
|     BYTE        IsFirstSuccMakeJobItem;    //Ê״γɹ¦ÊÇ·ñ±Ø³ö±¾Ö°Òµ  | 
|     list        UnfixedItemID;    //²»¹Ì¶¨µÀ¾ßID, ¶à¸öIDʱÔòÈÎÒâÒ»ÖÖ¾ù¿É  | 
|     BYTE        UnfixedItemCount;    //²»¹Ì¶¨µÀ¾ßÏûºÄÊýÁ¿  | 
|     list        FixedItemID;    //ÏûºÄ¹Ì¶¨µÀ¾ßID, ¶à¸öIDʱ´ú±íÿ¸öID¾ùÐèÏûºÄ  | 
|     list        FixedItemCount;    //ÏûºÄ¹Ì¶¨µÀ¾ßÊýÁ¿£¬Ã¿¸öID¶ÔÓ¦ÊýÁ¿  | 
|     DWORD        NeedMoney;    // ÏûºÄÍÇ®  | 
|     WORD        SuccessRate;    // ³É¹¦ÂÊÍò·ÖÂÊ  | 
|     WORD        SuccessRateMax;    // ×î´ó³É¹¦ÂÊÍò·ÖÂÊ  | 
|     list        SuccessRateIncrease;    //Ìá¸ß³É¹¦ÂʵÀ¾ß, µÀ¾ßID|¸öÊý|Ìá¸ßµÄ¸ÅÂÊ  | 
|     BYTE        AddonsCountMax;    //×î´ó¿É¸½¼Ó²ÄÁÏÊý, Ôö¼Ó¸ÅÂÊÓÃ, ·Ç±ØÐë, 0´ú±í²»¿É¸½¼Ó²ÄÁÏ  | 
|     char        SysMark;    //Ìáʾmark  | 
|     BYTE        SysMarkParamType;    //ϵͳÌáʾ²ÎÊý×éºÏÀàÐÍ  | 
| };  | 
|   | 
|   | 
| //ÎïÆ·Ç¿»¯Ð§¹û±í  | 
|   | 
| struct tagItemPlus  | 
| {  | 
|     BYTE        _Type;    //Ç¿»¯ÀàÐÍ  | 
|     WORD        _LV;    //Ç¿»¯µÈ¼¶  | 
|     list        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //ÊôÐÔÖµ  | 
|     DWORD        CostCount;    //ÏûºÄÍÇ®  | 
|     DWORD        AddExp;    //ÌáÉýÊìÁ·¶ÈÖµ  | 
|     DWORD        TotalExp;    //Éý¼¶ËùÐèÊìÁ·¶È×ÜÖµ  | 
| };  | 
|   | 
|   | 
| //×°±¸Ç¿»¯µÈ¼¶ÉÏÏÞ  | 
|   | 
| struct tagItemPlusMax  | 
| {  | 
|     BYTE        _Type;        //°´×°±¸Î»¶ÔÓ¦ÀàÐͲéÕÒ  | 
|     BYTE        _ItemRank;    // ×°±¸½×Êý  | 
|     BYTE        _ItemColor;    //×°±¸ÑÕÉ« Èç³È×°  | 
|     WORD        LevelMax;    //Ç¿»¯µÈ¼¶ÉÏÏÞ  | 
| };  | 
|   | 
|   | 
| //×°±¸È«ÉíÇ¿»¯ÊôÐÔ  | 
|   | 
| struct tagItemPlusSumAttr  | 
| {  | 
|     WORD        _PlusCntNeed;    //È«ÉíÇ¿»¯µÈ¼¶  | 
|     list        AttrType;    //È«ÉíÇ¿»¯¼¤»îÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //È«ÉíÇ¿»¯¼¤»îÊôÐÔÖµ  | 
| };  | 
|   | 
|   | 
| //×°±¸È«ÉíÐÇÊýÊôÐÔ  | 
|   | 
| struct tagRoleEquipStars  | 
| {  | 
|     BYTE        _StarsNeed;    //È«ÉíÐÇÊý  | 
|     list        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //ÊôÐÔÖµ  | 
| };  | 
|   | 
| //ÉñÊÞ±í  | 
|   | 
| struct tagDogz  | 
| {  | 
|     BYTE        _DogzID;    //ÉñÊÞID  | 
|     list        BaseAttrTypes;    //»ù´¡ÊôÐÔÀàÐÍÁÐ±í  | 
|     list        BaseAttrValues;    //»ù´¡ÊôÐÔÖµÁÐ±í  | 
|     list        HelpBattleSkills;    //ÖúÕ½¼¼ÄÜIDÁÐ±í  | 
|     DWORD        FightPowerEx;    //ÖúÕ½¸½¼ÓÕ½Á¦  | 
|     list        EquipPlaceColorList;    //´©´÷×°±¸ÑÕÉ«ÏÞÖÆ  | 
|     list        HelpBattleNotify;    //ÖúÕ½¹ã²¥ ["¹ã²¥key",[²ÎÊý1,²ÎÊý2,...],¹ã²¥CD·ÖÖÓ]  | 
| };  | 
|   | 
| //ÉñÊÞÇ¿»¯±í  | 
|   | 
| struct tagDogzEquipPlus  | 
| {  | 
|     BYTE        _EquipPlace;    //×°±¸Î»  | 
|     BYTE        _PlusLV;    //Ç¿»¯µÈ¼¶  | 
|     list        PlusAttrTypes;    //Ç¿»¯ÊôÐÔÀàÐÍÁÐ±í  | 
|     list        PlusAttrValues;    //Ç¿»¯ÊôÐÔÖµÁÐ±í  | 
|     DWORD        PlusLVUPTotalExp;    //Éý¼¶ËùÐèÀÛ¼ÆÊìÁ·¶È×ÜÖµ  | 
| };  | 
|   | 
| //·ûÓ¡±í  | 
|   | 
| struct tagRune  | 
| {  | 
|     DWORD        _ID;    //±àºÅID  | 
|     list        AttrType;    //È«ÉíÇ¿»¯¼¤»îÊôÐÔÀàÐÍ  | 
| };  | 
|   | 
|   | 
| //Ï´Á·±í #tagEquipWash  | 
|   | 
| struct    tagEquipWash  | 
| {  | 
|     BYTE        _WashType;    // ×°±¸¹é×éÀàÐÍ  | 
|     BYTE        _WashLV;    // Ï´Á·µÈ¼¶  | 
|     BYTE        AttrType1;    // ÊôÐÔ1ÀàÐÍ  | 
|     DWORD        AttrMax1;    // ÊôÐÔ1µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ  | 
|     dict        AttrRandDict1;    // ÊôÐÔ1Ëæ»ú·¶Î§  | 
|     DWORD        AttrCostGoldMin1;    // ÊôÐÔ1ÏÉÓñÏ´Á·ÏÂÏÞÖµ  | 
|     DWORD        AttrCostGoldMax1;    // ÊôÐÔ1ÏÉÓñÏ´Á·ÉÏÏÞÖµ  | 
|     BYTE        AttrType2;    // ÊôÐÔ2ÀàÐÍ  | 
|     DWORD        AttrMax2;    // ÊôÐÔ2µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ  | 
|     dict        AttrRandDict2;    // ÊôÐÔ2Ëæ»ú·¶Î§  | 
|     DWORD        AttrCostGoldMin2;    // ÊôÐÔ2ÏÉÓñÏ´Á·ÏÂÏÞÖµ  | 
|     DWORD        AttrCostGoldMax2;    // ÊôÐÔ2ÏÉÓñÏ´Á·ÉÏÏÞÖµ  | 
|     BYTE        AttrType3;    // ÊôÐÔ3ÀàÐÍ  | 
|     DWORD        AttrMax3;    // ÊôÐÔ3µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ  | 
|     dict        AttrRandDict3;    // ÊôÐÔ3Ëæ»ú·¶Î§  | 
|     DWORD        AttrCostGoldMin3;    // ÊôÐÔ3ÏÉÓñÏ´Á·ÏÂÏÞÖµ  | 
|     DWORD        AttrCostGoldMax3;    // ÊôÐÔ3ÏÉÓñÏ´Á·ÉÏÏÞÖµ  | 
|     DWORD        CostItemID;        // ¹Ì¶¨ÏûºÄÎïÆ·ID  | 
|     BYTE        CostItemCount;    // ¹Ì¶¨ÏûºÄÎïÆ·¸öÊý  | 
|     list        GoldWashCostList;    // ÏÉÓñÏ´Á·ÌõÊý¶ÔÓ¦ÏûºÄ  | 
| };  | 
|   | 
|   | 
| //Ï´Á·ÌØÊâÊôÐÔ±í #tagEquipWashSpec  | 
|   | 
| struct    tagEquipWashSpec  | 
| {  | 
|     BYTE        _WashTypeNeed;    // ËùÐè×°±¸¹é×éÀàÐÍ  | 
|     BYTE        _WashLVNeed;    // ËùÐèÏ´Á·µÈ¼¶  | 
|     list        AddAttrType;    //¼¤»î¼Ó³ÉÊôÐÔÀàÐÍ  | 
|     list        AddAttrValue;    //¼¤»î¼Ó³ÉÊôÐÔÖµ  | 
| };  | 
|   | 
|   | 
| //ÊôÐÔ¹ûʵ±í  | 
|   | 
| struct tagAttrFruit  | 
| {  | 
|     DWORD        _ID;    //ÎïÆ·ID  | 
|     BYTE        FuncID;    //ËùÊô¹¦ÄÜID  | 
|     WORD        MaxUseCnt;    //×î´ó¿ÉʹÓÃÊýÁ¿  | 
|     WORD        RecycleMoney;    //»ØÊÕ»õ±ÒÖµ  | 
| };  | 
|   | 
|   | 
| //ÁéÊÞ±í  | 
|   | 
| struct tagPetInfo  | 
| {  | 
|     DWORD        _ID;    //ÁéÊÞNPCID  | 
|     BYTE        Quality;    //Æ·ÖÊ  | 
|     char        UnlockSys;    //½âËø¹ã²¥Ìáʾ  | 
|     DWORD        UnLockNeedItemID;    //½âËøÁéÊÞÎïÆ·ID  | 
|     BYTE        UnLockNeedItemCnt;    //½âËøËùÐèÎïÆ·ÊýÁ¿  | 
|     DWORD        DecomposeExp;    //·Ö½âµ¥¸ö½âËøÎïÆ·¿É»ñµÃÉý½×¾Ñé  | 
|     BYTE        InitRank;    //ÁéÊÞ³õʼ½×Êý  | 
|     WORD        MaxRank;    //ÁéÊÞ×î¸ß½×Êý  | 
|     WORD        UseNeedRank;    //¶àÉٽ׿ÉÇл»Íâ¹Û  | 
|     list        SkillID;    //ÁéÊÞ¼¼ÄÜID  | 
|     list        SkillUnLock;    //ÁéÊÞ¼¼ÄܽâËøÐèÒª½×Êý  | 
|     list        SkillUnLockSys;    //ÁéÊÞ¼¼ÄܽâËøÌáʾ  | 
|     DWORD        InitFightPower;    //³õʼսÁ¦  | 
| };  | 
|   | 
|   | 
| //×°±¸·Ö½âÊôÐﱒ  | 
|   | 
| struct tagEquipDecompose  | 
| {  | 
|     WORD        _LV;    //µÈ¼¶  | 
|     DWORD        UpNeedExp;    //Éý¼¶ËùÐè¾ÑéÊý  | 
|     dict        Attr;    //ÊôÐÔ¼Ó³É  | 
| };  | 
|   | 
|   | 
| //ÁéÊÞÉý½×ÏûºÄ±í  | 
|   | 
| struct tagPetClassCost  | 
| {  | 
|     DWORD        _PetID;    //ÁéÊÞNPCID  | 
|     DWORD        _Class;    //ÁéÊÞ½×Êý  | 
|     DWORD        UpNeedExp;    //ÁéÊÞÉý½×ËùÐè¾ÑéÊý  | 
|     DWORD        AtkAdd;    //ÿ½×¹¥»÷Á¦¼Ó³É  | 
| };  | 
|   | 
|   | 
| //ÁéÊÞÎüÊÕ×°±¸±í  | 
|   | 
| struct tagPetEatEquip  | 
| {  | 
|     BYTE        _EquipColor;    //×°±¸Æ·ÖÊ  | 
|     BYTE        _EquipClass;    //×°±¸½×Êý  | 
|     DWORD        Exp;    //»ñµÃÁéÊÞÉý¼¶¾Ñé  | 
|     DWORD        FamilyStoreItemScore;    //ÏÉÃ˱¦¿â»ý·Ö  | 
| };  | 
|   | 
|   | 
| //×øÆï±í  | 
|   | 
| struct tagHorse  | 
| {  | 
|     DWORD        _HorseID;    //×øÆï±àºÅID  | 
|     DWORD        ItemID;    //×øÆïÎïÆ·ID  | 
|     DWORD        UnlockItemID;    //½âËø×øÆïÎïÆ·±àºÅ  | 
|     BYTE        UnlockItemCnt;    //½âËøËùÐèÎïÆ·ÊýÁ¿  | 
|     BYTE        InitLV;    //×øÆï³õʼµÈ¼¶  | 
|     BYTE        MaxLV;    //×øÆï×î¸ßµÈ¼¶  | 
|     BYTE        UseNeedRank;    //¶àÉٽ׿ÉÇл»Íâ¹Û  | 
|     BYTE        Quality;        //×øÆïÆ·ÖÊ  | 
|     DWORD        InitFightPower;    //³õʼսÁ¦  | 
|     char        UnlockSys;    //½âËø¹ã²¥Ìáʾ  | 
| };  | 
|   | 
|   | 
| //×øÆïÉý¼¶±í  | 
|   | 
| struct tagHorseUp  | 
| {  | 
|     DWORD        _HorseID;    //×øÆï±àºÅID  | 
|     BYTE        _LV;    //×øÆïµÈ¼¶  | 
|     DWORD        NeedExp;    //Éý¼¶ËùÐè¾Ñé  | 
|     list        AttrType;    //¼¤»î¼Ó³ÉÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //¼¤»î¼Ó³ÉÊôÐÔÖµ  | 
|     list        SkillID;    //¿É»ñµÃµÄ¼¼ÄÜID  | 
|     char        SysMark;    //¹ã²¥Ìáʾ  | 
| };  | 
|   | 
| //Íæ¼ÒµÈ¼¶±í  | 
|   | 
| struct tagPlayerLV  | 
| {  | 
|     WORD        _LV;    //Íæ¼ÒµÈ¼¶  | 
|     DWORD        ExpPoint;    //Éý¼¶ËùÐè¾Ñéµã,ÿ¸ö¾Ñéµã´ú±íµÄ¾ÑéÓÉÏîÄ¿¾ö¶¨  | 
|     DWORD        Exp;    //³ý¾Ñéµã×ܾÑéÍâÉý¼¶»¹ÐèµÄ¾Ñé  | 
|     BYTE        TalentPoint;    //µÈ¼¶»ñµÃµÄÌ츳µã  | 
|     DWORD        ReExp;    //µÈ¼¶¾ÑéЧÂÊ(second)  | 
|     DWORD        ReMaxHP;    //ÉúÃü  | 
|     DWORD        ReAtk;    //¹¥»÷  | 
|     DWORD        ReDef;    //·ÀÓù  | 
|     DWORD        ReHit;    //ÃüÖÐ  | 
|     DWORD        ReMiss;    //ÉÁ±Ü  | 
|     DWORD        ReAtkSpeed;    //¹¥ËÙ  | 
|     DWORD        ReSkillAtkRate;    //¼¼ÄÜÉ˺¦±ÈÀý  | 
|     DWORD        ReDamagePer;    //Ôö¼ÓÉ˺¦  | 
|     DWORD        ReDamReduce;    //¼õÉÙÉ˺¦  | 
|     DWORD        ReIgnoreDefRate;    //ÎÞÊÓ·ÀÓù±ÈÀý  | 
|     DWORD        ReLuckyHitRate;    //»áÐÄÒ»»÷ÂÊ  | 
|     DWORD        ReLuckyHit;    //»áÐÄÒ»»÷É˺¦  | 
|     DWORD        ReBleedDamage;    //Á÷ѪÉ˺¦Ôö¼Ó  | 
|     DWORD        ReIceAtk;    //ÕæÊµÉ˺¦  | 
|     DWORD        ReIceDef;    //ÕæÊµµÖÓù  | 
|     DWORD        RePetAtk;    //Áé³è¹¥»÷  | 
|     DWORD        RePetSkillAtkRate;    //Áé³è¼¼ÄÜ  | 
|     DWORD        RePetDamPer;    //Áé³èÉ˺¦Ôö¼Ó  | 
|     DWORD        ReFinalHurt;    //¹Ì¶¨É˺¦Ôö¼Ó  | 
|     DWORD        ReFinalHurtReduce;    //¹Ì¶¨É˺¦¼õÉÙ  | 
|     DWORD        RePotionReply;    //Ѫƿ»Ö¸´Á¿  | 
|     DWORD        RePotionCD;    //ѪƿCD  | 
|     DWORD        AttackEff;    //¹Ò»úЧÂÊ  | 
|     DWORD        ReFightPower;    //Õ½¶·Á¦  | 
| };  | 
|   | 
| //GM²âÊÔÊôÐﱒ  | 
|   | 
| struct tagGMAttr  | 
| {  | 
|     DWORD        _GMAttrID;    //Êý¾ÝID  | 
|     BYTE        IsValid;    //ÊÇ·ñÓÐЧµÄ  | 
|     char        GMAccID;    //GMÍæ¼ÒÕ˺Š | 
|     WORD        GMMaxLV;    //ÓÐЧµÄ×î´óµÈ¼¶  | 
|     WORD        AttrLV;    //¶ÔÓ¦µÈ¼¶±íÖеÄÊôÐÔ  | 
|     float        AttrPer;    //¶ÔÓ¦µÈ¼¶±íÖеıÈÀý  | 
|     dict        AttrSpecDict;    //ÌØÊâÊôÐÔÖµ×Öµä {attrKey:value, ...}  | 
|     dict        AttrExDict;    //ÌØÊâÊôÐÔÖµ×Öµä {attrKey:value, ...}  | 
| };  | 
|   | 
| //³É³¤Ð͹ÖÎï²ÎÊý¹«Ê½±í  | 
|   | 
| struct tagNPCStrengthen  | 
| {  | 
|     DWORD        _NPCID;    //NPCID  | 
|     BYTE        IsStrengthenByPlayerCount;//ÊÇ·ñ¸ù¾ÝÈËÊý³É³¤  | 
|     BYTE        LVStrengthenType;//µÈ¼¶³É³¤ÀàÐÍ, 0-²»°´µÈ¼¶³É³¤£»1-°´Íæ¼Òƽ¾ùµÈ¼¶£»2-°´Íæ¼Ò×î´óµÈ¼¶£»3-°´ÊÀ½çµÈ¼¶£»  | 
|     BYTE        CmpNPCBaseLV;//ÊÇ·ñ±È½ÏNPC±íµÈ¼¶, ÊǵĻ°È¡NPC±íÅäÖõȼ¶Óë³É³¤µÈ¼¶ÖнϴóµÈ¼¶  | 
|     DWORD        HitTime;//ÊÜ»÷´ÎÊý  | 
|     DWORD        DefCoefficient;//ÈËÎï·ÀÓùϵÊý  | 
|     DWORD        AtkCoefficient;//ÈËÎï¹¥»÷ϵÊý  | 
|     DWORD        AdjustCoefficient;//µ÷ÕûϵÊý±ÈÀý  | 
|     DWORD        AtkInterval;//¹ÖÎï¹¥»÷¼ä¸ô  | 
|     DWORD        HitRate;//¶ÔÈËÎïµÄÃüÖÐÂÊ  | 
|     DWORD        MissRate;//¶ÔÈËÎïµÄÉÁ±ÜÂÊ  | 
|     DWORD        MonterNum;//¹ÖÎïÊý  | 
|     DWORD        IceAtkCoefficient;//ÔªËØ¹¥»÷±ÈÀý  | 
|     DWORD        IceDefCoefficient;//ÔªËØ¿¹ÐÔ±ÈÀý  | 
|     DWORD        MaxEnduranceTime;//Íæ¼Ò×î´ó³ÐÊÜÉ˺¦Ê±¼ä  | 
|     DWORD        FightPowerCoefficient;//Ñ¹ÖÆÕ½¶·Á¦ÏµÊý  | 
| };  | 
|   | 
| //×°±¸Ì××°ÊôÐﱒ  | 
|   | 
| struct tagEquipSuitAttr  | 
| {  | 
|     BYTE        _GroupType;    //Ì××°×éºÏÀàÐÍ  | 
|     BYTE        _SuiteType;    //Ì××°ÀàÐÍ  | 
|     WORD        _SuiteLV;    //Ì××°µÈ¼¶  | 
|     BYTE        _Job;    //Ö°Òµ  | 
|     BYTE        Count1;    //½×¶Î1ËùÐèÊýÁ¿  | 
|     list        AttrType1;    //½×¶Î1ÊôÐÔÀàÐÍ  | 
|     list        AttrValue1;    //½×¶Î1ÊôÐÔÖµ  | 
|     BYTE        Count2;    //½×¶Î2ËùÐèÊýÁ¿  | 
|     list        AttrType2;    //½×¶Î2ÊôÐÔÀàÐÍ  | 
|     list        AttrValue2;    //½×¶Î2ÊôÐÔÖµ  | 
|     BYTE        Count3;    //½×¶Î2ËùÐèÊýÁ¿  | 
|     list        AttrType3;    //½×¶Î2ÊôÐÔÀàÐÍ  | 
|     list        AttrValue3;    //½×¶Î2ÊôÐÔÖµ  | 
| };  | 
|   | 
| //Ì××°ºÏ³É±í  | 
|   | 
| struct tagEquipSuitCompound  | 
| {  | 
|     BYTE        _SuiteType;    //Ì××°ÀàÐÍ  | 
|     BYTE        _EquipPlace;    //×°±¸²¿Î»  | 
|     WORD        _SuiteLV;    //Ì××°µÈ¼¶  | 
|     BYTE        _Job;    //Ö°Òµ  | 
|     list        CostItemID;    //²ÄÁÏID  | 
|     list        CostItemCnt;    //²ÄÁÏÊýÁ¿  | 
| };  | 
|   | 
| //ÓðÒí¾«Á¶ÊôÐﱒ  | 
|   | 
| struct tagWingRefineAttr  | 
| {  | 
|     BYTE        _WingClassLV;    //³á°ò½×¼¶  | 
|     dict        AttrInfo;    //¾«Á¶ÊôÐÔÐÅÏ¢  | 
|     dict        ItemColorInfo;    //¾«Á¶¾Ñé¶ÔÓ¦ÑÕÉ«ÐÅÏ¢  | 
|     DWORD        MaxRefineExp;    //±¾½××î´ó¾«Á¶Öµ  | 
| };  | 
|   | 
| //ÓðÒí¾«Á¶¾Ñé±í  | 
|   | 
| struct tagWingRefineExp  | 
| {  | 
|     DWORD        _ItemID;    //¾«Á¶ÎïÆ·ID  | 
|     DWORD        RandExpMin;    //×îÐ¡Ëæ»ú¾«Á¶Öµ  | 
|     DWORD        RandExpMax;    //×î´óËæ»ú¾«Á¶Öµ  | 
|     dict        ExpMaterial; //³á°ò´úÊý¶ÔÓ¦¾«Á¶Öµ  | 
| };  | 
|   | 
| //ÏÉÃ˿Ƽ¼±í  | 
|   | 
| struct tagFamilyTech  | 
| {  | 
|     DWORD        _TechID;    //¿Æ¼¼ID*1000+µÈ¼¶  | 
|     BYTE        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     DWORD        AttrValue;    //ÊôÐÔÖµ  | 
|     DWORD        Contribution;    //ÐèÒª¹±Ï×¶È  | 
|     DWORD        PowerEx;    //¶îÍâÕ½Á¦  | 
| };  | 
|   | 
| //Õ½¶·Á¦²ÎÊýµÈ¼¶ÏµÊý±í  | 
|   | 
| struct tagFightPowerParam  | 
| {  | 
|     WORD        _LV;    //µÈ¼¶  | 
|     DWORD        CftHit;    //ÃüÖÐϵÊý  | 
|     DWORD        CftMiss;    //ÉÁ±ÜϵÊý  | 
|     DWORD        CftDamagePer;    //Ôö¼ÓÉ˺¦ÏµÊý  | 
|     DWORD        CftDamReduce;    //¼õÉÙÉ˺¦ÏµÊý  | 
|     DWORD        CftIgnoreDefRate;    //ÎÞÊÓ·ÀÓùϵÊý  | 
|     DWORD        CftDamChanceDef;    //µÖÓùϵÊý  | 
|     DWORD        CftBleedDamage;    //Á÷ѪÉ˺¦ÏµÊý  | 
|     DWORD        CftFaintRate;    //»÷ÔÎϵÊý  | 
|     DWORD        CftSuperHitReduce;    //±©»÷¿¹ÐÔϵÊý  | 
|     DWORD        CftLuckyHitRateReduce;    //»áÐÄÒ»»÷¿¹ÐÔϵÊý  | 
|     DWORD        CftSkillAtkRate;    //¼¼ÄÜÉ˺¦ÏµÊý  | 
|     DWORD        CftSkillAtkRateReduce;    //¼¼ÄܼõÉËϵÊý  | 
|     DWORD        CftDamagePerPVP;    //PVPÉ˺¦Ôö¼¡ÏµÊý  | 
|     DWORD        CftDamagePerPVPReduce;    //PVPÉ˺¦¼õÉÙϵÊý  | 
|     DWORD        CftDamBackPer;    //É˺¦·´ÉäϵÊý  | 
|     DWORD        CftIgnoreDefRateReduce;    //ÎÞÊÓ·ÀÓù¿¹ÐÔϵÊý  | 
|     DWORD        CftFaintDefRate;    //¿ØÖƵֿ¹ÏµÊý  | 
|     DWORD        CftAtkSpeed;    //¹¥ËÙϵÊý  | 
|     DWORD        CftLuckyHit;    //»áÐÄÒ»»÷ϵÊý  | 
|     DWORD        CftSpeedPer;    //ÒÆ¶¯ËٶȰٷֱÈϵÊý  | 
|     DWORD        CftAtkPer;    //¹¥»÷°Ù·Ö±ÈϵÊý  | 
|     DWORD        CftMaxHPPer;    //ÉúÃü°Ù·Ö±ÈϵÊý  | 
| };  | 
|   | 
| //NPCµôÂä±í  | 
|   | 
| struct tagNPCDropItem  | 
| {  | 
|     DWORD        _NPCID;    //NPCID  | 
|     WORD        MaxWorldLV;    //×î´óÊÀ½çµÈ¼¶£¬0Ϊ²»ÏÞÖÆ£¬²»ÊÜ×î´óµôÂäµÈ¼¶Ó°Ïì  | 
|     WORD        MaxDropLV;    //×î´ó¿ÉµôÂäµÄÍæ¼ÒµÈ¼¶, ²»Ó°ÏìÊÀ½çµÈ¼¶  | 
|     BYTE        CanDropRatePlus;    //¶îÍâÌáÉýµôÂʵÄÊÇ·ñÓÐЧ  | 
|     BYTE        IsDropJobSelf;    //ÊÇ·ñÖ»µôÂä±¾Ö°Òµ  | 
|     list        PieRateDrop;    //±ýͼ¸ÅÂʵôÂäÐÅÏ¢ [(¸ÅÂÊ,0),(¸ÅÂÊ,(½×,ÑÕÉ«,²¿Î»¼¯ºÏkey)),...]  | 
|     BYTE        PieRateDoCnt;    //±ýͼ¸ÅÂÊÖ´ÐдÎÊý  | 
|     dict        IndepRateDrop;    //¶ÀÁ¢¸ÅÂʵôÂäÐÅÏ¢ {(½×,ÑÕÉ«,²¿Î»¼¯ºÏkey):¸ÅÂÊ,...}  | 
|     BYTE        IndepRateDoCnt;        //¶ÀÁ¢¸ÅÂÊÖ´ÐдÎÊý  | 
|     dict        IndepRateMaxDropCount;    //¶ÀÁ¢¸ÅÂÊ×°±¸ÑÕÉ«×î´óµôÂäÎïÆ·Êý {ÑÕÉ«:ÉÏÏÞÊýÁ¿,...}  | 
|     dict        EquipStarInfo;    //×°±¸ÑÕÉ«¶ÔÓ¦ÐǼ¶²ú³ö¹æÔò {ÑÕÉ«:[(¸ÅÂÊ, ÐǼ¶),...], ...}  | 
|     list        KillCountDropEquipEx;    //µÚx´Î»÷ɱ¸½¼Ó±Øµô×°±¸ [´ÎÊý,½×,ÑÕÉ«,[(¸ÅÂÊ,ÐǼ¶),...],²¿Î»¼¯ºÏkey]  | 
|     list        KillCountDropEquipEx2;    //ǰx´Î»÷ɱ¸½¼Ó±Øµô×°±¸ [´ÎÊý,½×,ÑÕÉ«,[(¸ÅÂÊ,ÐǼ¶),...],²¿Î»¼¯ºÏkey]  | 
|     dict        ItemIDDropRate;    //Ö¸¶¨ÎïÆ·IDµôÂÊÐÅÏ¢ {ÎïÆ·ID:¸ÅÂÊ, ...}  | 
|     dict        ItemIDMaxDropCount;    //Ö¸¶¨ÎïÆ·ID×î´óµôÂä¸öÊý,ûÅäĬÈÏ1´Î {ÎïÆ·ID:Ëæ»ú´ÎÊý,...}  | 
|     dict        ItemKeyDropRate;    //ÎïÆ·ID¼¯ºÏKey¸ÅÂÊ, Ëæ»úÒ»¸ö, ÓÅÏȼ¶µÍ {ÎïÆ·ID¼¯ºÏkey:¸ÅÂÊ, ...}   | 
|     dict        ItemKeyDropRateJob;    //ÎïÆ·ID¼¯ºÏKey¸ÅÂÊ, ×ÔÉíÖ°Òµ, ÓÅÏȼ¶¸ß {ÎïÆ·ID¼¯ºÏkey:¸ÅÂÊ, ...}  | 
|     dict        ItemKeyMaxDropCount;    //ÎïÆ·ID¼¯ºÏKeyËæ»ú´ÎÊý,ûÅäĬÈÏ1´Î {ÎïÆ·ID¼¯ºÏkey:Ëæ»ú´ÎÊý,...}  | 
|     BYTE        DropMoneyDoCnt;        //µôÂä½ð±ÒÖ´ÐдÎÊý  | 
|     WORD        DropMoneyRate;        //µôÂä½ð±Ò¸ÅÂÊ  | 
|     WORD        DropMoneyMin;        //µôÂä½ð±Ò×îСֵ  | 
|     WORD        DropMoneyMax;        //µôÂä½ð±Ò×î´óÖµ  | 
|     list        KillCountDrop;        //»÷ɱ´ÎÊý±Øµô,·ÀÖ¹°æ±¾±ä¸üÖØ¸´µô,Ö»Ö§³ÖÒ»´Î»ú»á [»÷ɱ´ÎÊý,ÊÇ·ñÖ±½Ó·ÅÈë±³°ü,[ÎïÆ·ID,...]]  | 
|     list        PriItemIDDrop;        //ËùÓйéÊôÕß˽ÓеôÂäÎïÆ·IDÁбí,ÿÈËÒ»·Ý,ĬÈϰó¶¨,ûÓÐÖ°ÒµÇø·Ö[ÎïÆ·ID, ...]  | 
| };  | 
|   | 
| //·ûÓ¡Ëþ±í  | 
|   | 
| struct tagRuneTower  | 
| {  | 
|     DWORD        _ID;    //Ëþ±àºÅ  | 
|     DWORD        RunePoint;    //¹ý¹Ø¸ø·ûÓ¡¾«»ª  | 
|     DWORD        Ysog;    //¹ý¹Ø¸øÄ§¾«  | 
|     DWORD        NPCID;    //npcid  | 
|     BYTE        IsNotify;    //ÊÇ·ñ¹ã²¥  | 
|     list        FixEndAward;    //¹Ì¶¨½áËã½±Àø  | 
|     dict        GoodDrop;    //ÕäÏ¡·ûӡͨ¹ØµôÂä¸ÅÂÊ  | 
|     DWORD        SweepRunePoint;    //ɨµ´·ûÓ¡¾«»ª  | 
|     DWORD        SweepYsog;    //ɨµ´Ä§¾«  | 
|     dict        SweepGoodDrop;    //ɨµ´ÕäÏ¡·ûÓ¡  | 
| };  | 
|   | 
| //¸±±¾×Ü±í  | 
|   | 
| struct tagFBFunc  | 
| {  | 
|     DWORD        _DataMapID;    //Êý¾ÝµØÍ¼ID  | 
|     BYTE        DayTimes;    //ÿÈÕ¿ÉÌôÕ½´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        DayResetType;    //ÿÈÕ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
|     BYTE        WeekTimes;    //ÿÖÜ¿ÉÌôÕ½´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        WeekResetType;    //ÿÖÜ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
|     list        RewardRate;    //ÆÀ¼¶½±Àø±ÈÀý  | 
|     DWORD        BuyTimesVIPPriID;    //¹ºÂò´ÎÊýVIPȨÏÞID  | 
|     DWORD        ExtraTimesVIPPriID;    //¶îÍâ´ÎÊýVIPȨÏÞID  | 
|     DWORD        ExtraTimesMWPriID;    //¶îÍâ´ÎÊý·¨±¦È¨ÏÞID  | 
|     BYTE        GuardPick;    //¸ÃµØÍ¼ÊØ»¤ÊÇ·ñÄÜʰȡ  | 
|     WORD        OfflineTime;    //ÀëÏß¶à¾ÃÍ˳ö¸±±¾(Ãë)  | 
|     WORD        HelpPoint;    //ÖúÕ½»ý·Ö(0´ú±í²»¿ÉÖúÕ½)  | 
| };  | 
|   | 
| //¸±±¾¹¦ÄÜÏß·±í  | 
|   | 
| struct tagFBLine  | 
| {  | 
|     DWORD        _DataMapID;    //Êý¾ÝµØÍ¼ID  | 
|     BYTE        _LineID;    //¹¦ÄÜÏß·ID  | 
|     DWORD        MapID;    //³¡¾°µØÍ¼ID  | 
|     WORD        LVLimitMin;    //×îµÍµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     WORD        LVLimitMax;    //×î¸ßµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        JobRankLimit;    //ËùÐèÖ°Òµ½×  | 
|     DWORD        TicketID;    //ÃÅÆ±ID  | 
|     list        TicketCostCnt;    //ÃÅÆ±ÏûºÄÊýÐÅÏ¢  | 
|     WORD        TicketPrice;    //ÃÅÆ±µ¥¼Û(²»ÄÜÓÃÇ®µÖµÄÅä0)  | 
|     WORD        SweepLVLimit;    //ɨµ´µÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     DWORD        SweepItemID;    //ɨµ´ËùÐèµÀ¾ßID  | 
|     BYTE        SweepCostCnt;    //ɨµ´ËùÐèµÀ¾ß¸öÊý  | 
|     eval        EnterPosInfo;    //½øÈë×ø±êÐÅÏ¢  | 
|     eval        StepTime;    //½×¶Îʱ¼ä  | 
|     eval        RefreshNPC;    //±êÊÔµãË¢¹ÖÅäÖà  | 
|     eval        GradeInfo;    //ÆÀ¼¶¹æÔò  | 
|     eval        RewardInfo;    //½±ÀøÐÅÏ¢  | 
| };  | 
|   | 
| //¸±±¾Ë¢¹Ö±êʶµã±í  | 
|   | 
| struct tagNPCCustomRefresh  | 
| {  | 
|     DWORD        _ID;    //Ë¢¹Ö¹æÔòID  | 
|     list        RefreshMarkInfo;    //±êÊÔµã, µ±ÅäÖöà¸öÊ±ÎªËæ»ú±êÊÔµã, ²»Öظ´  | 
|     DWORD        RefreshNPCID;    //Ö¸¶¨NPCID  | 
|     list        RandNPCIDList;    //µ¥´ÎËæ»úË¢¹ÖNPCID  | 
|     list        NPCIDCountList;    //µ¥´ÎÖ¸¶¨Ë¢¹ÖNPC  | 
|     WORD        MaxCount;    //µ¥¸öµã×î´ó´æÔÚ¹ÖÎïÊý  | 
|     WORD        TotalMaxCount;    //Ïàͬ±êÊÔµã×ÜË¢¹ÖÎïÊý  | 
|     BYTE        IsLineOneOnly;    //ÊÇ·ñ½öÔÚ1ÏßË¢¹Ö  | 
|     DWORD        RefreshTick;    //Ë¢¹Ö¼ä¸ôÃë  | 
|     BYTE        IsRepeat;    //ÊÇ·ñÑ»·Ë¢¹Ö  | 
| };  | 
|   | 
| //ÈÕ³£»î¶¯±í  | 
|   | 
| struct tagDailyAction  | 
| {  | 
|     DWORD        _DailyID;    //»î¶¯ID  | 
|     DWORD        DayTimes;    //ÿÈÕ´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        DayResetType;    //ÿÈÕ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
|     DWORD        WeekTimes;    //ÿÖÜ´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        WeekResetType;    //ÿÖÜ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
| };  | 
|   | 
| //×°±¸ÆÀ·ÖÊôÐÔϵÊý±í  | 
|   | 
| struct tagEquipGSParam  | 
| {  | 
|     BYTE        _ClassLV;        // ×°±¸½×¼¶  | 
|     BYTE        _EquipColor;    // ×°±¸ÑÕÉ«  | 
|     BYTE        _EquipQualityLV;    // ×°±¸ÐǼ¶  | 
|     DWORD        AtkPerC;        // ¹¥»÷°Ù·Ö±ÈϵÊý  | 
|     DWORD        DamagePerC;    // Ôö¼ÓÉ˺¦ÏµÊý  | 
|     DWORD        SuperHitRateC;    // ±©»÷ÂÊϵÊý  | 
|     DWORD        SuperHitPerC;    // ±©»÷Öµ°Ù·Ö±ÈϵÊý  | 
|     DWORD        DamReducePerC;    // ¼õÉÙÉ˺¦ÏµÊý  | 
|     DWORD        MaxHPPerC;    // ÉúÃüÉÏÏÞ°Ù·Ö±ÈϵÊý  | 
|     DWORD        DefPerC;        // ·ÀÓùÁ¦°Ù·Ö±ÈϵÊý  | 
|     DWORD        LuckyHitRateC;    // »áÐÄÒ»»÷ÂÊϵÊý  | 
|     DWORD        PetDamPerC;    // Áé³èÉ˺¦Ôö¼Ó°Ù·Ö±ÈϵÊý  | 
|     DWORD        PerLVAtkC;    // Ã¿¼¶Ôö¼Ó¹¥»÷Á¦ÏµÊý  | 
|     DWORD        MissRateC;    // ÉÁ±ÜÖµ°Ù·Ö±ÈϵÊý  | 
|     DWORD        HitRateC;        // ÃüÖÐÁ¦°Ù·Ö±ÈϵÊý  | 
|     DWORD        DamBackPerC;    // É˺¦·´Éä°Ù·Ö±ÈϵÊý  | 
|     DWORD        PerLVMaxHPC;    // Ã¿¼¶Ôö¼ÓÉúÃüֵϵÊý  | 
|     DWORD        DropEquipPerC;    // Ôö¼Ó×°±¸µôÂ伸ÂÊϵÊý  | 
|     DWORD        DropMoneyPerC;    // Ôö¼ÓµôÂä½ð±ÒÁ¿°Ù·Ö±ÈϵÊý  | 
|     DWORD        IgnoreDefRateReduceC;    // ÎÞÊÓ·ÀÓù¿¹ÐÔ°Ù·Ö±ÈϵÊý  | 
|     DWORD        DamChanceDefC;    // µÖÓù°Ù·Ö±ÈϵÊý  | 
|     DWORD        SuperHitReduceC;    // ±©»÷¿¹ÐÔ°Ù·Ö±ÈϵÊý  | 
|     DWORD        SkillAtkRateC;    // ¼¼ÄÜÉ˺¦°Ù·Ö±ÈϵÊý  | 
|     DWORD        SpeedPerC;    // Òƶ¯ËٶȰٷֱÈϵÊý  | 
|     DWORD        AtkSpeedC;    // ¹¥»÷ËÙ¶ÈϵÊý  | 
|     DWORD        SkillAtkRateReduceC;    // ¼¼ÄܼõÉ˰ٷֱÈϵÊý  | 
|     DWORD        HitC;    // ÃüÖÐϵÊý  | 
|     DWORD        MissC;    // ÉÁ±ÜϵÊý  | 
| };  | 
|   | 
| //³É¾Í±í  | 
|   | 
| struct tagSuccess  | 
| {  | 
|     DWORD        _ID;    //³É¾ÍID  | 
|     WORD        Type;    //³É¾ÍÀàÐÍ  | 
|     DWORD        NeedCnt;    //ÐèÒªÊýÁ¿  | 
|     list        Condition;    //¸¨ÖúÌõ¼þ  | 
|     list        PreSuccess;    //ÐèÒª´ï³ÉǰÖÃ³É¾Í  | 
|     dict        AwardItem;    //½±ÀøÎïÆ·ÁÐ±í  | 
|     dict        Money;    //½ðÇ®  | 
|     DWORD        Exp;    //¾Ñé  | 
|     dict        AwardAttr;    //½±ÀøÊôÐÔ  | 
|     DWORD        RedPacketID;    //ºì°üID  | 
|     DWORD        MagicWeaponID;    //·¨±¦ID  | 
|     DWORD        MagicWeaponExp;    //·¨±¦Éý¼¶¾Ñé  | 
| };  | 
|   | 
| //·¨±¦±í  | 
|   | 
| struct tagTreasure  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     BYTE        TreasureType;    //·¨±¦ÀàÐÍ  | 
|     DWORD        PreTreasure;    //ǰÖ÷¨±¦  | 
|     list        SuccID;    //³É¾ÍID  | 
|     list        Potentials;    //¼¼ÄÜDZÁ¦Éý¼¶  | 
|     list        SkillPower;    //¼¼ÄܽâËøÕ½Á¦  | 
|     dict        NeedItem;    //ÐèÒªÏûºÄÎïÆ·  | 
| };  | 
|   | 
| //·¨±¦Éý¼¶±í  | 
|   | 
| struct tagTreasureUp  | 
| {  | 
|     DWORD        _MWID;    //·¨±¦ID  | 
|     BYTE        _LV;    //·¨±¦µÈ¼¶  | 
|     DWORD        NeedExp;    //ÐèÒª¾Ñé  | 
|     dict        AddAttr;    //ÊôÐÔ  | 
|     list        UnLockSkill;    //½âËøµÄ¼¼ÄÜ  | 
|     DWORD        ActiveMWID;    //¼¤»î·¨±¦ID  | 
|     list        ItemAward;    //ÎïÆ·½±Àø[itemID,cnt,isbind]  | 
|     DWORD        ActiveSoulID;    //¼¤»î»êID  | 
| };  | 
|   | 
| //·¨±¦ÌØÈ¨±í  | 
|   | 
| struct tagTreasurePrivilege  | 
| {  | 
|     DWORD        _PrivilegeID;    //ÌØÈ¨ID  | 
|     eval        EffectValue;    //ÌØÊâЧ¹û  | 
|     DWORD        SingleValue;    //½ø¶È  | 
|     DWORD        MaxValue;    //×î´ó½ø¶È  | 
|     dict        AddAttr;    //ÊôÐÔ  | 
|     list        ItemAward;    //ÎïÆ·½±Àø  | 
|     list        SuccessList;    //ÐèÒªÍê³É³É¾Í  | 
| };  | 
|   | 
| //·¨±¦¼¼ÄÜÉý¼¶±í  | 
|   | 
| struct tagTreasureSkill  | 
| {  | 
|     BYTE        _SkillUpType;    //¼¼ÄÜÉý¼¶ÀàÐÍ  | 
|     BYTE        _SkillLV;    //¼¼Äܵȼ¶  | 
|     DWORD        NeedPoint;    //Éýµ½µ±Ç°¼¶ÏûºÄÌìʯ¾«»ª  | 
|     WORD        InitRate;    //³õʼ¸ÅÂÊ  | 
|     list        NeedItemID;    //Éýµ½µ±Ç°¼¶ÈܲÊʯID  | 
|     list        NeedItemCnt;    //Éýµ½µ±Ç°¼¶ÈܲÊʯÊýÁ¿  | 
|     list        MaxRate;    //Éýµ½µ±Ç°¼¶¸ÅÂÊ  | 
| };  | 
|   | 
| //Á¬ÐøÇ©µ½½±Àø±í  | 
|   | 
| struct tagContineSignAward  | 
| {  | 
|     BYTE        _ContineDay;    //Á¬ÐøÇ©µ½ÌìÊý  | 
|     list        ItemID;    //½±ÀøÎïÆ·ID   | 
|     BYTE        IsBind;    //ÎïÆ·ÊÇ·ñ°ó¶¨      | 
|     list        ItemNum;    //ÎïÆ·½±Àø×îСֵ  | 
|     list        JobItemList;    //Ö°ÒµÎïÆ·ÁÐ±í  | 
| };  | 
|   | 
| //Ç©µ½½±Àø±í  | 
|   | 
| struct tagSignAward  | 
| {  | 
|     BYTE        _RewardID;    //½±ÀøID  | 
|     list        ItemID;    //½±ÀøÎïÆ·ID  | 
|     BYTE        IsBind;    //ÎïÆ·ÊÇ·ñ°ó¶¨   | 
|     BYTE        VipLv;    //vipµÈ¼¶  | 
|     list        OrdinaryNum;    //½±ÀøÎïÆ·ÊýÁ¿  | 
|     BYTE        VipMultiple;   //½±Àø±¶ÂÊ      | 
| };  | 
|   | 
| //VIPÀñ°ü±í  | 
|   | 
| struct tagVIPAward  | 
| {  | 
|     BYTE        _VIPLV;    //VIPµÈ¼¶  | 
|     dict        ItemID;    //½±ÀøÎïÆ·ÐÅÏ¢  | 
|     WORD        Price;    //Àñ°üÏÖ¼Û   | 
|     WORD        OldPrice;    //Àñ°üÔ¼Û  | 
| };  | 
|   | 
| //¶¨ÖÆÎïÆ·±í  | 
|   | 
| struct tagAppointItem  | 
| {  | 
|     DWORD        _ID;    //¶¨ÖÆÎïÆ·ID  | 
|     BYTE        SuiteLV;    //Ì××°µÈ¼¶  | 
|     BYTE        CancelUseLimit;    //´©´÷ÏÞÖÆ(³ýÖ°Òµ)  | 
|     list        LegendAttrID;    //´«ÆæÊôÐÔID  | 
|     list        LegendAttrValue;    //´«ÆæÊôÐÔÖµ  | 
|     list        OutOfPrintAttr;        //¾ø°æÊôÐÔID  | 
|     list        OutOfPrintAttrValue;        //¾ø°æÊôÐÔ×î´óÖµ  | 
| };  | 
|   | 
| //VIPÌØÈ¨±í  | 
|   | 
| struct tagVipPrivilege  | 
| {  | 
|     DWORD   _VIPPriID;  //ÌØÈ¨ID  | 
|     DWORD   VIP0;   //VIP0¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP1;   //VIP1¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP2;   //VIP2¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP3;   //VIP3¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP4;   //VIP4¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP5;   //VIP5¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP6;    //VIP6¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP7;    //VIP7¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP8;    //VIP8¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP9;    //VIP9¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP10;   //VIP10¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP11;   //VIP11¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP12;   //VIP12¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP13;   //VIP13¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP14;   //VIP14¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     DWORD   VIP15;   //VIP15¶ÔÓ¦µÄÌØÈ¨Öµ  | 
| };  | 
|   | 
| //ÉÌ³Ç±í  | 
|   | 
| struct tagStore  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     DWORD        ShopType;    //É̵êÀàÐÍ  | 
|     BYTE        OperationActionShop;    //ÊÇ·ñÔËÓª»î¶¯ÉÌµê  | 
|     DWORD        ItemID;    //ÎïÆ·ID  | 
|     WORD        ItemCnt;    //ÎïÆ·ÊýÁ¿  | 
|     BYTE        IsBind;    //ÊÇ·ñ°ó¶¨  | 
|     list        ItemListEx;    //À©Õ¹ÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...]  | 
|     DWORD        MainItemID;    //±êµÄÎïÆ·ID  | 
|     list        JobItem;    //Ö°ÒµÌæ»»ÎïÆ·  | 
|     BYTE        RefreshType;    //Ë¢ÐÂÀàÐÍ 0-²»ÖØÖÃ,1-onWeek0µã,2-onWeek5µã,3-OnDay0µã,4-OnDay5µã  | 
|     list        LimitVIPLV;    //VIPÏÞÖÆ  | 
|     DWORD        LimitLV;    //µÈ¼¶ÏÞÖÆ  | 
|     list        LimitCnt;    //¸öÈËÏÞÖÆÊýÁ¿  | 
|     DWORD        ServerLimitCnt;    //È«·þÏÞÖÆÊýÁ¿  | 
|     BYTE        MoneyType;    //½ðÇ®ÀàÐÍ  | 
|     DWORD        MoneyNum;    //½ðÇ®ÊýÁ¿  | 
|     DWORD        MoneyOriginal;    //Ô¼Û  | 
|     DWORD        LimitValue;    //ÏÞÖÆÌõ¼þ  | 
|     char        NotifyMark;    //¹ã²¥Ìáʾ  | 
|     char        MailKey;    //±³°ü²»×ãʱÓʼþKEY  | 
| };  | 
|   | 
| //ÏÞÊ±ÌØ»Ý±í  | 
|   | 
| struct tagActSpringSale  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     list        StartTimeList;    //¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     list        EndTimeList;    //½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        ShopTypeList;    //É̵êÀàÐÍÁÐ±í  | 
|     char        MailKey;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþkey  | 
|     list        MailItemPrize;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþ½±ÀøÎïÆ·  | 
| };  | 
|   | 
| //ÈÕ³£ÈÎÎñ±í  | 
|   | 
| struct tagDailyQuest  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     BYTE        RelatedType;    //¹ØÁªÀàÐÍ  | 
|     DWORD        RelatedID;    //¹ØÁªID  | 
|     WORD        UnLockFuncID;    //½âËø¹¦ÄÜID  | 
|     BYTE        OnceActivityTime;    //Ôö¼Ó»îÔ¾ËùÐè´ÎÊý  | 
|     BYTE        OnceActivity;    //µ¥´Î»îÔ¾Öµ  | 
|     WORD        TotalActiveValue;    //×Ü»îÔ¾  | 
| };  | 
|   | 
| //ÈÕ³£»îÔ¾½±Àø±í  | 
|   | 
| struct tagDailyLivenessReward  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     WORD        Liveness;    //ËùÐè»îÔ¾¶È  | 
|     list        StageLV;    //½×¶ÎµÈ¼¶  | 
|     list        ItemID;    //ÎïÆ·ID  | 
|     list        ItemCount;    //ÎïÆ·ÊýÁ¿  | 
|     list        ItemBind;    //ÊÇ·ñ°ó¶¨  | 
| };  | 
|   | 
| //·¨±¦ÖýÁ¶±í  | 
|   | 
| struct tagTreasureRefine  | 
| {  | 
|     WORD    _TreasureID;    //·¨±¦id  | 
|     BYTE    _TreasureLV;    //·¨±¦½×Êý   | 
|     dict    TreasureAttr;    //ÊôÐÔ£¨×î¶à3Ìõ£©  | 
|     dict    Material;    //ÖýÁ¶²ÄÁÏ  | 
|     WORD    SuccessRate;   //³É¹¦ÂÊ      | 
|     DWORD   OpenSkill;  //½âËø¼¼ÄÜ  | 
|     BYTE    NeedAlchemyLV; //ËùÐèÁ¶µ¤µÈ¼¶  | 
|     BYTE    NeedAllTreasureLV; //ËùÐèËùÓз¨±¦µÈ¼¶  | 
| };  | 
|   | 
| //Á¶µ¤Â¯µÈ¼¶±í  | 
|   | 
| struct tagRefineStove  | 
| {  | 
|     BYTE    _StoveLV;    //Á¶µ¤Â¯µÈ¼¶  | 
|     DWORD    UpNeedExp;    //ÉýÏÂÒ»¼¶ËùÐè¾Ñé  | 
|     list    AddAttrType;    //µÈ¼¶¼Ó³ÉÊôÐÔÀàÐÍ      | 
|     list    AddAttrNum;    //µÈ¼¶¼Ó³ÉÊôÐÔÖµ  | 
| };  | 
|   | 
| //Á¶µ¤±í  | 
|   | 
| struct tagAlchemy  | 
| {  | 
|     WORD    _AlchemyID;    //Á¶µ¤±àºÅ  | 
|     dict    Material;    //ËùÐèËùÓвÄÁϺÍÊýÁ¿  | 
|     WORD    AlchemyExp; //Á¶µ¤»ñµÃ¾ÑéÖµ  | 
|     list    AlchemyItem;    //²ú³öÎïÆ·¼°ÊýÁ¿¼°È¨ÖØ  | 
|     list    SpecAlchemyID;    //ÌØÊâÁ¶µ¤ID×é  | 
|     list    AlchemyUp;    //²ú³ö°üº¬µÄ½ø½×µ¤Ò©  | 
|     BYTE    NeedAlchemyLV;    //ËùÐèÁ¶µ¤µÈ¼¶  | 
| };  | 
|   | 
| //Á¶µ¤ÌØÊâ²ú³ö±í  | 
|   | 
| struct tagAlchemySpec  | 
| {  | 
|     WORD    _SpecAlchemyID;    //ÌØÊâÁ¶µ¤ID  | 
|     DWORD    MaterialID;    //ÌØÊâ²ÄÁÏID  | 
|     BYTE    MaterialCnt;    //ÌØÊâ²ÄÁÏIDÏûºÄ¸öÊý  | 
|     WORD    AlchemyExp; //ÌØÊâ²ÄÁϾÑé  | 
|     list    AlchemyItem;    //²ú³öÎïÆ·¼°ÊýÁ¿¼°È¨ÖØ  | 
|     BYTE    NeedAlchemyLV;    //ËùÐèÁ¶µ¤µÈ¼¶  | 
| };  | 
|   | 
| //BOSSÐÅÏ¢±í  | 
|   | 
| struct tagBOSSInfo  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     DWORD        MapID;    //µØÍ¼ID  | 
|     BYTE        RefreshMark;    //ˢбêʶµã  | 
|     BYTE        IsNeedShunt;    //ÊÇ·ñÐèÒª·ÖÁ÷  | 
|     BYTE        RelatedType;    //Ë¢¹Ö¹ØÁªÀàÐÍ  | 
|     WORD        RelatedID;    //¹ØÁªID  | 
|     DWORD        StoneNPCID;    //ű®NPCID  | 
| };  | 
|   | 
| //¹ÅÉñ½ûµØ±í  | 
|   | 
| struct tagElderGodArea  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     BYTE        MonsterAnger;    //¹ÖÎïÅÆøÖµ  | 
| };  | 
|   | 
| //¸öÈËBOSS±í  | 
|   | 
| struct tagPersonalBoss  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     DWORD        ChanllengeLv;    //¿ÉÌôÕ½µÈ¼¶  | 
| };  | 
|   | 
| //ÏÉÃË»îÔ¾±í  | 
|   | 
| struct tagFamilyActivity  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     WORD        UnLockFuncID;    //½âËø¹¦ÄÜID  | 
|     BYTE        TotalActivityTime;    //×Ü´ÎÊý  | 
|     WORD        SingleTimes;    //Ôö¼Ó»îÔ¾ÐèÒª´ÎÊý  | 
|     WORD        SingleActiveValue;    //ÿÂÖÔö¼Ó»îÔ¾»ý·Ö  | 
| };  | 
|   | 
| //ÏÉÃ˺ì°ü±í  | 
|   | 
| struct tagFamilyRedPack  | 
| {  | 
|     WORD        _ID;    //ID  | 
|     WORD        GetType;    //»ñµÃ;¾¶  | 
|     WORD        MoneyNum;    //ºì°ü¶î¶È  | 
|     BYTE        MoneyType;    //½ðÇ®ÀàÐÍ  | 
|     BYTE        PacketCnt;    //ºì°ü¸öÊý  | 
| };  | 
|   | 
| //NPCÐã±í  | 
|   | 
| struct tagNPCShow  | 
| {  | 
|     DWORD        _NPCID;  | 
|     DWORD        _MapID;  | 
|     BYTE        LineID;  | 
|     DWORD        ProtectTime; //±£»¤Ê±¼ä, ºÁÃë  | 
|     DWORD        BindMissionID;    //°ó¶¨µÄÈÎÎñID  | 
|     BYTE        ShowType;    //0-·þÎñ¶Ë֪ͨ,>0ǰ¶Ë´¦Àí  | 
| };  | 
|   | 
|   | 
| //·âħ̳BOSS±í  | 
|   | 
| struct tagSealDemon  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     BYTE        LineID;  | 
|     WORD        KillTime;    //»÷ɱ×Üʱ¼äÃë  | 
| };  | 
|   | 
| //¸±±¾¹ÄÎè±í  | 
|   | 
| struct tagFbEncourage  | 
| {  | 
|     DWORD        _DataMapID;    //µØÍ¼ID  | 
|     BYTE        _InspireType; //¹ÄÎèÀàÐÍ  | 
|     WORD        InspireMaxLV;    //¹ÄÎèµÈ¼¶ÏÞÖÆ  | 
|     char        MoneyCount;    //µ¥´ÎÏûºÄ½ðÇ®ÊýÁ¿  | 
| };  | 
|   | 
| //·ûÓ¡ºÏ³É±í  | 
|   | 
| struct tagRuneCompound  | 
| {  | 
|     DWORD        _TagItemID;    //ºÏ³ÉµÄ·ûÓ¡ÎïÆ·ID  | 
|     list        NeedItem; //ÐèÒªµÄÎïÆ·ID  | 
|     WORD        NeedMJ;    //ÐèÒªµÄħ¾«ÊýÁ¿  | 
| };  | 
|   | 
| //×ÊÔ´ÕÒ»Ø±í  | 
|   | 
| struct tagResourcesBack  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     DWORD        RelatedID; //¹ØÁªÈÕ³£ÈÎÎñ±íID  | 
|     BYTE        CanBackTimes;    //ÄÜ·ñÕһشÎÊý  | 
|     BYTE        NormalCostJade; //°óÓñÕÒ»ØÆÕͨ´ÎÊý¼Û¸ñ  | 
|     WORD        VipCostJade; //°óÓñÕÒ»ØVIP´ÎÊýÕһؼ۸ñ  | 
|     dict        JadeReward; //°óÓñÕһؽ±Àø  | 
|     DWORD        CostCopper; //ÍÇ®ÕÒ»ØÍÇ®ÏûºÄ  | 
|     dict        CopperReward; //ÍÇ®Õһؽ±Àø  | 
| };  | 
|   | 
| //±¦Ïä±í¿ªÆô  | 
|   | 
| struct tagChests  | 
| {  | 
|     DWORD        _ChestsItemID;    //±¦ÏäÎïÆ·ID  | 
|     DWORD        CostItemID;        //ÏûºÄÎïÆ·ID  | 
|     BYTE        CostItemCount;    //ÏûºÄÎïÆ·¸öÊý  | 
|     WORD        CostGold;        //ÏûºÄÏÉÓñ  | 
|     BYTE        ShowType;        //ǰ¶Ë±íÏÖÀàÐÍ0-ÎÞ±íÏÖ, >0ÓбíÏÖÐèͬ²½½á¹û£¬¾ßÌåÀàÐÍǰ¶Ë×Ô¶¨Òå  | 
|     BYTE        IsBind;            //¿ª³öÎïÆ·ÊÇ·ñ°ó¶¨  | 
| };  | 
|   | 
| //±¦Ïä±í²ú³ö±í  | 
|   | 
| struct tagChestsAward  | 
| {  | 
|     DWORD        _ChestsItemID;    //±¦ÏäÎïÆ·ID  | 
|     WORD        AwardLV;        //±¦Ïä½±ÀøµÈ¼¶  | 
|     dict        SelectItemDict; //Ñ¡ÔñÎïÆ·ID¶ÔÓ¦¸öÊý×ֵ䣬¹æ¶¨Ö»ÄÜѡһ¸ö  | 
|     dict        FixedItemDict; //¹Ì¶¨²ú³öÎïÆ·ID¶ÔÓ¦¸öÊý×Öµä  | 
|     list        RandItemList1; //Ëæ»úÎïÆ·±ýͼÁбí1  | 
|     list        RandTimeList1; //Ëæ»ú´ÎÊý±ýͼÁбí1  | 
|     list        RandItemList2; //Ëæ»úÎïÆ·±ýͼÁбí2  | 
|     list        RandTimeList2; //Ëæ»ú´ÎÊý±ýͼÁбí2  | 
|     dict        RandItemByUseCount; //±¦Ï俪ÆôX´Î¶ÔÓ¦ÌØÊâ²ú³ö£¬Óë±ýͼÁбí2»¥³â  | 
|     list        JobItemList; //Ö°ÒµÎïÆ·ÁÐ±í  | 
|     BYTE        MoneyType;    //»õ±ÒÀàÐÍ  | 
|     DWORD        MoneyCount;    //»õ±ÒÊýÁ¿  | 
|     list        NeedNotifyItemList;    //ÐèÒª¹ã²¥µÄÎïÆ·IDÁÐ±í  | 
| };  | 
|   | 
| //VIPɱ¹Ö¼Ó¹¥»÷±í  | 
|   | 
| struct tagVIPKillNPC  | 
| {  | 
|     WORD        _KillLV;    //ɱ¹Ö³É³¤µÈ¼¶  | 
|     DWORD        LVExpPoint;    //Éý¼¶ËùÐè¾Ñéµã,ÿ¸ö¾Ñéµã´ú±íµÄ¾ÑéÓÉÏîÄ¿¾ö¶¨  | 
|     DWORD        LVExp;        //³ý¾Ñéµã×ܾÑéÍâÉý¼¶»¹ÐèµÄ¾Ñé  | 
|     DWORD        AddMinAtk;    //Ôö¼Ó×îС¹¥»÷  | 
|     DWORD        AddMaxAtk;    //Ôö¼Ó×î´ó¹¥»÷  | 
| };  | 
|   | 
|   | 
| //È«Ãñ³å°ñÅÅÐн±Àø±í  | 
|   | 
| struct tagOSCBillRankAward  | 
| {  | 
|     BYTE        _OSCBillType;    //³å°ñÀàÐÍ  | 
|     BYTE        RankA;    //ÅÅÃûA  | 
|     BYTE        RankB;    //ÖÁÅÅÃûB  | 
|     dict        RankAward; //ÅÅÃû½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
| };  | 
|   | 
|   | 
| //È«Ãñ³å°ñ´ï³É½±Àø±í  | 
|   | 
| struct tagOSCBillTagAward  | 
| {  | 
|     BYTE        _OSCBillType;    //³å°ñÀàÐÍ  | 
|     WORD        TagCondition;    //Ä¿±êÌõ¼þÖµ  | 
|     dict        TagAward; //Ä¿±ê½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
| };  | 
|   | 
| //ÆßÌìµÇ¼½±Àø±í  | 
|   | 
| struct tagLoginDayAward  | 
| {  | 
|     BYTE        _DayID;    //ÌìÊý  | 
|     dict        Reward;    //½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
| };  | 
|   | 
| //ÆßÌìÔÚÏß½±Àø±í  | 
|   | 
| struct tagOnlineAward  | 
| {  | 
|     BYTE        _DayID;    //ÌìÊý  | 
|     list        StageTime;    //½×¶ÎËùÐèʱ¼ä(·ÖÖÓ)  | 
|     dict        Reward;    //½±Àø {"Ë÷Òý":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
| };  | 
|   | 
| //ÆßÌìÏÞÊ±ÌØ»Ý±í  | 
|   | 
| struct tagSpringSale  | 
| {  | 
|     BYTE        _GiftID;    //Àñ°üID  | 
|     BYTE        SellDay;    //´´½ÇµÚ¼¸ÌìÉÏ¼Ü  | 
|     BYTE        BuyNumLimit;    //ÿÈËÏÞ¹ºÊýÁ¿  | 
|     WORD        GiftPrice;    //Àñ°ü¼Û¸ñ£¬ÏÉÓñ  | 
|     list        GiftItemList;    //Àñ°üÎïÆ·ÐÅÏ¢Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
| };  | 
|   | 
| //³äÖµÉÌÆ·±àºÅ±í  | 
|   | 
| struct tagOrderInfo  | 
| {  | 
|     char        _OrderInfo;    //ÉÌÆ·±àºÅ  | 
|     char        _AppID;    //appID  | 
|     float        PayRMBNum;    //¸¶·Ñ¶î¶È£¬Ôª  | 
|     DWORD        CTGID;    //¶ÔÓ¦³äÖµID  | 
|     DWORD        GiftbagID;    //¶ÔÓ¦ÏÞʱÀñ°ü±àºÅ  | 
| };  | 
|   | 
| //³äÖµ±í  | 
|   | 
| struct tagCTG  | 
| {  | 
|     BYTE        _RecordID;        //¼Ç¼ID  | 
|     BYTE        DailyBuyCount;    //ÿÈÕÏÞ¹º´ÎÊý  | 
|     WORD        GainGold;    //»ñµÃÏÉÓñÊý  | 
|     WORD        GainGoldPrize;    //ÔùËÍÏÉÓñÊý  | 
|     WORD        FirstGoldPrize;    //Ê״γäÖµ¸ÃµµÎ»ÔùËÍÏÉÓñ  | 
|     list        GainItemList;    //»ñµÃÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
| };  | 
|   | 
| //µÈ¼¶½±Àø±í  | 
|   | 
| struct tagLVAward  | 
| {  | 
|     BYTE        _AwardID;    //½±ÀøID  | 
|     WORD        LV;    //µÈ¼¶  | 
|     WORD        LimitCnt;    //È«·þÏÞÖÆÊýÁ¿  | 
|     dict        Reward;    //½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
|     BYTE        VIPLimit;    //ÐèÒªVIP¼¸  | 
|     list        VIPAward;    //vip½±Àø[[ÎïÆ·ID,¸öÊý],...]  | 
| };  | 
|   | 
| //Ͷ×汒  | 
|   | 
| struct tagInvest  | 
| {  | 
|     WORD        _ID;    //ID  | 
|     BYTE        Type;    //Ͷ×ÊÀàÐÍ  | 
|     BYTE        NeedDay;    //ÐèÒªÌìÊý  | 
|     WORD        NeedLV;    //ÐèÒªµÈ¼¶  | 
|     dict        Reward;    //½±Àø {"key":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...}  | 
| };  | 
|   | 
| //Ïɱ¦Ñ°Ö÷±í  | 
|   | 
| struct tagXBXZ  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     BYTE        Type;    //ÀàÐÍ  | 
|     DWORD        NeedCnt;    //ÐèÒªÊýÁ¿  | 
|     list        Condition;    //Ìõ¼þ  | 
|     WORD        MWID;    //·¨±¦ID  | 
|     list        AwardItem;    //½±ÀøÎïÆ·ÁÐ±í  | 
|     list        Money;    //½ðÇ®  | 
| };  | 
|   | 
| //Ѱ±¦²ú³ö¿â±í  | 
|   | 
| struct tagTreasureHouse  | 
| {  | 
|     BYTE        _TreasureType;    //Ѱ±¦ÀàÐÍ  | 
|     WORD        MinLV;    //×îСµÈ¼¶  | 
|     dict        GridItemInfo;    //¸ñ×Ó±àºÅ¶ÔÓ¦ÎïÆ·ÐÅÏ¢ {"±àºÅ":[ÎïÆ·ID, ¸öÊý], ...}  | 
|     list        JobItemList;    //Ö°ÒµÎïÆ·×éÁбí [[Ö°Òµ1ÎïÆ·, Ö°Òµ2ÎïÆ·, ...], ...]  | 
|     list        GridItemRateListFree;    //Ãâ·Ñ²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...]  | 
|     list        FreeGridItemRateList2;    //Ãâ·ÑÿÂúx´Î±£µ×²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...]  | 
|     dict        FreeGridItemRateList3;    //Ãâ·ÑµÚx´Î±Ø³ö²ú³ö¸ñ×Ó±àºÅ±ýͼ {´ÎÊý:[[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...], ...}  | 
|     list        GridItemRateList1;    //³£¹æ²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...]  | 
|     list        GridItemRateList2;    //ÿÂúx´Î±£µ×²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...]  | 
|     dict        GridItemRateList3;    //µÚx´Î±Ø³ö²ú³ö¸ñ×Ó±àºÅ±ýͼ {´ÎÊý:[[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...], ...}  | 
|     BYTE        LuckyGridNum;    //ÐÒÔ˼ӳɸñ×Ó±àºÅ  | 
| };  | 
|   | 
| //¼«Æ·°×ÄÃ±í  | 
|   | 
| struct tagFreeGoods  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     dict        AwardItem;    //½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...}  | 
|     WORD        NeedMoney;    //ÐèÒªÏÉÓñ  | 
|     DWORD        ReturnTime;    //·µ»¹Ê±¼ä(s)  | 
| };  | 
|   | 
| //ÏÞʱÀñ°ü»î¶¯±í  | 
|   | 
| struct tagActFlashGiftbag  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     list        StartTimeList;    //¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     list        EndTimeList;    //½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        GiftbagTypeList;    //Àñ°üÀàÐÍÁÐ±í  | 
|     char        MailKey;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþkey  | 
|     list        MailItemPrize;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþ½±ÀøÎïÆ·  | 
| };  | 
|   | 
| //ÏÞʱÀñ°üÄ£°å±í  | 
|   | 
| struct tagFlashGiftbag  | 
| {  | 
|     DWORD        _GiftbagID;    //Àñ°ü±àºÅ  | 
|     WORD        GiftbagType;    //Àñ°üÀàÐÍ  | 
|     DWORD        OriginalRMB;    //Ô¼Û£¨RMB£©  | 
|     WORD        BuyCountLimit;        //ÏÞ¹º´ÎÊý,0²»ÏÞ¹º  | 
|     list        GiftItemList;    //Àñ°üÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]  | 
|     DWORD        MainItemID;    //±êµÄÎïÆ·ID  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //Ë«±¶¾Ñé»î¶¯±í  | 
|   | 
| struct tagActExpRate  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     DWORD        AddExpRate;    //¾Ñé±¶Âʼӳɣ¬Íò·ÖÂÊ  | 
| };  | 
|   | 
| //Ïû·Ñ·µÀû»î¶¯±í  | 
|   | 
| struct tagActCostRebate  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //Ïû·Ñ·µÀûÄ£°å±í  | 
|   | 
| struct tagCostRebateTemplate  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     DWORD        NeedCostGold;    //ÐèÒªÏû·ÑÏÉÓñÊý  | 
|     BYTE        AwardIndex;        //·µÀû½±ÀøË÷Òý0~31,ͬ¸öÄ£°åÖв»Öظ´  | 
|     list        AwardItemList;    //·µÀûÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //BOSS¸´»î»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActBossReborn  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        TemplateID;    //Ä£°å±àºÅ  | 
| };  | 
|   | 
| //BOSS¸´»î±í  | 
|   | 
| struct tagBossReborn  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        _ID;    //»î¶¯ÌõÄ¿ID  | 
|     DWORD        TotalTimes;    //¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý  | 
|     WORD        SingleTimes;    //µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý  | 
|     list        Reward;    //½±ÀøÎïÆ·ID1  | 
| };  | 
|   | 
| //¶à±¶ÐÞÐеã»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActRealmPoint  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     WORD        Multiple;    //±¶Êý  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
| };  | 
|   | 
| //×ÚÃÅÊÔÁ¶¶Ò»»±í  | 
|   | 
| struct tagTrialExchange  | 
| {  | 
|     DWORD        _ID;    //¶Ò»»ID  | 
|     list        ExchangeItemIDList;    //¶Ò»»ÎïÆ·ID  | 
|     DWORD        ExchangeItemCount;    //¶Ò»»ÎïÆ·¸öÊý  | 
|     DWORD        ExchangeItemIsBind;    //¶Ò»»ÎïÆ·ÊÇ·ñ°ó¶¨  | 
|     DWORD        CostItemID;    //ÏûºÄÎïÆ·ID  | 
|     DWORD        CostItemCount;    //ÏûºÄÎïÆ·¸öÊý  | 
| };  | 
|   | 
| //ÏɽçÊ¢µä-È«ÃñÀ´à豒  | 
|   | 
| struct tagAllPeopleParty  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     WORD        TotalTimes;    //×Ü´ÎÊý  | 
|     WORD        AddPoint;    //ÿÍê³É´ÎÊý»ñµÃà赋  | 
| };  | 
|   | 
| //ÏɽçÊ¢µä-È«ÃñÀ´à˽±Àø±í  | 
|   | 
| struct tagAllPeoplePartyAward  | 
| {  | 
|     BYTE        _WorldLvNum;    //ÊÀ½çµÈ¼¶µµ  | 
|     DWORD        _Index;    //Ë÷Òý  | 
|     DWORD        NeedPoint;    //ÐèÒªµãÊý  | 
|     dict        Award;    //½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...}  | 
| };  | 
|   | 
| //µØÍ¼NPCÅäÖñí-¹Ò»úµã  | 
|   | 
| struct tagMapEventPoint  | 
| {  | 
|     DWORD    _MapID;  | 
|     DWORD    _NPCID;  | 
|     WORD    LowLV;    // ÍƼö×îµÍµÈ¼¶  | 
|     WORD    HighestLV;    // ÍƼö×î¸ßµÈ¼¶  | 
|     DWORD    Defense;    // ÍƼö·ÀÓù  | 
| };  | 
|   | 
| //Ì츳¼¼ÄÜ±í  | 
|   | 
| struct tagTalentSkill  | 
| {  | 
|     DWORD        _SkillID;    //¼¼ÄÜID  | 
|     BYTE        TalentType;    //Ì츳ÀàÐÍ  | 
|     BYTE        Series;    //Ì츳ϵ±ð  | 
| };  | 
|   | 
| //ÏÞʱÇÀ¹º±í  | 
|   | 
| struct tagActFlashSale  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     list        StartTimeList;    //¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     list        EndTimeList;    //½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        ShopTypeList;    //É̵êÀàÐÍÁÐ±í  | 
|     char        MailKey;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþkey  | 
|     list        MailItemPrize;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþ½±ÀøÎïÆ·  | 
| };  | 
|   | 
| //ÐíÔ¸³Ø»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActWishingWell  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        TemplateID;    //Ä£°å±àºÅ  | 
| };  | 
|   | 
| //ÐíÔ¸³Ø¿âÄ£°å±í  | 
|   | 
| struct tagWishingWell  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        IsFree;    //ÊÇ·ñÃâ·Ñ¿â  | 
|     list        WorldLVLimit;    //ÊÀ½çµÈ¼¶·¶Î§  | 
|     DWORD        ItemID;    //ÎïÆ·ID  | 
|     WORD        ItemCnt;    //ÎïÆ·ÊýÁ¿  | 
|     BYTE        IsBind;    //ÊÇ·ñ°ó¶¨  | 
|     DWORD        Weight;    //È¨ÖØ  | 
|     DWORD        Mark;    //ÅÅÐòÓñêʶ  | 
| };  | 
|   | 
| //¹¦ÄÜÔ¤¸æ±í  | 
|   | 
| struct tagFunctionForecast  | 
| {  | 
|     DWORD        _FuncID;    //¹¦ÄÜID  | 
|     dict        Award;    //ÊôÐÔÀàÐÍ  | 
| };  | 
|   | 
| //ÁÄÌìÆøÅÝ±í  | 
|   | 
| struct tagChatBubbleBox  | 
| {  | 
|     BYTE        _BoxID;    //ÆøÅÝ¿òID  | 
|     WORD        NeedLV;    //ËùÐèµÈ¼¶  | 
|     BYTE        NeedVIPLVGift;    //ËùÐ蹺ÂòVIPµÈ¼¶Àñ°ü  | 
| };  | 
|   | 
|   | 
| //ÀۼƳäÖµ»î¶¯±í  | 
|   | 
| struct tagActTotalRecharge  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //ÀۼƳäֵģ°å±í  | 
|   | 
| struct tagTotalRechargeTemplate  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     DWORD        NeedGold;    //ÐèÒª³äÖµÏÉÓñÊý  | 
|     BYTE        AwardIndex;        //·µÀû½±ÀøË÷Òý0~31,ͬ¸öÄ£°åÖв»Öظ´  | 
|     dict        AwardItem;    //·µÀûÎïÆ·ÐÅÏ¢Áбí {Ö°Òµ:[(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]}  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| }; |