diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkStand.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkStand.cs
index 3e74de5733..acf0204737 100644
--- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkStand.cs
+++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkStand.cs
@@ -1,24 +1,29 @@
+using System.Collections;
+using System.Dynamic;
using CSNetwork.GPDataType;
+using Cysharp.Threading.Tasks;
using UnityEngine;
namespace BrewMonster.Scripts
{
public class CECHPWorkStand : CECHPWork
{
- protected bool m_bMeetSlide; // true, meet slide
- protected int m_iPoseAction; // pose action
- protected bool m_bSession; // doing session pose
- protected bool m_bWaterStop; // stop moving down in water
- protected bool m_bMoving; // moving flag
- protected bool m_bStopSlide; // stop sliding flag
- protected int m_iCurAction; // current playing action
+ protected bool m_bMeetSlide; // true, meet slide
+ protected int m_iPoseAction; // pose action
+ protected bool m_bSession; // doing session pose
+ protected bool m_bWaterStop; // stop moving down in water
+ protected bool m_bMoving; // moving flag
+ protected bool m_bStopSlide; // stop sliding flag
+ protected int m_iCurAction; // current playing action
//protected int m_oldAction; // cache old played action
public CECHPWorkStand(CECHPWorkMan pWorkMan) : base(Host_work_ID.WORK_STAND, pWorkMan)
{
m_dwMask = Work_mask.MASK_STAND;
- m_dwTransMask = Work_mask.MASK_MOVETOPOS | Work_mask.MASK_FLYOFF | Work_mask.MASK_FREEFALL | Work_mask.MASK_TRACEOBJECT |
- Work_mask.MASK_SIT | Work_mask.MASK_SPELLOBJECT | Work_mask.MASK_FOLLOW | Work_mask.MASK_CONCENTRATE | Work_mask.MASK_USEITEM;
+ m_dwTransMask = Work_mask.MASK_MOVETOPOS | Work_mask.MASK_FLYOFF | Work_mask.MASK_FREEFALL |
+ Work_mask.MASK_TRACEOBJECT |
+ Work_mask.MASK_SIT | Work_mask.MASK_SPELLOBJECT | Work_mask.MASK_FOLLOW |
+ Work_mask.MASK_CONCENTRATE | Work_mask.MASK_USEITEM;
Reset();
}
@@ -55,18 +60,21 @@ namespace BrewMonster.Scripts
return true;
}
- public void SetPoseAction(int iAction, bool bSession)
+ public async void SetPoseAction(int iAction, bool bSession)
{
m_iPoseAction = iAction;
m_bSession = bSession;
- // m_pHost.PlayAction(m_iPoseAction, false, 300);
- m_pHost.PlayAction(m_iPoseAction, true);
+ m_pHost.ClearAnimation();
+ m_pHost.PlayAction(m_iPoseAction, false);
if (!bSession && iAction != (int)PLAYER_ACTION_TYPE.ACT_EXP_KISS)
- m_pHost.PlayAction(m_pHost.GetMoveStandAction(false, false), true, 300, true);
+ {
+ await UniTask.Delay(3000);
+ m_iPoseAction = 0;
+ // m_pHost.PlayAction(m_pHost.GetMoveStandAction(false, false), true, 300, true);
+ }
}
- // On first tick
protected override void OnFirstTick()
{
m_pHost.m_iMoveMode = (int)Move_Mode.MOVE_STAND;
@@ -150,8 +158,10 @@ namespace BrewMonster.Scripts
{
// ASSERT(0);
}
+
return true;
}
+
// Play appropriate actions
if (m_iPoseAction == (int)PLAYER_ACTION_TYPE.ACT_STAND)
{
@@ -165,21 +175,15 @@ namespace BrewMonster.Scripts
{
if (m_pHost.m_iMoveEnv == CECPlayer.Move_environment.MOVEENV_GROUND)
Tick_Walk(fDeltaTime);
- /* else // AIR or WATER
- Tick_FlySwim(fDeltaTime);*/
+ /* else // AIR or WATER
+ Tick_FlySwim(fDeltaTime);*/
}
if (m_iPoseAction == (int)PLAYER_ACTION_TYPE.ACT_STAND)
{
- // Chariot war special case omitted for now
m_pHost.PlayAction(m_iCurAction, false, 300);
//m_oldAction = m_iCurAction;
}
- else
- {
- // Debug.LogError($"m_iPoseAction == {(PLAYER_ACTION_TYPE)m_iPoseAction}");
- m_pHost.PlayAction(m_iPoseAction, false, 300);
- }
// Force to update object's direction and up
// m_pHost.m_vecGroundNormal = m_pHost.m_vecGroundNormalSet;
@@ -211,18 +215,21 @@ namespace BrewMonster.Scripts
{
m_bStopSlide = true;
m_bMoving = false;
- m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(), (int)GPMoveMode.GP_MOVE_SLIDE);
+ m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(),
+ (int)GPMoveMode.GP_MOVE_SLIDE);
}
else
{
- m_pHost.m_MoveCtrl.SendMoveCmd(vCurPos, 2, GPDataTypeHelper.g_vOrigin, cdr.vAbsVelocity, (int)GPMoveMode.GP_MOVE_SLIDE);
+ m_pHost.m_MoveCtrl.SendMoveCmd(vCurPos, 2, GPDataTypeHelper.g_vOrigin, cdr.vAbsVelocity,
+ (int)GPMoveMode.GP_MOVE_SLIDE);
}
}
else if (m_bMeetSlide)
{
m_bMeetSlide = false;
m_bMoving = false;
- m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(), (int)GPMoveMode.GP_MOVE_SLIDE);
+ m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(),
+ (int)GPMoveMode.GP_MOVE_SLIDE);
}
return true;
@@ -250,8 +257,9 @@ namespace BrewMonster.Scripts
}*/
// Get stop sliding flag
- public bool GetStopSlideFlag() { return m_bStopSlide; }
+ public bool GetStopSlideFlag()
+ {
+ return m_bStopSlide;
+ }
}
-}
-
-
+}
\ No newline at end of file
diff --git a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
index 17d62c3c08..f46e8e68ca 100644
--- a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
+++ b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs
@@ -171,7 +171,7 @@ namespace BrewMonster
m_PlayerActions = _default_actions;
m_iShape = 0;
m_aEquips = new int[(int)IndexOfIteminEquipmentInventory.SIZE_ALL_EQUIPIVTR];
- queueActionEvent = new QueueActionEvent("", null, false, null);
+ queueActionEvent = new QueueActionEvent("", null, false, null,200);
}
/// This function will get the coressponding model player for the player based on the profession and gender
@@ -420,9 +420,8 @@ namespace BrewMonster
{
m_iCurAction = iAction;
PLAYER_ACTION action = actionConfig;
-
var szAct = EC_Utility.BuildActionName(action, 0);
- EventBus.PublishChannel(m_PlayerInfo.cid, new PlayActionEvent(szAct));
+ EventBus.PublishChannel(m_PlayerInfo.cid, new PlayActionEvent(szAct, iTransTime));
return true;
}
@@ -589,9 +588,10 @@ namespace BrewMonster
// “起�? 动作(挥起)
szAct = EC_Utility.BuildActionName(action, weapon_type, "起");
- EventBus.PublishChannel(m_PlayerInfo.cid, new PlayActionEvent(szAct));
+ int iTransTime = 200;
+ EventBus.PublishChannel(m_PlayerInfo.cid, new PlayActionEvent(szAct,iTransTime));
szAct = EC_Utility.BuildActionName(action, weapon_type, "落");
- queueActionEvent.SetData(szAct, SetApplyDamage, true, attackEvent);
+ queueActionEvent.SetData(szAct, SetApplyDamage, true, attackEvent,iTransTime);
EventBus.PublishChannelClass(m_PlayerInfo.cid, queueActionEvent);
//PlayNonSkillActionWithName(iAction, szAct, true, 200, true, ref pActFlag, COMACT_FLAG_MODE_ONCE_MULTIIGNOREGFX);gagága
/*
@@ -651,7 +651,8 @@ namespace BrewMonster
// ==============================
PLAYER_ACTION stand_action = m_PlayerActions[(int)PLAYER_ACTION_TYPE.ACT_FIGHTSTAND];
szAct = EC_Utility.BuildActionName(stand_action, 0);
- queueActionEvent.SetData(szAct, SetApplyDamage, false, attackEvent);
+ int iTranstime = 200;
+ queueActionEvent.SetData(szAct, SetApplyDamage, false, attackEvent,iTranstime);
EventBus.PublishChannelClass(m_PlayerInfo.cid, queueActionEvent);
/* QueueNonSkillActionWithName(ACT_FIGHTSTAND, szAct, 300, false, bHideFX, true);
@@ -1532,10 +1533,11 @@ namespace BrewMonster
public struct PlayActionEvent
{
public string AnimationName;
-
- public PlayActionEvent(string animationName)
+ public int ITransTime;
+ public PlayActionEvent(string animationName, int iTransTime)
{
this.AnimationName = animationName;
+ ITransTime = iTransTime;
}
}
public struct PLAYER_ACTION
@@ -1546,26 +1548,29 @@ namespace BrewMonster
public class QueueActionEvent
{
public string AnimationName;
+ public int ITransTime;
public Action SetFlag;
public CECAttackEvent AttackEvent;
public bool IsHitAnim;
public QueueActionEvent(string animationName, Action setFlag, bool isHitAnim,
- CECAttackEvent attackEvent)
+ CECAttackEvent attackEvent,int iTransTime)
{
this.AnimationName = animationName;
SetFlag = setFlag;
IsHitAnim = isHitAnim;
AttackEvent = attackEvent;
+ ITransTime = iTransTime;
}
public void SetData(string animationName, Action setFlag, bool isHitAnim,
- CECAttackEvent attackEvent)
+ CECAttackEvent attackEvent,int iTransTime)
{
this.AnimationName = animationName;
SetFlag = setFlag;
IsHitAnim = isHitAnim;
AttackEvent = attackEvent;
+ ITransTime = iTransTime;
}
}
public enum PLAYER_ACTION_TYPE
diff --git a/Assets/PerfectWorld/Scripts/Players/CECPlayerActionPlayPolicy.cs b/Assets/PerfectWorld/Scripts/Players/CECPlayerActionPlayPolicy.cs
index e3b396c002..19f10f9057 100644
--- a/Assets/PerfectWorld/Scripts/Players/CECPlayerActionPlayPolicy.cs
+++ b/Assets/PerfectWorld/Scripts/Players/CECPlayerActionPlayPolicy.cs
@@ -245,7 +245,8 @@ namespace BrewMonster
{
return false;
}
- EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName));
+ int iTransTime = 0;
+ EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName,iTransTime));
return true;
}
@@ -268,7 +269,8 @@ namespace BrewMonster
return false;
}
m_isCastingSkill = true;
- EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName));
+ int iTransTime = 0;
+ EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName,iTransTime));
return true;
}
@@ -283,7 +285,8 @@ namespace BrewMonster
return false;
}
m_isCastingSkill = true;
- EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName));
+ int iTransTime = 0;
+ EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName,iTransTime));
return true;
}
@@ -298,7 +301,9 @@ namespace BrewMonster
{
return false;
}
- EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName));
+
+ int iTransTime = 0;
+ EventBus.PublishChannel(m_pPlayer.GetPlayerInfo().cid, new PlayActionEvent(szActName,iTransTime));
return true;
}
diff --git a/Assets/Scripts/CECGameRun.cs b/Assets/Scripts/CECGameRun.cs
index 32e63146d8..435c4c1f1f 100644
--- a/Assets/Scripts/CECGameRun.cs
+++ b/Assets/Scripts/CECGameRun.cs
@@ -44,7 +44,6 @@ public partial class CECGameRun
private static Dictionary m_InstTab = new Dictionary();
public void Init()
{
- BMLogger.LogError("CECGameRun Init");
Application.targetFrameRate = 60;
instance = this;
// _gameRunConfig = Resources.Load("GameRunConfig");
diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs
index b9df827270..a43d408cd4 100644
--- a/Assets/Scripts/CECHostPlayer.cs
+++ b/Assets/Scripts/CECHostPlayer.cs
@@ -156,10 +156,10 @@ namespace BrewMonster
public EC_Inventory PackInventory => m_packInventory;
public EC_Inventory EquipInventory => m_equipInventory;
public EC_Inventory TaskInventory => m_taskInventory;
-
+
private void OnApplicationQuit()
{
- if(m_pTaskInterface!=null)
+ if (m_pTaskInterface != null)
m_pTaskInterface.Despose();
}
@@ -1113,7 +1113,6 @@ namespace BrewMonster
int iLimit = (int)(pCmd.iMaxHP * 0.3f);
if (pCmd.iHP < m_BasicProps.iCurHP && m_BasicProps.iCurHP >= iLimit && pCmd.iHP < iLimit)
{
-
/*if (CECUIHelper::GetGameUIMan().IsShowLowHP()) {
// ѪÁ¿µÍÓÚÁÙ½çÖµÔò²¥·ÅÌØÐ§
const int GfxLastTime = 10000; // ³ÖÐøÊ±¼ä10Ãë
@@ -1760,7 +1759,6 @@ namespace BrewMonster
// TODO: Handle other pickup item commands if necessary
-
}
}
@@ -2590,6 +2588,11 @@ namespace BrewMonster
return iRet;
}
+ public void ClearAnimation()
+ {
+ EventBus.PublishChannel(GetCharacterID(), new ClearComActFlagAllRankNodesEvent(true));
+ }
+
public CECActionSwitcherBase GetActionSwitcher()
{
return m_pActionSwitcher;
@@ -3134,7 +3137,6 @@ namespace BrewMonster
if (!bTraceOK) return false;
// }
//}
-
}
}
@@ -3265,9 +3267,7 @@ namespace BrewMonster
//// Clear deal pack
//m_pDealPack.RemoveAllItems();
break;
-
}
-
}
}
@@ -3546,7 +3546,6 @@ namespace BrewMonster
UnityGameSession.c2s_CmdCastPosSkill(m_pPrepSkill.GetSkillID(), EC_Utility.ToVector3(vMovePos),
byPVPMask, 1, idTarget);
bSuccess = true;
-
}
m_pPrepSkill = null;
@@ -4163,11 +4162,9 @@ namespace BrewMonster
if (m_iMoveEnv == Move_environment.MOVEENV_AIR)
{
-
}
else if (m_iMoveEnv == Move_environment.MOVEENV_WATER)
{
-
}
else
{
@@ -4234,7 +4231,6 @@ namespace BrewMonster
public bool glb_GetForceAttackFlag(uint pdwParam)
{
-
/*bool bForceAttack = false;
CECInputCtrl* pInputCtrl = g_pGame.GetGameRun().GetInputCtrl();
@@ -4959,7 +4955,6 @@ namespace BrewMonster
// ÏòÏ Trace µØÐκͽ¨Öþ£¬²¢·µ»ØµÚÒ»¸öÅöײµãµÄÇé¿ö
bool VertRayTrace(Vector3 vPos, ref Vector3 vHitPos, ref A3DVECTOR3 vHitNormal, float DeltaY)
{
-
Vector3 vTerrainPos = Vector3.zero;
Vector3 vTerrainNormal = Vector3.zero;
Vector3 vBuildingPos = Vector3.zero;
diff --git a/Assets/Scripts/PlayerVisual.cs b/Assets/Scripts/PlayerVisual.cs
index 499a9e0d7b..04f49f281a 100644
--- a/Assets/Scripts/PlayerVisual.cs
+++ b/Assets/Scripts/PlayerVisual.cs
@@ -20,7 +20,7 @@ namespace BrewMonster
[SerializeField] private int id;
private const float FadeTime = 0.1f;
- private const FadeMode FadeMode = Animancer.FadeMode.FixedDuration;
+ private const FadeMode FadeMode = Animancer.FadeMode.NormalizedDuration;
QueueActionEvent queueActionEvent;
private void PlayActionEventHandler(PlayActionEvent @event)
@@ -31,7 +31,7 @@ namespace BrewMonster
_animationList = _animationQueue.ToList();
return;
}
- InternalPlayAnimation(@event.AnimationName);
+ InternalPlayAnimation(@event.AnimationName, @event.ITransTime);
}
public void InitPlayerEventDoneHandler()
{
@@ -130,7 +130,8 @@ namespace BrewMonster
}
string animName = _animationQueue.Dequeue();
_animationList = _animationQueue.ToList();
- InternalPlayAnimation(animName);
+ //TODO: default fadetime = 200 remake later
+ InternalPlayAnimation(animName,200);
}
void ApplyDamage()
{
@@ -160,7 +161,7 @@ namespace BrewMonster
///
private void InternalPlayAnimation(string animationName, float duration = FadeTime, FadeMode fadeMode = FadeMode)
{
- _currentState = namedAnimancer.TryPlay(animationName, duration, fadeMode);
+ _currentState = namedAnimancer.TryPlay(animationName, duration / 1000, fadeMode);
_currentAnimationName = animationName;
if (_currentState == null)
{