mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-23 22:17:31 +00:00
34fa43ed93
Utilizes `boost::interprocess` to share a map between worlds. The master server loads the table into memory, and the worlds hook into it when they want to get an entry. This solves the issue of skill delay, but introduces the third-party library Boost. There should be a conversation about the introduction of Boost — it is a large library and adds extra steps to the installation.
36 lines
672 B
C++
36 lines
672 B
C++
#include "NpcCombatSkillBehavior.h"
|
|
#include "BehaviorBranchContext.h"
|
|
#include "BehaviorContext.h"
|
|
|
|
|
|
void NpcCombatSkillBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bit_stream, BehaviorBranchContext branch)
|
|
{
|
|
context->skillTime = this->m_npcSkillTime;
|
|
|
|
for (auto* behavior : this->m_behaviors)
|
|
{
|
|
behavior->Calculate(context, bit_stream, branch);
|
|
}
|
|
}
|
|
|
|
void NpcCombatSkillBehavior::Load()
|
|
{
|
|
this->m_npcSkillTime = GetFloat("npc skill time");
|
|
|
|
std::string ss = "behavior ";
|
|
|
|
int i = 1;
|
|
|
|
while (true) {
|
|
std::string s = ss + std::to_string(i);
|
|
|
|
if (GetInt(s, 0) == 0) {
|
|
break;
|
|
}
|
|
|
|
m_behaviors.push_back(GetAction(s));
|
|
|
|
++i;
|
|
}
|
|
}
|