mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-06 10:44:08 +00:00
Organize dScripts (#814)
* Organize dScripts whitespace Remove parent scope Remove parent scope from initial setter Remove debug Remove helper programs * Fix NtImagimeterVisibility script Co-authored-by: aronwk-aaron <aronwk.aaron@gmail.com>
This commit is contained in:
24
dScripts/EquipmentScripts/FireFirstSkillonStartup.cpp
Normal file
24
dScripts/EquipmentScripts/FireFirstSkillonStartup.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "FireFirstSkillonStartup.h"
|
||||
#include "Entity.h"
|
||||
#include "SkillComponent.h"
|
||||
#include "CDClientDatabase.h"
|
||||
#include "CDObjectSkillsTable.h"
|
||||
|
||||
void FireFirstSkillonStartup::OnStartup(Entity* self) {
|
||||
auto skillComponent = self->GetComponent<SkillComponent>();
|
||||
if (!skillComponent) return;
|
||||
|
||||
// Get the skill IDs of this object.
|
||||
CDObjectSkillsTable* skillsTable = CDClientManager::Instance()->GetTable<CDObjectSkillsTable>("ObjectSkills");
|
||||
std::vector<CDObjectSkills> skills = skillsTable->Query([=](CDObjectSkills entry) {return (entry.objectTemplate == self->GetLOT()); });
|
||||
|
||||
// For each skill, cast it with the associated behavior ID.
|
||||
for (auto skill : skills) {
|
||||
CDSkillBehaviorTable* skillBehaviorTable = CDClientManager::Instance()->GetTable<CDSkillBehaviorTable>("SkillBehavior");
|
||||
CDSkillBehavior behaviorData = skillBehaviorTable->GetSkillByID(skill.skillID);
|
||||
|
||||
// Should parent entity be null, make the originator self.
|
||||
const auto target = self->GetParentEntity() ? self->GetParentEntity()->GetObjectID() : self->GetObjectID();
|
||||
skillComponent->CalculateBehavior(skill.skillID, behaviorData.behaviorID, LWOOBJID_EMPTY, false, false, target);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user