From a22e1bd53d53f824b53321399055510c91253d80 Mon Sep 17 00:00:00 2001 From: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> Date: Mon, 7 Feb 2022 03:43:09 -0800 Subject: [PATCH 1/3] Added new case in CppScripts --- dScripts/CppScripts.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dScripts/CppScripts.cpp b/dScripts/CppScripts.cpp index 53cbf425..4c6e1cde 100644 --- a/dScripts/CppScripts.cpp +++ b/dScripts/CppScripts.cpp @@ -177,6 +177,7 @@ #include "NtVentureCannonServer.h" #include "NtCombatChallengeServer.h" #include "NtCombatChallengeDummy.h" +#include "NtCombatChallengeExplodingDummy.h" #include "BaseInteractDropLootServer.h" #include "NtAssemblyTubeServer.h" #include "NtParadoxPanelServer.h" @@ -603,6 +604,8 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr script = new NtCombatChallengeServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_COMBAT_CHALLENGE_DUMMY.lua") script = new NtCombatChallengeDummy(); + else if (scriptName == "scripts\\02_server\\Map\\NT\\\\L_NT_COMBAT_EXPLODING_TARGET.lua") + script = new NtCombatChallengeExplodingDummy(); else if (scriptName == "scripts\\02_server\\Map\\General\\L_BASE_INTERACT_DROP_LOOT_SERVER.lua") script = new BaseInteractDropLootServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_ASSEMBLYTUBE_SERVER.lua") From 0253a1fcb4472e8544889f0cb285c190c7534e27 Mon Sep 17 00:00:00 2001 From: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> Date: Mon, 7 Feb 2022 03:43:30 -0800 Subject: [PATCH 2/3] Added script for exploding asset --- dScripts/NtCombatChallengeExplodingDummy.cpp | 38 ++++++++++++++++++++ dScripts/NtCombatChallengeExplodingDummy.h | 8 +++++ 2 files changed, 46 insertions(+) create mode 100644 dScripts/NtCombatChallengeExplodingDummy.cpp create mode 100644 dScripts/NtCombatChallengeExplodingDummy.h diff --git a/dScripts/NtCombatChallengeExplodingDummy.cpp b/dScripts/NtCombatChallengeExplodingDummy.cpp new file mode 100644 index 00000000..a1b0b288 --- /dev/null +++ b/dScripts/NtCombatChallengeExplodingDummy.cpp @@ -0,0 +1,38 @@ +#include "NtCombatChallengeExplodingDummy.h" +#include "NtCombatChallengeDummy.h" +#include "EntityManager.h" +#include "SkillComponent.h" + +void NtCombatChallengeExplodingDummy::OnDie(Entity* self, Entity* killer) +{ + const auto challengeObjectID = self->GetVar(u"challengeObjectID"); + + auto* challengeObject = EntityManager::Instance()->GetEntity(challengeObjectID); + + if (challengeObject != nullptr) + { + for (CppScripts::Script* script : CppScripts::GetEntityScripts(challengeObject)) + { + script->OnDie(challengeObject, killer); + } + } +} + +void NtCombatChallengeExplodingDummy::OnHitOrHealResult(Entity* self, Entity* attacker, int32_t damage) { + const auto challengeObjectID = self->GetVar(u"challengeObjectID"); + + auto* challengeObject = EntityManager::Instance()->GetEntity(challengeObjectID); + + if (challengeObject != nullptr) + { + for (CppScripts::Script* script : CppScripts::GetEntityScripts(challengeObject)) + { + script->OnHitOrHealResult(challengeObject, attacker, damage); + } + } + auto skillComponent = self->GetComponent(); + if (skillComponent != nullptr) { + skillComponent->CalculateBehavior(1338, 30875, attacker->GetObjectID()); + } + self->Smash(); +} \ No newline at end of file diff --git a/dScripts/NtCombatChallengeExplodingDummy.h b/dScripts/NtCombatChallengeExplodingDummy.h new file mode 100644 index 00000000..c1c5ef1c --- /dev/null +++ b/dScripts/NtCombatChallengeExplodingDummy.h @@ -0,0 +1,8 @@ +#pragma once +#include "CppScripts.h" + +class NtCombatChallengeExplodingDummy : public CppScripts::Script +{ + void OnDie(Entity* self, Entity* killer) override; + void OnHitOrHealResult(Entity* self, Entity* attacker, int32_t damage) override; +}; \ No newline at end of file From 6be274b25939121ded64f2f8439b2684ac702caa Mon Sep 17 00:00:00 2001 From: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 23 Feb 2022 17:38:25 -0800 Subject: [PATCH 3/3] fixed issue --- dScripts/NtCombatChallengeExplodingDummy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dScripts/NtCombatChallengeExplodingDummy.cpp b/dScripts/NtCombatChallengeExplodingDummy.cpp index a1b0b288..dd61817d 100644 --- a/dScripts/NtCombatChallengeExplodingDummy.cpp +++ b/dScripts/NtCombatChallengeExplodingDummy.cpp @@ -34,5 +34,5 @@ void NtCombatChallengeExplodingDummy::OnHitOrHealResult(Entity* self, Entity* at if (skillComponent != nullptr) { skillComponent->CalculateBehavior(1338, 30875, attacker->GetObjectID()); } - self->Smash(); + self->Kill(attacker); } \ No newline at end of file