diff options
author | shennetsind <ind@henn.et> | 2014-09-20 20:28:30 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2014-09-20 20:28:30 -0300 |
commit | b29098c74c2e67674a30a1f411e81e4cf5db8798 (patch) | |
tree | 0c7084f8d9654c2d0dedd1897b4bef229b1623ee | |
parent | 03e448cdef05a878322b7486a2c35e00df75131e (diff) | |
download | hercules-b29098c74c2e67674a30a1f411e81e4cf5db8798.tar.gz hercules-b29098c74c2e67674a30a1f411e81e4cf5db8798.tar.bz2 hercules-b29098c74c2e67674a30a1f411e81e4cf5db8798.tar.xz hercules-b29098c74c2e67674a30a1f411e81e4cf5db8798.zip |
Fixed Bug 8138
@at persistency no longer sends characters to save point when starting autotrade on a nosave location.
http://hercules.ws/board/tracker/issue-8138-autotrade-teleports-char-to-the-savepoint/
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | src/map/atcommand.c | 1 | ||||
-rw-r--r-- | src/map/clif.c | 2 | ||||
-rw-r--r-- | src/map/pc.c | 2 | ||||
-rw-r--r-- | src/map/pc.h | 2 |
4 files changed, 4 insertions, 3 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 459a4a2ee..cc6f0b20d 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -5482,6 +5482,7 @@ ACMD(autotrade) { return true; #ifdef AUTOTRADE_PERSISTENCY + sd->state.autotrade = 2;/** state will enter pre-save, we use it to rule out some criterias **/ pc->autotrade_prepare(sd); return false;/* we fail to not cause it to proceed on is_atcommand */ diff --git a/src/map/clif.c b/src/map/clif.c index f673e0970..c7b0d11d0 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -10501,7 +10501,7 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd) } // if player is autotrading - if( dstsd->state.autotrade == 1 ) { + if( dstsd->state.autotrade ) { char output[256]; sprintf(output, "%s is in autotrade mode and cannot receive whispered messages.", dstsd->status.name); clif->wis_message(fd, map->wisp_server_name, output, strlen(output) + 1); diff --git a/src/map/pc.c b/src/map/pc.c index 25a15ce84..e28d0545a 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -585,7 +585,7 @@ int pc_makesavestatus(struct map_session_data *sd) sd->status.last_point.y = sd->bl.y; } - if(map->list[sd->bl.m].flag.nosave || map->list[sd->bl.m].instance_id >= 0) { + if( ( map->list[sd->bl.m].flag.nosave && sd->state.autotrade != 2 ) || map->list[sd->bl.m].instance_id >= 0) { struct map_data *m=&map->list[sd->bl.m]; if(m->save.map) memcpy(&sd->status.last_point,&m->save,sizeof(sd->status.last_point)); diff --git a/src/map/pc.h b/src/map/pc.h index bec4522df..c36704b4f 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -145,7 +145,7 @@ struct map_session_data { unsigned int snovice_dead_flag : 1; //Explosion spirits on death: 0 off, 1 used. unsigned int abra_flag : 2; // Abracadabra bugfix by Aru unsigned int autocast : 1; // Autospell flag [Inkfish] - unsigned int autotrade : 1; //By Fantik + unsigned int autotrade : 2; //By Fantik unsigned int showdelay :1; unsigned int showexp :1; unsigned int showzeny :1; |