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

📄 npc_function.txt

📁 JA++的最新...很多ROSF都用这个 ] 是个不错的东西-3-
💻 TXT
📖 第 1 页 / 共 3 页
字号:
//==============================================================================
// 汉化和修正 : FPE
// Jathena++ 论坛:http://www.foxofice.net/bbs
//==============================================================================
//卡普拉「空间传送」
//callfunc "kftransport",Place,Price[,Place,Price...],0;
//  1	普隆德拉
//  2	依斯鲁得岛
//  3	吉芬
//  4	裴扬
//  5	梦罗克
//  6	艾尔贝塔
//  7	兽人村落
//  8	艾尔帕兰
//  9	妙勒尼 废矿
// 10	克魔岛
// 11	发乐斯 灯塔岛
// 12	克魔岛发乐斯 灯塔岛
// 13	尤诺
// 14	准备1
// 15	准备2
// 16	准备3
function	script	kftransport	{
	setarray @placename$,
		"中央之都-普隆德拉",
		"卫星都市-依斯鲁德岛",
		"魔法之都-吉芬",
		"山岳之城-斐扬",
		"沙漠之都-梦罗克",
		"港口之都-艾尔贝塔",
		"兽人村落",
		"运河之都-艾尔帕兰",
		"妙勒尼 废矿",
		"克魔岛",
		"发乐斯 灯塔岛",
		"克魔岛发乐斯 灯塔岛",
		"尤诺",
		"准备1",
		"准备2",
		"准备3";
	cleararray @place$,"",16;
	for ( set @i,0; @i<16; set @i,@i+1 ) {
		if ( getarg(@i*2)==0 ) break;
		set @price[@i],getarg(@i*2+1);
		set @place$[@i],@placename$[getarg(@i*2)-1] + " -> " + @price[@i] + " z";
	}
	//set @max,@i;
	mes "[卡普拉 职员]";
	mes "请选择目的地。";
	next;
	set @i,select(@place$[0],@place$[1],@place$[2],@place$[3],@place$[4],@place$[5],@place$[6],@place$[7]
	,@place$[8],@place$[9],@place$[10],@place$[11],@place$[12],@place$[13],@place$[14],@place$[15],"取消")-1;
	if ( @i==16 ) {
		mes "[卡普拉 职员]";
		mes "谢谢。";
		mes "欢迎再来。";
		goto L_kafraclose;
	}
	if ( Zeny<@price[@i] ) {
		mes "[卡普拉 职员]";
		mes "对不起,你没有足够金钱。";
		goto L_kafraclose;
	}
	set Zeny,Zeny-@price[@i];
	set KF_PIT,KF_PIT+(@price[@i]/10);
	switch ( getarg(@i*2) ) {
	case 1:
		warp "prontera.gat",116,72;
		break;
	case 2:
		warp "izlude.gat",91,105;
		break;
	case 3:
		warp "geffen.gat",120,39;
		break;
	case 4:
		warp "payon.gat",160,58;
		break;
	case 5:
		warp "morocc.gat",156,46;
		break;
	case 6:
		warp "alberta.gat",117,56;
		break;
	case 7:
		warp "gef_fild10.gat",52,326;
		break;
	case 8:
		warp "aldebaran.gat",143,110;
		break;
	case 9:
		warp "mjolnir_02.gat",99,351;
		break;
	case 10:
		warp "comodo.gat",209,143;
		break;
	case 11:
	case 12:
		warp "cmd_fild07.gat",127,134;
		break;
	case 13:
		warp "yuno.gat",158,124;
		break;
	case 14:
		warp "prontera.gat",116,72;
		break;
	case 15:
		warp "prontera.gat",116,72;
		break;
	case 16:
		warp "prontera.gat",116,72;
	}
	end;
L_kafraclose:
	close2;
	cutin "kafra_01",255;
	end;
	return;
}
//==============================================================================
//卡普拉「仓库」
//callfunc "kfstorage",Price;
function	script	kfstorage	{
	if ( basicskillcheck(0) && getskilllv(1)<6 ) {
		mes "[卡普拉 职员]";
		mes "很抱歉,您无法使用仓库服务,这至少需要职业等级6以上。";
		goto L_kafraclose;
	}
	if ( Zeny<getarg(0) ) {
		mes "[卡普拉 职员]";
		mes "很抱歉,您的金钱不足。";
		mes "这至少需要"+getarg(0)+"Zeny。";
		goto L_kafraclose;
	}
	set Zeny,Zeny-getarg(0);
	openstorage;
	cutin "kafra_01",255;
	close;
L_kafraclose:
	close2;
	cutin "kafra_01",255;
	end;
	return;
}
//==============================================================================
//卡普拉「手推车」
//callfunc "kfcart",Price;
function	script	kfcart	{
	if ( Class!=5 && Class!=10 && Class!=18 ) {
		mes "[卡普拉 职员]";
		mes "抱歉。";
		mes "手推车是商人系列专用的服务。";
		goto L_kafraclose;
	}
	if ( Cart ) {
		mes "[卡普拉 职员]";
		mes "您已经在使用手推车了。";
		goto L_kafraclose;
	}
	mes "[卡普拉 职员]";
	mes "租用手推车的费用是"+getarg(0)+"Zeny。";
	mes "而且必须习得^777777手推车使用^000000技能";
	mes "如果没有学习这个技能,只会浪费金钱。";
	mes "要租用手推车吗?";
	next;
	if ( select("租用手推车","取消")==2 ) {
		mes "[卡普拉 职员]";
		mes "谢谢。";
		mes "欢迎再来。";
		goto L_kafraclose;
	}
	if (Zeny<getarg(0)) {
		mes "[卡普拉 职员]";
		mes "很抱歉,您的金钱不足。";
		mes "租用手推车的费用是"+getarg(0)+"Zeny。";
		goto L_kafraclose;
	}
	set Zeny,Zeny-getarg(0);
	setcart;
L_kafraclose:
	close2;
	cutin "kafra_01",255;
	end;
	return;
}
//==============================================================================
//卡普拉「查询点数」
//callfunc "kfpoint";
function	script	kfpoint	{
	mes "[卡普拉 职员]";
	mes strcharinfo(0) + " 先生/小姐";
	mes "您共获得了" + KF_PIT + "点数。";
	next;
	mes "[卡普拉 职员]";
	mes "卡普拉点数可以到卡普拉总公司换取礼品。";
	mes "以后还请多多使用卡普拉服务。";
	close2;
	cutin "kafra_01",255;
	end;
	return;
}
//==============================================================================
//卡普拉「结束」
//callfunc "kfend";
function	script	kfend	{
	mes "[卡普拉 职员]";
	mes "我们卡普拉服务会不断完善";
	mes "以顾客为本作为目标";
	mes "请顾客放心使用吧";
	mes "我们定当竭尽所能做到最好。";
	mes "欢迎再次使用卡普拉(股份)公司的服务。";
	close2;
	cutin "kafra_01",255;
	end;
	return;
}
//==============================================================================
//PVP指导员全部
//callfunc "pvpguide","SAVEMAP",X,Y;
function	script	pvpguide	{
	mes "[PVP指导员]";
	mes "你好!!";
	mes "我是这里的PVP指导员!";
	next;
	switch ( select("^3355ff「PVP」^000000是什么?","如何参加PVP?","PVP有什么规则?","储存当前位置","结束对话") ) {
	case 1:	mes "[PVP指导员]";
		mes "PVP指的是:";
		mes "「Player VS Player Mode」的缩写";
		mes "也就是玩家之间可以互相打斗的模式。";
		next;
		mes "[PVP指导员]";
		mes "如果想进入PVP场的话,";
		mes "可以和我旁边的^3355FF守门人^000000对话";
		next;
		mes "[PVP指导员]";
		mes "只有职业等级达到Lv31以上";
		mes "才能进入PVP等候室。";
		next;
		mes "[PVP指导员]";
		mes "PVP模式分2种:";
		mes "一种是^777777梦魇模式";
		mes "^000000一种是^777777溜溜候模式^000000。";
		next;
		mes "[PVP指导员]";
		mes "^777777梦魇模式^000000和实战一样,";
		mes "死后是会掉金钱和装备的。";
		next;
		mes "[PVP指导员]";
		mes "进场之前请认真考虑。";
		close;
	case 2:	mes "[PVP指导员]";
		mes "和我旁边的「PVP守门人」对话,";
		mes "并给他500 Zeny,";
		mes "他就会带你到PVP等候室。";
		next;
		mes "[PVP指导员]";
		mes "等候室的^777777梦魇模式^000000和^777777溜溜猴模式^000000是独立的。";
		mes "里面各个区都会站着PVP指导员提示的。";
		next;
		mes "[PVP指导员]";
		mes "简单来说,就是从Lv31开始";
		mes "每10级划分一个房间。";
		next;
		mes "[PVP指导员]";
		mes "每个负责人的头上都会写着等级范围。";
		next;
		mes "[PVP指导员]";
		mes "和负责人对话,选择对应的地图进入PVP场地。";
		mes "会出现^0000ff参加人数 / 人数上限^000000的字样。";
		next;
		mes "[PVP指导员]";
		mes "还需注意一点:";
		mes "PVP专用地图是不记录人物坐标的。";
		close;
	case 3:	mes "[PVP指导员]";
		mes "PVPモードに進入すると";
		mes "画面右下にカウンターが";
		mes "出てきますが、これは";
		mes "現在ログインMAPでの";
		mes "自分の順位 / MAP内人数 を";
		next;
		mes "[PVP指导员]";
		mes "表す数値です。";
		mes "PVPモードでのポイントは";
		mes "PVPモードにのみ";
		mes "適用されており、";
		mes "初めに持っている";
		next;
		mes "[PVP指导员]";
		mes "基本値は 5 です。";
		mes "マップの中で対戦し";
		mes "勝利した場合得られるポイントは";
		mes "1 で、負けた場合";
		mes "-5 ポイントとなります。";
		next;
		mes "[PVP指导员]";
		mes "所持ポイントが";
		mes "0 以下になった場合";
		next;
		mes "[PVP指导员]";
		mes "PVPモードが解除され";
		mes "外に出されます。";
		mes "しかし数値が 0 以上の時";
		mes "戦闘不能になった場合は";
		mes "仲間や他のプレイヤーに";
		next;
		mes "[PVP指导员]";
		mes "助けて貰い続行することが";
		mes "できます。";
		next;
		mes "[PVP指导员]";
		mes "プレイヤーとの対戦ルールは";
		mes "モンスターとの戦闘ルールと";
		mes "基本的には同じです。";
		close;
	case 4:	savepoint getarg(0),getarg(1),getarg(2);
		mes "[PVP指导员]";
		mes "こちらでセーブできました。";
		mes "ご利用ありがとうございます。";
		close;
	case 5:	mes "[PVP指导员]";
		mes "プレイヤー同士の真剣勝負を";
		mes "味わえるPVPモード!";
		mes "勇気溢れる皆様を";
		mes "お待ちしております。";
		close;
	}
	return;
}
//==============================================================================
//PVPドアマン全部
//callfunc "pvpdoor";
function	script	pvpdoor	{
	mes "[PVPドアマン]";
	mes "PVP控え室にご案内する";
	mes "PVPドアマンです。";
	mes "PVPモードについての説明は";
	mes "隣のガイドに";
	mes "お問い合わせください。";
	next;
	switch ( select("^ff3355PVP ナイトメアモード^000000 控え室へ","^3355FFPVP ヨーヨーモード^000000 控え室へ","会話をやめる") ) {
	case 1:	mes "[PVPドアマン]";
		mes "ナイトメアモードでは";
		mes "ダンジョンと同じルールが";
		mes "そのまま適用されており、";
		mes "倒された場合は経験値を";
		mes "失います。";
		next;
		mes "[PVPドアマン]";
		mes "参加費は 500Zeny です。";
		mes "ナイトメアモード控え室へ";
		mes "移動されますか?";
		next;
		if ( select("移動","取り消し")==2 ) break;
		if ( Zeny<500 || BaseLevel<31 ) goto LError;
		set Zeny,Zeny-500;
		warp "pvp_n_room",51,23;
		end;
	case 2:	mes "[PVPドアマン]";
		mes "参加費は 500Zeny です。";
		mes "ヨーヨーモード控え室へ";
		mes "移動されますか?";
		next;
		if ( select("移動","取り消し")==2 ) break;
		if ( Zeny<500 || BaseLevel<31 ) goto LError;
		set Zeny,Zeny-500;
		warp "pvp_y_room",51,23;
		end;
	}
	mes "[PVPドアマン]";
	mes "プレイヤー同士の真剣勝負を";
	mes "味わえるPVPモード!";
	mes "勇気溢れる皆様を";
	mes "お待ちしております。";
	close;
LError:
	mes "[PVP ドアマン]";
	mes "お客様 !";
	mes "Zenyが足りないか、基本レベルが";
	mes "31になっていないようです。";
	close;
	return;
}
//==============================================================================
//町内限定アナウンス
//callfunc "townannounce","TEXT",op;
function	script	townannounce	{
	mapannounce "prontera.gat",getarg(0),getarg(1);
	mapannounce "payon.gat",getarg(0),getarg(1);
	mapannounce "alberta.gat",getarg(0),getarg(1);
	mapannounce "geffen.gat",getarg(0),getarg(1);
	mapannounce "morocc.gat",getarg(0),getarg(1);
	mapannounce "aldebaran.gat",getarg(0),getarg(1);
	mapannounce "izlude.gat",getarg(0),getarg(1);
	mapannounce "yuno.gat",getarg(0),getarg(1);
	mapannounce "comodo.gat",getarg(0),getarg(1);
	mapannounce "amatsu.gat",getarg(0),getarg(1);
	mapannounce "gonryun.gat",getarg(0),getarg(1);
	mapannounce "umbala.gat",getarg(0),getarg(1);
	mapannounce "niflheim.gat",getarg(0),getarg(1);
	mapannounce "louyang.gat",getarg(0),getarg(1);
	mapannounce "jawaii.gat",getarg(0),getarg(1);
	mapannounce "einbech.gat",getarg(0),getarg(1);
	mapannounce "einbroch.gat",getarg(0),getarg(1);
	return;
}
//==============================================================================
//転職共通Script
//callfunc "jobchanger3","JOBNAME",JOBID,oJobID;
function	script	jobchanger3	{
	mes "["+getarg(0)+"ギルド関係者]";
	mes "こんにちは、";
	mes "何をお手伝いしましょうか?";
	next;
	switch ( select(getarg(0)+"に転職",getarg(0)+"の転職条件は?","なんでもありません。") ) {
	case 1:	if ( Upper==1 ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "あなたは転生されていますので";
			mes "ここでは転職案内できません。";
			close;
		}
		if ( Class==getarg(1) ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "あなたは既に"+getarg(0);
			mes "に転職しています。";
			close;
		}
		if ( Class!=getarg(2) ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "あなたは転職できません";
			mes "転職条件を良く確かめてから";
			mes "お願いします。";
			close;
		}
		if ( JobLevel<40 ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "JobLvが足りません。";
			mes "Lvを上げてまたお越しください";
			close;
		}
		if ( SkillPoint>0 ) {
			mes "["+getarg(0)+"ギルド関係者]";
			mes "スキルポイントを使い切ってから";
			mes "また来てください。";
			close;
		}
		mes "["+getarg(0)+"ギルド関係者]";
		mes "あなたは、";
		mes "転職の条件を満たしているようです";
		mes getarg(0)+"に転職しますか?";
		next;
		if ( select("はい","いいえ")==1 ) {
			unequip;

⌨️ 快捷键说明

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