少年修仙传客户端代码仓库
client_linchunjie
2018-10-26 911a21b4b61b59ec30458cd266e11ae5349f01fe
4218 【1.2】仙盟宴会传功
3个文件已修改
139 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0411_tagPlayerSit.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonData.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastModel.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0411_tagPlayerSit.cs
@@ -1,28 +1,39 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
//04 11 玩家坐下/站立#tagPlayerSit
public class DTC0411_tagPlayerSit : DtcBasic {
    RealmModel m_RealmModel;
    RealmModel realmModel {
        get {
            return m_RealmModel ?? (m_RealmModel = ModelCenter.Instance.GetModel<RealmModel>());
        }
    }
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        H0411_tagPlayerSit vNetData = vNetPack as H0411_tagPlayerSit;
        if (vNetData != null) {
            realmModel.OnRefreshData(vNetData);
        }
    }
}
using UnityEngine;
using System.Collections;
using Snxxz.UI;
//04 11 玩家坐下/站立#tagPlayerSit
public class DTC0411_tagPlayerSit : DtcBasic
{
    RealmModel m_RealmModel;
    RealmModel realmModel
    {
        get
        {
            return m_RealmModel ?? (m_RealmModel = ModelCenter.Instance.GetModel<RealmModel>());
        }
    }
    FairyFeastModel fairyFeastModel
    {
        get { return ModelCenter.Instance.GetModel<FairyFeastModel>(); }
    }
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        H0411_tagPlayerSit vNetData = vNetPack as H0411_tagPlayerSit;
        if (vNetData != null)
        {
            realmModel.OnRefreshData(vNetData);
            fairyFeastModel.UpdateTransmitState(vNetData);
        }
    }
}
System/Dungeon/DungeonData.cs
@@ -108,6 +108,7 @@
        public FairyFeastTop familyPartyTop;
        public int topPlayerID;
        public int enemyID;
        public int hasSit;
        public long totalExp
        {
System/FairyAu/FairyFeastModel.cs
@@ -37,11 +37,21 @@
        public void OnBeforePlayerDataInitialize()
        {
            transmitCompleteTime = TimeUtility.ClientOriginalTime;
            if (transmitClock != null)
            {
                transmitClock.Stop();
                transmitClock = null;
            }
        }
        private void OnStageLoadFinish()
        {
            selectPlayer = 0;
            if (transmitClock != null)
            {
                transmitClock.Stop();
                transmitClock = null;
            }
        }
        private void SecondEvent()
@@ -59,22 +69,11 @@
                {
                    var player = actor as GA_Player;
                    var hero = PlayerDatas.Instance.hero;
                    if (player.IsIdle())
                    var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                    if (allowTransmit != (distance <= transmitDistance))
                    {
                        var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                        if (allowTransmit != (distance <= transmitDistance))
                        {
                            allowTransmit = distance <= transmitDistance;
                            update = true;
                        }
                    }
                    else
                    {
                        if (allowTransmit)
                        {
                            allowTransmit = false;
                            update = true;
                        }
                        allowTransmit = distance <= transmitDistance;
                        update = true;
                    }
                }
                if (update && selectTransmit != null)
@@ -109,7 +108,7 @@
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.totalExp > 0)
            if (mission.hasSit == 1)
            {
                return;
            }
@@ -122,11 +121,8 @@
                {
                    var player = actor as GA_Player;
                    var hero = PlayerDatas.Instance.hero;
                    if (player.IsIdle())
                    {
                        var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                        allowTransmit = distance <= transmitDistance;
                    }
                    var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                    allowTransmit = distance <= transmitDistance;
                    selectPlayer = serverInstId;
                }
            }
@@ -147,7 +143,7 @@
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.totalExp > 0)
            if (mission.hasSit == 1)
            {
                return;
            }
@@ -163,7 +159,7 @@
                for (int i = 0; i < list.Count; i++)
                {
                    var player = list[i] as GA_Player;
                    if (player != null && player.IsIdle())
                    if (player != null)
                    {
                        var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                        if (distance < transmitDistance)
@@ -184,7 +180,7 @@
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.totalExp > 0 && selectPlayer != 0)
            if (mission.hasSit == 1 && selectPlayer != 0)
            {
                selectPlayer = 0;
                if (selectTransmit != null)
@@ -203,15 +199,29 @@
                return DateTime.Now < transmitCompleteTime;
            }
        }
        private Clock transmitClock = null;
        public void Transmit()
        {
            UpdateTransmitState(transmitCostSeconds);
            if (selectPlayer != 0)
            {
                CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
                pak.ActionType = 0;
                pak.ActionInfo = selectPlayer;
                GameNetSystem.Instance.SendInfo(pak);
            }
        }
        public void UpdateTransmitState(int seconds)
        public void UpdateTransmitState(H0411_tagPlayerSit package)
        {
            transmitCompleteTime = DateTime.Now.AddTicks(seconds * TimeSpan.TicksPerSecond);
            Clock.Create(seconds, TransmitComplete);
            var mapId = PlayerDatas.Instance.baseData.MapID;
            if (mapId != 31230 || package.PlayerID != PlayerDatas.Instance.baseData.PlayerID)
            {
                return;
            }
            transmitCompleteTime = DateTime.Now.AddTicks(transmitCostSeconds * TimeSpan.TicksPerSecond);
            transmitClock = Clock.Create(transmitCostSeconds, TransmitComplete);
            if (transmitStateUpdate != null)
            {
                transmitStateUpdate(true);
@@ -220,6 +230,11 @@
        void TransmitComplete()
        {
            transmitClock = null;
            CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
            pak.ActionType = 1;
            pak.ActionInfo = 0;
            GameNetSystem.Instance.SendInfo(pak);
            if (transmitStateUpdate != null)
            {
                transmitStateUpdate(false);