diff options
author | momacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-05 05:41:00 +0000 |
---|---|---|
committer | momacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-05 05:41:00 +0000 |
commit | e180648e8d399a7d367e557f3857753d54987b9b (patch) | |
tree | 1bab010071aaa64dde27605092503e40992771ba /src/map/atcommand.c | |
parent | 784aae93bcd8d0ed59f5351921e103e7545e5ea6 (diff) | |
download | hercules-e180648e8d399a7d367e557f3857753d54987b9b.tar.gz hercules-e180648e8d399a7d367e557f3857753d54987b9b.tar.bz2 hercules-e180648e8d399a7d367e557f3857753d54987b9b.tar.xz hercules-e180648e8d399a7d367e557f3857753d54987b9b.zip |
- Re-committed r16973/trunk/src/ (tid:74924).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16995 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/atcommand.c')
-rw-r--r-- | src/map/atcommand.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 30e9fb753..b2cbab558 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -2895,6 +2895,9 @@ ACMD_FUNC(recall) { clif_displaymessage(fd, msg_txt(1020)); // You are not authorized to warp this player from their map. return -1; } + if (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y) { + return -1; + } pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); sprintf(atcmd_output, msg_txt(46), pl_sd->status.name); // %s recalled! clif_displaymessage(fd, atcmd_output); @@ -3577,6 +3580,8 @@ ACMD_FUNC(recallall) { if (sd->status.account_id != pl_sd->status.account_id && pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { + if (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y) + continue; // Don't waste time warping the character to the same place. if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else { @@ -3638,8 +3643,8 @@ ACMD_FUNC(guildrecall) { if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.guild_id == g->guild_id) { - if (pc_get_group_level(pl_sd) > pc_get_group_level(sd)) - continue; //Skip GMs greater than you. + if (pc_get_group_level(pl_sd) > pc_get_group_level(sd) || (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y)) + continue; // Skip GMs greater than you... and chars already on the cell if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else @@ -3697,8 +3702,8 @@ ACMD_FUNC(partyrecall) { if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.party_id == p->party.party_id) { - if (pc_get_group_level(pl_sd) > pc_get_group_level(sd)) - continue; //Skip GMs greater than you. + if (pc_get_group_level(pl_sd) > pc_get_group_level(sd) || (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y)) + continue; // Skip GMs greater than you... and chars already on the cell if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else |