123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- // イベントのテストと解説
- //
- // * 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
|