mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-12 19:28:21 +00:00
Implements all the old pickup scripts
Testsed to make sure they work Tested to make sure existing script works still killing it immedialtely is live accurate, the timer was not accurate
This commit is contained in:
parent
33f9e9c8cb
commit
37fe935a3a
@ -160,7 +160,6 @@
|
||||
#include "AgSalutingNpcs.h"
|
||||
#include "BossSpiderQueenEnemyServer.h"
|
||||
#include "RockHydrantSmashable.h"
|
||||
#include "SpecialImaginePowerupSpawner.h"
|
||||
|
||||
// Misc Scripts
|
||||
#include "ExplodingAsset.h"
|
||||
@ -295,6 +294,21 @@
|
||||
// WBL scripts
|
||||
#include "WblGenericZone.h"
|
||||
|
||||
// pickups
|
||||
#include "Special1BronzeCoinSpawner.h"
|
||||
#include "Special1SilverCoinSpawner.h"
|
||||
#include "Special10BronzeCoinSpawner.h"
|
||||
#include "Special25BronzeCoinSpawner.h"
|
||||
#include "Special10SilverCoinSpawner.h"
|
||||
#include "Special25SilverCoinSpawner.h"
|
||||
#include "Special1GoldCoinSpawner.h"
|
||||
#include "Special10GoldCoinSpawner.h"
|
||||
#include "Special25GoldCoinSpawner.h"
|
||||
#include "SpecialImaginePowerupSpawner.h"
|
||||
#include "SpecialImaginePowerupSpawner2pt.h"
|
||||
#include "SpecialLifePowerupSpawner.h"
|
||||
#include "SpecialArmorPowerupSpawner.h"
|
||||
|
||||
//Big bad global bc this is a namespace and not a class:
|
||||
InvalidScript* invalidToReturn = new InvalidScript();
|
||||
std::map<std::string, CppScripts::Script*> m_Scripts;
|
||||
@ -371,8 +385,6 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
|
||||
script = new RemoveRentalGear();
|
||||
else if (scriptName == "scripts\\02_server\\Map\\AG\\L_NPC_NJ_ASSISTANT_SERVER.lua")
|
||||
script = new NpcNjAssistantServer();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_IMAGINE-POWERUP-SPAWNER.lua")
|
||||
script = new SpecialImaginePowerupSpawner();
|
||||
else if (scriptName == "scripts\\ai\\AG\\L_AG_SALUTING_NPCS.lua")
|
||||
script = new AgSalutingNpcs();
|
||||
else if (scriptName == "scripts\\ai\\AG\\L_AG_JET_EFFECT_SERVER.lua")
|
||||
@ -860,6 +872,34 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
|
||||
else if (scriptName == "scripts\\zone\\LUPs\\WBL_generic_zone.lua")
|
||||
script = new WblGenericZone();
|
||||
|
||||
// pickups
|
||||
if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_1_BRONZE-COIN-SPAWNER.lua")
|
||||
script = new Special1BronzeCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_1_SILVER-COIN-SPAWNER.lua")
|
||||
script = new Special1SilverCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_10_BRONZE-COIN-SPAWNER.lua")
|
||||
script = new Special10BronzeCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_25_BRONZE-COIN-SPAWNER.lua")
|
||||
script = new Special25BronzeCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_10_SILVER-COIN-SPAWNER.lua")
|
||||
script = new Special10SilverCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_25_SILVER-COIN-SPAWNER.lua")
|
||||
script = new Special25SilverCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_1_GOLD-COIN-SPAWNER.lua")
|
||||
script = new Special1GoldCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_10_GOLD-COIN-SPAWNER.lua")
|
||||
script = new Special10GoldCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_25_GOLD-COIN-SPAWNER.lua")
|
||||
script = new Special25GoldCoinSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_IMAGINE-POWERUP-SPAWNER.lua")
|
||||
script = new SpecialImaginePowerupSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_IMAGINE-POWERUP-SPAWNER-2PT.lua")
|
||||
script = new SpecialImaginePowerupSpawner2pt();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_LIFE-POWERUP-SPAWNER.lua")
|
||||
script = new SpecialLifePowerupSpawner();
|
||||
else if (scriptName == "scripts\\ai\\SPEC\\L_SPECIAL_ARMOR-POWERUP-SPAWNER.lua")
|
||||
script = new SpecialArmorPowerupSpawner();
|
||||
|
||||
// handle invalid script reporting if the path is greater than zero and it's not an ignored script
|
||||
// information not really needed for sys admins but is for developers
|
||||
else if (script == invalidToReturn) {
|
||||
|
@ -1,3 +1,4 @@
|
||||
set(DSCRIPTS_SOURCES_AI_SPEC
|
||||
"SpecialImaginePowerupSpawner.cpp"
|
||||
set(DSCRIPTS_SOURCES_AI_SPEC
|
||||
"SpecialCoinSpawner.cpp"
|
||||
"SpecialPowerupSpawner.cpp"
|
||||
PARENT_SCOPE)
|
||||
|
13
dScripts/ai/SPEC/Special10BronzeCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special10BronzeCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL10BRONZECOINSPAWNER__H__
|
||||
#define __SPECIAL10BRONZECOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special10BronzeCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special10BronzeCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 10;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL10BRONZECOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special10GoldCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special10GoldCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL10GOLDCOINSPAWNER__H__
|
||||
#define __SPECIAL10GOLDCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special10GoldCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special10GoldCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 100000;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL10GOLDCOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special10SilverCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special10SilverCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL10SILVERCOINSPAWNER__H__
|
||||
#define __SPECIAL10SILVERCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special10SilverCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special10SilverCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 1000;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL10SILVERCOINSPAWNER__H__
|
15
dScripts/ai/SPEC/Special1BronzeCoinSpawner.h
Normal file
15
dScripts/ai/SPEC/Special1BronzeCoinSpawner.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef __SPECIAL1BRONZECOINSPAWNER__H__
|
||||
#define __SPECIAL1BRONZECOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special1BronzeCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special1BronzeCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 1;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL1BRONZECOINSPAWNER__H__
|
||||
|
||||
|
13
dScripts/ai/SPEC/Special1GoldCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special1GoldCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL1GOLDCOINSPAWNER__H__
|
||||
#define __SPECIAL1GOLDCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special1GoldCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special1GoldCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 10000;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL1GOLDCOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special1SilverCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special1SilverCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL1SILVERCOINSPAWNER__H__
|
||||
#define __SPECIAL1SILVERCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special1SilverCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special1SilverCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 100;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL1SILVERCOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special25BronzeCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special25BronzeCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL25BRONZECOINSPAWNER__H__
|
||||
#define __SPECIAL25BRONZECOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special25BronzeCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special25BronzeCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 25;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL25BRONZECOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special25GoldCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special25GoldCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL25GOLDCOINSPAWNER__H__
|
||||
#define __SPECIAL25GOLDCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special25GoldCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special25GoldCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 250000;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL25GOLDCOINSPAWNER__H__
|
13
dScripts/ai/SPEC/Special25SilverCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/Special25SilverCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIAL25SILVERCOINSPAWNER__H__
|
||||
#define __SPECIAL25SILVERCOINSPAWNER__H__
|
||||
|
||||
#include "SpecialCoinSpawner.h"
|
||||
|
||||
class Special25SilverCoinSpawner : public SpecialCoinSpawner {
|
||||
public:
|
||||
Special25SilverCoinSpawner() : SpecialCoinSpawner(m_currencyDenomination) {};
|
||||
private:
|
||||
static const uint32_t m_currencyDenomination = 2500;
|
||||
};
|
||||
|
||||
#endif //!__SPECIAL25SILVERCOINSPAWNER__H__
|
14
dScripts/ai/SPEC/SpecialArmorPowerupSpawner.h
Normal file
14
dScripts/ai/SPEC/SpecialArmorPowerupSpawner.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef __SPECIALARMORPOWERUPSPAWNER__H__
|
||||
#define __SPECIALARMORPOWERUPSPAWNER__H__
|
||||
|
||||
#include "SpecialPowerupSpawner.h"
|
||||
|
||||
class SpecialArmorPowerupSpawner : public SpecialPowerupSpawner {
|
||||
public:
|
||||
SpecialArmorPowerupSpawner() : SpecialPowerupSpawner(m_SkillId) {};
|
||||
private:
|
||||
uint32_t m_SkillId = 80;
|
||||
};
|
||||
|
||||
|
||||
#endif //!__SPECIALARMORPOWERUPSPAWNER__H__
|
16
dScripts/ai/SPEC/SpecialCoinSpawner.cpp
Normal file
16
dScripts/ai/SPEC/SpecialCoinSpawner.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#include "SpecialCoinSpawner.h"
|
||||
#include "CharacterComponent.h"
|
||||
|
||||
void SpecialCoinSpawner::OnStartup(Entity* self) {
|
||||
self->SetProximityRadius(1.5f, "powerupEnter");
|
||||
}
|
||||
|
||||
void SpecialCoinSpawner::OnProximityUpdate(Entity* self, Entity* entering, const std::string name, const std::string status) {
|
||||
if (name != "powerupEnter" && status != "ENTER") return;
|
||||
if (!entering->IsPlayer()) return;
|
||||
auto character = entering->GetCharacter();
|
||||
if (!character) return;
|
||||
GameMessages::SendPlayFXEffect(self, -1, u"pickup", "", LWOOBJID_EMPTY, 1, 1, true);
|
||||
character->SetCoins(character->GetCoins() + this->m_currencyDenomination, eLootSourceType::LOOT_SOURCE_CURRENCY);
|
||||
self->Smash(entering->GetObjectID(), eKillType::SILENT);
|
||||
}
|
13
dScripts/ai/SPEC/SpecialCoinSpawner.h
Normal file
13
dScripts/ai/SPEC/SpecialCoinSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class SpecialCoinSpawner : public CppScripts::Script {
|
||||
public:
|
||||
SpecialCoinSpawner(uint32_t CurrencyDenomination) {
|
||||
m_currencyDenomination = CurrencyDenomination;
|
||||
};
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnProximityUpdate(Entity* self, Entity* entering, const std::string name, const std::string status) override;
|
||||
private:
|
||||
int32_t m_currencyDenomination = 0;
|
||||
};
|
@ -1,9 +1,13 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
#ifndef __SPECIALIMAGINEPOWERUPSPAWNER__H__
|
||||
#define __SPECIALIMAGINEPOWERUPSPAWNER__H__
|
||||
|
||||
class SpecialImaginePowerupSpawner final : public CppScripts::Script
|
||||
{
|
||||
#include "SpecialPowerupSpawner.h"
|
||||
|
||||
class SpecialImaginePowerupSpawner : public SpecialPowerupSpawner {
|
||||
public:
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) override;
|
||||
SpecialImaginePowerupSpawner() : SpecialPowerupSpawner(m_SkillId) {};
|
||||
private:
|
||||
uint32_t m_SkillId = 13;
|
||||
};
|
||||
|
||||
#endif //!__SPECIALIMAGINEPOWERUPSPAWNER__H__
|
||||
|
13
dScripts/ai/SPEC/SpecialImaginePowerupSpawner2pt.h
Normal file
13
dScripts/ai/SPEC/SpecialImaginePowerupSpawner2pt.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIALIMAGINEPOWERUPSPAWNER2PT__H__
|
||||
#define __SPECIALIMAGINEPOWERUPSPAWNER2PT__H__
|
||||
|
||||
#include "SpecialPowerupSpawner.h"
|
||||
|
||||
class SpecialImaginePowerupSpawner2pt : public SpecialPowerupSpawner {
|
||||
public:
|
||||
SpecialImaginePowerupSpawner2pt() : SpecialPowerupSpawner(m_SkillId) {};
|
||||
private:
|
||||
uint32_t m_SkillId = 129;
|
||||
};
|
||||
|
||||
#endif //!__SPECIALIMAGINEPOWERUPSPAWNER2PT__H__
|
13
dScripts/ai/SPEC/SpecialLifePowerupSpawner.h
Normal file
13
dScripts/ai/SPEC/SpecialLifePowerupSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef __SPECIALLIFEPOWERUPSPAWNER__H__
|
||||
#define __SPECIALLIFEPOWERUPSPAWNER__H__
|
||||
|
||||
#include "SpecialPowerupSpawner.h"
|
||||
|
||||
class SpecialLifePowerupSpawner : public SpecialPowerupSpawner {
|
||||
public:
|
||||
SpecialLifePowerupSpawner() : SpecialPowerupSpawner(m_SkillId) {};
|
||||
private:
|
||||
uint32_t m_SkillId = 5;
|
||||
};
|
||||
|
||||
#endif //!__SPECIALLIFEPOWERUPSPAWNER__H__
|
@ -2,7 +2,6 @@
|
||||
|
||||
#include "GameMessages.h"
|
||||
#include "SkillComponent.h"
|
||||
#include "DestroyableComponent.h"
|
||||
#include "EntityManager.h"
|
||||
#include "eReplicaComponentType.h"
|
||||
|
||||
@ -12,37 +11,16 @@ void SpecialImaginePowerupSpawner::OnStartup(Entity* self) {
|
||||
}
|
||||
|
||||
void SpecialImaginePowerupSpawner::OnProximityUpdate(Entity* self, Entity* entering, const std::string name, const std::string status) {
|
||||
if (name != "powerupEnter" && status != "ENTER") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entering->GetLOT() != 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (self->GetVar<bool>(u"bIsDead")) {
|
||||
return;
|
||||
}
|
||||
if (name != "powerupEnter" && status != "ENTER") return;
|
||||
if (!entering->IsPlayer()) return;
|
||||
if (self->GetVar<bool>(u"bIsDead")) return;
|
||||
|
||||
GameMessages::SendPlayFXEffect(self, -1, u"pickup", "", LWOOBJID_EMPTY, 1, 1, true);
|
||||
|
||||
SkillComponent* skillComponent;
|
||||
if (!self->TryGetComponent(eReplicaComponentType::SKILL, skillComponent)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto source = entering->GetObjectID();
|
||||
|
||||
skillComponent->CalculateBehavior(13, 20, source);
|
||||
|
||||
DestroyableComponent* destroyableComponent;
|
||||
if (!self->TryGetComponent(eReplicaComponentType::DESTROYABLE, destroyableComponent)) {
|
||||
return;
|
||||
}
|
||||
if (!self->TryGetComponent(eReplicaComponentType::SKILL, skillComponent)) return;
|
||||
skillComponent->CastSkill(13, entering->GetObjectID());
|
||||
|
||||
self->SetVar(u"bIsDead", true);
|
||||
|
||||
self->AddCallbackTimer(1.0f, [self]() {
|
||||
EntityManager::Instance()->ScheduleForKill(self);
|
||||
});
|
||||
self->Smash(entering->GetObjectID(), eKillType::SILENT);
|
||||
}
|
13
dScripts/ai/SPEC/SpecialPowerupSpawner.h
Normal file
13
dScripts/ai/SPEC/SpecialPowerupSpawner.h
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class SpecialPowerupSpawner : public CppScripts::Script {
|
||||
public:
|
||||
SpecialPowerupSpawner(uint32_t skillId) {
|
||||
m_SkillId = skillId;
|
||||
};
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) override;
|
||||
private:
|
||||
uint32_t m_SkillId = 0;
|
||||
};
|
Loading…
Reference in New Issue
Block a user