summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/map/atcommand.c90
2 files changed, 48 insertions, 44 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index fc2cdfeb2..3ab62a37d 100644
--- a/Changelog-Trunk.txt
+++ b/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.
+2008/05/10
+ * Fixed @showmobs not working (bugreport:1487)
2008/05/09
* Added correct extended info packets for items that are being moved
into storage or cart. This caused items to visually lose their
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 239f1aa32..9bf6b710f 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -6990,76 +6990,78 @@ int atshowmobs_timer(int tid, unsigned int tick, int id, intptr data)
if( sd == NULL )
return 0;
+ // remove indicator
clif_viewpoint(sd, 1, 2, 0, 0, (int)data, 0xFFFFFF);
return 1;
}
+
static int atshowmobs_sub(struct block_list *bl,va_list ap)
{
- int mob_id,fd;
- struct map_session_data* sd;
- static int number=0;
- struct mob_data *md;
+ int mob_id;
+ struct map_session_data* sd;
+ static int number=0;
+ struct mob_data *md;
- if(!ap){
- number=0;
- return 0;
- }
- mob_id = va_arg(ap,int);
- fd = va_arg(ap,int);
- sd = va_arg(ap,struct map_session_data*);
+ if(!ap){
+ number=0;
+ return 0;
+ }
+ mob_id = va_arg(ap,int);
+ sd = va_arg(ap,struct map_session_data*);
- md = (struct mob_data *)bl;
+ md = (struct mob_data *)bl;
if(md->special_state.ai || md->master_id)
return 0; //Hide slaves and player summoned mobs. [Skotlex]
- if(fd && (mob_id==-1 || (md->class_==mob_id))){
- clif_viewpoint(sd, 1, 1, bl->x, bl->y, ++number, 0xFFFFFF);
- add_timer(gettick()+5000, atshowmobs_timer, fd, number);
- }
- return 0;
+ if(mob_id==-1 || md->class_==mob_id){
+ clif_viewpoint(sd, 1, 1, bl->x, bl->y, ++number, 0xFFFFFF);
+ add_timer(gettick()+5000, atshowmobs_timer, sd->bl.id, number);
+ }
+ return 0;
}
+
int atcommand_showmobs(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
- char mob_name[100];
- int mob_id,map_id = 0;
+ char mob_name[100];
+ int mob_id,map_id = 0;
- nullpo_retr(-1, sd);
+ nullpo_retr(-1, sd);
- if (sscanf(message, "%99[^\n]", mob_name) < 0)
- return -1;
+ if(sscanf(message, "%99[^\n]", mob_name) < 0)
+ return -1;
- if ((mob_id = atoi(mob_name)) == 0)
- mob_id = mobdb_searchname(mob_name);
- if(mob_id > 0 && mobdb_checkid(mob_id) == 0){
- snprintf(atcmd_output, sizeof atcmd_output, "Invalid mob id %s!",mob_name);
- clif_displaymessage(fd, atcmd_output);
- return 0;
- }
+ if((mob_id = atoi(mob_name)) == 0)
+ mob_id = mobdb_searchname(mob_name);
+ if(mob_id > 0 && mobdb_checkid(mob_id) == 0){
+ snprintf(atcmd_output, sizeof atcmd_output, "Invalid mob id %s!",mob_name);
+ clif_displaymessage(fd, atcmd_output);
+ return 0;
+ }
// Uncomment the following line to show mini-bosses & MVP.
//#define SHOW_MVP
#ifndef SHOW_MVP
- if(mob_db(mob_id)->status.mode&MD_BOSS){
- snprintf(atcmd_output, sizeof atcmd_output, "Can't show Boss mobs!");
- clif_displaymessage(fd, atcmd_output);
- return 0;
- }
+ if(mob_db(mob_id)->status.mode&MD_BOSS){
+ snprintf(atcmd_output, sizeof atcmd_output, "Can't show Boss mobs!");
+ clif_displaymessage(fd, atcmd_output);
+ return 0;
+ }
#endif
- if(mob_id == atoi(mob_name) && mob_db(mob_id)->jname)
- strcpy(mob_name,mob_db(mob_id)->jname); // --ja--
-// strcpy(mob_name,mob_db(mob_id)->name); // --en--
+ if(mob_id == atoi(mob_name) && mob_db(mob_id)->jname)
+ strcpy(mob_name,mob_db(mob_id)->jname); // --ja--
+ //strcpy(mob_name,mob_db(mob_id)->name); // --en--
- map_id = sd->bl.m;
+ map_id = sd->bl.m;
- snprintf(atcmd_output, sizeof atcmd_output, "Mob Search... %s %s",
- mob_name, mapindex_id2name(sd->mapindex));
- clif_displaymessage(fd, atcmd_output);
+ snprintf(atcmd_output, sizeof atcmd_output, "Mob Search... %s %s",
+ mob_name, mapindex_id2name(sd->mapindex));
+ clif_displaymessage(fd, atcmd_output);
- map_foreachinmap(atshowmobs_sub, map_id, BL_MOB, mob_id, fd, sd);
+ map_foreachinmap(atshowmobs_sub, map_id, BL_MOB, mob_id, sd);
- atshowmobs_sub(&sd->bl,0);
+ atshowmobs_sub(&sd->bl,0);
- return 0;
+ return 0;
}
/*==========================================