This repository has been archived by the owner on Jan 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 710
/
Copy pathLuckyBlock_tombailey94.js
173 lines (141 loc) · 5.75 KB
/
LuckyBlock_tombailey94.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//LuckyBlock mod by tombailey94; with credit to PlayerInDistress (http://www.minecraftforum.net/topic/2031111-164-lucky-block-drops-items-spawns-mobs-structures-and-more/) and NOAHZ (http://www.minecraftforum.net/topic/2174428-noahzdarkdiaminers-modscripts-new-darkdiamondminers-mods/)
// version 0.0.6
var goldId = 41;
function destroyBlock(x, y, z, side) {
var blockId = Level.getTile(x, y, z);
if (blockId == goldId) {
var rnd = random(0, 9);
if (rnd == 0 || rnd == 1) {
rnd = random(0, 4);
var mobs = [];
if (rnd == 0) { //creepers
mobs.push(33);
} else if (rnd == 1) { //zombie pigmen
mobs.push(32);
} else if (rnd == 2) { //skeletons
mobs.push(34);
} else if (rnd == 3) { //spiders
mobs.push(35);
} else { //all of the above
mobs.push(33);
mobs.push(32);
mobs.push(34);
mobs.push(35);
}
for (var i in mobs) {
for (var j = 0; j < 4; j++) {
var xIncrement = (j % 2 == 0 ? 4 : -4);
var zIncrement = ((j == 0 || j == 1) ? 4 : -4);
Level.spawnMob(x+xIncrement, y, z+zIncrement, mobs[i]);
}
}
} else if (rnd > 1 && rnd < 9) {
rnd = random(0, 12);
if (rnd == 0) { //compass and clock
Level.dropItem(x,y,z,0,345,1,0);
Level.dropItem(x,y,z,0,347,1,0);
} else if (rnd == 1) { //bow and arrows
Level.dropItem(x,y,z,0,261,1,0);
Level.dropItem(x,y,z,0,262,64,0);
} else if (rnd == 2) { //leather armour (cap and tunic)
Level.dropItem(x,y,z,0,298,1,0);
Level.dropItem(x,y,z,0,299,1,0);
} else if (rnd == 3) { //leather armour (pants and boots)
Level.dropItem(x,y,z,0,300,1,0);
Level.dropItem(x,y,z,0,301,1,0);
} else if (rnd == 4) { //iron sword
Level.dropItem(x,y,z,0,267,1,0);
} else if (rnd == 5) { //stone sword
Level.dropItem(x,y,z,0,272,1,0);
} else if (rnd == 6) { //stone axe
Level.dropItem(x,y,z,0,275,1,0);
} else if (rnd == 7) { //carrots
Level.dropItem(x,y,z,0,391,random(1,6),0); //drop anywhere from 1 to 4 carrots
} else if (rnd == 6) { //apples
Level.dropItem(x,y,z,0,260,random(1,6),0); //drop anywhere from 1 to 3 apples
} else if (rnd == 7) { //emeralds
Level.dropItem(x,y,z,0,388,random(1,3),0); //drop anywhere from 1 to 3 emeralds
} else if (rnd == 8) { //diamond armour (helmet and leggings)
Level.dropItem(x,y,z,0,310,1,0);
Level.dropItem(x,y,z,0,312,1,0);
} else if (rnd == 9) { //diamond armour (chestplate and boots)
Level.dropItem(x,y,z,0,311,1,0);
Level.dropItem(x,y,z,0,313,1,0);
} else if (rnd == 10) { //lava bucket
Level.dropItem(x,y,z,0,327,1,0);
} else if (rnd == 11) { //mushroom stew
Level.dropItem(x,y,z,0,282,1,0);
} else { //diamonds and iron
Level.dropItem(x,y,z,0,264,random(1,3),0); //drop anywhere from 1 to 3 diamonds
Level.dropItem(x,y,z,0,265,random(1,5),0); //drop anywhere from 1 to 6 iron
}
} else {
rnd = random(0,4);
var playerX = Player.getX();
var playerY = Player.getY();
var playerZ = Player.getZ();
if (rnd == 0) { //creates a jail type structure (with iron bars) and spawns flowing lava above the player's head
var xs = [playerX-1, playerX, playerX+1];
var zs = [playerZ-1, playerZ, playerZ+1];
for (var i = 0; i < xs.length; i++) {
for (var j = 0; j < zs.length; j++) {
if (i != Math.floor(xs.length/2) || j != Math.floor(zs.length/2)) { //don't do the centre block
Level.setTile(xs[i], playerY, zs[j], 101); //iron bars
Level.setTile(xs[i], playerY-1, zs[j], 101);
}
Level.setTile(xs[i], playerY-2, zs[j], 98); //stone floor
}
}
Level.setTile(playerX, playerY+2, playerZ, 10); //dat lava doe
clientMessage("Look up!");
} else if (rnd == 1) { //sandstone structure
var xs = [playerX-2, playerX-1, playerX, playerX+1, playerX+2];
var zs = [playerZ-2, playerZ-1, playerZ, playerZ+1, playerZ+2];
for (var i = 0; i < xs.length; i++) {
for (var j = 0; j < zs.length; j++) {
if ((i != 1 && j != 1 && j != 2 && j != 3) || (i != 2 && j != 1 && j != 2 && j != 3) || (i != 3 && j != 1 && j != 2 && j != 3)) { //don't do the 3x3 centre blocks
Level.setTile(xs[i], playerY, zs[j], 24);
Level.setTile(xs[i], playerY-1, zs[j], 24);
}
Level.setTile(xs[i], playerY-2, zs[j], 24);
}
}
Level.setTile(playerX+1, playerY-1, playerZ-1, goldId);
Level.setTile(playerX-1, playerY-1, playerZ+1, goldId);
Level.setTile(playerX-1, playerY-1, playerZ-1, goldId);
Level.setTile(playerX+1, playerY-1, playerZ+1, goldId);
} else if (rnd == 2) { //obsidian structure
var xs = [playerX-1, playerX, playerX+1];
var zs = [playerZ-1, playerZ, playerZ+1];
for (var i = 0; i < xs.length; i++) {
for (var j = 0; j < zs.length; j++) {
if (i == Math.floor(xs.length/2) && j == Math.floor(zs.length/2)) { //water for the centre blocks
Level.setTile(xs[i], playerY, zs[j], 9);
Level.setTile(xs[i], playerY-1, zs[j], 9);
} else {
Level.setTile(xs[i], playerY, zs[j], 20); //glass on eye level
Level.setTile(xs[i], playerY-1, zs[j], 49); //obsidian below eye level
}
Level.setTile(xs[i], playerY+1, zs[j], 49); //obsidian roof
Level.setTile(xs[i], playerY-2, zs[j], 49); //obsidian floor
}
}
} else if (rnd == 3) { //hole to the void (very evil :P)
for (var i = playerY; i >= 0; i--) {
for (var j = playerX-2; j < playerX+3; j++) {
for (var k = playerZ-2; k < playerZ+3; k++) {
Level.setTile(j, i, k, 0); //air
}
}
}
} else { //primed TnT
Level.spawnMob(x+1,y,z,65);
Level.spawnMob(x,y,z+1,65);
}
}
Level.destroyBlock(x,y,z,false); //destroy the gold block
}
}
function random(min, max) { //inclusive
return Math.floor(Math.random()*(max+1)+min);
}