Added set_speak and get_speak
This commit is contained in:
parent
b7b2d59613
commit
9bec921fd8
|
@ -3,6 +3,7 @@
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="engine"
|
Name="engine"
|
||||||
|
ProjectGUID="{7CAE7BDF-52CB-49D0-B82E-568259869811}"
|
||||||
SccProjectName=""
|
SccProjectName=""
|
||||||
SccLocalPath="">
|
SccLocalPath="">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
|
|
|
@ -2691,10 +2691,59 @@ static cell AMX_NATIVE_CALL set_size(AMX *amx, cell *params)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetSpeak, this sets who a player can speak to/who he can listen to.
|
||||||
|
static cell AMX_NATIVE_CALL set_speak(AMX *amx, cell *params) {
|
||||||
|
int iIndex = params[1];
|
||||||
|
int iNewSpeakFlags = params[2];
|
||||||
|
|
||||||
|
if (iIndex < 1 || iIndex > gpGlobals->maxClients) {
|
||||||
|
AMX_RAISEERROR(amx,AMX_ERR_NATIVE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlInfo[iIndex].iSpeakFlags = iNewSpeakFlags;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetSpeak, this gets whether a player can speak to
|
||||||
|
// (BAILOPAN)
|
||||||
|
static cell AMX_NATIVE_CALL get_speak(AMX *amx, cell *params) {
|
||||||
|
int iIndex = params[1];
|
||||||
|
|
||||||
|
if (iIndex < 1 || iIndex > gpGlobals->maxClients)
|
||||||
|
{
|
||||||
|
AMX_RAISEERROR(amx, AMX_ERR_NATIVE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PlInfo[iIndex].iSpeakFlags;
|
||||||
|
}
|
||||||
|
|
||||||
/********************************************
|
/********************************************
|
||||||
METAMOD HOOKED FUNCTIONS
|
METAMOD HOOKED FUNCTIONS
|
||||||
*****************************************/
|
*****************************************/
|
||||||
|
|
||||||
|
// This checks who can hear who through voice comm. this reads flags set,
|
||||||
|
// and lets us choose who hears who based on the previously set flags.
|
||||||
|
qboolean Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen) {
|
||||||
|
if((PlInfo[iSender].iSpeakFlags & SPEAK_MUTED) != 0) {
|
||||||
|
(g_engfuncs.pfnVoice_SetClientListening)(iReceiver, iSender, false);
|
||||||
|
RETURN_META_VALUE(MRES_SUPERCEDE, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if((PlInfo[iSender].iSpeakFlags & SPEAK_ALL) != 0) {
|
||||||
|
(g_engfuncs.pfnVoice_SetClientListening)(iReceiver, iSender, true);
|
||||||
|
RETURN_META_VALUE(MRES_SUPERCEDE, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if((PlInfo[iReceiver].iSpeakFlags & SPEAK_LISTENALL) != 0) {
|
||||||
|
(g_engfuncs.pfnVoice_SetClientListening)(iReceiver, iSender, true);
|
||||||
|
RETURN_META_VALUE(MRES_SUPERCEDE, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
RETURN_META_VALUE(MRES_IGNORED, bListen);
|
||||||
|
}
|
||||||
|
|
||||||
//Added by BAILOPAN. ClientKill() forward.
|
//Added by BAILOPAN. ClientKill() forward.
|
||||||
void ClientKill(edict_t *pEntity)
|
void ClientKill(edict_t *pEntity)
|
||||||
|
@ -3249,6 +3298,7 @@ C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *inte
|
||||||
meta_engfuncs.pfnWriteString = WriteString;
|
meta_engfuncs.pfnWriteString = WriteString;
|
||||||
meta_engfuncs.pfnWriteEntity = WriteEntity;
|
meta_engfuncs.pfnWriteEntity = WriteEntity;
|
||||||
meta_engfuncs.pfnLightStyle = LightStyle;
|
meta_engfuncs.pfnLightStyle = LightStyle;
|
||||||
|
meta_engfuncs.pfnVoice_SetClientListening = Voice_SetClientListening;
|
||||||
|
|
||||||
if(*interfaceVersion!=ENGINE_INTERFACE_VERSION) {
|
if(*interfaceVersion!=ENGINE_INTERFACE_VERSION) {
|
||||||
LOG_ERROR(PLID, "GetEngineFunctions version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION);
|
LOG_ERROR(PLID, "GetEngineFunctions version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION);
|
||||||
|
@ -3365,6 +3415,8 @@ AMX_NATIVE_INFO Engine_Natives[] = {
|
||||||
{"set_lights", set_lights},
|
{"set_lights", set_lights},
|
||||||
{"set_view", set_view},
|
{"set_view", set_view},
|
||||||
{"attach_view", attach_view},
|
{"attach_view", attach_view},
|
||||||
|
{"set_speak", set_speak},
|
||||||
|
{"get_speak", get_speak},
|
||||||
|
|
||||||
{"precache_generic", precache_generic},
|
{"precache_generic", precache_generic},
|
||||||
{"register_message", register_message},
|
{"register_message", register_message},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user