切换风格

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

3

主题

6

帖子

222

积分

论坛萌新

Rank: 1

积分
222
人气
16 点
钻石粒
203 粒
贡献
0 点
论坛币
29 个
爱心
0 点

论坛注册会员

[1.12.2]简单的格挡反弹[复制链接]
发表于 2020-8-17 18:01:36 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.12.2
适用版本: 1.12.2 
编写语言: ECMA
最后更新: 2020-08-17
代码版权: 弱版权

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

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

x
本帖最后由 咸鱼羊 于 2020-8-17 18:03 编辑

纯新人一枚
第一次尝试写脚本
大致效果是手持有物品时右键格挡,判断时间0.5s,
格挡时伤害减半并反弹受到的一半伤害
因为不太熟悉脚本,所以很多地方使用的指令
function interact(e){
        var time = e.player.world.getScoreboard().getPlayerScore(e.player.name,"格挡计时",[]);
        if( e.player.getMainhandItem() !==null || e.player.getOffhandItem() !== null ){
                //*总不可能空手格挡吧?拿个面包也好啊?(82年法式长棍)
                if(time == 0){
                        e.player.world.getScoreboard().setPlayerScore(e.player.name,"格挡触发",1,[]);
                        e.player.world.getScoreboard().setPlayerScore(e.player.name,"格挡计时",4,[]);
                        e.player.addPotionEffect(4,1,200,false);
                        e.API.executeCommand(e.player.world,"/execute "+e.player.name+" ~ ~ ~ particle enchantmenttable ~ ~0.5 ~ 1 0 1 0.1 150 normal @a")
                        e.API.executeCommand(e.player.world,"/execute "+e.player.name+" ~ ~ ~ playsound entity.armorstand.fall player @p ~ ~ ~ 16 0 0")
                }
        }
}
function damaged(e){
        var getit = e.player.world.getScoreboard().getPlayerScore(e.player.name,"格挡触发",[]);
        if (getit == 1){
                e.damage = e.damage * 0.5;
                e.source.setHealth((e.source.getHealth()-e.damage*0.5));
                e.player.world.getScoreboard().setPlayerScore(e.player.name,"格挡触发",0,[]);
                e.player.message("§b触发格挡伤害减半!受到伤害§f"+e.damage)
                e.player.message("§4格挡反弹伤害§f"+(e.damage*0.5))
                e.API.executeCommand(e.player.world,"/execute "+e.player.name+" ~ ~ ~ particle instantSpell ~ ~0.5 ~ 1 0 1 1 500 normal @a")
                e.API.executeCommand(e.player.world,"/execute "+e.player.name+" ~ ~ ~ playsound block.slime.hit player @p ~0 ~0 ~0 16 0 0")
        }
}
function tick(e){
        e.API.executeCommand(e.player.world,"/scoreboard objectives add 格挡计时 dummy 格挡计时")
        e.API.executeCommand(e.player.world,"/scoreboard objectives add 格挡触发 dummy 格挡触发")
        var time = e.player.world.getScoreboard().getPlayerScore(e.player.name,"格挡计时",[]);
        var getit = e.player.world.getScoreboard().getPlayerScore(e.player.name,"格挡触发",[]);
        if(time > 0){
                if(time <= 3 || getit == 1){
                        e.player.world.getScoreboard().setPlayerScore(e.player.name,"格挡触发",0,[]);
                        //*e.API.executeCommand(e.player.world,"/execute "+e.player.name+" ~ ~ ~ playsound entity.armorstand.place player @p ~ ~ ~ 16 0 0")备用的结束音效,开启后会刚好在约4s后播放完音效(其实是个bug
                }
                e.player.world.getScoreboard().setPlayerScore(e.player.name,"格挡计时",time - 1,[]);
        }
}

评分

参与人数 3人气 +10 钻石粒 +120 收起 理由
思望文宣 + 4 + 40 活的
Hueihuea + 4 + 40 活人
star丶星 + 2 + 40 ohhhhhhhhhhh

查看全部评分

我不是一个合格的咸鱼
现在不是,一会就是。
回复

使用道具 举报

4

主题

22

帖子

454

积分

注册会员

Rank: 2

积分
454
人气
7 点
钻石粒
644 粒
贡献
1 点
论坛币
101 个
爱心
0 点

论坛注册会员

发表于 2020-8-17 18:41:43 | 显示全部楼层
是新帖,还有新人!还有新代码!好强,我爱了!
我是憨批
回复

使用道具 举报

3

主题

6

帖子

222

积分

论坛萌新

Rank: 1

积分
222
人气
16 点
钻石粒
203 粒
贡献
0 点
论坛币
29 个
爱心
0 点

论坛注册会员

发表于 2020-8-17 19:00:37 | 显示全部楼层
star丶星 发表于 2020-8-17 18:41
是新帖,还有新人!还有新代码!好强,我爱了!

谢谢,有被吓到。
我不是一个合格的咸鱼
现在不是,一会就是。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-9-19 06:40 , Processed in 0.079820 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部