mirror of
https://github.com/diamante0018/BlackOpsPlugin.git
synced 2025-04-20 02:22:52 +00:00
sayas
This commit is contained in:
parent
43d8c57ad0
commit
079f75c434
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
#include "loader/component_loader.hpp"
|
#include "loader/component_loader.hpp"
|
||||||
|
|
||||||
|
#include "command.hpp"
|
||||||
|
|
||||||
namespace chat
|
namespace chat
|
||||||
{
|
{
|
||||||
class component final : public component_interface
|
class component final : public component_interface
|
||||||
@ -9,6 +11,35 @@ namespace chat
|
|||||||
public:
|
public:
|
||||||
void post_unpack() override
|
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);
|
static_assert(sizeof(msg_t) == 48);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SCRIPTINSTANCE_SERVER,
|
||||||
|
SCRIPTINSTANCE_CLIENT,
|
||||||
|
SCRIPT_INSTANCE_MAX
|
||||||
|
} scriptInstance_t;
|
||||||
|
|
||||||
enum dvar_flags : unsigned __int16
|
enum dvar_flags : unsigned __int16
|
||||||
{
|
{
|
||||||
DVAR_FLAG_SAVED = 0x1,
|
DVAR_FLAG_SAVED = 0x1,
|
||||||
@ -317,6 +324,22 @@ namespace game
|
|||||||
PLAYER_FLAG_FROZEN = 1 << 2,
|
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
|
struct gclient_s
|
||||||
{
|
{
|
||||||
char __pad0[10396];
|
char __pad0[10396];
|
||||||
@ -364,7 +387,8 @@ namespace game
|
|||||||
enum playerStateFlag
|
enum playerStateFlag
|
||||||
{
|
{
|
||||||
PMF_PRONE = 0x1,
|
PMF_PRONE = 0x1,
|
||||||
PMF_DUCKED = 0x2
|
PMF_DUCKED = 0x2,
|
||||||
|
PMF_MANTLE = 0x4
|
||||||
};
|
};
|
||||||
|
|
||||||
struct gentity_s
|
struct gentity_s
|
||||||
@ -441,15 +465,6 @@ namespace game
|
|||||||
int flags;
|
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
|
enum ViewLockTypes
|
||||||
{
|
{
|
||||||
PLAYERVIEWLOCK_NONE = 0,
|
PLAYERVIEWLOCK_NONE = 0,
|
||||||
@ -496,11 +511,11 @@ namespace game
|
|||||||
|
|
||||||
struct clientHeader_t
|
struct clientHeader_t
|
||||||
{
|
{
|
||||||
clientState_t state; // 0
|
clientState_t state;
|
||||||
int sendAsActive; // 4
|
int sendAsActive;
|
||||||
int deltaMessage; // 8
|
int deltaMessage;
|
||||||
int rateDealyed; // 12
|
int rateDealyed;
|
||||||
netchan_t netchan; // 24
|
netchan_t netchan;
|
||||||
vec3_t predictedOrigin;
|
vec3_t predictedOrigin;
|
||||||
int predictedOriginServerTime;
|
int predictedOriginServerTime;
|
||||||
PredictedVehicleInfo vehicle;
|
PredictedVehicleInfo vehicle;
|
||||||
@ -523,5 +538,15 @@ namespace game
|
|||||||
char reliableCommandBuffer[16384];
|
char reliableCommandBuffer[16384];
|
||||||
int reliableCommandBufferNext;
|
int reliableCommandBufferNext;
|
||||||
svscmd_info_t reliableCommandInfo[128];
|
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
|
namespace game
|
||||||
{
|
{
|
||||||
// Functions
|
|
||||||
WEAK symbol<void(errorParm_t, const char*, ...)> Com_Error{0x627380, 0x0};
|
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_Printf{0x4126C0, 0x0};
|
||||||
WEAK symbol<void(conChannel_t, const char*, ...)> Com_DPrintf{0x4E3FA0, 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, const char* text)> Cbuf_AddText{0x56EF70, 0x0};
|
||||||
WEAK symbol<void(LocalClientNum_t, int controllerIndex, const char* text)> Cmd_ExecuteSingleCommand{0x50B470, 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 char*(const dvar_s*)> Dvar_DisplayableValue{0x681DD0, 0x0};
|
||||||
WEAK symbol<const dvar_s*(const char*, const char*,
|
WEAK symbol<const dvar_s*(const char*, const char*,
|
||||||
unsigned __int16, const char*)> Dvar_RegisterString{0x4E3410, 0x0};
|
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*, void(), cmd_function_t*)> Cmd_AddCommandInternal{0x6AD580, 0x0};
|
||||||
WEAK symbol<void(const char* cmdName)> Cmd_RemoveCommand{0x527EA0, 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*(char*)> I_CleanStr{0x4B0700, 0x0};
|
||||||
|
|
||||||
WEAK symbol<char*(int)> ConcatArgs{0x5D5F10, 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<CmdArgs> cmd_args{0x355BD88, 0x0};
|
||||||
WEAK symbol<int> dvarCount{0x385BE74, 0x0};
|
WEAK symbol<int> dvarCount{0x385BE74, 0x0};
|
||||||
WEAK symbol<dvar_t*> sortedDvars{0x385BE88, 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