mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-09 17:58:20 +00:00
Merge pull request #445 from EmosewaMC/explodingDummyFix
Implemented script for exploding dummy in Nexus Tower Combat Training
This commit is contained in:
commit
b2890262fb
@ -181,6 +181,7 @@
|
||||
#include "NtVentureCannonServer.h"
|
||||
#include "NtCombatChallengeServer.h"
|
||||
#include "NtCombatChallengeDummy.h"
|
||||
#include "NtCombatChallengeExplodingDummy.h"
|
||||
#include "BaseInteractDropLootServer.h"
|
||||
#include "NtAssemblyTubeServer.h"
|
||||
#include "NtParadoxPanelServer.h"
|
||||
@ -615,6 +616,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")
|
||||
|
38
dScripts/NtCombatChallengeExplodingDummy.cpp
Normal file
38
dScripts/NtCombatChallengeExplodingDummy.cpp
Normal file
@ -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<LWOOBJID>(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<LWOOBJID>(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<SkillComponent>();
|
||||
if (skillComponent != nullptr) {
|
||||
skillComponent->CalculateBehavior(1338, 30875, attacker->GetObjectID());
|
||||
}
|
||||
self->Kill(attacker);
|
||||
}
|
8
dScripts/NtCombatChallengeExplodingDummy.h
Normal file
8
dScripts/NtCombatChallengeExplodingDummy.h
Normal file
@ -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;
|
||||
};
|
Loading…
Reference in New Issue
Block a user