Fixed a bug where blocking a message would crash the server.

This commit is contained in:
David Anderson 2004-06-26 22:46:54 +00:00
parent 8477d8834a
commit f4de83c31a
2 changed files with 3 additions and 2 deletions

View File

@ -1915,7 +1915,7 @@ static cell AMX_NATIVE_CALL dllfunc(AMX *amx,cell *params)
cRet = MF_GetAmxAddr(amx,params[2]); cRet = MF_GetAmxAddr(amx,params[2]);
index=cRet[0]; index=cRet[0];
CHECK_ENTITY(index); CHECK_ENTITY(index);
cRet = MF_GetAmxAddr(amx,params[2]); cRet = MF_GetAmxAddr(amx,params[3]);
indexb=cRet[0]; indexb=cRet[0];
CHECK_ENTITY(indexb); CHECK_ENTITY(indexb);
gpGamedllFuncs->dllapi_table->pfnTouch(INDEXENT(index),INDEXENT(indexb)); gpGamedllFuncs->dllapi_table->pfnTouch(INDEXENT(index),INDEXENT(indexb));
@ -1925,7 +1925,7 @@ static cell AMX_NATIVE_CALL dllfunc(AMX *amx,cell *params)
cRet = MF_GetAmxAddr(amx,params[2]); cRet = MF_GetAmxAddr(amx,params[2]);
index=cRet[0]; index=cRet[0];
CHECK_ENTITY(index); CHECK_ENTITY(index);
cRet = MF_GetAmxAddr(amx,params[2]); cRet = MF_GetAmxAddr(amx,params[3]);
indexb=cRet[0]; indexb=cRet[0];
CHECK_ENTITY(indexb); CHECK_ENTITY(indexb);
gpGamedllFuncs->dllapi_table->pfnBlocked(INDEXENT(index),INDEXENT(indexb)); gpGamedllFuncs->dllapi_table->pfnBlocked(INDEXENT(index),INDEXENT(indexb));

View File

@ -274,6 +274,7 @@ void MessageEnd(void)
int mres = 0; int mres = 0;
unsigned int i = 0; unsigned int i = 0;
if (inblock) { if (inblock) {
inblock = false;
if (msgBlocks[msgType] == BLOCK_ONCE) if (msgBlocks[msgType] == BLOCK_ONCE)
msgBlocks[msgType] = BLOCK_NOT; msgBlocks[msgType] = BLOCK_NOT;
RETURN_META(MRES_SUPERCEDE); RETURN_META(MRES_SUPERCEDE);