mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 06:15:37 +03:00
fixed filters bug
This commit is contained in:
parent
a7c4f5a147
commit
38af364744
@ -123,12 +123,6 @@ EventsMngr::EventsMngr()
|
|||||||
EventsMngr::~EventsMngr()
|
EventsMngr::~EventsMngr()
|
||||||
{
|
{
|
||||||
clearEvents();
|
clearEvents();
|
||||||
// delete parsevault
|
|
||||||
if (m_ParseVault)
|
|
||||||
{
|
|
||||||
delete [] m_ParseVault;
|
|
||||||
m_ParseVault = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -255,8 +249,8 @@ void EventsMngr::parserInit(int msg_type, float* timer, CPlayer* pPlayer, int in
|
|||||||
{
|
{
|
||||||
m_ParsePos = 0;
|
m_ParsePos = 0;
|
||||||
NextParam();
|
NextParam();
|
||||||
m_ParseVault[m_ParsePos].type = MSG_INTEGER;
|
m_ParseVault[0].type = MSG_INTEGER;
|
||||||
m_ParseVault[m_ParsePos].iValue = index;
|
m_ParseVault[0].iValue = index;
|
||||||
}
|
}
|
||||||
m_ParseFun = &m_Events[msg_type];
|
m_ParseFun = &m_Events[msg_type];
|
||||||
}
|
}
|
||||||
@ -283,12 +277,13 @@ void EventsMngr::parseValue(int iValue)
|
|||||||
continue; // already skipped; don't bother with parsing
|
continue; // already skipped; don't bother with parsing
|
||||||
|
|
||||||
// loop through conditions
|
// loop through conditions
|
||||||
bool execute;
|
bool execute = false;
|
||||||
|
bool anyConditions = false;
|
||||||
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
||||||
{
|
{
|
||||||
if (condIter->paramId == m_ParsePos)
|
if (condIter->paramId == m_ParsePos)
|
||||||
{
|
{
|
||||||
execute = false;
|
anyConditions = true;
|
||||||
switch(condIter->type)
|
switch(condIter->type)
|
||||||
{
|
{
|
||||||
case '=': if (condIter->iValue == iValue) execute=true; break;
|
case '=': if (condIter->iValue == iValue) execute=true; break;
|
||||||
@ -298,11 +293,11 @@ void EventsMngr::parseValue(int iValue)
|
|||||||
case '>': if (iValue > condIter->iValue) execute=true; break;
|
case '>': if (iValue > condIter->iValue) execute=true; break;
|
||||||
}
|
}
|
||||||
if (execute)
|
if (execute)
|
||||||
continue;
|
break;
|
||||||
(*iter).m_Done = true; // don't execute
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (anyConditions && !execute)
|
||||||
|
(*iter).m_Done = true; // don't execute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,11 +323,13 @@ void EventsMngr::parseValue(float fValue)
|
|||||||
continue; // already skipped; don't bother with parsing
|
continue; // already skipped; don't bother with parsing
|
||||||
|
|
||||||
// loop through conditions
|
// loop through conditions
|
||||||
|
bool execute = false;
|
||||||
|
bool anyConditions = false;
|
||||||
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
||||||
{
|
{
|
||||||
if (condIter->paramId == m_ParsePos)
|
if (condIter->paramId == m_ParsePos)
|
||||||
{
|
{
|
||||||
bool execute = false;
|
anyConditions = true;
|
||||||
switch(condIter->type)
|
switch(condIter->type)
|
||||||
{
|
{
|
||||||
case '=': if (condIter->fValue == fValue) execute=true; break;
|
case '=': if (condIter->fValue == fValue) execute=true; break;
|
||||||
@ -341,11 +338,11 @@ void EventsMngr::parseValue(float fValue)
|
|||||||
case '>': if (fValue > condIter->fValue) execute=true; break;
|
case '>': if (fValue > condIter->fValue) execute=true; break;
|
||||||
}
|
}
|
||||||
if (execute)
|
if (execute)
|
||||||
continue;
|
break;
|
||||||
(*iter).m_Done = true; // don't execute
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (anyConditions && !execute)
|
||||||
|
(*iter).m_Done = true; // don't execute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -370,11 +367,13 @@ void EventsMngr::parseValue(const char *sz)
|
|||||||
continue; // already skipped; don't bother with parsing
|
continue; // already skipped; don't bother with parsing
|
||||||
|
|
||||||
// loop through conditions
|
// loop through conditions
|
||||||
|
bool execute = false;
|
||||||
|
bool anyConditions = false;
|
||||||
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
for (ClEvent::cond_t *condIter = (*iter).m_Conditions; condIter; condIter = condIter->next)
|
||||||
{
|
{
|
||||||
if (condIter->paramId == m_ParsePos)
|
if (condIter->paramId == m_ParsePos)
|
||||||
{
|
{
|
||||||
bool execute = false;
|
anyConditions = true;
|
||||||
switch(condIter->type)
|
switch(condIter->type)
|
||||||
{
|
{
|
||||||
case '=': if (!strcmp(sz, condIter->sValue.str())) execute=true; break;
|
case '=': if (!strcmp(sz, condIter->sValue.str())) execute=true; break;
|
||||||
@ -382,11 +381,11 @@ void EventsMngr::parseValue(const char *sz)
|
|||||||
case '&': if (strstr(sz, condIter->sValue.str())) execute=true; break;
|
case '&': if (strstr(sz, condIter->sValue.str())) execute=true; break;
|
||||||
}
|
}
|
||||||
if (execute)
|
if (execute)
|
||||||
continue;
|
break;
|
||||||
(*iter).m_Done = true; // don't execute
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (anyConditions && !execute)
|
||||||
|
(*iter).m_Done = true; // don't execute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +412,7 @@ void EventsMngr::executeEvents()
|
|||||||
|
|
||||||
(*iter).m_Stamp = (float)*m_Timer;
|
(*iter).m_Stamp = (float)*m_Timer;
|
||||||
|
|
||||||
if ((err = amx_Exec((*iter).m_Plugin->getAMX(), NULL, (*iter).m_Func, 1, m_ParseVaultSize ? m_ParseVault[0].iValue : 0)) != AMX_ERR_NONE)
|
if ((err = amx_Exec((*iter).m_Plugin->getAMX(), NULL, (*iter).m_Func, 1, m_ParseVault ? m_ParseVault[0].iValue : 0)) != AMX_ERR_NONE)
|
||||||
{
|
{
|
||||||
UTIL_Log("[AMXX] Run time error %d on line %ld (plugin \"%s\")", err,
|
UTIL_Log("[AMXX] Run time error %d on line %ld (plugin \"%s\")", err,
|
||||||
(*iter).m_Plugin->getAMX()->curline, (*iter).m_Plugin->getName());
|
(*iter).m_Plugin->getAMX()->curline, (*iter).m_Plugin->getName());
|
||||||
@ -494,6 +493,13 @@ void EventsMngr::clearEvents(void)
|
|||||||
{
|
{
|
||||||
m_Events[i].clear();
|
m_Events[i].clear();
|
||||||
}
|
}
|
||||||
|
// delete parsevault
|
||||||
|
if (m_ParseVault)
|
||||||
|
{
|
||||||
|
delete [] m_ParseVault;
|
||||||
|
m_ParseVault = NULL;
|
||||||
|
m_ParseVaultSize = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int EventsMngr::getEventId(const char* msg)
|
int EventsMngr::getEventId(const char* msg)
|
||||||
|
Loading…
Reference in New Issue
Block a user