切换风格

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

10

主题

17

帖子

479

积分

大区版主

漫步烟雨

Rank: 7Rank: 7Rank: 7

积分
479
人气
25 点
钻石粒
417 粒
贡献
0 点
论坛币
89 个
爱心
0 点

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

QQ
[1.12.2][ECMA] 粒子翅膀 —— 帧数暴跌之翼[复制链接]
发表于 2019-4-29 08:21:56 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 0.1
适用版本: 1.12.2 
编写语言: ECMA
最后更新: 2019-04-29
代码版权: 强版权

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

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

x
曾经有个人托我帮忙魔改一个插件,叫做什么CustomWings的。。。
我看了一下,插件很不错,帧数暴跌,真棒。
SpigotMC跳转
因为一次意外的相遇,我尝试了一下,是否可以通过CNPC脚本的方式进行呢?
(结果,意外的还可以?)

目前的脚本仅作为测试向的发布,未加入更多功能,后期会随时更新
翅膀可以根据设置进行各种自定义,虽然很繁琐,但是效果很真实(真实到掉帧)。

制作耗时:2小时不到 (朝向的算法琢磨了10分钟...)

效果图:
未标题-1.png

好了,上代码:
//翅膀更新间隔(0为实时)
var pi = 0;

function keyPressed(e){
    //当玩家点击~键
    if(e.key==41){
        //若91号计时器存在(91号默认为翅膀更新ID,可自行修改)
        if(e.player.timers.has(91)){
            //关闭91号计时器
            e.player.timers.reset(91);
            e.player.timers.stop(91);
        }else{
            //启动91号计时器
            e.player.timers.forceStart(91,pi,true);
        }
    }
}

function timer(e){
    //若计时器触发号为91
    if(e.id==91){
        var p = e.player;
        //设置翅膀
        var w = wing[0];
        //遍历翅膀粒子对应各行
        for(var i = 1;i<w.line.length+1;i++){
            //遍历翅膀粒子指定行的粒子对应搜索字
            for(var j = 0;j<w.line[w.line.length-i].split(",").length;j++){
                //遍历粒子条目
                for(var k = 0;k<w.particle.length;k++){
                    //如果当前粒子搜索字为对应条目搜索字
                    if(w.line[w.line.length-i].split(",")[j]==w.particle[k].name){
                        //生成左翅膀
                        p.world.spawnParticle(w.particle[k].type, p.x+(w.setting.distanceFromPlayer+w.setting.distanceBetweenParticles*j)*Math.sin((e.player.getRotation()+45)*3.14/180), p.y+(w.setting.startingY+(w.setting.distanceBetweenY*i)), p.z-(w.setting.distanceFromPlayer+w.setting.distanceBetweenParticles*j)*Math.cos((e.player.getRotation()+45)*3.14/180), 0, 0, 0, 0, 1);
                        //生成右翅膀
                        p.world.spawnParticle(w.particle[k].type, p.x+(w.setting.distanceFromPlayer+w.setting.distanceBetweenParticles*j)*Math.sin((e.player.getRotation()-45)*3.14/180), p.y+(w.setting.startingY+(w.setting.distanceBetweenY*i)), p.z-(w.setting.distanceFromPlayer+w.setting.distanceBetweenParticles*j)*Math.cos((e.player.getRotation()-45)*3.14/180), 0, 0, 0, 0, 1);
                    }
                }
            }
        }
    }
}


???怎么只有这么点,好像...没看到有翅膀设置相关???

