Sfoglia il codice sorgente

- Added at command @commands, displays the list of commands available to you.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6313 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 anni fa
parent
commit
2728afbb10

+ 2 - 0
Changelog-Trunk.txt

@@ -3,6 +3,8 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 2006/04/27
+	* Added at command @commands, displays the list of commands available to
+	  you. Defaults to level 1. [Skotlex]
 	* Added the missing clif_* calls to make changebase's view-class change
 	  update on the client. [Skotlex]
 	* Added battle config hide_woe_damage which hides damage on woe maps

+ 3 - 0
conf-tmpl/atcommand_athena.conf

@@ -45,6 +45,9 @@ command_symbol: @
 //-------------------------
 // 1: Super player commands
 
+//Displays a list of @ commands available to the player.
+commands: 1
+
 //Displays the server rates.
 rates: 1
 

+ 3 - 0
conf-tmpl/msg_athena.conf

@@ -282,6 +282,9 @@
 270: *%s %s*
 271: You can't drop items on this map
 272: You can't trade on this map
+273: Commands available:
+274: %d commands found.
+275: No commands found.
 // Guild Castles Number
 // --------------------
 299: ?? Castles

+ 35 - 0
src/map/atcommand.c

@@ -293,6 +293,7 @@ ACMD_FUNC(main); // LuzZza
 
 ACMD_FUNC(clone); // [Valaris]
 ACMD_FUNC(tonpc); // LuzZza
+ACMD_FUNC(commands); // LuzZza
 
 /*==========================================
  *AtCommandInfo atcommand_info[]�\‘¢‘̂̒è‹`
@@ -607,6 +608,7 @@ static AtCommandInfo atcommand_info[] = {
 	{ AtCommand_Clone,				"@slaveclone",		50, atcommand_clone },
 	{ AtCommand_Clone,				"@evilclone",		50, atcommand_clone }, // [Valaris]
 	{ AtCommand_ToNPC,				"@tonpc",			40, atcommand_tonpc }, // LuzZza
+	{ AtCommand_Commands,			"@commands",		1, atcommand_commands }, // [Skotlex]
 
 // add new commands before this line
 	{ AtCommand_Unknown,			NULL,				 1, NULL }
@@ -1157,6 +1159,39 @@ int duel_reject(
  *------------------------------------------
  */
 
+/*==========================================
+ * @commands Lists available @ commands to you.
+ *------------------------------------------
+ */
+int atcommand_commands(const int fd, struct map_session_data* sd,
+	const char* command, const char* message)
+{
+	int i,count=0,level;
+	nullpo_retr(-1, sd);
+	level = pc_isGM(sd);
+	
+	clif_displaymessage(fd, msg_txt(273));
+	memset(atcmd_output, 0, sizeof atcmd_output);
+	for (i = 0; atcommand_info[i].type != AtCommand_None; i++)
+		if (atcommand_info[i].level <= level) {
+			count++;
+			strcat(atcmd_output, atcommand_info[i].command);
+			strcat(atcmd_output, " ");
+			if (!(count%10)) {
+				clif_displaymessage(fd, atcmd_output);
+				memset(atcmd_output, 0, sizeof atcmd_output);
+			}
+		}
+	
+	if (count) {
+		sprintf(atcmd_output, msg_txt(274), count);
+		clif_displaymessage(fd, atcmd_output);
+	} else
+		clif_displaymessage(fd, msg_txt(275));
+		
+	return 0;
+}
+
 /*==========================================
  * @send (used for testing packet sends from the client)
  *------------------------------------------

+ 1 - 1
src/map/atcommand.h

@@ -268,7 +268,7 @@ enum AtCommandType {
 
 	AtCommand_Clone, // [Valaris]
 	AtCommand_ToNPC, // LuzZza
-	
+	AtCommand_Commands, // [Skotlex]	
 	// end <- Ahem, guys, don't place AtCommands after AtCommand_Unknown! [Skotlex]
 	AtCommand_Unknown,
 	AtCommand_MAX