| //³ÆºÅ±í #tagDienstgrad  | 
|   | 
| struct    tagDienstgrad  | 
| {  | 
|     DWORD        _ID;    //Í·ÏÎid  | 
|     WORD        Type;    //Í·ÏÎÀàÐÍ  | 
|     DWORD        ExpireTime;    //ÓÐЧʱ¼ä  | 
|     list        LightType;    //µãÁÁÊôÐÔÀàÐÍ  | 
|     list        LightAttribute;    //µãÁÁÊôÐÔÖµ  | 
|     list        Skills;        //±»¶¯¼¼ÄÜ  | 
| };  | 
|   | 
| //Áé¸ù±í #tagRolePoint  | 
|   | 
| struct    tagRolePoint  | 
| {  | 
|     BYTE        _AttrID;    //ÊôÐÔID  | 
|     dict        AddAttrInfoPerPoint;    //ÿµãÔö¼ÓÊôÐÔÐÅÏ¢ {"Ö°Òµ":[[ÿXµã,ÊôÐÔID,Öµ], ...], ..}  | 
|     BYTE        FightPowerPerPoint;        //ÿµã¸½¼ÓÕ½¶·Á¦  | 
|     dict        PointQualityAttrDict;        //µãÊýÆ·Öʽø½×Ôö¼ÓÊôÐÔ,  {Ö°Òµ:{ÊôÐÔID:[½×¶ÎÊôÐÔ,..],..},..}  | 
|     list        PointQualityIntervalList;        //µãÊýÆ·Öʽø½×ÊôÐÔµãÇø¼äÁÐ±í  | 
| };  | 
|   | 
| //ÁéÆ÷ÊôÐÔ±í #tagLingQiAttr  | 
|   | 
| struct    tagLingQiAttr  | 
| {  | 
|     BYTE        _ItemID;    //ÊôÐÔID  | 
|     list        LingQiAttrID;        //ÁéÆ÷ÊôÐÔID  | 
|     list        LingQiAttrValue;        //ÁéÆ÷ÊôÐÔÊýÖµ  | 
|     DWORD        LingQiAttrScore;    //ÁéÆ÷ÊôÐÔÆÀ·Ö  | 
|     dict        UpCostItem;    //Í»ÆÆÐèÒª²ÄÁÏ  | 
|     DWORD        NextItemID;    //Í»ÆÆºóÎïÆ·ID  | 
| };  | 
|   | 
| //ÁéÆ÷ÅàÑø±í  | 
|   | 
| struct tagLingQiTrain  | 
| {  | 
|     BYTE        _EquipPlace;    //ÁéÆ÷×°±¸Î»  | 
|     BYTE        _TrainType;    //ÅàÑøÀàÐÍ  | 
|     BYTE        _TrainLV;    //ÅàÑøµÈ½×  | 
|     WORD        NeedRealmLV;    //ÅàÑøËùÐè¾³½ç  | 
|     DWORD        EatCntTotal;    //Éý½×ËùÐè¸öÊý£¨·ÇÀۼƣ©  | 
|     DWORD        EatCntEverytime;    //ÿ´ÎÅàÑøÏûºÄx¸ö  | 
|     list        EatItemAttrTypeList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÀàÐÍ=EatCntEverytime  | 
|     list        EatItemAttrValueList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÖµ=EatCntEverytime  | 
|     list        LVAttrTypeList;    //ÿ¼¶¶îÍâÊôÐÔÀࣨ·ÇÀÛ»ý£©  | 
|     list        LVAttrValueList;    //ÿ¼¶¶îÍâÊôÐÔÖµ£¨·ÇÀÛ»ý£©  | 
| };  | 
|   | 
| //¾³½ç±í #tagRealm  | 
|   | 
| struct    tagRealm  | 
| {  | 
|     WORD        _Lv;    //¾³½çµÈ¼¶  | 
|     BYTE        LvLarge;    //´ó¾³½ç  | 
|     DWORD        NeedLV;    //ÐèÒªµÈ¼¶  | 
|     DWORD        NeedItemID;    //ÐèÒªµÀ¾ßID  | 
|     WORD        NeedItemCnt;    //ÏûºÄµÄµÀ¾ßÊýÁ¿  | 
|     list        NeedEquip;    //ÐèÒª8²¿Î»×°±¸Ìõ¼þ½×¼¶|Æ·ÖÊ|ÊÇ·ñÌ××°  | 
|     list        AddAttrType;    //¾³½ç¼Ó³ÉÊôÐÔÀàÐÍ      | 
|     list        AddAttrNum;    //¾³½ç¼Ó³ÉÊôÐÔÖµ  | 
|     DWORD        BossID;    //¶É½Ùbossid  | 
|     DWORD        BuffID;    //¸øÈ«·þÔÚÏßÍæ¼ÒÔö¼Óbuff  | 
|     DWORD        ExpRate;    //ÐÞΪ³Ø¾ÑéËÙÂÊ  | 
|     DWORD        ExpLimit;    //ÐÞΪ³Ø¾ÑéÉÏÏÞ  | 
|     dict        LearnSkillIDInfo;    //ѧϰ¼¼ÄÜIDÐÅÏ¢ {"Ö°Òµ":[¼¼ÄÜID, ...], ...}  | 
|     BYTE        AddFreePoint;    //Ôö¼Ó×ÔÓÉÊôÐ﵋  | 
| };  | 
|   | 
| //Éñ±ø±í #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µÈ¼¶  | 
|     char        MailKey;    //Óʼþ  | 
| };  | 
|   | 
|   | 
| //ºÏ³É±í #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;    //ÏûºÄÍÇ®  | 
|     list        CostItemInfo;    //ÏûºÄÎïÆ·²ÄÁϼ°¸öÊý [itemID, itemCount]  | 
|     DWORD        AddExp;    //ÌáÉýÊìÁ·¶ÈÖµ  | 
|     DWORD        TotalExp;    //Éý¼¶ËùÐèÊìÁ·¶È×ÜÖµ  | 
| };  | 
|   | 
| //×°±¸×Ü±í  | 
|   | 
| struct tagEquipControl  | 
| {  | 
|     BYTE        ClassLV;    //½×  | 
|     BYTE        NeedRealmLV;    //ÐèÒªµÄ¾³½ç  | 
| };  | 
|   | 
| //×°±¸Ç¿»¯´óʦ±í  | 
|   | 
| struct tagItemPlusMaster  | 
| {  | 
|     BYTE        _ClassLV;    //½×  | 
|     WORD        MasterPlusLV;    //´óʦǿ»¯µÈ¼¶  | 
|     list        MasterPlusAttrIDList;    //¼¤»îÊôÐÔÀàÐÍÁÐ±í  | 
|     list        MasterPlusAttrValueList;    //¼¤»îÊôÐÔÖµÁÐ±í  | 
| };  | 
|   | 
| //×°±¸Ç¿»¯µÈ¼¶ÉÏÏÞ  | 
|   | 
| struct tagItemPlusMax  | 
| {  | 
|     BYTE        _Type;    //Ç¿»¯ÀàÐÍ  | 
|     BYTE        _ClassLV;    //½×  | 
|     WORD        PlusLVMax;    //×î´óÇ¿»¯µÈ¼¶  | 
| };  | 
|   | 
| //×°±¸È«ÉíÐÇÊýÊôÐÔ  | 
|   | 
| struct tagRoleEquipStars  | 
| {  | 
|     BYTE        _StarsNeed;    //È«ÉíÐÇÊý  | 
|     list        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //ÊôÐÔÖµ  | 
| };  | 
|   | 
| //×°±¸´«ÆæÊôÐÔÌõÊý±í  | 
|   | 
| struct tagEquipLegendAttrCount  | 
| {  | 
|     BYTE        _ItemType;    //ÎïÆ·ÀàÐÍ  | 
|     BYTE        _ItemColor;    //ÎïÆ·ÑÕÉ«  | 
|     BYTE        _IsSuit;    //ÊÇ·ñÌ××°  | 
|     BYTE        _ItemQuality;    //ÎïÆ·ÐǼ¶  | 
|     list        LegendAttrCountInfo;    //´«ÆæÊôÐÔÌõÊýÐÅÏ¢ [[ÌõÊý, [ÊôÐÔÀàÐÍ¿â±àºÅ, ...]], ...]  | 
| };  | 
|   | 
| //×°±¸´«ÆæÊôÐÔÀàÐ걒  | 
|   | 
| struct tagEquipLegendAttrType  | 
| {  | 
|     BYTE        _ItemType;    //ÎïÆ·ÀàÐÍ  | 
|     dict        LegendAttrTypeLib;    //´«ÆæÊôÐÔÀàÐÍ¿â {ÊôÐÔÀàÐÍ¿â±àºÅ:[ÊôÐÔID,...], ...}  | 
| };  | 
|   | 
| //×°±¸´«ÆæÊôÐÔÖµ¿â±í  | 
|   | 
| struct tagEquipLegendAttrLib  | 
| {  | 
|     BYTE        _LegendAttrID;    //´«ÆæÊôÐÔID  | 
|     dict        LegendAttrLib;    //ÊôÐÔ¿âÐÅÏ¢ {¿â±àºÅ:[Ëæ»úÊýÖµ, ...], ...}  | 
| };  | 
|   | 
| //×°±¸´«ÆæÊôÐԵȼ¶ÊýÖµ±í  | 
|   | 
| struct tagEquipLegendAttrValue  | 
| {  | 
|     BYTE        _ItemType;    //ÎïÆ·ÀàÐÍ  | 
|     BYTE        _ItemClassLV;    //ÎïÆ·½×¼¶  | 
|     BYTE        _ItemColor;    //ÎïÆ·ÑÕÉ«  | 
|     BYTE        _IsSuit;    //ÊÇ·ñÌ××°  | 
|     BYTE        _ItemQuality;    //ÎïÆ·ÐǼ¶  | 
|     dict        LVLegendAttrLibNumInfo;    //ÊôÐÔIDµÈ¼¶¶Î¶ÔÓ¦ÊýÖµ¿â±àºÅ {ÊôÐÔID:{µÈ¼¶:¿â±àºÅ, ...}}  | 
| };  | 
|   | 
| //ÉñÊÞ±í  | 
|   | 
| 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;    //ÊôÐÔÀàÐÍ  | 
|     DWORD        TowerID;    //½âËø·ûÓ¡Ëþ±àºÅ  | 
| };  | 
|   | 
|   | 
| //Ï´Á·±í #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;    // ÏÉÓñÏ´Á·ÌõÊý¶ÔÓ¦ÏûºÄ  | 
| };  | 
|   | 
|   | 
| //ÊôÐÔ¹ûʵ±í  | 
|   | 
| struct tagAttrFruit  | 
| {  | 
|     DWORD        _ID;    //ÎïÆ·ID  | 
|     BYTE        FuncID;    //ËùÊô¹¦ÄÜID  | 
|     dict        MaxUseCnt;    //¾³½ç¶ÔÓ¦×î´ó¿ÉʹÓÃÊýÁ¿  | 
|     list        AddItemInfo;    //[Ôö·ùµ¤ID,µ¥´ÎÎïÆ·ÊýÁ¿,µ¥´ÎÔö¼ÓÉÏÏÞ]  | 
|     WORD        RecycleMoney;    //»ØÊÕ»õ±ÒÖµ  | 
|     DWORD        FightPowerEx;    //¸½¼ÓÕ½¶·Á¦  | 
| };  | 
|   | 
|   | 
| //ÁéÊÞ±í  | 
|   | 
| 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 tagPetTrain  | 
| {  | 
|     BYTE        _TrainType;    //ÅàÑøÀàÐÍ  | 
|     BYTE        _TrainLV;    //ÅàÑøµÈ½×  | 
|     WORD        NeedRealmLV;    //ÅàÑøËùÐè¾³½ç  | 
|     DWORD        EatCntTotal;    //Éý½×ËùÐè¸öÊý£¨·ÇÀۼƣ©  | 
|     DWORD        EatCntEverytime;    //ÿ´ÎÅàÑøÏûºÄx¸ö  | 
|     list        EatItemAttrTypeList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÀàÐÍ=EatCntEverytime  | 
|     list        EatItemAttrValueList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÖµ=EatCntEverytime  | 
|     list        LVAttrTypeList;    //ÿ¼¶¶îÍâÊôÐÔÀࣨ·ÇÀÛ»ý£©  | 
|     list        LVAttrValueList;    //ÿ¼¶¶îÍâÊôÐÔÖµ£¨·ÇÀÛ»ý£©  | 
| };  | 
|   | 
| //×°±¸·Ö½âÊôÐﱒ  | 
|   | 
| 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 tagHorseLVUp  | 
| {  | 
|     BYTE        _HorseLV;    //×øÆïµÈ¼¶  | 
|     DWORD        HorseSkinID;    //Íâ¹ÛÎïÆ·ID  | 
|     WORD        NeedEatCount;    //Éý¼¶ËùÐè¸öÊý£¨·ÇÀۼƣ©  | 
|     list        LVAttrType;    //ÿ¼¶¶îÍâÊôÐÔÀàÐÍ£¨·ÇÀÛ»ý£©  | 
|     list        LVAttrValue;    //ÿ¼¶¶îÍâÊôÐÔÖµ£¨·ÇÀÛ»ý£©  | 
| };  | 
|   | 
| //×øÆïÅàÑø±í  | 
|   | 
| struct tagHorseTrain  | 
| {  | 
|     BYTE        _TrainType;    //ÅàÑøÀàÐÍ  | 
|     BYTE        _TrainLV;    //ÅàÑøµÈ½×  | 
|     WORD        NeedRealmLV;    //ÅàÑøËùÐè¾³½ç  | 
|     DWORD        EatCntTotal;    //Éý½×ËùÐè¸öÊý£¨·ÇÀۼƣ©  | 
|     DWORD        EatCntEverytime;    //ÿ´ÎÅàÑøÏûºÄx¸ö  | 
|     list        EatItemAttrTypeList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÀàÐÍ=EatCntEverytime  | 
|     list        EatItemAttrValueList;    //ÿX¸öÅàÑøµ¤Ôö¼ÓÊôÐÔÖµ=EatCntEverytime  | 
|     list        LVAttrTypeList;    //ÿ¼¶¶îÍâÊôÐÔÀࣨ·ÇÀÛ»ý£©  | 
|     list        LVAttrValueList;    //ÿ¼¶¶îÍâÊôÐÔÖµ£¨·ÇÀÛ»ý£©  | 
| };  | 
|   | 
| //×øÆï»Ã»¯±í  | 
|   | 
| struct tagHorseSkinPlus  | 
| {  | 
|     BYTE        _ID;    //»Ã»¯±àºÅID  | 
|     DWORD        HorseSkinPlusID;    //Íâ¹ÛÎïÆ·ID  | 
|     DWORD        UnlockItemID;    //½âËø×øÆïÎïÆ·±àºÅ  | 
|     BYTE        UnlockItemCnt;    //½âËøËùÐèÎïÆ·ÊýÁ¿  | 
|     list        AttrType;    //¼¤»î¼Ó³ÉÊôÐÔÀàÐÍ  | 
|     list        AttrValue;    //¼¤»î¼Ó³ÉÊôÐÔÖµ  | 
|     DWORD        InitFightPower;    //Ƥ·ô¶îÍâÕ½Á¦  | 
| };  | 
|   | 
| //Íæ¼ÒµÈ¼¶±í  | 
|   | 
| 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;    //Õ½¶·Á¦  | 
|     DWORD        IceLodeFightPower;    //±ù¾§¿óÂöɨµ´Õ½¶·Á¦  | 
| };  | 
|   | 
| //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        LVStrengthenMark;//µÈ¼¶³É³¤ÊôÐÔ¹«Ê½±ê¼Ç  | 
|     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;//Ñ¹ÖÆÕ½¶·Á¦ÏµÊý  | 
| };  | 
|   | 
| //NPCʱ¼äµôѪ±í  | 
|   | 
| struct tagNPCTimeLostHP  | 
| {  | 
|     DWORD        _NPCID;    //NPCID  | 
|     DWORD        LostHPPerSecond;    //µ¥ÈËÿÃëµôѪÁ¿  | 
|     BYTE        MaxPlayerCount;    //×î´óÈËÊý  | 
|     DWORD        LostHPPerSecondEx;    //ÿÔö¼ÓÒ»È˸½¼ÓµôѪÁ¿  | 
|     BYTE        FightPowerMinByLV;    //±ê×¼Õ½Á¦ÊÇ·ñÈ¡µÈ¼¶±í  | 
|     DWORD        FightPowerMin;    //±ê×¼Õ½Á¦  | 
|     DWORD        FightPowerMax;    //ÉÏÏÞÕ½Á¦  | 
|     DWORD        EveryFightPower;    //ÿxµãÕ½Á¦  | 
|     DWORD        EveryFightPowerLostHPEx;    //ÿxµãÕ½Á¦¸½¼ÓÉ˺¦  | 
| };  | 
|   | 
| //×°±¸Ì××°ÊôÐﱒ  | 
|   | 
| struct tagEquipSuitAttr  | 
| {  | 
|     WORD        _SuiteID;    //Ì××°ID  | 
|     BYTE        SuiteCnt;    //Ì××°¼þÊý  | 
|     BYTE        Star;    //ÐÇÊý  | 
|     dict        AttrInfo;    //ÊôÐÔ  | 
|     DWORD        SkillID;    //¼¼ÄÜID  | 
|     BYTE        IsNotify;    //ÊÇ·ñ¹ã²¥  | 
|     WORD        ActivateIndex;    //¼¤»îË÷Òý  | 
| };  | 
|   | 
|   | 
| //ÓðÒí¾«Á¶ÊôÐﱒ  | 
|   | 
| 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        CftIgnoreDefRate;    //ÎÞÊÓ·ÀÓùϵÊý  | 
|     DWORD        CftDamChanceDef;    //µÖÓùϵÊý  | 
|     DWORD        CftFaintRate;    //»÷ÔÎϵÊý  | 
|     DWORD        CftSuperHitRateReduce;    //±©»÷ÂÊ¿¹ÐÔϵÊý  | 
|     DWORD        CftSuperHitRate;    //±©»÷ÂÊϵÊý  | 
|     DWORD        CftLuckyHitRate;    //»áÐÄÒ»»÷ÂÊϵÊý  | 
|     DWORD        CftLuckyHitRateReduce;    //»áÐÄÒ»»÷¿¹ÐÔϵÊý  | 
|     DWORD        CftSkillAtkRate;    //¼¼ÄÜÉ˺¦ÏµÊý  | 
|     DWORD        CftSkillAtkRateReduce;    //¼¼ÄܼõÉËϵÊý  | 
|     DWORD        CftFinalHurtPer;    //×îÖÕÉ˺¦¼Ó³ÉϵÊý  | 
|     DWORD        CftFinalHurtReducePer;    //×îÖÕÉ˺¦¼õÃâϵÊý  | 
|     DWORD        CftDamagePerPVP;    //PVPÉ˺¦Ôö¼ÓϵÊý  | 
|     DWORD        CftDamagePerPVPReduce;    //PVPÉ˺¦¼õÉÙϵÊý  | 
|     DWORD        CftNPCHurtAddPer;    //PVE¼¼ÄܼӳÉϵÊý  | 
|     DWORD        CftNormalHurtPer;    //ÆÕͨ¸½¼ÓÉ˺¦¼Ó³ÉϵÊý  | 
|     DWORD        CftFabaoHurtPer;    //·¨±¦¸½¼ÓÉ˺¦¼Ó³ÉϵÊý  | 
|     DWORD        CftDamBackPer;    //É˺¦·´ÉäϵÊý  | 
|     DWORD        CftIgnoreDefRateReduce;    //ÎÞÊÓ·ÀÓù¿¹ÐÔϵÊý  | 
|     DWORD        CftFaintDefRate;    //¿ØÖƵֿ¹ÏµÊý  | 
|     DWORD        CftAtkSpeed;    //¹¥ËÙϵÊý  | 
|     DWORD        CftJobAHurtAddPer;    //¶ÔÄ¿±êսʿÉ˺¦¼Ó³É  | 
|     DWORD        CftJobBHurtAddPer;    //¶ÔÄ¿±ê·¨Ê¦É˺¦¼Ó³É  | 
|     DWORD        CftJobCHurtAddPer;    //¶ÔÄ¿±ê¹¼ýÉ˺¦¼Ó³É  | 
|     DWORD        CftJobAAtkReducePer;    //սʿ¹¥»÷É˺¦¼õÃâ  | 
|     DWORD        CftJobBAtkReducePer;    //·¨Ê¦¹¥»÷É˺¦¼õÃâ  | 
|     DWORD        CftJobCAtkReducePer;    //¹¼ý¹¥»÷É˺¦¼õÃâ  | 
| };  | 
|   | 
| //NPCµôÂä±í  | 
|   | 
| struct tagNPCDropItem  | 
| {  | 
|     DWORD        _NPCID;    //NPCID  | 
|     WORD        MaxWorldLV;    //×î´óÊÀ½çµÈ¼¶£¬0Ϊ²»ÏÞÖÆ£¬²»ÊÜ×î´óµôÂäµÈ¼¶Ó°Ïì  | 
|     WORD        MaxDropLV;    //×î´ó¿ÉµôÂäµÄÍæ¼ÒµÈ¼¶, ²»Ó°ÏìÊÀ½çµÈ¼¶  | 
|     BYTE        CanDropRatePlus;    //¶îÍâÌáÉýµôÂʵÄÊÇ·ñÓÐЧ  | 
|     BYTE        IsDropJobSelf;    //ÊÇ·ñÖ»µôÂä±¾Ö°Òµ  | 
|     list        PieRateDrop;    //±ýͼ¸ÅÂʵôÂäÐÅÏ¢ [(¸ÅÂÊ,0),(¸ÅÂÊ,(½×,ÑÕÉ«)),...]  | 
|     BYTE        PieRateDoCnt;    //±ýͼ¸ÅÂÊÖ´ÐдÎÊý  | 
|     dict        IndepRateDrop;    //¶ÀÁ¢¸ÅÂʵôÂäÐÅÏ¢ {(½×,ÑÕÉ«):¸ÅÂÊ,...}  | 
|     BYTE        IndepRateDoCnt;        //¶ÀÁ¢¸ÅÂÊÖ´ÐдÎÊý  | 
|     dict        EquipColorMaxDropCount;    //×°±¸ÑÕÉ«×î´óµôÂäÎïÆ·Êý {ÑÕÉ«:ÉÏÏÞÊýÁ¿,...}  | 
|     dict        EquipColorSuitInfo;    //×°±¸ÑÕÉ«¶ÔÓ¦Ì××°¸ÅÂÊ {ÑÕÉ«:Ì××°¸ÅÂÊ, ...}  | 
|     dict        EquipPartKeyRateInfo;    //×°±¸²¿Î»¼¯ºÏÐÅÏ¢ {(ÑÕÉ«,ÊÇ·ñÌ××°):²¿Î»¼¯ºÏkey, ...}  | 
|     BYTE        ColorSuitPartOptimization;    //²¿Î»ÑÕÉ«ÌׯÀ·ÖÓÅÑ¡µôÂ䣬ʮλ´ú±íÑÕÉ«£¬¸öλ´ú±íÌ××°  | 
|     dict        KillCountDropEquipPub;    //µÚ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;        //µôÂä½ð±Ò×î´óÖµ  | 
|     dict        KillCountDropPub;    //»÷ɱ´ÎÊý±Øµô£¨¹«¹²£©{»÷ɱ´ÎÊý:[[ÎïÆ·ID, ...], [Ëæ»úÎïÆ·ID, ...]], ...}  | 
|     list        KillCountDropPri;    //»÷ɱ´ÎÊý±Øµô£¨Ë½ÓУ©[»÷ɱ´ÎÊý,[ÎïÆ·ID,...],ÊÇ·ñÖ±½Ó·ÅÈë±³°ü]  | 
|     list        PriItemIDDrop;        //ËùÓйéÊôÕß˽ÓеôÂäÎïÆ·IDÁбí,ÿÈËÒ»·Ý,ĬÈϰó¶¨,ûÓÐÖ°ÒµÇø·Ö[ÎïÆ·ID, ...]  | 
|     BYTE        AucionItemCanSell;    //µôÂäÅÄÆ·¿É·ñÉϼܼ¯ÊÐ  | 
| };  | 
|   | 
| //·ûÓ¡Ëþ±í  | 
|   | 
| struct tagRuneTower  | 
| {  | 
|     DWORD        _ID;    //Ëþ±àºÅ  | 
|     DWORD        RunePoint;    //¹ý¹Ø¸ø·ûÓ¡¾«»ª  | 
|     DWORD        Ysog;    //¹ý¹Ø¸øÄ§¾«  | 
|     DWORD        NPCID;    //npcid  | 
|     BYTE        IsNotify;    //ÊÇ·ñ¹ã²¥  | 
|     list        FixEndAward;    //¹Ì¶¨½áËã½±Àø  | 
|     dict        GoodDrop;    //ÕäÏ¡·ûӡͨ¹ØµôÂä¸ÅÂÊ  | 
|     DWORD        SweepRunePoint;    //ɨµ´·ûÓ¡¾«»ª  | 
|     DWORD        SweepYsog;    //ɨµ´Ä§¾«  | 
|     dict        SweepGoodDrop;    //ɨµ´ÕäÏ¡·ûÓ¡  | 
| };  | 
|   | 
| //µØÍ¼±í¸ñ  | 
|   | 
| struct tagChinMap  | 
| {  | 
|     DWORD        _MapID;    //µØÍ¼ID  | 
|     BYTE        CanRide;    //¿É·ñÆï³Ë  | 
|     BYTE        CanOutPet;    //¿É·ñÕÙ»½³èÎï  | 
| };  | 
|   | 
| //¸±±¾×Ü±í  | 
|   | 
| 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        FBPoint;    //¸±±¾¹ý¹ØÏÉÔµ±Ò  | 
|     WORD        HelpPoint;    //ÖúÕ½ÏÉÔµ±Ò(0´ú±í²»¿ÉÖúÕ½)  | 
|     BYTE        DayHelpCountMax;    //ÿÈÕÊÖ¶¯ÖúÕ½»ñµÃÏÉÔµ±Ò´ÎÊý£¨·Ç¾µÏñ£©  | 
| };  | 
|   | 
| //¸±±¾¹¦ÄÜÏß·±í  | 
|   | 
| struct tagFBLine  | 
| {  | 
|     DWORD        _DataMapID;    //Êý¾ÝµØÍ¼ID  | 
|     BYTE        _LineID;    //¹¦ÄÜÏß·ID  | 
|     DWORD        MapID;    //³¡¾°µØÍ¼ID  | 
|     WORD        LVLimitMin;    //×îµÍµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     WORD        LVLimitMax;    //×î¸ßµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     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 tagFBHelpBattle  | 
| {  | 
|     DWORD        _DataMapID;    //Êý¾ÝµØÍ¼ID  | 
|     BYTE        _LineID;    //¹¦ÄÜÏß·ID  | 
|     DWORD        FightPowerMin;    //ÖúÕ½×îµÍÕ½Á¦£¬Ò²ÊǸ±±¾±£µ×Õ½Á¦  | 
|     DWORD        RobotFightPower;    //ÖúÕ½NPCÕ½Á¦  | 
|     WORD        RobotLV;    //ÖúÕ½NPCµÈ¼¶  | 
|     DWORD        RobotBaseHurt;    //ÖúÕ½NPC±£µ×É˺¦  | 
|     WORD        RobotHPCoefficient;    //ÖúÕ½NPCÉúÃüϵÊý  | 
|     dict        RobotSkillsDict;    //ÖúÕ½NPC¼¼ÄÜ, {"Ö°Òµ":[¼¼ÄÜÁбí], ...}  | 
| };  | 
|   | 
| //¸±±¾Ë¢¹Ö±êʶµã±í  | 
|   | 
| 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  | 
|     dict        OpenTimeDict;    //¿ªÆôʱ¼ä  | 
|     DWORD        Duration;    //³ÖÐøÊ±¼ä, 0Ϊ²»ÏÞÖÆ  | 
|     DWORD        DayTimes;    //ÿÈÕ´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     DWORD        DayBuyTimes;    //ÿÈտɹºÂò´ÎÊý  | 
|     BYTE        BuyTimesPrivilegeID;    //¹ºÂò´ÎÊýVIPȨÏÞID  | 
|     DWORD        BuyNeedMoney;    //¹ºÂò´ÎÊýÐèÒªÏÉÓñ  | 
|     DWORD        DayItemAddTimes;    //ÿÈÕ¿ÉÓÃÎïÆ·Ôö¼Ó´ÎÊý  | 
|     DWORD        DayItemID;    //Ôö¼Ó´ÎÊýµÄÎïÆ·ID  | 
|     BYTE        DayResetType;    //ÿÈÕ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
|     DWORD        WeekTimes;    //ÿÖÜ´ÎÊý, 0Ϊ²»ÏÞÖÆ  | 
|     BYTE        WeekResetType;    //ÿÖÜ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã  | 
| };  | 
|   | 
| //×°±¸ÆÀ·ÖÊôÐÔϵÊý±í  | 
|   | 
| struct tagEquipGSParam  | 
| {  | 
|     BYTE        _ClassLV;        // ×°±¸½×¼¶  | 
|     BYTE        _EquipColor;    // ×°±¸ÑÕÉ«  | 
|     BYTE        _IsSuit;    // ÊÇ·ñÌ××°  | 
|     BYTE        _ItemQuality;    //ÎïÆ·ÐǼ¶  | 
|     DWORD        BaseEquipMaxHPAddPerC;    // »ù´¡·À¾ßÉúÃü°Ù·Ö±ÈϵÊý  | 
|     DWORD        BaseEquipAtkAddPerC;    // »ù´¡ÎäÆ÷¹¥»÷°Ù·Ö±ÈϵÊý  | 
|     DWORD        SuperHitC;    // ±©»÷ֵϵÊý  | 
|     DWORD        SuperHitPerC;    // ±©»÷Öµ°Ù·Ö±ÈϵÊý  | 
|     DWORD        LuckyHitRateC;    // »áÐÄÒ»»÷ÂÊϵÊý  | 
|     DWORD        LuckyHitRateReduceC;    // »áÐÄÒ»»÷¿¹ÐÔϵÊý  | 
|     DWORD        LuckPerC;    // ÆøÔ˰ٷֱÈϵÊý  | 
|     DWORD        PerLVAtkC;    // Ã¿¼¶Ôö¼Ó¹¥»÷Á¦ÏµÊý  | 
|     DWORD        PerLVMaxHPC;    // Ã¿¼¶Ôö¼ÓÉúÃüֵϵÊý  | 
|     DWORD        DropMoneyPerC;    // Ôö¼ÓµôÂä½ð±ÒÁ¿°Ù·Ö±ÈϵÊý  | 
|     DWORD        SuperHitReduceC;    // ±©»÷¼õÉ˰ٷֱÈϵÊý  | 
|     DWORD        SuperHitRateReduceC;    // ±©»÷¿¹ÐÔϵÊý  | 
|     DWORD        HitC;    // ÃüÖÐϵÊý  | 
|     DWORD        MissC;    // ÉÁ±ÜϵÊý  | 
|     DWORD        PetDamPerC;    // Áé³èÔöÉ˰ٷֱÈϵÊý  | 
|     DWORD        MaxHPPerC;    // ÉúÃü¼Ó³ÉϵÊý  | 
|     DWORD        AtkPerC;    // ¹¥»÷¼Ó³ÉϵÊý  | 
|     DWORD        SkillAtkRateC;    // ¼¼ÄܼӳÉϵÊý  | 
|     DWORD        SkillAtkRateReduceC;    // ¼¼ÄܼõÃâϵÊý  | 
|     DWORD        SkillAddPer1C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿1ϵÊý  | 
|     DWORD        SkillAddPer2C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿2ϵÊý  | 
|     DWORD        SkillAddPer3C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿3ϵÊý  | 
|     DWORD        SkillAddPer4C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿4ϵÊý  | 
|     DWORD        SkillAddPer5C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿5ϵÊý  | 
|     DWORD        SkillAddPer6C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿6ϵÊý  | 
|     DWORD        SkillAddPer7C;    // ¼¼ÄÜÉ˺¦ÔöÇ¿7ϵÊý  | 
|     DWORD        SkillReducePer1C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ1ϵÊý  | 
|     DWORD        SkillReducePer2C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ2ϵÊý  | 
|     DWORD        SkillReducePer3C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ3ϵÊý  | 
|     DWORD        SkillReducePer4C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ4ϵÊý  | 
|     DWORD        SkillReducePer5C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ5ϵÊý  | 
|     DWORD        SkillReducePer6C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ6ϵÊý  | 
|     DWORD        SkillReducePer7C;    // Êܵ½¼¼ÄÜÉ˺¦¼õÉÙ7ϵÊý  | 
|     DWORD        ReduceSkillCDPerC;    // ¼õÉÙËùÓм¼ÄÜCDϵÊý  | 
|     DWORD        LuckyHitPerC;    // »áÐÄÉ˺¦¼Ó³ÉϵÊý  | 
|     DWORD        FaintDefRateC;    // ¿ØÖƵֿ¹ÏµÊý  | 
|     DWORD        SuperHitRateC;    // ±©»÷ÂʼӳÉϵÊý  | 
| };  | 
|   | 
| //³É¾Í±í  | 
|   | 
| struct tagSuccess  | 
| {  | 
|     DWORD        _ID;    //³É¾ÍID  | 
|     WORD        Type;    //³É¾ÍÀàÐÍ  | 
|     DWORD        NeedCnt;    //ÐèÒªÊýÁ¿  | 
|     list        Condition;    //¸¨ÖúÌõ¼þ  | 
|     list        PreSuccess;    //ÐèÒª´ï³ÉǰÖÃ³É¾Í  | 
|     dict        AwardItem;    //½±ÀøÎïÆ·ÁÐ±í  | 
|     dict        AwardItem2;    //ͨÐÐÖ¤½±ÀøÎïÆ·ÁÐ±í  | 
|     dict        Money;    //½ðÇ®  | 
|     DWORD        Exp;    //¾Ñé  | 
|     dict        AwardAttr;    //½±ÀøÊôÐÔ  | 
|     DWORD        RedPacketID;    //ºì°üID  | 
|     DWORD        MagicWeaponID;    //·¨±¦ID  | 
|     DWORD        MagicWeaponExp;    //·¨±¦Éý¼¶¾Ñé  | 
| };  | 
|   | 
| //·¨±¦±í  | 
|   | 
| struct tagTreasure  | 
| {  | 
|     DWORD        _ID;    //ID  | 
|     BYTE        TreasureType;    //·¨±¦ÀàÐÍ  | 
|     DWORD        PreTreasure;    //ǰÖ÷¨±¦  | 
|     DWORD        FBMapID;    //¸±±¾ID  | 
|     DWORD        FBLineID;    //¸±±¾Ïß·ID  | 
|     DWORD        NeedLV;    //ÐèÒªµÈ¼¶  | 
|     dict        NeedItem;    //ÐèÒªÏûºÄÎïÆ·  | 
| };  | 
|   | 
| //·¨±¦Éý¼¶±í  | 
|   | 
| struct tagTreasureUp  | 
| {  | 
|     DWORD        _MWID;    //·¨±¦ID  | 
|     BYTE        _LV;    //·¨±¦µÈ¼¶  | 
|     DWORD        NeedExp;    //ÐèÒª¾Ñé  | 
|     dict        AddAttr;    //ÊôÐÔ  | 
|     list        UnLockSkill;    //½âËøµÄ¼¼ÄÜ  | 
|     DWORD        PowerEx;    //¶îÍâ¹Ì¶¨Õ½Á¦  | 
| };  | 
|   | 
|   | 
| //Á¬ÐøÇ©µ½½±Àø±í  | 
|   | 
| 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        CancelUseLimit;    //´©´÷ÏÞÖÆ(³ýÖ°Òµ)  | 
|     list        LegendAttrID;    //´«ÆæÊôÐÔID  | 
|     list        LegendAttrValue;    //´«ÆæÊôÐÔÖµ  | 
| };  | 
|   | 
| //ÅÄÂôÎïÆ·±í  | 
|   | 
| struct tagAuctionItem  | 
| {  | 
|     DWORD        _AuctionItemID;  | 
| };  | 
|   | 
| //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;    //ÊÇ·ñÿÌìÖØÖà  | 
|     dict        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 tagActivityPlaceReward  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     BYTE        PlaceCount;    //·ÅÖö¨ÖÆ´ÎÊý  | 
|     WORD        PlaceMaxLV;    //×î´óµÈ¼¶  | 
|     list        FixedItemRewardList;    //¹Ì¶¨½±Àø [[ÎïÆ·ID, ¸öÊý], ...]  | 
|     BYTE        RandItemCountA;    //±ýͼ½±Àø´ÎÊýA  | 
|     list        RandItemRewardListA;    //±ýͼ½±Àø¿âA [[±ýͼ¸ÅÂÊ,ÎïÆ·ID], ...]  ÎïÆ·IDÖ§³Ö0  | 
|     BYTE        RandItemCountB;    //±ýͼ½±Àø´ÎÊýB  | 
|     list        RandItemRewardListB;    //±ýͼ½±Àø¿âB [[±ýͼ¸ÅÂÊ,ÎïÆ·ID], ...]  ÎïÆ·IDÖ§³Ö0  | 
| };  | 
|   | 
| //Á¶µ¤Â¯µÈ¼¶±í  | 
|   | 
| struct tagRefineStove  | 
| {  | 
|     BYTE    _StoveLV;    //Á¶µ¤Â¯µÈ¼¶  | 
|     DWORD    UpNeedExp;    //ÉýÏÂÒ»¼¶ËùÐè¾Ñé  | 
| };  | 
|   | 
| //Á¶µ¤±í  | 
|   | 
| struct tagAlchemy  | 
| {  | 
|     DWORD   _ID;    //ÃØ·½Î¨Ò»ID²»¿É±ä¸ü  | 
|     DWORD   AlchemItemID;    //µ¤Ò©ÎïÆ·ID  | 
|     BYTE    AlchemType;    //ÃØ·½ÀàÐÍ1-Á鵤 2-Ïɵ¤  | 
|     BYTE    AlchemyQuality;    //ÃØ·½Æ·¼¶  | 
|     DWORD   LearnNeedItemID;    //µ¤·½ÎïÆ·ID  | 
|     BYTE    LearnNeedAlchemLV;    //µ¤·½ÐèÒªÁ¶µ¤µÈ¼¶  | 
|     WORD    LearnNeedLingGenPoint;    //µ¤·½ÐèÒª×ÜÁé¸ùµãÊý  | 
|     WORD    NeedTime;    //Á¶µ¤Ê±¼ä(Ãë)  | 
|     WORD    AlchemyExp; //Á¶µ¤»ñµÃ¾ÑéÖµ  | 
|     dict    Material;    //Á¶µ¤²ÄÁÏ  | 
| };  | 
|   | 
| //Á¶µ¤ÊýÁ¿±í  | 
|   | 
| struct tagAlchemyResult  | 
| {  | 
|     BYTE    _AlchemyQuality;    //µ¤·½µÈ¼¶  | 
|     DWORD    LuckValue;    //»Û¸ù  | 
|     list    CntRateList;    //ÊýÁ¿±ýͼ      | 
| };  | 
|   | 
|   | 
| //BOSSÐÅÏ¢±í  | 
|   | 
| struct tagBOSSInfo  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     DWORD        MapID;    //µØÍ¼ID  | 
|     BYTE        RefreshLine;    //Ë¢ÐÂÏß·  | 
|     BYTE        RefreshMark;    //ˢбêʶµã  | 
|     BYTE        IsNeedShunt;    //ÊÇ·ñÐèÒª·ÖÁ÷  | 
|     BYTE        RelatedType;    //Ë¢¹Ö¹ØÁªÀàÐÍ  | 
|     char        RelatedID;    //¹ØÁªID ÈÕ³£»î¶¯ID »ò ÔËÓª»î¶¯Ãû  | 
|     DWORD        StoneNPCID;    //ű®NPCID  | 
|     BYTE        CanAssist;    //ÊÇ·ñ¿ÉÐÖú  | 
|     BYTE        SkillResist;    //ÊÇ·ñ¼¼Äֿܵ¹  | 
| };  | 
|   | 
| //BossÊ×ɱ  | 
|   | 
| struct tagBOSSFirstKill  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     WORD        PerPlayerMoneyAward;    // Ê×ɱȫ·þÍæ¼Ò½±ÀøÁéʯ¶î¶È/ÈË  | 
|     list        PersonFirstKillAward;    // ¸öÈËÊ״λ÷ɱ½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //¹ÅÉñ½ûµØ±í  | 
|   | 
| struct tagElderGodArea  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     BYTE        MonsterAnger;    //¹ÖÎïÅÆøÖµ  | 
| };  | 
|   | 
| //¸öÈËBOSS±í  | 
|   | 
| struct tagPersonalBoss  | 
| {  | 
|     DWORD        NPCID;    //ID  | 
|     DWORD        _FuncLineID;    //¿ÉÌôÕ½µÈ¼¶  | 
| };  | 
|   | 
| //ÏÉÃË»îÔ¾±í  | 
|   | 
| 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;    //ºì°ü¸öÊý  | 
| };  | 
|   | 
| //½ÚÈÕºì°üÿÈÕ³É¾Í±í  | 
|   | 
| struct tagActFeastRedPacketSucc  | 
| {  | 
|     BYTE        _FeastDay;    //½ÚÈÕµÚ¼¸Ìì  | 
|     list        FeastSuccIDList;    //½ÚÈճɾÍIDÁÐ±í  | 
| };  | 
|   | 
| //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;  | 
|     list        OwnerAwardItemEx;    //µÚÒ»Ãû¶îÍâ½±ÀøÎïÆ·[[itemID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //¸±±¾¹ÄÎè±í  | 
|   | 
| struct tagFbEncourage  | 
| {  | 
|     DWORD        _DataMapID;    //µØÍ¼ID  | 
|     BYTE        _InspireType; //¹ÄÎèÀàÐÍ  | 
|     WORD        InspireMaxLV;    //¹ÄÎèµÈ¼¶ÏÞÖÆ  | 
|     char        MoneyCount;    //µ¥´ÎÏûºÄ½ðÇ®ÊýÁ¿  | 
| };  | 
|   | 
| //µØÍ¼±êÊÔµãNPCˢР | 
|   | 
| struct tagMapRefreshNPC  | 
| {  | 
|     DWORD        _MapID;    //µØÍ¼ID  | 
|     BYTE        RefreshNum; //Ë¢¹Ö¹æÔò±àºÅ  | 
|     list        NPCIDList;    //NPCIDÁÐ±í  | 
|     list        RefreshMarkList;    //±êÊÔµãÁÐ±í  | 
|     BYTE        PointMaxCount;    //µ¥¸öµã×î´ó´æÔÚ¹ÖÎïÊý  | 
|     BYTE        TotalMaxCount;    //ËùÓеã×ܹÖÎïÊý  | 
|     BYTE        RefreshSeconds;    //Ë¢¹Ö¼ä¸ôÃë  | 
|     BYTE        RefreshPerMinutes;    //ÿÕûX·ÖË¢¹Ö  | 
| };  | 
|   | 
| //·ûÓ¡ºÏ³É±í  | 
|   | 
| 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; //ÍÇ®Õһؽ±Àø  | 
|     list        JobItemList; //Ö°ÒµÎïÆ·ÁÐ±í  | 
| };  | 
|   | 
| //²É¼¯Îï±í  | 
|   | 
| struct tagCollectNPC  | 
| {  | 
|     DWORD        _NPCID;    //ID  | 
|     BYTE        IsMissionCollectNPC;    //ÊÇ·ñÈÎÎñ²É¼¯Îï  | 
|     BYTE        PrepareTime;    //²É¼¯ºÄʱ£¬Ãë  | 
|     list        LostHPPer;    //²É¼¯µôѪ£¬[ÿXÃë,µôѪ°Ù·Ö±È]  | 
|     BYTE        MaxCollectCount;    //¿É²É¼¯´ÎÊý£¬0ÎÞÏÞÖÆ  | 
|     BYTE        CollectResetType;    //²É¼¯´ÎÊýÖØÖÃÀàÐÍ£¬0-²»ÖØÖã¬1-ÿÈÕ5µãÖØÖà  | 
|     char        CollectCountLimitNotify;    //Î޲ɼ¯´ÎÊý²É¼¯Ìáʾ  | 
|     list        CollectAward;    //²É¼¯½±ÀøÎïÆ·£¬È¨ÖØÁбí [[È¨ÖØ, [ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·]], ...]  | 
|     dict        CollectAppointAward;    //²É¼¯´ÎÊý¶¨ÖƲú³ö {´ÎÊý:[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...}  | 
|     BYTE        AlchemyDiffLV;    //¹ýÂËÁ¶µ¤µÈ¼¶²î£¬0-²»¹ýÂË£¬>0¹ýÂË´óÓÚ×ÔÉíÁ¶µ¤µÈ¼¶X¼¶µÄÎïÆ·  | 
|     BYTE        NotifyCollectResult;    //ÊÇ·ñ֪ͨ²É¼¯½á¹û  | 
|     BYTE        CanBreakCollect;    //±»¹¥»÷ÊÇ·ñ´ò¶Ï²É¼¯  | 
| };  | 
|   | 
| //±¦Ïä¹Ö±í  | 
|   | 
| struct tagTreasureNPC  | 
| {  | 
|     DWORD        _NPCID;    //±¦Ïä¹ÖNPCID  | 
|     dict        AttackCountDropWeightInfo;    //¹¥»÷´ÎÊý¶ÔÓ¦µôÂäÈ¨ÖØ±ýͼ {´ÎÊý:[[È¨ÖØ, [ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·]], ...], ...}  | 
|     list        AttackDropWeightList;    //³£¹æ¹¥»÷È¨ÖØ±ýͼ [[È¨ÖØ, [ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·]], ...]  | 
|     list        AttackDropWeightListEx;    //¶îÍâµôÂäÈ¨ÖØ±ýͼ¿â£¬Ã¿´Î¹¥»÷¶¼»áµôÂä  [[È¨ÖØ, [ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·]], ...]  | 
|     BYTE        DropCountEx;    //¶îÍâ¿âÖ´ÐдÎÊý  | 
|     BYTE        AlchemyDiffLV;    //¹ýÂËÁ¶µ¤µÈ¼¶²î£¬0-²»¹ýÂË£¬>0¹ýÂË´óÓÚ×ÔÉíÁ¶µ¤µÈ¼¶X¼¶µÄÎïÆ·  | 
|     char        NotDropNotify;    //ûÓеôÂäʱÌáʾÐÅÏ¢  | 
| };  | 
|   | 
| //±¦Ïä±í¿ªÆô  | 
|   | 
| struct tagChests  | 
| {  | 
|     DWORD        _ChestsItemID;    //±¦ÏäÎïÆ·ID  | 
|     DWORD        CostItemID;        //ÏûºÄÎïÆ·ID  | 
|     BYTE        CostItemCount;    //ÏûºÄÎïÆ·¸öÊý  | 
|     WORD        CostGold;        //ÏûºÄÏÉÓñ  | 
|     BYTE        ShowType;        //ǰ¶Ë±íÏÖÀàÐÍ0-ÎÞ±íÏÖ, >0ÓбíÏÖÐèͬ²½½á¹û£¬¾ßÌåÀàÐÍǰ¶Ë×Ô¶¨Òå  | 
|     BYTE        IsBind;            //¿ª³öÎïÆ·ÊÇ·ñ°ó¶¨  | 
|     BYTE        AucionItemCanSell;    //¿ª³öÅÄÆ·¿É·ñÉϼܼ¯ÊÐ  | 
|     list        AucionItemDiffSellIDList;    //¿É·ñÉϼܲîÒìÅÄÆ·IDÁÐ±í£¬¼´¿ÉÉϼܴú±í²»¿ÉÉϼܵÄÅÄÆ·IDÁÐ±í£¬²»¿ÉÉϼܴú±í¿ÉÉϼܵÄÅÄÆ·IDÁÐ±í  | 
| };  | 
|   | 
| //±¦Ïä±í²ú³ö±í  | 
|   | 
| struct tagChestsAward  | 
| {  | 
|     DWORD        _ChestsItemID;    //±¦ÏäÎïÆ·ID  | 
|     WORD        RealmLV;        //¾³½çµÈ¼¶  | 
|     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ÁÐ±í  | 
|     BYTE        IsDropJobSelf;    //ÊÇ·ñÖ»µôÂä±¾Ö°Òµ  | 
|     list        PieRateDrop;    //±ýͼ¸ÅÂʵôÂäÐÅÏ¢ [(¸ÅÂÊ,0),(¸ÅÂÊ,(½×,ÑÕÉ«)),...]  | 
|     BYTE        PieRateDoCnt;    //±ýͼ¸ÅÂÊÖ´ÐдÎÊý  | 
|     dict        IndepRateDrop;    //¶ÀÁ¢¸ÅÂʵôÂäÐÅÏ¢ {(½×,ÑÕÉ«):¸ÅÂÊ,...}  | 
|     dict        EquipColorSuitInfo;    //×°±¸ÑÕÉ«¶ÔÓ¦Ì××°¸ÅÂÊ {ÑÕÉ«:Ì××°¸ÅÂÊ, ...}  | 
|     dict        EquipPartKeyRateInfo;    //×°±¸²¿Î»¼¯ºÏÐÅÏ¢ {(ÑÕÉ«,ÊÇ·ñÌ××°):²¿Î»¼¯ºÏkey, ...}  | 
| };  | 
|   | 
| //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 tagOnlineAwardNew  | 
| {  | 
|     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;    //¶ÔÓ¦ÏÞʱÀñ°ü±àºÅ  | 
|     DWORD        CoinExp;    //¶ÔӦת»¯¾Ñé  | 
| };  | 
|   | 
| //³äÖµ±í  | 
|   | 
| struct tagCTG  | 
| {  | 
|     BYTE        _RecordID;        //¼Ç¼ID  | 
|     BYTE        CanResetBuyCount;    //ÊÇ·ñÔÊÐíÖØÖôÎÊý  | 
|     BYTE        TotalBuyCount;    //×ÜÏÞ¹º´ÎÊý  | 
|     BYTE        DailyBuyCount;    //ÿÈÕÏÞ¹º´ÎÊý  | 
|     WORD        GainGold;    //»ñµÃÏÉÓñÊý  | 
|     WORD        GainGoldPrize;    //ÔùËÍÏÉÓñÊý  | 
|     WORD        FirstGoldPrize;    //Ê״γäÖµ¸ÃµµÎ»ÔùËÍÏÉÓñ  | 
|     list        GainItemList;    //»ñµÃÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
|     dict        ActWorldLVGainItemInfo;    //¸ù¾Ý»î¶¯ÊÀ½çµÈ¼¶»ñµÃÎïÆ·ÐÅÏ¢£¬»î¶¯×¨Óà{"ÊÀ½çµÈ¼¶":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...], ...}  | 
|     char        NotifyMark;    //¹ã²¥Ìáʾ  | 
|     BYTE        PayType;    //³äÖµÀàÐÍ  | 
| };  | 
|   | 
| //Ê׳ä±í  | 
|   | 
| struct tagFirstGold  | 
| {  | 
|     BYTE        _Day;        //Ê׳äµÚ¼¸Ìì  | 
|     dict        JobItemInfo;    //Ö°ÒµÎïÆ·½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý], ...], ...}  | 
|     list        CommItemList;    //ͨÓÃÎïÆ·½±Àø [[ÎïÆ·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;    //ÐèÒªµÈ¼¶  | 
|     DWORD        NeedNPCID;    //ÐèÒªNPCID  | 
|     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        ReturnDays;    //·µ»¹ËùÐèÌì  | 
| };  | 
|   | 
| //ÏÞʱÀñ°ü»î¶¯±í  | 
|   | 
| struct tagActFlashGiftbag  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     list        StartTimeList;    //¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     list        EndTimeList;    //½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     dict        GiftbagTypeList;    //Àñ°üÀàÐÍÁÐ±í  | 
|     char        MailKey;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþkey  | 
|     list        MailItemPrize;        //»î¶¯¸üÐÂʱ·¢ËÍÓʼþ½±ÀøÎïÆ·  | 
| };  | 
|   | 
| //ÏÞʱÀñ°üÄ£°å±í  | 
|   | 
| struct tagFlashGiftbag  | 
| {  | 
|     DWORD        _GiftbagID;    //Àñ°ü±àºÅ  | 
|     WORD        GiftbagType;    //Àñ°üÀàÐÍ  | 
|     float        OriginalRMB;    //Ô¼Û£¨RMB£©  | 
|     WORD        BuyCountLimit;        //ÏÞ¹º´ÎÊý,0²»ÏÞ¹º  | 
|     list        GiftItemList;    //Àñ°üÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]  | 
|     DWORD        MainItemID;    //±êµÄÎïÆ·ID  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //ÿÈÕÀñ°ü»î¶¯±í  | 
|   | 
| struct tagActDailyGiftbag  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     WORD        GiftbagType;    //Àñ°üÄ£°åÀàÐÍ  | 
| };  | 
|   | 
| //ÿÈÕÀñ°üÄ£°å±í  | 
|   | 
| struct tagDailyGiftbag  | 
| {  | 
|     WORD        _GiftbagType;    //Àñ°üÄ£°åÀàÐÍ  | 
|     DWORD        _GiftbagID;    //Àñ°ü±àºÅ  | 
|     WORD        BuyCountLimit;        //ÏÞ¹º´ÎÊý,0²»ÏÞ¹º  | 
|     list        GiftItemList;    //Àñ°üÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]  | 
| };  | 
|   | 
| //Ë«±¶¾Ñé»î¶¯±í  | 
|   | 
| 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,ͬ¸öÄ£°åÖв»Öظ´  | 
|     dict        AwardItemList;    //·µÀûÎïÆ·ÐÅÏ¢Áбí {ÊÀ½çµÈ¼¶·¶Î§:[({Ö°Òµ:ÎïÆ·ID,..},¸öÊý,ÊÇ·ñ°ó¶¨), ...]}  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //¼¯×ֻʱ¼ä±í  | 
|   | 
| struct tagActCollectWords  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        LastDayOnlyExchange;    //×îºóÒ»ÌìÊÇ·ñ½ö¶Ò»»  | 
|     WORD        TemplateID;    //¶Ò»»Ä£°å±àºÅ  | 
|     WORD        DropDiffLVLimit;    //µôÂäµÈ¼¶²îÖµÏÞÖÆ  | 
|     list        DropItemRateList;    //С¹ÖµôÂä±ýͼ¸ÅÂÊ  | 
|     list        DropItemRateListBoss;    //BossµôÂä±ýͼ¸ÅÂÊ  | 
| };  | 
|   | 
| //¼¯×ֻ¶Ò»»Ä£°å±í  | 
|   | 
| struct tagCollectWordsExchange  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     BYTE        ExchangeNum;    //¶Ò»»±àºÅ£¨Í¬¸öÄ£°åÖÐÐèΨһ²»¿É±ä£©  | 
|     list        ExchangeItemInfo;    //¶Ò»»Ä¿±êÎïÆ·[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨]  | 
|     BYTE        ExchangeCountMax;        //×î´ó¶Ò»»´ÎÊý(0²»ÏÞÖÆ)  | 
|     list        NeedItemList;    //ËùÐèÎïÆ·ÐÅÏ¢Áбí [[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
|     BYTE        NeedNotify;        //ÊÇ·ñÐèÒª¹ã²¥  | 
| };  | 
|   | 
| //À¬»ø·ÖÀà»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActGarbageSorting  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        CTGTypeEffValue;    //³äÖµÓÐЧÀàÐÍÖµ  | 
| };  | 
|   | 
| //À¬»ø·ÖÀàÈÎÎñ²ú³ö±í  | 
|   | 
| struct tagActGarbageTask  | 
| {  | 
|     DWORD        _GarbageTasklD;    //À¬»øÈÎÎñID  | 
|     DWORD        FinishNeedValue;    //Íê³ÉËùÐè½ø¶ÈÖµ  | 
|     DWORD        FinishTimeMax;    //×Ü¿ÉÍê³É´ÎÊý£¬0²»ÏÞ  | 
|     BYTE        AutoProduce;        //×Ô¶¯²úÉúÀ¬»ø  | 
|     list        ProduceGarbageRateList;    //Ëæ»ú²úÉúÀ¬»ø¸ÅÂʱýͼ  | 
| };  | 
|   | 
| //ÏÉÏ»ÃØ¾³»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActXianXiaMJ  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     list        UseMoneyInfo;    //ÏûºÄ»õ±ÒÐÅÏ¢  | 
|     BYTE        TemplateID;    //Ä£°åID  | 
| };  | 
|   | 
| //ÏÉÏ»ÃØ¾³½±³Ø±í  | 
|   | 
| struct tagActXianXiaMJAward  | 
| {  | 
|     DWORD        _TemplateID;    //½±³ØÄ£°å±àºÅ  | 
|     BYTE        AwardLibType;    //½±Àø¿âÀàÐÍ  | 
|     BYTE        AwardItemCount;    //Ñ¡Ôñ¸öÊý  | 
|     BYTE        UnlockAwardLimitTimes;    //³éX´Îºó¿É²ú³ö£¨±¾²ã£©  | 
|     BYTE        AwardLibWeight;    //²ú³ö¸Ã¿âÍâÈ¨ÖØ  | 
|     dict        LibItemInfo;    //±¾¿âÎïÆ·Ëæ»ú¿âÄÚÈ¨ÖØ£¨ÏÈËæ»ú¿âÍâÈ¨ÖØ£¬Èô²ú³öÔÙËæ»ú¿âÄÚÈ¨ÖØ£©  | 
|     dict        ItemLayerLimitInfo;    //ÎïÆ·²ú³ö½±³Ø²ãÏÞÖÆ {ÎïÆ·ID:´óÓÚµÈÓÚX²ã¿É²ú³ö, ...}  | 
|     dict        ItemAwardTimesTotalInfo;    //ÎïÆ·²ú³ö´ÎÊýÏÞÖÆ£¨ËùÓв㣩{ÎïÆ·ID:×ܲú³ö´ÎÊý, ...}  | 
| };  | 
|   | 
| //Æï³èÊ¢Ñç»î¶¯  | 
|   | 
| struct tagActHorsePetFeast  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     list        StartTimeList;    //¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     list        EndTimeList;    //½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
| };  | 
|   | 
| //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;    //µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý  | 
|     dict        Reward;    //½±ÀøÎïÆ·ID1  | 
| };  | 
|   | 
| //¶à±¶ÐÞÐеã»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActRealmPoint  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     WORD        Multiple;    //±¶Êý  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     DWORD        PointLimit;    //ÏÞÖÆ¶îÍâÐÞÐÐµã  | 
| };  | 
|   | 
| //×ÚÃÅÊÔÁ¶¶Ò»»±í  | 
|   | 
| 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;    //ÅÅÐòÓñêʶ  | 
|     BYTE        Rare;    //Õäϡֵ  | 
| };  | 
|   | 
| //¹¦ÄÜÔ¤¸æ±í  | 
|   | 
| struct tagFunctionForecast  | 
| {  | 
|     DWORD        _FuncID;    //¹¦ÄÜID  | 
|     dict        Award;    //ÊôÐÔÀàÐÍ  | 
| };  | 
|   | 
| //ÁÄÌìÆøÅÝ±í  | 
|   | 
| struct tagChatBubbleBox  | 
| {  | 
|     BYTE        _BoxID;    //ÆøÅÝ¿òID  | 
|     WORD        NeedLV;    //ËùÐèµÈ¼¶  | 
|     BYTE        NeedVIPLVGift;    //ËùÐ蹺ÂòVIPµÈ¼¶Àñ°ü  | 
| };  | 
|   | 
| //³äÖµ·µÀû»î¶¯±í  | 
|   | 
| struct tagActRechargePrize  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //³äÖµ·µÀûÄ£°å±í  | 
|   | 
| struct tagRechargePrizeTemplate  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     WORD        CTGID;    //³äÖµ±í³äÖµID  | 
|     DWORD        GoldPrize;        //·µÀûÏÉÓñÊý  | 
|     BYTE        PrizeCountLimit;    //×î´óÔùËÍ´ÎÊý  | 
| };  | 
|   | 
| //ÀۼƳäÖµ»î¶¯±í  | 
|   | 
| struct tagActTotalRecharge  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //ÀۼƳäֵģ°å±í  | 
|   | 
| struct tagTotalRechargeTemplate  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     float        NeedGold;    //ÐèÒª³äÖµRMB£¬Ôª  | 
|     BYTE        AwardIndex;        //·µÀû½±ÀøË÷Òý0~31,ͬ¸öÄ£°åÖв»Öظ´  | 
|     dict        AwardItem;    //·µÀûÎïÆ·ÐÅÏ¢Áбí {Ö°Òµ:[(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]}  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //ÀۼƳäÖµ·µÀûÏÉÓñ»î¶¯±í  | 
|   | 
| struct tagActRechargeRebateGold  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //ÀۼƳäÖµ·µÀûÏÉÓñÄ£°å±í  | 
|   | 
| struct tagRechargeRebateGoldTemplate  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     DWORD        RMBMin;    //³äÖµRMB×îСֵ  | 
|     DWORD        RMBMax;    //³äÖµRMB×î´óÖµ  | 
|     WORD        RebateRate;    //·µÀûÏÉÓñ±ÈÀý°Ù·Ö±È  | 
| };  | 
|   | 
| //³É³¤±ØÂò»î¶¯±í  | 
|   | 
| struct tagActGrowupBuy  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     list        CTGIDGroupList;    //³äÖµ±àºÅ×éÁбí [[ctgID, ...], ...]  | 
| };  | 
|   | 
| //¶àÈÕÁ¬³ä»î¶¯±í  | 
|   | 
| struct tagActManyDayRecharge  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     WORD        TemplateID;    //Ä£°å±àºÅ  | 
| };  | 
|   | 
| //¶àÈÕÁ¬³äÄ£°å±í  | 
|   | 
| struct tagActManyDayRechargeAward  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     float        NeedRMB;    //ËùÐè³äÖµ¶î¶È  | 
|     BYTE        NeedDays;    //ËùÐè³äÖµÌìÊý  | 
|     BYTE        AwardIndex;    //½±ÀøË÷Òý  | 
|     dict        AwardItemInfo;    //½±ÀøÎïÆ·ÐÅÏ¢  {ÊÀ½çµÈ¼¶·¶Î§:[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]}  | 
|     char         NotifyKey;    //¹ã²¥  | 
| };  | 
|   | 
| //תÅ̻±í  | 
|   | 
| struct tagActTurntable  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        CTGTypeEffValue;    //³äÖµÓÐЧÀàÐÍÖµ  | 
|     list        CTGPrizeList;    //ÀۼƳäÖµ½±Àø´ÎÊý  | 
|     BYTE        UseMoneyType;    //ÀÛ¼ÆÏû·Ñ»õ±ÒÀàÐÍ  | 
|     list        UseMoneyPrizeList;    //ÀÛ¼ÆÏû·ÑX»õ±Ò½±Àø´ÎÊý  | 
|     list        LibChooseCountList;    //¸÷µÀ¾ß¿âÑ¡Ôñ¸öÊý  | 
|     list        SuperItemLimitRule;    //ÖÕ¼«¿â²ú³öÍò·ÖÂÊ|ÖÁÉÙX´Îºó¿É²ú³ö  | 
|     dict        CommItemLib;    //ÆÕͨµÀ¾ß¿â {(ÊÀ½çµÈ¼¶A,ÊÀ½çµÈ¼¶B):[[¿ÉÑ¡ÎïÆ·ID, ¸öÊý, ÊÇ·ñÅÄÆ·], ...], ...}  | 
|     dict        GoodItemLib;    //¼«Æ·µÀ¾ß¿â {(ÊÀ½çµÈ¼¶A,ÊÀ½çµÈ¼¶B):[[¿ÉÑ¡ÎïÆ·ID, ¸öÊý, ÊÇ·ñÅÄÆ·], ...], ...}  | 
|     dict        SuperItemLib;    //³¬¼¶µÀ¾ß¿â {(ÊÀ½çµÈ¼¶A,ÊÀ½çµÈ¼¶B):[[¿ÉÑ¡ÎïÆ·ID, ¸öÊý, ÊÇ·ñÅÄÆ·], ...], ...}  | 
|     char        WorldNotifyKey;    //ºÃÎïÆ·È«·þ¹ã²¥mark£¬¼«Æ·¼°³¬¼¶µÀ¾ßĬÈÏÈ«·þ¹ã²¥  | 
| };  | 
|   | 
| //µ¥±ÊÀÛ³ä»î¶¯±í  | 
|   | 
| struct tagActSingleRecharge  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        CTGTypeEffValue;    //³äÖµÓÐЧÀàÐÍÖµ  | 
|     BYTE        IsOfflineAct;    //ÊÇ·ñÏßÏ»  | 
|     BYTE        AwardRuleType;    //Áì½±¹æÔòÀàÐÍ 0-ÏòϼæÈÝ£»1-Æ¥Åä×î¸ßµµ£»2-¾«È·Æ¥Åä¶ÔÓ¦µµ´Î  | 
|     list        TemplateIDList;    //Ä£°åIDÁÐ±í  | 
| };  | 
|   | 
| //µ¥±ÊÀÛ³äÄ£°å±í  | 
|   | 
| struct tagActSingleRechargeAward  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     float        SingleRechargeValue;    //µ¥±Ê³äÖµ¶î¶È  | 
|     BYTE        AwardIndex;        //·µÀû½±ÀøË÷Òý0~31,ͬ¸öÄ£°åÖв»Öظ´  | 
|     dict        AwardItem;    //·µÀûÎïÆ·ÐÅÏ¢Áбí {Ö°Òµ:[(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...]}  | 
|     char        NotifyKey;        //È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È)  | 
| };  | 
|   | 
| //·¨±¦¸±±¾±í  | 
|   | 
| struct tagMagicWeaponFB  | 
| {  | 
|     DWORD        _MWID;    //·¨±¦ID  | 
|     BYTE        LineID;    //¸±±¾¹¦ÄÜÏß·ID  | 
|     BYTE        _Level;    //¹Ø¿¨  | 
|     list        RefreshNPC;    //Ë¢¹ÖÅäÖÃ  | 
|     dict        AttrDict;    //ÊôÐÔ  | 
| };  | 
|   | 
| //±ù¾§¿óÂöÐǼ¶½±Àø±í  | 
|   | 
| struct tagIceLodeStarAward  | 
| {  | 
|     BYTE        _Index;    //½±ÀøË÷Òý  | 
|     BYTE        Star;    //ÐÇÊý  | 
|     list        LVLimit;    //µÈ¼¶·¶Î§  | 
|     list        ItemList;    //½±Àø  | 
| };  | 
|   | 
|   | 
| //¿ç·þ¾º¼¼³¡¶Îλ±í  | 
|   | 
| struct tagCrossRealmPKDan  | 
| {  | 
|     BYTE        _DanLV;    //¶ÎλµÈ¼¶  | 
|     WORD        LVUpScore;    //Éý¶ÎλËùÐè»ý·Ö  | 
| };  | 
|   | 
| //¿ç·þ¾º¼¼³¡¶Îλ½±Àø±í  | 
|   | 
| struct tagCrossRealmPKDanAward  | 
| {  | 
|     char        _CrossZoneName;    //¿ç·þ·ÖÇøÃû  | 
|     BYTE        _SeasonID;    //Èü¼¾ID  | 
|     BYTE        _DanLV;    //¶ÎλµÈ¼¶  | 
|     list        DanLVAwardList;    //¶Îλ´ï±ê½±ÀøÎïÆ·Áбí [[½±ÀøÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
|     list        SeasonDanLVAwardList;    //Èü¼¾¶Îλ½±ÀøÎïÆ·Áбí [[½±ÀøÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...]  | 
| };  | 
|   | 
| //¿ç·þ¾º¼¼³¡ÅÅÃû½±Àø±í  | 
|   | 
| struct tagCrossRealmPKOrderAward  | 
| {  | 
|     char        _CrossZoneName;    //¿ç·þ·ÖÇøÃû  | 
|     BYTE        _SeasonID;    //Èü¼¾ID  | 
|     dict        OrderAwardInfo;    //Èü¼¾ÅÅÃû½±ÀøÐÅÏ¢ {"ÅÅÃû":[[½±ÀøÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...], ...}  | 
| };  | 
|   | 
| //¿ç·þ·ÖÇø±íͨÓà  | 
|   | 
| struct tagCrossZoneComm  | 
| {  | 
|     char        _CrossZoneName;    //¿ç·þ·ÖÇøÃû  | 
|     BYTE        _ZoneID;    //ÈüÇøID  | 
|     list        ServerGroupIDList;    //ÈüÇø·þÎñÆ÷×éIDÁÐ±í  | 
| };  | 
|   | 
| //¿ç·þ·ÖÇø±í¾º¼¼³¡  | 
|   | 
| struct tagCrossZonePK  | 
| {  | 
|     char        _CrossZoneName;    //¿ç·þ·ÖÇøÃû  | 
|     BYTE        _ZoneID;    //ÈüÇøID  | 
|     list        ServerGroupIDList;    //ÈüÇø·þÎñÆ÷×éIDÁÐ±í  | 
| };  | 
|   | 
| //¿ç·þBossÅîÀ³Ïɾ³·ÖÇøµØÍ¼±í  | 
|   | 
| struct tagCrossPenglaiZoneMap  | 
| {  | 
|     BYTE        ZoneID;    //·ÖÇøID  | 
|     DWORD        _MapID;    //³¡¾°µØÍ¼ID  | 
|     DWORD        _DataMapID;    //Êý¾ÝµØÍ¼ID  | 
|     BYTE        _CopyMapID;    //ÐéÄâÏß·ID  | 
|     WORD        PosX;    //×ø±êX  | 
|     WORD        PosY;    //×ø±êY  | 
| };  | 
|   | 
| //¾Û»ê±í  | 
|   | 
| struct tagGatherSoul  | 
| {  | 
|     DWORD        _ItemID;    //ÎïÆ·ID  | 
|     list        AttrType;    //ÊôÐÔÀàÐÍ  | 
|     BYTE        SoulGrade;    //»ê½×¶Î  | 
| };  | 
|   | 
| //¾Û»êºÏ³É±í  | 
|   | 
| struct tagGatherSoulCompound  | 
| {  | 
|     DWORD        _TagItemID;    //ºÏ³ÉµÄÎïÆ·ID  | 
|     WORD        NeedLV;    //ÐèÒªµÄÍæ¼ÒµÈ¼¶  | 
|     list        NeedItem; //ÐèÒªµÄÎïÆ·ID  | 
|     WORD        NeedSoulSplinters;    //ÐèÒªµÄ¾Û»êË鯬  | 
|     WORD        NeedSoulCore;    //ÐèÒªµÄºËÐÄ»·  | 
| };  | 
|   | 
| //¾Û»êÊôÐﱒ  | 
|   | 
| struct tagGatherSoulAttr  | 
| {  | 
|     WORD        _AttrType;    //ÊôÐÔÀàÐÍ  | 
|     char        AttrInfo1;    //»ù´¡ÊôÐÔ-²ÎÊý¾Û»êµÈ¼¶level  | 
|     dict        AttrInfo2;    //Æ·ÖÊϵÊý(Æ·ÖÊ_ϵÊý|¡)  | 
|     dict        AttrInfo3;    //¶àÊôÐÔϵÊý  | 
|     dict        AttrInfo4;    //³õʼÊôÐÔ(Æ·ÖÊ_ÊôÐÔÖµ|¡)  | 
|     dict        AttrInfo5;    //½×¶ÎϵÊý  | 
| };  | 
|   | 
| //ÍõÕß·¨±¦±í  | 
|   | 
| struct tagMagicWeaponOfKing  | 
| {  | 
|     DWORD        _MWID;    //·¨±¦ID  | 
|     BYTE        _AwardMark;    //Èü¼¾½±ÀøµÈ¼¶  | 
|     dict        AddAttr;    //ÊôÐÔ  | 
| };  | 
|   | 
| //ʱװ±í  | 
|   | 
| struct tagCoat  | 
| {  | 
|     DWORD        _CoatID;    //ʱװ±àºÅ  | 
|     list        EquipItemID;    //×°±¸ÎïÆ·ID(°´Ö°ÒµË³Ðò)  | 
|     DWORD        UnlockItemID;    //²ÄÁÏÎïÆ·ID  | 
|     DWORD        MaxLV;    //×î´óÐǼ¶  | 
|     list        CostItemCnt;    //²ÄÁÏÊýÁ¿  | 
|     dict        StarAttr;    //ÊôÐÔ  | 
| };  | 
|   | 
| //ʱװ¹ñÉý¼¶±í  | 
|   | 
| struct tagCoatChestUp  | 
| {  | 
|     DWORD        _LV;    //µÈ¼¶  | 
|     BYTE        NeedExp;    //Éý¼¶ËùÐè¾Ñé  | 
|     dict        AddAttr;    //ÊôÐÔ  | 
| };  | 
|   | 
| //ÖÜ¿ñ»¶»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActWeekParty  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     list        TemplateID;    //Ä£°å±àºÅ  | 
|     dict        PointAward;    //×Ü»ý·Ö½±Àø  | 
| };  | 
|   | 
| //ÖÜ¿ñ»¶±í  | 
|   | 
| struct tagWeekParty  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        ActionType;    //»î¶¯ÌõÄ¿ID  | 
|     DWORD        TotalTimes;    //¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý  | 
|     WORD        SingleTimes;    //µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý  | 
|     list        Reward;    //½±ÀøÎïÆ·  | 
|     WORD        Point;    //»ý·Ö  | 
| };  | 
|   | 
| //µÇ¼½±ÀøÊ±¼ä±í  | 
|   | 
| struct tagActLoginAward  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     list        TemplateID;    //Ä£°å±àºÅ  | 
| };  | 
|   | 
| //µÇ¼½±ÀøÄ£°å±í  | 
|   | 
| struct tagLoginAward  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        ActionType;    //»î¶¯ÌõÄ¿ID  | 
|     DWORD        TotalTimes;    //¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý  | 
|     WORD        SingleTimes;    //µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý  | 
|     char        Reward;    //½±ÀøÎïÆ·  | 
| };  | 
|   | 
| //½ÚÈյǼ½±ÀøÊ±¼ä±í  | 
|   | 
| struct tagActFeastLogin  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     dict        TemplateIDInfo;    //Ä£°åÐÅÏ¢ {(ÊÀ½çµÈ¼¶A,B):½±ÀøÄ£°å±àºÅ, ...}  | 
| };  | 
|   | 
| //½ÚÈյǼ½±ÀøÄ£°å±í  | 
|   | 
| struct tagActFeastLoginAward  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        DayNum;    //µÚXÌì´Ó1¿ªÊ¼  | 
|     list        LoginAwardItemList;    //½±ÀøÁбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //½ÚÈÕ×£¸£Ê±¼ä±í  | 
|   | 
| struct tagActFeastWish  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     dict        TemplateIDInfo;    //Ä£°åÐÅÏ¢ {(ÊÀ½çµÈ¼¶A,B):Ä£°å±àºÅ, ...}  | 
| };  | 
|   | 
| //½ÚÈÕ×£¸£Æ¿Ä£°å±í  | 
|   | 
| struct tagActFeastWishBottle  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        WishBottleNum;    //×£¸£Æ¿±àºÅ  | 
|     WORD        NeedWishValue;    //µ¥´ÎÁì½±ËùÐè×£¸£Öµ  | 
|     BYTE        ChooseTimeMax;    //×î´ó¿ÉÁì½±´ÎÊý  | 
|     dict        ChoosePrizeItem;    //Ñ¡Ôñ½±ÀøÎïÆ·ÐÅÏ¢£¬Ñ¡ÍêΪֹ {¼Ç¼Ë÷Òý:[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...}  | 
|     list        GoodItemIDList;    //ÐèÒª¹ã²¥µÄÎïÆ·IDÁбí [ÎïÆ·ID, ...]  | 
|     char        WorldNotifyKey;    //È«·þ¹ã²¥key£¬²ÎÊý(Íæ¼ÒÃû, ÎïÆ·ID, ÎïÆ·Êý¾Ý, ¸öÊý,)  | 
| };  | 
|   | 
| //½ÚÈÕ×£¸£³ØÄ£°å±í  | 
|   | 
| struct tagActFeastWishPool  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     list        WishPoolItemWeightInfo;    //×£¸£³Ø²ú³öÎïÆ·È¨ÖØ [[È¨ÖØ, [ÎïÆ·ID,¸öÊý]], ..]  | 
|     list        WishPoolClientItemShow;    //ǰ¶ËչʾÎïÆ·Áбí [ÎïÆ·ID, ...]  | 
|     list        GoodItemIDList;    //ÐèÒª¹ã²¥µÄÎïÆ·IDÁбí [ÎïÆ·ID, ...]  | 
|     char        WorldNotifyKey;    //È«·þ¹ã²¥key£¬²ÎÊý(Íæ¼ÒÃû, ÎïÆ·ID, ÎïÆ·Êý¾Ý, ¸öÊý,)  | 
| };  | 
|   | 
| //½ÚÈÕÓÎÀúʱ¼ä±í  | 
|   | 
| struct tagActFeastTravel  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     dict        TemplateIDInfo;    //Ä£°åÐÅÏ¢ {(ÊÀ½çµÈ¼¶A,B):Ä£°å±àºÅ, ...}  | 
| };  | 
|   | 
| //½ÚÈÕÓÎÀúÈÎÎñ±í  | 
|   | 
| struct tagActFeastTravelTask  | 
| {  | 
|     BYTE        _TraveTasklD;    //ÓÎÀúID  | 
|     WORD        FinishNeedValue;    //Íê³ÉËùÐè½ø¶ÈÖµ  | 
|     WORD        FinishTimeMax;    //×Ü¿ÉÍê³É´ÎÊý£¬0²»ÏÞ  | 
|     BYTE        AddTravelPoint;    //Íê³É´ÎÊý»ñµÃÓÎÀúÖµ  | 
| };  | 
|   | 
| //½ÚÈÕÓÎÀú½±Àø±í  | 
|   | 
| struct tagActFeastTravelAward  | 
| {  | 
|     BYTE        _TemplatelD;    //½±ÀøÄ£°åID  | 
|     BYTE        RecordIndex;    //½±Àø¼Ç¼Ë÷Òý  | 
|     WORD        NeedTravelPoint;    //Áì½±ËùÐèÓÎÀúÖµ  | 
|     BYTE        AwardCountMax;    //¿ÉÁìÈ¡´ÎÊý£¬0´ú±í²»ÏÞ  | 
|     list        TravelAwardInfo;    //ÓÎÀú½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //ÖïÏÉBOSS±í  | 
|   | 
| struct tagZhuXianBoss  | 
| {  | 
|     DWORD        NPCID;    //ID  | 
|     BYTE        _LineID;  | 
|     WORD        RealmLV;    //ÐèÒª¾³½ç  | 
|     DWORD        ZhuXianScore;    //ÐèÒªÖïÏÉ×ÜÆÀ·Ö  | 
| };  | 
|   | 
| //½ÚÈÕѲÀñ»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActFeastWeekParty  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     WORD        AdvanceMinutes;    //ǰ¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     BYTE        IsDayReset;    //ÊÇ·ñÿÌìÖØÖà  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     list        TemplateID;    //Ä£°å±àºÅ  | 
|     dict        PointAward;    //×Ü»ý·Ö½±Àø  | 
| };  | 
|   | 
| //½ÚÈÕѲÀñÄ£°å±í  | 
|   | 
| struct tagFeastWeekParty  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     BYTE        ActionType;    //»î¶¯ÌõÄ¿ID  | 
|     DWORD        TotalTimes;    //¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý  | 
|     WORD        SingleTimes;    //µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý  | 
|     list        Reward;    //½±ÀøÎïÆ·  | 
|     WORD        Point;    //»ý·Ö  | 
| };  | 
|   | 
| //ÐÂÏɽçÊ¢µä-È«ÃñÀ´à豒  | 
|   | 
| struct tagNewAllPeopleParty  | 
| {  | 
|     BYTE        _ID;    //ID  | 
|     WORD        TotalTimes;    //×Ü´ÎÊý  | 
|     WORD        AddPoint;    //ÿÍê³É´ÎÊý»ñµÃà赋  | 
| };  | 
|   | 
| //ÐÂÏɽçÊ¢µä-È«ÃñÀ´à˽±Àø±í  | 
|   | 
| struct tagNewAllPeoplePartyAward  | 
| {  | 
|     BYTE        _WorldLvNum;    //ÊÀ½çµÈ¼¶µµ  | 
|     DWORD        _Index;    //Ë÷Òý  | 
|     DWORD        NeedPoint;    //ÐèÒªµãÊý  | 
|     dict        Award;    //½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...}  | 
| };  | 
|   | 
| //ÐÒÔ˼ø±¦»î¶¯Ê±¼ä±í  | 
|   | 
| struct tagActLuckyTreasure  | 
| {  | 
|     DWORD        _CfgID;    //ÅäÖÃID  | 
|     char        StartDate;    //¿ªÆôÈÕÆÚ  | 
|     char        EndDate;    //½áÊøÈÕÆÚ  | 
|     BYTE        ResetType;    //ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     WORD        LVLimit;    //ÏÞÖÆµÈ¼¶  | 
|     BYTE        TemplateID;    //Ä£°å±àºÅ  | 
|     WORD        LuckyPoint;    //×ÜÐÒÔËÖµ  | 
| };  | 
|   | 
| //ÐÒÔ˼ø±¦¿âÄ£°å±í  | 
|   | 
| struct tagLuckyTreasureTemplate  | 
| {  | 
|     BYTE        _TemplateID;    //Ä£°åID  | 
|     list        WorldLVLimit;    //ÊÀ½çµÈ¼¶·¶Î§  | 
|     DWORD        ItemID;    //ÎïÆ·ID  | 
|     WORD        ItemCnt;    //ÎïÆ·ÊýÁ¿  | 
|     BYTE        IsBind;    //ÊÇ·ñ°ó¶¨  | 
|     DWORD        Weight;    //È¨ÖØ  | 
| };  | 
|   | 
| //¿ç·þ³äÖµÅÅÐÐÄ£°å´ï±ê½±Àø±í  | 
|   | 
| struct tagCrossActCTGBillboardDabiao  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     float        CTGNeed;    //Ðè³äÖµRMB  | 
|     BYTE        AwardIndex;    //½±Àø¼Ç¼Ë÷Òý£¬´Ó0¿ªÊ¼£¬Í¬¸öÄ£°å²»¿ÉÖØ¸´£¬²»¿É±ä¸ü  | 
|     list        AwardItemList;    //½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //¿ç·þ³äÖµÅÅÐÐÄ£°åÃû´Î½±Àø±í  | 
|   | 
| struct tagCrossActCTGBillboardOrder  | 
| {  | 
|     DWORD        _TemplateID;    //Ä£°åID  | 
|     WORD        OrderA;    //Ãû´ÎA  | 
|     WORD        OrderB;    //ÖÁÃû´ÎB  | 
|     float        CTGAtleast;    //ÖÁÉÙ³äÖµRMB  | 
|     list        AwardItemList;    //½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //ÉñÃØÉ̵ê±í  | 
|   | 
| struct tagMysteryShop  | 
| {  | 
|     list        LVRange;    //µÈ¼¶·¶Î§  | 
|     DWORD        GoodsID;    //É̳DZíID  | 
| };  | 
|   | 
| //×°±¸Î»±³°üË÷ÒýÓ³Éä±í  | 
|   | 
| struct tagEquipPlaceIndexMap  | 
| {  | 
|     DWORD        GridIndex;    //±³°ü¸ñ×ÓË÷Òý  | 
|     DWORD        _ClassLV;    //½×¼¶(ÎïÆ·±íLV×Ö¶Î)  | 
|     DWORD        _EquipPlace;    //×°±¸Î»(ÎïÆ·±íEquipPlace×Ö¶Î)  | 
| };  | 
|   | 
| //×°±¸Éñ×°±í  | 
|   | 
| struct tagEquipShenAttr  | 
| {  | 
|     DWORD        _EquipItemID;    //×°±¸ID  | 
|     list        ShenAttrIDList;    //ÉñÆ·´«ÆæÊôÐÔIDÁÐ±í  | 
|     list        ShenAttrValueList;    //ÉñÆ·´«ÆæÊôÐÔÖµÁÐ±í  | 
|     list        XianAttrIDList;    //ÏÉÆ·´«ÆæÊôÐÔIDÁÐ±í  | 
|     list        XianAttrValueList;    //ÏÉÆ·´«ÆæÊôÐÔÖµÁÐ±í  | 
|     list        JiAttrIDList;    //¼«Æ·´«ÆæÊôÐÔIDÁÐ±í  | 
|     list        JiAttrValueList;    //¼«Æ·´«ÆæÊôÐÔÖµÁÐ±í  | 
|     list        LegendAttrIDList;    //ÆÕͨ´«ÆæÊôÐÔIDÁÐ±í  | 
|     list        LegendAttrValueList;    //ÆÕͨ´«ÆæÊôÐÔÖµÁÐ±í  | 
| };  | 
|   | 
| //×°±¸Éñ×°½ø½×±í  | 
|   | 
| struct tagEquipShenEvolve  | 
| {  | 
|     DWORD        _EquipItemID;    //×°±¸ID  | 
|     DWORD        EvolveEquipID;        //¿É½ø½×Ä¿±ê×°±¸ID  | 
|     list        EvolveNeedItemIDInfo;    //½ø½×ËùÐ踽¼Ó²ÄÁϼ°¸öÊý  | 
| };  | 
|   | 
| //×°±¸ÉýÐÇ±í  | 
|   | 
| struct tagEquipStarUp  | 
| {  | 
|     BYTE        _ClassLV;    //½×¼¶  | 
|     BYTE        _EquipPlace;    //×°±¸Î»  | 
|     BYTE        _Star;    //ÐÇÊý  | 
|     list        CostEquipPlace;    //¿ÉÓÃ×°±¸²¿Î»  | 
|     BYTE        IsJobLimit;    //ÊÇ·ñÖ»Óñ¾Ö°Òµ×°±¸²ÄÁÏ  | 
|     list        CostEquipColor;    //¿ÉÓÃ×°±¸Æ·ÖÊ  | 
|     BYTE        CostEquipCnt;    //×°±¸ÊýÁ¿  | 
|     BYTE        UnSuitRate;    //µ¥¼þ·ÇÌ××°¼Ó³É¸ÅÂÊ  | 
|     BYTE        SuitRate;    //µ¥¼þÌ××°¼Ó³É¸ÅÂÊ  | 
|     dict        CostItemDict;    //ÌØÊâ²ÄÁÏ  | 
|     dict        StarAttrInfo;    //ÐǼ¶ÊôÐÔ  | 
|     dict        BaseAttrInfo;    //»ù´¡ÊôÐÔÔö¼Ó  | 
| };  | 
|   | 
| //×°±¸Ç¿»¯½ø»¯±í  | 
|   | 
| struct tagEquipPlusEvolve  | 
| {  | 
|     BYTE        _EquipPlace;    //×°±¸Î»  | 
|     BYTE        _EvolveLV;    //½ø»¯µÈ¼¶  | 
|     WORD        NeedPlusLV;    //ÐèҪǿ»¯µÈ¼¶  | 
|     dict        CostItem;    //ÏûºÄ²ÄÁÏ  | 
|     dict        Attr;    //ÊôÐÔ  | 
| };  | 
|   | 
| //ÏÉÃËBoss½±Àø±í  | 
|   | 
| struct tagFamilyBossAward  | 
| {  | 
|     DWORD        _BossID;    //BossID  | 
|     list        WorldLV;    //ÊÀ½çµÈ¼¶  | 
|     list        Rank;    //ÅÅÃû  | 
|     list        Award1;    //½±Àø [[¶ÀÁ¢¸ÅÂÊÍò·ÖÂÊ,[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·]],..]  | 
|     dict        Award2;    //±ýͼ½±Àø{Ëæ»ú´ÎÊý:[(¸ÅÂÊ,[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·]),..]}  | 
| };  | 
|   | 
| //×°±¸Ï´Á·µÈ¼¶ÉÏÏÞ  | 
|   | 
| struct tagItemWashMax  | 
| {  | 
|     BYTE        _Type;        //°´×°±¸Î»¶ÔÓ¦ÀàÐͲéÕÒ  | 
|     BYTE        _Star;    // ×°±¸ÐÇÊý  | 
|     WORD        LevelMax;    //Ï´Á·µÈ¼¶ÉÏÏÞ  | 
| };  | 
|   | 
| //Æï³èBoss½±Àø±í  | 
|   | 
| struct tagHorsePetBossAward  | 
| {  | 
|     BYTE        _LineID;    // Ïß·ID  | 
|     list        WorldLV;    //ÊÀ½çµÈ¼¶  | 
|     list        Rank;    //ÅÅÃû  | 
|     list        Award1;    //½±Àø [[¶ÀÁ¢¸ÅÂÊÍò·ÖÂÊ,[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·]],..]  | 
|     list        Award2;    //±ýͼ½±Àø  [[(¸ÅÂÊ,[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·]),..]]  | 
| };  | 
|   | 
| //çÎç¿ÏÉÓò±í  | 
|   | 
| struct tagFairyDomain  | 
| {  | 
|     WORD        _ID;    //ʼþ±àºÅ  | 
|     BYTE        EventType;    //ʼþÀàÐÍ  | 
|     DWORD        MapID;    //¸±±¾id  | 
|     BYTE        LineID;    //¸±±¾Ïß·id  | 
|     DWORD        BossID;    //¸±±¾BossID  | 
|     BYTE        EventFBType;    //ʼþ¸±±¾ÀàÐÍ£¬0-ǰ¶Ë£¬1-±¾·þ£¬2-¿ç·þ  | 
|     BYTE        CostEnergy;    //ÏûºÄÌåÁ¦  | 
|     BYTE        NeedAlchemyLV;    //³öÏÖµÄÁ¶µ¤µÈ¼¶ÒªÇó  | 
|     list        NeedLV;    //³öÏÖµÄÍæ¼ÒµÈ¼¶ÒªÇó  | 
|     DWORD        Weight;    //È¨ÖØ  | 
|     DWORD        HourCntPriLimit;    //¸öÈËÿСʱ´ÎÊýÏÞÖÆ  | 
|     DWORD        DayCntPriLimit;    //¸öÈËÿÌì´ÎÊýÏÞÖÆ  | 
| };  | 
|   | 
| //çÎç¿ÆæÓö±í  | 
|   | 
| struct tagFairyAdventures  | 
| {  | 
|     WORD        _ID;    //ΨһID  | 
|     DWORD        OpenServerDay;    //¿ª·þÌì  | 
|     BYTE        EventID;    //ʼþ±àºÅ  | 
|     list        Condition;    //Ìõ¼þ  | 
|     list        GearAward;    //µµÎ»½±Àø  | 
|     list        BasicAward;    //±£µ×½±Àø  | 
| };  | 
|   | 
| //çÎç¿ÏÉÓò¶¨ÖÆ±í  | 
|   | 
| struct tagFairyDomainAppoint  | 
| {  | 
|     WORD        _Cnt;    //´ÎÊý  | 
|     DWORD        EventID;    //ʼþ±àºÅ  | 
|     list        Award;    //¶¨Öƽ±Àø£¨Ã»Åä×ßÕý³£½±Àø¹æÔò£©[[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·],..]  | 
|     list        RandomAward;    //Ëæ»ú½±Àø [[(È¨ÖØ,[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñÅÄÆ·]),..],..]  | 
| };  | 
|   | 
| //¸±±¾Buff±í  | 
|   | 
| struct tagFBBuyBuff  | 
| {  | 
|     DWORD        _MapId;    //  | 
|     WORD        _MoneyCnt;    //ÏÉÓñÊýÁ¿  | 
|     DWORD        BuffID;    //BuffID  | 
|     WORD        BuffCD;    //¼ä¸ôʱ¼äs  | 
| };  | 
|   | 
| //¼¼ÄÜÉý¼¶±í  | 
|   | 
| struct tagSkillElement  | 
| {  | 
|     DWORD        _ElementSkillID;    //ר¾«¼¼ÄÜID  | 
|     BYTE        ElementSkillNum;    //ר¾«¼¼ÄܱàºÅ  | 
|     DWORD        MainSkillID;    //Ö÷¼¼ÄÜID  | 
|     DWORD        NeedLV;    //Ñ¡ÔñÐèÒªµÈ¼¶  | 
| };  | 
|   | 
| //ÌìÐÇËþ±í  | 
|   | 
| struct tagSkyTower  | 
| {  | 
|     DWORD        _FloorID;    //²ã  | 
|     DWORD        BossID;    //bossID  | 
|     dict        Reward;    //½±Àø  | 
|     WORD        NeedLV;    //ÒªÇóµÈ¼¶  | 
|     DWORD        FightPower;    //ÍÆ¼öÕ½Á¦  | 
|     BYTE        IsNotify;    //ÊÇ·ñ¹ã²¥  | 
| };  | 
|   | 
| //ÌìÐÇËþÈ«·þÌôÕ½±í  | 
|   | 
| struct tagSkyTowerServerChallenge  | 
| {  | 
|     DWORD        _FloorID;    //²ã  | 
|     BYTE        RewardRecordIndex;    //½±Àø¼Ç¼λË÷Òý  | 
|     dict        Reward;    //½±Àø  | 
| };  | 
|   | 
| //Áé¸ùÌØÐ§±í  | 
|   | 
| struct tagLingGenEffect  | 
| {  | 
|     DWORD        ID;    //ΨһID  | 
|     DWORD        _PointID;    //Áé¸ùID  | 
|     BYTE        _QualityLV;    //Æ·¼¶  | 
| };  | 
|   | 
| //Æï³è»Ã»¯±í  | 
|   | 
| struct tagHorsePetSkin  | 
| {  | 
|     BYTE        _Type;    //1×øÆï2Áé³è  | 
|     DWORD        _ID;    //¹ØÁªID(×øÆï±íºÍÁé³è±íID)  | 
|     BYTE        _SkinLV;    //»Ã»¯µÈ¼¶  | 
|     DWORD        NeedExp;    //Éý¼¶ÐèÒª¾Ñé  | 
|     dict        AttrInfo;    //ÊôÐÔ  | 
|     BYTE        SkinIndex;    //Íâ¹Û  | 
| };  | 
|   | 
| //ÐÖú¸ÐлÀñºÐ±í  | 
|   | 
| struct tagAssistThanksGift  | 
| {  | 
|     DWORD        _GiftID;    //ÀñºÐÎïÆ·ID  | 
|     list        RequestPlayerAward;    // ·¢²¼½±ÀøÎïÆ· ÎïÆ·ID|¸öÊý  | 
|     list        AssistPlayerAward;    // ÐÖú½±ÀøÎïÆ· ÎïÆ·ID|¸öÊý  | 
| };  | 
|   | 
| //¹¦ÄÜÌØÈ¨½±Àø±í  | 
|   | 
| struct tagFuncSysPrivilege  | 
| {  | 
|     BYTE        _FuncSysID;    //¹¦ÄÜϵͳID  | 
|     BYTE        DayNum;        //µÚXÌì  | 
|     list        DayAwardItemInfo;    // ½±ÀøÎïÆ·ÐÅÏ¢ [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
| };  | 
|   | 
| //ÀۼƳäÖµ½±Àø±í  | 
|   | 
| struct tagHistoryRechargeAward  | 
| {  | 
|     BYTE        _ID;    //id  | 
|     float        NeedRMB;    //ËùÐè³äÖµÔª  | 
|     dict        Reward;    //Ö°Òµ¶ÔÓ¦µÄ½±ÀøÄÚÈÝ,ÿ¸öÖ°Òµ4×éÊý¾Ý£¬ÎïÆ·IDºÍÎïÆ·ÊýÁ¿(1.ǹºÀ2.µÀʦ3.½£ÐÞ)  | 
| };  |