mirror of
https://github.com/fedddddd/iw5-gsc-utils.git
synced 2025-04-20 21:05:44 +00:00
Add function drop all bots
This commit is contained in:
parent
1b65bda323
commit
2785a60dc0
@ -380,6 +380,20 @@ namespace gsc
|
|||||||
return {};
|
return {};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function::add("dropallbots", [](const function_args& args) -> scripting::script_value
|
||||||
|
{
|
||||||
|
for (auto i = 0; i < *game::svs_clientCount; i++)
|
||||||
|
{
|
||||||
|
if (game::svs_clients[i].header.state !=game::CS_FREE
|
||||||
|
&& game::svs_clients[i].header.netchan.remoteAddress.type == game::NA_BOT)
|
||||||
|
{
|
||||||
|
game::SV_GameDropClient(i, "GAME_GET_TO_COVER");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
});
|
||||||
|
|
||||||
method::add("tell", [](const game::scr_entref_t ent, const function_args& args) -> scripting::script_value
|
method::add("tell", [](const game::scr_entref_t ent, const function_args& args) -> scripting::script_value
|
||||||
{
|
{
|
||||||
if (ent.classnum != 0)
|
if (ent.classnum != 0)
|
||||||
|
@ -2,5 +2,13 @@
|
|||||||
|
|
||||||
namespace game
|
namespace game
|
||||||
{
|
{
|
||||||
|
void SV_GameDropClient(int clientNum, const char* reason)
|
||||||
|
{
|
||||||
|
assert(sv_maxclients->current.integer >= 1 && sv_maxclients->current.integer <= 18);
|
||||||
|
|
||||||
|
if (clientNum >= 0 && clientNum < sv_maxclients->current.integer)
|
||||||
|
{
|
||||||
|
SV_DropClient(&svs_clients[clientNum], reason, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,8 @@ namespace game
|
|||||||
private:
|
private:
|
||||||
T* dedi_;
|
T* dedi_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void SV_GameDropClient(int clientNum, const char* reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "symbols.hpp"
|
#include "symbols.hpp"
|
@ -328,9 +328,94 @@ namespace game
|
|||||||
char __pad2[0xEC];
|
char __pad2[0xEC];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum netsrc_t
|
||||||
|
{
|
||||||
|
NS_CLIENT1 = 0x0,
|
||||||
|
NS_CLIENT2 = 0x1,
|
||||||
|
NS_CLIENT3 = 0x2,
|
||||||
|
NS_CLIENT4 = 0x3,
|
||||||
|
NS_MAXCLIENTS = 0x4,
|
||||||
|
NS_SERVER = 0x4,
|
||||||
|
NS_PACKET = 0x5,
|
||||||
|
NS_INVALID_NETSRC = 0x6
|
||||||
|
};
|
||||||
|
|
||||||
|
enum netadrtype_t
|
||||||
|
{
|
||||||
|
NA_BOT = 0x0,
|
||||||
|
NA_BAD = 0x1,
|
||||||
|
NA_LOOPBACK = 0x2,
|
||||||
|
NA_BROADCAST = 0x3,
|
||||||
|
NA_IP = 0x4
|
||||||
|
};
|
||||||
|
|
||||||
|
struct netadr_s
|
||||||
|
{
|
||||||
|
netadrtype_t type;
|
||||||
|
unsigned char ip[4];
|
||||||
|
unsigned __int16 port;
|
||||||
|
unsigned char ipx[10];
|
||||||
|
unsigned int addrHandleIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(netadr_s) == 24);
|
||||||
|
|
||||||
|
struct netchan_t
|
||||||
|
{
|
||||||
|
int outgoingSequence;
|
||||||
|
netsrc_t sock; // 28
|
||||||
|
int dropped; // 32
|
||||||
|
int incomingSequence; // 36
|
||||||
|
netadr_s remoteAddress; // 40
|
||||||
|
int qport;
|
||||||
|
int fragmentSequence;
|
||||||
|
int fragmentLength;
|
||||||
|
unsigned char* fragmentBuffer;
|
||||||
|
int fragmentBufferSize;
|
||||||
|
int unsentFragments;
|
||||||
|
int unsentFragmentStart;
|
||||||
|
int unsentLength;
|
||||||
|
unsigned char* unsentBuffer;
|
||||||
|
int unsentBufferSize;
|
||||||
|
unsigned char __pad0[0x5E0];
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(netchan_t) == 0x630);
|
||||||
|
|
||||||
|
enum clientState_t
|
||||||
|
{
|
||||||
|
CS_FREE = 0,
|
||||||
|
CS_ZOMBIE = 1,
|
||||||
|
CS_RECONNECTING = 2,
|
||||||
|
CS_CONNECTED = 3,
|
||||||
|
CS_CLIENTLOADING = 4,
|
||||||
|
CS_ACTIVE = 5
|
||||||
|
};
|
||||||
|
|
||||||
|
struct clientHeader_t
|
||||||
|
{
|
||||||
|
clientState_t state; // 0
|
||||||
|
int sendAsActive; // 4
|
||||||
|
int deltaMessage; // 8
|
||||||
|
int rateDealyed; // 12
|
||||||
|
int hasAckedBaselineData; // 16
|
||||||
|
int hugeSnapshotSent; // 20
|
||||||
|
netchan_t netchan; // 24
|
||||||
|
vec3_t predictedOrigin;
|
||||||
|
int predictedOriginServerTime;
|
||||||
|
int migrationState;
|
||||||
|
vec3_t predictedVehicleOrigin;
|
||||||
|
int predictedVehicleServerTime;
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(clientHeader_t) == 0x66C);
|
||||||
|
|
||||||
struct client_s
|
struct client_s
|
||||||
{
|
{
|
||||||
char __pad0[0x41CB2];
|
clientHeader_t header;
|
||||||
|
const char* dropReason;
|
||||||
|
char userinfo[1024];
|
||||||
|
char __pad0[0x41242];
|
||||||
unsigned __int16 scriptId; // 269490
|
unsigned __int16 scriptId; // 269490
|
||||||
int bIsTestClient; // 269492
|
int bIsTestClient; // 269492
|
||||||
int serverId; // 269496
|
int serverId; // 269496
|
||||||
|
@ -57,6 +57,7 @@ namespace game
|
|||||||
|
|
||||||
WEAK symbol<void(int clientNum, int type, const char* command)> SV_GameSendServerCommand{0x573220};
|
WEAK symbol<void(int clientNum, int type, const char* command)> SV_GameSendServerCommand{0x573220};
|
||||||
WEAK symbol<void(int arg, char* buffer, int bufferLength)> SV_Cmd_ArgvBuffer{0x5459F0};
|
WEAK symbol<void(int arg, char* buffer, int bufferLength)> SV_Cmd_ArgvBuffer{0x5459F0};
|
||||||
|
WEAK symbol<void(client_s* drop, const char* reason, bool tellThem)> SV_DropClient{0x570980};
|
||||||
|
|
||||||
WEAK symbol<void(unsigned int notifyListOwnerId, unsigned int stringValue, VariableValue* top)> VM_Notify{0x569720};
|
WEAK symbol<void(unsigned int notifyListOwnerId, unsigned int stringValue, VariableValue* top)> VM_Notify{0x569720};
|
||||||
WEAK symbol<unsigned int(unsigned int localId, const char* pos, unsigned int paramcount)> VM_Execute{0x56DFE0};
|
WEAK symbol<unsigned int(unsigned int localId, const char* pos, unsigned int paramcount)> VM_Execute{0x56DFE0};
|
||||||
@ -79,6 +80,8 @@ namespace game
|
|||||||
WEAK symbol<gentity_s> g_entities{0x1A66E28};
|
WEAK symbol<gentity_s> g_entities{0x1A66E28};
|
||||||
WEAK symbol<unsigned int> levelEntityId{0x208E1A4};
|
WEAK symbol<unsigned int> levelEntityId{0x208E1A4};
|
||||||
|
|
||||||
|
WEAK symbol<dvar_t> sv_maxclients{0x1BA0E4C};
|
||||||
|
WEAK symbol<int> svs_clientCount{0x4B5CF8C};
|
||||||
WEAK symbol<client_s> svs_clients{0x4B5CF90};
|
WEAK symbol<client_s> svs_clients{0x4B5CF90};
|
||||||
|
|
||||||
namespace plutonium
|
namespace plutonium
|
||||||
|
Loading…
x
Reference in New Issue
Block a user