X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcommand%2Fsv_cmd.qc;h=7ffd1b924f3799b7a8e15a8adc531e686ae13f27;hb=ba0988ca930f50286f8cf3b6c114ebc6584964af;hp=edeb571c0dd62f0ec374699f2ac8c82e37233d01;hpb=b03338e49b3b16ec20c59a9809abe16bebcd29ce;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/command/sv_cmd.qc b/qcsrc/server/command/sv_cmd.qc index edeb571c0..7ffd1b924 100644 --- a/qcsrc/server/command/sv_cmd.qc +++ b/qcsrc/server/command/sv_cmd.qc @@ -1,3 +1,27 @@ +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../../dpdefs/progsdefs.qc" + #include "../../dpdefs/dpextensions.qc" + #include "../sys-post.qh" + #include "../../warpzonelib/mathlib.qh" + #include "../../common/constants.qh" + #include "../../common/teams.qh" + #include "../../common/util.qh" + #include "../../common/command/shared_defs.qh" + #include "../../common/monsters/sv_monsters.qh" + #include "../autocvars.qh" + #include "../defs.qh" + #include "../../common/notifications.qh" + #include "../mutators/mutators_include.qh" + #include "../../common/mapinfo.qh" + #include "common.qh" + #include "cmd.qh" + #include "sv_cmd.qh" + #include "../anticheat.qh" + #include "../playerdemo.qh" +#endif + // ===================================================== // Server side game commands code, reworked by Samual // Last updated: December 29th, 2011 @@ -85,13 +109,13 @@ void GameCommand_adminmsg(float request, float argc) if((targets) && (admin_message)) { - for(;targets;) + for(0;targets;) { t = car(targets); targets = cdr(targets); // Check to see if the player is a valid target client = GetFilteredEntity(t); - accepted = VerifyClientEntity(client, TRUE, FALSE); + accepted = VerifyClientEntity(client, true, false); if(accepted <= 0) { @@ -241,7 +265,7 @@ void GameCommand_anticheat(float request, float argc) case CMD_REQUEST_COMMAND: { entity client = GetIndexedEntity(argc, 1); - float accepted = VerifyClientEntity(client, FALSE, FALSE); + float accepted = VerifyClientEntity(client, false, false); if(accepted > 0) { @@ -272,77 +296,77 @@ void GameCommand_bbox(float request) { case CMD_REQUEST_COMMAND: { - print("Original size: ", ftos(world.absmin_x), " ", ftos(world.absmin_y), " ", ftos(world.absmin_z)); - print(" ", ftos(world.absmax_x), " ", ftos(world.absmax_y), " ", ftos(world.absmax_z), "\n"); - print("Currently set size: ", ftos(world.mins_x), " ", ftos(world.mins_y), " ", ftos(world.mins_z)); - print(" ", ftos(world.maxs_x), " ", ftos(world.maxs_y), " ", ftos(world.maxs_z), "\n"); + print("Original size: ", ftos(world.absmin.x), " ", ftos(world.absmin.y), " ", ftos(world.absmin.z)); + print(" ", ftos(world.absmax.x), " ", ftos(world.absmax.y), " ", ftos(world.absmax.z), "\n"); + print("Currently set size: ", ftos(world.mins.x), " ", ftos(world.mins.y), " ", ftos(world.mins.z)); + print(" ", ftos(world.maxs.x), " ", ftos(world.maxs.y), " ", ftos(world.maxs.z), "\n"); print("Solid bounding box size:"); - tracebox('1 0 0' * world.absmin_x, - '0 1 0' * world.absmin_y + '0 0 1' * world.absmin_z, - '0 1 0' * world.absmax_y + '0 0 1' * world.absmax_z, - '1 0 0' * world.absmax_x, + tracebox('1 0 0' * world.absmin.x, + '0 1 0' * world.absmin.y + '0 0 1' * world.absmin.z, + '0 1 0' * world.absmax.y + '0 0 1' * world.absmax.z, + '1 0 0' * world.absmax.x, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmin_x)); + print(" ", ftos(world.absmin.x)); else - print(" ", ftos(trace_endpos_x)); + print(" ", ftos(trace_endpos.x)); - tracebox('0 1 0' * world.absmin_y, - '1 0 0' * world.absmin_x + '0 0 1' * world.absmin_z, - '1 0 0' * world.absmax_x + '0 0 1' * world.absmax_z, - '0 1 0' * world.absmax_y, + tracebox('0 1 0' * world.absmin.y, + '1 0 0' * world.absmin.x + '0 0 1' * world.absmin.z, + '1 0 0' * world.absmax.x + '0 0 1' * world.absmax.z, + '0 1 0' * world.absmax.y, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmin_y)); + print(" ", ftos(world.absmin.y)); else - print(" ", ftos(trace_endpos_y)); + print(" ", ftos(trace_endpos.y)); - tracebox('0 0 1' * world.absmin_z, - '1 0 0' * world.absmin_x + '0 1 0' * world.absmin_y, - '1 0 0' * world.absmax_x + '0 1 0' * world.absmax_y, - '0 0 1' * world.absmax_z, + tracebox('0 0 1' * world.absmin.z, + '1 0 0' * world.absmin.x + '0 1 0' * world.absmin.y, + '1 0 0' * world.absmax.x + '0 1 0' * world.absmax.y, + '0 0 1' * world.absmax.z, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmin_z)); + print(" ", ftos(world.absmin.z)); else - print(" ", ftos(trace_endpos_z)); + print(" ", ftos(trace_endpos.z)); - tracebox('1 0 0' * world.absmax_x, - '0 1 0' * world.absmin_y + '0 0 1' * world.absmin_z, - '0 1 0' * world.absmax_y + '0 0 1' * world.absmax_z, - '1 0 0' * world.absmin_x, + tracebox('1 0 0' * world.absmax.x, + '0 1 0' * world.absmin.y + '0 0 1' * world.absmin.z, + '0 1 0' * world.absmax.y + '0 0 1' * world.absmax.z, + '1 0 0' * world.absmin.x, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmax_x)); + print(" ", ftos(world.absmax.x)); else - print(" ", ftos(trace_endpos_x)); + print(" ", ftos(trace_endpos.x)); - tracebox('0 1 0' * world.absmax_y, - '1 0 0' * world.absmin_x + '0 0 1' * world.absmin_z, - '1 0 0' * world.absmax_x + '0 0 1' * world.absmax_z, - '0 1 0' * world.absmin_y, + tracebox('0 1 0' * world.absmax.y, + '1 0 0' * world.absmin.x + '0 0 1' * world.absmin.z, + '1 0 0' * world.absmax.x + '0 0 1' * world.absmax.z, + '0 1 0' * world.absmin.y, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmax_y)); + print(" ", ftos(world.absmax.y)); else - print(" ", ftos(trace_endpos_y)); + print(" ", ftos(trace_endpos.y)); - tracebox('0 0 1' * world.absmax_z, - '1 0 0' * world.absmin_x + '0 1 0' * world.absmin_y, - '1 0 0' * world.absmax_x + '0 1 0' * world.absmax_y, - '0 0 1' * world.absmin_z, + tracebox('0 0 1' * world.absmax.z, + '1 0 0' * world.absmin.x + '0 1 0' * world.absmin.y, + '1 0 0' * world.absmax.x + '0 1 0' * world.absmax.y, + '0 0 1' * world.absmin.z, MOVE_WORLDONLY, world); if(trace_startsolid) - print(" ", ftos(world.absmax_z)); + print(" ", ftos(world.absmax.z)); else - print(" ", ftos(trace_endpos_z)); + print(" ", ftos(trace_endpos.z)); print("\n"); return; @@ -478,14 +502,11 @@ void GameCommand_cointoss(float request, float argc) { case CMD_REQUEST_COMMAND: { - entity client; - string result1 = (argv(2) ? strcat("^7", argv(1), "^3!\n") : "^1HEADS^3!\n"); - string result2 = (argv(2) ? strcat("^7", argv(2), "^3!\n") : "^4TAILS^3!\n"); + string result1 = (argv(2) ? strcat("^7", argv(1)) : "^1HEADS"); + string result2 = (argv(2) ? strcat("^7", argv(2)) : "^4TAILS"); string choice = ((random() > 0.5) ? result1 : result2); - - FOR_EACH_CLIENT(client) - centerprint(client, strcat("^3Throwing coin... Result: ", choice)); - bprint(strcat("^3Throwing coin... Result: ", choice)); + + Send_Notification(NOTIF_ALL, world, MSG_MULTI, MULTI_COINTOSS, choice); return; } @@ -554,7 +575,7 @@ void GameCommand_defer_clear(float request, float argc) if(argc >= 2) { client = GetIndexedEntity(argc, 1); - accepted = VerifyClientEntity(client, TRUE, FALSE); + accepted = VerifyClientEntity(client, true, false); if(accepted > 0) { @@ -841,14 +862,14 @@ void GameCommand_gettaginfo(float request, float argc) v = gettaginfo(tmp_entity, i); print("model ", tmp_entity.model, " frame ", ftos(tmp_entity.frame), " tag ", gettaginfo_name); print(" index ", ftos(i), " parent ", ftos(gettaginfo_parent), "\n"); - print(" vector = ", ftos(v_x), " ", ftos(v_y), " ", ftos(v_z), "\n"); - print(" offset = ", ftos(gettaginfo_offset_x), " ", ftos(gettaginfo_offset_y), " ", ftos(gettaginfo_offset_z), "\n"); - print(" forward = ", ftos(gettaginfo_forward_x), " ", ftos(gettaginfo_forward_y), " ", ftos(gettaginfo_forward_z), "\n"); - print(" right = ", ftos(gettaginfo_right_x), " ", ftos(gettaginfo_right_y), " ", ftos(gettaginfo_right_z), "\n"); - print(" up = ", ftos(gettaginfo_up_x), " ", ftos(gettaginfo_up_y), " ", ftos(gettaginfo_up_z), "\n"); + print(" vector = ", ftos(v.x), " ", ftos(v.y), " ", ftos(v.z), "\n"); + print(" offset = ", ftos(gettaginfo_offset.x), " ", ftos(gettaginfo_offset.y), " ", ftos(gettaginfo_offset.z), "\n"); + print(" forward = ", ftos(gettaginfo_forward.x), " ", ftos(gettaginfo_forward.y), " ", ftos(gettaginfo_forward.z), "\n"); + print(" right = ", ftos(gettaginfo_right.x), " ", ftos(gettaginfo_right.y), " ", ftos(gettaginfo_right.z), "\n"); + print(" up = ", ftos(gettaginfo_up.x), " ", ftos(gettaginfo_up.y), " ", ftos(gettaginfo_up.z), "\n"); if(argc >= 6) { - v_y = -v_y; + v_y = -v.y; localcmd(strcat(argv(4), vtos(v), argv(5), "\n")); } } @@ -1027,13 +1048,13 @@ void GameCommand_moveplayer(float request, float argc) // lets see if the target(s) even actually exist. if((targets) && (destination)) { - for(;targets;) + for(0;targets;) { t = car(targets); targets = cdr(targets); // Check to see if the player is a valid target client = GetFilteredEntity(t); - accepted = VerifyClientEntity(client, FALSE, FALSE); + accepted = VerifyClientEntity(client, false, false); if(accepted <= 0) { @@ -1081,7 +1102,7 @@ void GameCommand_moveplayer(float request, float argc) else if(team_id == 0) // auto team { CheckAllowedTeams(client); - team_id = Team_NumberToTeam(FindSmallestTeam(client, FALSE)); + team_id = Team_NumberToTeam(FindSmallestTeam(client, false)); } else { @@ -1193,7 +1214,7 @@ void GameCommand_playerdemo(float request, float argc) case "read": { client = GetIndexedEntity(argc, 2); - accepted = VerifyClientEntity(client, FALSE, TRUE); + accepted = VerifyClientEntity(client, false, true); if(accepted <= 0) { @@ -1209,7 +1230,7 @@ void GameCommand_playerdemo(float request, float argc) case "write": { client = GetIndexedEntity(argc, 2); - accepted = VerifyClientEntity(client, FALSE, FALSE); + accepted = VerifyClientEntity(client, false, false); if(accepted <= 0) { @@ -1264,7 +1285,7 @@ void GameCommand_printstats(float request) { case CMD_REQUEST_COMMAND: { - DumpStats(FALSE); + DumpStats(false); print("stats dumped.\n"); return; } @@ -1379,7 +1400,7 @@ void GameCommand_shuffleteams(float request) // build a list of the players in a random order FOR_EACH_PLAYER(tmp_player) { - for(;;) + for(0;;) { i = bound(1, floor(random() * maxclients) + 1, maxclients); @@ -1471,7 +1492,7 @@ void GameCommand_stuffto(float request, float argc) if(argv(2)) { entity client = GetIndexedEntity(argc, 1); - float accepted = VerifyClientEntity(client, TRUE, FALSE); + float accepted = VerifyClientEntity(client, true, false); if(accepted > 0) { @@ -1521,18 +1542,18 @@ void GameCommand_trace(float request, float argc) float hitcount = 0; print("TEST CASE. If this returns the runaway loop counter error, possibly everything is oaky.\n"); float worst_endpos_bug = 0; - for(;;) + for(0;;) { org = world.mins; delta = world.maxs - world.mins; - start_x = org_x + random() * delta_x; - start_y = org_y + random() * delta_y; - start_z = org_z + random() * delta_z; + start_x = org.x + random() * delta.x; + start_y = org.y + random() * delta.y; + start_z = org.z + random() * delta.z; - end_x = org_x + random() * delta_x; - end_y = org_y + random() * delta_y; - end_z = org_z + random() * delta_z; + end_x = org.x + random() * delta.x; + end_y = org.y + random() * delta.y; + end_z = org.z + random() * delta.z; start = stov(vtos(start)); end = stov(vtos(end)); @@ -1550,7 +1571,7 @@ void GameCommand_trace(float request, float argc) // how much do we need to back off? safe = 1; unsafe = 0; - for(;;) + for(0;;) { pos = p * (1 - (safe + unsafe) * 0.5) + start * ((safe + unsafe) * 0.5); tracebox(pos, PL_MIN, PL_MAX, pos, MOVE_NOMONSTERS, world); @@ -1584,7 +1605,7 @@ void GameCommand_trace(float request, float argc) q0 = p; dq = 0; dqf = 1; - for(;;) + for(0;;) { q = p + normalize(end - p) * (dq + dqf); if(q == q0) @@ -1625,17 +1646,17 @@ void GameCommand_trace(float request, float argc) for(i = 0; i < 100000; ++i) { dv = randomvec(); - if(dv_z > 0) + if(dv.z > 0) dv = -1 * dv; tracebox(vv, e.mins, e.maxs, vv + dv, MOVE_NORMAL, e); if(trace_startsolid) print("bug 1\n"); if(trace_fraction == 1) - if(dv_z < f) + if(dv.z < f) { - print("bug 2: ", ftos(dv_x), " ", ftos(dv_y), " ", ftos(dv_z)); - print(" (", ftos(asin(dv_z / vlen(dv)) * 180 / M_PI), " degrees)\n"); - f = dv_z; + print("bug 2: ", ftos(dv.x), " ", ftos(dv.y), " ", ftos(dv.z)); + print(" (", ftos(asin(dv.z / vlen(dv)) * 180 / M_PI), " degrees)\n"); + f = dv.z; } } print("highest possible dist: ", ftos(f), "\n"); @@ -1818,7 +1839,7 @@ void GameCommand_macro_help() #define SERVER_COMMAND(name,function,description) \ { print(" ^2", name, "^7: ", description, "\n"); } - SERVER_COMMANDS(0, 0, "") + SERVER_COMMANDS(0, 0, ""); #undef SERVER_COMMAND return; @@ -1827,23 +1848,23 @@ void GameCommand_macro_help() float GameCommand_macro_command(float argc, string command) { #define SERVER_COMMAND(name,function,description) \ - { if(name == strtolower(argv(0))) { function; return TRUE; } } + { if(name == strtolower(argv(0))) { function; return true; } } - SERVER_COMMANDS(CMD_REQUEST_COMMAND, argc, command) + SERVER_COMMANDS(CMD_REQUEST_COMMAND, argc, command); #undef SERVER_COMMAND - return FALSE; + return false; } float GameCommand_macro_usage(float argc) { #define SERVER_COMMAND(name,function,description) \ - { if(name == strtolower(argv(1))) { function; return TRUE; } } + { if(name == strtolower(argv(1))) { function; return true; } } - SERVER_COMMANDS(CMD_REQUEST_USAGE, argc, "") + SERVER_COMMANDS(CMD_REQUEST_USAGE, argc, ""); #undef SERVER_COMMAND - return FALSE; + return false; } void GameCommand_macro_write_aliases(float fh) @@ -1851,7 +1872,7 @@ void GameCommand_macro_write_aliases(float fh) #define SERVER_COMMAND(name,function,description) \ { CMD_Write_Alias("qc_cmd_sv", name, description); } - SERVER_COMMANDS(0, 0, "") + SERVER_COMMANDS(0, 0, ""); #undef SERVER_COMMAND return;