//粘贴至 脚本方块 中
var time=100;//延迟爆炸,100ticks≈5秒
var range=10;//爆炸范围
var breakBlock=true;//是否破坏方块
var fire=true;//是否着火
var message_range=20;//距离内发送提示
var breakScriptBlock=false;//脚本方块是否会被炸毁
var IPlayer=Java.type("noppes.npcs.api.entity.IPlayer");
function exploded(event){
if(!breakScriptBlock){
event.setCanceled(true);
}
}
function init(e){
var block=e.block;
var store=block.getStoreddata();
if(!store.has("canInteract")){
store.put("canInteract","true");
}
block.setModel("minecraft:tnt");
var text=e.block.getTextPlane();
text.setScale(4);
text.setOffsetX(0);
text.setOffsetY(0.25);
text.setOffsetZ(0.1);
text.setText("&4超级TNT");
block.timers.stop(887);
block.timers.stop(886);
}
function timer(e){
var block=e.block;
if(e.id==887){
block.world.spawnParticle("largesmoke",block.x+0.5,block.y+1.2,block.z+0.5,0,0,0,10,0.5);
}
if(e.id==886){
messageRangePlayer(block.getPos(),block.world,message_range,"§5§l[超级TNT]§4嘭!");
block.timers.stop(887);
block.timers.stop(886);
block.world.explode(block.x,block.y,block.z,range,fire,breakBlock);
block.getStoreddata().put("canInteract","true");
}
}
function interact(e){
var block=e.block;
var store=block.getStoreddata();
var canInteract=eval(store.get("canInteract"));
if(canInteract){
block.timers.forceStart(887,1,true);
block.timers.forceStart(886,time,false);
store.put("canInteract","false");
messageRangePlayer(block.getPos(),block.world,message_range,"§5§l[超级TNT]§4超级TNT §6"+time/20+" §4秒后爆炸!");
}
}
function messageRangePlayer(pos,world,range,message){
var players=world.getNearbyEntities(pos,range,range);
for(var count=0;count<players.length;count++){
if(players[count] instanceof IPlayer){
players[count].message(message);
}
}
}
|