2014-08-04 04:54:24 -05:00
|
|
|
// vim: set ts=4 sw=4 tw=99 noet:
|
|
|
|
//
|
|
|
|
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
|
|
|
|
// Copyright (C) The AMX Mod X Development Team.
|
|
|
|
//
|
|
|
|
// This software is licensed under the GNU General Public License, version 3 or higher.
|
|
|
|
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
|
|
|
|
// https://alliedmods.net/amxmodx-license
|
|
|
|
|
|
|
|
//
|
|
|
|
// Counter-Strike Module
|
2004-03-04 16:08:31 +00:00
|
|
|
//
|
|
|
|
|
|
|
|
#include "CstrikePlayer.h"
|
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
CPlayer Players[33];
|
|
|
|
ke::Vector<int> ModelsUpdateQueue;
|
2004-03-04 16:08:31 +00:00
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
void ClientDisconnect(edict_t *pEntity)
|
2004-03-04 16:08:31 +00:00
|
|
|
{
|
2016-02-25 22:44:44 +01:00
|
|
|
int index = TypeConversion.edict_to_id(pEntity);
|
2004-03-04 16:08:31 +00:00
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
Players[index].ResetModel();
|
|
|
|
Players[index].ResetZoom();
|
|
|
|
|
|
|
|
RETURN_META(MRES_IGNORED);
|
2004-03-04 16:08:31 +00:00
|
|
|
}
|
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
void ClientUserInfoChanged(edict_t *pEntity, char *infobuffer)
|
2004-03-04 16:08:31 +00:00
|
|
|
{
|
2015-07-06 20:05:48 +02:00
|
|
|
if (pEntity->pvPrivateData)
|
|
|
|
{
|
2016-02-25 22:44:44 +01:00
|
|
|
Players[TypeConversion.edict_to_id(pEntity)].UpdateModel(pEntity);
|
2015-07-06 20:05:48 +02:00
|
|
|
}
|
2004-03-04 16:08:31 +00:00
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
RETURN_META(MRES_IGNORED);
|
2004-03-04 16:08:31 +00:00
|
|
|
}
|
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
void SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value)
|
2004-03-04 16:08:31 +00:00
|
|
|
{
|
2015-07-06 20:05:48 +02:00
|
|
|
if (!strcmp(key, "model") && Players[clientIndex].HasModel(value))
|
|
|
|
{
|
|
|
|
RETURN_META(MRES_SUPERCEDE);
|
|
|
|
}
|
2004-03-04 16:08:31 +00:00
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
RETURN_META(MRES_IGNORED);
|
2004-03-04 16:08:31 +00:00
|
|
|
}
|
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
void StartFrame()
|
2004-03-04 16:08:31 +00:00
|
|
|
{
|
2015-07-06 20:05:48 +02:00
|
|
|
if (ModelsUpdateQueue.empty())
|
|
|
|
{
|
|
|
|
g_pFunctionTable->pfnStartFrame = nullptr;
|
2015-07-14 19:36:36 +02:00
|
|
|
|
2017-03-10 18:33:19 +01:00
|
|
|
for (int i = 1; i <= gpGlobals->maxClients; ++i)
|
2015-07-14 19:36:36 +02:00
|
|
|
{
|
|
|
|
if (Players[i].HasModel())
|
|
|
|
{
|
|
|
|
RETURN_META(MRES_IGNORED);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
g_pFunctionTable->pfnClientUserInfoChanged = nullptr;
|
|
|
|
g_pengfuncsTable->pfnSetClientKeyValue = nullptr;
|
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
RETURN_META(MRES_IGNORED);
|
|
|
|
}
|
2004-03-04 16:08:31 +00:00
|
|
|
|
2015-07-06 20:05:48 +02:00
|
|
|
ServerStatic->clients[ModelsUpdateQueue.popCopy()].sendinfo = true;
|
|
|
|
|
|
|
|
RETURN_META(MRES_IGNORED);
|
2004-03-29 14:19:02 +00:00
|
|
|
}
|