From bb98d8ae9ff4d799bd8e2c11ddf3335ab4e0b017 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 29 一月 2019 14:09:29 +0800
Subject: [PATCH] 6086 【前端】【1.5.200】春节红包雨活动
---
System/OpenServerActivity/RedEnvelopeModel.cs | 80 +++++++++++++++++++++++++++++++++++++--
1 files changed, 75 insertions(+), 5 deletions(-)
diff --git a/System/OpenServerActivity/RedEnvelopeModel.cs b/System/OpenServerActivity/RedEnvelopeModel.cs
index 8b69e2d..3080175 100644
--- a/System/OpenServerActivity/RedEnvelopeModel.cs
+++ b/System/OpenServerActivity/RedEnvelopeModel.cs
@@ -8,8 +8,11 @@
[XLua.LuaCallCSharp]
public class RedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
+ Dictionary<int, string> redpackSfxDict = new Dictionary<int, string>();
+
PlayerRedPacketDatas redPackdata { get { return ModelCenter.Instance.GetModel<PlayerRedPacketDatas>(); } }
OSRedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
+ FestivalRedpackModel festivalRedpackModel { get { return ModelCenter.Instance.GetModel<FestivalRedpackModel>(); } }
public override void Init()
{
@@ -174,7 +177,7 @@
}
}
- public void SendGetEnvelope(int _id)
+ public void SendGetEnvelope(int _id,int getWay)
{
RedEnvelope _envelope;
if(m_RedEnvelopeDict.TryGetValue(_id,out _envelope))
@@ -183,6 +186,7 @@
{
CAB12_tagCMGrabFamilyRedPacket _pak = new CAB12_tagCMGrabFamilyRedPacket();
_pak.RedPaketID = (uint)_id;
+ _pak.GetWay = (byte)getWay;
GameNetSystem.Instance.SendInfo(_pak);
}
}
@@ -253,11 +257,12 @@
public int cacheEnvelopeId = 0;
public int envelopeSfx { get; set; }
- public void SendOpenRedpackPackage(int _id)
+ public void SendOpenRedpackPackage(int _id,int getWay)
{
cacheEnvelopeId = _id;
CAB12_tagCMGrabFamilyRedPacket _pak = new CAB12_tagCMGrabFamilyRedPacket();
_pak.RedPaketID = (uint)_id;
+ _pak.GetWay = (byte)getWay;
GameNetSystem.Instance.SendInfo(_pak);
}
@@ -267,13 +272,36 @@
private void OnSystemNotifyEvent(string _key)
{
- if (_key.Equals("OSRedpackSfx"))
+ var config = Config.Instance.Get<SysInfoConfig>(_key);
+ var type = 0;
+ if (config != null && string.IsNullOrEmpty(config.richText))
{
- CheckRedpackSfx();
+ foreach (var key in redpackSfxDict.Keys)
+ {
+ if (_key.Equals(redpackSfxDict[key]))
+ {
+ type = key;
+ break;
+ }
+ }
+ }
+ if (type != 0)
+ {
+ switch (type)
+ {
+ case 5:
+ CheckRedpackSfx(type);
+ break;
+ case FestivalRedpackModel.FESTIVALSYSTEMREDPACK1:
+ case FestivalRedpackModel.FESTIVALSYSTEMREDPACK2:
+ case FestivalRedpackModel.FESTIVALTASKREDPACKTYPE:
+ CheckFestivalRedpackSfx(type);
+ break;
+ }
}
}
- public void CheckRedpackSfx()
+ public void CheckRedpackSfx(int type)
{
if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OpenServerRedEnvelope))
{
@@ -298,10 +326,52 @@
sfxRedpackTime = sfxRedpackTime.AddSeconds(_effect != null ? _effect.duration : 0);
}
}
+
+ public void CheckFestivalRedpackSfx(int type)
+ {
+ if (!festivalRedpackModel.IsOpen)
+ {
+ return;
+ }
+ if (type == FestivalRedpackModel.FESTIVALTASKREDPACKTYPE)
+ {
+ if (festivalRedpackModel.grabRedpackTimes >= festivalRedpackModel.grabRedpackLimitTimes)
+ {
+ return;
+ }
+ }
+ if (!serverInited)
+ {
+ return;
+ }
+ festivalRedpackModel.JudgePlayRedpackVoice(type);
+ if (!(StageManager.Instance.CurrentStage is DungeonStage)
+ || WindowCenter.Instance.IsOpen<LoadingWin>())
+ {
+ return;
+ }
+ if (DateTime.Now >= sfxRedpackTime)
+ {
+ var effectId = type == FestivalRedpackModel.FESTIVALSYSTEMREDPACK1 ? 5217 : 5162;
+ var _effect = EffectMgr.Instance.PlayUIEffect(effectId, 4500, WindowCenter.Instance.uiRoot.tipsCanvas, false);
+ sfxRedpackTime = sfxRedpackTime.AddSeconds(2f);
+ }
+ }
#endregion
void ParseConfig()
{
+ var config = Config.Instance.Get<FuncConfigConfig>("OpenServerRedPacketRain");
+ var json = LitJson.JsonMapper.ToObject(config.Numerical2);
+ foreach (var key in json.Keys)
+ {
+ var type = int.Parse(key);
+ redpackSfxDict.Add(type, json[key].ToString());
+ }
+ if (!redpackSfxDict.ContainsKey(5))
+ {
+ redpackSfxDict.Add(5, "OSRedpackSfx");
+ }
}
public struct RedEnvelope
--
Gitblit v1.8.0