OK論壇

 找回密碼
 註冊
查看: 1985|回復: 3

[分享] setmapflag

[複製鏈接]
  • TA的每日心情
    開心
    2011-6-25 01:53 PM
  • 簽到天數: 10 天

    連續簽到: 0 天

    [LV.3]偶爾看看II

    發表於 2011-6-13 00:25:02 | 顯示全部樓層 |閱讀模式

    1. ACMD_FUNC(setmapflag)
    2. {
    3. char map_name[100];
    4. int flag = 0, m = 0;
    5. char val[100];
    6. if (!message || !*message || (
    7.   sscanf(message, ""%99[^"]" %d "%99[^"]"", map_name, &flag,val) < 2 &&
    8.   sscanf(message, "%99s %d %99s", map_name, &flag,val) < 2
    9.   )) {
    10.    clif_displaymessage(fd, "&#35831;&#36755;入地&#22270;名&#31216;,&#31867;型,<val> 例:@setmapflag protare 0 <1>");
    11.    return -1;
    12. }
    13. if(flag >= MF_MAX)
    14. {
    15.   clif_displaymessage(fd, "flag值&#38169;&#35823;,&#35831;重新&#36755;入");
    16.   return -1;
    17. }
    18. m = map_mapname2mapid(map_name);
    19. if(m)
    20.   switch(flag) {
    21.    case MF_NOMEMO:    map[m].flag.nomemo=1; break;
    22.    case MF_NOTELEPORT:   map[m].flag.noteleport=1; break;
    23.    case MF_NOBRANCH:   map[m].flag.nobranch=1; break;
    24.    case MF_NOPENALTY:   map[m].flag.noexppenalty=1; map[m].flag.nozenypenalty=1; break;
    25.    case MF_NOZENYPENALTY:  map[m].flag.nozenypenalty=1; break;
    26.    case MF_PVP:    map[m].flag.pvp=1; break;
    27.    case MF_PVP_NOPARTY:  map[m].flag.pvp_noparty=1; break;
    28.    case MF_PVP_NOGUILD:  map[m].flag.pvp_noguild=1; break;
    29.    case MF_GVG:    map[m].flag.gvg=1; break;
    30.    case MF_GVG_NOPARTY:  map[m].flag.gvg_noparty=1; break;
    31.    case MF_GVG_DUNGEON:  map[m].flag.gvg_dungeon=1; break;
    32.    case MF_GVG_CASTLE:   map[m].flag.gvg_castle=1; break;
    33.    case MF_NOTRADE:   map[m].flag.notrade=1; break;
    34.    case MF_NODROP:    map[m].flag.nodrop=1; break;
    35.    case MF_NOSKILL:   map[m].flag.noskill=1; break;
    36.    case MF_NOWARP:    map[m].flag.nowarp=1; break;
    37.    case MF_NOICEWALL:   map[m].flag.noicewall=1; break;
    38.    case MF_SNOW:    map[m].flag.snow=1; break;
    39.    case MF_CLOUDS:    map[m].flag.clouds=1; break;
    40.    case MF_CLOUDS2:   map[m].flag.clouds2=1; break;
    41.    case MF_FOG:    map[m].flag.fog=1; break;
    42.    case MF_FIREWORKS:   map[m].flag.fireworks=1; break;
    43.    case MF_SAKURA:    map[m].flag.sakura=1; break;
    44.    case MF_LEAVES:    map[m].flag.leaves=1; break;
    45.    case MF_RAIN:    map[m].flag.rain=1; break;
    46.    case MF_NIGHTENABLED:  map[m].flag.nightenabled=1; break;
    47.    case MF_NOGO:    map[m].flag.nogo=1; break;
    48.    case MF_NOBASEEXP:   map[m].flag.nobaseexp=1; break;
    49.    case MF_NOJOBEXP:   map[m].flag.nojobexp=1; break;
    50.    case MF_NOMOBLOOT:   map[m].flag.nomobloot=1; break;
    51.    case MF_NOMVPLOOT:   map[m].flag.nomvploot=1; break;
    52.    case MF_NORETURN:   map[m].flag.noreturn=1; break;
    53.    case MF_NOWARPTO:   map[m].flag.nowarpto=1; break;
    54.    case MF_NIGHTMAREDROP:  map[m].flag.pvp_nightmaredrop=1; break;
    55.    case MF_RESTRICTED:   map[m].flag.restricted=1; break;
    56.    case MF_NOCOMMAND:   map[m].nocommand = (!val || atoi(val) <= 0) ? 100 : atoi(val); break;
    57.    case MF_JEXP:    map[m].jexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
    58.    case MF_BEXP:    map[m].bexp = (!val || atoi(val) < 0) ? 100 : atoi(val); break;
    59.    case MF_NOVENDING:   map[m].flag.novending=1; break;
    60.    case MF_LOADEVENT:   map[m].flag.loadevent=1; break;
    61.    case MF_NOCHAT:    map[m].flag.nochat=1; break;
    62.    case MF_PARTYLOCK:   map[m].flag.partylock=1; break;
    63.    case MF_GUILDLOCK:   map[m].flag.guildlock=1; break;
    64.    case MF_TOWN:    map[m].flag.town=1; break;
    65.    case MF_AUTOTRADE:   map[m].flag.autotrade=1; break;
    66.    case MF_ALLOWKS:   map[m].flag.allowks=1; break;
    67.    case MF_MONSTER_NOTELEPORT: map[m].flag.monster_noteleport=1; break;
    68.    case MF_PVP_NOCALCRANK:  map[m].flag.pvp_nocalcrank=1; break;
    69.    case MF_BATTLEGROUND:  map[m].flag.battleground = (!val || atoi(val) < 0 || atoi(val) > 2) ? 1 : atoi(val); break;
    70.    case MF_NOITEMHEAL:     map[m].flag.noitemheal=1; break;
    71.    case MF_NOSTORAGE:     map[m].flag.nostorage=1; break;
    72.    case MF_NOGUILDSTORAGE: map[m].flag.noguildstorage=1; break;
    73.    case MF_AUTOBUY:     map[m].flag.autobuy=1; break;
    74.    case MF_NOPKMODE:  map[m].flag.nopkmode=1; break;
    75.    default:  return -1; break;
    76. }
    77. return 0;
    78. }

    複製代碼


    使用&#26102;&#35831;&#23558;&#23545;&#24212;enum移至map.h,同&#26102;增加MF_MAX一&#39033;

    大概如下
    1. enum {
    2. MF_NOMEMO, //0
    3. MF_NOTELEPORT,
    4. MF_NOSAVE,
    5. MF_NOBRANCH,
    6. MF_NOPENALTY,
    7. MF_NOZENYPENALTY,
    8. MF_PVP,
    9. MF_PVP_NOPARTY,
    10. MF_PVP_NOGUILD,
    11. MF_GVG,
    12. MF_GVG_NOPARTY, //10
    13. MF_NOTRADE,
    14. MF_NOSKILL,
    15. MF_NOWARP,
    16. MF_PARTYLOCK,
    17. MF_NOICEWALL,
    18. MF_SNOW,
    19. MF_FOG,
    20. MF_SAKURA,
    21. MF_LEAVES,
    22. MF_RAIN, //20
    23. // 21 free
    24. MF_NOGO = 22,
    25. MF_CLOUDS,
    26. MF_CLOUDS2,
    27. MF_FIREWORKS,
    28. MF_GVG_CASTLE,
    29. MF_GVG_DUNGEON,
    30. MF_NIGHTENABLED,
    31. MF_NOBASEEXP,
    32. MF_NOJOBEXP, //30
    33. MF_NOMOBLOOT,
    34. MF_NOMVPLOOT,
    35. MF_NORETURN,
    36. MF_NOWARPTO,
    37. MF_NIGHTMAREDROP,
    38. MF_RESTRICTED,
    39. MF_NOCOMMAND,
    40. MF_NODROP,
    41. MF_JEXP,
    42. MF_BEXP, //40
    43. MF_NOVENDING,
    44. MF_LOADEVENT,
    45. MF_NOCHAT,
    46. MF_NOEXPPENALTY,
    47. MF_GUILDLOCK,
    48. MF_TOWN,
    49. MF_AUTOTRADE,
    50. MF_ALLOWKS,
    51. MF_MONSTER_NOTELEPORT,
    52. MF_PVP_NOCALCRANK, //50
    53. MF_BATTLEGROUND,

    54. MF_MAX
    55. };
    56. struct mapcell
    57. {
    58. // terrain flags
    59. unsigned char
    複製代碼

    評分

    參與人數 1違規 +1 收起 理由
    勳〃 + 1 發帖過量

    查看全部評分

    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2011-6-13 00:34:00 | 顯示全部樓層
    你這和http://www.okayro.com/thread-212729-1-1.html這個

    官方eA就有了

    你貼出來的意義?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2011-6-25 01:53 PM
  • 簽到天數: 10 天

    連續簽到: 0 天

    [LV.3]偶爾看看II

     樓主| 發表於 2011-6-13 00:47:20 | 顯示全部樓層
    Ea的是&#33050;本指令。

    并&#27809;有Gm指令。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2011-6-13 12:56:34 | 顯示全部樓層
    這用OnWhisperGlobal:就可以了

    寫成源碼有點多此一舉
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-5-6 09:40 PM , Processed in 0.055700 second(s), 22 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表