// イベントのテストと解説
//


// * NPCの表示クラスを-1にするとイベントになり、実行可能になります。
// * 通常のNPCでも以下のラベル付きイベントを使うことでイベントになれます。
// * NPCスクリプトでOn〜で始まるラベルを定義すると、
//   ラベル付きのイベントとしてエクスポートし、実行可能になります。
// * NPCイベントで"NPC名(orイベント名)::ラベル名"とすると、
//   指定したラベルから実行できます。
// * ラベル名は24バイト以内にして下さい。


// ------------------------------------------------------------------
// 			イベントの起こし方/起こり方
// ------------------------------------------------------------------

// 1.doeventコマンドで起こす
// 2.MOBを倒したときに起こす
// 　a. スクリプトmonsterコマンドの第７引数でイベント名を設定
//   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

// ----------タイマによるイベント駆動のサンプル -------------
// クリックすると５秒後にラベル「OnTimer」を実行するNPC
// （イベント名に「NPC名::On〜で始まるラベル」を指定するとラベルを実行できる）
prontera,155,185,0	script	ev_timerテスト	116,{
	addtimer 5000,"ev_timerテスト::OnTimer";
	end;
OnTimer:
	mes "５秒経ちました";
	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 "毎時５分をお知らせします",8;
	end;
// 毎日12時(24H)
OnHour12:
	announce "正午のニュースです",8;
	end;
// 23時59分
OnClock2359:
	announce "あと１分で明日です",8;
	end;
// １月１日
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 "５セル以内でクリックしましたね",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