]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/gamecommand.qc
Merge remote branch 'origin/tzork/fl_notarget_ctflags'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / gamecommand.qc
index e1d7cb15df518149d7665ef07918f80dd8ade1e9..daec8754e2c02e9534a1316cfd4733b924e3da8f 100644 (file)
@@ -680,7 +680,7 @@ void GameCommand(string command)
        if(argv(0) == "help" || argc == 0)
        {
                print("Usage: sv_cmd COMMAND..., where possible commands are:\n");
-               print("  adminmsg clientnumber \"message\"\n");
+               print("  adminmsg clientnumber \"message\" [infobartime]\n");
                print("  teamstatus\n");
                print("  printstats\n");
                print("  make_mapinfo\n");
@@ -761,24 +761,40 @@ void GameCommand(string command)
        }
 
        if(argv(0) == "adminmsg")
-       if(argc == 3)
+       if(argc >= 3 && argc <= 4)
        {
                entno = stof(argv(1));
 
-               if((entno < 1) | (entno > maxclients)) {
+               if((entno < 0) | (entno > maxclients)) {
                        print("Player ", argv(1), " doesn't exist\n");
                        return;
                }
 
-               client = edict_num(entno);
-
-               if(client.flags & FL_CLIENT)
+               n = 0;
+               for(i = (entno ? entno : 1); i <= (entno ? entno : maxclients); ++i)
                {
-                       centerprint_atprio(client, CENTERPRIO_ADMIN, strcat("^3", admin_name(), ":\n\n^7", argv(2)));
-                       sprint(client, strcat("\{1}\{13}^3", admin_name(), "^7: ", argv(2), "\n"));
-                       print("Message sent to ", client.netname, "\n");
+                       client = edict_num(i);
+                       if(client.flags & FL_CLIENT)
+                       {
+                               if(argc == 4)
+                               {
+                                       s = argv(2);
+                                       s = strreplace("\n", "", s);
+                                       s = strreplace("\\", "\\\\", s);
+                                       s = strreplace("$", "$$", s);
+                                       s = strreplace("\"", "\\\"", s);
+                                       stuffcmd(client, sprintf("\ninfobar %f \"%s\"\n", stof(argv(3)), s));
+                               }
+                               else
+                               {
+                                       centerprint_atprio(client, CENTERPRIO_ADMIN, strcat("^3", admin_name(), ":\n\n^7", argv(2)));
+                                       sprint(client, strcat("\{1}\{13}^3", admin_name(), "^7: ", argv(2), "\n"));
+                               }
+                               print("Message sent to ", client.netname, "\n");
+                               ++n;
+                       }
                }
-               else
+               if(!n)
                        print("Client not found\n");
 
                return;