add escape button (changed a61)

This commit is contained in:
NguyenVanDat
2026-01-09 09:38:51 +07:00
parent 67908e80fc
commit 570455afce
5 changed files with 147 additions and 3 deletions
@@ -3,7 +3,7 @@ using BrewMonster.Network;
using BrewMonster.Scripts;
using CSNetwork.GPDataType;
using PerfectWorld.Scripts;
using System;
using CSNetwork;
using UnityEngine;
namespace BrewMonster
@@ -22,6 +22,10 @@ namespace BrewMonster
{
OnClickBtnJump();
}
if (Input.GetKeyDown(KeyCode.Escape))
{
OnClickBtnEscape();
}
}
/// <summary>
@@ -508,5 +512,14 @@ namespace BrewMonster
// For now, return true if it's a mine / For now, return true if it's a mine
return true;
}
public void OnClickBtnEscape()
{
// if( bInAutoMode ) break;
// if (bFirstPress)
// pGameRun->PostMessage(MSG_HST_PRESSCANCEL, MAN_PLAYER, 0);
// break;
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_PRESSCANCEL, MANAGER_INDEX.MAN_PLAYER, 0);
}
}
}
@@ -0,0 +1,34 @@
using System;
using BrewMonster.Network;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class HUDMainGamePlay : MonoBehaviour
{
#region Fields
[SerializeField]private Button _escapeBtn;
#endregion
private void OnEnable()
{
_escapeBtn.onClick.AddListener(OnEscapeClicked);
}
private void OnDisable()
{
_escapeBtn.onClick.RemoveListener(OnEscapeClicked);
}
private void OnEscapeClicked()
{
if(EC_Game.GetGameRun()?.GetHostPlayer() != null)
{
EC_Game.GetGameRun()?.GetHostPlayer().OnClickBtnEscape();
}
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 08df3fc4159b2724096bd8bba83599bc
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4e48c9be3ea9d07ee5f5073f5d0759c66181647b3d57a2d2358cd50ae5502408
size 200782987
oid sha256:2c906b1f7f45bf51342cfffebe0fa5361bb08df3fe72e5aaebbc194075f64f20
size 200790852
+95
View File
@@ -500,6 +500,7 @@ namespace BrewMonster
case int value when value == EC_MsgDef.MSG_PM_PLAYERGATHER: OnMsgPlayerGather(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_COOLTIMEDATA: OnMsgHstCoolTimeData(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_SETCOOLTIME: OnMsgHstSetCoolTime(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_PRESSCANCEL: OnMsgHstPressCancel(Msg); break;
}
@@ -6110,5 +6111,99 @@ namespace BrewMonster
}
}
}
private void OnMsgHstPressCancel(ECMSG Msg)
{
CECHPWork pCurWork = null;
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_TRACEOBJECT);
if (pCurWork is CECHPWorkTrace workTrace)
{
workTrace.PressCancel();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_HACKOBJECT);
if (pCurWork != null)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_USEITEM);
if (pCurWork != null)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_SPELLOBJECT);
if (pCurWork != null)
{
int iState = ((CECHPWorkSpell)pCurWork).GetState();
if (iState == CECHPWorkSpell.Spell_magic_state.ST_INCANT)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_PICKUP);
if (pCurWork != null)
{
if (((EC_HPWorkPick)pCurWork).IsGather())
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
}
//todo: handle this part
// pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_CONCENTRATE);
// if (pCurWork !=null){
// if (IsOperatingPet()){
// UnityGameSession.c2s_CmdCancelAction();
// return;
// }
// }
// pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_CONGREGATE);
// if (pCurWork !=null){
// if (IsCongregating()){
// UnityGameSession.c2s_CmdCancelAction();
// return;
// }
// }
if (m_bUsingTrashBox || DoingSessionPose())
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
// Cancel current selection
if (m_idSelTarget >0)
{
SelectTarget(0);
return;
}
// Some work have lower priority
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_MOVETOPOS);
if (pCurWork != null)
{
((CECHPWorkMove)pCurWork).PressCancel();
return;
}
}
// Is doing session pose ?
private bool DoingSessionPose()
{
var pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_STAND);
if (pCurWork !=null){
if (((CECHPWorkStand)pCurWork).DoingSessionPose()){
return true;
}
}
return false;
}
}
}