From c8a1770aae86bf00ebfdc89734e3d55866e0476b Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期三, 19 十二月 2018 15:06:40 +0800
Subject: [PATCH] 5398 【前端】【1.4】跨服竞技场开发
---
System/CrossServerOneVsOne/CrossServerModel.cs | 77 +++++++++++++++++++++++++++++++++++++-
1 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/System/CrossServerOneVsOne/CrossServerModel.cs b/System/CrossServerOneVsOne/CrossServerModel.cs
index 5121c14..491cca5 100644
--- a/System/CrossServerOneVsOne/CrossServerModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerModel.cs
@@ -11,6 +11,9 @@
[XLua.LuaCallCSharp]
public class CrossServerModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
+ public string PkResultLocalSaveKey { get; private set; }
+ public List<PkResultInfo> localSaveResults { get; private set; }
+
public override void Init()
{
ParseFuncConfig();
@@ -23,7 +26,9 @@
public void OnAfterPlayerDataInitialize()
{
-
+ int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+ PkResultLocalSaveKey = StringUtility.Contact("PkResultLocalSaveKey", playerId);
+ GetLocalSaveData();
}
public void OnPlayerLoginOk()
@@ -64,6 +69,17 @@
return Equation.Instance.Eval<int>(priceFormula);
}
+ public bool TryGetWinStreakScore(out int score)
+ {
+ score = 0;
+ if (pkResultInfo.WinStreak < 2) return false;
+
+ Equation.Instance.Clear();
+ Equation.Instance.AddKeyValue("cWinCount",pkResultInfo.WinStreak);
+ score = Equation.Instance.Eval<int>(winStreakScoreFormula);
+ return true;
+ }
+
public List<AwardType> sortDayAwardslist = new List<AwardType>();
public void SortDayAwardsList()
{
@@ -89,6 +105,7 @@
public int freeMaxMatchNum { get; private set; } //姣忔棩鍏嶈垂鍖归厤娆℃暟
public int buyMaxMatchNum { get; private set; } //姣忔棩鍙喘涔版鏁�
public string priceFormula { get;private set;} //璐拱鍖归厤娆℃暟闇�瑕佷环鏍煎叕寮�
+ public string winStreakScoreFormula { get; private set; } //杩炶儨绉垎鍏紡
public List<AwardType> dayAwardTypelist { get; private set; }
private void ParseFuncConfig()
{
@@ -152,6 +169,9 @@
freeMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical1);
buyMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical2);
priceFormula = CrossRealmPKMatchCount.Numerical3;
+
+ var CrossRealmPKScore = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKScore");
+ winStreakScoreFormula = CrossRealmPKScore.Numerical3;
}
public class AwardType
@@ -222,6 +242,7 @@
public event Action UpdatePkResultEvent;
public void UpdatePKResultInfo(HC003_tagGCCrossRealmPKOverInfo pKOverInfo)
{
+ pkResultInfo = new PkResultInfo();
pkResultInfo.PkEndTime = pKOverInfo.TimeStr;
pkResultInfo.OverType = pKOverInfo.OverType;
pkResultInfo.WinnerID = (int)pKOverInfo.WinnerID;
@@ -232,6 +253,7 @@
pkResultInfo.DanLV = pKOverInfo.DanLV;
pkResultInfo.WinStreak = pKOverInfo.CWinCnt;
pkResultInfo.VsPlayerName = pKOverInfo.TagName;
+ SetPkInfoLocalSave(pkResultInfo);
if(UpdatePkResultEvent != null)
{
UpdatePkResultEvent();
@@ -244,7 +266,7 @@
public int OverType; // 0-姝e父锛�1-鏈変汉绂荤嚎
- public int WinnerID; // 鑳滄柟ID
+ public int WinnerID; // 鑳滄柟ID(鏈鎴樻枟缁撴潫锛屼笉鏄洖鍚堢粨鏉�)
public int RoundCount; // PK鍥炲悎鏁�
@@ -281,6 +303,22 @@
}
/// <summary>
+ /// 1 鑷繁绂荤嚎 2 瀵规墜绂荤嚎
+ /// </summary>
+ /// <param name="type"></param>
+ /// <returns></returns>
+ public bool TryGetOffLine(out int type)
+ {
+ type = 0;
+ int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+ if(pkResultInfo.OverType != 0)
+ {
+ type = playerId == pkResultInfo.WinnerID ? 2 : 1;
+ }
+ return pkResultInfo.OverType != 0;
+ }
+
+ /// <summary>
///0-鍙栨秷鍖归厤; 1-杩涜鍖归厤
/// </summary>
/// <param name="type"></param>
@@ -291,6 +329,41 @@
GameNetSystem.Instance.SendInfo(match);
}
#endregion
+
+ #region 鍖归厤璁板綍
+
+ private void GetLocalSaveData()
+ {
+ localSaveResults = new List<PkResultInfo>();
+ string[] localJsons = LocalSave.GeStringArray(PkResultLocalSaveKey);
+ if(localJsons != null)
+ {
+ for(int i = 0; i < localJsons.Length; i++)
+ {
+ PkResultInfo resultInfo = JsonMapper.ToObject<PkResultInfo>(localJsons[i]);
+ localSaveResults.Add(resultInfo);
+ }
+ }
+ }
+
+ public void SetPkInfoLocalSave(PkResultInfo resultInfo)
+ {
+ if (localSaveResults.Count >= 30)
+ {
+ localSaveResults.RemoveAt(localSaveResults.Count - 1);
+ }
+ localSaveResults.Insert(0,resultInfo);
+ string[] localJsons = new string[localSaveResults.Count];
+ for(int i = 0; i < localJsons.Length; i++)
+ {
+ string json = JsonMapper.ToJson(localSaveResults[i]);
+ localJsons[i] = json;
+ }
+ LocalSave.SetStringArray(PkResultLocalSaveKey,localJsons);
+ }
+
+ #endregion
+
#region 绾㈢偣
#endregion
--
Gitblit v1.8.0