战神引擎登录器插件功能强大,有自定义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.