切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 龙珠
回复 1

3

主题

6

帖子

150

积分

大区版主

Rank: 7Rank: 7Rank: 7

积分
150
人气
10 点
钻石粒
125 粒
贡献
0 点
论坛币
24 个
爱心
0 点

论坛审核会员论坛注册会员

[1.12.2][ECMA]使用脚本设置任务进度示例[复制链接]
发表于 2019-4-10 18:50:21 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.0
适用版本: 1.12.2 
编写语言: ECMA(JavaScript)
最后更新: 2019-04-21
代码版权: 弱版权

请注册论坛会员,已便查看高清图片!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 粘兽 于 2019-4-21 15:31 编辑

声明:
  • 你不能转载本帖。
  • 你不能声称作者是自己。


在18年年末,作者开放了Quest相关的API,
这使得npc的任务可以通过脚本更加灵活。 吊锤bq插件

例如:
  • NPC死亡后给范围内或符合条件的玩家增加任务进度,可以避免怪不够刷任务做不完的窘境。
  • 使用脚本增加任务进度实现一些需要进行特殊操作的任务,比如躲开某些技能,或完成某些动作。

效果:
GIF.gif

代码:
// 任务id变量
var quest_id = 1;

function interact(e){
    // 判断玩家是否有任务 没有则开始任务
    if(!e.player.hasActiveQuest(quest_id)){
        e.player.startQuest(quest_id);
    // 已有该任务 则进行其他操作
    }else{
        // 获取任务对象
        var quest = e.API.quests.get(quest_id);
        e.player.message('['+quest.name+'] 进度:');
        // 获取玩家任务目标数组并遍历
        var quest_info = quest.getObjectives(e.player);
        for(var i in quest_info){
            // 获取当前进度与需求进度
            var now = quest_info[i].progress;
            var max = quest_info[i].maxProgress;
            // 判断目标是否已达成 未达成则增加进度
            var num = ((now + 1 >= max) ? max : (now + 1));
            quest_info[i].setProgress(num);
            // 发送进度消息
            e.player.message('  '+quest_info[i].text);
        }
    }
}

评分

参与人数 3人气 +6 钻石粒 +100 收起 理由
Guai_Shou + 2 + 100 赞一个!
pp_Boy + 2 赞一个!
Hueihuea + 2 GOOD

查看全部评分

回复

使用道具 举报

0

主题

2

帖子

13

积分

论坛萌新

Rank: 1

积分
13
人气
0 点
钻石粒
25 粒
贡献
0 点
论坛币
3 个
爱心
0 点
发表于 2019-5-8 13:38:44 | 显示全部楼层
期待作者的下次作品!(其实我在活跃论坛)
其实我是在活跃论坛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|自定义NPC脚本中文论坛 ( 蜀ICP备17005795号-3 )

GMT+8, 2020-7-3 03:04 , Processed in 0.066490 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部