mirror of
https://github.com/diamante0018/BlackOpsPlugin.git
synced 2025-04-19 18:12:54 +00:00
sayas
This commit is contained in:
parent
43d8c57ad0
commit
079f75c434
@ -2,6 +2,8 @@
|
||||
|
||||
#include "loader/component_loader.hpp"
|
||||
|
||||
#include "command.hpp"
|
||||
|
||||
namespace chat
|
||||
{
|
||||
class component final : public component_interface
|
||||
@ -9,6 +11,35 @@ namespace chat
|
||||
public:
|
||||
void post_unpack() override
|
||||
{
|
||||
add_chat_commands();
|
||||
}
|
||||
|
||||
private:
|
||||
static void add_chat_commands()
|
||||
{
|
||||
command::add("sayAs", [](const command::params& params)
|
||||
{
|
||||
if (params.size() < 3)
|
||||
{
|
||||
game::Com_Printf(game::CON_CHANNEL_DONT_FILTER,
|
||||
"Usage: sayAs <client number>\n");
|
||||
return;
|
||||
}
|
||||
|
||||
const auto* client = game::SV_GetPlayerByNum();
|
||||
|
||||
if (client == nullptr)
|
||||
return;
|
||||
|
||||
auto* gentity = client->gentity;
|
||||
assert(gentity != nullptr);
|
||||
|
||||
if (gentity->client == nullptr)
|
||||
return;
|
||||
|
||||
const auto message = params.join(2);
|
||||
game::G_Say(gentity, nullptr, 0, message.data());
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -219,6 +219,13 @@ namespace game
|
||||
|
||||
static_assert(sizeof(msg_t) == 48);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SCRIPTINSTANCE_SERVER,
|
||||
SCRIPTINSTANCE_CLIENT,
|
||||
SCRIPT_INSTANCE_MAX
|
||||
} scriptInstance_t;
|
||||
|
||||
enum dvar_flags : unsigned __int16
|
||||
{
|
||||
DVAR_FLAG_SAVED = 0x1,
|
||||
@ -317,6 +324,22 @@ namespace game
|
||||
PLAYER_FLAG_FROZEN = 1 << 2,
|
||||
};
|
||||
|
||||
struct playerState_s
|
||||
{
|
||||
int commandTime;
|
||||
int pm_type;
|
||||
int bobCycle;
|
||||
int pm_flags;
|
||||
int weapFlags;
|
||||
int otherFlags;
|
||||
int pm_time;
|
||||
};
|
||||
|
||||
struct pmove_t
|
||||
{
|
||||
playerState_s* ps;
|
||||
};
|
||||
|
||||
struct gclient_s
|
||||
{
|
||||
char __pad0[10396];
|
||||
@ -364,7 +387,8 @@ namespace game
|
||||
enum playerStateFlag
|
||||
{
|
||||
PMF_PRONE = 0x1,
|
||||
PMF_DUCKED = 0x2
|
||||
PMF_DUCKED = 0x2,
|
||||
PMF_MANTLE = 0x4
|
||||
};
|
||||
|
||||
struct gentity_s
|
||||
@ -441,15 +465,6 @@ namespace game
|
||||
int flags;
|
||||
};
|
||||
|
||||
enum EffectiveStance
|
||||
{
|
||||
PM_EFF_STANCE_DEFAULT = 0,
|
||||
PM_EFF_STANCE_PRONE = 1,
|
||||
PM_EFF_STANCE_DUCKED = 2,
|
||||
PM_EFF_STANCE_LASTSTANDCRAWL = 3,
|
||||
PM_EFF_STANCE_COUNT = 4
|
||||
};
|
||||
|
||||
enum ViewLockTypes
|
||||
{
|
||||
PLAYERVIEWLOCK_NONE = 0,
|
||||
@ -496,11 +511,11 @@ namespace game
|
||||
|
||||
struct clientHeader_t
|
||||
{
|
||||
clientState_t state; // 0
|
||||
int sendAsActive; // 4
|
||||
int deltaMessage; // 8
|
||||
int rateDealyed; // 12
|
||||
netchan_t netchan; // 24
|
||||
clientState_t state;
|
||||
int sendAsActive;
|
||||
int deltaMessage;
|
||||
int rateDealyed;
|
||||
netchan_t netchan;
|
||||
vec3_t predictedOrigin;
|
||||
int predictedOriginServerTime;
|
||||
PredictedVehicleInfo vehicle;
|
||||
@ -523,5 +538,15 @@ namespace game
|
||||
char reliableCommandBuffer[16384];
|
||||
int reliableCommandBufferNext;
|
||||
svscmd_info_t reliableCommandInfo[128];
|
||||
int reliableSequence;
|
||||
int reliableAcknowledge;
|
||||
int reliableSent;
|
||||
int messageAcknowledge;
|
||||
int gamestateMessageNum;
|
||||
int challenge;
|
||||
usercmd_s lastUsercmd;
|
||||
int lastClientCommand;
|
||||
char lastClientCommandString[1024];
|
||||
gentity_s* gentity;
|
||||
};
|
||||
}
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
namespace game
|
||||
{
|
||||
// Functions
|
||||
WEAK symbol<void(errorParm_t, const char*, ...)> Com_Error{0x627380, 0x0};
|
||||
WEAK symbol<void(conChannel_t, const char*, ...)> Com_Printf{0x4126C0, 0x0};
|
||||
WEAK symbol<void(conChannel_t, const char*, ...)> Com_DPrintf{0x4E3FA0, 0x0};
|
||||
WEAK symbol<void(conChannel_t, const char*, ...)> Com_PrintError{0x568B90, 0x0};
|
||||
|
||||
WEAK symbol<void(LocalClientNum_t, const char* text)> Cbuf_AddText{0x56EF70, 0x0};
|
||||
WEAK symbol<void(LocalClientNum_t, int controllerIndex, const char* text)> Cmd_ExecuteSingleCommand{0x50B470, 0x0};
|
||||
@ -24,6 +24,8 @@ namespace game
|
||||
WEAK symbol<const char*(const dvar_s*)> Dvar_DisplayableValue{0x681DD0, 0x0};
|
||||
WEAK symbol<const dvar_s*(const char*, const char*,
|
||||
unsigned __int16, const char*)> Dvar_RegisterString{0x4E3410, 0x0};
|
||||
WEAK symbol<const dvar_s*(const char*, float, float,
|
||||
float, unsigned __int16, const char*)> Dvar_RegisterFloat{0x670020, 0x0};
|
||||
|
||||
WEAK symbol<void(const char*, void(), cmd_function_t*)> Cmd_AddCommandInternal{0x6AD580, 0x0};
|
||||
WEAK symbol<void(const char* cmdName)> Cmd_RemoveCommand{0x527EA0, 0x0};
|
||||
@ -31,9 +33,17 @@ namespace game
|
||||
WEAK symbol<char*(char*)> I_CleanStr{0x4B0700, 0x0};
|
||||
|
||||
WEAK symbol<char*(int)> ConcatArgs{0x5D5F10, 0x0};
|
||||
WEAK symbol<void(gentity_s*, gentity_s*, int, const char*)> G_Say{0x51BBD0, 0x0};
|
||||
|
||||
WEAK symbol<void(gentity_s*, unsigned __int16, unsigned int)> Scr_Notify{0x458D30, 0x0};
|
||||
WEAK symbol<void(int, scriptInstance_t)> Scr_AddInt{0x49F830, 0x0};
|
||||
WEAK symbol<void(const float*, scriptInstance_t)> Scr_AddVector{0x532EF0, 0x0};
|
||||
|
||||
WEAK symbol<int(const playerState_s*)> PM_GetEffectiveStance{0x659590, 0x0};
|
||||
|
||||
WEAK symbol<CmdArgs> cmd_args{0x355BD88, 0x0};
|
||||
WEAK symbol<int> dvarCount{0x385BE74, 0x0};
|
||||
WEAK symbol<dvar_t*> sortedDvars{0x385BE88, 0x0};
|
||||
WEAK symbol<gentity_s> g_entities{0x32E5640, 0x0};
|
||||
WEAK symbol<gentity_s> g_entities{0x32E5784, 0x0};
|
||||
WEAK symbol<int> level_time{0x3443F4C, 0x0};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user