xfvvvv 發表於 2011-6-13 00:10:47

recallmapplayer

ACMD_FUNC(recallmapplayer)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;

nullpo_retr(-1, sd);
memset(atcmd_output, '\0', sizeof(atcmd_output));

if (sd->bl.m >= 0 && map.flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) {
clif_displaymessage(fd, "你没有足够的能力在这张地图内召唤玩家");
return -1;
}

iter = mapit_getallusers();
while( (pl_sd = (TBL_PC*)mapit_next(iter)) != NULL ) {
if (sd->status.account_id != pl_sd->status.account_id && pc_isGM(sd) >= pc_isGM(pl_sd))
{
if (pc_isGM(pl_sd) > pc_isGM(sd))
continue;
if (pl_sd->bl.m >= 0 && map.flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd))
continue;
if (pc_isdead(pl_sd)) { //针对死亡的玩家,直接复活他
pc_setstand(pl_sd);
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, "成功召唤当前地图玩家!");
return 0;
}
頁: [1]
查看完整版本: recallmapplayer