viewing paste Unknown #376 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
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;
}
Viewed 1427 times, submitted by lighta.