自定义Npc对话框脚本和帮助文档

战神引擎登录器插件功能强大,有自定义NPC对话框功能,很多兄弟总问帮主,是怎么做的,在插件帮助文档上面已经写的非常清楚了,你们随便找一个有自定义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.
分享到:
赞(0)