From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XRechargeDocument.cs | 908 +++++++++++++++++++++ 1 file changed, 908 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XRechargeDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/XRechargeDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/XRechargeDocument.cs b/Client/Assets/Scripts/XMainClient/XRechargeDocument.cs new file mode 100644 index 00000000..4969891a --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XRechargeDocument.cs @@ -0,0 +1,908 @@ +using System; +using System.Collections.Generic; +using KKSG; +using MiniJSON; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUpdater; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XRechargeDocument : XDocComponent + { + public override uint ID + { + get + { + return XRechargeDocument.uuID; + } + } + + public VIPTable VIPReader + { + get + { + return XRechargeDocument._VipReader; + } + } + + public PayCardTable PayCardReader + { + get + { + return XRechargeDocument._PayCardReader; + } + } + + public static PayListTable PayTable + { + get + { + return XRechargeDocument._PayReader; + } + } + + public List PayInfo + { + get + { + return this._payInfo; + } + } + + public List IsGiftGet + { + get + { + return this._isGiftGet; + } + } + + public List PayCard + { + get + { + return this._payCard; + } + } + + public uint VipLevel + { + get + { + return this._vipLevel; + } + } + + public float TotalPay + { + get + { + return this._totalPay; + } + } + + public Dictionary FirstPayMarketingInfo + { + get + { + return this.m_FirstPayMarketingInfo; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("XRechargeDocument"); + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private static PayListTable _PayReader = new PayListTable(); + + private static VIPTable _VipReader = new VIPTable(); + + private static PayCardTable _PayCardReader = new PayCardTable(); + + public GamePayDiaMallHander RechargeView; + + private static SeqList _vipColor; + + private static readonly uint NEXTVIPLEVELSHOW = 5u; + + public uint MaxVIPLevel = 0u; + + public bool isVIPShow = false; + + private uint _lastVipLevel = 0u; + + private List _payInfo; + + private List _isGiftGet = new List(); + + private List _payCard; + + private uint _vipLevel; + + private float _totalPay; + + private Dictionary m_FirstPayMarketingInfo = new Dictionary(); + + private string m_paramID; + + private int m_Price; + + private PayParamType m_paramType; + + private XRechargeDocument.RechargeType m_CurrRechargeType = XRechargeDocument.RechargeType.None; + + private List m_listPaySucNotify = new List(); + + private float m_NotifyTime = 0f; + + private float m_NotifyInterval = 0f; + + private int m_NotifyCount = 0; + + private string m_goodsParamID = ""; + + private uint m_goodsPrice; + + private string m_goodsUrl; + + public enum RechargeType + { + None, + DiamondRecharge, + Subscribe, + BuyGoods, + PandoraBuyGoods + } + + public static void Execute(OnLoadedCallback callback = null) + { + XRechargeDocument.AsyncLoader.AddTask("Table/PayList", XRechargeDocument._PayReader, false); + XRechargeDocument.AsyncLoader.AddTask("Table/Vip", XRechargeDocument._VipReader, false); + XRechargeDocument.AsyncLoader.AddTask("Table/PayCard", XRechargeDocument._PayCardReader, false); + XRechargeDocument.AsyncLoader.Execute(callback); + } + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + this.MaxVIPLevel = (uint)(XRechargeDocument._VipReader.Table.Length - 1); + bool flag = XRechargeDocument._vipColor == null; + if (flag) + { + XRechargeDocument._vipColor = XSingleton.singleton.GetSequenceList("VIPIntervalColor", false); + } + this.m_listPaySucNotify.Clear(); + this.m_NotifyInterval = (float)XSingleton.singleton.GetInt("RechargeSucNotifyRepeatInterval"); + this.m_NotifyCount = XSingleton.singleton.GetInt("RechargeSucNotifyRepeatCount"); + } + + public VIPTable.RowData GetVipPermissions(uint vip) + { + vip = Math.Max(vip, 0u); + vip = Math.Min(vip, this.MaxVIPLevel); + return XRechargeDocument._VipReader.GetByVIP((int)vip); + } + + public VIPTable.RowData GetCurrentVipPermissions() + { + return this.GetVipPermissions(this._vipLevel); + } + + public void ReqPayAllInfo() + { + RpcC2G_GetPayAllInfo rpc = new RpcC2G_GetPayAllInfo(); + XSingleton.singleton.Send(rpc); + } + + public void OnGetPayAllInfo(GetPayAllInfoArg oArg, GetPayAllInfoRes oRes) + { + bool flag = oRes.errcode == ErrorCode.ERR_SUCCESS; + if (flag) + { + this.SetAllData(oRes.info); + } + } + + private void SetAllData(PayAllInfo info) + { + this.SetAllPayInfoData(info); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.SetVip(); + } + this.SetVIPGiftState(info.VipLevelGift); + bool flag2 = this.RechargeView != null && this.RechargeView.IsVisible(); + if (flag2) + { + this.RechargeView.SetVipProgressInfo(this.VipLevel); + this.RechargeView.RefreshData(); + this.RechargeView.RefreshVIP(); + } + } + + private void SetAllPayInfoData(PayAllInfo info) + { + this._payInfo = info.pay; + this._payCard = info.card; + this._vipLevel = info.vipLevel; + this._lastVipLevel = this._vipLevel; + this._totalPay = info.totalPay / 100f; + } + + public void PayAllInfoNtf(PayAllInfo info) + { + this.SetAllData(info); + } + + public List GetPayCardList() + { + List list = new List(); + for (int i = 0; i < XRechargeDocument._PayCardReader.Table.Length; i++) + { + bool flag = false; + bool flag2 = this._payCard != null; + if (flag2) + { + for (int j = 0; j < this._payCard.Count; j++) + { + bool flag3 = (long)XRechargeDocument._PayCardReader.Table[i].Type == (long)((ulong)this._payCard[j].type); + if (flag3) + { + flag = true; + break; + } + } + } + bool flag4 = !flag; + if (flag4) + { + list.Add(XRechargeDocument._PayCardReader.Table[i]); + } + } + return list; + } + + public uint GetVipRMB(uint vipLevel) + { + for (int i = 0; i < XRechargeDocument._VipReader.Table.Length; i++) + { + bool flag = (long)XRechargeDocument._VipReader.Table[i].VIP == (long)((ulong)vipLevel); + if (flag) + { + return XRechargeDocument._VipReader.Table[i].RMB; + } + } + return 0u; + } + + public float LackMoneyToNextVipLevel(uint currVipLevel) + { + bool flag = this.IsMaxVip(currVipLevel); + float result; + if (flag) + { + result = 0f; + } + else + { + uint vipRMB = this.GetVipRMB(currVipLevel + 1u); + bool flag2 = vipRMB > this.TotalPay; + if (flag2) + { + result = vipRMB - this.TotalPay; + } + else + { + result = 0f; + } + } + return result; + } + + public bool IsMaxVip(uint vipLevel) + { + for (int i = 0; i < XRechargeDocument._VipReader.Table.Length; i++) + { + bool flag = (long)XRechargeDocument._VipReader.Table[i].VIP > (long)((ulong)vipLevel); + if (flag) + { + return false; + } + } + return true; + } + + public void GetPayMarketingInfo() + { + XSingleton.singleton.AddLog("GetPayMarketingInfo", null, null, null, null, null, XDebugColor.XDebug_None); + XSingleton.singleton.XPlatform.SendGameExData("get_reward_info", ""); + } + + public void OnGetPayMarketingInfo(List listInfo) + { + this.m_FirstPayMarketingInfo.Clear(); + for (int i = 0; i < listInfo.Count; i++) + { + bool flag = listInfo[i].sendExt != ""; + if (flag) + { + this.m_FirstPayMarketingInfo[listInfo[i].diamondCount] = listInfo[i]; + } + } + bool flag2 = DlgBase.singleton.IsVisible() && DlgBase.singleton.currSys == XSysDefine.XSys_GameMall_Pay; + if (flag2) + { + DlgBase.singleton.RefreshDiamondPay(); + } + } + + public void PayParameterNtf() + { + string openkey; + string pf; + string pfKey; + string sessionType; + string sessionId; + string appid; + this.GetPayBillInfo(out openkey, out pf, out pfKey, out sessionType, out sessionId, out appid); + PtcC2M_PayParameterInfoNtf ptcC2M_PayParameterInfoNtf = new PtcC2M_PayParameterInfoNtf(); + ptcC2M_PayParameterInfoNtf.Data.openkey = openkey; + ptcC2M_PayParameterInfoNtf.Data.sessionType = sessionType; + ptcC2M_PayParameterInfoNtf.Data.sessionId = sessionId; + ptcC2M_PayParameterInfoNtf.Data.pf = pf; + ptcC2M_PayParameterInfoNtf.Data.pfKey = pfKey; + ptcC2M_PayParameterInfoNtf.Data.appid = appid; + XSingleton.singleton.Send(ptcC2M_PayParameterInfoNtf); + } + + public void GetPayBillInfo(out string openKey, out string pf, out string pfKey, out string sesstionType, out string sesstionID, out string offerid) + { + openKey = ""; + pf = ""; + pfKey = ""; + sesstionType = ""; + sesstionID = ""; + offerid = ""; + string payBill = XSingleton.singleton.XPlatform.GetPayBill(); + bool flag = payBill == ""; + if (flag) + { + XSingleton.singleton.AddLog("Pay [GetPayBill] error ", null, null, null, null, null, XDebugColor.XDebug_None); + } + else + { + Dictionary dictionary = Json.Deserialize(payBill) as Dictionary; + bool flag2 = dictionary != null; + if (flag2) + { + object obj; + bool flag3 = dictionary.TryGetValue("pay_token", out obj); + if (flag3) + { + openKey = obj.ToString(); + } + object obj2; + bool flag4 = dictionary.TryGetValue("pf", out obj2); + if (flag4) + { + pf = obj2.ToString(); + } + object obj3; + bool flag5 = dictionary.TryGetValue("pfkey", out obj3); + if (flag5) + { + pfKey = obj3.ToString(); + } + object obj4; + bool flag6 = dictionary.TryGetValue("sessiontype", out obj4); + if (flag6) + { + sesstionType = obj4.ToString(); + } + object obj5; + bool flag7 = dictionary.TryGetValue("sessionid", out obj5); + if (flag7) + { + sesstionID = obj5.ToString(); + } + object obj6; + bool flag8 = dictionary.TryGetValue("offerid", out obj6); + if (flag8) + { + offerid = obj6.ToString(); + } + } + } + } + + public void SDKRecharge(int price, string paramID, PayParamType paramType) + { + bool flag = XSingleton.singleton.IsWeakNetwork(); + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_WEAK_NETWORK_TIP"), "fece00"); + } + this.m_paramID = paramID; + this.m_paramType = paramType; + this.m_Price = price; + this.m_CurrRechargeType = XRechargeDocument.RechargeType.DiamondRecharge; + XSingleton.singleton.AddLog(string.Concat(new object[] + { + "[SDKRecharge] price = ", + price, + ", paramID", + paramID + }), null, null, null, null, null, XDebugColor.XDebug_None); + XSingleton.singleton.XPlatform.Pay(price, "", paramID, XSingleton.singleton.XPlayerData.RoleID, XSingleton.singleton.ServerID); + } + + public void SDKSubscribe(int price, int buyNum, string serviceCode, string serviceName, string paramID, PayParamType paramType) + { + bool flag = XSingleton.singleton.IsWeakNetwork(); + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_WEAK_NETWORK_TIP"), "fece00"); + } + this.m_paramID = serviceCode; + this.m_paramType = paramType; + this.m_Price = price; + this.m_CurrRechargeType = XRechargeDocument.RechargeType.Subscribe; + Dictionary dictionary = new Dictionary(); + dictionary["buyNum"] = buyNum; + dictionary["serviceCode"] = serviceCode; + dictionary["serviceName"] = serviceName; + dictionary["productId"] = paramID; + dictionary["remark"] = string.Format("aid={0}", XSingleton.singleton.GetValue("AID")); + dictionary["zoneId"] = string.Format("{0}_{1}", XSingleton.singleton.ServerID, XSingleton.singleton.XPlayerData.RoleID); + string text = Json.Serialize(dictionary); + XSingleton.singleton.AddLog("[SDKSubscribe] param = " + text, null, null, null, null, null, XDebugColor.XDebug_None); + XSingleton.singleton.XPlatform.SendGameExData("pay_for_subscribe", text); + } + + public override void Update(float fDeltaT) + { + this.m_NotifyTime += fDeltaT; + bool flag = this.m_NotifyTime > this.m_NotifyInterval; + if (flag) + { + int i = 0; + while (i < this.m_listPaySucNotify.Count) + { + RpcC2M_PayNotify rpcC2M_PayNotify = this.m_listPaySucNotify[i]; + rpcC2M_PayNotify.oArg.count = rpcC2M_PayNotify.oArg.count + 1; + bool flag2 = rpcC2M_PayNotify.oArg.count > this.m_NotifyCount; + if (flag2) + { + this.m_listPaySucNotify.RemoveAt(i); + XSingleton.singleton.AddGreenLog(string.Concat(new object[] + { + "m_listPaySucNotify.Remove paramid = ", + rpcC2M_PayNotify.oArg.paramid, + ", count = ", + rpcC2M_PayNotify.oArg.count + }), null, null, null, null, null); + } + else + { + XSingleton.singleton.Send(rpcC2M_PayNotify); + XSingleton.singleton.AddGreenLog(string.Concat(new object[] + { + "m_listPaySucNotify.Resend paramid = ", + rpcC2M_PayNotify.oArg.paramid, + ", count = ", + rpcC2M_PayNotify.oArg.count + }), null, null, null, null, null); + i++; + } + } + this.m_NotifyTime = 0f; + } + } + + private void RemoveNotify(PayNotifyArg oArg) + { + for (int i = 0; i < this.m_listPaySucNotify.Count; i++) + { + RpcC2M_PayNotify rpcC2M_PayNotify = this.m_listPaySucNotify[i]; + bool flag = rpcC2M_PayNotify.oArg.paramid == oArg.paramid && oArg.count == 1; + if (flag) + { + this.m_listPaySucNotify.RemoveAt(i); + XSingleton.singleton.AddGreenLog(string.Concat(new object[] + { + "RemoveNotify paramid = ", + rpcC2M_PayNotify.oArg.paramid, + ", remove count = ", + rpcC2M_PayNotify.oArg.count, + ", find count = ", + oArg.count + }), null, null, null, null, null); + break; + } + } + } + + public void PaySuccessNtf() + { + string openkey; + string pf; + string pfKey; + string sessionType; + string sessionId; + string appid; + this.GetPayBillInfo(out openkey, out pf, out pfKey, out sessionType, out sessionId, out appid); + RpcC2M_PayNotify rpcC2M_PayNotify = new RpcC2M_PayNotify(); + rpcC2M_PayNotify.oArg.type = this.m_paramType; + rpcC2M_PayNotify.oArg.paramid = this.m_paramID; + rpcC2M_PayNotify.oArg.amount = this.m_Price; + rpcC2M_PayNotify.oArg.count = 1; + PayParameterInfo payParameterInfo = new PayParameterInfo(); + payParameterInfo.openkey = openkey; + payParameterInfo.sessionType = sessionType; + payParameterInfo.sessionId = sessionId; + payParameterInfo.pf = pf; + payParameterInfo.pfKey = pfKey; + payParameterInfo.appid = appid; + rpcC2M_PayNotify.oArg.data = payParameterInfo; + XSingleton.singleton.Send(rpcC2M_PayNotify); + this.m_NotifyTime = 0f; + bool flag = XSingleton.singleton.GetInt("RechargeSucNotifyRepeat") == 1; + if (flag) + { + this.m_listPaySucNotify.Add(rpcC2M_PayNotify); + } + DlgBase.singleton.SetVisible(false, true); + } + + public void OnPayNotify(PayNotifyArg oArg, PayNotifyRes oRes) + { + bool flag = oRes.errcode > ErrorCode.ERR_SUCCESS; + if (flag) + { + XSingleton.singleton.ShowSystemTip(oRes.errcode, "fece00"); + } + else + { + this.RemoveNotify(oArg); + } + } + + public void OnPayCallback(string msg) + { + XSingleton.singleton.AddLog("Pay [OnPayCallback] msg:" + msg, null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = this.m_CurrRechargeType == XRechargeDocument.RechargeType.DiamondRecharge || this.m_CurrRechargeType == XRechargeDocument.RechargeType.Subscribe; + if (flag) + { + this.OnRechargeAndSubscribeCallback(msg); + } + else + { + bool flag2 = this.m_CurrRechargeType == XRechargeDocument.RechargeType.BuyGoods; + if (flag2) + { + this.OnBuyGoodsPayCallback(msg); + } + else + { + bool flag3 = this.m_CurrRechargeType == XRechargeDocument.RechargeType.PandoraBuyGoods; + if (flag3) + { + this.OnPandoraBuyGoodsCallback(msg); + } + } + } + ILuaEngine xluaEngine = XSingleton.singleton.XLuaEngine; + xluaEngine.hotfixMgr.OnPayCallback(msg, this.m_goodsParamID); + } + + private void OnRechargeAndSubscribeCallback(string msg) + { + XSingleton.singleton.AddLog("Pay [OnRechargeAndSubscribeCallback] msg:" + msg, null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = msg == "true" || msg == "Success"; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_SUCCESS"), "fece00"); + this.CheckGiftBag(); + this.ResetGiftBagBtnCD(); + this.PaySuccessNtf(); + this.GetPayMarketingInfo(); + } + else + { + DlgBase.singleton.SetVisible(false, true); + } + } + + private void OnBuyGoodsPayCallback(string msg) + { + XSingleton.singleton.AddLog("Pay [OnBuyGoodsPayCallback] msg:" + msg, null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = msg == "true" || msg == "Success"; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_SUCCESS_GOODS"), "fece00"); + DlgBase.singleton.SetVisible(false, true); + } + else + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_FAIL_GOODS"), "fece00"); + this.NoticeBusyGoodsFail(); + } + } + + private void OnPandoraBuyGoodsCallback(string msg) + { + XSingleton.singleton.AddLog("Pay [OnPandoraBuyGoodsCallback] msg:" + msg, null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = msg == "true" || msg == "Success"; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_SUCCESS_PANDORA"), "fece00"); + XSingleton.singleton.NoticePandoraBuyGoodsResult("success"); + } + else + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_FAIL_PANDORA"), "fece00"); + XSingleton.singleton.NoticePandoraBuyGoodsResult("fail"); + } + } + + private void ResetGiftBagBtnCD() + { + XSingleton.singleton.AddLog("Pay [ResetGiftBagBtnCD]", null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = this.m_paramType != PayParamType.PAY_PARAM_AILEEN; + if (!flag) + { + int @int = XSingleton.singleton.GetInt("GiftBagBtnClickInterval"); + bool flag2 = @int == 0; + if (flag2) + { + XSingleton.singleton.AddLog("Pay [ResetGiftBagBtnCD] GiftBagBtnClickInterval = 0", null, null, null, null, null, XDebugColor.XDebug_None); + } + else + { + XSingleton.singleton.AddLog("Pay [ResetGiftBagBtnCD] interval = " + @int.ToString(), null, null, null, null, null, XDebugColor.XDebug_None); + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + specificDocument.ResetGiftBagBtnCD(@int); + } + } + } + + private void CheckGiftBag() + { + XSingleton.singleton.AddLog("Pay [CheckGiftBag]", null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = XSingleton.singleton.GetInt("HideGiftBagBtnAtOnce") == 0; + if (flag) + { + XSingleton.singleton.AddLog("Pay [CheckGiftBag] HideGiftBagBtnAtOnce = 0", null, null, null, null, null, XDebugColor.XDebug_None); + } + else + { + XSingleton.singleton.AddLog("Pay [CheckGiftBag] m_paramType = " + this.m_paramType.ToString(), null, null, null, null, null, XDebugColor.XDebug_None); + bool flag2 = this.m_paramType != PayParamType.PAY_PARAM_AILEEN; + if (!flag2) + { + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + specificDocument.HideGiftBagBtn(this.m_paramID); + } + } + } + + public void SDKBuyGoods(uint id, uint goodsCount, ulong toRoleID, string text, string paramID, uint price) + { + XSingleton.singleton.AddLog(string.Concat(new object[] + { + "[SDKBuyGoods] id = ", + id, + ", goodsCount = ", + goodsCount, + ", toRoleID = ", + toRoleID, + ",text = ", + text, + ", paramID = ", + paramID, + ", price = ", + price + }), null, null, null, null, null, XDebugColor.XDebug_None); + bool flag = XSingleton.singleton.XPlatform.Platfrom() != XPlatformType.Standalone && !Application.isEditor; + if (flag) + { + DlgBase.singleton.SetVisible(true, true); + } + bool flag2 = XSingleton.singleton.IsWeakNetwork(); + if (flag2) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_WEAK_NETWORK_TIP"), "fece00"); + } + string openkey; + string pf; + string pfKey; + string sessionType; + string sessionId; + string appid; + this.GetPayBillInfo(out openkey, out pf, out pfKey, out sessionType, out sessionId, out appid); + PayParameterInfo payParameterInfo = new PayParameterInfo(); + payParameterInfo.openkey = openkey; + payParameterInfo.sessionType = sessionType; + payParameterInfo.sessionId = sessionId; + payParameterInfo.pf = pf; + payParameterInfo.pfKey = pfKey; + payParameterInfo.appid = appid; + RpcC2G_PayFriendItem rpcC2G_PayFriendItem = new RpcC2G_PayFriendItem(); + rpcC2G_PayFriendItem.oArg.payparam = payParameterInfo; + rpcC2G_PayFriendItem.oArg.goodsid = id; + rpcC2G_PayFriendItem.oArg.count = goodsCount; + rpcC2G_PayFriendItem.oArg.toroleid = toRoleID; + rpcC2G_PayFriendItem.oArg.text = text; + XSingleton.singleton.Send(rpcC2G_PayFriendItem); + } + + public void OnGetBuyGoodsOrder(PayFriendItemArg oArg, PayFriendItemRes oRes) + { + bool flag = oRes.ret > ErrorCode.ERR_SUCCESS; + if (flag) + { + DlgBase.singleton.SetVisible(false, true); + XSingleton.singleton.ShowSystemTip(oRes.ret, "fece00"); + } + else + { + bool flag2 = XSingleton.singleton.IsWeakNetwork(); + if (flag2) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PAY_WEAK_NETWORK_TIP"), "fece00"); + } + this.m_goodsUrl = oRes.billno; + this.m_goodsParamID = oRes.paramid; + this.m_goodsPrice = oRes.price; + this.m_CurrRechargeType = XRechargeDocument.RechargeType.BuyGoods; + Dictionary dictionary = new Dictionary(); + dictionary["zoneId"] = XSingleton.singleton.ServerID.ToString(); + dictionary["productId"] = oRes.paramid; + dictionary["buyNum"] = oArg.count; + dictionary["price"] = oRes.price; + dictionary["tokenUrl"] = oRes.url_param; + dictionary["extInfo"] = oRes.billno; + string text = Json.Serialize(dictionary); + XSingleton.singleton.AddLog("[OnGetBuyGoodsOrder] param = " + text, null, null, null, null, null, XDebugColor.XDebug_None); + XSingleton.singleton.XPlatform.SendGameExData("pay_for_props", text); + DlgBase.singleton.SetVisible(false, true); + } + } + + private void NoticeBusyGoodsFail() + { + PtcC2M_PayBuyGoodsFailNtf ptcC2M_PayBuyGoodsFailNtf = new PtcC2M_PayBuyGoodsFailNtf(); + ptcC2M_PayBuyGoodsFailNtf.Data.token = this.m_goodsUrl; + XSingleton.singleton.Send(ptcC2M_PayBuyGoodsFailNtf); + DlgBase.singleton.SetVisible(false, true); + } + + public void SDKPandoraBuyGoods(string json) + { + this.m_CurrRechargeType = XRechargeDocument.RechargeType.PandoraBuyGoods; + XSingleton.singleton.XPlatform.SendGameExData("pay_for_pandora", json); + } + + public void SendGetVIPGiftQuery(int level) + { + RpcC2G_BuyVipLevelGift rpcC2G_BuyVipLevelGift = new RpcC2G_BuyVipLevelGift(); + rpcC2G_BuyVipLevelGift.oArg.vipLevel = level; + XSingleton.singleton.Send(rpcC2G_BuyVipLevelGift); + } + + public void OnGetVIPGift(int level) + { + this.IsGiftGet[level] = VIPGiftState.GET; + this.CalVipRedPoint(); + bool flag = this.RechargeView != null && this.RechargeView.IsVisible() && this.isVIPShow; + if (flag) + { + this.RechargeView.RefreshGiftState(level); + } + } + + public bool CalVipRedPoint() + { + for (int i = 0; i < this.IsGiftGet.Count; i++) + { + bool flag = this.IsGiftGet[i] == VIPGiftState.UNGET; + if (flag) + { + return true; + } + } + XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_GameMall_Pay, false); + XSingleton.singleton.RecalculateRedPointState(XSysDefine.XSys_GameMall, true); + return false; + } + + public void SetVIPGiftState(List getGiftList) + { + this.IsGiftGet.Clear(); + uint num = (this.MaxVIPLevel < this._vipLevel + XRechargeDocument.NEXTVIPLEVELSHOW) ? this.MaxVIPLevel : (this._vipLevel + XRechargeDocument.NEXTVIPLEVELSHOW); + int num2 = 0; + while ((long)num2 <= (long)((ulong)num)) + { + bool flag = (ulong)this._vipLevel >= (ulong)((long)num2); + if (flag) + { + this.IsGiftGet.Add(VIPGiftState.UNGET); + } + else + { + this.IsGiftGet.Add(VIPGiftState.UNABLE); + } + num2++; + } + for (int i = 0; i < getGiftList.Count; i++) + { + int num3 = getGiftList[i]; + bool flag2 = (long)num3 > (long)((ulong)this._vipLevel); + if (flag2) + { + XSingleton.singleton.AddErrorLog("Error. viplevel = ", this._vipLevel.ToString(), " but gift is get by level = ", num3.ToString(), null, null); + } + this.IsGiftGet[num3] = VIPGiftState.GET; + } + } + + public void ShowVipLevelUp() + { + string label = XSingleton.singleton.ReplaceReturn(string.Format(XStringDefineProxy.GetString("VIPLevelUpTips"), "{n}", "{n}", this._vipLevel)); + string @string = XStringDefineProxy.GetString("VIPLevelUpBtnLabel"); + XSingleton.singleton.ShowModalDialog(label, @string, new ButtonClickEventHandler(this.ShowCurrentVip), 50); + } + + private bool ShowCurrentVip(IXUIButton btn) + { + DlgBase.singleton.SetVisible(false, true); + this.isVIPShow = true; + bool flag = DlgBase.singleton._gamePayDiaMallHander != null && DlgBase.singleton._gamePayDiaMallHander.IsVisible(); + if (flag) + { + this.ReqPayAllInfo(); + DlgBase.singleton._gamePayDiaMallHander.SetSwitchState(); + } + else + { + DlgBase.singleton.ShowPurchase(ItemEnum.DIAMOND); + } + return true; + } + + public static string GetVIPIconString(uint level) + { + return ""; + } + + public static string GetVIPIconNameString(uint level) + { + int num = 0; + for (int i = 0; i < (int)XRechargeDocument._vipColor.Count; i++) + { + bool flag = (ulong)level >= (ulong)((long)XRechargeDocument._vipColor[i, 0]) && (ulong)level <= (ulong)((long)XRechargeDocument._vipColor[i, 1]); + if (flag) + { + num = i + 1; + break; + } + } + bool flag2 = num == 0; + if (flag2) + { + XSingleton.singleton.AddErrorLog(string.Format("Can't find vip{0} 's icon color.", level), null, null, null, null, null); + } + return XSingleton.singleton.StringCombine("rechar_vip0", num.ToString()); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + DlgBase.singleton.SetVisible(false, true); + } + } +} -- cgit v1.1-26-g67d0