fix ontarget but aoe skill

This commit is contained in:
vuong dinh hoang
2026-05-28 17:55:56 +07:00
parent 0d1ce5e957
commit c8bca5cb18
12 changed files with 24614 additions and 24582 deletions
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
m_currentHash:
serializedVersion: 2
Hash: 604dc303c2afde1971b4eda2116ad3c8
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -80,6 +80,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0c0d0e0020ae4d546b62056815176bc0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u706B\u6D77\u5200\u5C71\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0de7e3933d738b54d9584f3523642248
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u91D1\u949F\u7F691.gfx"
m_ReadOnly: 0
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c90db784f47aca643935a0fc667ca7af
guid: 0c0d0e0020ae4d546b62056815176bc0
PrefabImporter:
externalObjects: {}
userData:
@@ -9,8 +9,8 @@ namespace BrewMonster
/// <summary>NDJSON debug session logger (agent instrumentation).</summary>
public static class DebugSessionLog
{
const string LogPath = @"c:\Hoang\PW\debug-f32222.log";
const string SessionId = "f32222";
const string LogPath = @"c:\Hoang\PW\debug-a9c674.log";
const string SessionId = "a9c674";
public static void Write(string location, string message, string hypothesisId, object data, string runId = "pre-fix")
{
@@ -38,11 +38,22 @@ namespace BrewMonster
public bool castInTargets;
public bool alreadyFired;
public int flyClusterCount;
public int flyDelayMs;
public int eventId;
public string flyGfx;
public string prevState;
public string newState;
public int frame;
public float spawnX;
public float spawnY;
public float spawnZ;
public float targetX;
public float targetY;
public float targetZ;
public float radius;
public float offsetMag;
public bool isCluster;
public bool isArea;
}
}
#endif
@@ -109,6 +109,12 @@ public class CECPendingLogoutHalf : CECPendingAction
bool bSuccess = false;
if (IsInGame())
{
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("CECPendingLogoutHalf.Execute", "logout_half_execute", "E",
new DebugSessionPayload { frame = Time.frameCount });
#endif
#endregion
// TODO: currently, we logout logic != C++, need to implement properly
GetGameSession().c2s_SendCmdLogout(PendingActionConstants._PLAYER_LOGOUT_HALF);
// UnityGameSession.ReturnToSelectRole();
@@ -151,7 +151,7 @@ namespace BrewMonster
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("A3DSkillGfxMan.AddOneSkillGfxEvent", "add_gfx_event", "C",
new DebugSessionPayload { eventId = pEvent.m_debugEventId, hostId = (int)nHostID, targetId = (int)nTargetID, flyGfx = szFlyGfx ?? "" });
new DebugSessionPayload { eventId = pEvent.m_debugEventId, hostId = (int)nHostID, targetId = (int)nTargetID, flyGfx = szFlyGfx ?? "", flyDelayMs = (int)dwDelayTime });
#endif
#endregion
@@ -376,6 +376,7 @@ namespace BrewMonster
200, // timeToBeFired
1000 // timeToDoDamage
);
BMLogger.LogError("HoangDev: idTarget:" + idTarget);
m_targets.AddLast(newEvent);
#if UNITY_EDITOR
if (m_AttackList.Count == 0)
@@ -630,12 +631,37 @@ namespace BrewMonster
m_bFadeOut = stub.m_bFadeOut;
m_bRelScl = stub.m_bRelScl;
m_fDefTarScl = stub.m_fDefTarScl;
//m_param = stub.m_param;
m_param = BuildSkillParam(stub);
m_szFlySfxPath = stub.m_szFlySfxPath ?? string.Empty;
m_szHitSfxPath = stub.m_szHitSfxPath ?? string.Empty;
m_szHitGrndSfxPath = stub.m_szHitGrndSfxPath ?? string.Empty;
}
static GFX_SKILL_PARAM BuildSkillParam(BrewMonster.Scripts.Skills.SkillStub stub)
{
var param = new GFX_SKILL_PARAM
{
m_bArea = stub.m_bArea,
m_Shape = stub.m_Shape,
m_vSize = new A3DVECTOR3(stub.m_vGfxSize.x, stub.m_vGfxSize.y, stub.m_vGfxSize.z)
};
switch (stub.m_paramType)
{
case GfxSkillValType.enumGfxSkillBool:
param.value = new GFX_SKILL_PARAM.ValueUnion { bVal = stub.m_paramFloatVal != 0f };
break;
case GfxSkillValType.enumGfxSkillFloat:
param.value = new GFX_SKILL_PARAM.ValueUnion { fVal = stub.m_paramFloatVal };
break;
default:
param.value = new GFX_SKILL_PARAM.ValueUnion { nVal = (int)stub.m_paramFloatVal };
break;
}
return param;
}
// GFX prefab accessors / GFX预制体访问器
public GameObject GetFlyGFX() => m_szFlyGfx;
public GameObject GetHitGFX() => m_szHitGfx;
@@ -706,18 +732,11 @@ namespace BrewMonster
m_bFadeOut = skillStub.m_bFadeOut;
m_bRelScl = skillStub.m_bRelScl;
m_fDefTarScl = skillStub.m_fDefTarScl;
m_param = BuildSkillParam(skillStub);
m_szFlySfxPath = skillStub.m_szFlySfxPath ?? string.Empty;
m_szHitSfxPath = skillStub.m_szHitSfxPath ?? string.Empty;
m_szHitGrndSfxPath = skillStub.m_szHitGrndSfxPath ?? string.Empty;
// Area / 区域
/* m_param.m_bArea = skillStub.m_bArea;
m_param.m_Shape = skillStub.m_Shape;
m_param.m_vSize = skillStub.m_vSize;
// Param value / 参数值
m_param.value = skillStub.m_param.value;*/
}
else
{
@@ -817,6 +836,7 @@ namespace BrewMonster
if (nCastTargetID == tar.idTarget)
bCastInTargets = true;
BMLogger.LogError("HoangDev: nCastTargetID:"+nCastTargetID);
AddOneTarget(nCastTargetID, nHostID, szFly, szHit, tar, i == 0, bIsGoblinSkill);
}
}
@@ -140,15 +140,14 @@ namespace BrewMonster
m_bRelScl = true;
m_fDefTarScl = 1.5f;
// Area parameters (commented out) / 区域参数(已注释)
// m_bArea = false;
// m_Shape = (EmitShape)0;
// m_vSize = new Vector3(0.0f, 0.0f, 0.0f);
// Area parameters / 区域参数
m_bArea = false;
m_Shape = EmitShape.enumBox;
m_vGfxSize = Vector3.zero;
// Param (commented out) / 参数(已注释)
// m_paramType = (GfxSkillValType)2;
// m_param = new GFX_SKILL_PARAM();
// m_param.fVal = 8.0f;
// Param radius for OnTarget cluster spread / OnTarget群集散布半径
m_paramType = GfxSkillValType.enumGfxSkillFloat;
m_paramFloatVal = 8.0f;
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -140,15 +140,14 @@ namespace BrewMonster
m_bRelScl = true;
m_fDefTarScl = 1.8f;
// Area parameters (commented out) / 区域参数(已注释)
// m_bArea = false;
// m_Shape = (EmitShape)0;
// m_vSize = new Vector3(0.0f, 0.0f, 0.0f);
// Area parameters / 区域参数
m_bArea = false;
m_Shape = EmitShape.enumBox;
m_vGfxSize = Vector3.zero;
// Param (commented out) / 参数(已注释)
// m_paramType = (GfxSkillValType)2;
// m_param = new GFX_SKILL_PARAM();
// m_param.fVal = 8.0f;
// Param radius for OnTarget cluster spread / OnTarget群集散布半径
m_paramType = GfxSkillValType.enumGfxSkillFloat;
m_paramFloatVal = 8.0f;
restrict_weapons.Add(292);
restrict_weapons.Add(0);
range = new Range();
@@ -1,6 +1,7 @@
using BrewMonster.Assets.PerfectWorld.Scripts.Skills;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
namespace BrewMonster.Scripts.Skills
{
@@ -791,6 +792,11 @@ namespace BrewMonster.Scripts.Skills
public bool m_bFadeOut = false;
public bool m_bRelScl = true;
public float m_fDefTarScl = 1.8f;
public bool m_bArea = false;
public EmitShape m_Shape = EmitShape.enumBox;
public Vector3 m_vGfxSize = Vector3.zero;
public GfxSkillValType m_paramType = GfxSkillValType.enumGfxSkillInt;
public float m_paramFloatVal = 0f;
// // Combo related
public int combosk_preskill;
@@ -25,11 +25,11 @@ namespace BrewMonster
public override void StartMove(Vector3 vHost, Vector3 vTarget)
{
m_vPos = vTarget;
/*m_vMoveDir = vTarget - vHost;
m_vMoveDir.y = 0; // C++: zero out Y before normalize
m_vMoveDir = vTarget - vHost;
m_vMoveDir.y = 0;
if (Normalize(ref m_vMoveDir) == 0)
{
m_vMoveDir = Vector3.forward; // _unit_z
m_vMoveDir = Vector3.forward;
}
if (m_bOneOfCluser)
@@ -44,8 +44,27 @@ namespace BrewMonster
else
{
m_vOffset = Vector3.zero;
}*/
}
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("CGfxOnTargetMove.StartMove", "on_target_start", "F",
new DebugSessionPayload
{
spawnX = m_vPos.x,
spawnY = m_vPos.y,
spawnZ = m_vPos.z,
targetX = vTarget.x,
targetY = vTarget.y,
targetZ = vTarget.z,
radius = m_fRadius,
offsetMag = m_vOffset.magnitude,
isCluster = m_bOneOfCluser,
isArea = m_bArea,
frame = Time.frameCount
});
#endif
#endregion
}
/// <summary>
@@ -54,10 +73,7 @@ namespace BrewMonster
/// </summary>
public override bool TickMove(uint dwDeltaTime, Vector3 vHostPos, Vector3 vTargetPos)
{
/* BMLogger.LogError("CGfxOnTargetMove Tick");
Vector3 oldPos = m_vPos;
m_vPos = vTargetPos + m_vOffset;*/
m_vPos = vTargetPos + m_vOffset;
return false; // C++ returns false — hit triggered by fly time timeout
}