add gfx resource and vfx object base

This commit is contained in:
NguyenVanDat
2025-11-07 17:35:52 +07:00
parent 4f49a8f342
commit df07b1661d
12 changed files with 940 additions and 4 deletions
@@ -183,7 +183,7 @@ public class CECObject : MonoBehaviour
);*/
SetDestDirAndUp(vDir, g_vAxisY, timeturn);
}
private void Update()
protected virtual void Update()
{
if (m_bAdjustOrient)
AdjustOrientation(Time.deltaTime);
@@ -313,6 +313,11 @@ public abstract class CECPlayer : CECObject
return m_PlayerInfo;
}
protected override void Update()
{
base.Update();
}
public enum PLAYER_ACTION_TYPE
{
// 0
@@ -1,3 +1,7 @@
using BrewMonster.Scripts;
using CSNetwork.GPDataType;
using UnityEngine;
public class CECModel
{
private const uint COMACT_FLAG_MODE_NONE = 0;
@@ -38,6 +42,78 @@ public class CECModel
AnimationName = animationName;
}
}
public void PlayGfx(string szPath, string szHook, float fScale, bool bFadeOut, A3DVECTOR3 vOffset, float fPitch, float fYaw, float fRot, bool bUseECMHook, uint dwFadeOutTime)
{
if (!bFadeOut)
dwFadeOutTime = 0;
string strKey = szPath;
strKey += szHook;
// var vfxPrefab = AddressableManager.Instance.LoadPrefabAsync(szPath).Result;
var testVfx = GameController.Instance.GetTestVfx();
testVfx.name = "PlayGfx";
testVfx.transform.position = new Vector3(vOffset.x, vOffset.y, vOffset.z);
// PGFX_INFO pInfo;
//
// CoGfxMap::iterator it = m_CoGfxMap.find(strKey);
// if (bUseECMHook) {
// if (CECModelHook* pHook = GetECMHook(szHook))
// {
// fScale *= pHook->GetScaleFactor();
// }
// }
//
// if (it != m_CoGfxMap.end())
// {
// pInfo = it->second;
// A3DGFXEx* pGfx = pInfo->GetGfx();
// TransferEcmProperties(pGfx);
// pGfx->SetScale(fScale * m_fGfxScaleFactor);
// pInfo->SetFadeOutTime(dwFadeOutTime);
// pInfo->SetModelAlpha(true);
// pInfo->SetHookName(szHook);
// pInfo->SetUseECMHook(bUseECMHook);
// pInfo->SetScale(fScale);
// pInfo->SetOffset(vOffset);
// pInfo->SetPitch(fPitch);
// pInfo->SetYaw(fYaw);
// pInfo->SetRot(fRot);
// pInfo->BuildTranMat();
// pGfx->SetSfxPriority(m_nSfxPriority);
// pGfx->Start(true);
// return;
// }
//
// pInfo = new GFX_INFO(NULL);
// pInfo->SetFilePath(szPath);
// pInfo->SetHookName(szHook);
// pInfo->SetUseECMHook(bUseECMHook);
// pInfo->SetScale(fScale);
// pInfo->Init(m_pA3DDevice);
// pInfo->SetOffset(vOffset);
// pInfo->SetPitch(fPitch);
// pInfo->SetYaw(fYaw);
// pInfo->SetRot(fRot);
// pInfo->LoadGfx();
//
// if (!pInfo->GetGfx())
// {
// delete pInfo;
// return;
// }
//
// pInfo->BuildTranMat();
// pInfo->SetFadeOutTime(dwFadeOutTime);
// pInfo->SetModelAlpha(true);
// TransferEcmProperties(pInfo->GetGfx());
// pInfo->GetGfx()->SetScale(fScale * m_fGfxScaleFactor);
// pInfo->GetGfx()->SetSfxPriority(m_nSfxPriority);
// pInfo->GetGfx()->Start(true);
//
// m_CoGfxMap[strKey] = pInfo;
}
}
// Action channel
public enum ActionChannel
+3 -1
View File
@@ -412,8 +412,10 @@ public class CECNPC : CECObject
TurnFaceTo(idTarget, dwTime);
}
private void Update()
protected override void Update()
{
base.Update();
switch (m_iCurWork)
{
case (int)WorkID.WORK_MOVE: TickWork_Move(Time.deltaTime); break;
@@ -360,8 +360,9 @@ namespace PerfectWorld.Scripts.Player
}
}
private void Update()
protected override void Update()
{
base.Update();
MovingTo(Time.deltaTime);
if (pHost != null /*&& pHost.IsSkeletonReady()*/)
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1386eda4285a2e64c8cc2846ae0a0298
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,232 @@
using BrewMonster.Scripts;
using UnityEngine;
namespace BrewMonster.PerfectWorld.Scripts.Vfx
{
public class BaseVfxObject : MonoBehaviour
{
[SerializeField] private ParticleSystem _vfx;
[SerializeField] private string _vfxPath;
private Vector3 _originalScale = Vector3.one;
private Vector3 _offset = Vector3.zero;
private void Awake()
{
if (_vfx == null)
{
_vfx = GetComponent<ParticleSystem>();
}
if (_vfx != null)
{
_originalScale = _vfx.transform.localScale;
}
}
private void OnDestroy()
{
if(!string.IsNullOrEmpty(_vfxPath))
{
AddressableManager.Instance.UnloadAsset(_vfxPath);
}
}
public void Init(string vfxPath)
{
_vfxPath = vfxPath;
}
/// <summary>
/// Set VFX scale
/// </summary>
public void SetScale(float scale)
{
SetScale(new Vector3(scale, scale, scale));
}
/// <summary>
/// Set VFX scale with vector
/// </summary>
public void SetScale(Vector3 scale)
{
if (_vfx != null)
{
_vfx.transform.localScale = Vector3.Scale(_originalScale, scale);
// 调整粒子大小 / Adjust particle size
var main = _vfx.main;
main.startSizeMultiplier *= scale.magnitude / Mathf.Sqrt(3);
}
}
/// <summary>
/// Set VFX offset
/// </summary>
public void SetOffset(Vector3 offset)
{
_offset = offset;
if (_vfx != null)
{
_vfx.transform.localPosition = offset;
}
}
/// <summary>
/// Set VFX world position
/// </summary>
public void SetPosition(Vector3 position)
{
if (_vfx != null)
{
_vfx.transform.position = position;
}
}
/// <summary>
/// Set VFX rotation
/// </summary>
public void SetRotation(Quaternion rotation)
{
if (_vfx != null)
{
_vfx.transform.rotation = rotation;
}
}
/// <summary>
/// Set VFX rotation with euler angles
/// </summary>
public void SetRotation(Vector3 eulerAngles)
{
SetRotation(Quaternion.Euler(eulerAngles));
}
/// <summary>
/// Set VFX color
/// </summary>
public void SetColor(Color color)
{
if (_vfx != null)
{
var main = _vfx.main;
main.startColor = color;
}
}
/// <summary>
/// Set VFX duration
/// </summary>
public void SetDuration(float duration)
{
if (_vfx != null)
{
var main = _vfx.main;
main.duration = duration;
}
}
/// <summary>
/// Set VFX playback speed
/// </summary>
public void SetSpeed(float speed)
{
if (_vfx != null)
{
var main = _vfx.main;
main.simulationSpeed = speed;
}
}
/// <summary>
/// Play VFX
/// </summary>
public void Play()
{
if (_vfx != null)
{
_vfx.Play();
}
}
/// <summary>
/// Play VFX with children
/// </summary>
public void PlayWithChildren()
{
if (_vfx != null)
{
_vfx.Play(true);
}
}
/// <summary>
/// Stop VFX
/// </summary>
public void Stop()
{
if (_vfx != null)
{
_vfx.Stop();
}
}
/// <summary>
/// Pause VFX
/// </summary>
public void Pause()
{
if (_vfx != null)
{
_vfx.Pause();
}
}
/// <summary>
/// Clear all VFX particles
/// </summary>
public void Clear()
{
if (_vfx != null)
{
_vfx.Clear();
}
}
/// <summary>
/// 重新开始播放 / Restart VFX
/// </summary>
public void Restart()
{
if (_vfx != null)
{
_vfx.Stop();
_vfx.Clear();
_vfx.Play();
}
}
/// <summary>
/// 检查特效是否正在播放 / Check if VFX is playing
/// </summary>
public bool IsPlaying()
{
return _vfx != null && _vfx.isPlaying;
}
/// <summary>
/// 检查特效是否已结束 / Check if VFX is stopped
/// </summary>
public bool IsStopped()
{
return _vfx != null && _vfx.isStopped;
}
/// <summary>
/// 获取粒子系统 / Get ParticleSystem component
/// </summary>
public ParticleSystem GetParticleSystem()
{
return _vfx;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9dcde7b030da4a94a9b5c05323a411bf
+71 -1
View File
@@ -26,6 +26,7 @@ using UnityEngine.UI;
using static UnityEditor.PlayerSettings;
using Scene = UnityEngine.SceneManagement.Scene;
using BrewMonster.Scripts;
using BrewMonster.Scripts.World;
public partial class CECHostPlayer : CECPlayer
{
@@ -121,8 +122,9 @@ public partial class CECHostPlayer : CECPlayer
// btnJump.onClick.AddListener(HandleJump);
}
private void Update()
protected override void Update()
{
base.Update();
//Debug.Log($"(ulong)Time.deltaTime * 1000 {(ulong)(Time.deltaTime * 1000)}");
m_MoveCtrl.Tick((ulong)(Time.deltaTime * 1000));
// Nếu có thay đổi runtime, có thể lấy lại mỗi vài giây/Start nếu bạn thích:
@@ -190,6 +192,9 @@ public partial class CECHostPlayer : CECPlayer
}
}
m_pWorkMan?.Tick(Time.deltaTime);
// Update GFXs
UpdateGFXs(Time.deltaTime);
}
public void StopMovement()
@@ -1762,6 +1767,71 @@ public partial class CECHostPlayer : CECPlayer
// }
// return fSpeedSev;
//}
void UpdateGFXs(uint dwDeltaTime)
{
// if (m_pLevelUpGFX)
// m_pLevelUpGFX->SetParentTM(GetAbsoluteTM());
var pWorld = CECWorld.Instance;
// if (m_pHoverGFX)// && m_idCurHover != m_idSelTarget)
// {
// if (!IsChangingFace() && (ISPLAYERID(m_idCurHover) || ISNPCID(m_idCurHover)))
// {
// CECObject* pObject = pWorld->GetObject(m_idCurHover, 1);
// if (pObject)
// {
// if (m_pHoverGFX->GetState() == ST_STOP)
// m_pHoverGFX->Start();
//
// m_pHoverGFX->SetParentTM(pObject->GetAbsoluteTM());
// }
// else
// m_pHoverGFX->Stop();
// }
// else
// m_pHoverGFX->Stop();
// }
// if (m_pSelectedGFX)
// {
// if (!IsChangingFace() && (ISPLAYERID(m_idSelTarget) || ISNPCID(m_idSelTarget)))
// {
// CECObject* pObject = pWorld.GetObject(m_idSelTarget, 1);
// if (pObject)
// {
// if (m_pSelectedGFX->GetState() == ST_STOP)
// m_pSelectedGFX->Start();
//
// m_pSelectedGFX->SetParentTM(pObject->GetAbsoluteTM());
// }
// else
// m_pSelectedGFX->Stop();
// }
// else
// m_pSelectedGFX->Stop();
// }
// if (m_pFloatDust)
// {
// A3DTerrainWater* pWater = g_pGame->GetGameRun()->GetWorld()->GetTerrainWater();
//
// if (pWater->IsUnderWater(m_CameraCoord.GetPos()))
// {
// if (m_pFloatDust->GetState() == ST_STOP)
// {
// m_pFloatDust->Start(true);
// m_pFloatDust->TickAnimation(2000);
// }
//
// m_pFloatDust->SetParentTM(GetAbsoluteTM());
// }
// else if (m_pFloatDust->GetState() != ST_STOP)
// m_pFloatDust->Stop();
// }
// UpdateMonsterSpiritGfx(dwDeltaTime);
}
}
public enum StateAnim
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4ae2a189a9875cc42933bdde5dfa273e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+530
View File
@@ -0,0 +1,530 @@
using UnityEngine;
namespace BrewMonster
{
public class EC_Resource
{
// Cursor resource
static readonly string[] l_aCurFiles =
{
"cursors/normal.ani",
"cursors/attack.cur",
"cursors/talk.cur",
"cursors/pick.cur",
"cursors/repair.cur",
"cursors/hand.cur",
"cursors/flag.cur",
"cursors/dig.ani",
"cursors/gourd.cur",
};
// GFX resource
static readonly string[] l_aGFXFiles = // use where?
{
"鲁脤脨貌脕陋脠毛/陆脟脡芦脡媒录露脠脣脌脿.gfx", // RES_GFX_LEVELUP,
"鲁脤脨貌脕陋脠毛/陆脟脡芦鲁枚脧脰脠脣脌脿.gfx", // RES_GFX_PLAYERAPPEAR,
"卤禄禄梅脰脨/卤禄禄梅脰脨脨搂鹿没.gfx", // RES_GFX_HIT,
"鲁脤脨貌脕陋脠毛/脰赂脧貌卤锚.gfx", // RES_GFX_MOVETARGET,
"鲁脤脨貌脕陋脠毛/陆冒卤脪脨搂鹿没.gfx", // RES_GFX_ITEMFLASH,
"鲁脤脨貌脕陋脠毛/脢贸卤锚脨眉赂隆.gfx", // RES_GFX_CURSORHOVER,
"鲁脤脨貌脕陋脠毛/脛驴卤锚卤禄脩隆脰脨.gfx", // RES_GFX_SELECTED,
"鲁脤脨貌脕陋脠毛/潞拢碌脳脝庐鲁戮.gfx", // RES_GFX_FLOATING_DUST,
"鲁脤脨貌脕陋脠毛/脠脣脦茂脫脦露炉脣庐脠娄.gfx", // RES_GFX_WATER_WAVE_STILL,
"鲁脤脨貌脕陋脠毛/脠脣脦茂脫脦露炉脣庐虏篓.gfx", // RES_GFX_WATER_WAVE_MOVE,
"鲁脤脨貌脕陋脠毛/脣庐脰脨潞么脦眉脝酶脜脻.gfx", // RES_GFX_AIR_BUBBLE,
"鲁脤脨貌脕陋脠毛/脣庐脰脨脫脦露炉脝酶脜脻.gfx", // RES_GFX_SWIM_BUBBLE,
"鲁脤脨貌脕陋脠毛/掳脳禄垄卤盲.gfx", // RES_GFX_TRANSFORM_TIGER,
"鲁脤脨貌脕陋脠毛/禄冒潞眉卤盲.gfx", // RES_GFX_TRANSFORM_FOX,
"鲁脤脨貌脕陋脠毛/录脫脩陋.gfx", // RES_GFX_RED_MEDICINE,
"鲁脤脨貌脕陋脠毛/录脫脛搂.gfx", // RES_GFX_BLUE_MEDICINE,
"鲁脤脨貌脕陋脠毛/录脫脩陋录脫脛搂.gfx", // RES_GFX_PURPLE_MEDICINE,
"鲁脤脨貌脕陋脠毛/陆芒露戮.gfx", // RES_GFX_JIEDU_MEDICINE,
"鲁脤脨貌脕陋脠毛/脦茂路脌路没脢脥路脜.gfx", // RES_GFX_PHYSIC_ARMORRUNE,
"鲁脤脨貌脕陋脠毛/路篓路脌路没脢脥路脜.gfx", // RES_GFX_MAGIC_ARMORRUNE,
"鲁脤脨貌脕陋脠毛/戮枚露路脳麓脤卢.gfx", // RES_GFX_INDUEL,
"鲁脤脨貌脕陋脠毛/驴脴脰脝脥露脢炉鲁碌潞矛.gfx", // RES_GFX_TANKLEADER_RED,
"鲁脤脨貌脕陋脠毛/驴脴脰脝脥露脢炉鲁碌脌露.gfx", // RES_GFX_TANKLEADER_BLUE,
"鹿脰脦茂/鲁猫脦茂脥篓脫脙/戮芦脕茅脡媒录露.gfx",// RES_GFX_GOBLIN_LEVELUP,
"鲁脤脨貌脕陋脠毛/陆脟脡芦脡媒录露脠脣脌脿.gfx", // RES_GFX_INVISIBLE_DETECTED
"虏脽禄庐脕陋脠毛/脳麓脤卢脨搂鹿没/潞脷脡芦脕卢脧脽.gfx", // RES_GFX_MONSTER_SPIRIT_LINE
"鲁脤脨貌脕陋脠毛/鹿芒脟貌脤脴脨搂_脳脫脨搂鹿没01.gfx", // RES_GFX_MONSTER_SPIRIT_BALL
"脠脣脦茂/脥篓脫脙/脝盲脣眉/戮鲁陆莽脤谩脡媒.gfx",
"虏脽禄庐脕陋脠毛/脳麓脤卢脨搂鹿没/露路脝酶%d录露.gfx",
};
// Shader resource
static readonly string[] l_aShaderFiles =
{
"hair.sdr", // 0
"goatee.sdr",
"face.sdr",
"eye.sdr",
"brow.sdr",
"mouth.sdr", // 5
"nose.sdr",
"eyeball.sdr",
"moustache.sdr",
"body.sdr"
};
// Icon files
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,
};
// Model files
static readonly string[] l_aModelFiles =
{
"models/matters/脦茂脝路/陆冒卤脪/陆冒卤脪.ecm",
"models/matters/脦茂脝路/脭陋戮搂/脭陋戮搂.ecm",
// 脠脣脌脿
"models/players/脨脦脧贸/脦盲脧脌脛脨/脟没赂脡/脦盲脧脌脛脨.ecm",
"models/players/脨脦脧贸/脦盲脧脌脜庐/脟没赂脡/脦盲脧脌脜庐.ecm",
"models/players/脨脦脧贸/路篓脢娄脛脨/脟没赂脡/路篓脢娄脛脨.ecm",
"models/players/脨脦脧贸/路篓脢娄脜庐/脟没赂脡/路篓脢娄脜庐.ecm",
// 脧芦脳氓 脦脳脢娄
"models/players/脨脦脧贸/脦脳脢娄脛脨/脟没赂脡/脦脳脢娄脛脨.ecm",
"models/players/脨脦脧贸/脦脳脢娄脜庐/脟没赂脡/脦脳脢娄脜庐.ecm",
// 脩媒脳氓
"",
"models/players/脨脦脧贸/脩媒戮芦/脟没赂脡/脩媒戮芦.ecm",
"models/players/脨脦脧贸/脩媒脢脼脛脨/脟没赂脡/脩媒脢脼脛脨.ecm",
"",
// 脧芦脳氓 麓脤驴脥
"models/players/脨脦脧贸/麓脤驴脥脛脨/脟没赂脡/麓脤驴脥脛脨.ecm",
"models/players/脨脦脧贸/麓脤驴脥脜庐/脟没赂脡/麓脤驴脥脜庐.ecm",
// 脫冒脳氓
"models/players/脨脦脧贸/脫冒脙垄脛脨/脟没赂脡/脫冒脙垄脛脨.ecm",
"models/players/脨脦脧贸/脫冒脙垄脜庐/脟没赂脡/脫冒脙垄脜庐.ecm",
"models/players/脨脦脧贸/脫冒脕茅脛脨/脟没赂脡/脫冒脕茅脛脨.ecm",
"models/players/脨脦脧贸/脫冒脕茅脜庐/脟没赂脡/脫冒脕茅脜庐.ecm",
// 脕茅脳氓
"models/players/脨脦脧贸/陆拢脕茅脛脨/脟没赂脡/陆拢脕茅脛脨.ecm",
"models/players/脨脦脧贸/陆拢脕茅脜庐/脟没赂脡/陆拢脕茅脜庐.ecm",
"models/players/脨脦脧贸/梅脠脕茅脛脨/脟没赂脡/梅脠脕茅脛脨.ecm",
"models/players/脨脦脧贸/梅脠脕茅脜庐/脟没赂脡/梅脠脕茅脜庐.ecm",
// 脰掳脪碌卤盲脡铆脛拢脨脥
"models/players/脨脦脧贸/掳脳禄垄/掳脳禄垄.ecm",
"models/players/脨脦脧贸/禄冒潞眉脌锚/禄冒潞眉脌锚.ecm",
"models/players/脨脦脧贸/脫掳脳氓卤盲脡铆脛脨/脫掳脳氓卤盲脡铆脛脨.ecm",
"models/players/脨脦脧贸/脫掳脳氓卤盲脡铆脜庐/脫掳脳氓卤盲脡铆脜庐.ecm",
// 录录脛脺卤盲脡铆脛拢脨脥拢篓麓脣ID虏禄驴脡卤盲拢卢脨脗脛拢脨脥脟毛脥霉潞贸脤铆录脫拢漏
"models/players/脨脦脧贸/陆冒脟庐脥脺/陆冒脟庐脥脺.ecm",
"models/players/脨脦脧贸/禄茅脌帽脥炉脛脨/禄茅脌帽脥炉脛脨.ecm",
"models/players/脨脦脧贸/禄茅脌帽脥炉脜庐/禄茅脌帽脥炉脜庐.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶.ecm",
"models/players/脨脦脧贸/脢梅录娄/脢梅录娄.ecm",
"models/players/脨脦脧贸/脨隆脛搂禄垄/脨隆脛搂禄垄.ecm",
"models/players/脨脦脧贸/潞矛脡芦脣脡脢贸/潞矛脡芦脣脡脢贸.ecm",
"models/players/脨脦脧贸/脗陆禄炉碌脛潞拢鹿锚/脗陆禄炉碌脛潞拢鹿锚.ecm",
"models/players/脨脦脧贸/脨脗脛茂碌脛卤铆赂莽/脨脗脛茂碌脛卤铆赂莽.ecm",
"models/players/脨脦脧贸/脡脷卤酶驴镁脌脺/脡脷卤酶驴镁脌脺.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脝贸露矛碌脹脥玫/脝贸露矛碌脹脥玫.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脝贸露矛碌脹脥玫/脝贸露矛禄脢潞贸.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脩漏脥脙/脩漏脥脙.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脤漏碌脧脨脺/脤漏碌脧脨脺.ecm",
"models/players/脨脦脧贸/潞矛脡芦脣脡脢贸/潞矛脡芦脣脡脢贸麓贸.ecm",
"models/players/脨脦脧贸/脢梅录娄/脢梅录娄麓贸.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶路脽脜颅.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶戮脷脡楼.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶脢搂脗盲.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脩漏脥脙/脩漏脥脙碌莽鹿芒.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脕煤/脕煤.ecm",
// 脰掳脪碌卤盲脡铆脨脗脛拢脨脥
"models/players/脨脦脧贸/脨脺脙篓/脨脺脙篓.ecm",
"models/players/脨脦脧贸/碌没脫冒潞眉/碌没脫冒潞眉.ecm",
// 脛卢脠脧掳脷脤炉脛拢脨脥
"models/players/脨脦脧贸/掳脷脤炉/脛脨/脛脨.ecm",
"models/players/脨脦脧贸/掳脷脤炉/脜庐/脜庐.ecm",
// 毛脢脳氓
"models/players/脨脦脧贸/脪鹿脫掳脛脨/脟没赂脡/脪鹿脫掳脛脨.ecm",
"models/players/脨脦脧贸/脪鹿脫掳脜庐/脟没赂脡/脪鹿脫掳脜庐.ecm",
"models/players/脨脦脧贸/脭脗脧脡脛脨/脟没赂脡/脭脗脧脡脛脨.ecm",
"models/players/脨脦脧贸/脭脗脧脡脜庐/脟没赂脡/脭脗脧脡脜庐.ecm",
// ???????
"models/players/脨脦脧贸/毛脢脳氓卤盲脡铆脪鹿脫掳脛脨/毛脢脳氓卤盲脡铆脪鹿脫掳脛脨.ecm",
"models/players/脨脦脧贸/毛脢脳氓卤盲脡铆脪鹿脫掳脜庐/毛脢脳氓卤盲脡铆脪鹿脫掳脜庐.ecm",
"models/players/脨脦脧贸/毛脢脳氓卤盲脡铆脭脗脧脡脛脨/毛脢脳氓卤盲脡铆脭脗脧脡脛脨.ecm",
"models/players/脨脦脧贸/毛脢脳氓卤盲脡铆脭脗脧脡脜庐/毛脢脳氓卤盲脡铆脭脗脧脡脜庐.ecm",
};
// Model files
static readonly string[] l_aModelFilesForChangeShape2 = // 脨隆露炉脦茂卤盲脡铆拢卢卤盲脡铆脌脿脨脥脦陋 2
{
"",
// 脮陆鲁碌卤盲脡铆
"models/players/脨脦脧贸/2013卤盲脡铆/脥露脢炉鲁碌/脥露脢炉鲁碌鲁玫录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脥露脢炉鲁碌/脥露脢炉鲁碌脰脨录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脥露脢炉鲁碌/脥露脢炉鲁碌赂脽录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脭露鲁脤脮陆鲁碌/脭露鲁脤脮陆鲁碌鲁玫录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脭露鲁脤脮陆鲁碌/脭露鲁脤脮陆鲁碌脰脨录露.ecm", // 5
"models/players/脨脦脧贸/2013卤盲脡铆/脭露鲁脤脮陆鲁碌/脭露鲁脤脮陆鲁碌赂脽录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/鹿颅氓贸脮陆鲁碌/鹿颅氓贸脮陆鲁碌鲁玫录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/鹿颅氓贸脮陆鲁碌/鹿颅氓贸脮陆鲁碌脰脨录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/鹿颅氓贸脮陆鲁碌/鹿颅氓贸脮陆鲁碌赂脽录露.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脫脟脫么脰脨脛锚/脫脟脫么脰脨脛锚.ecm", // 10
"models/players/脨脦脧贸/2013卤盲脡铆/盲陆脨脺脛脨潞矛/盲陆脨脺脛脨潞矛.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脨隆脗铆鲁碌/脨隆脗铆鲁碌.ecm",
"models/players/脨脦脧贸/脨隆脩漏脠脣/脨隆脩漏脠脣.ecm",
"",
"", //15
"",
"",
"",
"",
"", // 20
"",
"",
"",
"",
"", // 25
// 录录脛脺卤盲脡铆脛拢脨脥拢篓麓脣ID虏禄驴脡卤盲拢卢脨脗脛拢脨脥脟毛脥霉潞贸脤铆录脫拢漏
"models/players/脨脦脧贸/陆冒脟庐脥脺/陆冒脟庐脥脺.ecm",
"models/players/脨脦脧贸/禄茅脌帽脥炉脛脨/禄茅脌帽脥炉脛脨.ecm",
"models/players/脨脦脧贸/禄茅脌帽脥炉脜庐/禄茅脌帽脥炉脜庐.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶.ecm",
"models/players/脨脦脧贸/脢梅录娄/脢梅录娄.ecm",
"models/players/脨脦脧贸/脨隆脛搂禄垄/脨隆脛搂禄垄.ecm",
"models/players/脨脦脧贸/潞矛脡芦脣脡脢贸/潞矛脡芦脣脡脢贸.ecm",
"models/players/脨脦脧贸/脗陆禄炉碌脛潞拢鹿锚/脗陆禄炉碌脛潞拢鹿锚.ecm",
"models/players/脨脦脧贸/脨脗脛茂碌脛卤铆赂莽/脨脗脛茂碌脛卤铆赂莽.ecm",
"models/players/脨脦脧贸/脡脷卤酶驴镁脌脺/脡脷卤酶驴镁脌脺.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脝贸露矛碌脹脥玫/脝贸露矛碌脹脥玫.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脝贸露矛碌脹脥玫/脝贸露矛禄脢潞贸.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脩漏脥脙/脩漏脥脙.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脤漏碌脧脨脺/脤漏碌脧脨脺.ecm",
"models/players/脨脦脧贸/潞矛脡芦脣脡脢贸/潞矛脡芦脣脡脢贸麓贸.ecm",
"models/players/脨脦脧贸/脢梅录娄/脢梅录娄麓贸.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶路脽脜颅.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶戮脷脡楼.ecm",
"models/players/脨脦脧贸/2011卤盲脡铆/脭掳脪脮脟酶脡脷卤酶/脭掳脪脮脟酶脡脷卤酶脢搂脗盲.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脩漏脥脙/脩漏脥脙碌莽鹿芒.ecm",
"models/players/脨脦脧贸/2013卤盲脡铆/脕煤/脕煤.ecm",
"models/players/脨脦脧贸/2014卤盲脡铆/路莽路篓脢娄/路莽路篓脢娄.ecm",
"models/players/脨脦脧贸/2014卤盲脡铆/脪鹿脫掳脫掳露脻卤盲脡铆/脫掳露脻.ecm",
"models/players/脨脦脧贸/2015卤盲脡铆/碌掳碌掳/碌掳碌掳.ecm",
"models/players/脨脦脧贸/2015卤盲脡铆/路脢脩貌/路脢脩貌.ecm",
"models/players/脨脦脧贸/2015卤盲脡铆/脕煤脙篓/脕煤脙篓.ecm",
"models/players/脨脦脧贸/2015卤盲脡铆/脜脻脜脻脫茫/脜脻脜脻脫茫.ecm",
};
static readonly string[] l_szSysIconFile = {
"2013/驴矛陆脻脌赂/gt(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/touch(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/脨脼脕露(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/掳脵驴脝(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/录脛脗么(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/脥锚脙脌路镁脦帽(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/脟茅脭碌(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/戮脹脕茅(脮媒鲁拢).dds",
"2013/驴矛陆脻脌赂/脳脭露炉潞脠脪漏(脮媒鲁拢).dds",
"",
};
}
// Cursor resource
enum CursorResourceType
{
RES_CUR_NORMAL = 0,
RES_CUR_ATTACK,
RES_CUR_TALK,
RES_CUR_PICKUP,
RES_CUR_REPAIR,
RES_CUR_HAND,
RES_CUR_FLAG,
RES_CUR_DIG,
RES_CUR_SWALLOW,
NUM_RES_CURSOR,
}
// GFX resource
enum GfxResourceType
{
RES_GFX_LEVELUP = 0,
RES_GFX_PLAYERAPPEAR,
RES_GFX_HIT,
RES_GFX_MOVETARGET,
RES_GFX_ITEMFLASH,
RES_GFX_CURSORHOVER,
RES_GFX_SELECTED,
RES_GFX_FLOATING_DUST,
RES_GFX_WATER_WAVE_STILL,
RES_GFX_WATER_WAVE_MOVE,
RES_GFX_AIR_BUBBLE,
RES_GFX_SWIM_BUBBLE,
RES_GFX_TRANSFORM_TIGER,
RES_GFX_TRANSFORM_FOX,
RES_GFX_RED_MEDICINE,
RES_GFX_BLUE_MEDICINE,
RES_GFX_PURPLE_MEDICINE,
RES_GFX_JIEDU_MEDICINE,
RES_GFX_PHYSIC_ARMORRUNE,
RES_GFX_MAGIC_ARMORRUNE,
RES_GFX_INDUEL,
RES_GFX_TANKLEADER_RED,
RES_GFX_TANKLEADER_BLUE,
RES_GFX_GOBLIN_LEVELUP,
RES_GFX_INVISIBLE_DETECTED,
RES_GFX_MONSTER_SPIRIT_LINE,
RES_GFX_MONSTER_SPIRIT_BALL,
RES_GFX_REALM_LEVELUP,
RES_GFX_BATTLEFURY,
NUM_RES_GFX,
};
// Sound resource
// Texture resource
// Shader resource
enum ShaderResourceType
{
RES_SHD_HAIR = 0,
RES_SHD_GOATEE,
RES_SHD_FACE,
RES_SHD_EYE,
RES_SHD_BROW,
RES_SHD_MOUTH, // 5
RES_SHD_NOSE,
RES_SHD_EYEBALL,
RES_SHD_MOUSTACHE,
RES_SHD_BODY,
NUM_RES_SHADER, // 10
};
// Icon resource
enum IconResourceType
{
RES_ICON_CMD_SITDOWN = 0,
RES_ICON_CMD_WALKRUN,
RES_ICON_CMD_NORMALATTACK,
RES_ICON_CMD_FINDTARGET,
RES_ICON_CMD_ASSISTATTACK,
RES_ICON_CMD_INVITETOTEAM, // 5
RES_ICON_CMD_LEAVETEAM,
RES_ICON_CMD_KICKTEAMMEM,
RES_ICON_CMD_FINDTEAM,
RES_ICON_CMD_STARTTRADE,
RES_ICON_CMD_SELLBOOTH, // 10
RES_ICON_CMD_BUYBOOTH,
RES_ICON_CMD_INVITETOFACTION,
RES_ICON_CMD_FLY,
RES_ICON_CMD_EXP_WAVE,
RES_ICON_CMD_EXP_NOD, // 15
RES_ICON_CMD_EXP_SHAKEHEAD,
RES_ICON_CMD_EXP_SHRUG,
RES_ICON_CMD_EXP_LAUGH,
RES_ICON_CMD_EXP_ANGRY,
RES_ICON_CMD_EXP_STUN, // 20
RES_ICON_CMD_EXP_DEPRESSED,
RES_ICON_CMD_EXP_KISSHAND,
RES_ICON_CMD_EXP_SHY,
RES_ICON_CMD_EXP_SALUTE,
RES_ICON_CMD_EXP_SITDOWN, // 25
RES_ICON_CMD_EXP_ASSAULT,
RES_ICON_CMD_EXP_THINK,
RES_ICON_CMD_EXP_DEFIANCE,
RES_ICON_CMD_EXP_VICTORY,
RES_ICON_CMD_EXP_GAPE, // 30
RES_ICON_CMD_EXP_KISS,
RES_ICON_CMD_EXP_FIGHT,
RES_ICON_CMD_EXP_ATTACK1,
RES_ICON_CMD_EXP_ATTACK2,
RES_ICON_CMD_EXP_ATTACK3, // 35
RES_ICON_CMD_EXP_ATTACK4,
RES_ICON_CMD_EXP_DEFENCE,
RES_ICON_CMD_EXP_FALL,
RES_ICON_CMD_EXP_FALLONGROUND,
RES_ICON_CMD_EXP_LOOKAROUND, // 40
RES_ICON_CMD_EXP_DANCE,
RES_ICON_CMD_EXP_FASHIONWEAPON,
RES_ICON_CMD_PICKUP,
RES_ICON_CMD_GATHER,
RES_ICON_CMD_RUSHFLY,
RES_ICON_CMD_BINDBUDDY,
RES_ICON_CMD_TWOKISS, // Ç×Ç×ÃÜÃÜ
RES_ICON_CMD_JUMPTRICK,
RES_ICON_CMD_RUNTRICK,
NUM_RES_ICON,
};
// Model resource
enum ModelResourceType
{
RES_MOD_GOLD = 0,
RES_MOD_TEMP,
RES_MOD_WARRIOR_M,
RES_MOD_WARRIOR_F,
RES_MOD_MAGE_M,
RES_MOD_MAGE_F,
RES_MOD_MONK_M,
RES_MOD_MONK_F,
RES_MOD_HAG_M,
RES_MOD_HAG_F,
RES_MOD_ORC_M,
RES_MOD_ORC_F,
RES_MOD_GHOST_M,
RES_MOD_GHOST_F,
RES_MOD_ARCHOR_M,
RES_MOD_ARCHOR_F,
RES_MOD_ANGEL_M,
RES_MOD_ANGEL_F,
RES_MOD_JIANLING_M,
RES_MOD_JIANLING_F,
RES_MOD_MEILING_M,
RES_MOD_MEILING_F,
RES_MOD_ORC_TIGER,
RES_MOD_ORC_FOX,
RES_MOD_SHADOW_FISH_M,
RES_MOD_SHADOW_FISH_F,
RES_MOD_MONEYFROG,
RES_MOD_WEDDING_KID_M,
RES_MOD_WEDDING_KID_F,
RES_MOD_SOLDIER,
RES_MOD_TREEBIRD,
RES_MOD_EVIL_TIGER,
RES_MOD_RED_SQUIRREL,
RES_MOD_LAND_TURTLE,
RES_MOD_BRIDE_COUSIN,
RES_MOD_SENTRY_PUPPET,
RES_MOD_PENGUIN_KING,
RES_MOD_PENGUIN_QUEEN,
RES_MOD_SNOW_RABBIT,
RES_MOD_TEDDY_BEAR,
RES_MOD_RED_SQUIRREL_BIG,
RES_MOD_TREEBIRD_BIG,
RES_MOD_SENTRY_ANGRY,
RES_MOD_SENTRY_DEPRESSED,
RES_MOD_SENTRY_LOST,
RES_MOD_SNOW_RABBIT_BLAZE,
RES_MOD_DRAGON,
RES_MOD_ORC_PANDER,
RES_MOD_ORC_FOX2,
RES_MOD_DEFAULT_BOOTH_M,
RES_MOD_DEFAULT_BOOTH_F,
RES_MOD_YEYING_M,
RES_MOD_YEYING_F,
RES_MOD_YUEXIAN_M,
RES_MOD_YUEXIAN_F,
RES_MOD_YEYING_RESHAPE_M,
RES_MOD_YEYING_RESHAPE_F,
RES_MOD_YUEXIAN_RESHAPE_M,
RES_MOD_YUEXIAN_RESHAPE_F,
NUM_RES_MODEL,
};
// model file for change shape 2
enum ResourceModelType
{
RES_MOD_CHANGESAHPE_NULL, // 0
RES_MOD_CHARIOT_1,
RES_MOD_CHARIOT_2,
RES_MOD_CHARIOT_3,
RES_MOD_CHARIOT_4,
RES_MOD_CHARIOT_5, //5
RES_MOD_CHARIOT_6,
RES_MOD_CHARIOT_7,
RES_MOD_CHARIOT_8,
RES_MOD_CHARIOT_9,
RES_MOD_DEPRESSEC_AGED_PERSION, //10
RES_MOD_RED_BEAR,
RES_MOD_PONYCAR,
RES_MOD_SNOWMAN,
RES_MOD_CHANGESAHPE_MONEY_FROG = 26,
RES_MOD_CHANGESAHPE_USED = 52, // 26-52 Òѱ»Ê¹ÓÃ
RES_MOD_FORCHANGESAHPE_NUM,
};
// Some unicode string resources
enum UnicodeStringResourceType
{
RES_FONT_TITLE = 0,
RES_FONT_DAMAGE,
NUM_RES_FONT,
};
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 47d8b4297c6ec224d9d91a7d6ccf1146