还是有一定缺陷的,因此我又研究出了另外一种方法,在多人枪战以及单人枪战均可使用哦。
首先还是L4D2中的坑爹图片。。。
然后又是一堆僵尸。。。 注意发射出去的雪球,上面有火哦 但是这并不是重点,火球只是画面渲染,并没有加大威力。
不一会就杀了一只僵尸。 终于它们被消灭了。 铁块那里的是title标题,其他的为整体图 1.思路分析 我们知道雪球发射是没有威力的,所以我们需要让雪球有威力。 首先我们要了解雪球的NBT标签,很简单 /entitydata @e[type=Snowball] {} 复制代码 这样我们就知道雪球NBT标签了。(注意{}必须打,代表一个空虚的NBT) 然后会出现这样一段话: [10:24:05] 数据标签未更改:{yTile:-1s,ownerName:"最强灬神话",UUIDLeast:-8738845387748348414L,Motion:[0:0.004025829317039583d,1:-1.5212842662955777d,2:-0.0030549332223299202d,],OnGround:0b,UUIDMost:-120784408820759814L,inGround:0b,shake:0b,Dimension:0,inTile:"",Air:300s,Pos:[0:-292.48389513720934d,1:4.013652273378782d,2:-859.6490612954307d,],PortalCooldown:0,Fire:0s,xTile:-1s,zTile:-1s,FallDistance:0.0f,Rotation:[0:127.192535f,1:-89.80579f,],Invulnerable:0b,} 复制代码 但是我们无法找到有关于威力的NBT标签,只有一个“Fire:0s”可能可以改变威力,但是不行。这只能让雪球附上一团火,更加好看。 所以得出结论:雪球的威力并不是0,而是没有威力,我们无法直接改变雪球的威力,因此要从怪物/玩家身上考虑。 首先了解怪物NBT(玩家无法entitydata) 出现这样一段话: [10:36:33] 数据标签未更改:{ConversionTime:-1,DropChances:[0:0.085f,1:0.085f,2:0.085f,3:0.085f,4:0.085f,],UUIDLeast:-4641943380614696668L,Attributes:[0:{Name:"generic.maxHealth",Base:20.0d,},1:{Name:"generic.knockbackResistance",Base:0.0d,Modifiers:[0:{Name:"Random spawn bonus",UUIDLeast:-4825598797627943558L,Operation:0,Amount:0.037188375191764766d,UUIDMost:-3321992349518967195L,},],},2:{Name:"generic.movementSpeed",Base:0.23000000417232513d,},3:{Name:"generic.followRange",Base:35.0d,Modifiers:[0:{Name:"Random spawn bonus",UUIDLeast:-7437413352283232182L,Operation:1,Amount:0.006604130929424228d,UUIDMost:-7826899445975594729L,},],},4:{Name:"generic.attackDamage",Base:3.0d,},5:{Name:"zombie.spawnReinforcements",Base:0.056160382254570276d,},],Motion:[0:0.0d,1:-0.0784000015258789d,2:0.0d,],Health:20s,HealF:20.0f,Fire:-1s,Invulnerable:0b,DeathTime:0s,CanBreakDoors:0b,AbsorptionAmount:0.0f,Equipment:[0:{},1:{},2:{},3:{},4:{},],OnGround:1b,HurtTime:0s,UUIDMost:847228973238405126L,HurtByTimestamp:0,Dimension:0,Air:300s,Pos:[0:-292.69999998807907d,1:1.0d,2:-859.6999999880791d,],CanPickUpLoot:0b,PortalCooldown:0,PersistenceRequired:0b,Leashed:0b,FallDistance:0.0f,Rotation:[0:17.772747f,1:0.0f,],} 复制代码 其中有个地方:“HurtTime:0s” 这个NBT意思是受攻击变红的时间,0s代表最近没有被攻击(引自MinecraftWiki) 所以从这里下手。 首先创建高频和dummy变量1。 scoreboard players set @e[type=Zombie] 1 1 {HurtTime:8s} 复制代码 把“受伤”的僵尸加分。 (1.)简单模式 kill @e[type=Zombie,score_1_min=1] 复制代码 杀死“受伤”的僵尸即可。 雪球攻击可以让僵尸变红哦。 (2.)普通以上 entitydata @e[type=Zombie,score_1_min=1,score_1=1] {ActiveEffects:[{Id:6,Duration:1,Amplifier:1}]} 复制代码 给变红的僵尸1秒瞬间补血(伤害)。 scoreboard players set @e[type=Zombie,score_1_min=1,score_1=1] 1 2 {ActiveEffects:[{Id:6b,Amplifier:1b}]} 复制代码 迅速把有瞬间补血的僵尸加分到2防止死亡。 然后我们要用到比较器高频(用命令方块高频无效) scoreboard players set @e[type=Zombie,score_1_min=2] 1 0 复制代码 把分数为2的僵尸分数设为0。 注意刚刚刷出的僵尸没有分数,会导致机器失效,所以要用命令方块高频给僵尸分数+0,让僵尸初始分数为0. scoreboard players add @e[type=Zombie] 1 0 复制代码 这样就可以了。 如果要让雪球带火的话: entitydata @e[type=Snowball] {Fire:20s} 复制代码 Fire打多少无所谓但是填1,2什么的无效要大一点。 拓展:既然是HurtTime那么如果近距离攻击用手撸的话一样可以,就像L4D2中的主武器逼退一样,如果要实现逼退可以将半径为n的僵尸扣血即可,加大游戏的可玩性,如果不想这样的话可以创建damageTaken变量,用手撸这个变量会加分,这样就可以防止玩家手撸了。 2.多人PVP 用一样的方法,HurtTime是可以探测玩家的,仍然可以实现攻击。用之前讲的方法即可。 最后是title标题: 01.title @p title {text:"!",color:yellow,extra:[{text:"最强灬神话警报僵尸群",color:red}]} 02.title @p subtitle {text:"!",color:yellow,extra:[{text:"它们来了...",color:red}]}
一哥手游平台是重庆一哥手游科技公司旗下手机游戏玩家平台,以精品运营为理念,以贴心服务为宗旨,致力于为各种不同渠道与玩家打造好玩的手机游戏服务平台,同时免费提供丰富的手机游戏下载,立志成为国内一流的综合性手机游戏娱乐平台,不断追求更加卓越的品质!一哥手游!
|