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