KSFM2【制作人 "zm】
什么是NPCNPC就是英文(Non-Player-Controlled Character)“非玩家控制角色”的缩写,这个概念最早起源于单机版游戏,逐渐延伸到整个游戏领域。
举个最简单的例子,您在买卖物品的时候需要点击的那个商人就是NPC,还有做任务时需要对话的人物等等都属于NPC。
--------------------------------------------------------------------------------
NPC相关的配置文件和NPC配置相关的文件有两个,分别是服务端 \Mir200\Envir\ 里面的 Npcs.txt 和 Merchant.txt 文件!
1、"Npcs.txt"文件:此文件主要用来设置存放管理类NPC 比如 国王、沙城管理员 等 参数比较少不太灵活,一般不用来做交易类的NPC!
绝大多数的NPC 都是做到Merchant.txt 文件里的,只有 管理城堡,比如带有 开关城门、修理城墙 等 功能的NPC 必须放到 这个文件内设置!
Npcs.txt 对应的文件存放在 .\Mir200\Envir\ Npc_def\ 文件夹中,文件格式为: NPC名字-地图号.txt
Npcs.txt 的内容格式为:
;Npc名称 代码 地图 x y 标志 外观代码
比齐官员 1 0122 26 26 0 147
沙巴克官员 2 0150 9 12 0 147
2、"Merchant.txt"文件:此文件主要用来设置存放交易类NPC!
绝大多数的NPC 都可以做到做到Merchant.txt 文件里的!
Merchant.txt 对应的文件存放在 .\Mir200\Envir\ Market_def\ 文件夹中,文件格式为: NPC名字-地图号.txt
Merchant.txt 的内容格式为:
;调用的文件 地图号 X Y NPC的名字 标志 外观 索引号
传送员\比奇老兵 0 468 226 比奇老兵 0 126 0
传送员\盟重老兵 1 253 248 盟重老兵 0 126 0
魔豆提示:索引号为 1 时 代表这个NPC 是沙城的 NPC 在这种NPC购买物品或修理装备都会根据引擎上的参数收取税收。
沙城员在这些NPC使用服务还可享受相关折扣,在开始攻沙战争的时候这些npc 会自动消失,等攻城战结束再出现。
3、变量<$SELFNAME>用来显示当前对话NPC的名字
--------------------------------------------------------------------------------
NPC开头参数想要实现NPC卖卖物品、修理装备等功能,需要在NPC文件的头部加上相关的参数。
例如:(@fastbuy @buy @sell @repair @s_repair) 那么这个NPC 就支持 买、卖、普修、特修、快速买卖的功能了。
参数名 含义
@Repair 普通修理
@S_repair 特殊修理
@Buy 普通金币购买东西
@BindBuy 绑定金币购买东西
@Sell 出售东西
@Makedrug 打造装备
@Storage 保管物品
@Getback 取回物品
@Upgradenow 升级武器
@Getbackupgnow 取回武器
@ArmStrengthen 装备强化
@ArmUnseal 装备开光
@ArmRemoveStone 装备卸下宝石
@ArmAbilityMove 装备属性转移 [详细说明]
@@InputInteger 弹出输入数字框
@@InputString 弹出输入文字框
@@sendmsg 发送公告
--------------------------------------------------------------------------------
NPC固定命令说明:<购买物品/@buy> 固定用法 点相应连接就会弹出相应的功能脚本;
命令 命令格式或含义
@Repair <&普通修理/@repair>
@S_repair <&特殊修理/@s_repair>
@Buy <&购买物品〖金币〗/@Buy>
@BindBuy <&购买物品〖绑定金币〗/@BindBuy>
@Sell <&出售物品/@Sell>
@Makedrug <&打造装备/@Makedrug>
@Storage <&保管物品/@Storage>
@Getback <&取回物品/@Getback>
@Upgradenow 升级武器
@Getbackupgnow 取回武器
@ArmStrengthen <&装备强化/@ArmStrengthen>
@ArmUnseal <&装备开光/@ArmUnseal>
@ArmRemoveStone <&装备卸下宝石/@ArmRemoveStone>
@ArmAbilityMove <&装备属性转移/@ArmAbilityMove>
@@InputInteger <&弹出输入数字框/@@InputInteger1> 注:输入确定后触发 [@@InputInteger1] 输入的值保存在 N1 变量中
@@InputString <&弹出输入文字框/@@InputString1> 注:输入确定后 触发 [@@InputString1] 输入的值保存在 S1 变量中
@@sendmsg 发送公告
@Storagepass 修改仓库密码
--------------------------------------------------------------------------------
NPC可销售购买物品分类列表参数名 含义
%100 表示该NPC出售的物品价格,%100是原始物价,%150是1.5倍物价 //无效
+19 +20 +21 是项链店,所有项链可以在这里维修和交易 //无效
+22 +23 是戒指店,所有戒指可以在这里维修和交易 //无效
+24 +26 是手镯店,所有手镯可以在这里维修和交易 //无效
+3 +25 +30 是杂货店,所有杂货可以在这里维修和交易 //无效
+3 +4 是书 店,所有图书可以在这里交易 //无效
+0 +42 是药 店,所有药剂可以在这里交易 //无效
+10 +11 +58 +81 是衣服店,所有衣服、腰带和靴子可以在这里维修和交易 //无效
+15 是头盔店,所有头盔可以在这里维修和交易 //无效
+5 +6 +43 是兵器店,所有兵器可以在这里维修和交易 //无效
+1 +40 是肉 店,所有肉可以在这里交易 //无效
--------------------------------------------------------------------------------
NPC其它参数参数名 含义说明
[goods] 当前Npc可购买库存物品列表,不能写在[@main]前面
想要实现 点开Npc 的<&购买物品〖金币〗/@buy> 或 <&购买物品〖绑定金币〗/@BindBuy> 然后出现的 可购买的物品的列表,
除了需要加上 (@buy @BindBuy) 的头部外,还需要在Npc的脚本后面加入下面的参数:
[goods]
;物品名称 数量 刷新时间(分钟) 摆放位置
回城卷 200 5 0 //(提示:5分钟刷新200个回城卷在第一个格子里)
随机传送卷 100 5 1
随机传送卷包 500 5 2
护身符 100 10 3 //(提示:10分钟刷新100个护身符在第四个格子里)
护身符(大) 100 10 4
地牢逃脱卷 10 10 5
行会回城卷 50 10 6
灰色药粉(少量) 100 10 7
黄色药粉(少量) 100 10 8
灰色药粉(中量) 100 10 9
灰色药粉(大量) 100 10 10
黄色药粉(中量) 100 10 11
黄色药粉(大量) 100 10 12
显示效果如下图:(每行5个格子)
相关文章:自定义NPC对话框界面 NPC对话美化功能