fix: update logic pet.

This commit is contained in:
Tungdv
2026-01-31 19:23:50 +07:00
parent 8b4fb251de
commit ef894f6e49
15 changed files with 1099 additions and 11 deletions
@@ -40,6 +40,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 604e1a73e4ffe2c4c9d911243e79bfcd
m_Address: Assets/Prefabs/Pet/PetPrefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 88e840e5dac12ed4383d994c7fadfef1
m_Address: "\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u62F3\u5957\u51FB\u4E2D"
m_ReadOnly: 0
@@ -558,7 +558,7 @@ public class CECNPCMan : IMsgHandler
}
if (bPet)
{
//pNPC = new CECPet(this);
pNPC = CECGameRun.Instance.GetPet();
}
else
{
@@ -570,7 +570,9 @@ public class CECNPCMan : IMsgHandler
case DATA_TYPE.DT_MONSTER_ESSENCE:
pNPC = CECGameRun.Instance.GetMonster();
break;
case DATA_TYPE.DT_PET_ESSENCE:/* pNPC = new CECPet(this);*/ break;
case DATA_TYPE.DT_PET_ESSENCE:
pNPC = CECGameRun.Instance.GetPet();
break;
default:
UnityEngine.Debug.Assert(false, "Invalid DATA_TYPE in CreateNPC");
return null;
@@ -92,6 +92,9 @@ namespace BrewMonster
bool m_bAboutToDie = false;
public bool m_bCandHangerOn = false;
public bool m_bPetInSanctuary = false; // true, the pet pet of the player is in sanctuary
//The ID of the currently summoned pet
int m_idCurPet = 0;
byte m_byPariahLvl = 0; // Pariah level
public MOVECONST m_MoveConst; // Const used when moving control
public Move_Mode m_MoveMode;
@@ -1627,6 +1630,40 @@ namespace BrewMonster
// if (pWing2) pWing2->Show(bShow);
//}
}
// Get current pet id
public int GetCurPetID() { return m_idCurPet; }
// Set current pet id
public void SetCurPetID(int id) { m_idCurPet = id; }
// Get player name color
public uint GetNameColor()
{
uint dwNameCol = NameColor.NAMECOL_MAUVE;
if (IsInBattle()) // Player is in battle
{
if (m_iBattleCamp == Player_camp_in_battle.GP_BATTLE_CAMP_INVADER)
dwNameCol = NameColor.NAMECOL_BC_RED;
else // (m_iBattleCamp == GP_BATTLE_CAMP_DEFENDER)
dwNameCol = NameColor.NAMECOL_BC_BLUE;
}
else if (IsPariah())
{
switch (m_byPariahLvl)
{
case 0: dwNameCol = NameColor.NAMECOL_RED0; break;
case 1: dwNameCol = NameColor.NAMECOL_RED1; break;
default: dwNameCol = NameColor.NAMECOL_RED2; break;
}
}
else if (IsInvader())
dwNameCol = NameColor.NAMECOL_PINK;
else if (m_pvp.bEnable)
dwNameCol = NameColor.NAMECOL_WHITE;
return dwNameCol;
}
}
public struct PlayActionEvent
+32 -6
View File
@@ -58,6 +58,14 @@ public class CECNPC : CECObject
public string ROLEBASICPROP => m_strName;*/
protected virtual void Awake()
{
m_DisappearCnt = new CECCounter();
m_IdleCnt = new CECCounter();
m_TransCnt = new CECCounter();
m_aWorks = new int[4];
}
public virtual void SetUpCECNPC(CECNPCMan pNPCMan)
{
base.SetUpCECObject();
@@ -572,7 +580,7 @@ public class CECNPC : CECObject
{
Destroy(gameObject);
}
float GetTransparentLimit()
public float GetTransparentLimit()
{
if ((m_dwStates & (uint)PlayerNPCState.GP_STATE_INVISIBLE) != 0)
{
@@ -940,10 +948,18 @@ public class CECNPC : CECObject
{
return;
}
var model = await NPCBuilder.Instance.GetModelByPath(AFile.NormalizePath(szModelFile.ToLower(), true));
if (model == null)
GameObject model = null;
try
{
model = await NPCBuilder.Instance.GetModelByPath(AFile.NormalizePath(szModelFile.ToLower(), true));
if (model == null)
{
model = GameObject.CreatePrimitive(PrimitiveType.Capsule);
BMLogger.LogWarning($" CECNPC.QueueLoadNPCModel model == null szModelFile= {szModelFile} ");
}
}
catch
{
model = GameObject.CreatePrimitive(PrimitiveType.Capsule);
BMLogger.LogWarning($" CECNPC.QueueLoadNPCModel model == null szModelFile= {szModelFile} ");
}
@@ -1155,7 +1171,7 @@ public class CECNPC : CECObject
{
return m_pNPCModelPolicy.GetCHAABB(ref aabb);
}
void SetPos(Vector3 pos)
public void SetPos(Vector3 pos)
{
if (-2041570812 == m_NPCInfo.nid)
{
@@ -1517,7 +1533,14 @@ public class CECNPC : CECObject
}
m_pNPCModelPolicy.PlayModelAction(iAction, bRestart, null);
}
bool IsDisappearing() { return m_DisappearCnt.GetCounter() != 0 ? true : false; }
bool IsDisappearing()
{
if(m_DisappearCnt != null)
{
return m_DisappearCnt.GetCounter() != 0 ? true : false;
}
return false;
}
public float GetTouchRadius() { return m_fTouchRad; }
@@ -1574,6 +1597,9 @@ public class CECNPC : CECObject
// Get distance to host player
public float GetDistToHost() { return m_fDistToHost; }
public float GetDistToHostH() { return m_fDistToHostH; }
// Get NPC name color
public virtual uint GetNameColor() { return 0xffffff00; }
}
public struct ClearComActFlagEvent
{
@@ -1,4 +1,5 @@
using BrewMonster;
using CSNetwork.GPDataType;
using CSNetwork.Protocols;
using UnityEngine;
@@ -200,4 +201,8 @@ public class CECNPCModelDefaultPolicy
_npcVisual = npcVisual;
}
public override void SetDefaultPickAABBExt(A3DVECTOR3 vExt)
{
}
}
@@ -15,5 +15,6 @@ namespace BrewMonster
public abstract bool PlayAttackAction(int nAttackSpeed, CECAttackEvent attackevent);
public abstract bool GetCHAABB(ref A3DAABB ab);
public abstract void StopChannelAction();
public abstract void SetDefaultPickAABBExt(CSNetwork.GPDataType.A3DVECTOR3 vExt);
}
}
+260
View File
@@ -0,0 +1,260 @@
using BrewMonster.Network;
using BrewMonster.Scripts.World;
using CSNetwork.GPDataType;
using PerfectWorld.Scripts.Managers.BrewMonster.Managers;
using System;
using System.Linq;
using UnityEngine;
namespace BrewMonster
{
public class CECPet : CECNPC
{
// Data in database
PET_ESSENCE? m_pDBEssence;
string m_strCompName; // Complete name with master's name
public CECPet(CECNPCMan pNPCMan)
{
m_iCID = (int)Class_ID.OCID_PET;
m_pDBEssence = null;
m_fTouchRad = 1.0f;
}
// Initlaize object
public override bool Init(int tid, in info_npc Info, ReadOnlySpan<byte> packet, int infoOffset)
{
if (!base.Init(tid, Info, packet, infoOffset))
return false;
// Get database data
var pDB = ElementDataManProvider.GetElementDataMan();
DATA_TYPE DataType = new DATA_TYPE();
object pDBData = pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
if (pDBData == null)
{
return false;
}
byte[] szModelFile = null;
if (DataType == DATA_TYPE.DT_MONSTER_ESSENCE)
{
MONSTER_ESSENCE pMonsterData = (MONSTER_ESSENCE)pDBData;
szModelFile = pMonsterData.file_model;
object pObEggData = pDB.get_data_ptr(pMonsterData.id_pet_egg_captured, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
if (pObEggData == null)
{
return false;
}
var pEggData = (PET_EGG_ESSENCE)pObEggData;
m_pDBEssence = (PET_ESSENCE)pDB.get_data_ptr((uint)pEggData.id_pet, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
m_NPCInfo.tid = pEggData.id_pet;
}
else
{
m_pDBEssence = (PET_ESSENCE)pDBData;
szModelFile = m_pDBEssence.Value.file_model;
}
if (m_pDBEssence == null)
{
return false;
}
SetUseGroundNormal(m_pDBEssence.Value.stand_mode == 0 ? true : false);
m_fTouchRad = m_pDBEssence.Value.size;
m_BasicProps.iLevel = 1;
// Submit EC model loading request to loading thread
QueueLoadNPCModel();
float fExt = m_fTouchRad * 1.5f;
m_cdr.vExts.Set(fExt, fExt, fExt);
m_pNPCModelPolicy.SetDefaultPickAABBExt(m_cdr.vExts);
// If NPC doesn't have specific name, use the name in database
if ((Info.state & PlayerNPCState.GP_STATE_NPC_NAME) == 0)
{
m_strName = new string(m_pDBEssence.Value.name
.TakeWhile(c => c != 0)
.Select(c => (char)c)
.ToArray()
);
EC_Game.GetGameRun().GetUIManager().FilterBadWords(ref m_strName);
// Try to build complete name
BuildCompleteName();
}
if ((Info.state & PlayerNPCState.GP_STATE_NPC_PET) != 0)
{
if (!IsPlantPet())
{
// 非植物宠时,能够从宠物面板和玩家面板中相互追踪
CECPlayer pPlayer = EC_Game.GetGameRun().GetWorld().GetPlayerMan().GetPlayer(m_idMaster);
if (pPlayer)
{
pPlayer.SetCurPetID(Info.nid);
}
}
}
if ((m_pDBEssence.Value.combined_switch & (uint)PET_COMBINED_SWITCH.PCS_FORBID_SELECTION) != 0)
{
SetSelectable(false);
}
A3DVECTOR3 vPos = Info.pos;
SetPos(EC_Utility.ToVector3(vPos));
SetDirAndUp(EC_Utility.ToVector3(EC_Utility.glb_DecompressDirH(Info.dir)), g_vAxisY);
StartWork((int)WorkType.WT_NOTHING, (int)WorkID.WORK_STAND);
return true;
}
// Tick routine
protected override void Update()
{
base.Update();
if (m_strCompName != null && m_strCompName.Length == 0)
{
// Try to build complete name
BuildCompleteName();
}
}
// Get NPC name color
public virtual uint GetNameColor()
{
EC_ManPlayer pPlayerMan = EC_Game.GetGameRun().GetWorld().GetPlayerMan();
CECPlayer pPlayer = pPlayerMan.GetPlayer(m_idMaster);
if (!pPlayer)
return base.GetNameColor();
return pPlayer.GetNameColor();
}
public virtual bool IsImmuneDisable()
{
if(m_pDBEssence == null)
{
return false;
}
if ((m_pDBEssence.Value.combined_switch & (uint)PET_COMBINED_SWITCH.PCS_HIDE_IMMUNE) != 0)
return true;
return false;
}
public virtual float GetTransparentLimit()
{
if (m_pDBEssence != null)
{
if ((m_pDBEssence.Value.combined_switch & (uint)PET_COMBINED_SWITCH.PCS_FORBID_SELECTION) != 0)
{
return -1.0f;
}
}
return base.GetTransparentLimit();
}
public virtual bool ShouldHideName()
{
if (m_pDBEssence == null) { return false; }
return (m_pDBEssence.Value.combined_switch & (uint)PET_COMBINED_SWITCH.PCS_HIDE_NAME) != 0;
}
// Is this host player's pet
public bool IsHostPet()
{
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
return GetMasterID() == pHost.GetCharacterID();
}
// Is this pet attackable;
public bool CanBeAttacked()
{
return IsCombatPet()
|| IsSummonPet()
|| IsPlantPet()
|| IsEvolutionPet();
}
// Is a follow pet ?
public bool IsFollowPet()
{
if (m_pDBEssence != null)
return m_pDBEssence.Value.id_type == 8783;
return false;
}
// Is a combat pet ?
public bool IsCombatPet()
{
if (m_pDBEssence != null)
return m_pDBEssence.Value.id_type == 8782;
return false;
}
// 是否为召唤宠
public bool IsSummonPet()
{
if(m_pDBEssence == null) return false;
return m_pDBEssence.Value.id_type == 28752;
}
// 是否为植物宠
public bool IsPlantPet()
{
if (m_pDBEssence == null) return false;
return m_pDBEssence.Value.id_type == 28913;
}
// 是否是进化宠
public bool IsEvolutionPet()
{
if (m_pDBEssence == null) return false;
return m_pDBEssence.Value.id_type == 37698;
}
public PET_ESSENCE? GetDBEssence() { return m_pDBEssence; }
// Build complete name
public void BuildCompleteName()
{
//if (!m_npcUI) return;
//var szMasterName = EC_Game.GetGameRun().GetPlayerName(m_idMaster, false);
//if (!szMasterName) return;
//string strMasterName = szMasterName;
//CECWorld pWorld = EC_Game.GetGameRun().GetWorld();
//if (pWorld.IsCountryWarMap() &&
// !CECUIConfig::Instance().GetGameUI().bShowNameInCountryWar)
//{
// // 国战场景中,不直接显示宠物主人名称时,要求查询到此主人信息
// // 此改动(if语句中的内容)将导致主人未出现时无法看到宠物名称
// // if 括号中的判断是必要的,将增加看到宠物名称的机会
// EC_ManPlayer pPlayerMan = pWorld.GetPlayerMan();
// CECPlayer pPlayer = pPlayerMan.GetPlayer(m_idMaster);
// if (!pPlayer)
// {
// // 还没看到此玩家,无法判断其国家,还不能确定如何显示
// return;
// }
// if (pPlayer.GetShowNameInCountryWar())
// strMasterName = pPlayer.GetNameInCountryWar();
//}
//m_strCompName.Format(g_pGame.GetFixedMsgTab().GetWideString(FIXMSG_WHOSETHING), strMasterName, m_strName);
//m_npcUI.SetName(m_strCompName);
}
public override void SetUpCECNPC(CECNPCMan pNPCMan)
{
base.SetUpCECNPC(pNPCMan);
m_iCID = (int)Class_ID.OCID_PET;
m_pDBEssence = null;
m_fTouchRad = 1.0f;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6af68acbb8354d04f9c00df83d3eec60
@@ -7,5 +7,6 @@ namespace BrewMonster
public static string MonsterPrefab = "Prefabs/Monster/MonsterPrefab";
public static string NpcServerPrefab = "Prefabs/NPC/NPCServer";
public static string TestVfxPrefab = "Prefabs/Vfx/TestVfx";
public static string PetServerPrefab = "Assets/Prefabs/Pet/PetPrefab";
}
}
@@ -88,5 +88,10 @@ namespace BrewMonster.Scripts.World
{
return EC_ManMessageMono.Instance.CECNPCMan;
}
public EC_ManPlayer GetPlayerMan()
{
return EC_ManMessageMono.Instance.GetECManPlayer;
}
}
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4fe7da8fd51d3b84a83ab91ccaeeba22
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+712
View File
@@ -0,0 +1,712 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &428271674577762648
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6571891986767687373}
- component: {fileID: 4956473773495211034}
- component: {fileID: 1445689120324889233}
m_Layer: 5
m_Name: HealthUIBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6571891986767687373
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 428271674577762648}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.07}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6261067400668915663}
- {fileID: 8244162240748499527}
m_Father: {fileID: 1791287790076630285}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0, y: 1.51}
m_SizeDelta: {x: 1, y: 0.2}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4956473773495211034
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 428271674577762648}
m_CullTransparentMesh: 1
--- !u!114 &1445689120324889233
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 428271674577762648}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &771811879155673718
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8244162240748499527}
- component: {fileID: 6681838547394292410}
- component: {fileID: 8939523771274757837}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8244162240748499527
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 771811879155673718}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6571891986767687373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6681838547394292410
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 771811879155673718}
m_CullTransparentMesh: 1
--- !u!114 &8939523771274757837
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 771811879155673718}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 100
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 0.15
m_fontSizeBase: 0.15
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0.053617537, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1043716454621571946
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2818130551907084697}
- component: {fileID: 1776217013714687322}
- component: {fileID: 4730194793060944177}
- component: {fileID: 7880925295973151225}
- component: {fileID: 4017591853686837057}
m_Layer: 0
m_Name: PetPrefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2818130551907084697
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043716454621571946}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7933090353384311527}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1776217013714687322
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043716454621571946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8c7b669b45068cf469ae3116991b9026, type: 3}
m_Name:
m_EditorClassIdentifier:
namedAnimancer: {fileID: 0}
animName1:
--- !u!143 &4730194793060944177
CharacterController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043716454621571946}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 2
m_Radius: 0
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08
m_MinMoveDistance: 0.00001
m_Center: {x: 0, y: 1, z: 0}
--- !u!136 &7880925295973151225
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043716454621571946}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.8
m_Height: 1
m_Direction: 1
m_Center: {x: 0, y: 1, z: 0}
--- !u!114 &4017591853686837057
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1043716454621571946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6af68acbb8354d04f9c00df83d3eec60, type: 3}
m_Name:
m_EditorClassIdentifier:
m_NPCInfo:
nid: 0
tid: 0
vis_tid: 0
m_iMMIndex: 0
m_idAttackTarget: 0
m_fMoveSpeed: 0
_characterController: {fileID: 4730194793060944177}
isDebug: 0
npcVisual: {fileID: 0}
--- !u!1 &1164597358858788668
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1791287790076630285}
- component: {fileID: 8766426097291915552}
- component: {fileID: 82791983180407946}
- component: {fileID: 500640355185755471}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1791287790076630285
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1164597358858788668}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 354124022967291075}
- {fileID: 6571891986767687373}
m_Father: {fileID: 7933090353384311527}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &8766426097291915552
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1164597358858788668}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &82791983180407946
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1164597358858788668}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &500640355185755471
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1164597358858788668}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &1410298629239166573
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 354124022967291075}
- component: {fileID: 3741975505824752843}
- component: {fileID: 6491069708694599127}
m_Layer: 5
m_Name: Text (TMP)_Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &354124022967291075
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1410298629239166573}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.07000001}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1791287790076630285}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.0000000060535967, y: 1.9189999}
m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3741975505824752843
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1410298629239166573}
m_CullTransparentMesh: 1
--- !u!114 &6491069708694599127
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1410298629239166573}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Hoang
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: 13f71bf0225d0c0439db9931000d75d0, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 0.25
m_fontSizeBase: 0.25
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6209053004261175930
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7933090353384311527}
- component: {fileID: 2684574450150702093}
- component: {fileID: 8928742731626340957}
m_Layer: 0
m_Name: UIPlayer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7933090353384311527
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6209053004261175930}
serializedVersion: 2
m_LocalRotation: {x: 0.026024496, y: 0.5726356, z: -0.0181917, w: 0.8191949}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1791287790076630285}
m_Father: {fileID: 2818130551907084697}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2684574450150702093
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6209053004261175930}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8bc4ae2a8436a6947aa8792f90495a91, type: 3}
m_Name:
m_EditorClassIdentifier:
_nameText: {fileID: 6491069708694599127}
_healthText: {fileID: 8939523771274757837}
_healthImage: {fileID: 3651088183696393374}
--- !u!114 &8928742731626340957
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6209053004261175930}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1a05efb08a5fbef42b3e8414040b6c33, type: 3}
m_Name:
m_EditorClassIdentifier:
targetCamera: {fileID: 0}
mode: 0
--- !u!1 &7756013153683760564
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6261067400668915663}
- component: {fileID: 2872923215691076475}
- component: {fileID: 3651088183696393374}
m_Layer: 5
m_Name: HealthUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6261067400668915663
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756013153683760564}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6571891986767687373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1, y: 0.2}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2872923215691076475
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756013153683760564}
m_CullTransparentMesh: 1
--- !u!114 &3651088183696393374
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756013153683760564}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -637874507, guid: 9ef86922851818c4e9e58040f51c491f, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 604e1a73e4ffe2c4c9d911243e79bfcd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+18 -1
View File
@@ -20,6 +20,7 @@ public partial class CECGameRun
private GameObject _playerPrefab;
private GameObject _monsterPrefab;//CECMonster
private GameObject _npcServerPrefab;//CECNPCServer
private GameObject _petServerPrefab;//CECNPCServer
// CECTeamMan* m_pTeamMan; // Team manager
private CECShortcutSet m_pNormalSCS; // Normal shortcut set
@@ -35,7 +36,14 @@ public partial class CECGameRun
protected CECUIManager m_pUIManager; // UI manager
public CECWorld GetWorld() { return m_pWorld; }
public CECWorld GetWorld()
{
if(m_pWorld == null)
{
m_pWorld = CECWorld.Instance;
}
return m_pWorld;
}
// Get shortcut sets
public CECShortcutSet GetGenCmdShortcuts() { return m_pNormalSCS; }
public CECShortcutSet GetTeamCmdShortcuts() { return m_pTeamSCS; }
@@ -76,6 +84,7 @@ public partial class CECGameRun
if (!m_InstTab.ContainsKey(161))
m_InstTab.Add(161, new CECInstance());
AddressableManager.Instance.OnDispose += Dispose;
m_pWorld = CECWorld.Instance;
StartGame(0, Vector3.zero);
}
@@ -85,6 +94,7 @@ public partial class CECGameRun
AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.PlayerPrefab);
AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.MonsterPrefab);
AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.NpcServerPrefab);
AddressableManager.Instance.ReleaseAsset(AddressResourceConfig.PetServerPrefab);
}
private async void LoadPrefabs()
@@ -92,6 +102,7 @@ public partial class CECGameRun
_playerPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.PlayerPrefab);
_monsterPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.MonsterPrefab);
_npcServerPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.NpcServerPrefab);
_petServerPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.PetServerPrefab);
}
private bool init;
@@ -511,4 +522,10 @@ public partial class CECGameRun
}
return szRet;
}
public CECPet GetPet()
{
return ObjectSpawner.Instance.InstantiateObject(_petServerPrefab, setThisAsParent: true)
.GetComponent<CECPet>();
}
}
+2 -2
View File
@@ -421,7 +421,7 @@ namespace BrewMonster
//m_dwMoveRelDir = 0;
m_fVertSpeed = 0.0f;
UpdateTimers(Time.deltaTime);
//UpdateTimers(Time.deltaTime);
// Auto team / Automatic party grouping
// m_pAutoTeam.Tick(Time.deltaTime);
}
@@ -6316,7 +6316,7 @@ namespace BrewMonster
if (m_IncantCnt.IncCounter(dwDeltaTime))
m_IncantCnt.Reset(true);
m_PetOptCnt.IncCounter(dwDeltaTime);
m_PetOptCnt.IncCounter(iRealTime);
// Bind command cool counter
/* if (m_BindCmdCoolCnt.IncCounter(dwDeltaTime))
m_BindCmdCoolCnt.Reset(true);