返回 资源详情 首页
AS单机任务制作--写对话助手(带按键跳过对话功能)

AS单机任务制作--写对话助手(带按键跳过对话功能)

作者:神仙鱼、
分类:游戏增强
大小:5.30 KB
已有 人次 下载和浏览本资源
下载地址1

简介

1.声明:
1.1 必须安装滴风大佬的AS脚本引擎(最好是2.7.3),图像增强补丁最好也是6.5.6或以上版本。
1.2 使用前把文件"DHTool.as"放到AS的目录 AsScripts/Level 下。具体怎么使用可参考下面说明和"使用范例.as"。
1.3 基于流星原生的Say()对话API封装的一段功能代码,希望能帮到一些在用"屏幕左上角对话"写剧情对话的单机作者。

2.使用背景:
刚开始自学流星单机任务制作的时候,发现写对话是个比较麻烦的事情,比如:
//
Perform(c, "say", "绝对比你的狗窝快活林还要来的快活多了!");
Perform(c, "pause", 2);
Perform(c, "say", "你就作我的左右手,包你有享不尽的容华富贵");
Perform(c, "pause", 2);
Perform(c, "say", "看你的功夫还有两下子,我很赏识你!");
Perform(c, "pause", 5);
Perform(c, "say", "怎麽?狗咬狗的感觉如何呀??");
Perform(c, "pause", 2);
Perform(c, "say", "想不到你能活到现在,没把你们整死真是可惜");
Perform(c, "faceto", player);

//
PlayerPerform("block", 0);
PlayerPerform("pause", 10);
PlayerPerform("say", "(难道﹒﹒这一切的计划﹒﹒﹒)");
PlayerPerform("pause", 4);
PlayerPerform("say", "﹒﹒﹒﹒﹒");
PlayerPerform("pause", 7);
PlayerPerform("say", "!?﹒﹒你﹒﹒怎知我是快活林的人!?");
PlayerPerform("pause", 10);
PlayerPerform("say", "﹒﹒﹒﹒﹒");

上面的代码片段是原版第9关孟星魂和屠城开局的一小段对话内容,可以看到:

2.1 对话内容是从下到上的,这非常不符合我们平常的阅读习惯,写起代码来更加别扭;
2.2 每写一句对话,就要手动Perform(c, "pause", 2)一下(不这样做的话所有对话就会同时蹦出来),
如果对话内容一多,就会增加很多不必要的代码量;
2.3 两个人的对话是分开写的,对话管理起来比较麻烦,而且这只是两个人的对话,如果是5个人或以上
同时在同一剧情场景对话,管理起来更加地复杂和混乱。

我自己是一个比较懒的人,想做单机看到写对话需要这么麻烦劝退了我不少,于是我就利用现在强大的AI,
封装了一个"对话助手",方便写任务对话,以下内容展示一下如何较原版写对话的方法更方便地去写一段剧情对话。

3.使用说明:
注意:
1. 下面的代码只是简单展示了一下“对话助手”的简单使用,具体如何正确使用还需要参考目录下的 <使用范例.as>
2. “对话助手”带有--按键 "跳过单句对话" 和 "跳过整段对话" 以及 "检测剧情对话是否正在进行" 的功能。

上面提到的对话片段,用了“对话助手”的话可以这样写:
int p = GetAnyChar("player");//获取玩家id
int c = GetAnyChar("屠城");//获取屠城id

CharSay(c,"想不到你能活到现在,没把你们整死真是可惜",3); //3秒之后下一句对话出现
CharSay(c,"怎麽?狗咬狗的感觉如何呀??",3); //3秒之后下一句对话出现
CharSay(p,"﹒﹒﹒﹒﹒",2); //2秒之后下一句对话出现
CharSay(c,"看你的功夫还有两下子,我很赏识你!",2); //2秒之后下一句对话出现
CharSay(c,"你就作我的左右手,包你有享不尽的容华富贵",2); //2秒之后下一句对话出现
CharSay(c,"绝对比你的狗窝快活林还要来的快活多了!",2); //2秒之后下一句对话出现
CharSay(p,"!?﹒﹒你﹒﹒怎知我是快活林的人!?",2); //2秒之后下一句对话出现
CharSay(p,"(难道﹒﹒这一切的计划﹒﹒﹒)",2);

可以对比一下,前后两种写对话的方式,明显后者要简洁得多,而且更容易管理、编写、阅读、修改,下面讲一下CharSay这个函数
各个参数代表的含义以及功能。

3.1 函数参数说明
CharSay(a,b,c);
1.第一个参数:玩家或其他npc的id值(int 整数类型),可通过GetAnyChar()获取,传入的哪个npc的id值,对话就由哪个npc说出。
2.第二个参数:对话的具体内容,注意,必须加英文双引号以字符串的形式传入。
3.第三个参数:本句对话停留的时间,假设我们第三个参数传入的是3,那么这句对话停留3秒之后,下一句对话才会出现。(支持传入float浮点数).第三个参数可以不传,不传的话下一句对话出现的时间就是9999秒,靠玩家按键跳过对话。

3.2 功能说明
1. 按"Q"键"跳过单句对话"的功能,对话正在进行时,每按一次Q键,就能马上跳到下一句对话。
如果想要改成别的按键,可以加我QQ让我修改。QQ写在最后面。
2. 按"Enter"回车键--"跳过整段对话"的功能。当触发某个剧情对话后,按下Enter回车键,则提前结束本次剧情对话。
   同样想改成别的按键可以联系我。
3. "检测剧情对话是否正在进行",再也不用手动去计算每段剧情对话需要耗费多少时间,然后根据这个时间去触发另一段剧情了。
我们直接调用ChatOver(),如果对话还在进行,则ChatOver()返回false,反之,如果对话已经结束,则ChatOver()返回true。
   

--------------------------------------------------------------------------------------------------------------------------
  作者:神仙鱼、
  QQ: 2653768382
  2025-9-14

推荐

玄铁重剑(动态)

玄铁重剑(动态)

作者:仇家、追杀
分类:自制武器
已有1455 人次下载或浏览本资源
新流星-钟乳洞

新流星-钟乳洞

作者:星河封天 ,墨香
分类:玩家自制
已有1886 人次下载或浏览本资源
不知火舞(高颜值)全阵营+人物选择

不知火舞(高颜值)全阵营+人物选择

作者:烈酒×杀意
分类:自制人物
已有6360 人次下载或浏览本资源