convert ui code

This commit is contained in:
VDH
2026-01-29 19:24:42 +07:00
parent a3b5a72b9c
commit e2e63b83f2
13 changed files with 473 additions and 151 deletions
@@ -0,0 +1,5 @@
using UnityEngine;
namespace BrewMonster
{
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1c12399ff0e62e146b5951b866e5ab91
@@ -960,7 +960,6 @@ namespace CSNetwork
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_SETCOOLTIME, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
break;
case CommandID.COMBO_SKILL_PREPARE:
BMLogger.LogError("### GameDataSend: COMBO_SKILL_PREPARE");
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_COMBO_SKILL_PREPARE, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader, dwDataSize);
break;
case CommandID.PLAYER_EXT_PROP_BASE:
@@ -1675,7 +1674,6 @@ namespace CSNetwork
{
gamedatasend gamedatasend = new gamedatasend();
gamedatasend.Data = C2SCommandFactory.CreateTaskNotifyCmd(pData, dwDataSize);
BMLogger.Log($"[MH Task] c2s_SendCmdTaskNotify Command ID : {pData[0]} Size: {dwDataSize}");
SendProtocol(gamedatasend);
}
@@ -10,15 +10,22 @@
*
* Copyright (c) 2005 Archosaur Studio, All Rights Reserved.
*/
using static BrewMonster.CECSCCommand.CommandID;
using static BrewMonster.Scripts.RoleExpression;
using static BrewMonster.Scripts.DescriptipionMsg;
using BrewMonster.Assets.PerfectWorld.Scripts.Skills;
using BrewMonster.Network;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Skills;
using CSNetwork.C2SCommand;
using CSNetwork.GPDataType;
using CSNetwork.S2CCommand;
using System;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using static BrewMonster.EC_Resource;
using static BrewMonster.IconResourceType;
namespace BrewMonster
{
@@ -636,28 +643,28 @@ namespace BrewMonster
break;
}
/* case CECShortcut.ShortcutType.SCT_ITEM:
{
int iPack = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
int iIvtrSlot = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
int idItem = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
/* case CECShortcut.ShortcutType.SCT_ITEM:
{
int iPack = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
int iIvtrSlot = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
int idItem = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
CECInventory pPack = pHost.GetPack(iPack);
if (pPack == null)
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid inventory");
return false;
}
CECInventory pPack = pHost.GetPack(iPack);
if (pPack == null)
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid inventory");
return false;
}
CECIvtrItem pItem = pPack.GetItem(iIvtrSlot);
if (pItem != null)
CreateItemShortcut(iSlot, iPack, iIvtrSlot, pItem);
CECIvtrItem pItem = pPack.GetItem(iIvtrSlot);
if (pItem != null)
CreateItemShortcut(iSlot, iPack, iIvtrSlot, pItem);
break;
}*/
break;
}*/
case CECShortcut.ShortcutType.SCT_SKILLGRP:
{
@@ -677,59 +684,59 @@ namespace BrewMonster
break;
}
/*case CECShortcut.ShortcutType.SCT_PET:
{
if (dwVer >= 4)
/*case CECShortcut.ShortcutType.SCT_PET:
{
int iPetIndex = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (dwVer >= 4)
{
int iPetIndex = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (iPetIndex >= 0)
CreatePetShortcut(iSlot, iPetIndex);
if (iPetIndex >= 0)
CreatePetShortcut(iSlot, iPetIndex);
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for pet");
return false;
}
break;
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for pet");
return false;
}
break;
}
case CECShortcut.ShortcutType.SCT_AUTOFASHION:
{
if (dwVer >= 5)
case CECShortcut.ShortcutType.SCT_AUTOFASHION:
{
int iAutoFashionIndex = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (dwVer >= 5)
{
int iAutoFashionIndex = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (iAutoFashionIndex >= 0)
CreateAutoFashionShortcut(iSlot, iAutoFashionIndex);
if (iAutoFashionIndex >= 0)
CreateAutoFashionShortcut(iSlot, iAutoFashionIndex);
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for auto fashion");
return false;
}
break;
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for auto fashion");
return false;
}
break;
}
case CECShortcut.ShortcutType.SCT_SYSMODULE:
{
if (dwVer > 10)
case CECShortcut.ShortcutType.SCT_SYSMODULE:
{
int iSys = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (dwVer > 10)
{
int iSys = BitConverter.ToInt32(pDataBuf, offset);
offset += sizeof(int);
if (iSys >= 0)
CreateSystemModuleShortcut(iSlot, iSys);
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for system module");
return false;
}
break;
}*/
if (iSys >= 0)
CreateSystemModuleShortcut(iSlot, iSys);
}
else
{
Debug.LogError("CECShortcutSet::LoadConfigData - Invalid version for system module");
return false;
}
break;
}*/
/* default:
//TODO: uncomment
@@ -781,15 +788,22 @@ namespace BrewMonster
{
return m_iSCType;
}
public virtual string GetDesc() { return ""; }
public virtual CECShortcut Clone()
{
return new CECShortcut();
}
public virtual bool Execute() { return true; }
// Get icon file
public virtual string GetIconFile()
{
// Return a default icon file name
return "unknown";
}
}
// Shortcut type
public enum ShortcutType
public enum ShortcutType
{
SCT_UNKNOWN = -1,
@@ -814,7 +828,7 @@ namespace BrewMonster
CMD_FINDTARGET,
CMD_ASSISTATTACK,
CMD_INVITETOTEAM,
CMD_LEAVETEAM,
CMD_LEAVETEAM,
CMD_KICKTEAMMEM,
CMD_FINDTEAM,
CMD_STARTTRADE,
@@ -830,25 +844,93 @@ namespace BrewMonster
}
public CECSCCommand(int iCommand)
{
m_iSCType = (int)ShortcutType.SCT_COMMAND;
m_iSCType = (int)ShortcutType.SCT_COMMAND;
m_iCommand = iCommand;
m_dwParam = 0;
m_dwParam = 0;
}
public override string GetDesc()
{
CECStringTab pDescTab = EC_Game.GetItemDesc();
string szDesc = ("");
switch ((CommandID)m_iCommand)
{
case CMD_SITDOWN: szDesc = pDescTab.GetWideString((int)CMDDESC_SITDOWN); break;
case CMD_WALKRUN: szDesc = pDescTab.GetWideString((int)CMDDESC_WALKRUN); break;
case CMD_NORMALATTACK: szDesc = pDescTab.GetWideString((int)CMDDESC_NORMALATTACK); break;
case CMD_FINDTARGET: szDesc = pDescTab.GetWideString((int)CMDDESC_FINDTARGET); break;
case CMD_ASSISTATTACK: szDesc = pDescTab.GetWideString((int)CMDDESC_ASSISTATTACK); break;
case CMD_INVITETOTEAM: szDesc = pDescTab.GetWideString((int)CMDDESC_INVITETOTEAM); break;
case CMD_LEAVETEAM: szDesc = pDescTab.GetWideString((int)CMDDESC_LEAVETEAM); break;
case CMD_KICKTEAMMEM: szDesc = pDescTab.GetWideString((int)CMDDESC_KICKTEAMMEM); break;
case CMD_FINDTEAM: szDesc = pDescTab.GetWideString((int)CMDDESC_FINDTEAM); break;
case CMD_STARTTRADE: szDesc = pDescTab.GetWideString((int)CMDDESC_STARTTRADE); break;
case CMD_SELLBOOTH: szDesc = pDescTab.GetWideString((int)CMDDESC_SELLBOOTH); break;
case CMD_BUYBOOTH: szDesc = pDescTab.GetWideString((int)CMDDESC_BUYBOOTH); break;
case CMD_INVITETOFACTION: szDesc = pDescTab.GetWideString((int)CMDDESC_INVITETOFACTION); break;
case CMD_FLY: szDesc = pDescTab.GetWideString((int)CMDDESC_FLY); break;
case CMD_PICKUP: szDesc = pDescTab.GetWideString((int)CMDDESC_PICKUP); break;
case CMD_GATHER: szDesc = pDescTab.GetWideString((int)CMDDESC_GATHER); break;
case CMD_RUSHFLY: szDesc = pDescTab.GetWideString((int)CMDDESC_RUSHFLY); break;
case CMD_BINDBUDDY: szDesc = pDescTab.GetWideString((int)CMDDESC_BINDBUDDY); break;
case CMD_PLAYPOSE:
{
switch ((RoleExpression)m_dwParam)
{
case ROLEEXP_WAVE: szDesc = pDescTab.GetWideString((int)FACEDESC_WAVEHAND); break;
case ROLEEXP_NOD: szDesc = pDescTab.GetWideString((int)FACEDESC_NOD); break;
case ROLEEXP_SHAKEHEAD: szDesc = pDescTab.GetWideString((int)FACEDESC_SHADEHEAD); break;
case ROLEEXP_SHRUG: szDesc = pDescTab.GetWideString((int)FACEDESC_SHRUG); break;
case ROLEEXP_LAUGH: szDesc = pDescTab.GetWideString((int)FACEDESC_LAUGH); break;
case ROLEEXP_ANGRY: szDesc = pDescTab.GetWideString((int)FACEDESC_ANGRY); break;
case ROLEEXP_STUN: szDesc = pDescTab.GetWideString((int)FACEDESC_FAINT); break;
case ROLEEXP_DEPRESSED: szDesc = pDescTab.GetWideString((int)FACEDESC_SAD); break;
case ROLEEXP_KISSHAND: szDesc = pDescTab.GetWideString((int)FACEDESC_KISSHAND); break;
case ROLEEXP_SHY: szDesc = pDescTab.GetWideString((int)FACEDESC_SHY); break;
case ROLEEXP_SALUTE: szDesc = pDescTab.GetWideString((int)FACEDESC_SALUTE); break;
case ROLEEXP_SITDOWN: szDesc = pDescTab.GetWideString((int)FACEDESC_SITDOWN); break;
case ROLEEXP_ASSAULT: szDesc = pDescTab.GetWideString((int)FACEDESC_CHARGE); break;
case ROLEEXP_THINK: szDesc = pDescTab.GetWideString((int)FACEDESC_THINK); break;
case ROLEEXP_DEFIANCE: szDesc = pDescTab.GetWideString((int)FACEDESC_CHALLENGE); break;
case ROLEEXP_VICTORY: szDesc = pDescTab.GetWideString((int)FACEDESC_WIN); break;
case ROLEEXP_GAPE: szDesc = pDescTab.GetWideString((int)FACEDESC_GAPE); break;
case ROLEEXP_KISS: szDesc = pDescTab.GetWideString((int)FACEDESC_KISS); break;
case ROLEEXP_FIGHT: szDesc = pDescTab.GetWideString((int)FACEDESC_FIGHT); break;
case ROLEEXP_ATTACK1: szDesc = pDescTab.GetWideString((int)FACEDESC_ATTACK1); break;
case ROLEEXP_ATTACK2: szDesc = pDescTab.GetWideString((int)FACEDESC_ATTACK2); break;
case ROLEEXP_ATTACK3: szDesc = pDescTab.GetWideString((int)FACEDESC_ATTACK3); break;
case ROLEEXP_ATTACK4: szDesc = pDescTab.GetWideString((int)FACEDESC_ATTACK4); break;
case ROLEEXP_DEFENCE: szDesc = pDescTab.GetWideString((int)FACEDESC_DEFENCE); break;
case ROLEEXP_FALL: szDesc = pDescTab.GetWideString((int)FACEDESC_FALL); break;
case ROLEEXP_FALLONGROUND: szDesc = pDescTab.GetWideString((int)FACEDESC_FALLONGROUND); break;
case ROLEEXP_LOOKAROUND: szDesc = pDescTab.GetWideString((int)FACEDESC_LOOKAROUND); break;
case ROLEEXP_DANCE: szDesc = pDescTab.GetWideString((int)FACEDESC_DANCE); break;
case ROLEEXP_FASHIONWEAPON: szDesc = pDescTab.GetWideString((int)FACEDESC_FASHIONWEAPON); break;
default:
break;
}
break;
}
default:
return ("");
}
return szDesc;
}
public CECSCCommand(CECSCCommand src)
{
m_iCommand = src.m_iCommand;
m_dwParam = src.m_dwParam;
m_dwParam = src.m_dwParam;
}
public const int CMD_PLAYPOSE = 1; // Example constant
// public override ShortcutType GetType() => ShortcutType.SCT_COMMAND;
public override CECShortcut Clone() => new CECSCCommand(this);
public int GetCommandID() => 0;
public int GetParam() => 0;
// Set / Get command parameter
public void SetParam(uint dwParam) { m_dwParam = dwParam; }
// Execute shortcut
public override bool Execute()
{
@@ -864,44 +946,112 @@ namespace BrewMonster
//
// if (bForbidCmd)
// {
// g_pGame->GetGameRun()->AddFixedMessage(FIXMSG_CMD_INCOOLTIME);
// g_pGame.GetGameRun().AddFixedMessage(FIXMSG_CMD_INCOOLTIME);
// return false;
// }
// }
switch (m_iCommand)
{
// case CMD_SITDOWN: pHost->CmdSitDown(!pHost->IsSitting()); break;
// case CMD_WALKRUN: pHost->CmdWalkRun(!pHost->GetWalkRunFlag()); break;
// case CMD_NORMALATTACK: pHost->CmdNormalAttack(); break;
// case CMD_FINDTARGET: pHost->CmdFindTarget(); break;
// case CMD_ASSISTATTACK: pHost->CmdAssistAttack(); break;
// case CMD_INVITETOTEAM: pHost->CmdInviteToTeam(); break;
// case CMD_LEAVETEAM: pHost->CmdLeaveTeam(); break;
// case CMD_KICKTEAMMEM: pHost->CmdKickTeamMember(); break;
// case CMD_FINDTEAM: pHost->CmdFindTeam(); break;
// case CMD_STARTTRADE: pHost->CmdStartTrade(); break;
// case CMD_SELLBOOTH: pHost->CmdSellBooth(); break;
// case CMD_BUYBOOTH: pHost->CmdBuyBooth(); break;
// case CMD_SITDOWN: pHost.CmdSitDown(!pHost.IsSitting()); break;
// case CMD_WALKRUN: pHost.CmdWalkRun(!pHost.GetWalkRunFlag()); break;
// case CMD_NORMALATTACK: pHost.CmdNormalAttack(); break;
// case CMD_FINDTARGET: pHost.CmdFindTarget(); break;
// case CMD_ASSISTATTACK: pHost.CmdAssistAttack(); break;
// case CMD_INVITETOTEAM: pHost.CmdInviteToTeam(); break;
// case CMD_LEAVETEAM: pHost.CmdLeaveTeam(); break;
// case CMD_KICKTEAMMEM: pHost.CmdKickTeamMember(); break;
// case CMD_FINDTEAM: pHost.CmdFindTeam(); break;
// case CMD_STARTTRADE: pHost.CmdStartTrade(); break;
// case CMD_SELLBOOTH: pHost.CmdSellBooth(); break;
// case CMD_BUYBOOTH: pHost.CmdBuyBooth(); break;
case (int)CommandID.CMD_PLAYPOSE: pHost.CmdStartPose((int)m_dwParam); break;
// case CMD_INVITETOFACTION: pHost->CmdInviteToFaction(); break;
// case CMD_INVITETOFACTION: pHost.CmdInviteToFaction(); break;
// case CMD_FLY:
// {
// // Èç¹ûÆï³ËÒª·ÉÐУ¬ÔòÕâЩ action switcher£¬·ñÔò CmdFly
// if (!pHost->GetActionSwitcher() || !pHost->GetActionSwitcher()->OnRideToFlyAction())
// pHost->CmdFly();
// if (!pHost.GetActionSwitcher() || !pHost.GetActionSwitcher().OnRideToFlyAction())
// pHost.CmdFly();
// break;
// }
// case CMD_PICKUP: pHost->CmdPickup(); break;
// case CMD_GATHER: pHost->CmdGather(); break;
// case CMD_RUSHFLY: pHost->CmdRushFly(); break;
// case CMD_BINDBUDDY: pHost->CmdBindBuddy(pHost->GetSelectedTarget()); break;
// case CMD_PICKUP: pHost.CmdPickup(); break;
// case CMD_GATHER: pHost.CmdGather(); break;
// case CMD_RUSHFLY: pHost.CmdRushFly(); break;
// case CMD_BINDBUDDY: pHost.CmdBindBuddy(pHost.GetSelectedTarget()); break;
default:
return false;
}
return true;
}
public override string GetIconFile()
{
string szIconFile = "";
switch ((CommandID)m_iCommand)
{
case CommandID.CMD_SITDOWN: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_SITDOWN); break;
case CommandID.CMD_WALKRUN: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_WALKRUN); break;
case CommandID.CMD_NORMALATTACK: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_NORMALATTACK); break;
case CommandID.CMD_FINDTARGET: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_FINDTARGET); break;
case CommandID.CMD_ASSISTATTACK: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_ASSISTATTACK); break;
case CommandID.CMD_INVITETOTEAM: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_INVITETOTEAM); break;
case CommandID.CMD_LEAVETEAM: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_LEAVETEAM); break;
case CommandID.CMD_KICKTEAMMEM: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_KICKTEAMMEM); break;
case CommandID.CMD_FINDTEAM: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_FINDTEAM); break;
case CommandID.CMD_STARTTRADE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_STARTTRADE); break;
case CommandID.CMD_SELLBOOTH: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_SELLBOOTH); break;
case CommandID.CMD_BUYBOOTH: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_BUYBOOTH); break;
case CommandID.CMD_INVITETOFACTION: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_INVITETOFACTION); break;
case CommandID.CMD_FLY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_FLY); break;
case CommandID.CMD_PICKUP: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_PICKUP); break;
case CommandID.CMD_GATHER: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_GATHER); break;
case CommandID.CMD_RUSHFLY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_RUSHFLY); break;
case CommandID.CMD_BINDBUDDY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_BINDBUDDY); break;
case CommandID.CMD_PLAYPOSE:
{
switch ((RoleExpression)m_dwParam)
{
case RoleExpression.ROLEEXP_WAVE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_WAVE); break;
case RoleExpression.ROLEEXP_NOD: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_NOD); break;
case RoleExpression.ROLEEXP_SHAKEHEAD: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_SHAKEHEAD); break;
case RoleExpression.ROLEEXP_SHRUG: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_SHRUG); break;
case RoleExpression.ROLEEXP_LAUGH: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_LAUGH); break;
case RoleExpression.ROLEEXP_ANGRY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ANGRY); break;
case RoleExpression.ROLEEXP_STUN: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_STUN); break;
case RoleExpression.ROLEEXP_DEPRESSED: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_DEPRESSED); break;
case RoleExpression.ROLEEXP_KISSHAND: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_KISSHAND); break;
case RoleExpression.ROLEEXP_SHY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_SHY); break;
case RoleExpression.ROLEEXP_SALUTE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_SALUTE); break;
case RoleExpression.ROLEEXP_SITDOWN: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_SITDOWN); break;
case RoleExpression.ROLEEXP_ASSAULT: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ASSAULT); break;
case RoleExpression.ROLEEXP_THINK: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_THINK); break;
case RoleExpression.ROLEEXP_DEFIANCE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_DEFIANCE); break;
case RoleExpression.ROLEEXP_VICTORY: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_VICTORY); break;
case RoleExpression.ROLEEXP_GAPE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_GAPE); break;
case RoleExpression.ROLEEXP_KISS: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_KISS); break;
case RoleExpression.ROLEEXP_FIGHT: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_FIGHT); break;
case RoleExpression.ROLEEXP_ATTACK1: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ATTACK1); break;
case RoleExpression.ROLEEXP_ATTACK2: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ATTACK2); break;
case RoleExpression.ROLEEXP_ATTACK3: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ATTACK3); break;
case RoleExpression.ROLEEXP_ATTACK4: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_ATTACK4); break;
case RoleExpression.ROLEEXP_DEFENCE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_DEFENCE); break;
case RoleExpression.ROLEEXP_FALL: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_FALL); break;
case RoleExpression.ROLEEXP_FALLONGROUND: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_FALLONGROUND); break;
case RoleExpression.ROLEEXP_LOOKAROUND: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_LOOKAROUND); break;
case RoleExpression.ROLEEXP_DANCE: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_DANCE); break;
case RoleExpression.ROLEEXP_FASHIONWEAPON: szIconFile = res_IconFile((int)IconResourceType.RES_ICON_CMD_EXP_FASHIONWEAPON); break;
default:
break;
}
break;
}
default:
return "";
}
return szIconFile;
}
// Get item cool time
int GetCoolTime(ref int piMax/* NULL */)
{
@@ -921,15 +1071,15 @@ namespace BrewMonster
break;
case CommandID.CMD_BINDBUDDY:
{
// CECCounter& cnt = pHost->GetBindCmdCoolCnt();
// iTime = cnt.GetPeriod() - cnt.GetCounter();
//
// if (piMax)
// *piMax = cnt.GetPeriod();
{
// CECCounter& cnt = pHost.GetBindCmdCoolCnt();
// iTime = cnt.GetPeriod() - cnt.GetCounter();
//
// if (piMax)
// *piMax = cnt.GetPeriod();
break;
}
break;
}
default:
// if (piMax) *piMax = 0;
@@ -940,37 +1090,37 @@ namespace BrewMonster
}
}
/* public class CECSCSkill : CECShortcut
{
private CECSkill m_pSkill;
public override ShortcutType GetType() => ShortcutType.SCT_SKILL;
public override CECShortcut Clone() => null;
public bool Init(CECSkill pSkill) { m_pSkill = pSkill; return true; }
public CECSkill GetSkill() => m_pSkill;
public void SetSkill(CECSkill pSkill) { m_pSkill = pSkill; }
}
/* public class CECSCSkill : CECShortcut
{
private CECSkill m_pSkill;
public override ShortcutType GetType() => ShortcutType.SCT_SKILL;
public override CECShortcut Clone() => null;
public bool Init(CECSkill pSkill) { m_pSkill = pSkill; return true; }
public CECSkill GetSkill() => m_pSkill;
public void SetSkill(CECSkill pSkill) { m_pSkill = pSkill; }
}
public class CECSCItem : CECShortcut
{
private int m_iInventory;
private int m_iIvtrSlot;
private int m_iItemTID;
private bool m_bAutoFind;
public class CECSCItem : CECShortcut
{
private int m_iInventory;
private int m_iIvtrSlot;
private int m_iItemTID;
private bool m_bAutoFind;
public override ShortcutType GetType() => ShortcutType.SCT_ITEM;
public override CECShortcut Clone() => null;
public bool Init(int iIvtr, int iSlot, CECIvtrItem pItem)
{
m_iInventory = iIvtr;
m_iIvtrSlot = iSlot;
return true;
}
public int GetInventory() => m_iInventory;
public int GetIvtrSlot() => m_iIvtrSlot;
public int GetItemTID() => m_iItemTID;
public bool GetAutoFindFlag() => m_bAutoFind;
public void MoveItem(int iIvtr, int iSlot) { m_iInventory = iIvtr; m_iIvtrSlot = iSlot; }
}*/
public override ShortcutType GetType() => ShortcutType.SCT_ITEM;
public override CECShortcut Clone() => null;
public bool Init(int iIvtr, int iSlot, CECIvtrItem pItem)
{
m_iInventory = iIvtr;
m_iIvtrSlot = iSlot;
return true;
}
public int GetInventory() => m_iInventory;
public int GetIvtrSlot() => m_iIvtrSlot;
public int GetItemTID() => m_iItemTID;
public bool GetAutoFindFlag() => m_bAutoFind;
public void MoveItem(int iIvtr, int iSlot) { m_iInventory = iIvtr; m_iIvtrSlot = iSlot; }
}*/
/* public class CECSCSkillGrp : CECShortcut
{
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 11093b8e0b61f8e46a8847e31fe74326
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,72 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.UI;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using static UnityEditor.AddressableAssets.Build.Layout.BuildLayout;
namespace BrewMonster
{
public class CDlgSkillSubAction : MonoBehaviour
{
[SerializeField] List<ActionInfo> m_aActionInfo = new List<ActionInfo>();
private void OnEnable()
{
OnShowDialog();
}
public void OnShowDialog()
{
AUIImagePicture pImage;
TextMeshProUGUI pLabel;
CECShortcut pSCThis;
string strFile = "";
var gameUIMan = CECUIManager.Instance.GetInGameUIMan();
CECGameRun pGameRun = CECGameRun.Instance;
int[] objCount = { 9, 3, 3, 30 };
CECShortcutSet[] a_pSC =
{
pGameRun.GetGenCmdShortcuts(),
pGameRun.GetTeamCmdShortcuts(),
pGameRun.GetTradeCmdShortcuts(),
pGameRun.GetPoseCmdShortcuts()
};
int count = 0;
for (int i = 0; i < a_pSC.Length; i++)
{
for (int j = 0; j < objCount[i]; j++)
{
pImage = m_aActionInfo[count].image;
pLabel = m_aActionInfo[count].pLabel;
if (!pImage) break;
if (j < a_pSC[i].GetShortcutNum())
{
pSCThis = a_pSC[i].GetShortcut(j);
pImage.SetDataPtr(pSCThis, "ptr_CECShortcut");
strFile = pSCThis.GetIconFile();
gameUIMan.SetCover(pImage, strFile, EC_GAMEUI_ICONS.ICONS_ACTION);
pLabel.SetText(pSCThis.GetDesc());
}
else
{
/* pImage->Show(false);
pLabel->Show(false);*/
}
count++;
}
}
}
[Serializable]
public struct ActionInfo
{
public AUIImagePicture image;
public TextMeshProUGUI pLabel;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1eda03e6b4326e14b95d57bf324b96bb
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6d97873e24020e642b7c6f6b79ea8c2c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,15 @@
using BrewMonster.UI;
using UnityEngine;
namespace BrewMonster
{
public class CDlgTaskAction : AUIDialog
{
public void OnShowDialog()
{
uint param = GetData();
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a5f25e21a0550df41af0c2e57639635a
@@ -25,6 +25,7 @@ namespace BrewMonster.UI
private Dictionary<byte, (string, Sprite[])> m_IconMap;
private const string SKILL_ICONLIST_NAME = "iconlist_skill_multisprite";
private const string ACTION_ICONLIST_NAME = "iconlist_action_multisprite";
public static bool TALKPROC_IS_TERMINAL(uint id)
{
@@ -165,9 +166,9 @@ namespace BrewMonster.UI
m_pDlgTask = GetDialog(CECUIHelper.DlgTaskName).GetComponent<DlgTask>();
m_pDlgTask.Show(false);
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_SKILL] =("iconlist_skill_multisprite", Resources.LoadAll<Sprite>("iconlist_skill_multisprite"));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_SKILL] =(SKILL_ICONLIST_NAME, Resources.LoadAll<Sprite>(SKILL_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_ACTION] =(ACTION_ICONLIST_NAME, Resources.LoadAll<Sprite>(ACTION_ICONLIST_NAME));
}
public void SetCover(AUIImagePicture pImgPic, string nameImage, EC_GAMEUI_ICONS iCONS_SKILL)
{
pImgPic.SetImage(m_IconMap[(byte)iCONS_SKILL].Item2.FirstOrDefault(s => s.name == nameImage));
-7
View File
@@ -623,7 +623,6 @@ namespace BrewMonster
private void OnMsgComboSkillPrepare(ECMSG Msg)
{
BMLogger.LogError("OnMsgComboSkillPrepare");
cmd_combo_skill_prepare cmd = GPDataTypeHelper.FromBytes<cmd_combo_skill_prepare>((byte[])Msg.dwParam1);
uint skillID = (uint)cmd.skill_id;
@@ -1015,8 +1014,6 @@ namespace BrewMonster
m_pCurSkill = null;
}
Debug.Log("HOST_STOP_SKILL");
AP.AP_ActionEvent((int)AP_EVENT.AP_EVENT_STOPSKILL);
if (pSkillToMatch != null)
{
@@ -3671,9 +3668,6 @@ namespace BrewMonster
float fBorderLine = fWaterHeight - 2.0f;
if (vPos.y <= fBorderLine) break;
// ·þÎñÆ÷¶Ë½«Ë®ÃæÒÔÏÂ2Ã×ÒÔÉÏ´¦ÀíΪ run_speed£¨ÓÐÎÊÌ⣩
// µ«Î´Ê¹ÓüÓËÙ¼¼ÄÜʱ swim_speed СÓÚ run_speed£¬
// ¿ÉÒÔÔÚË®ÃæÒÔÏÂ2Ã×ÒÔÉÏ»ñÈ¡³¬¹ý swim_speed µÄËÙ¶È£¬Òò´Ë£¬´Ë´¦È¡Á½Õß½ÏСֵΪºÏÀí×ö·¨
fSpeedSev = Math.Min(m_ExtProps.mv.run_speed, fSpeedSev);
break;
}
@@ -3691,7 +3685,6 @@ namespace BrewMonster
// Return-town skill is very special, handle it separately
// 回城技能非常特殊,单独处理
Debug.Log($"ApplySkillShortcut: Checking skill {idSkill}, ID_RETURNTOWN_SKILL={ID_RETURNTOWN_SKILL}");
if (idSkill == ID_RETURNTOWN_SKILL)
{
Debug.Log($"ApplySkillShortcut: Skill 167 detected, calling ReturnToTargetTown");
+76 -10
View File
@@ -28,6 +28,7 @@ namespace BrewMonster
"程序联入/金币效果.gfx", // RES_GFX_ITEMFLASH,
"程序联入/鼠标悬浮.gfx", // RES_GFX_CURSORHOVER,
"程序联入/目标被选中.gfx", // RES_GFX_SELECTED,
"程序联入/目标被选中.gfx", // RES_GFX_SELECTED,
"程序联入/海底飘尘.gfx", // RES_GFX_FLOATING_DUST,
"程序联入/人物游动水圈.gfx", // RES_GFX_WATER_WAVE_STILL,
"程序联入/人物游动水波.gfx", // RES_GFX_WATER_WAVE_MOVE,
@@ -51,7 +52,73 @@ namespace BrewMonster
"人物/通用/其它/境界提升.gfx",
"策划联入/状态效果/斗气%d级.gfx",
};
public static string res_IconFile(int n)
{
return l_aIconFiles[n];
}
public static readonly string[] l_aIconFiles =
{
"打坐.dds",
"走跑转换.dds",
"普通攻击.dds",
"寻找目标.dds",
"协助攻击.dds",
"邀请加入.dds",
"脱离队伍.dds",
"踢出队伍.dds",
"寻找队伍.dds",
"交易命令.dds",
"摆摊卖.dds",
"摆摊买.dds",
"邀请加入.dds",
"飞行.dds",
"招手.dds", // RES_ICON_CMD_EXP_WAVE,
"点头.dds", // RES_ICON_CMD_EXP_NOD,
"摇头.dds", // RES_ICON_CMD_EXP_SHAKEHEAD,
"耸肩膀.dds", // RES_ICON_CMD_EXP_SHRUG,
"大笑.dds", // RES_ICON_CMD_EXP_LAUGH,
"生气.dds", // RES_ICON_CMD_EXP_ANGRY,
"晕倒.dds", // RES_ICON_CMD_EXP_STUN,
"沮丧.dds", // RES_ICON_CMD_EXP_DEPRESSED,
"飞吻.dds", // RES_ICON_CMD_EXP_KISSHAND,
"害羞.dds", // RES_ICON_CMD_EXP_SHY,
"抱拳.dds", // RES_ICON_CMD_EXP_SALUTE,
"坐下.dds", // RES_ICON_CMD_EXP_SITDOWN,
"冲锋.dds", // RES_ICON_CMD_EXP_ASSAULT,
"思考.dds", // RES_ICON_CMD_EXP_THINK,
"挑衅.dds", // RES_ICON_CMD_EXP_DEFIANCE,
"胜利.dds", // RES_ICON_CMD_EXP_VICTORY,
"伸懒腰.dds", // RES_ICON_CMD_EXP_GAPE
"亲吻.dds", // RES_ICON_CMD_EXP_KISS
"战斗.dds", // RES_ICON_CMD_EXP_FIGHT,
"攻击1.dds", // RES_ICON_CMD_EXP_ATTACK1,
"攻击2.dds", // RES_ICON_CMD_EXP_ATTACK2,
"攻击3.dds", // RES_ICON_CMD_EXP_ATTACK3,
"攻击4.dds", // RES_ICON_CMD_EXP_ATTACK4,
"防御.dds", // RES_ICON_CMD_EXP_DEFENCE,
"摔倒.dds", // RES_ICON_CMD_EXP_FALL,
"倒地.dds", // RES_ICON_CMD_EXP_FALLONGROUND,
"张望.dds", // RES_ICON_CMD_EXP_LOOKAROUND,
"舞蹈1.dds", // RES_ICON_CMD_EXP_DANCE,
"舞蹈2.dds", // RES_ICON_CMD_EXP_FASHIONWEAPON
"拾取.dds", // RES_ICON_CMD_PICKUP
"挖掘.dds", // RES_ICON_CMD_GATHER
"加速飞行.dds", // RES_ICON_CMD_RUSHFLY
"相依相偎的动作.dds", // RES_ICON_CMD_BINDBUDDY
"亲亲密密的动作.dds", // RES_ICON_CMD_TWOKISS
"跳跃的动作1.dds", // RES_ICON_CMD_JUMPTRICK,
"跳跃的动作2.dds", // RES_ICON_CMD_RUNTRICK,
};
public static string res_GFXFile(int n)
{
if (n < 0 || n >= l_aGFXFiles.Length)
@@ -78,7 +145,7 @@ namespace BrewMonster
NUM_RES_CURSOR,
}
// GFX resource
// GFX resource
enum GfxResourceType
{
RES_GFX_LEVELUP = 0,
@@ -113,11 +180,11 @@ namespace BrewMonster
NUM_RES_GFX,
};
// Sound resource
// Sound resource
// Texture resource
// Texture resource
// Shader resource
// Shader resource
enum ShaderResourceType
{
RES_SHD_HAIR = 0,
@@ -134,8 +201,7 @@ namespace BrewMonster
NUM_RES_SHADER, // 10
};
// Icon resource
// Icon resource
enum IconResourceType
{
RES_ICON_CMD_SITDOWN = 0,
@@ -201,7 +267,7 @@ namespace BrewMonster
NUM_RES_ICON,
};
// Model resource
// Model resource
enum ModelResourceType
{
RES_MOD_GOLD = 0,
@@ -266,7 +332,7 @@ namespace BrewMonster
NUM_RES_MODEL,
};
// model file for change shape 2
// model file for change shape 2
enum ResourceModelType
{
RES_MOD_CHANGESAHPE_NULL, // 0
@@ -290,7 +356,7 @@ namespace BrewMonster
RES_MOD_FORCHANGESAHPE_NUM,
};
// Some unicode string resources
// Some unicode string resources
enum UnicodeStringResourceType
{
RES_FONT_TITLE = 0,