mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-05 20:53:52 +00:00
filter traps [skip ci]
This commit is contained in:
parent
91c874a310
commit
9aac84a405
@ -24,6 +24,7 @@
|
||||
#include "entity.h"
|
||||
#include "mob.h"
|
||||
#include "trap.h"
|
||||
#include "../common/repositories/criteria/content_filter_criteria.h"
|
||||
|
||||
/*
|
||||
|
||||
@ -104,7 +105,7 @@ bool Trap::Process()
|
||||
reset_timer.Disable();
|
||||
charid = 0;
|
||||
}
|
||||
|
||||
|
||||
if (respawn_timer.Enabled() && respawn_timer.Check())
|
||||
{
|
||||
detected = false;
|
||||
@ -225,13 +226,13 @@ void Trap::Trigger(Mob* trigger)
|
||||
safe_delete(outapp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (trigger && trigger->IsClient())
|
||||
{
|
||||
trigger->CastToClient()->trapid = trap_id;
|
||||
charid = trigger->CastToClient()->CharacterID();
|
||||
}
|
||||
|
||||
|
||||
bool update = false;
|
||||
if (despawn_when_triggered)
|
||||
{
|
||||
@ -242,16 +243,16 @@ void Trap::Trigger(Mob* trigger)
|
||||
{
|
||||
reset_timer.Start(5000);
|
||||
}
|
||||
|
||||
|
||||
if (triggered_number > 0)
|
||||
++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);
|
||||
update = true;
|
||||
}
|
||||
|
||||
|
||||
if (update)
|
||||
{
|
||||
UpdateTrap();
|
||||
@ -290,7 +291,7 @@ Trap* EntityList::FindNearbyTrap(Mob* searcher, float max_dist, float &trap_curd
|
||||
}
|
||||
else
|
||||
trap_curdist = INVALID_INDEX;
|
||||
|
||||
|
||||
return current_trap;
|
||||
}
|
||||
|
||||
@ -399,9 +400,14 @@ void EntityList::ClearTrapPointers()
|
||||
|
||||
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, "
|
||||
"`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);
|
||||
if (!results.Success()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user