Blazing Spear Posted September 19, 2012 Posted September 19, 2012 (edited) This is my atcommand.c /*========================================== * @rura, @warp, @mapmove *------------------------------------------*/ ACMD_FUNC(mapmove) { char map_name[MAP_NAME_LENGTH_EXT]; unsigned short mapindex; short x = 0, y = 0; int m = -1; nullpo_retr(-1, sd); memset(map_name, '\0', sizeof(map_name)); if (!message || !*message || (sscanf(message, "%15s %hd %hd", map_name, &x, &y) < 3 && sscanf(message, "%15[^,],%hd,%hd", map_name, &x, &y) < 1)) { clif_displaymessage(fd, "Please, enter a map (usage: @warp/@rura/@mapmove <mapname> <x> <y>)."); return -1; } if( battle_config.pvpmode_nowarp_cmd && sd->state.pvpmode ) { clif_displaymessage(sd->fd,"You can not use @go while on PVP Mode."); return -1; } mapindex = mapindex_name2id(map_name); if (mapindex) m = map_mapindex2mapid(mapindex); if (!mapindex) { // m < 0 means on different server! [Kevin] clif_displaymessage(fd, msg_txt(1)); // Map not found. return -1; } if ((x || y) && map_getcell(m, x, y, CELL_CHKNOPASS)) { //This is to prevent the pc_setpos call from printing an error. clif_displaymessage(fd, msg_txt(2)); if (!map_search_freecell(NULL, m, &x, &y, 10, 10, 1)) x = y = 0; //Invalid cell, use random spot. } if (map[m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif_displaymessage(fd, msg_txt(247)); return -1; } if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif_displaymessage(fd, msg_txt(248)); return -1; } if( !pc_get_group_level(sd) && DIFF_TICK(gettick(),sd->canlog_tick) < 5000 ) { clif_displaymessage(fd,"@warp cannot be issued since you were into battle recently"); return -1; } if (pc_setpos(sd, mapindex, x, y, CLR_TELEPORT) != 0) { clif_displaymessage(fd, msg_txt(1)); // Map not found. return -1; } if( pc_isdead(sd) ) { clif_displaymessage(fd, "You cannot use this command when dead."); return -1; } clif_displaymessage(fd, msg_txt(0)); // Warped. return 0; } Edited September 19, 2012 by Emistry Please use [CODEBOX] or Attachments for long contents. Quote
Emistry Posted September 19, 2012 Posted September 19, 2012 below nullpo_retr(-1, sd); add if( pc_isdead(sd) ) { clif_displaymessage(fd, msg_txt(664)); return -1; } or group permission add this disable_commands_when_dead : true Ability to disable @command usage when dead. Quote
Question
Blazing Spear
This is my atcommand.c
Edited by EmistryPlease use [CODEBOX] or Attachments for long contents.
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.