mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-08 10:02:26 +00:00
filter traps [skip ci]
This commit is contained in:
parent
91c874a310
commit
9aac84a405
@ -24,6 +24,7 @@
|
|||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "mob.h"
|
#include "mob.h"
|
||||||
#include "trap.h"
|
#include "trap.h"
|
||||||
|
#include "../common/repositories/criteria/content_filter_criteria.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
@ -104,7 +105,7 @@ bool Trap::Process()
|
|||||||
reset_timer.Disable();
|
reset_timer.Disable();
|
||||||
charid = 0;
|
charid = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (respawn_timer.Enabled() && respawn_timer.Check())
|
if (respawn_timer.Enabled() && respawn_timer.Check())
|
||||||
{
|
{
|
||||||
detected = false;
|
detected = false;
|
||||||
@ -225,13 +226,13 @@ void Trap::Trigger(Mob* trigger)
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (trigger && trigger->IsClient())
|
if (trigger && trigger->IsClient())
|
||||||
{
|
{
|
||||||
trigger->CastToClient()->trapid = trap_id;
|
trigger->CastToClient()->trapid = trap_id;
|
||||||
charid = trigger->CastToClient()->CharacterID();
|
charid = trigger->CastToClient()->CharacterID();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool update = false;
|
bool update = false;
|
||||||
if (despawn_when_triggered)
|
if (despawn_when_triggered)
|
||||||
{
|
{
|
||||||
@ -242,16 +243,16 @@ void Trap::Trigger(Mob* trigger)
|
|||||||
{
|
{
|
||||||
reset_timer.Start(5000);
|
reset_timer.Start(5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (triggered_number > 0)
|
if (triggered_number > 0)
|
||||||
++times_triggered;
|
++times_triggered;
|
||||||
|
|
||||||
if (triggered_number > 0 && triggered_number <= times_triggered)
|
if (triggered_number > 0 && triggered_number <= times_triggered)
|
||||||
{
|
{
|
||||||
Log(Logs::General, Logs::Traps, "Triggered number for trap %d reached. %d/%d", trap_id, times_triggered, triggered_number);
|
Log(Logs::General, Logs::Traps, "Triggered number for trap %d reached. %d/%d", trap_id, times_triggered, triggered_number);
|
||||||
update = true;
|
update = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (update)
|
if (update)
|
||||||
{
|
{
|
||||||
UpdateTrap();
|
UpdateTrap();
|
||||||
@ -290,7 +291,7 @@ Trap* EntityList::FindNearbyTrap(Mob* searcher, float max_dist, float &trap_curd
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
trap_curdist = INVALID_INDEX;
|
trap_curdist = INVALID_INDEX;
|
||||||
|
|
||||||
return current_trap;
|
return current_trap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,9 +400,14 @@ void EntityList::ClearTrapPointers()
|
|||||||
|
|
||||||
bool ZoneDatabase::LoadTraps(const char* zonename, int16 version) {
|
bool ZoneDatabase::LoadTraps(const char* zonename, int16 version) {
|
||||||
|
|
||||||
std::string query = StringFormat("SELECT id, x, y, z, effect, effectvalue, effectvalue2, skill, "
|
std::string query = StringFormat(
|
||||||
|
"SELECT id, x, y, z, effect, effectvalue, effectvalue2, skill, "
|
||||||
"maxzdiff, radius, chance, message, respawn_time, respawn_var, level, "
|
"maxzdiff, radius, chance, message, respawn_time, respawn_var, level, "
|
||||||
"`group`, triggered_number, despawn_when_triggered, undetectable FROM traps WHERE zone='%s' AND version=%u", zonename, version);
|
"`group`, triggered_number, despawn_when_triggered, undetectable FROM traps WHERE zone='%s' AND version=%u %s",
|
||||||
|
zonename,
|
||||||
|
version,
|
||||||
|
ContentFilterCriteria::apply().c_str()
|
||||||
|
);
|
||||||
|
|
||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
if (!results.Success()) {
|
if (!results.Success()) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user