别急,下面是翅膀设置:
//翅膀总条目
var wing = [
    {
        //翅膀名称
        name: "天使之翼",
        //翅膀总项设置
        setting:{
            //翅膀生成高度
            startingY: -0.2,
            //与玩家的距离
            distanceFromPlayer: 0.2,
            //粒子高度距离
            distanceBetweenY: 0.1,
            //粒子宽度距离
            distanceBetweenParticles: 0.08
        },
        //粒子搜索条目
        particle:[
            {
                //粒子搜索字
                name: "x" ,
                //粒子对应名称
                type: "enchantmenttable"
            },
        ],
        //翅膀粒子
        line:[
            "-,-,-,-,x,x,x,-,-,-",
            "-,-,-,x,x,x,x,x,-,-",
            "-,-,x,x,x,x,x,x,x,-",
            "-,x,x,x,x,x,x,x,x,-",
            "x,x,x,x,x,x,x,x,x,x",
            "x,x,x,x,x,x,x,x,x,x",
            "x,x,x,x,x,x,x,x,x,x",
            "x,x,x,x,x,x,x,x,x,x",
            "-,-,x,x,x,x,x,x,x,x",
            "-,-,-,x,x,x,x,x,x,x",
            "-,-,-,x,x,x,x,x,x,x",
            "-,-,-,-,x,x,x,x,x,x",
            "-,-,-,-,x,x,x,x,x,x",
            "-,-,-,-,-,x,x,x,x,-",
            "-,-,-,-,-,x,x,x,x,-",
            "-,-,-,-,-,-,x,x,x,-",
            "-,-,-,-,-,-,x,x,x,-",
            "-,-,-,-,-,-,-,x,x,-",
            "-,-,-,-,-,-,-,-,x,-",
        ]
    },{
        name: "恶魔之翼",
        setting:{
            startingY: 0.6,
            distanceFromPlayer: 0.2,
            distanceBetweenY: 0.1,
            distanceBetweenParticles: 0.1
        },
        particle:[
            {name: "x" ,type: "reddust"},
            {name: "+" ,type: "flame"},
        ],
        line:[
            "-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,x,+",
            "-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,x,+,-",
            "-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,x,+,-,-",
            "-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,x,x,x,-,-,-",
            "-,-,-,-,-,-,-,-,-,-,-,-,-,-,x,x,x,+,-,-,-",
            "-,-,-,-,-,-,-,-,-,-,-,-,-,x,x,x,+,-,-,-,-",
            "-,-,-,-,-,-,-,-,-,-,-,x,x,x,x,+,-,-,-,-,-",
            "-,-,-,-,-,-,-,-,-,-,x,x,x,+,-,-,-,-,x,+,-",
            "-,-,-,-,-,-,-,-,-,x,x,x,+,-,-,-,x,x,+,-,-",
            "-,-,-,-,-,-,-,x,x,x,+,-,-,-,-,x,x,+,-,-,-",
            "-,-,-,-,-,-,x,x,+,-,-,-,-,x,x,+,-,-,-,-,-",
            "-,-,-,-,x,x,x,+,-,-,-,x,x,x,+,-,-,-,-,-,-",
            "-,-,-,x,x,+,-,-,-,x,x,x,+,-,-,-,-,-,-,-,-",
            "-,-,x,x,x,-,-,x,x,x,+,-,-,-,-,-,x,+,-,-,-",
            "-,-,-,x,x,x,x,x,+,-,-,-,-,x,x,x,+,-,-,-,-",
            "-,-,-,-,x,x,x,+,-,-,x,x,x,x,+,-,-,-,-,-,-",
            "-,-,-,-,x,x,x,-,-,x,x,x,+,-,-,-,-,-,-,-,-",
            "-,-,-,-,-,x,x,x,x,x,+,-,-,-,-,x,+,-,-,-,-",
            "-,-,-,-,-,x,x,x,+,-,-,-,x,x,x,+,-,-,-,-,-",
            "-,-,-,-,x,x,x,+,-,-,-,x,x,+,-,-,-,-,-,-,-",
            "-,-,-,-,x,x,x,-,-,x,x,+,-,-,-,-,-,-,-,-,-",
            "-,-,-,x,x,x,x,x,x,x,+,-,-,-,-,-,-,-,-,-,-",
            "x,x,x,x,x,x,x,x,-,-,-,-,-,-,-,-,-,-,-,-,-",
            "-,x,x,-,-,-,x,x,-,-,-,-,-,-,-,-,-,-,-,-,-",
            "-,-,x,x,-,-,-,x,x,-,-,-,-,-,-,-,-,-,-,-,-",
            "-,-,-,x,x,-,-,-,x,x,-,-,-,-,-,-,-,-,-,-,-",
            "-,-,-,-,x,x,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-",
        ]
    },
];



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


(掉帧的微笑...)

评分

参与人数 4人气 +4 钻石粒 +10 收起 理由
小坤 + 1 很牛逼啊
xu1185461366 + 10
Hueihuea + 1 不错
Guai_Shou + 2 很给力!

查看全部评分



回复

使用道具 举报

1

主题

6

帖子

36

积分

论坛萌新

Rank: 1

积分
36
人气
0 点
钻石粒
33 粒
贡献
0 点
论坛币
7 个
爱心
0 点

论坛注册会员

发表于 2019-4-29 11:18:42 | 显示全部楼层
绝了....,我怎么没有想过这种方法来生成粒子...
回复

使用道具 举报

10

主题

17

帖子

479

积分

大区版主

漫步烟雨

Rank: 7Rank: 7Rank: 7

积分
479
人气
25 点
钻石粒
417 粒
贡献
0 点
论坛币
89 个
爱心
0 点

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

QQ
发表于 2019-4-29 14:00:57 | 显示全部楼层
sky_bai 发表于 2019-4-29 11:18
绝了....,我怎么没有想过这种方法来生成粒子...

哈哈哈,毕竟每个人的想法不同,所以就想不到一些相对好的点子


回复

使用道具 举报

20

主题

36

帖子

588

积分

萌新

Ko no Hueihuea da!!!!!!!!!!!!!

Rank: 10Rank: 10Rank: 10

积分
588
人气
29 点
钻石粒
78 粒
贡献
10 点
论坛币
92 个
爱心
0 点

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

QQ
发表于 2019-4-30 18:36:48 | 显示全部楼层
代码不错XD
设计也挺新奇的
想提的建议的是
增加x轴 也就是让翅膀有厚度
回复

使用道具 举报

0

主题

1

帖子

4

积分

论坛萌新

Rank: 1

积分
4
人气
0 点
钻石粒
4 粒
贡献
0 点
论坛币
1 个
爱心
0 点
发表于 2019-6-29 01:52:23 | 显示全部楼层
1.7.10可以用吗
回复

使用道具 举报

10

主题

17

帖子

479

积分

大区版主

漫步烟雨

Rank: 7Rank: 7Rank: 7

积分
479
人气
25 点
钻石粒
417 粒
贡献
0 点
论坛币
89 个
爱心
0 点

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

QQ
发表于 2019-7-5 21:39:26 | 显示全部楼层

1.7.10无法使用哦!抱歉。


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-9-19 01:53 , Processed in 0.084619 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部