【仕様】
1アカウント1日1回、5種類の魔力石をランダムで3個入手できる。
5種類を1組とし、1組で1個、ハロウィンアイテムと交換できる。
 
魔力石はプレイヤー間交換可に設定し、ログイン率向上と、プレイヤー間での交流を活発にする目的。
1人でも5日、3垢で2日も回せばハロウィンアイテム1個はゲットできる。
 
名前付きのアイテムにもできて、記念にプレゼントしてもいいし、
使うことでランダム効果を発動する。(関数で設定)
ボスも低確率で出るので、お祭り感。いっぱい使えた人、ラッキーな人に驚きを。
 
 
XXXXXX.gat,111,222,4	script	ハロウィンのこども	812,{
 
	if(#Halloweenday!=(gettime(6)*100+gettime(5))){
		mes	"【こどもたち】"; //NPC名と違うのは仕様
		mes	"Trick or Treat !";
		next;
 
		//フレイバー的なアレ
		switch(select("お菓子をあげる")){
			case 1:
		}
 
		mes	"【こどもたち】";
		mes	"わーい、ありがとう!";
		mes	"お礼にこれあげるね!";
		next;
 
		//5つの色の魔力石をランダムに3個配る
		for(set	@i,0;@i<3;set	@i,@i+1){
			getitem	rand(7426,7430),1;
		}
 
		//1アカウント1日1回
		set	#Halloweenday,gettime(6)*100+gettime(5);
 
		mes	"【こどもたち】";
		mes	"この石、色々持ってると";
		mes	"いいことがあるらしいよ!";
		mes	"それじゃあまたね!";
		close;
	}
 
	mes	"【こどもたち】";
	mes	"あれ、さっきもお菓子もらったよ?";
	mes	"ママに1日1個までって言われてるの。";
	mes	" ";
	mes	"※お菓子をあげられるのは";
	mes	" 24時を過ぎてからです。";	
	close;
 
//10/31までの実装
OnMonthDay1101:
	hideonnpc;
	end;
}
 
XXXXX.gat,111,222,4	script	ハロウィンのおばけ	802,{
 
	mes	"【w-o-w】";	//NPC名と違うのは仕様、ウィルオーウィスプさん。
	mes	"きみ……あれもってる?";
	next;
 
	if(select("はい","あれってなに?",) > 1) {
		mes	"【w-o-w】";
		mes	"おや……初めてだったかな。";
		mes	"あれっていうのは魔力石のことだよ。";	
		mes	" ";		
		mes	"ハロウィンの時だけ配られるから、僕はそれを集めて体を維持するエネルギーにしてるのさ……。";
		next;
 
		mes	"【w-o-w】";
		mes	"もちろん、交換のお礼はするよ……。";
		mes	"ただ、バランスの悪い食事はイヤだからね……。";
		mes	"5種類1セットで交換することにしてるよ。";
		next;
	}
 
	mes	"【w-o-w】";
	mes	"それじゃあ……";
	mes	"交換してくれるかい……?";
	next;
 
	switch(select("カボチャケーキと交換","名前入りカボチャケーキと交換","止める")){
 
		case 1:
			set	@name,0;
			break;
 
		case 2:
			set	@name,1;
			break;
 
		case 3:
			close;
 
	}
 
	mes	"【w-o-w】";
	mes	"いくつ交換する……?";
	set	@item_amo,0;
	next;
 
	switch(select("1個ずつ交換する","できるだけ交換する","止める")){
 
		case 1:	//@menuに代入するだけ
 
		case 2:	//何セットあるか確認
			for(set @i,0;(countitem(7426)-@i>0)&&(countitem(7427)-@i>0)&&(countitem(7428)-@i>0)&&(countitem(7429)-@i>0)&&(countitem(7430)-@i>0);set @i,@i+1){
				set	@item_amo,@item_amo+1;
			}
			break;
 
		case 3:
			close;
	}
 
	//アイテムが足りない場合は終了
	if(@item_amo <1){
		mes	"【w-o-w】";
		mes	"おや……アイテムが足りないよ。";
		mes	"集めてまた話しかけてくれるかな……。";
		close;
	}
 
	//選択肢が1個ずつの交換だった場合
	if(@menu==1){
		set	@item_amo,1;
	}
 
	//名前入りかどうかの分岐
	if(@name){
		getitem2 11550,@item_amo,1,0,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
	}else{
		getitem	11550,@item_amo;
	}
 
	//アイテム消費
		delitem	7426,@item_amo;
		delitem	7427,@item_amo;
		delitem	7428,@item_amo;
		delitem	7429,@item_amo;
		delitem	7430,@item_amo;
 
	mes	"【w-o-w】";
	mes	"ありがとう……。";
	mes "いくつでも交換できるから";
	mes "またよろしくね……。";
	close;
 
OnMonthDay1101:
	hideonnpc;
	end;
}
 
function	script	halloween	{
	setarray	'@halloween[0],20,30,5,12,3,30;
 
	set	@per,rand(1,100);
	set	@index,0;
 
	for(set	@i,0;@i < 6; set @i,@i+1){
		if(@per	> 100-'@halloween[@i]){set	@index,@i;	set	@i,6;}
		setarray	'@halloween[@i+1],'@halloween[@i]+'@halloween[@i+1];
	}
	//占いと同じ排出システムを採用。
 
	switch(@index+1){
 
		case 1:	//出血
			announce "このケーキ……激辛だ……!",0x13;
			sc_start	SC_Bleed,60000,0;
			break;
		case 2:	//猛毒
			announce "形容し難い味がする……",0x13;
			sc_start	SC_Poison,60000,0;
			break;
		case 3:	//ルード沸く
			announce "匂いに惹かれてハロウィンの魔物が現れた!",0x12;
			monster "this",0,0,"--ja--",1509,5;
			break;
		case 4:	//ジャック沸く
			announce "匂いに惹かれてハロウィンの魔物が現れた!",0x12;
			monster "this",0,0,"--ja--",1926,1;
			break;		
		case 5:	//LoD沸く 3%だったけど実装期間中1回たまり場が襲撃された。確率設定は良い感じだったかな?
			announce "匂いに惹かれてハロウィンの魔物が現れた!",0x12;
			monster "this",0,0,"--ja--",1373,1;
			break;				
		case 6:	//ニブルに行く
			announce "この味はニブルヘイムの風景を思い起こさせる……",0x13;
			misceffect	183;
			warp	"niflheim.gat",195,185;
 
	}
 
	return;
}
最終更新:2018年01月21日 00:55