少年修仙传客户端代码仓库
client_linchunjie
2018-10-25 c8d37bd5866c8ea4fba04fd2bb97ba260ef16dc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using LitJson;
using UnityEngine;
using Snxxz.UI;
/**集市信息 */
public class PlayerMarketData
{
    public static event Action OnRefreshPutaway;
 
    #region 玩家个人上架物品
    public int putawayCnt = 0;
 
    public List<MarketItemData> putawayList = new List<MarketItemData>();
 
    public void OnRefreshMarket(H1B01_tagPlayerBourseItemResult vNetData)
    {
        for (int i = 0; i < vNetData.ItemCount; i++)
        {
            if (i < putawayList.Count)
            {
                SetMarketItemData(putawayList[i], vNetData.ItemList[i]);
            }
            else
            {
                MarketItemData data = new MarketItemData();
                SetMarketItemData(data, vNetData.ItemList[i]);
                putawayList.Add(data);
            }
        }
        for (int i = putawayList.Count - 1; i >= vNetData.ItemCount; i--)
        {
            MarketItemData data = putawayList[i];
            putawayList.RemoveAt(i);
            data = null;
        }
        putawayCnt = vNetData.ItemCount;
        if (OnRefreshPutaway != null) OnRefreshPutaway();
    }
 
    public void SetMarketItemData(MarketItemData data, H1B01_tagPlayerBourseItemResult.tagBourseItem source)
    {
        data.ItemGUID = source.ItemGUID;
        data.PlayerID = source.PlayerID;
        data.ItemTypeID = source.ItemTypeID;
        data.PriceType = source.PriceType;
        data.PriceCount = source.PriceCount;
        data.Count = source.Count;
        data.UserDataLen = source.UserDataLen;
        data.UserData = source.UserData;
        data.NeadPwd = source.NeadPwd;
        data.EquipGS = source.EquipGS;
    }
    #endregion
 
    #region 集市交易记录
    public List<MarketDealRecordData> dealRecordList = new List<MarketDealRecordData>();
 
    public static event Action OnRefreshDealRecord;
 
    public void OnRefreshMarket(HA9AB_tagGCBourseRecordInfo vNetData)
    {
        for (int i = 0; i < vNetData.Count; i++)
        {
            MarketDealRecordData data = null;
            if (dealRecordList.Count >= ModelCenter.Instance.GetModel<MarketModel>().dealRecordCnt)
            {
                dealRecordList.Sort(Compare);
                var _index = dealRecordList.Count - 1;
                data = dealRecordList[_index];
                dealRecordList.RemoveAt(_index);
            }
            else
            {
                data = new MarketDealRecordData();
            }
            SetDealRecordData(data, vNetData.RecordList[i]);
            dealRecordList.Add(data);
        }
        if (OnRefreshDealRecord != null)
        {
            OnRefreshDealRecord();
        }
    }
 
    int Compare(MarketDealRecordData x, MarketDealRecordData y)
    {
        return -x.Timestamp.CompareTo(y.Timestamp);
    }
 
    public void SetDealRecordData(MarketDealRecordData data, HA9AB_tagGCBourseRecordInfo.tagGCBourseRecord source)
    {
        data.ItemData = source.ItemData;
        data.Timestamp = source.Timestamp;
        data.TradeMoney = source.TradeMoney;
        data.TradeTax = source.TradeTax;
        data.Type = source.Type;
        data.AnalysisItemData();
    }
    #endregion
 
    public void ClearMarketData()
    {
        dealRecordList.Clear();
        putawayList.Clear();
    }
}
public class MarketItemData
{
    public string ItemGUID;
 
    public uint PlayerID;        //挂单玩家ID    
 
    public uint ItemTypeID;        //物品ID
 
    public byte PriceType;        //出售价格类型
 
    public uint PriceCount;        //出售价格
 
    public ushort Count;        //单组数量
 
    public uint UserDataLen;
 
    public string UserData;        //自定义数据
 
    public byte NeadPwd;        //是否有交易密码
 
    public uint EquipGS;        //装备评分
}
public class MarketDealRecordData
{
 
    public byte Type;        //类型 0-购买 1-卖出
 
    public uint Timestamp;        //时间戳
 
    public uint TradeTax;        //交易税
 
    public uint TradeMoney;        //收支
 
    public ushort ItemDataLen;
 
    public string ItemData;        //自定义数据
 
    public ItemJosnData itemdata;
    [Serializable]
    public class ItemJosnData
    {
        public int itemID;
 
        public string userData;
 
        public uint equipGS;
 
        public uint count;
    }
 
    public void AnalysisItemData()
    {
        itemdata = JsonUtility.FromJson<ItemJosnData>(ItemData);
    }
}