BUILDIN_FUNC(setmapflag)
{
int m,i;
const char *str;
const char *val=NULL;
str=script_getstr(st,2);
i=script_getnum(st,3);
if(script_hasdata(st,4)){
val=script_getstr(st,4);
}
m = map_mapname2mapid(str);
if(m >= 0) {
switch(i) {
case MF_NOMEMO: map[m].flag.nomemo = 1; break;
case MF_NOTELEPORT: map[m].flag.noteleport = 1; break;
case MF_NOSAVE: map[m].flag.nosave = 1; break;
case MF_NOBRANCH: map[m].flag.nobranch = 1; break;
case MF_NOPENALTY: map[m].flag.noexppenalty = 1; map[m].flag.nozenypenalty = 1; break;
case MF_NOZENYPENALTY: map[m].flag.nozenypenalty = 1; break;
case MF_PVP: map[m].flag.pvp = 1; break;
case MF_PVP_NOPARTY: map[m].flag.pvp_noparty = 1; break;
case MF_PVP_NOGUILD: map[m].flag.pvp_noguild = 1; break;
case MF_GVG: map[m].flag.gvg = 1; break;
case MF_GVG_NOPARTY: map[m].flag.gvg_noparty = 1; break;
case MF_NOTRADE: map[m].flag.notrade = 1; break;
case MF_NOSKILL: map[m].flag.noskill = 1; break;
case MF_NOWARP: map[m].flag.nowarp = 1; break;
case MF_PARTYLOCK: map[m].flag.partylock = 1; break;
case MF_NOICEWALL: map[m].flag.noicewall = 1; break;
case MF_SNOW: map[m].flag.snow = 1; break;
case MF_FOG: map[m].flag.fog = 1; break;
case MF_SAKURA: map[m].flag.sakura = 1; break;
case MF_LEAVES: map[m].flag.leaves = 1; break;
/**
* No longer available, keeping here just in case it's back someday. [Ind]
**/
//case MF_RAIN: map[m].flag.rain = 1; break;
case MF_NOGO: map[m].flag.nogo = 1; break;
case MF_CLOUDS: map[m].flag.clouds = 1; break;
case MF_CLOUDS2: map[m].flag.clouds2 = 1; break;
case MF_FIREWORKS: map[m].flag.fireworks = 1; break;
case MF_GVG_CASTLE: map[m].flag.gvg_castle = 1; break;
case MF_GVG_DUNGEON: map[m].flag.gvg_dungeon = 1; break;
case MF_NIGHTENABLED: map[m].flag.nightenabled = 1; break;
case MF_NOBASEEXP: map[m].flag.nobaseexp = 1; break;
case MF_NOJOBEXP: map[m].flag.nojobexp = 1; break;
case MF_NOMOBLOOT: map[m].flag.nomobloot = 1; break;
case MF_NOMVPLOOT: map[m].flag.nomvploot = 1; break;
case MF_NORETURN: map[m].flag.noreturn = 1; break;
case MF_NOWARPTO: map[m].flag.nowarpto = 1; break;
case MF_NIGHTMAREDROP: map[m].flag.pvp_nightmaredrop = 1; break;
case MF_RESTRICTED:
map[m].zone |= 1<<((int)atoi(val)+1);
map[m].flag.restricted=1;
break;
case MF_NOCOMMAND: map[m].nocommand = (!val || atoi(val) <= 0) ? 100 : atoi(val); break;
case MF_NODROP: map[m].flag.nodrop = 1; break;
case MF_JEXP: map[m].jexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
case MF_BEXP: map[m].bexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
case MF_NOVENDING: map[m].flag.novending = 1; break;
case MF_LOADEVENT: map[m].flag.loadevent = 1; break;
case MF_NOCHAT: map[m].flag.nochat = 1; break;
case MF_NOEXPPENALTY: map[m].flag.noexppenalty = 1; break;
case MF_GUILDLOCK: map[m].flag.guildlock = 1; break;
case MF_TOWN: map[m].flag.town = 1; break;
case MF_AUTOTRADE: map[m].flag.autotrade = 1; break;
case MF_ALLOWKS: map[m].flag.allowks = 1; break;
case MF_MONSTER_NOTELEPORT: map[m].flag.monster_noteleport = 1; break;
case MF_PVP_NOCALCRANK: map[m].flag.pvp_nocalcrank = 1; break;
case MF_BATTLEGROUND: map[m].flag.battleground = (!val || atoi(val) < 0 || atoi(val) > 2) ? 1 : atoi(val); break;
case MF_RESET: map[m].flag.reset = 1; break;
}
}
return 0;
}