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; }