战神引擎登录器插件功能强大,有自定义NPC对话框功能,很多兄弟总问帮主,是怎么做的,在插件帮助文档上面已经写的非常清楚了,你们随便找一个有自定义NPC的版本,把脚本打开看一眼基本就能明白,今天帮主把官方的帮助文档内容和一段自定义脚本给大家提供出来,你们参考一下就可以看明白是怎么写的。

官方说明
自定义NPC指令合集
1、添加背景图片
‘Bg:素材目录:素材图片名:x坐标:y坐标|’
2、背景关闭按钮
‘Exit:素材目录:素材图片名:按钮按下后的素材图片名:x坐标:y坐标|’
3、单行文本
‘1:Text:x坐标:y坐标:字体大小:单行文本内容@文本颜色|’
4、图片素材(可支持点击显示描述)
‘1:Img:素材目录:素材图片名:x坐标:y坐标:点击图片后的第一行文本@第一行文本颜色/第二行文本@第二行文本颜色:按钮文本@执行函数|’
5、添加物品
‘1:Item:物品名称:物品looks:缩放大小:x坐标:y坐标|’
6、添加特效
‘1:Spr:特效素材组目录:开始图片:结束图片:x坐标:y坐标:动画频率:缩放大小|’
7、添加按钮
‘1:Btn:素材目录:素材图片名:x坐标:y坐标:按钮文本@执行函数名:字体大小:字体颜色|’
8、添加文字链接
‘1:Cmd:x坐标:y坐标:字体大小:字体颜色:指令文本@指令函数|’
9、异步调用按钮
‘1:RBtn:素材目录:素材图片名:x坐标:y坐标:按钮文本@执行函数名:字体大小:字体颜色|’
10、异步调用文字链接
‘1:RCmd:x坐标:y坐标:字体大小:字体颜色:指令文本@指令函数|’
素材统一存放目录:pic/diynpc/
如果diynpc下方需要设置二级子目录,则在指定素材目录时,用 短横线 分隔目录名称。例如:我们将时装预览放到sz目录下的preview目录下,则按如下写法:
sz-preview, 完整例子:
“1:Spr:sz-preview:10:17:260:220:0.1:1|”;
表示访问 pic/diynpc/sz/preview 下的文件
写法示例:
This_Npc.NpcDialog(This_Player,
‘Bg:zs:2|’+
‘Exit:zs:1:1:570:390|’+
‘1:Text:380:255:14:角色等级达到10级@250|’+
‘1:Item:屠龙:57:1:280:160|’+
‘1:Btn:zs:4:350:60:@lkzs|’+
‘1:RBtn:zs:4:350:60:@lkzs|’+
‘1:Img:zs:3:24:252:第①转/增加倍功50%@245|’+
‘1:Spr:btnquan:1:13:24:252:0.1:0.5|’+
‘|{cmd}</@lkzs> </@doexit>’
);
实战脚本—通天塔
program Mir2;
{$I common.pas}
Procedure _doexit;
begin
This_Npc.CloseDialog(This_Player);
end;
procedure domain;
begin
//自定义NPC背景脚本开始
This_Npc.NpcDialog(This_Player,
'Bg:ttt:0|'+
'Exit:duihuakuang:4:4:700:45|'+
'1:Btn:ttt:1:570:480:@yic|'+
'1:Btn:duihuakuang:41:200:480:@xj|'+
'1:Text:200:480:18:进入仙界@254|'+
'1:Text:200:430:18:炼气期以上可以直接进入仙界@254|'+
'|{cmd}</@yic> </@xj>'
);
//自定义NPC背景脚本结束
end;
procedure _xj;
begin
if This_Player.GetV(43,1) >= 15 then
begin
if This_Player.YBnum >= 2000 then
begin
This_Player.ScriptRequestSubYBNum(2000);
This_Player.Flyto('cw',31 + random(3) - 1,28 + random(3) - 1);
ServerSay('玩家<' + This_Player.Name + '>进入了修仙界',5);
end
else
This_NPC.NpcDialog(This_Player,
'传送失败,你没有2000元宝!');
end
else
This_NPC.NpcDialog(This_Player,
'传送失败,必须炼气期及以上!');
end;
procedure _yic;
begin
if This_Player.GetV(43,1) > 8 then
begin
if This_Player.YBnum >= 20000 then
begin
This_Player.ScriptRequestSubYBNum(20000);
This_Player.RandomFlyto('0150~1');
ServerSay('玩家<' + This_Player.Name + '>进入了通天塔,祝他满载而归!', 2);
end
else
This_NPC.NpcDialog(This_Player,
'传送失败,你没有20000元宝!');
end
else
This_NPC.NpcDialog(This_Player,
'传送失败,必须八转及以上!');
end;
Begin
domain;
end.








