convert skill and add path

This commit is contained in:
VDH
2026-02-10 19:28:15 +07:00
parent 7458032777
commit d0914160b2
292 changed files with 1426 additions and 98672 deletions
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
m_currentHash:
serializedVersion: 2
Hash: c01206f362e49136cec87f4b601599fe
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -21,8 +21,20 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 10169acfafd56cb4989fd9a95cd7a098
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u98CE\u5377\u6B8B\u4E91\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 12232fbad2bd06343bd1d2546c48f064
m_Address: "Assets/Jianghu/Prefabs/\u843D\u77F3\u672F.prefab"
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u843D\u77F3\u672F\u98DE\u884C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 17ec0af14fc18304187c2395b1b9d6d1
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u9F99\u817E.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
@@ -33,6 +45,18 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 19d3b28c1fe13e24f8f601297e266dc0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5251\u6C14\u7EB5\u6A2A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c483678cadbac74da2a4f060c1b934a
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u70C8\u706B\u7B26\u65BD\u653E.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 21c4fc3924942124db60bcfb3e38cbf3
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5251\u6C14\u7EB5\u6A2A.gfx"
m_ReadOnly: 0
@@ -63,14 +87,14 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2a1d0b214dea07648b47ec8b70f6ecac
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u9F99\u817E.gfx"
- m_GUID: 2de59d4c1c067624b8f212bcbfdb95a5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65A7\u9524\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2de59d4c1c067624b8f212bcbfdb95a5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65A7\u9524\u51FB\u4E2D.gfx"
- m_GUID: 30be7771319e90243add03af4b36cb63
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u4E91\u9F99\u4E5D\u73B0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
@@ -81,12 +105,54 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3cd3799093e5762469213486f32178a6
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u65AD\u5CA9\u65A9\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4237c380ab3163d44914252054286569
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6613\u7B4B\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 42e5b0010d11e6b40abf25110a01aec0
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5315\u9996\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 44a8d5af73dd2144faaab469423efd34
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u8FFD\u9B42\u8BC0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45cb0d5a469bd984d851f8d818719fd9
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u72C2\u9F99\u65A9\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 48582ea91cdc6ab4a95e1b58797d046b
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u72EE\u5B50\u543C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 48d68385409124f4f8615d769632af90
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u78E8\u5200\u77F3\u5149\u6548\u751F\u547D\u589E\u5F3A3\u7EA73.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4ba6555f9591e474ca7ad39d11f3aa2e
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u7D2B\u8272\u80F8\u75322\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4e30ab5d1448a9e4eade2883ecdc3fbe
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6CD5\u9632\u7B26\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -105,12 +171,24 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5611c5ccf57ca7641825dc386e3c86fa
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6D41\u6C34\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 562300fbee8052a499dfecadab60619a
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u8FFD\u9B42\u8BC0.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 56359c8538ad944449c78376634f11d0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u864E\u8DC3.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5e6764d07538a5143be3f59ee9684b2b
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5F13\u7BAD\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -135,6 +213,12 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6bc66e9a28699c44a93c55957b82048b
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u65E0\u5F71\u811A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6d0aab545e293604f8eca6c3ad7a603e
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u706B\u67AA\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -171,6 +255,12 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7887d4c9101722741b42a2a2392a6ada
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u767D\u8272\u80F8\u75321\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7c756e961c3000c40a32ee5981dd5fa7
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6D41\u6C34.gfx"
m_ReadOnly: 0
@@ -183,6 +273,12 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8044c820dd2daa24f9b22cbc1c9e459d
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u78E8\u5200\u77F3\u5149\u6548\u751F\u547D\u589E\u5F3A3\u7EA7\u5B50.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8104d64f80a70b24dba3a9267f0143f5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65B0\u79CD\u65CF_\u53CC\u624B\u957F\u666E\u901A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -195,24 +291,84 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 84a7d1e5df3d9cb449f8f8c39badc6a0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5288\u7A7A\u638C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 88745aeb0241d0e449d1093e2e5a7f83
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5203\u57DF\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8daa916544fd0414ba53e0671ba297a8
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5BF8\u529B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 92492712d1e006143a8f8307c52209a7
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6B66\u4FA0_\u51CC\u98CE\u6539_\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 948c28c528894e14bac4c8b3475e4eba
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u56DE\u9A6C\u67AA.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 98390588398b78041b8ca23a21d75e37
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u75BE\u98CE\u9739\u96F3\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 99f1f9422180d5b4495b7d3ea310c6b7
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u6D8C\u6CC9\u4E2D\u62DB.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9bd1bdc807ba3b744891c04647b7fd09
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u4E07\u5251\u8BC0\u98DE\u884C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9c201cddd642b6c449e2f6db039af136
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u864E\u51FB\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ac9ab47105d466b499c86e20c7f31631
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u767D\u8001\u864E\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b1e7f6e966a98824293e3314434c6403
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u70C8\u706B\u526F\u7206\u70B8\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b23b2403475b3dd438639921dc03eb64
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5288\u7A7A\u638C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b56db4cc8cba926479fd5e309dc05260
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u7D2B\u8272\u9774\u75322\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b5e11355f071db54197be3e9bdc74521
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u7130\u5149\u5F39\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -225,12 +381,36 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1afba0bc5b5f644898e5134f7ccdec6
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u9F99\u73B0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1bc39d066ae88b4f90025c9ac61a280
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u5929\u706B\u72C2\u9F99\u98DE\u884C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ca5346b8caa8687488cf931f4b844d1d
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6613\u9AD3\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cd8645249ddb6e140aaa3381f8a510bb
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6D41\u661F\u8D76\u6708.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d07df5ea2282211449d447c827ff6b7c
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6A2A\u626B\u5343\u519B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d0f0111beed4fe341a5fa1439ebf9005
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5200\u5251\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -261,6 +441,12 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: df9e9a4475c972341b1c7dfe44056b18
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6D41\u661F\u8D76\u6708\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e72f6686b98471f428704367f8e13504
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6697\u5668\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -285,6 +471,12 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fc854068dbe0da3409a88bc92a0df4df
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u56DE\u9A6C\u67AA\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fdd2bee325c891340b51cb6b30323a11
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u795E\u706B\u7B26\u51FB\u4E2D.gfx"
m_ReadOnly: 0
+294
View File
@@ -0,0 +1,294 @@
using UnityEngine;
using UnityEditor;
using System.IO;
namespace BrewMonster
{
public class PrefabMoverTool : EditorWindow
{
private Object folderRoot;
private string folderRootPath = "";
private string subfolderPath = "";
private Object prefabToMove;
private Vector2 scrollPosition;
private GUIStyle headerStyle;
private GUIStyle boxStyle;
[MenuItem("Tools/Prefab Mover")]
public static void ShowWindow()
{
PrefabMoverTool window = GetWindow<PrefabMoverTool>("Prefab Mover");
window.minSize = new Vector2(400, 300);
window.Show();
}
private void OnEnable()
{
// Initialize styles
InitializeStyles();
}
private void InitializeStyles()
{
if (headerStyle == null)
{
headerStyle = new GUIStyle(EditorStyles.boldLabel)
{
fontSize = 14,
alignment = TextAnchor.MiddleLeft,
margin = new RectOffset(5, 5, 10, 10)
};
}
if (boxStyle == null)
{
boxStyle = new GUIStyle(GUI.skin.box)
{
padding = new RectOffset(10, 10, 10, 10),
margin = new RectOffset(5, 5, 5, 5)
};
}
}
private void OnGUI()
{
InitializeStyles();
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
// Title
GUILayout.Label("Prefab Mover Tool", headerStyle);
EditorGUILayout.Space(5);
// Folder Root Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("1. Set Folder Root", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Drag and drop a folder from the Project window to set the root folder.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Folder Root:", GUILayout.Width(100));
Object newFolderRoot = EditorGUILayout.ObjectField(folderRoot, typeof(Object), false);
if (newFolderRoot != folderRoot)
{
folderRoot = newFolderRoot;
UpdateFolderRootPath();
}
EditorGUILayout.EndHorizontal();
if (!string.IsNullOrEmpty(folderRootPath))
{
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Path:", GUILayout.Width(100));
EditorGUILayout.SelectableLabel(folderRootPath, EditorStyles.textField, GUILayout.Height(18));
EditorGUILayout.EndHorizontal();
}
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(5);
// Subfolder Path Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("2. Set Subfolder Path", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Enter the subfolder path (e.g., 'a/b' or 'a\\b'). This will be created inside the folder root.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Subfolder Path:", GUILayout.Width(100));
subfolderPath = EditorGUILayout.TextField(subfolderPath);
EditorGUILayout.EndHorizontal();
if (!string.IsNullOrEmpty(folderRootPath) && !string.IsNullOrEmpty(subfolderPath))
{
string fullPath = GetFullTargetPath();
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Full Path:", GUILayout.Width(100));
EditorGUILayout.SelectableLabel(fullPath, EditorStyles.textField, GUILayout.Height(18));
EditorGUILayout.EndHorizontal();
}
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(5);
// Prefab Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("3. Select Prefab to Move", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Drag and drop a prefab from the Project window.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Prefab:", GUILayout.Width(100));
prefabToMove = EditorGUILayout.ObjectField(prefabToMove, typeof(GameObject), false);
EditorGUILayout.EndHorizontal();
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(10);
// Move Button
EditorGUI.BeginDisabledGroup(!CanMovePrefab());
{
if (GUILayout.Button("Move Prefab", GUILayout.Height(35)))
{
MovePrefab();
}
}
EditorGUI.EndDisabledGroup();
if (!CanMovePrefab())
{
if (string.IsNullOrEmpty(folderRootPath))
EditorGUILayout.HelpBox("Please set a folder root.", MessageType.Warning);
else if (string.IsNullOrEmpty(subfolderPath))
EditorGUILayout.HelpBox("Please enter a subfolder path.", MessageType.Warning);
else if (prefabToMove == null)
EditorGUILayout.HelpBox("Please select a prefab to move.", MessageType.Warning);
}
EditorGUILayout.EndScrollView();
}
private void UpdateFolderRootPath()
{
if (folderRoot == null)
{
folderRootPath = "";
return;
}
string path = AssetDatabase.GetAssetPath(folderRoot);
// Check if it's a folder
if (Directory.Exists(path))
{
folderRootPath = path;
}
else if (File.Exists(path))
{
// If user dropped a file, use its parent folder
folderRootPath = Path.GetDirectoryName(path);
EditorUtility.DisplayDialog("Info", "You selected a file. Using its parent folder instead.", "OK");
}
else
{
folderRootPath = "";
EditorUtility.DisplayDialog("Error", "Invalid folder selected.", "OK");
}
}
private string GetFullTargetPath()
{
if (string.IsNullOrEmpty(folderRootPath) || string.IsNullOrEmpty(subfolderPath))
return "";
// Normalize the subfolder path (replace backslashes with forward slashes)
string normalizedSubPath = subfolderPath.Replace('\\', '/');
// Combine paths
string fullPath = Path.Combine(folderRootPath, normalizedSubPath);
// Normalize to forward slashes (Unity convention)
return fullPath.Replace('\\', '/');
}
private bool CanMovePrefab()
{
return !string.IsNullOrEmpty(folderRootPath) &&
!string.IsNullOrEmpty(subfolderPath) &&
prefabToMove != null;
}
private void MovePrefab()
{
string prefabPath = AssetDatabase.GetAssetPath(prefabToMove);
if (string.IsNullOrEmpty(prefabPath))
{
EditorUtility.DisplayDialog("Error", "Cannot get prefab path.", "OK");
return;
}
// Get the full target path
string targetFolder = GetFullTargetPath();
// Create the folder structure if it doesn't exist
CreateFolderStructure(targetFolder);
// Get prefab filename
string prefabFileName = Path.GetFileName(prefabPath);
string targetPath = Path.Combine(targetFolder, prefabFileName).Replace('\\', '/');
// Check if file already exists at target
if (File.Exists(targetPath))
{
bool overwrite = EditorUtility.DisplayDialog(
"File Exists",
$"A file with the name '{prefabFileName}' already exists at:\n{targetPath}\n\nDo you want to overwrite it?",
"Overwrite",
"Cancel"
);
if (!overwrite)
{
return;
}
}
// Move the asset
string error = AssetDatabase.MoveAsset(prefabPath, targetPath);
if (string.IsNullOrEmpty(error))
{
AssetDatabase.Refresh();
EditorUtility.DisplayDialog("Success", $"Prefab moved successfully to:\n{targetPath}", "OK");
// Clear the prefab field after successful move
prefabToMove = null;
// Ping the moved asset in the Project window
Object movedAsset = AssetDatabase.LoadAssetAtPath<Object>(targetPath);
EditorGUIUtility.PingObject(movedAsset);
}
else
{
EditorUtility.DisplayDialog("Error", $"Failed to move prefab:\n{error}", "OK");
}
}
private void CreateFolderStructure(string fullPath)
{
// Normalize path
fullPath = fullPath.Replace('\\', '/');
// Split the path into parts
string[] pathParts = fullPath.Split('/');
string currentPath = "";
foreach (string part in pathParts)
{
if (string.IsNullOrEmpty(part))
continue;
string parentPath = currentPath;
currentPath = string.IsNullOrEmpty(currentPath) ? part : currentPath + "/" + part;
// Check if folder exists
if (!Directory.Exists(currentPath))
{
// Create the folder using AssetDatabase
if (!string.IsNullOrEmpty(parentPath))
{
AssetDatabase.CreateFolder(parentPath, part);
Debug.Log($"Created folder: {currentPath}");
}
}
}
AssetDatabase.Refresh();
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 421631360572bc7418be0f642d1edc7b
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,7 @@
fileFormatVersion: 2
guid: b2397d288b3c0494b8eb326f7ac8a1a4
PrefabImporter:
guid: 22387f7d0933f1747a0014d8a95bec07
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
@@ -1,6 +1,7 @@
fileFormatVersion: 2
guid: 2a1d0b214dea07648b47ec8b70f6ecac
PrefabImporter:
guid: 99cbc82e9b2706347bdb2fd7fac7a1ca
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ae23118caa472f34c8892e708665faab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -4845,7 +4845,7 @@ GameObject:
- component: {fileID: 3719851039963429255}
- component: {fileID: 860368518136344503}
m_Layer: 0
m_Name: "\u4E91\u9F99\u4E5D\u73B0"
m_Name: "\u4E91\u9F99\u4E5D\u73B0\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -24235,7 +24235,7 @@ GameObject:
- component: {fileID: 2259029923733767930}
- component: {fileID: 7116198156681213787}
m_Layer: 0
m_Name: "\u5203\u57DF"
m_Name: "\u5203\u57DF\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -9745,7 +9745,7 @@ GameObject:
- component: {fileID: 1144383505047452923}
- component: {fileID: 9148944925004786893}
m_Layer: 0
m_Name: "\u5251\u6C14\u7EB5\u6A2A"
m_Name: "\u5251\u6C14\u7EB5\u6A2A\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -39877,7 +39877,7 @@ GameObject:
- component: {fileID: 6382307952723383392}
- component: {fileID: 8044263312079080557}
m_Layer: 0
m_Name: "\u5288\u7A7A\u638C"
m_Name: "\u5288\u7A7A\u638C\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -14770,7 +14770,7 @@ GameObject:
- component: {fileID: 8920202759949312207}
- component: {fileID: 3072596485925952277}
m_Layer: 0
m_Name: "\u56DE\u9A6C\u67AA"
m_Name: "\u56DE\u9A6C\u67AA\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -9736,7 +9736,7 @@ GameObject:
- component: {fileID: 3550596841267012517}
- component: {fileID: 8390580542688497856}
m_Layer: 0
m_Name: "\u5BF8\u529B"
m_Name: "\u5BF8\u529B\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -24302,7 +24302,7 @@ GameObject:
- component: {fileID: 5505825030094421846}
- component: {fileID: 6093624879827688656}
m_Layer: 0
m_Name: "\u65AD\u5CA9\u65A9"
m_Name: "\u65AD\u5CA9\u65A9\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -14685,7 +14685,7 @@ GameObject:
- component: {fileID: 4947358628831977980}
- component: {fileID: 2809406838566907156}
m_Layer: 0
m_Name: "\u65E0\u5F71\u811A"
m_Name: "\u65E0\u5F71\u811A\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -19518,7 +19518,7 @@ GameObject:
- component: {fileID: 6932470780639996430}
- component: {fileID: 8148203456640057633}
m_Layer: 0
m_Name: "\u6A2A\u626B\u5343\u519B"
m_Name: "\u6A2A\u626B\u5343\u519B\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4903,7 +4903,7 @@ GameObject:
- component: {fileID: 3667766411519096105}
- component: {fileID: 1965691206033277477}
m_Layer: 0
m_Name: "\u51CC\u98CE"
m_Name: "\u6B66\u4FA0_\u51CC\u98CE\u6539_\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -34017,7 +34017,7 @@ GameObject:
- component: {fileID: 6116246260795273229}
- component: {fileID: 1751933827565833573}
m_Layer: 0
m_Name: "\u6D41\u661F\u8D76\u6708"
m_Name: "\u6D41\u661F\u8D76\u6708\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -24311,7 +24311,7 @@ GameObject:
- component: {fileID: 5863453012670137202}
- component: {fileID: 7835798992005366403}
m_Layer: 0
m_Name: "\u6D41\u6C34"
m_Name: "\u6D41\u6C34\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 6353708185804414749}
- component: {fileID: 7313970609931230196}
m_Layer: 0
m_Name: Liehuo Fu
m_Name: "\u70C8\u706B\u526F\u7206\u70B8\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4903,7 +4903,7 @@ GameObject:
- component: {fileID: 8732209884640063012}
- component: {fileID: 4728308371349936716}
m_Layer: 0
m_Name: "\u72C2\u9F99\u65A9"
m_Name: "\u72C2\u9F99\u65A9\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 4081667864345645901}
- component: {fileID: 66366123671022950}
m_Layer: 0
m_Name: "\u72EE\u5B50\u543C"
m_Name: "\u72EE\u5B50\u543C\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -19951,7 +19951,7 @@ GameObject:
- component: {fileID: 73779688214759919}
- component: {fileID: 6069738928245765116}
m_Layer: 0
m_Name: "\u75BE\u98CE\u9739\u96F3"
m_Name: "\u75BE\u98CE\u9739\u96F3\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -29184,7 +29184,7 @@ GameObject:
- component: {fileID: 216515851349093447}
- component: {fileID: 806393009993359224}
m_Layer: 0
m_Name: "\u864E\u51FB"
m_Name: "\u864E\u51FB\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -24436,7 +24436,7 @@ GameObject:
- component: {fileID: 7780614956645344080}
- component: {fileID: 5190892297334254491}
m_Layer: 0
m_Name: "\u8FFD\u9B42\u8BC0"
m_Name: "\u8FFD\u9B42\u8BC0\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -9736,7 +9736,7 @@ GameObject:
- component: {fileID: 3197382800962544609}
- component: {fileID: 5104905724691661771}
m_Layer: 0
m_Name: "\u98CE\u5377\u6B8B\u4E91"
m_Name: "\u98CE\u5377\u6B8B\u4E91\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -9870,7 +9870,7 @@ GameObject:
- component: {fileID: 7316120840761532040}
- component: {fileID: 3479078971272461409}
m_Layer: 0
m_Name: "\u9F99\u73B0"
m_Name: "\u9F99\u73B0\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f5b646199fd486540b890151900f3c06
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -53703,7 +53703,7 @@ GameObject:
- component: {fileID: 1241868622078996575}
- component: {fileID: 3388386237696722082}
m_Layer: 0
m_Name: "\u4E07\u5251\u8BC0"
m_Name: "\u4E07\u5251\u8BC0\u98DE\u884C"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4904,7 +4904,7 @@ GameObject:
- component: {fileID: 2574208748608991309}
- component: {fileID: 1771060289619705774}
m_Layer: 0
m_Name: "\u9738\u738B\u732E\u9F0E"
m_Name: "\u5929\u706B\u72C2\u9F99\u98DE\u884C"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -14859,7 +14859,7 @@ GameObject:
- component: {fileID: 3252873590065948742}
- component: {fileID: 6987047648143923923}
m_Layer: 0
m_Name: "\u6D8C\u6CC9"
m_Name: "\u6D8C\u6CC9\u4E2D\u62DB"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -9678,7 +9678,7 @@ GameObject:
- component: {fileID: 618175028685076194}
- component: {fileID: 5226272917795299218}
m_Layer: 0
m_Name: LiehuoFu_projectile
m_Name: "\u70C8\u706B\u7B26\u65BD\u653E"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -48766,7 +48766,7 @@ GameObject:
- component: {fileID: 7779391890009802562}
- component: {fileID: 2796515823182248636}
m_Layer: 0
m_Name: "\u843D\u77F3\u672F"
m_Name: "\u843D\u77F3\u672F\u98DE\u884C\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -210,10 +210,10 @@ namespace BrewMonster
protected uint m_dwDelayTime;
protected bool m_bTraceTarget;
protected bool m_bFadeOut;
protected long m_nHostID; // 施法者ID / Caster ID
protected long m_nTargetID; // 目标ID / Target ID
protected uint m_dwModifier; // 技能附加效果 / Skill additional effect
protected bool m_bIsGoblinSkill; // 是否为小精灵技能 / Whether it's a goblin skill
protected long m_nHostID;
protected long m_nTargetID;
protected uint m_dwModifier;
protected bool m_bIsGoblinSkill;
protected Vector3 m_vHostPos;
protected Vector3 m_vTargetPos;
@@ -9,7 +9,9 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using ModelRenderer.Scripts.Common;
using BrewMonster.Scripts;
using UnityEngine;
using System.Threading.Tasks;
namespace BrewMonster
{
@@ -33,18 +35,18 @@ namespace BrewMonster
if (idSkill == 0)
break;
string pszSGCFile = ElementSkill.GetEffect(idSkill);
(string flyGFXPath, string hitGrdGFXPath, string hitGFXPath) = ElementSkill.GetAllGFX(idSkill);
while (pszSGCFile.StartsWith("\\"))
/*while (pszSGCFile.StartsWith("\\"))
pszSGCFile = pszSGCFile.Substring(1);
string szSGCFile;
if (string.IsNullOrEmpty(pszSGCFile))
szSGCFile = "nosuchthing";
else
szSGCFile = $"{pszSGCFile}";
szSGCFile = $"{pszSGCFile}";*/
if (!m_pSkillGfxComposerMan.LoadOneComposer((int)idSkill, szSGCFile))
if (!m_pSkillGfxComposerMan.LoadOneComposer((int)idSkill, flyGFXPath, hitGrdGFXPath, hitGFXPath))
{
// a_LogOutput(1, "CECAttacksMan::CECAttacksMan(), failed to load skill [%d]'s gfx composer [%s]", idSkill, szSGCFile);
}
@@ -72,8 +74,8 @@ namespace BrewMonster
private void Update()
{
#if UNITY_EDITOR
if(m_AttackList.Count == 0)
m_AttackList = m_targets.ToList();
if (m_AttackList.Count == 0)
m_AttackList = m_targets.ToList();
#endif
var node = m_targets.First;
while (node != null)
@@ -360,7 +362,9 @@ namespace BrewMonster
private bool m_bOneHit;
private bool m_bFadeOut;
A3DSkillGfxMan m_pSkillGfxMan;
private GameObject GFX;
private GameObject flyGFX;
private GameObject hitGrdGFX;
private GameObject hitGFX;
private GfxMoveMode m_MoveMode;
private GfxTargetMode m_TargetMode;
@@ -385,31 +389,41 @@ namespace BrewMonster
/// 从文件加载组合器
/// </summary>
#if UNITY_EDITOR
string name;
string hitGfxName;
string flyGfxName;
string hitGrdGfxName;
#endif
public bool Load(string sgcFile)
public async Task<bool> Load(string flyGFXPath, string hitGrdGFXPath, string hitGFXPath)
{
#if !UNITY_EDITOR
string name = sgcFile.Replace(".sgc", "");
string flyGfxName = flyGFXPath;
string hitGfxName = hitGFXPath;
string hitGrdGfxName = hitGrdGFXPath;
#else
name = sgcFile.Replace(".sgc", "");
flyGfxName = flyGFXPath;
hitGfxName = hitGFXPath;
hitGrdGfxName = hitGrdGFXPath;
#endif
GFX = Resources.Load<GameObject>("GFX/"+name);
flyGFX = await AddressableManager.Instance.LoadPrefabAsync("gfx/" + flyGfxName);
hitGFX = await AddressableManager.Instance.LoadPrefabAsync("gfx/" + hitGfxName);
hitGrdGFX = await AddressableManager.Instance.LoadPrefabAsync("gfx/" + hitGrdGfxName);
//BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + name);
if (GFX == null)
if (flyGFX == null)
{
GFX = Resources.Load<GameObject>("GFX/" + "PlaceHolder");
flyGFX = Resources.Load<GameObject>("GFX/" + "PlaceHolder");
}
return true;
}
public void SpawnGFX(long IDTarget)
{
BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + name);
BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + flyGfxName);
BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + hitGfxName);
BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + hitGrdGfxName);
var obj = EC_ManMessageMono.Instance.GetObject(IDTarget, 0);
if (obj != null && GFX != null)
if (obj != null && flyGFX != null)
{
GameObject.Instantiate(GFX, obj.transform.position, GFX.gameObject.transform.rotation, obj.transform);
GameObject.Instantiate(flyGFX, obj.transform.position, flyGFX.gameObject.transform.rotation, obj.transform);
}
}
/// <summary>
@@ -706,7 +720,7 @@ public class CECAttackEvent
else if (m_idWeapon != 0)
{
// first determine gfx used / 首先确定使用的特效
string szFlyGFX = null;
string szflyGFX = null;
string szHitGFX = null;
// using weapon gfx / 使用武器特效
@@ -719,7 +733,7 @@ public class CECAttackEvent
PROJECTILE_ESSENCE pProjectile = (PROJECTILE_ESSENCE)pData;
/*string fullFlyGfx = pProjectile.GetFileFireGfx();
szFlyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // skip gfx/
szflyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // skip gfx/
string fullHitGfx = pProjectile.GetFileHitGfx();
szHitGFX = fullHitGfx.Length > 4 ? fullHitGfx.Substring(4) : string.Empty; // skip gfx/*/
@@ -735,7 +749,7 @@ public class CECAttackEvent
var pWeaponTypeData = ElementDataManProvider.GetElementDataMan().get_data_ptr(pWeapon.id_sub_type, ID_SPACE.ID_SPACE_ESSENCE, ref dtSub);
WEAPON_SUB_TYPE pWeaponType = (WEAPON_SUB_TYPE)pWeaponTypeData;
// szFlyGFX = null;
// szflyGFX = null;
// string fullHitGfx = n//pWeaponType.GetFileHitGfx();
// szHitGFX = fullHitGfx.Length > 4 ? fullHitGfx.Substring(4) : string.Empty; // skip gfx/
@@ -751,12 +765,12 @@ public class CECAttackEvent
{
TARGET_DATA data = m_targets[i];
string pszFlyGFX = "";//szFlyGFX?.ToLower();
string pszflyGFX = "";//szflyGFX?.ToLower();
string pszHitGFX = "";//szHitGFX?.ToLower();
if (!string.IsNullOrEmpty(szFlyGFX))
if (!string.IsNullOrEmpty(szflyGFX))
{
pszFlyGFX = szFlyGFX.ToLower().Replace("\\", "/");
pszflyGFX = szflyGFX.ToLower().Replace("\\", "/");
}
if (!string.IsNullOrEmpty(szHitGFX))
{
@@ -764,14 +778,14 @@ public class CECAttackEvent
}
if ((data.dwModifier & (uint)MOD.MOD_NULLITY) != 0)
pszHitGFX = "程序联入\\击中\\无效攻击击中.gfx";
pszHitGFX = "程序联入\\击中\\无效攻击击中.gfx";
if (bHideFlyGfx) pszFlyGFX = null;
if (bHideFlyGfx) pszflyGFX = null;
if (bHideHitGfx) pszHitGFX = null;
// TODO: Implement AddSkillGfxEvent
// CECGameRun.Instance.GetWorld().GetSkillGfxMan().AddSkillGfxEvent(m_idHost, data.idTarget,
// pszFlyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1, 0, null, vFlyScale, vHitScale, data.dwModifier);
// pszflyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1, 0, null, vFlyScale, vHitScale, data.dwModifier);
var target = EC_ManMessageMono.Instance?.GetObject(data.idTarget, 0)?.gameObject.transform;
if (target == null)
{
@@ -818,7 +832,7 @@ public class CECAttackEvent
BMLogger.LogError("Target is null!");
return false;
}
//todo: not set default like this
fullGfx = "程序联入/击中/拳套击中";
CECGameRun.Instance.ShowVfx(fullGfx, target.position, null, 1f);
@@ -867,7 +881,7 @@ public class CECAttackEvent
if (pNPC == null)
return true;
string szFlyGFX = null;
string szflyGFX = null;
string szHitGFX = null;
if (pNPC.IsMonsterNPC())
@@ -875,7 +889,7 @@ public class CECAttackEvent
// TODO: Get monster essence data
// MONSTER_ESSENCE pEssence = ((CECMonster)pNPC).GetDBEssence();
// string fullFlyGfx = pEssence.file_gfx_short;
// szFlyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // skip gfx/
// szflyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // skip gfx/
// string fullHitGfx = pEssence.file_gfx_short_hit;
// szHitGFX = fullHitGfx.Length > 4 ? fullHitGfx.Substring(4) : string.Empty; // skip gfx/
}
@@ -884,14 +898,14 @@ public class CECAttackEvent
// TODO: Get pet essence data
// PET_ESSENCE pEssence = ((CECPet)pNPC).GetDBEssence();
// string fullFlyGfx = pEssence.file_gfx_short;
// szFlyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty;
// szflyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty;
// szHitGFX = "策划联入\\怪物击中\\怪物肉搏击中.gfx"; // Planning link\Monster hit\Monster melee hit.gfx
}
else
return false;
if (string.IsNullOrEmpty(szFlyGFX))
szFlyGFX = null;
if (string.IsNullOrEmpty(szflyGFX))
szflyGFX = null;
if (string.IsNullOrEmpty(szHitGFX))
szHitGFX = null;
@@ -903,7 +917,7 @@ public class CECAttackEvent
{
TARGET_DATA data = m_targets[i];
string pszFlyGFX = szFlyGFX;
string pszflyGFX = szflyGFX;
string pszHitGFX = szHitGFX;
if (data.nDamage <= 0)
{
@@ -914,12 +928,12 @@ public class CECAttackEvent
pszHitGFX = "程序联入\\击中\\无效攻击击中.gfx"; // Program link\Hit\InvalidAttackHit.gfx
}
if (bHideFlyGfx) pszFlyGFX = null;
if (bHideFlyGfx) pszflyGFX = null;
if (bHideHitGfx) pszHitGFX = null;
// TODO: Implement AddSkillGfxEvent
// CECGameRun.Instance.GetWorld().GetSkillGfxMan().AddSkillGfxEvent(m_idHost, data.idTarget,
// pszFlyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1,
// pszflyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1,
// 0, null, vFlyScale, vHitScale, data.dwModifier);
}
}
@@ -302,6 +302,13 @@ namespace BrewMonster.Scripts.Skills
return stub.effect;
return "";
}
public static (string,string,string) GetAllGFX(uint id)
{
SkillStub stub = SkillStub.GetStub(id);
if (stub != null)
return (stub.Getm_szFlyGfxPath(), stub.Getm_szHitGrndGfxPath(), stub.Getm_szHitGfxPath());
return (string.Empty, string.Empty, string.Empty);
}
public virtual byte[] GetElseEffect() { return null; }
// ʹҪMP
@@ -5,10 +5,6 @@ namespace BrewMonster
{
public static partial class SkillStubs
{
public static void Init()
{
var i = 1;
}
// Skill stub declarations
public static Skill1Stub __stub_Skill1Stub = new Skill1Stub();
public static Skill2Stub __stub_Skill2Stub = new Skill2Stub();
@@ -113,6 +113,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/虎击击中.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
@@ -113,6 +113,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/沙陷击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -108,6 +108,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/缩地术.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(292);
range = new Range();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/疾风霹雳击中.gfx";
restrict_weapons.Add(23749);
range = new Range();
range.type = 0;
@@ -76,6 +76,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/凌波微步击中.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
@@ -76,6 +76,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/易筋经.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
@@ -76,6 +76,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/易髓经.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
@@ -76,6 +76,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/金刚经击中.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = string.Empty;
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/法师_法之奥义_击中.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(292);
range = new Range();
@@ -112,6 +112,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/法师_静谧之术_飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/静谧之术_击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/法师_灸焰_飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/法师_灸焰_击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/法师_沙暴_击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/巫师_复仇雷霆_击中.gfx";
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(5);
@@ -112,6 +112,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_狂风.gfx";
restrict_weapons.Add(1);
restrict_weapons.Add(5);
restrict_weapons.Add(9);
@@ -114,6 +114,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_碎颅.gfx";
restrict_weapons.Add(5);
restrict_weapons.Add(1);
restrict_weapons.Add(9);
@@ -114,6 +114,9 @@ namespace BrewMonster
dobless = 1;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/武侠_回旋击.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_回旋击.gfx";
restrict_weapons.Add(9);
restrict_weapons.Add(1);
restrict_weapons.Add(5);
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/龙爪手_飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = string.Empty;
restrict_weapons.Add(182);
restrict_weapons.Add(0);
restrict_weapons.Add(1);
@@ -113,6 +113,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/冰雹飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = string.Empty;
restrict_weapons.Add(0);
restrict_weapons.Add(292);
range = new Range();
@@ -75,6 +75,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/般若心经.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = string.Empty;
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -110,6 +110,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/石破天惊飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/石破天惊击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -55,6 +55,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/法师_冰晶世界_击中.gfx";
range = new Range();
range.type = 0;
pre_skills = new Dictionary<uint, int>();
@@ -112,6 +112,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/法师_静谧之术2_飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/静谧之术2_击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -55,6 +55,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_狂风.gfx";
range = new Range();
range.type = 0;
pre_skills = new Dictionary<uint, int>();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_狂风.gfx";
restrict_weapons.Add(1);
restrict_weapons.Add(5);
restrict_weapons.Add(9);
@@ -55,6 +55,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/武侠_狂风.gfx";
range = new Range();
range.type = 0;
pre_skills = new Dictionary<uint, int>();
@@ -111,6 +111,9 @@ namespace BrewMonster
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = "策划联入/人物技能/飞行/法师_静谧之术_飞行.gfx";
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/击中/静谧之术_击中.gfx";
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();

Some files were not shown because too many files have changed in this diff Show More