Ich sah die videos und wir bekommen große Ergebnisse in diesem Jahr nach dem Einpflanzen von Ihnen, und ich schlich das Zeug oben drauf.. Anstelle der Verwendung einer normalen Pfanne, Deckel, Decke ich die Pfanne mit der Platte werde ich mit dem servieren die Eier. Dann ich don ' T haben, waschen Sie den Deckel, und die Eier bekommen, serviert auf einem schönen warmen Platte. Die Unkräuter, die wir erhalten, verwurzelt in den "joins" nicht in der Schicht darunter (mit sehr wenigen Ausnahmen wie dem Löwenzahn, wenn wir nicht aufpasst) Thx, das funktioniert aber teilweise. Inhalte sollten in HTML sein, aber wenn ich die Datei öffnen, es ist so etwas wie diese (Ausschnitt aus der Datei): VETTEL[21G(B[m[39;49m. Programm den Namen "live-f1". live-f1 > live_f1_dump.melden

Es gibt mehrere Probleme mit dem code:

  1. Wenn es keine debufs, keine Schäden genommen werden würde.
  2. DestroyMe() Funktion name klingt gefährlich. Je nachdem, wie Ihr implementiert, Sie könnte oder könnte nicht ein Problem sein. Wenn es nur einen Aufruf von Destruktor des aktuellen Objekts, eingewickelt in eine Funktion, dann gibt es ein Problem, wie das Objekt würde zerstört werden in der Mitte der Ausführung von code. Wenn es ein Aufruf einer Funktion, die Warteschlangen Ereignis löschen des aktuellen Objektes, dann ist es kein Problem, da das Objekt zerstört werden würde, nachdem er vervollständigt seine Ausführung und die Ereignis-Schleife in tritt.
  3. Das eigentliche Problem scheint zu sein, erwähnt im anime, die "Es ruft Sie den gleichen Vorgang immer und immer wieder" - es rufen DestroyMe() solange m_currentHealth <= 0.f , und es gibt mehr debuffs Links zu Durchlaufen, das dazu führen könnte, DestroyMe() aufgerufen wird, mehrere Male, immer und immer wieder. Die Schleife stoppen nach dem ersten DestroyMe() aufrufen, weil wenn ein Objekt mehr als einmal die Ergebnisse im Speicher Korruption, die wahrscheinlich zu einem Absturz führen auf lange Sicht.

Ich bin mir nicht wirklich sicher, warum jeder debuf nimmt die Gesundheit, statt die Gesundheit weggenommen, nur einmal, mit den Auswirkungen von allen debuffs angewendet wird auf den ersten Schaden genommen, aber ich gehe davon aus, dass die richtige Spiel-Logik.

Der richtige code wäre

// die Berechnung des Schadens, wenn Sie angegriffen werden
void DestructibleActor::ReceiveDamage(float sourceDamage) 
{
 // debuffs anwenden
 auto resolvedDamage = sourceDamage;
 for (const auto& debuf:m_debufs)
{
 resolvedDamage = debuf.ApplyToDamage(resolvedDamage);
 m_currentHealth -= resolvedDamage
 wenn (m_currentHealth <= 0.f)
{
 m_currentHealth = 0.f;
DestroyMe();
break;
}
}
}