mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 14:25:38 +03:00
Added ClientPrintf engine function (request at30137)
This commit is contained in:
parent
7e36a19590
commit
ac1e3a9001
@ -1061,6 +1061,16 @@ static cell AMX_NATIVE_CALL engfunc(AMX *amx, cell *params)
|
|||||||
|
|
||||||
(*g_engfuncs.pfnAlertMessage)(static_cast<ALERT_TYPE>(iparam1), temp);
|
(*g_engfuncs.pfnAlertMessage)(static_cast<ALERT_TYPE>(iparam1), temp);
|
||||||
return 1;
|
return 1;
|
||||||
|
case EngFunc_ClientPrintf: // void ) (edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg);
|
||||||
|
cRet = MF_GetAmxAddr(amx, params[2]);
|
||||||
|
index = cRet[0];
|
||||||
|
CHECK_ENTITY(index);
|
||||||
|
|
||||||
|
cRet = MF_GetAmxAddr(amx, params[3]);
|
||||||
|
iparam1 = cRet[0];
|
||||||
|
temp = MF_GetAmxString(amx,params[4], 0, &len);
|
||||||
|
|
||||||
|
(*g_engfuncs.pfnClientPrintf)(INDEXENT2(index), static_cast<PRINT_TYPE>(iparam1), temp);
|
||||||
default:
|
default:
|
||||||
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown engfunc type %d", type);
|
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown engfunc type %d", type);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -80,7 +80,8 @@ enum {
|
|||||||
EngFunc_SetClientKeyValue, // void ) (int clientIndex, char *infobuffer, char *key, char *value);
|
EngFunc_SetClientKeyValue, // void ) (int clientIndex, char *infobuffer, char *key, char *value);
|
||||||
EngFunc_CreateInstancedBaseline, // int ) (int classname, struct entity_state_s *baseline);
|
EngFunc_CreateInstancedBaseline, // int ) (int classname, struct entity_state_s *baseline);
|
||||||
EngFunc_GetInfoKeyBuffer, // char*) (edict_t *e);
|
EngFunc_GetInfoKeyBuffer, // char*) (edict_t *e);
|
||||||
EngFunc_AlertMessage // void ) (ALERT_TYPE atype, char *szFmt, ...);
|
EngFunc_AlertMessage, // void ) (ALERT_TYPE atype, char *szFmt, ...);
|
||||||
|
EngFunc_ClientPrintf // void ) (edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_ENGFUNC_INCLUDE_H
|
#endif //_ENGFUNC_INCLUDE_H
|
||||||
|
@ -142,6 +142,7 @@ void FMH_ServerDeactivate()
|
|||||||
RESETE(AlertMessage);
|
RESETE(AlertMessage);
|
||||||
RESETE(CreateInstancedBaseline);
|
RESETE(CreateInstancedBaseline);
|
||||||
RESETE(GetInfoKeyBuffer);
|
RESETE(GetInfoKeyBuffer);
|
||||||
|
RESETE(ClientPrintf);
|
||||||
|
|
||||||
RESETD(Spawn);
|
RESETD(Spawn);
|
||||||
RESETD(Think);
|
RESETD(Think);
|
||||||
|
@ -638,6 +638,18 @@ char *GetInfoKeyBuffer_post(edict_t *e)
|
|||||||
RETURN_META_VALUE(MRES_IGNORED, reinterpret_cast<char *>(mlCellResult));
|
RETURN_META_VALUE(MRES_IGNORED, reinterpret_cast<char *>(mlCellResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClientPrintf(edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg)
|
||||||
|
{
|
||||||
|
FM_ENG_HANDLE(FM_ClientPrintf, (Engine[FM_ClientPrintf].at(i), (cell)ENTINDEX(pEdict), (cell)ptype, szMsg));
|
||||||
|
RETURN_META(mswi(lastFmRes));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClientPrintf_post(edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg)
|
||||||
|
{
|
||||||
|
FM_ENG_HANDLE(FM_ClientPrintf, (Engine[FM_ClientPrintf].at(i), (cell)ENTINDEX(pEdict), (cell)ptype, szMsg));
|
||||||
|
RETURN_META(MRES_IGNORED);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Beginning of Engine->Game DLL hooks
|
* Beginning of Engine->Game DLL hooks
|
||||||
*/
|
*/
|
||||||
@ -1455,6 +1467,10 @@ static cell AMX_NATIVE_CALL register_forward(AMX *amx, cell *params)
|
|||||||
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_DONE);
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_DONE);
|
||||||
ENGHOOK(GetInfoKeyBuffer);
|
ENGHOOK(GetInfoKeyBuffer);
|
||||||
break;
|
break;
|
||||||
|
case FM_ClientPrintf:
|
||||||
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_CELL, FP_STRING, FP_DONE);
|
||||||
|
ENGHOOK(ClientPrintf);
|
||||||
|
break;
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
// I know this does not fit with DLLFUNC(), but I dont want another native just for it.
|
// I know this does not fit with DLLFUNC(), but I dont want another native just for it.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef _INCLUDE_FORWARD_H
|
#ifndef _INCLUDE_FORWARD_H
|
||||||
#define _INCLUDE_FORWARD_H
|
#define _INCLUDE_FORWARD_H
|
||||||
|
|
||||||
#define ENGFUNC_NUM FM_LAST_DONT_USE_ME // 130
|
#define ENGFUNC_NUM FM_LAST_DONT_USE_ME // 131
|
||||||
|
|
||||||
#define FMV_STRING 1
|
#define FMV_STRING 1
|
||||||
#define FMV_FLOAT 2
|
#define FMV_FLOAT 2
|
||||||
@ -163,6 +163,7 @@ enum {
|
|||||||
FM_CreateInstancedBaseline,
|
FM_CreateInstancedBaseline,
|
||||||
FM_CreateBaseline,
|
FM_CreateBaseline,
|
||||||
FM_GetInfoKeyBuffer,
|
FM_GetInfoKeyBuffer,
|
||||||
|
FM_ClientPrintf,
|
||||||
FM_LAST_DONT_USE_ME
|
FM_LAST_DONT_USE_ME
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -117,7 +117,8 @@ enum {
|
|||||||
|
|
||||||
// Returns pointer to info buffer that can be used with the infobuffer param of InfoKeyValue, SetKeyValue, and SetClientKeyValue
|
// Returns pointer to info buffer that can be used with the infobuffer param of InfoKeyValue, SetKeyValue, and SetClientKeyValue
|
||||||
EngFunc_GetInfoKeyBuffer, // char*) (edict_t *e);
|
EngFunc_GetInfoKeyBuffer, // char*) (edict_t *e);
|
||||||
EngFunc_AlertMessage // void ) (ALERT_TYPE atype, char *szFmt, ...);
|
EngFunc_AlertMessage, // void ) (ALERT_TYPE atype, char *szFmt, ...);
|
||||||
|
EngFunc_ClientPrintf // void ) (edict_t* pEdict, PRINT_TYPE ptype, const char *szMsg);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Used with dllfunc()
|
/* Used with dllfunc()
|
||||||
@ -534,7 +535,8 @@ enum {
|
|||||||
FM_CmdEnd,
|
FM_CmdEnd,
|
||||||
FM_CreateInstBaseline,
|
FM_CreateInstBaseline,
|
||||||
FM_CreateBaseline,
|
FM_CreateBaseline,
|
||||||
FM_GetInfoKeyBuffer
|
FM_GetInfoKeyBuffer,
|
||||||
|
FM_ClientPrintf
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TraceResult
|
enum TraceResult
|
||||||
|
@ -190,6 +190,8 @@ stock EF_CreateInstBaseline(CLASSNAME, baseline)
|
|||||||
// of EF_InfoKeyValue, EF_SetKeyValue, and EF_SetClientKeyValue
|
// of EF_InfoKeyValue, EF_SetKeyValue, and EF_SetClientKeyValue
|
||||||
stock EF_GetInfoKeyBuffer(const ENTITY)
|
stock EF_GetInfoKeyBuffer(const ENTITY)
|
||||||
return engfunc(EngFunc_GetInfoKeyBuffer, ENTITY)
|
return engfunc(EngFunc_GetInfoKeyBuffer, ENTITY)
|
||||||
|
stock EF_ClientPrintf(const ENTITY, const printType, const MESSAGE[])
|
||||||
|
return engfunc(EngFunc_ClientPrintf, ENTITY, printType, MESSAGE)
|
||||||
|
|
||||||
// DLLFuncs
|
// DLLFuncs
|
||||||
stock DF_GameInit()
|
stock DF_GameInit()
|
||||||
|
Loading…
Reference in New Issue
Block a user