summaryrefslogtreecommitdiff
path: root/npc/sample/npc_test_ev.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/sample/npc_test_ev.txt')
-rw-r--r--npc/sample/npc_test_ev.txt146
1 files changed, 146 insertions, 0 deletions
diff --git a/npc/sample/npc_test_ev.txt b/npc/sample/npc_test_ev.txt
new file mode 100644
index 000000000..a324f8800
--- /dev/null
+++ b/npc/sample/npc_test_ev.txt
@@ -0,0 +1,146 @@
+// イベントのテストと解説
+//
+
+
+// * NPCの表示クラスを-1にするとイベントになり、実行可能になります。
+// * 通常のNPCでも以下のラベル付きイベントを使うことでイベントになれます。
+// * NPCスクリプトでOn〜で始まるラベルを定義すると、
+// ラベル付きのイベントとしてエクスポートし、実行可能になります。
+// * NPCイベントで"NPC名(orイベント名)::ラベル名"とすると、
+// 指定したラベルから実行できます。
+// * ラベル名は24バイト以内にして下さい。
+
+
+// ------------------------------------------------------------------
+// イベントの起こし方/起こり方
+// ------------------------------------------------------------------
+
+// 1.doeventコマンドで起こす
+// 2.MOBを倒したときに起こす
+//  a. スクリプトmonsterコマンドの第7引数でイベント名を設定
+// b. monsterの配置の最後の引数でイベント名を設定
+// 3.マップ初期化時に起こる(OnInit)
+// 4.NPCチャットルームが満員になったときに起こる
+// 5.時計によって起こる
+// (OnMinute??,OnHour??,OnClock????,OnDate????) : ?は数字
+
+// 3,5の初期化イベント、時計イベントは、対象のPCを持たないイベントになります
+// よってPCを対象とするスクリプトを使うことは出来ません。
+// また、announceコマンドなどは0x08フラグを指定してNPC主体にする必要があります
+
+// ----------イベント駆動のサンプル -------------
+// クリックするとイベント「event_test2」を起こすNPC
+prontera.gat,155,180,0 script ev_doテスト 116,{
+ doevent "event_test2";
+}
+
+// ----------MOBによるイベント駆動のサンプル -------------
+// 倒すとイベント「event_test」を起こすモンスターの[召喚]
+prontera.gat,150,185,0 script ev_mobテスト 116,{
+ monster "this",0,0,"Event_Mob2",1002,1,"event_test";
+}
+
+// ----------MOBによるイベント駆動のサンプル2-------------
+// 倒すとイベント「event_test3」を起こすモンスターの[配置]
+prontera.gat,150,180,0 monster Event_Mob 1008,1,0,0,event_test3
+
+// ----------タイマによるイベント駆動のサンプル -------------
+// クリックすると5秒後にラベル「OnTimer」を実行するNPC
+// (イベント名に「NPC名::On〜で始まるラベル」を指定するとラベルを実行できる)
+prontera.gat,155,185,0 script ev_timerテスト 116,{
+ addtimer 5000,"ev_timerテスト::OnTimer";
+ end;
+OnTimer:
+ mes "5秒経ちました";
+ close;
+}
+
+// ----------OnInit/チャットルームによるイベント駆動のサンプル -------------
+// マップサーバー起動時にラベル「OnInit」が実行され、チャットを作る
+// また、waitingroomの第3引数にイベントを設定する
+prontera.gat,145,180,0 script ev_initテスト 116,{
+ end;
+OnInit:
+ waitingroom "OnInitテスト",1,"ev_initテスト::OnMax";
+ end;
+OnMax:
+ warpwaitingpc "prontera.gat",155,190;
+ end;
+
+}
+
+// ----------時計によるイベント駆動のサンプル -------------
+// 指定の時刻や日付でイベントを実行する
+// announceに0x08フラグを指定しているところに注意してください。
+prontera.gat,145,185,0 script ev_clockテスト 116,{
+ end;
+// 毎時5分
+OnMinute05:
+ announce "毎時5分をお知らせします",8;
+ end;
+// 毎日12時(24H)
+OnHour12:
+ announce "正午のニュースです",8;
+ end;
+// 23時59分
+OnClock2359:
+ announce "あと1分で明日です",8;
+ end;
+// 1月1日
+OnDate0101:
+ announce "あけましておめでとうございます",8;
+ end;
+}
+
+
+// ------------------------------------------------------------------
+// イベントスクリプトの作り方
+// ------------------------------------------------------------------
+// 表示クラスを-1にするとイベント扱いになり、名前がイベント名になる。
+// エリアを指定しない場合、同じマップ内がイベントを起こす範囲になる。
+// エリアを指定する場合、共に-1にすると同じマップ鯖ならマップが違っても
+// 駆動する。エリアは半径である。なお、イベントの起こる位置というのは、
+// 対象となるPCの座標である。たとえば、遠距離攻撃でMOBを倒したときに
+// 起こるイベントはMOBの座標ではなく、PCの座標なので注意。
+
+// ----------イベントで、エリアは指定していないサンプル------------
+// 同じマップ内でイベント「event_test」が起こると実行される
+prontera.gat,150,185,0 script event_test -1,{
+ announce strcharinfo(0) + " が召喚MOBを倒しました",2;
+ close;
+}
+
+// ----------イベントで、エリアを指定したサンプル------------
+// (155,185)から半径5セル以内でイベント「event_test2」が起こると実行される
+prontera.gat,155,180,0 script event_test2 -1,5,5 {
+ announce "5セル以内でクリックしましたね",19;
+ close;
+}
+
+// ----------イベントで、エリアを-1にしたサンプル------------
+// 同じマップ鯖でイベント「event_test3」が起こると実行される
+prontera.gat,150,180,0 script event_test3 -1,-1,-1 {
+ mes "配置MOB倒しましたね";
+ close;
+}
+
+
+
+// ------------------------------------------------------------------
+// イベントマップ用の設定
+// ------------------------------------------------------------------
+// (全てコメントアウトしてます)
+
+// ----------セーブ禁止のサンプル---------
+// このマップでログアウトすると、必ず プロンテラ の座標(156,190)に
+// セーブされる
+//prontera.gat mapflag nosave prontera.gat,156,190
+
+// ----------メモ禁止のサンプル---------
+// このマップではメモがとれない
+//prontera.gat mapflag nomemo dummy
+
+// ----------テレポ禁止のサンプル---------
+// このマップでは蝿、蝶、テレポ、ポタが使えない
+// 注意:スクリプトのwarpの"Random","SavePoint"が無効になります
+//prontera.gat mapflag noteleport dummy