Преглед изворни кода

* Quick fix to char command checking gm level of the target player instead of the command user (bugreport:3255).
* Disalbed @jump/@jumpto usage when dead.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14117 54d463be-8e91-2dee-dedb-b68131a5f0ec

Inkfish пре 15 година
родитељ
комит
b9c5a5fc32
3 измењених фајлова са 20 додато и 2 уклоњено
  1. 3 0
      Changelog-Trunk.txt
  2. 16 1
      src/map/atcommand.c
  3. 1 1
      src/map/skill.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ 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.
 
+09/11/02
+	* Quick fix to char command checking gm level of the target player instead of the command user (bugreport:3255). [Inkfish]
+	* Disalbed @jump/@jumpto usage when dead. [Inkfish]
 09/11/01
 	* Rev. 14115 Implemented the fix for Slim Pitcher working on WoESE objects (bugreport:3618). [L0ne_W0lf]
 	* Added SC_SPIRIT to the list of buffs that are dispelled when the player logs out.

+ 16 - 1
src/map/atcommand.c

@@ -528,7 +528,13 @@ int atcommand_jumpto(const int fd, struct map_session_data* sd, const char* comm
 		clif_displaymessage(fd, msg_txt(248));	// You are not authorized to warp from your current map.
 		return -1;
 	}
-	
+
+	if( pc_isdead(sd) )
+	{
+		clif_displaymessage(fd, "You cannot use this command when dead.");
+		return -1;
+	}
+
 	pc_setpos(sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3);
 	sprintf(atcmd_output, msg_txt(4), pl_sd->status.name); // Jumped to %s
  	clif_displaymessage(fd, atcmd_output);
@@ -554,6 +560,12 @@ int atcommand_jump(const int fd, struct map_session_data* sd, const char* comman
 		return -1;
 	}
 
+	if( pc_isdead(sd) )
+	{
+		clif_displaymessage(fd, "You cannot use this command when dead.");
+		return -1;
+	}
+
 	if ((x || y) && map_getcell(sd->bl.m, x, y, CELL_CHKNOPASS))
   	{	//This is to prevent the pc_setpos call from printing an error.
 		clif_displaymessage(fd, msg_txt(2));
@@ -8894,6 +8906,7 @@ bool is_atcommand(const int fd, struct map_session_data* sd, const char* message
 	char command[100];
 	char output[200];
 	int x, y, z;
+	int lv = 0;
 	
 	//Reconstructed message
 	char atcmd_msg[200];
@@ -8999,11 +9012,13 @@ bool is_atcommand(const int fd, struct map_session_data* sd, const char* message
 	}
 	
 	//Attempt to use the command
+	if( strcmpi("adjgmlvl",command+1) && ssd ) { lv = ssd->gmlevel; ssd->gmlevel = sd->gmlevel; }
 	if ( (info->func(fd, (*atcmd_msg == atcommand_symbol) ? sd : ssd, command, params) != 0) )
 	{
 		sprintf(output,msg_txt(154), command); // %s failed.
 		clif_displaymessage(fd, output);
 	}
+	if( strcmpi("adjgmlvl",command+1) && ssd ) ssd->gmlevel = lv;
 	
 	//Log atcommands
 	if( log_config.gm && info->level >= log_config.gm && *atcmd_msg == atcommand_symbol )

+ 1 - 1
src/map/skill.c

@@ -5256,7 +5256,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	// Slim Pitcher
 	case CR_SLIMPITCHER:
 		// Updated to block Slim Pitcher from working on barricades and guardian stones.
-		if( ( dstmd && dstmd->class_ == MOBID_EMPERIUM ) || ( dstmd && dstmd->class_ >= MOBID_BARRICADE1 && dstmd && dstmd->class_ <= MOBID_GUARIDAN_STONE2 ) )
+		if( dstmd && (dstmd->class_ == MOBID_EMPERIUM || (dstmd->class_ >= MOBID_BARRICADE1 && dstmd->class_ <= MOBID_GUARIDAN_STONE2)) )
 			break;
 		if (potion_hp || potion_sp) {
 			int hp = potion_hp, sp = potion_sp;