⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 npc_function.txt

📁 JA++的最新...很多ROSF都用这个 ] 是个不错的东西-3-
💻 TXT
📖 第 1 页 / 共 3 页
字号:
			jobchange getarg(1);
			mes "["+getarg(0)+"ギルド関係者]";
			mes getarg(0)+"への転職、";
			mes "おめでとうございます!そして、";
			mes "これからも"+getarg(0)+"ギルドの";
			mes "復興のため、頑張ってください!";
			close;
		}
	case 3:	mes "["+getarg(0)+"ギルド関係者]";
		mes "またお越しください";
		close;
	case 2:	mes "["+getarg(0)+"ギルド関係者]";
		mes getarg(0)+"に転職するには";
		mes "·一次職JovLv40以上である事";
		mes "·転職試験に合格すること(未実装)";
		mes "が条件となっています。";
		next;
		mes "["+getarg(0)+"ギルド関係者]";
		mes "なお転職の際はスキルポイントを";
		mes "使い切ってから来てください。";
		close;
	}
	return;
}
//==============================================================================
//転生職転職共通Script
//callfunc "jobchanger","NPCNAME",JOBID;
function	script	jobchanger	{
	if ( Upper!=1 ) return;
	if ( Class!=0 ) {
		mes "["+getarg(0)+"]";
		mes "あなたは既に転職しています。";
		close;
	}
	if ( getskilllv(1)<9 ) {
		mes "["+getarg(0)+"]";
		mes "まだ初心者スキルレベルが足りません。";
		mes "転職条件をもう一度確認した上で、";
		mes "初心者スキルレベル9まで";
		mes "マスターして下さい。";
		close;
	}
	switch ( oldjob ) {
	case 7:
	case 14:
		set @chkjob,1;
		break;
	case 8:
	case 15:
		set @chkjob,4;
		break;
	case 9:
	case 16:
		set @chkjob,2;
		break;
	case 10:
	case 18:
		set @chkjob,5;
		break;
	case 11:
	case 19:
	case 20:
		set @chkjob,3;
		break;
	case 12:
	case 17:
		set @chkjob,6;
	}
	if ( getarg(1)!=@chkjob ) {
		mes "["+getarg(0)+"]";
		mes "あなたはこの職に転職できません。";
		mes "転生前の系列一次職にのみ";
		mes "転職可能です。";
		close;
	}
	mes "["+getarg(0)+"]";
	mes "あなたは、既に転生した身";
	mes "転職試験はいりませんね。";
	next;
	unequip;
	jobchange getarg(1),1;
	mes "["+getarg(0)+"]";
	mes "転職おめでとうございます!";
	mes "これからもギルドの";
	mes "復興のため、頑張ってください!";
	close;
	return;
}
//==============================================================================
//転生職転職共通Script転生二次
//callfunc "jobchanger2","JOBNAME",JOBID,oJobID;
function	script	jobchanger2	{
	mes "["+getarg(0)+"]";
	mes "こんにちは、";
	mes "何をお手伝いしましょうか?";
	next;
	switch ( select(getarg(0)+"に転職",getarg(0)+"の転職条件は?","なんでもありません。") ) {
	case 1:	if ( Upper==1 && Class>=7 ) {
			mes "["+getarg(0)+"]";
			mes "あなたは、既に転生二次職に";
			mes "なっています。";
			close;
		}
		if ( Upper!=1 || Class!=getarg(2) || JobLevel<40 ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "あなたは転職できません";
			mes "転職条件を良く確かめてから";
			mes "お願いします。";
			close;
		}
		if ( oldjob!=getarg(1) ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "転生前の職と流れが違うので";
			mes "あなたはこの職になれません。";
			close;
		}
		if ( SkillPoint>0 ) {
			mes "["+getarg(0)+"]";
			mes "スキルポイントを使い切ってから";
			mes "また来てください。";
			close;
		}
		mes "["+getarg(0)+"]";
		mes "あなたは、";
		mes "転職の条件を満たしているようです";
		mes getarg(0)+"に転職しますか?";
		next;
		if ( select("はい","いいえ")==1 ) {
			unequip;
			jobchange getarg(1),1;
			mes "["+getarg(0)+"ギルド関係者]";
			mes getarg(0)+"への転職、";
			mes "おめでとうございます!そして、";
			mes "これからも"+getarg(0)+"ギルドの";
			mes "復興のため、頑張ってください!";
			close;
		}
	case 3:	mes "["+getarg(0)+"]";
		mes "またお越しください";
		close;
	case 2:	mes "["+getarg(0)+"]";
		mes getarg(0)+"に転職するには";
		mes "·転生をしていること";
		mes "·転生一次職JovLv40以上である事";
		mes "·転生前職の系列職への転職であること";
		mes "が条件となっています。";
		next;
		mes "["+getarg(0)+"]";
		mes "なお転職の際はスキルポイントを";
		mes "使い切ってから来てください。";
		close;
	}
	return;
}
//==============================================================================
//精錬石販売NPC
//callfunc "buystone","NPCNAME";
function	script	buystone	{
	mes "["+getarg(0)+"]";
	mes "鉄や鋼鉄の武器を精錬する時に";
	mes "使える金属を売っています。";
	mes "1レベルの武器精錬に使える";
	mes "^007777プラコン^000000 と";
	mes "2レベルの武器精錬に使える";
	mes "^007777エンベルタコン^000000 があります。";
	next;
	mes "["+getarg(0)+"]";
	mes "プラコンは1個200Zeny、";
	mes "エンベルタコンは";
	mes "1個1000Zenyです。";
	next;
	switch ( select("プラコン購入","エンベルタコン購入","他の金属はないか聞いてみる") ) {
	case 1:	set @buyid,1010;
		set @buypri,200;
		break;
	case 2:	set @buyid,1011;
		set @buypri,1000;
		break;
	case 3:	mes "["+getarg(0)+"]";
		mes "1レベルと2レベルの武器より";
		mes "レベルが高い武器を精錬するための";
		mes "金属ですね。";
		mes "もうご存知かもしれませんが?";
		mes "オリデオコンとエルニウムは";
		mes "手に入れるのがすごく難しくてね…";
		close;
	}
	mes "["+getarg(0)+"]";
	mes "いくつ購入しますか?";
	mes "取り引きを中止したければ";
	mes "「0」でお願いします。";
	next;
Linput:
	input @num;
	if ( @num<=0 ) {
		mes "["+getarg(0)+"]";
		mes "取引中止ですね。";
		close;
	}
	if ( @num<=500 ) {
		set @sprice,@buypri*@num;
		if ( Zeny<@sprice ) {
			mes "["+getarg(0)+"]";
			mes "あれ?お客さん…";
			mes "お金が足りませんね。";
			mes "すみませんが、うちも商売だから";
			mes "損するわけにはいかないんですよ。";
			close;
		}
		if ( !(checkweight(@buyid,@num)) ) {
			mes "["+getarg(0)+"]";
			mes "荷物が多いですね。";
			mes "持ち物を整理してから";
			mes "またおこしください。";
			close;
		}
		set Zeny,Zeny-@sprice;
		getitem @buyid,@num;
		mes "["+getarg(0)+"]";
		mes "ご購入、ありがとうございました。";
		close;
	}
	mes "["+getarg(0)+"]";
	mes "500個以下で決めてください。";
	next;
	goto Linput;
	return;
}
//==============================================================================
//精錬石交換NPC
//callfunc "chgstone","NPCNAME";
function	script	chgstone	{
	mes "["+getarg(0)+"]";
	mes "オリデオコンやエルニウムの原石を";
	mes "私に持ってきたら、すぐに";
	mes "オリデオコンとエルニウムに";
	mes "してやる。但し、原石は";
	mes "各5つずつ持ってくるように。";
	next;
	switch ( select("オリデオコンを作る","エルニウムを作る","属性石について聞く") ) {
	case 1:	if ( countitem(756)<5 ) {
			mes "["+getarg(0)+"]";
			mes "ハハハハ、冗談だろ?";
			mes "オリデオコン原石が5つ無いと";
			mes "オリデオコンが作れないと";
			mes "言ったじゃないか。";
			close;
		}
		delitem 756,5;
		getitem 984,1;
		mes "["+getarg(0)+"]";
		mes "ほら、約束のオリデオコンだ。";
		mes "いつでもまた来てくれ。";
		close;
		
	case 2:	if ( countitem(757)<5 ) {
			mes "["+getarg(0)+"]";
			mes "ハハハハ、冗談だろ?";
			mes "エルニウム原石が5つ無いと";
			mes "エルニウムが作れないと";
			mes "言ったじゃないか。";
			close;
		}
		delitem 757,5;
		getitem 985,1;
		mes "["+getarg(0)+"]";
		mes "ほら、約束のエルニウムだ。";
		mes "いつでもまた来てくれ。";
		close;
	case 3:	mes "["+getarg(0)+"]";
		mes "属性石か…";
		mes "私の金属精錬人生20年で";
		mes "話はよく聞いたが実際には";
		mes "見たことはない。";
		mes "聞くところによると、金属が";
		mes "火、水、地、風の属性を持つらしい。";
		next;
		mes "["+getarg(0)+"]";
		mes "その属性石を武器を作る時に";
		mes "混入すれば、属性を持つ武器を";
		mes "作れるという…";
		mes "はは…そんなことができるのは";
		mes "相当な精錬職人だろうな。";
		close;
	}
	return;
}
//==============================================================================
//武具修理NPC
//callfunc "repairer";
function	script	repairer	{
	mes "[修理工]";
	mes "そこの旅人、";
	mes "修理したいアイテムはあるか?";
	mes "アイテムの修理は俺に任せてくれ!";
	next;
	if ( select("実は修理して欲しいアイテムが……","今は特に無いです")==2 ) {
		mes "[修理工]";
		mes "ふむ……";
		mes "なら俺に用は無いな。";
		close;
	}
	set @breaknum,getrepairableitemcount(0);
	if ( @breaknum==0 ) {
		mes "[修理工]";
		mes "おいおい……";
		mes "修理する必要のあるものなんて";
		mes "一つも持っていないじゃないか。";
		mes "はぁ……";
		mes "お前のようなヤツが増えると";
		mes "俺の商売もあがったりだよ……";
		close;
	}
	set @repair,@breaknum*5000;
	mes "[修理工]";
	mes "ふむ……";
	mes "お前が持っているアイテムで";
	mes "損傷しているアイテムは";
	mes @breaknum +"だな。";
	mes "一つ修理するのに 5000 Zenyだから";
	mes "全て直すと"+@repair+"Zenyとなる。";
	mes "修理するか?";
	next;
	if ( select("お願いします","いいえ")==2 ) {
		mes "[修理工]";
		mes "俺は、アイテムが傷ついたまま";
		mes "放って置かれるのが";
		mes "たまらなく嫌いなんだ。";
		mes "損傷したアイテムはすぐ直そうぜ。";
		close;
	}
	if ( Zeny<@repair ) {
		mes "[修理工]";
		mes "お金が足りないようだ";
		close;
	}
	set Zeny,Zeny-@repair;
	repairitem;
	mes "[修理工]";
	mes "OK!";
	mes "直ったな。";
	mes "アイテムにも寿命があるってことを";
	mes "覚えておくんだな。";
	close;
	return;
}
//==============================================================================
//武具精錬NPCセリフパターン1(プロンテラ·アルベルタ·アインブロック)
//callfunc "refine1","NPCNAME",success_emotion,falure_emotion;
function	script	refine1	{
	mes "["+getarg(0)+"]";
	mes "俺は武器と防具を精錬する鍛冶屋だ。";
	mes "君が装備しているアイテムの中で";
	mes "好きなものを精錬できるのだ。";
	mes "どの装備アイテムを";
	mes "精錬したいのかい?";
	next;
	set @part,select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10));
	if ( getequipisequiped(@part)==0 ) {
		mes "["+getarg(0)+"]";
		switch ( @part ) {
		case 1:
			mes "君の足りない脳みそを";
			mes "精錬してあげようか?";
			close;
		case 2:
			mes "俺の熱い体で君の体を";
			mes "精錬してあげるわ!";
			close;
		case 3:
			mes "君の左手をロケットパンチに";
			mes "する腕はないな。";
			close;
		case 4:
			mes "現代科学技術でも君の右手を";
			mes "ドリルにすることは";
			mes "できないね。";
			close;
		case 5:
			mes "ローブを持ってないじゃないか!";
			close;
		case 6:
			mes "君の足の臭いすごいぜ!";
			close;
		case 7:
		case 8:
			mes "どこにアクセサリーがあるのかい?";
			close;
		case 9:
		case 10:
			mes "何を精錬しろと言うんだ?";
			mes "他のアイテムの事かい?";
			close;
		}
	}
	if ( getequipisenableref(@part)==0 ) {
		mes "["+getarg(0)+"]";
		mes "このアイテムは精錬不可能だ。";
		close;
	}
	if ( getequipisidentify(@part)==0 ) {
		mes "["+getarg(0)+"]";
		mes "これは未鑑定だから精錬できない。";
		close;
	}
	if ( getequiprefinerycnt(@part)>=10 ) {
		mes "["+getarg(0)+"]";
		mes "これ以上は精錬できないぞ。";
		close;
	}
	switch ( getequipweaponlv(@part) ) {
	case 0:
		mes "["+getarg(0)+"]";
		mes "君が選んだ装備を精錬するには";
		mes "^ff9999エルニウム^000000と";
		mes "手数料20000Zenyが必要だな。";
		mes "続けるかい?";
		next;
		if ( select("はい","いいえ")==2 ) goto L_CANCEL_3;
		if ( getequippercentrefinery(@part)<100 ) {
			mes "["+getarg(0)+"]";
			mes "おおっと!この防具はもうたくさんの";
			mes "精錬をしてきたみたいだな…これ以上";
			mes "精錬したら防具が壊れるかも";
			mes "しれないぞ。防具が壊れたら";
			mes "2度と使えなくなる…それでも";
			mes "精錬をする気なのかい?";
			next;
			if ( select("はい","いいえ")==2 ) goto L_CANCEL_1;
		}
		if ( countitem(985)<1 || Zeny<20000 ) goto L_CANCEL_2;
		delitem 985,1;
		set Zeny,Zeny-20000;
		break;
	case 1:
		mes "["+getarg(0)+"]";
		mes "レベル1の武器を精錬したいのかい?";
		mes "精錬するため、 ^ff9999プラコン^000000と";
		mes "手数料500Zenyが必要だな。";
		mes "続けるのか?";
		next;
		if ( select("はい","いいえ")==2 ) goto L_CANCEL_3;
		if ( getequippercentrefinery(@part)<100 ) callsub L_OverRefine,getarg(0);
		if ( countitem(1010)<1 || Zeny<500 ) goto L_CANCEL_2;
		delitem 1010,1;
		set Zeny,Zeny-500;
		break;
	case 2:
		mes "["+getarg(0)+"]";
		mes "レベル2の武器を精錬したいのかい?";
		mes "精錬するため、 ^ff9999エンベルタコン^000000と";
		mes "手数料2000Zenyが必要だな。";
		mes "続けるのか?";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -