Chaos92 Posted August 12, 2014 Share Posted August 12, 2014 If you have any sourcecode that can exclude vending players, mind to share with me ? Quote Link to comment Share on other sites More sharing options...
Emistry Posted August 12, 2014 Share Posted August 12, 2014 if( pl_sd->state.vending || pl_sd->state.buyingstore || pl_sd->state.autotrade ) continue; add this during the @recallall checking part 1 Quote Link to comment Share on other sites More sharing options...
1 Napster Posted August 12, 2014 Share Posted August 12, 2014 (edited) open atcommand.cand find recallallreplace this ACMD_FUNC(recallall) { struct map_session_data* pl_sd; struct s_mapiterator* iter; int count; nullpo_retr(-1, sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif_displaymessage(fd, msg_txt(sd,1032)); // You are not authorized to warp someone to your current map. return -1; } count = 0; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if (sd->status.account_id != pl_sd->status.account_id && !( pl_sd->state.vending || pl_sd->state.buyingstore || pl_sd->state.autotrade ) && 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 { if (pc_isdead(pl_sd)) { //Wake them up pc_setstand(pl_sd, true); pc_setrestartvalue(pl_sd,1); } pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); } } } mapit_free(iter); clif_displaymessage(fd, msg_txt(sd,92)); // All characters recalled! if (count) { sprintf(atcmd_output, msg_txt(sd,1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled. clif_displaymessage(fd, atcmd_output); } return 0; } Edited August 12, 2014 by Napster 1 Quote Link to comment Share on other sites More sharing options...
Lelouch vi Britannia Posted August 12, 2014 Share Posted August 12, 2014 I remember there was a topic on eA about this that exclude vendor and pub users to recallall but still working. In src/map/atcommand.c find ACMD_FUNC(recallall) and between line 3545 and 3546 add this line else if ( pl_sd->vender_id || pl_sd->chatID || pl_sd->state.autotrade ); If this wont work go try Emistry and Napster's post. Quote Link to comment Share on other sites More sharing options...
Chaos92 Posted August 12, 2014 Author Share Posted August 12, 2014 thanks sir ! Im gonna try these open atcommand.cand find recallallreplace this ACMD_FUNC(recallall) { struct map_session_data* pl_sd; struct s_mapiterator* iter; int count; nullpo_retr(-1, sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif_displaymessage(fd, msg_txt(sd,1032)); // You are not authorized to warp someone to your current map. return -1; } count = 0; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if (sd->status.account_id != pl_sd->status.account_id && !( pl_sd->state.vending || pl_sd->state.buyingstore || pl_sd->state.autotrade ) && 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 { if (pc_isdead(pl_sd)) { //Wake them up pc_setstand(pl_sd, true); pc_setrestartvalue(pl_sd,1); } pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); } } } mapit_free(iter); clif_displaymessage(fd, msg_txt(sd,92)); // All characters recalled! if (count) { sprintf(atcmd_output, msg_txt(sd,1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled. clif_displaymessage(fd, atcmd_output); } return 0; } got error when compiled with this :/ Quote Link to comment Share on other sites More sharing options...
If you have any sourcecode that can exclude vending players, mind to share with me ?
Link to comment
Share on other sites