npc_test_ev.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. // イベントのテストと解説
  2. //
  3. // * NPCの表示クラスを-1にするとイベントになり、実行可能になります。
  4. // * 通常のNPCでも以下のラベル付きイベントを使うことでイベントになれます。
  5. // * NPCスクリプトでOn~で始まるラベルを定義すると、
  6. // ラベル付きのイベントとしてエクスポートし、実行可能になります。
  7. // * NPCイベントで"NPC名(orイベント名)::ラベル名"とすると、
  8. // 指定したラベルから実行できます。
  9. // * ラベル名は24バイト以内にして下さい。
  10. // ------------------------------------------------------------------
  11. // イベントの起こし方/起こり方
  12. // ------------------------------------------------------------------
  13. // 1.doeventコマンドで起こす
  14. // 2.MOBを倒したときに起こす
  15. //  a. スクリプトmonsterコマンドの第7引数でイベント名を設定
  16. // b. monsterの配置の最後の引数でイベント名を設定
  17. // 3.マップ初期化時に起こる(OnInit)
  18. // 4.NPCチャットルームが満員になったときに起こる
  19. // 5.時計によって起こる
  20. // (OnMinute??,OnHour??,OnClock????,OnDate????) : ?は数字
  21. // 3,5の初期化イベント、時計イベントは、対象のPCを持たないイベントになります
  22. // よってPCを対象とするスクリプトを使うことは出来ません。
  23. // また、announceコマンドなどは0x08フラグを指定してNPC主体にする必要があります
  24. // ----------イベント駆動のサンプル -------------
  25. // クリックするとイベント「event_test2」を起こすNPC
  26. prontera,155,180,0 script ev_doテスト 116,{
  27. doevent "event_test2";
  28. }
  29. // ----------MOBによるイベント駆動のサンプル -------------
  30. // 倒すとイベント「event_test」を起こすモンスターの[召喚]
  31. prontera,150,185,0 script ev_mobテスト 116,{
  32. monster "this",0,0,"Event_Mob2",1002,1,"event_test";
  33. }
  34. // ----------MOBによるイベント駆動のサンプル2-------------
  35. // 倒すとイベント「event_test3」を起こすモンスターの[配置]
  36. prontera,150,180,0 monster Event_Mob 1008,1,0,0,event_test3
  37. // ----------タイマによるイベント駆動のサンプル -------------
  38. // クリックすると5秒後にラベル「OnTimer」を実行するNPC
  39. // (イベント名に「NPC名::On~で始まるラベル」を指定するとラベルを実行できる)
  40. prontera,155,185,0 script ev_timerテスト 116,{
  41. addtimer 5000,"ev_timerテスト::OnTimer";
  42. end;
  43. OnTimer:
  44. mes "5秒経ちました";
  45. close;
  46. }
  47. // ----------OnInit/チャットルームによるイベント駆動のサンプル -------------
  48. // マップサーバー起動時にラベル「OnInit」が実行され、チャットを作る
  49. // また、waitingroomの第3引数にイベントを設定する
  50. prontera,145,180,0 script ev_initテスト 116,{
  51. end;
  52. OnInit:
  53. waitingroom "OnInitテスト",1,"ev_initテスト::OnMax";
  54. end;
  55. OnMax:
  56. warpwaitingpc "prontera",155,190;
  57. end;
  58. }
  59. // ----------時計によるイベント駆動のサンプル -------------
  60. // 指定の時刻や日付でイベントを実行する
  61. // announceに0x08フラグを指定しているところに注意してください。
  62. prontera,145,185,0 script ev_clockテスト 116,{
  63. end;
  64. // 毎時5分
  65. OnMinute05:
  66. announce "毎時5分をお知らせします",8;
  67. end;
  68. // 毎日12時(24H)
  69. OnHour12:
  70. announce "正午のニュースです",8;
  71. end;
  72. // 23時59分
  73. OnClock2359:
  74. announce "あと1分で明日です",8;
  75. end;
  76. // 1月1日
  77. OnDate0101:
  78. announce "あけましておめでとうございます",8;
  79. end;
  80. }
  81. // ------------------------------------------------------------------
  82. // イベントスクリプトの作り方
  83. // ------------------------------------------------------------------
  84. // 表示クラスを-1にするとイベント扱いになり、名前がイベント名になる。
  85. // エリアを指定しない場合、同じマップ内がイベントを起こす範囲になる。
  86. // エリアを指定する場合、共に-1にすると同じマップ鯖ならマップが違っても
  87. // 駆動する。エリアは半径である。なお、イベントの起こる位置というのは、
  88. // 対象となるPCの座標である。たとえば、遠距離攻撃でMOBを倒したときに
  89. // 起こるイベントはMOBの座標ではなく、PCの座標なので注意。
  90. // ----------イベントで、エリアは指定していないサンプル------------
  91. // 同じマップ内でイベント「event_test」が起こると実行される
  92. prontera,150,185,0 script event_test -1,{
  93. announce strcharinfo(0) + " が召喚MOBを倒しました",2;
  94. close;
  95. }
  96. // ----------イベントで、エリアを指定したサンプル------------
  97. // (155,185)から半径5セル以内でイベント「event_test2」が起こると実行される
  98. prontera,155,180,0 script event_test2 -1,5,5 {
  99. announce "5セル以内でクリックしましたね",19;
  100. close;
  101. }
  102. // ----------イベントで、エリアを-1にしたサンプル------------
  103. // 同じマップ鯖でイベント「event_test3」が起こると実行される
  104. prontera,150,180,0 script event_test3 -1,-1,-1 {
  105. mes "配置MOB倒しましたね";
  106. close;
  107. }
  108. // ------------------------------------------------------------------
  109. // イベントマップ用の設定
  110. // ------------------------------------------------------------------
  111. // (全てコメントアウトしてます)
  112. // ----------セーブ禁止のサンプル---------
  113. // このマップでログアウトすると、必ず プロンテラ の座標(156,190)に
  114. // セーブされる
  115. //prontera mapflag nosave prontera,156,190
  116. // ----------メモ禁止のサンプル---------
  117. // このマップではメモがとれない
  118. //prontera mapflag nomemo dummy
  119. // ----------テレポ禁止のサンプル---------
  120. // このマップでは蝿、蝶、テレポ、ポタが使えない
  121. // 注意:スクリプトのwarpの"Random","SavePoint"が無効になります
  122. //prontera mapflag noteleport dummy