📄 npc_function.txt
字号:
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 + -