diff options
Diffstat (limited to 'doc/sample/npc_test_ev.txt')
-rw-r--r-- | doc/sample/npc_test_ev.txt | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/doc/sample/npc_test_ev.txt b/doc/sample/npc_test_ev.txt new file mode 100644 index 000000000..cc170373e --- /dev/null +++ b/doc/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,155,180,0 script ev_doテスト 116,{ + doevent "event_test2"; +} + +// ----------MOBによるイベント駆動のサンプル ------------- +// 倒すとイベント「event_test」を起こすモンスターの[召喚] +prontera,150,185,0 script ev_mobテスト 116,{ + monster "this",0,0,"Event_Mob2",1002,1,"event_test"; +} + +// ----------MOBによるイベント駆動のサンプル2------------- +// 倒すとイベント「event_test3」を起こすモンスターの[配置] +prontera,150,180,0 monster Event_Mob 1008,1,0,0,event_test3 + +// ----------タイマによるイベント駆動のサンプル ------------- +// クリックすると5秒後にラベル「OnTimer」を実行するNPC +// (イベント名に「NPC名::On〜で始まるラベル」を指定するとラベルを実行できる) +prontera,155,185,0 script ev_timerテスト 116,{ + addtimer 5000,"ev_timerテスト::OnTimer"; + end; +OnTimer: + mes "5秒経ちました"; + close; +} + +// ----------OnInit/チャットルームによるイベント駆動のサンプル ------------- +// マップサーバー起動時にラベル「OnInit」が実行され、チャットを作る +// また、waitingroomの第3引数にイベントを設定する +prontera,145,180,0 script ev_initテスト 116,{ + end; +OnInit: + waitingroom "OnInitテスト",1,"ev_initテスト::OnMax"; + end; +OnMax: + warpwaitingpc "prontera",155,190; + end; + +} + +// ----------時計によるイベント駆動のサンプル ------------- +// 指定の時刻や日付でイベントを実行する +// announceに0x08フラグを指定しているところに注意してください。 +prontera,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,150,185,0 script event_test -1,{ + announce strcharinfo(0) + " が召喚MOBを倒しました",2; + close; +} + +// ----------イベントで、エリアを指定したサンプル------------ +// (155,185)から半径5セル以内でイベント「event_test2」が起こると実行される +prontera,155,180,0 script event_test2 -1,5,5 { + announce "5セル以内でクリックしましたね",19; + close; +} + +// ----------イベントで、エリアを-1にしたサンプル------------ +// 同じマップ鯖でイベント「event_test3」が起こると実行される +prontera,150,180,0 script event_test3 -1,-1,-1 { + mes "配置MOB倒しましたね"; + close; +} + + + +// ------------------------------------------------------------------ +// イベントマップ用の設定 +// ------------------------------------------------------------------ +// (全てコメントアウトしてます) + +// ----------セーブ禁止のサンプル--------- +// このマップでログアウトすると、必ず プロンテラ の座標(156,190)に +// セーブされる +//prontera mapflag nosave prontera,156,190 + +// ----------メモ禁止のサンプル--------- +// このマップではメモがとれない +//prontera mapflag nomemo dummy + +// ----------テレポ禁止のサンプル--------- +// このマップでは蝿、蝶、テレポ、ポタが使えない +// 注意:スクリプトのwarpの"Random","SavePoint"が無効になります +//prontera mapflag noteleport dummy
\ No newline at end of file |