mirror of
https://github.com/therealKyp/Earth-and-Beyond-server
synced 2026-08-13 22:23:03 -04:00
71 lines
No EOL
1.3 KiB
C++
71 lines
No EOL
1.3 KiB
C++
#include "PlayerEffects.h"
|
|
#include "PlayerClass.h"
|
|
|
|
|
|
Effects::Effects()
|
|
{
|
|
m_Player = 0;
|
|
}
|
|
|
|
Effects::~Effects()
|
|
{
|
|
m_EffectList.clear();
|
|
}
|
|
|
|
void Effects::Init(Player * Owner)
|
|
{
|
|
m_Player = Owner;
|
|
}
|
|
|
|
int Effects::AddEffect(ObjectEffect *obj_effect)
|
|
{
|
|
int EffectID = GetNet7TickCount();
|
|
|
|
obj_effect->EffectID = EffectID;
|
|
memcpy(&m_EffectList[EffectID].obj_effect, obj_effect, sizeof(ObjectEffect)); // Copy effect in
|
|
|
|
// Send to all player in your range
|
|
if(m_Player->GetStartStatus())
|
|
{
|
|
m_Player->SendObjectEffectRL(obj_effect);
|
|
}
|
|
|
|
return EffectID;
|
|
}
|
|
|
|
bool Effects::RemoveEffect(int EffectID)
|
|
{
|
|
if (m_EffectList.count(EffectID) != 0)
|
|
{
|
|
m_EffectList.erase(m_EffectList.find(EffectID));
|
|
|
|
// Send Remove Effect to Range List
|
|
m_Player->RemoveEffectRL(EffectID);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
LogMessage("Warning: Removing an Effect ID that does not exsist!\n");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
bool Effects::SendRemoveEffects(Player *p)
|
|
{
|
|
for(mapEffect::const_iterator Effect = m_EffectList.begin(); Effect != m_EffectList.end(); ++Effect)
|
|
{
|
|
p->SendRemoveEffect(Effect->first);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
bool Effects::SendEffects(Player *p)
|
|
{
|
|
for(mapEffect::const_iterator Effect = m_EffectList.begin(); Effect != m_EffectList.end(); ++Effect)
|
|
{
|
|
p->SendObjectEffect((ObjectEffect *) &Effect->second.obj_effect);
|
|
}
|
|
return true;
|
|
} |