setmapflag
ACMD_FUNC(setmapflag)
{
char map_name;
int flag = 0, m = 0;
char val;
if (!message || !*message || (
sscanf(message, "\"%99[^\"]\" %d \"%99[^\"]\"", map_name, &flag,val) < 2 &&
sscanf(message, "%99s %d %99s", map_name, &flag,val) < 2
)) {
clif_displaymessage(fd, "请输入地图名称,类型,<val> 例:@setmapflag protare 0 <1>");
return -1;
}
if(flag >= MF_MAX)
{
clif_displaymessage(fd, "flag值错误,请重新输入");
return -1;
}
m = map_mapname2mapid(map_name);
if(m)
switch(flag) {
case MF_NOMEMO: map.flag.nomemo=1; break;
case MF_NOTELEPORT: map.flag.noteleport=1; break;
case MF_NOBRANCH: map.flag.nobranch=1; break;
case MF_NOPENALTY: map.flag.noexppenalty=1; map.flag.nozenypenalty=1; break;
case MF_NOZENYPENALTY:map.flag.nozenypenalty=1; break;
case MF_PVP: map.flag.pvp=1; break;
case MF_PVP_NOPARTY:map.flag.pvp_noparty=1; break;
case MF_PVP_NOGUILD:map.flag.pvp_noguild=1; break;
case MF_GVG: map.flag.gvg=1; break;
case MF_GVG_NOPARTY:map.flag.gvg_noparty=1; break;
case MF_GVG_DUNGEON:map.flag.gvg_dungeon=1; break;
case MF_GVG_CASTLE: map.flag.gvg_castle=1; break;
case MF_NOTRADE: map.flag.notrade=1; break;
case MF_NODROP: map.flag.nodrop=1; break;
case MF_NOSKILL: map.flag.noskill=1; break;
case MF_NOWARP: map.flag.nowarp=1; break;
case MF_NOICEWALL: map.flag.noicewall=1; break;
case MF_SNOW: map.flag.snow=1; break;
case MF_CLOUDS: map.flag.clouds=1; break;
case MF_CLOUDS2: map.flag.clouds2=1; break;
case MF_FOG: map.flag.fog=1; break;
case MF_FIREWORKS: map.flag.fireworks=1; break;
case MF_SAKURA: map.flag.sakura=1; break;
case MF_LEAVES: map.flag.leaves=1; break;
case MF_RAIN: map.flag.rain=1; break;
case MF_NIGHTENABLED:map.flag.nightenabled=1; break;
case MF_NOGO: map.flag.nogo=1; break;
case MF_NOBASEEXP: map.flag.nobaseexp=1; break;
case MF_NOJOBEXP: map.flag.nojobexp=1; break;
case MF_NOMOBLOOT: map.flag.nomobloot=1; break;
case MF_NOMVPLOOT: map.flag.nomvploot=1; break;
case MF_NORETURN: map.flag.noreturn=1; break;
case MF_NOWARPTO: map.flag.nowarpto=1; break;
case MF_NIGHTMAREDROP:map.flag.pvp_nightmaredrop=1; break;
case MF_RESTRICTED: map.flag.restricted=1; break;
case MF_NOCOMMAND: map.nocommand = (!val || atoi(val) <= 0) ? 100 : atoi(val); break;
case MF_JEXP: map.jexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
case MF_BEXP: map.bexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
case MF_NOVENDING: map.flag.novending=1; break;
case MF_LOADEVENT: map.flag.loadevent=1; break;
case MF_NOCHAT: map.flag.nochat=1; break;
case MF_PARTYLOCK: map.flag.partylock=1; break;
case MF_GUILDLOCK: map.flag.guildlock=1; break;
case MF_TOWN: map.flag.town=1; break;
case MF_AUTOTRADE: map.flag.autotrade=1; break;
case MF_ALLOWKS: map.flag.allowks=1; break;
case MF_MONSTER_NOTELEPORT: map.flag.monster_noteleport=1; break;
case MF_PVP_NOCALCRANK:map.flag.pvp_nocalcrank=1; break;
case MF_BATTLEGROUND:map.flag.battleground = (!val || atoi(val) < 0 || atoi(val) > 2) ? 1 : atoi(val); break;
case MF_NOITEMHEAL: map.flag.noitemheal=1; break;
case MF_NOSTORAGE: map.flag.nostorage=1; break;
case MF_NOGUILDSTORAGE: map.flag.noguildstorage=1; break;
case MF_AUTOBUY: map.flag.autobuy=1; break;
case MF_NOPKMODE:map.flag.nopkmode=1; break;
default:return -1; break;
}
return 0;
}
使用时请将对应enum移至map.h,同时增加MF_MAX一项
大概如下enum {
MF_NOMEMO, //0
MF_NOTELEPORT,
MF_NOSAVE,
MF_NOBRANCH,
MF_NOPENALTY,
MF_NOZENYPENALTY,
MF_PVP,
MF_PVP_NOPARTY,
MF_PVP_NOGUILD,
MF_GVG,
MF_GVG_NOPARTY, //10
MF_NOTRADE,
MF_NOSKILL,
MF_NOWARP,
MF_PARTYLOCK,
MF_NOICEWALL,
MF_SNOW,
MF_FOG,
MF_SAKURA,
MF_LEAVES,
MF_RAIN, //20
// 21 free
MF_NOGO = 22,
MF_CLOUDS,
MF_CLOUDS2,
MF_FIREWORKS,
MF_GVG_CASTLE,
MF_GVG_DUNGEON,
MF_NIGHTENABLED,
MF_NOBASEEXP,
MF_NOJOBEXP, //30
MF_NOMOBLOOT,
MF_NOMVPLOOT,
MF_NORETURN,
MF_NOWARPTO,
MF_NIGHTMAREDROP,
MF_RESTRICTED,
MF_NOCOMMAND,
MF_NODROP,
MF_JEXP,
MF_BEXP, //40
MF_NOVENDING,
MF_LOADEVENT,
MF_NOCHAT,
MF_NOEXPPENALTY,
MF_GUILDLOCK,
MF_TOWN,
MF_AUTOTRADE,
MF_ALLOWKS,
MF_MONSTER_NOTELEPORT,
MF_PVP_NOCALCRANK, //50
MF_BATTLEGROUND,
MF_MAX
};
struct mapcell
{
// terrain flags
unsigned char
你這和http://www.okayro.com/thread-212729-1-1.html這個
官方eA就有了
你貼出來的意義? Ea的是脚本指令。
并没有Gm指令。 這用OnWhisperGlobal:就可以了
寫成源碼有點多此一舉
頁:
[1]