|
@@ -554,16 +554,19 @@ namespace CommonAI.ZoneClient
|
|
|
//ClientLog.LogError("is_skill_end: true");
|
|
|
}
|
|
|
OnCDStateChange?.Invoke();
|
|
|
- if (Data.ActionQueue[CurrentActionID].ShowChargeTimeMS > 0)
|
|
|
- {
|
|
|
- ChargeProgress = 0f;
|
|
|
- ChargeTimeMS = 0;
|
|
|
- OnChargeStateChange?.Invoke();
|
|
|
- }
|
|
|
- else if (ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
- {
|
|
|
- ChargeProgress = 1f;
|
|
|
- OnChargeStateChange?.Invoke();
|
|
|
+ if (OnChargeStateChange != null)
|
|
|
+ {
|
|
|
+ if (Data.ActionQueue[CurrentActionID].ShowChargeTimeMS > 0)
|
|
|
+ {
|
|
|
+ ChargeProgress = 0f;
|
|
|
+ ChargeTimeMS = 0;
|
|
|
+ OnChargeStateChange.Invoke();
|
|
|
+ }
|
|
|
+ else if (ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
+ {
|
|
|
+ ChargeProgress = 1f;
|
|
|
+ OnChargeStateChange.Invoke();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
public byte NextAction()
|
|
@@ -667,10 +670,10 @@ namespace CommonAI.ZoneClient
|
|
|
this.is_skill_end = true;
|
|
|
internal_update(0);
|
|
|
OnCDStateChange?.Invoke();
|
|
|
- if(ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
+ if(OnChargeStateChange != null && ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
{
|
|
|
ChargeProgress = 1f;
|
|
|
- OnChargeStateChange?.Invoke();
|
|
|
+ OnChargeStateChange.Invoke();
|
|
|
}
|
|
|
}
|
|
|
internal void Update(int intervalMS)
|
|
@@ -682,22 +685,25 @@ namespace CommonAI.ZoneClient
|
|
|
SetMutilTime();
|
|
|
}
|
|
|
|
|
|
- var aq = Data.ActionQueue[CurrentActionID];
|
|
|
- if (aq.ShowChargeTimeMS > 0)
|
|
|
- {
|
|
|
- ChargeTimeMS += (uint)intervalMS;
|
|
|
- if (ChargeProgress < 1)
|
|
|
- {
|
|
|
- ChargeProgress = ChargeTimeMS / (float)aq.ShowChargeTimeMS;
|
|
|
- if (ChargeProgress > 1) ChargeProgress = 1f;
|
|
|
- OnChargeStateChange?.Invoke();
|
|
|
+ if (OnChargeStateChange != null && CurrentActionID >= 0 && CurrentActionID < Data.ActionQueue.Count)
|
|
|
+ {
|
|
|
+ var aq = Data.ActionQueue[CurrentActionID];
|
|
|
+ if (aq.ShowChargeTimeMS > 0)
|
|
|
+ {
|
|
|
+ ChargeTimeMS += (uint)intervalMS;
|
|
|
+ if (ChargeProgress < 1)
|
|
|
+ {
|
|
|
+ ChargeProgress = ChargeTimeMS / (float)aq.ShowChargeTimeMS;
|
|
|
+ if (ChargeProgress > 1) ChargeProgress = 1f;
|
|
|
+ OnChargeStateChange.Invoke();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
+ {
|
|
|
+ ChargeProgress = 1f;
|
|
|
+ OnChargeStateChange.Invoke();
|
|
|
}
|
|
|
}
|
|
|
- else if (ChargeProgress > 0 && ChargeProgress < 1)
|
|
|
- {
|
|
|
- ChargeProgress = 1f;
|
|
|
- OnChargeStateChange?.Invoke();
|
|
|
- }
|
|
|
}
|
|
|
internal void SetPassTime(int passTime)
|
|
|
{
|
|
@@ -720,6 +726,7 @@ namespace CommonAI.ZoneClient
|
|
|
|
|
|
private void internal_update(int intervalMS)
|
|
|
{
|
|
|
+ pass_time_ms += intervalMS;
|
|
|
if (pass_time_ms >= FullCDTimeMS)
|
|
|
{
|
|
|
if (percent < 1)
|
|
@@ -731,7 +738,6 @@ namespace CommonAI.ZoneClient
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- pass_time_ms += intervalMS;
|
|
|
percent = (float)pass_time_ms / FullCDTimeMS;
|
|
|
}
|
|
|
}
|