2022-03-03 22:16:02 +00:00
|
|
|
/*
|
2024-04-22 22:11:12 +00:00
|
|
|
* Copyright (c) 2016-2024 Vera Visions LLC.
|
2022-03-03 22:16:02 +00:00
|
|
|
*
|
|
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
|
|
* copyright notice and this permission notice appear in all copies.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
|
|
|
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
2022-07-07 16:10:14 +00:00
|
|
|
*/
|
2022-03-03 22:16:02 +00:00
|
|
|
|
2024-10-17 05:52:27 +00:00
|
|
|
void Commandmenu_Open(void);
|
|
|
|
void Commandmenu_Close(void);
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_testPointLight(void)
|
|
|
|
{
|
|
|
|
makevectors(getproperty(VF_ANGLES));
|
|
|
|
traceline(getproperty(VF_ORIGIN), getproperty(VF_ORIGIN) + v_forward * 4096, FALSE, pSeat->m_ePlayer);
|
|
|
|
dynamiclight_spawnstatic(trace_endpos + (v_forward * -16), 1024, [1,1,1]);
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_modeltest(void)
|
|
|
|
{
|
|
|
|
entity mt = spawn();
|
|
|
|
mt.drawmask = MASK_ENGINE;
|
|
|
|
setmodel(mt, argv(1));
|
|
|
|
setsize(mt, [0,0,0], [0,0,0]);
|
|
|
|
setorigin(mt, getproperty(VF_ORIGIN));
|
|
|
|
mt.angles = getproperty(VF_ANGLES);
|
|
|
|
mt.angles[0] = mt.angles[2] = 0;
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_explode(void)
|
|
|
|
{
|
|
|
|
makevectors(getproperty(VF_ANGLES));
|
|
|
|
traceline(getproperty(VF_ORIGIN), getproperty(VF_ORIGIN) + v_forward * 4096, FALSE, pSeat->m_ePlayer);
|
2023-07-24 21:14:20 +00:00
|
|
|
// FX_Explosion(trace_endpos);
|
2022-03-04 00:13:30 +00:00
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_sunpos(void)
|
|
|
|
{
|
|
|
|
vector sunpos, sunang;
|
|
|
|
vector lepos, leang;
|
|
|
|
|
|
|
|
makevectors(getproperty(VF_ANGLES));
|
|
|
|
sunpos = v_forward * -1;
|
|
|
|
sunang = vectoangles(sunpos);
|
|
|
|
|
|
|
|
makevectors(getproperty(VF_ANGLES));
|
|
|
|
lepos = v_forward * -1;
|
|
|
|
leang = vectoangles(lepos);
|
|
|
|
leang[1] -= 180;
|
|
|
|
leang[0] *= -1;
|
|
|
|
|
|
|
|
localcmd(sprintf("r_shadows_throwdirection %v\n", sunpos));
|
|
|
|
print(sprintf("env_sun: pitch: %d; angle: %d\n", -sunang[0], sunang[1]));
|
|
|
|
print(sprintf("light_environment: sunangle: %d; pitch: %d\n", leang[1], leang[0]));
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_measure(void)
|
|
|
|
{
|
|
|
|
static vector measurepos;
|
|
|
|
if (!vlen(measurepos)) {
|
|
|
|
measurepos = getproperty(VF_ORIGIN);
|
|
|
|
CSQC_Parse_CenterPrint(sprintf( "First marker set at\n%v", measurepos));
|
|
|
|
} else {
|
|
|
|
CSQC_Parse_CenterPrint(sprintf("Distance: %d\n", vlen(measurepos - getproperty(VF_ORIGIN))));
|
|
|
|
measurepos = [0,0,0];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_vote(void)
|
|
|
|
{
|
|
|
|
if (argv(1) == "yes") {
|
|
|
|
sendevent("VoteY", "");
|
|
|
|
} else if (argv(1) == "no") {
|
|
|
|
sendevent("VoteN", "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_getpos(void)
|
|
|
|
{
|
|
|
|
print(sprintf("setpos %v;setang -%v\n", getproperty(VF_ORIGIN), getproperty(VF_ANGLES)));
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_setpos(void)
|
|
|
|
{
|
|
|
|
localcmd(sprintf("cmd setpos \"%s\"\n", argv(1)));
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_setang(void)
|
|
|
|
{
|
2022-08-06 04:15:19 +00:00
|
|
|
g_view.SetCameraAngle(stov(argv(1)));
|
|
|
|
g_view.SetClientAngle(stov(argv(1)));
|
2022-03-04 00:13:30 +00:00
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_titles_test(void)
|
|
|
|
{
|
|
|
|
GameMessage_Setup(argv(1), 0);
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_way_menu(void)
|
|
|
|
{
|
|
|
|
Way_Autoload();
|
|
|
|
Textmenu_Call("WAY_MENU");
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_view_geomtest(void)
|
|
|
|
{
|
2023-07-24 21:14:20 +00:00
|
|
|
print(sprintf("geomset %s %s\n", argv(1), argv(2)));
|
2024-06-22 07:24:13 +00:00
|
|
|
//Weapons_SetGeomset(sprintf("geomset %s %s\n", argv(1), argv(2)));
|
2022-03-04 00:13:30 +00:00
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_player_geomtest(void)
|
|
|
|
{
|
|
|
|
setcustomskin(pSeat->m_ePlayer, "", sprintf("geomset %s %s\n", argv(1), argv(2)));
|
|
|
|
}
|
|
|
|
|
2022-08-28 05:05:31 +00:00
|
|
|
void
|
|
|
|
CMD_Cleardecals(void)
|
|
|
|
{
|
|
|
|
for (entity e = world; (e = find(e, ::classname, "tempdecal"));) {
|
2024-06-22 07:24:13 +00:00
|
|
|
NSDecal dcl = (NSDecal)e;
|
2022-08-28 05:05:31 +00:00
|
|
|
dcl.m_strShader = "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-01 01:51:07 +00:00
|
|
|
/* Wishlist: list size and potential vmem usage */
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-12-01 01:51:07 +00:00
|
|
|
CMD_ListModels(void)
|
|
|
|
{
|
|
|
|
string tmp;
|
|
|
|
int i = 0i;
|
|
|
|
int actual_count = 0i;
|
|
|
|
|
2022-12-15 00:51:16 +00:00
|
|
|
for (i = -4096; i < 4096; i++) {
|
2022-12-01 01:51:07 +00:00
|
|
|
tmp = modelnameforindex(i);
|
|
|
|
|
|
|
|
if (strlen(tmp) > 1) {
|
|
|
|
print(sprintf("%i %s\n", i, tmp));
|
|
|
|
actual_count++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
print(sprintf("\t%i total models loaded\n", actual_count));
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Wishlist: list size and samplerate/bitdepth */
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-12-01 01:51:07 +00:00
|
|
|
CMD_ListSounds(void)
|
|
|
|
{
|
|
|
|
string tmp;
|
|
|
|
int i = 0i;
|
|
|
|
int actual_count = 0i;
|
|
|
|
float length;
|
|
|
|
float total_length = 0.0f;
|
|
|
|
|
2022-12-15 00:51:16 +00:00
|
|
|
for (i = 0; i < 4096; i++) {
|
2022-12-01 01:51:07 +00:00
|
|
|
tmp = soundnameforindex(i);
|
|
|
|
length = soundlength(tmp);
|
|
|
|
|
|
|
|
if (strlen(tmp) > 1) {
|
|
|
|
print(sprintf("%i %s (%f seconds)\n", i, tmp, length));
|
|
|
|
actual_count++;
|
|
|
|
total_length += length;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
print(sprintf("\t%i total samples loaded\n", actual_count));
|
|
|
|
print(sprintf("\t%f seconds worth of samples\n", total_length));
|
|
|
|
}
|
|
|
|
|
2022-12-29 00:48:57 +00:00
|
|
|
static void
|
2022-12-01 01:51:07 +00:00
|
|
|
CMD_ListParticles(void)
|
|
|
|
{
|
|
|
|
string tmp;
|
|
|
|
int i = 0i;
|
|
|
|
int actual_count = 0i;
|
|
|
|
|
2022-12-15 00:51:16 +00:00
|
|
|
for (i = -4096; i < 4096; i++) {
|
2022-12-01 01:51:07 +00:00
|
|
|
tmp = particleeffectquery(i, 0);
|
|
|
|
|
|
|
|
if (strlen(tmp) > 1) {
|
|
|
|
print(sprintf("%i %s\n", i, tmp));
|
|
|
|
actual_count++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
print(sprintf("\t%i total particles loaded\n", actual_count));
|
|
|
|
}
|
|
|
|
|
2023-01-23 04:02:46 +00:00
|
|
|
static void
|
|
|
|
CMD_ListTitles(void)
|
|
|
|
{
|
|
|
|
int i = 0i;
|
|
|
|
|
|
|
|
for (i = 0; i < g_titles_count; i++) {
|
2024-03-02 08:40:08 +00:00
|
|
|
printf("%s, (x: %d, y: %d)\n",
|
|
|
|
g_titles[i].m_strName, g_titles[i].m_flPosX, g_titles[i].m_flPosY);
|
|
|
|
printf("\teffect: %i, fade-in: %f, fade-out: %f\n",
|
|
|
|
g_titles[i].m_iEffect, g_titles[i].m_flFadeIn, g_titles[i].m_flFadeOut);
|
|
|
|
printf("\thold-time: %f, fx-time: %f\n",
|
|
|
|
g_titles[i].m_flHoldTime, g_titles[i].m_flFXTime);
|
|
|
|
printf("\tcolor 1: %v, color 2: %v\n",
|
|
|
|
g_titles[i].m_vecColor1, g_titles[i].m_vecColor2);
|
2023-01-23 04:02:46 +00:00
|
|
|
}
|
|
|
|
print(sprintf("\t%i total titles loaded\n", g_titles_count));
|
|
|
|
}
|
|
|
|
|
2023-07-16 20:04:23 +00:00
|
|
|
static void
|
|
|
|
CMD_ListModelFramegroups(void)
|
|
|
|
{
|
|
|
|
string modelName = argv(1);
|
|
|
|
float modelIndex = getmodelindex(modelName);
|
2023-07-17 05:46:26 +00:00
|
|
|
string temp = "";
|
2023-07-16 20:04:23 +00:00
|
|
|
|
2024-03-02 08:40:08 +00:00
|
|
|
printf("// model: %S\n", modelName);
|
2023-07-16 20:04:23 +00:00
|
|
|
|
|
|
|
print("typedef enum {\n");
|
|
|
|
for (int i = 0; i < modelframecount(modelIndex); i++) {
|
|
|
|
temp = frametoname(modelIndex, i);
|
2024-03-02 08:40:08 +00:00
|
|
|
printf("\t%s = %i,\n", strtoupper(temp), i);
|
2023-07-16 20:04:23 +00:00
|
|
|
}
|
|
|
|
print("} framegroups_e;\n");
|
|
|
|
}
|
|
|
|
|
2024-08-14 23:10:57 +00:00
|
|
|
void
|
|
|
|
NSWeapon_SelectWeapon(NSWeapon nextWeapon)
|
|
|
|
{
|
|
|
|
if (!nextWeapon) {
|
|
|
|
pSeat->m_iHUDWeaponSelected = 0i;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* this gets passed in NSClientPlayer::ClientInputFrame() to the server */
|
|
|
|
pSeat->m_iHUDWeaponSelected = nextWeapon.GetSharedID();
|
2024-09-17 19:46:31 +00:00
|
|
|
pSeat->m_flHUDWeaponSelectTime = time + 0.5f;
|
2024-08-14 23:10:57 +00:00
|
|
|
}
|
|
|
|
|
2022-03-03 22:16:02 +00:00
|
|
|
/*
|
|
|
|
=================
|
|
|
|
Cmd_Parse
|
|
|
|
|
|
|
|
Called from CSQC_ConsoleCommand to handle any builtin
|
|
|
|
commands from the Nuclide SDK.
|
|
|
|
Returns 0 if the command isn't handled and the engine is expected
|
|
|
|
to handle it from there.
|
|
|
|
=================
|
|
|
|
*/
|
2022-12-29 00:48:57 +00:00
|
|
|
bool
|
2022-03-03 22:16:02 +00:00
|
|
|
Cmd_Parse(string sCMD)
|
|
|
|
{
|
2024-08-14 23:10:57 +00:00
|
|
|
NSClient localPlayer = (NSClient)pSeat->m_ePlayer;
|
2022-03-03 22:16:02 +00:00
|
|
|
switch (argv(0)) {
|
2023-07-16 20:04:23 +00:00
|
|
|
case "listFramegroups":
|
|
|
|
CMD_ListModelFramegroups();
|
|
|
|
break;
|
2023-01-23 04:02:46 +00:00
|
|
|
case "listTitles":
|
|
|
|
CMD_ListTitles();
|
|
|
|
break;
|
2022-12-01 01:51:07 +00:00
|
|
|
case "listModels":
|
|
|
|
CMD_ListModels();
|
|
|
|
break;
|
|
|
|
case "listSounds":
|
|
|
|
CMD_ListSounds();
|
|
|
|
break;
|
|
|
|
case "listParticles":
|
|
|
|
CMD_ListParticles();
|
|
|
|
break;
|
2023-11-18 02:54:46 +00:00
|
|
|
case "listClientSoundDef":
|
|
|
|
Sound_DebugList();
|
|
|
|
break;
|
|
|
|
case "listServerSoundDef":
|
|
|
|
localcmd("sv listSoundDef\n");
|
|
|
|
break;
|
2024-03-02 08:40:08 +00:00
|
|
|
case "clearDecals":
|
2022-08-28 05:05:31 +00:00
|
|
|
CMD_Cleardecals();
|
|
|
|
break;
|
2022-03-03 22:16:02 +00:00
|
|
|
case "testPointLight":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_testPointLight();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "dev_modeltest":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_modeltest();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "dev_explode":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_explode();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "dev_sunpos":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_sunpos();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "dev_measure":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_dev_measure();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "vote":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_vote();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "getpos":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_getpos();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "setpos":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_setpos();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "setang":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_setang();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "callvote":
|
|
|
|
sendevent("CallVote", "s", substring(sCMD, 9, strlen(sCMD)-9));
|
|
|
|
break;
|
|
|
|
case "+zoomin":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iZoomed = true;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "-zoomin":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iZoomed = false;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "buildcubemaps":
|
|
|
|
CMap_Build();
|
|
|
|
break;
|
|
|
|
case "titles_test":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_titles_test();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "+attack2":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputAttack2 = true;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "-attack2":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputAttack2 = false;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "+reload":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputReload = true;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "-reload":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputReload = false;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2024-04-22 22:11:12 +00:00
|
|
|
case "+activate":
|
2022-03-03 22:16:02 +00:00
|
|
|
case "+use":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputUse = true;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2024-04-22 22:11:12 +00:00
|
|
|
case "-activate":
|
2022-03-03 22:16:02 +00:00
|
|
|
case "-use":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputUse = false;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "+duck":
|
2023-01-06 07:32:42 +00:00
|
|
|
if (autocvar_pm_crouchToggle == true)
|
2022-06-27 16:30:12 +00:00
|
|
|
pSeat->m_iInputDuck = 1 - pSeat->m_iInputDuck;
|
|
|
|
else
|
|
|
|
pSeat->m_iInputDuck = TRUE;
|
2024-01-08 22:58:45 +00:00
|
|
|
|
|
|
|
pSeat->m_bSpecInput = true;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "-duck":
|
2023-01-06 07:32:42 +00:00
|
|
|
if (autocvar_pm_crouchToggle == false)
|
2022-06-27 16:30:12 +00:00
|
|
|
pSeat->m_iInputDuck = FALSE;
|
2024-01-08 22:58:45 +00:00
|
|
|
|
|
|
|
pSeat->m_bSpecInput = false;
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2024-04-22 22:11:12 +00:00
|
|
|
case "+prone":
|
|
|
|
pSeat->m_iInputProne = true;
|
|
|
|
break;
|
|
|
|
case "-prone":
|
|
|
|
pSeat->m_iInputProne = false;
|
|
|
|
break;
|
|
|
|
case "+sprint":
|
|
|
|
pSeat->m_iSprinting = true;
|
|
|
|
break;
|
|
|
|
case "-sprint":
|
|
|
|
pSeat->m_iSprinting = false;
|
|
|
|
break;
|
|
|
|
case "+leanleft":
|
|
|
|
pSeat->m_iLeanDir = -1;
|
|
|
|
break;
|
|
|
|
case "-leanleft":
|
|
|
|
pSeat->m_iLeanDir = 0;
|
|
|
|
break;
|
|
|
|
case "+leanright":
|
|
|
|
pSeat->m_iLeanDir = 1;
|
|
|
|
break;
|
|
|
|
case "-leanright":
|
|
|
|
pSeat->m_iLeanDir = 0;
|
|
|
|
break;
|
|
|
|
case "goprone":
|
|
|
|
pSeat->m_dForceStance = STANCE_PRONE;
|
|
|
|
break;
|
|
|
|
case "gocrouch":
|
|
|
|
pSeat->m_dForceStance = STANCE_CROUCH;
|
|
|
|
break;
|
|
|
|
case "+gostand":
|
|
|
|
if (pSeat->m_dForceStance != STANCE_DEFAULT) {
|
|
|
|
pSeat->m_dForceStance = STANCE_DEFAULT;
|
|
|
|
} else {
|
|
|
|
pSeat->m_iInputJump = true;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case "-gostand":
|
|
|
|
pSeat->m_iInputJump = false;
|
|
|
|
break;
|
2024-07-17 21:21:44 +00:00
|
|
|
case "weapnext":
|
2024-08-14 23:10:57 +00:00
|
|
|
NSWeapon_SelectWeapon(localPlayer.GetNextWeapon());
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2024-07-17 21:21:44 +00:00
|
|
|
case "weapprev":
|
2024-08-14 23:10:57 +00:00
|
|
|
NSWeapon_SelectWeapon(localPlayer.GetPreviousWeapon());
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2024-07-17 21:21:44 +00:00
|
|
|
case "weaplast":
|
2024-08-14 23:10:57 +00:00
|
|
|
NSWeapon_SelectWeapon(localPlayer.GetLastWeapon());
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "+showscores":
|
|
|
|
pSeat->m_iScoresVisible = TRUE;
|
|
|
|
break;
|
|
|
|
case "-showscores":
|
|
|
|
pSeat->m_iScoresVisible = FALSE;
|
|
|
|
break;
|
|
|
|
case "way_menu":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_way_menu();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "_fnchat_msg":
|
|
|
|
CSQC_Parse_Print(argv(1), PRINT_CHAT);
|
|
|
|
break;
|
|
|
|
case "view_geomtest":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_view_geomtest();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
|
|
|
case "player_geomtest":
|
2022-03-04 00:13:30 +00:00
|
|
|
CMD_player_geomtest();
|
2022-03-03 22:16:02 +00:00
|
|
|
break;
|
2023-03-25 23:28:06 +00:00
|
|
|
case "motd":
|
|
|
|
print(MOTD_GetTextBody());
|
|
|
|
break;
|
2022-05-08 00:04:05 +00:00
|
|
|
|
|
|
|
/* XR binds, engine binds them currently */
|
|
|
|
case "+attack_left":
|
|
|
|
pSeat->m_bMoveForward = true;
|
|
|
|
break;
|
|
|
|
case "-attack_left":
|
|
|
|
pSeat->m_bMoveForward = false;
|
|
|
|
break;
|
|
|
|
case "+menu_left":
|
|
|
|
break;
|
|
|
|
case "-menu_left":
|
|
|
|
break;
|
|
|
|
case "+attack_right":
|
|
|
|
pSeat->m_iInputAttack = true;
|
|
|
|
break;
|
|
|
|
case "-attack_right":
|
|
|
|
pSeat->m_iInputAttack = false;
|
|
|
|
break;
|
2024-04-22 22:11:12 +00:00
|
|
|
|
2022-05-08 00:04:05 +00:00
|
|
|
case "+menu_right":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputReload = true;
|
2022-05-08 00:04:05 +00:00
|
|
|
break;
|
|
|
|
case "-menu_right":
|
2024-04-22 22:11:12 +00:00
|
|
|
pSeat->m_iInputReload = false;
|
2022-05-08 00:04:05 +00:00
|
|
|
break;
|
2024-07-26 19:53:57 +00:00
|
|
|
|
Add a whole bunch of new bot features, including bot profiles.
Developers: the internal class `bot` is now `NSBot`, and an entityDef
of the old name will be instantiated instead.
Override defs/bot.def in your mod and make it use any custom spawnclass
you wish. Now games don't have to override `addbot` or `bot_add` inside
the multiplayer game rules.
There's also more console commands. Clients now have access to:
addBot, killAllBots, killClass [classname], killMovables, trigger [targetname], input [entnum] [input] [data], listBotProfiles, listTargets, teleport [targetname], teleportToClass [classname], respawnEntities, spawn
2024-01-27 03:22:14 +00:00
|
|
|
/* client aliases for server commands */
|
|
|
|
case "addBot":
|
|
|
|
case "killAllBots":
|
|
|
|
case "resetAllBotsGoals":
|
|
|
|
case "killClass":
|
|
|
|
case "killMovables":
|
|
|
|
case "trigger":
|
|
|
|
case "input":
|
|
|
|
case "listBotProfiles":
|
|
|
|
case "listTargets":
|
|
|
|
case "teleport":
|
|
|
|
case "teleportToClass":
|
|
|
|
case "respawnEntities":
|
2024-03-02 08:40:08 +00:00
|
|
|
case "spawnDef":
|
|
|
|
case "nodeAdd":
|
|
|
|
case "nodeDel":
|
|
|
|
case "nodeFlags":
|
|
|
|
case "nodeLink":
|
|
|
|
case "nodeRadius":
|
|
|
|
case "nodeOffset":
|
|
|
|
case "nodeUnlink":
|
2024-04-22 22:11:12 +00:00
|
|
|
case "traceMaterial":
|
2024-07-26 19:53:57 +00:00
|
|
|
localcmd(sprintf("sv %s\n", sCMD));
|
2024-04-22 22:11:12 +00:00
|
|
|
break;
|
2024-07-26 19:53:57 +00:00
|
|
|
/* client aliases for client commands */
|
|
|
|
case "listInventory":
|
|
|
|
case "giveInventoryItem":
|
|
|
|
case "removeInventoryItem":
|
|
|
|
case "removeAllInventoryItems":
|
|
|
|
case "listAmmo":
|
2024-10-17 05:52:27 +00:00
|
|
|
case "joinTeam":
|
2024-07-26 19:53:57 +00:00
|
|
|
localcmd(sprintf("cmd %s\n", sCMD));
|
|
|
|
break;
|
|
|
|
|
2024-06-22 07:24:13 +00:00
|
|
|
case "listClientEntityDef":
|
|
|
|
EntityDef_DebugList();
|
|
|
|
break;
|
|
|
|
case "listServerEntityDef":
|
|
|
|
localcmd("sv listEntityDef\n");
|
|
|
|
break;
|
2024-07-26 19:53:57 +00:00
|
|
|
|
2024-04-22 22:11:12 +00:00
|
|
|
case "bobup":
|
|
|
|
break;
|
|
|
|
case "bobdn":
|
|
|
|
break;
|
2024-10-17 05:52:27 +00:00
|
|
|
|
|
|
|
case "+commandmenu":
|
|
|
|
Commandmenu_Open();
|
|
|
|
break;
|
|
|
|
case "-commandmenu":
|
|
|
|
Commandmenu_Close();
|
|
|
|
break;
|
|
|
|
case "ragdollCreate":
|
|
|
|
NSRagdoll_Create(argv(1));
|
|
|
|
break;
|
2022-03-03 22:16:02 +00:00
|
|
|
default:
|
2024-10-17 05:52:27 +00:00
|
|
|
return HUD_ConsoleCommand(sCMD);
|
2022-03-03 22:16:02 +00:00
|
|
|
}
|
2022-12-29 00:48:57 +00:00
|
|
|
return (true);
|
2022-03-03 22:16:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
Cmd_Init
|
|
|
|
|
|
|
|
Register our commands for Nuclide
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
Cmd_Init(void)
|
|
|
|
{
|
2024-03-02 08:40:08 +00:00
|
|
|
InitStart();
|
2022-03-03 22:16:02 +00:00
|
|
|
|
|
|
|
/* developer/debug commands */
|
2023-07-16 20:04:23 +00:00
|
|
|
registercommand("listFramegroups");
|
2022-12-01 01:51:07 +00:00
|
|
|
registercommand("listModels");
|
|
|
|
registercommand("listSounds");
|
|
|
|
registercommand("listParticles");
|
2023-01-23 04:02:46 +00:00
|
|
|
registercommand("listTitles");
|
2023-11-18 02:54:46 +00:00
|
|
|
registercommand("listClientSoundDef");
|
|
|
|
registercommand("listServerSoundDef");
|
2024-04-22 22:11:12 +00:00
|
|
|
registercommand("traceMaterial");
|
2024-06-22 07:24:13 +00:00
|
|
|
registercommand("listClientEntityDef");
|
|
|
|
registercommand("listServerEntityDef");
|
|
|
|
registercommand("listInventory");
|
|
|
|
registercommand("listAmmo");
|
2024-10-17 05:52:27 +00:00
|
|
|
registercommand("ragdollCreate");
|
2022-12-01 01:51:07 +00:00
|
|
|
|
Add a whole bunch of new bot features, including bot profiles.
Developers: the internal class `bot` is now `NSBot`, and an entityDef
of the old name will be instantiated instead.
Override defs/bot.def in your mod and make it use any custom spawnclass
you wish. Now games don't have to override `addbot` or `bot_add` inside
the multiplayer game rules.
There's also more console commands. Clients now have access to:
addBot, killAllBots, killClass [classname], killMovables, trigger [targetname], input [entnum] [input] [data], listBotProfiles, listTargets, teleport [targetname], teleportToClass [classname], respawnEntities, spawn
2024-01-27 03:22:14 +00:00
|
|
|
/* server commands */
|
|
|
|
registercommand("addBot");
|
|
|
|
registercommand("killAllBots");
|
|
|
|
registercommand("resetAllBotsGoals");
|
|
|
|
registercommand("killClass");
|
|
|
|
registercommand("killMovables");
|
|
|
|
registercommand("trigger");
|
|
|
|
registercommand("input");
|
|
|
|
registercommand("listTargets");
|
|
|
|
registercommand("teleport");
|
|
|
|
registercommand("teleportToClass");
|
|
|
|
registercommand("respawnEntities");
|
2024-03-02 08:40:08 +00:00
|
|
|
registercommand("spawnDef");
|
Add a whole bunch of new bot features, including bot profiles.
Developers: the internal class `bot` is now `NSBot`, and an entityDef
of the old name will be instantiated instead.
Override defs/bot.def in your mod and make it use any custom spawnclass
you wish. Now games don't have to override `addbot` or `bot_add` inside
the multiplayer game rules.
There's also more console commands. Clients now have access to:
addBot, killAllBots, killClass [classname], killMovables, trigger [targetname], input [entnum] [input] [data], listBotProfiles, listTargets, teleport [targetname], teleportToClass [classname], respawnEntities, spawn
2024-01-27 03:22:14 +00:00
|
|
|
registercommand("listBotProfiles");
|
|
|
|
|
2024-03-02 08:40:08 +00:00
|
|
|
/* nav editing */
|
|
|
|
registercommand("nodeAdd");
|
|
|
|
registercommand("nodeDel");
|
|
|
|
registercommand("nodeFlags");
|
|
|
|
registercommand("nodeLink");
|
|
|
|
registercommand("nodeRadius");
|
|
|
|
registercommand("nodeOffset");
|
|
|
|
registercommand("nodeUnlink");
|
|
|
|
|
|
|
|
registercommand("clearDecals");
|
2022-03-03 22:16:02 +00:00
|
|
|
registercommand("testLight");
|
|
|
|
registercommand("testPointLight");
|
|
|
|
registercommand("getpos");
|
|
|
|
registercommand("setpos");
|
|
|
|
registercommand("setang");
|
|
|
|
registercommand("dev_sentence");
|
|
|
|
registercommand("titles_test");
|
|
|
|
registercommand("buildcubemaps");
|
|
|
|
registercommand("dev_sunpos");
|
|
|
|
registercommand("dev_measure");
|
|
|
|
registercommand("view_geomtest");
|
|
|
|
registercommand("player_geomtest");
|
|
|
|
registercommand("way_menu");
|
|
|
|
registercommand("dev_explode");
|
|
|
|
registercommand("dev_modeltest");
|
|
|
|
|
|
|
|
/* basic actions */
|
|
|
|
registercommand("+attack");
|
|
|
|
registercommand("-attack");
|
|
|
|
registercommand("+attack2");
|
|
|
|
registercommand("-attack2");
|
2024-06-22 07:24:13 +00:00
|
|
|
registercommand("+reload");
|
2022-03-03 22:16:02 +00:00
|
|
|
registercommand("-reload");
|
2024-04-22 22:11:12 +00:00
|
|
|
registercommand("+activate");
|
|
|
|
registercommand("-activate");
|
2022-03-03 22:16:02 +00:00
|
|
|
registercommand("+use");
|
|
|
|
registercommand("-use");
|
|
|
|
registercommand("+duck");
|
|
|
|
registercommand("-duck");
|
2024-04-22 22:11:12 +00:00
|
|
|
registercommand("+prone");
|
|
|
|
registercommand("-prone");
|
|
|
|
registercommand("goprone");
|
|
|
|
registercommand("gocrouch");
|
|
|
|
registercommand("+gostand");
|
|
|
|
registercommand("-gostand");
|
|
|
|
registercommand("+sprint");
|
|
|
|
registercommand("-sprint");
|
2024-06-22 07:24:13 +00:00
|
|
|
registercommand("+leanleft");
|
|
|
|
registercommand("-leanleft");
|
|
|
|
registercommand("+leanright");
|
|
|
|
registercommand("-leanright");
|
2024-07-17 21:21:44 +00:00
|
|
|
registercommand("weapnext");
|
|
|
|
registercommand("weapprev");
|
2022-03-03 22:16:02 +00:00
|
|
|
|
2024-07-26 19:53:57 +00:00
|
|
|
registercommand("giveInventoryItem");
|
|
|
|
registercommand("removeInventoryItem");
|
|
|
|
registercommand("removeAllInventoryItems");
|
|
|
|
|
2022-03-03 22:16:02 +00:00
|
|
|
/* voting */
|
|
|
|
registercommand("vote");
|
|
|
|
registercommand("callvote");
|
|
|
|
|
2024-10-17 05:52:27 +00:00
|
|
|
/* teamplay */
|
|
|
|
registercommand("joinTeam");
|
|
|
|
|
2023-03-25 23:28:06 +00:00
|
|
|
/* motd */
|
|
|
|
registercommand("motd");
|
|
|
|
|
2022-03-03 22:16:02 +00:00
|
|
|
/* hud weapon selection system */
|
|
|
|
registercommand("slot1");
|
|
|
|
registercommand("slot2");
|
|
|
|
registercommand("slot3");
|
|
|
|
registercommand("slot4");
|
|
|
|
registercommand("slot5");
|
|
|
|
registercommand("slot6");
|
|
|
|
registercommand("slot7");
|
|
|
|
registercommand("slot8");
|
|
|
|
registercommand("slot9");
|
|
|
|
registercommand("slot10");
|
|
|
|
|
2024-10-17 05:52:27 +00:00
|
|
|
/* commandmenu */
|
|
|
|
registercommand("+commandmenu");
|
|
|
|
registercommand("-commandmenu");
|
|
|
|
|
2022-03-03 22:16:02 +00:00
|
|
|
/* scoreboard */
|
|
|
|
registercommand("+showscores");
|
|
|
|
registercommand("-showscores");
|
|
|
|
|
|
|
|
/* meant to be hidden */
|
|
|
|
registercommand("_fnchat_msg");
|
|
|
|
|
|
|
|
/* Requested by Slacer */
|
|
|
|
registercommand("+zoomin");
|
|
|
|
registercommand("-zoomin");
|
2022-05-08 00:04:05 +00:00
|
|
|
|
|
|
|
/* XR binds, temporady until the engine standardizes things */
|
|
|
|
registercommand("+attack_left");
|
|
|
|
registercommand("-attack_left");
|
|
|
|
registercommand("+attack_right");
|
|
|
|
registercommand("-attack_right");
|
|
|
|
registercommand("+menu_left");
|
|
|
|
registercommand("-menu_left");
|
|
|
|
registercommand("+menu_right");
|
|
|
|
registercommand("-menu_right");
|
2024-03-02 08:40:08 +00:00
|
|
|
|
|
|
|
InitEnd();
|
2022-03-03 22:16:02 +00:00
|
|
|
}
|