Advertisement
GALAXYCOMET2002

Mongara Camp - Splat Zones v0.1 Map Script

Jun 1st, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var map = match.getMap();
  2. var world = match.getWorld();
  3. var allBlockCount = 0;
  4. var capturing = "";
  5. var teamLimeRemains = 100;
  6. var teamPinkRemains = 100;
  7. var tick;
  8. var timerFinish;
  9. var glass = map.getRegion("gl").getBlocks();
  10.  
  11. function SetHotbarItem(data,title) {
  12.     var item = createItemStack();
  13.     item.setType("STAINED_GLASS_PANE");
  14.     item.setData(data);
  15.     item.setName(title);
  16.     var players = match.getPlayers();
  17.     for (var i=0;i<players.length; i++) {
  18.         players[i].setItem(8,item);
  19.     }
  20. }
  21. match.on("start",function(){
  22.     //エリア全体のブロック数を計算
  23.     var regions = map.getRegion("sz");
  24.     console.log(regions.getId());
  25.     allBlockCount = regions.getBlocks().length;
  26.     console.log(allBlockCount);
  27.     //溺れる
  28.     setInterval(function(){
  29.     var players = match.getPlayers();
  30.     for (var i = 0; i < players.length; i++) {
  31.       var player = players[i];
  32.       if (player.getLocation()[1] < 7) {
  33.         var locate = player.getLocation();
  34.         player.teleport(locate[0],30,locate[2]);
  35.         player.kill();
  36.         if (player.getTeam().getId() == "lime") {
  37.             match.broadcast("`a" + player.getName() + "`r は溺れてしまった");
  38.         } else if (player.getTeam().getId() == "pink") {
  39.             match.broadcast("`d" + player.getName() + "`r は溺れてしまった");
  40.         }
  41.         world.playSound(locate[0],locate[1],locate[2],"anvil_land",10,1);
  42.       }
  43.     }
  44.   },100);
  45.   //ゲーム終了タイマー
  46.     timerFinish = setTimeout(function(){
  47.         clearInterval(tick);
  48.         if (teamLimeRemains < teamPinkRemains) {
  49.             match.end(map.getTeam("pink"));
  50.         } else if (teamPinkRemains < teamLimeRemains) {
  51.             match.end(map.getTeam("lime"));
  52.         } else {
  53.             match.end();
  54.         }
  55.     },300000);
  56.     //毎回処理
  57.     tick = setInterval(function(){
  58.         var teamLimeWoolCount = 0;
  59.         var teamPinkWoolCount = 0;
  60.         regions = map.getRegion("sz");
  61.         var blocks = regions.getBlocks();
  62.         for (var j=0; j<blocks.length; j++) {
  63.             if (blocks[j].getData() == 14) {
  64.                 teamPinkWoolCount++;
  65.             } else if (blocks[j].getData() == 5) {
  66.                 teamLimeWoolCount++;
  67.             }
  68.         }
  69.         console.log("Lime:" + teamLimeWoolCount + " Pink:" + teamPinkWoolCount);
  70.         if (teamLimeWoolCount > allBlockCount - 12 && capturing == "") {
  71.             teamLimeRemains--;
  72.             match.broadcast("`aLimeがガチエリアを確保!Lime Team has been captured the Splat Zones!");
  73.             for (var i=0;i<glass.length;i++) {
  74.                 glass[i].setData(5);
  75.             }
  76.             SetHotbarItem(5,"§aNow Capturing : Lime");
  77.             var blocks = regions.getBlocks();
  78.             for (var j=0;j<blocks.length;j++) {
  79.                 blocks[j].setData(5);
  80.                 world.playParticle(blocks[j].getX(),19,blocks[j].getZ(),"HEART",1,1,2);
  81.             }
  82.             capturing = "lime";
  83.         } else if (teamLimeWoolCount <= allBlockCount - 20 && capturing == "lime") {
  84.             match.broadcast("`dPinkがカウントストップした!Pink Team has been stopped Lime`s capturing!");
  85.             for (var i=0;i<glass.length;i++) {
  86.                 glass[i].setData(0);
  87.             }
  88.             SetHotbarItem(0,"Splat Zones are neutral");
  89.             var blocks = regions.getBlocks();
  90.             for (var j=0;j<blocks.length;j++) {
  91.                 world.playParticle(blocks[j].getX(),19,blocks[j].getZ(),"CLIT",1,1,10);
  92.             }
  93.             capturing = "";
  94.         } else if (teamLimeWoolCount > allBlockCount - 12 && capturing == "lime") {
  95.             match.broadcast("`aLime " + --teamLimeRemains + "  `dPink " + teamPinkRemains);
  96.         }
  97.         if (teamPinkWoolCount > allBlockCount - 12 && capturing == "") {
  98.             teamPinkRemains--;
  99.             match.broadcast("`dPinkがガチエリアを確保!Pink Team has been captured the Splat Zones!");
  100.             for (var i=0;i<glass.length;i++) {
  101.                 glass[i].setData(6);
  102.             }
  103.             SetHotbarItem(6,"§dNow Capturing : Pink");
  104.             var blocks = regions.getBlocks();
  105.             for (var j=0;j<blocks.length;j++) {
  106.                 blocks[j].setData(14);
  107.                 world.playParticle(blocks[j].getX(),19,blocks[j].getZ(),"HEART",1,1,5);
  108.             }
  109.             capturing = "pink";
  110.         } else if (teamPinkWoolCount <= allBlockCount - 20 && capturing == "pink") {
  111.             match.broadcast("`aLimeがカウントストップした!Lime Team has been stopped Lime`s capturing!");
  112.             for (var i=0;i<glass.length;i++) {
  113.                 glass[i].setData(0);
  114.             }
  115.             SetHotbarItem(0,"Splat Zones are neutral");
  116.             var blocks = regions.getBlocks();
  117.             for (var j=0;j<blocks.length;j++) {
  118.                 world.playParticle(blocks[j].getX(),19,blocks[j].getZ(),"CRIT",1,1,10);
  119.             }
  120.             capturing = "";
  121.         } else if (teamPinkWoolCount > allBlockCount - 12 && capturing == "pink") {
  122.             match.broadcast("`dPink " + --teamPinkRemains + "  `aLime " + teamLimeRemains);
  123.         }
  124.         if (teamLimeRemains == 0) {
  125.             clearInterval(tick);
  126.             clearTimeout(timerFinish);
  127.             match.end(map.getTeam("lime"));
  128.         }
  129.         if (teamPinkRemains == 0) {
  130.             clearInterval(tick);
  131.             clearTimeout(timerFinish);
  132.             match.end(map.getTeam("pink"));
  133.         }
  134.     },1000);
  135. });
  136. match.on("respawn",function(e){
  137.     var player = e.getPlayer();
  138.     console.log(player.getName() + " Respawned");
  139.     var item = createItemStack();
  140.     item.setType("STAINED_GLASS_PANE");
  141.     if (capturing == "lime") {
  142.         item.setData(5);
  143.         item.setName("§aNow Capturing : Lime");
  144.     } else if (capturing == "pink") {
  145.         item.setData(6);
  146.         item.setName("§dNow Capturing : Pink");
  147.     } else {
  148.         item.setName("Splat Zones are neutral");
  149.     }
  150.     player.setItem(8,item);
  151. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement