Beispiel #1
0
    //通过状态,返回区服文字颜色
    public static string GetZoneNameByState(Pmd.ZoneInfo zone)
    {
        string zonename = zone.zonename;

//         if (zone.state == Pmd.ZoneState.Shutdown)
//         {
//             //灰色
//             zonename = "[777777]" + zonename + "[-]";
//         }
//         else if (zone.state == Pmd.ZoneState.Normal)
//         {
//             //绿色
//             zonename = "[00ff00]" + zonename + "[-]";
//         }
//         else if (zone.state == Pmd.ZoneState.Fullly)
//         {
//             //红色
//             zonename = "[ff0000]" + zonename + "[-]";
//         }
//         else if (zone.state == Pmd.ZoneState.Starting)
//         {
//             zonename = "[68228B]" + zonename + "[-]";
//         }
        return(zonename);
    }
Beispiel #2
0
    public void DoPlatformPay(GameCmd.stCreatePlatOrderPropertyUserCmd_S msg
                              , uint characterId, int characterlv, string roleName,
                              string clanName, Pmd.ZoneInfo zoneInfo, string currencyName, float currencyRatio, table.RechargeDataBase rechargeDb)
    {
        LoginDataManager lg   = DataManager.Manager <LoginDataManager>();
        int    payMoney       = (int)rechargeDb.money;
        int    fenPayMoney    = payMoney * 100;
        string moneyStr       = fenPayMoney.ToString();
        string characterIDStr = characterId.ToString();
        string gameOrder      = msg.gameorder;
        string token          = lg.LoginToken;
        string serverNo       = lg.ServerNo;
        string serverName     = lg.ServerName;
        string account        = lg.Acount;
        string accountIDStr   = lg.AccountID;
        string characterLvStr = characterlv.ToString();

        if (Application.platform == RuntimePlatform.Android)
        {
            CommonSDKPlaform.Instance.Pay(msg, characterId, characterlv, roleName, clanName, zoneInfo, currencyName, currencyRatio, rechargeDb);
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            ZqgameSDKController.Instance.Pay(moneyStr, account, characterIDStr, gameOrder, accountIDStr, token, rechargeDb.iosIAPId, serverNo, characterLvStr);
        }
    }
Beispiel #3
0
    /// <summary>
    /// 服务器返回订单信息
    /// </summary>
    public void OnRequestRechargeOrder(GameCmd.stCreatePlatOrderPropertyUserCmd_S msg)
    {
        Client.IPlayer mainPlayer = DataManager.Instance.MainPlayer;
        if (null == mainPlayer)
        {
            return;
        }
        uint characterID = mainPlayer.GetID();
        int  characterLv = mainPlayer.GetProp((int)Client.CreatureProp.Level);

        ClanDefine.LocalClanInfo clanInfo = DataManager.Manager <ClanManger>().ClanInfo;
        string clanName = "";

        if (null != clanInfo)
        {
            clanName = clanInfo.Name;
        }

        Pmd.ZoneInfo zoneInfo     = DataManager.Manager <LoginDataManager>().GetZoneInfo();
        string       currencyName = "元宝";
        string       roleName     = mainPlayer.GetName();

        table.RechargeDataBase rechargeDb = GameTableManager.Instance.GetTableItem <table.RechargeDataBase>(msg.goodid);
        //平台支付
        DoPlatformPay(msg, characterID, characterLv, roleName, clanName, zoneInfo, currencyName, CURRENCY_RATIO, rechargeDb);
    }
Beispiel #4
0
    /// <summary>
    /// 服务器在线状态
    /// </summary>
    /// <returns></returns>
    public static int GetZoneOnlineStatus(Pmd.ZoneInfo zone)
    {
        uint onlinenum = zone.onlinenum;

        if (zone.state == Pmd.ZoneState.Shutdown)
        {
            return(4);//维护
        }

        if (onlinenum > 1000)
        {
            return(1);//火爆
        }
        else if (onlinenum > 500)
        {
            return(2);//拥挤
        }

        return(3);//畅通
    }
Beispiel #5
0
    void InitZone()
    {
        m_label_LabelServer.text = "";
        DataManager.Manager <LoginDataManager>().IpStr = null;

        Pmd.ZoneInfo curZoneInfo = null;
        if (GlobalConfig.Instance().Test)
        {
            curZoneInfo = Mgr.GetZoneInfo(GlobalConfig.Instance().TestServerId);
        }
        else
        {
            curZoneInfo = Mgr.GetZoneInfo();
        }

        int    zoneState = 4;
        string zoneName  = "";

        if (null != curZoneInfo)
        {
            //有可用区服
            zoneState = UIServerListGrid.GetZoneOnlineStatus(curZoneInfo);
            zoneName  = curZoneInfo.zonename;
            DataManager.Manager <LoginDataManager>().StartCheckServerStateTimer();
        }
        else
        {
            //无可用区服
            zoneState = 4;
            zoneName  = "无可用区服";
        }

        if (m_spriteEx_status != null)
        {
            m_spriteEx_status.ChangeSprite(zoneState);
        }
        if (null != m_label_LabelServer)
        {
            m_label_LabelServer.text = zoneName;
        }
    }
Beispiel #6
0
    public void SetServerListGridData(Pmd.ZoneInfo zone, int index)
    {
        if (zone == null)
        {
            gameObject.SetActive(false);
            return;
        }
        m_index = index;
        if (!gameObject.activeSelf)
        {
            gameObject.SetActive(true);
        }

        m_zone = zone;
        if (m_lableName != null)
        {
            m_lableName.text = GetZoneNameByState(zone);
        }

        if (m_spriteStatus != null)
        {
            m_spriteStatus.ChangeSprite(GetZoneOnlineStatus(zone));
        }
        //TODO
        if (m_spriteRoleIcon != null)
        {
            m_spriteRoleIcon.ChangeSprite(0);

            if (m_lableLevel != null)
            {
                m_lableLevel.text = "";
            }
        }


        if (m_goNewTips != null)
        {
            m_goNewTips.SetActive(false);
        }
    }
Beispiel #7
0
    /// <summary>
    /// 支付接口
    /// </summary>
    public void Pay(GameCmd.stCreatePlatOrderPropertyUserCmd_S orderMsg,
                    uint characterId, int characterlv, string roleName, string clanName
                    , Pmd.ZoneInfo zoneInfo, string currencyName, float currencyRatio
                    , table.RechargeDataBase rechargeDB)
    {
        if (!DataManager.Manager <LoginDataManager>().IsSDKLogin)
        {
            Debug.LogError("Pay Faield,SDK not login!");
            return;
        }
        if (Application.platform == RuntimePlatform.Android)
        {
            if (null == rechargeDB)
            {
                Debug.LogError("充值失败,数据错误");
                return;
            }

            AndroidJavaObject payData   = new AndroidJavaObject("com.talkingsdk.models.PayData");
            AndroidJavaObject hashmap   = new AndroidJavaObject("java.util.HashMap");
            System.IntPtr     methodPut = AndroidJNIHelper.GetMethodID(hashmap.GetRawClass(), "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");

            Debug.Log("m_loginResult.uid :" + m_loginResult.uid);


            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("UserId", m_loginResult.szLoginAcccount); //uid
            //dict.Add("UserId", m_loginResult.uid); //uid
            dict.Add("UserBalance", "0");                      //用户余额
            dict.Add("UserGamerVip", "1");                     //vip 等级
            dict.Add("UserLevel", characterlv.ToString());     //角色等级
            if (string.IsNullOrEmpty(clanName))
            {
                clanName = "testName";
            }
            dict.Add("UserPartyName", clanName); //工会,帮派
            if (string.IsNullOrEmpty(roleName))
            {
                roleName = "Underworld";
            }
            dict.Add("UserRoleName", roleName);             //角色名称
            dict.Add("UserRoleId", characterId.ToString()); //角色id


            dict.Add("LoginAccount", m_loginResult.szLoginAcccount);
            dict.Add("LoginDataEx", m_loginResult.szLoginDataEx);
            dict.Add("LoginSession", m_loginResult.szLoginSession);

            dict.Add("AccessKey", orderMsg.sign);       //拓展字段

            dict.Add("OutOrderID", orderMsg.platorder); //平台订单号
            dict.Add("NoticeUrl", orderMsg.noticeurl);  //支付回调地址

            //UserServerId
            string zoneIdStr     = "";
            string serverNameStr = "Underworld";
            if (null != zoneInfo)
            {
                //合服后使用目标服务器
                zoneIdStr     = LoginDataManager.GetBestZoneID(zoneInfo).ToString();
                serverNameStr = zoneInfo.zonename;
            }

            dict.Add("UserServerId", zoneIdStr);
            dict.Add("UserServerName", serverNameStr); //
            int payMoney       = (int)rechargeDB.money;
            int gameMoneyAmout = payMoney * 10;
            dict.Add("GameMoneyAmount", gameMoneyAmout.ToString());
            dict.Add("GameMoneyName", currencyName);


            object[] args = new object[2];
            foreach (KeyValuePair <string, string> kvp in dict)
            {
                AndroidJavaObject k = new AndroidJavaObject("java.lang.String", kvp.Key);
                AndroidJavaObject v = new AndroidJavaObject("java.lang.String", kvp.Value);
                args[0] = k;
                args[1] = v;
                AndroidJNI.CallObjectMethod(hashmap.GetRawObject(), methodPut, AndroidJNIHelper.CreateJNIArgArray(args));
            }

            Debug.LogError("go to pay....  setMyOrderId " + orderMsg.gameorder +
                           " payGoodsData.pay_info.out_order: " + orderMsg.platorder +
                           " rmb: " + payMoney +
                           " setProductCount :" + orderMsg.goodnum +
                           " setProductId :" + orderMsg.appgoodid +
                           " setProductName :" + rechargeDB.rechargeName +
                           " setSubmitTime:" + orderMsg.createtime +
                           " extData:" + orderMsg.extdata +
                           " AccessKey:" + orderMsg.sign +
                           " userID:" + m_loginResult.szLoginAcccount +
                           " LoginAcccount:" + m_loginResult.szLoginAcccount
                           );

            //string 类型
            payData.Call("setMyOrderId", orderMsg.gameorder);
            payData.Call("setProductId", orderMsg.appgoodid.ToString());//"1");//
            payData.Call("setSubmitTime", orderMsg.createtime);
            payData.Call("setDescription", rechargeDB.desc);
            payData.Call("setProductName", rechargeDB.rechargeName);

            //int 类型 ,SDK 这边统一以分为单位

            int fenPayMoney = payMoney * 100;
            payData.Call("setProductRealPrice", fenPayMoney);
            payData.Call("setProductIdealPrice", fenPayMoney);
            payData.Call("setProductCount", (int)orderMsg.goodnum);
            payData.Call("setEx", hashmap);

            sdkBase.Call("pay", payData);
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
        }
    }