52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using BrewMonster;
|
|
using CSNetwork.GPDataType;
|
|
using ModelRenderer.Scripts.GameData;
|
|
using System;
|
|
using Unity.VisualScripting;
|
|
using UnityEngine;
|
|
using static CECNPC;
|
|
|
|
public class CECMonster : CECNPC
|
|
{
|
|
MONSTER_ESSENCE m_pDBEssence;
|
|
|
|
public override void SetUpCECNPC(CECNPCMan pNPCMan)
|
|
{
|
|
base.SetUpCECNPC(pNPCMan);
|
|
m_iCID = (int)Class_ID.OCID_MONSTER;
|
|
m_pDBEssence = default;
|
|
}
|
|
public override bool Init(int tid, in info_npc info, ReadOnlySpan<byte> packet, int infoOffset)
|
|
{
|
|
base.Init(tid, info, packet, infoOffset);
|
|
BrewMonster.BMLogger.Log("HoangDev: MonsterInit");
|
|
var pDB = ElementDataManProvider.GetElementDataMan();
|
|
DATA_TYPE DataType = default;
|
|
m_pDBEssence = (MONSTER_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
|
m_fTouchRad = m_pDBEssence.size;
|
|
m_BasicProps.iLevel = m_pDBEssence.level;
|
|
|
|
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 & (int)PlayerNPCState.GP_STATE_NPC_NAME) == 0)
|
|
{
|
|
m_strName = m_pDBEssence.name.ToString();
|
|
/* if (m_pPateName)
|
|
m_pPateName->SetText(m_strName, false);*/
|
|
}
|
|
|
|
if ((m_pDBEssence.combined_switch & (uint)MONSTER_COMBINED_SWITCH. MCS_FORBID_SELECTION) != 0)
|
|
SetSelectable(false);
|
|
|
|
transform.position = EC_Utility.ToVector3(info.pos);
|
|
|
|
StartWork((int)WorkType.WT_NOTHING, (int)WorkID.WORK_STAND);
|
|
return true;
|
|
}
|
|
}
|