# CC Plethora Stuff

Jun 19th, 2021 (edited)
567
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. mode="followSwing"
2. ni=peripheral.wrap("back")
3.
4. function getAngle(x,y)
5.     return (180/math.pi)*math.atan(y,x)
6. end
7.
8. function getDistance(block)
9.     vec=vector.new(block.x,block.y,block.z)
10.     return vec.length(vec)
11. end
12.
13. function swing()
14.     while true do
15.         ni.swing()
16.     end
17. end
18.
19. function use()
20.     while true do
21.         ni.use()
22.     end
23. end
24.
25. function moveTo(x,y,z,power)
26.     pitch = -math.atan2(y, math.sqrt(x * x + z * z))
27.     yaw = math.atan2(-x, z)
28.     ni.launch(math.deg(yaw),math.deg(pitch),power)
29. end
30.
31. function moveToBlock(filter,meta)
32.     while true do
33.         blocks={}
34.         ni.canvas3d().clear()
35.         c3d=ni.canvas3d().create()
36.         --c3d.recenter()
37.         for _, block in pairs(ni.scan()) do
38.             if string.find(block.name,filter) and block.metadata==meta then
39.                 table.insert(blocks,block)
40.             end
41.
42.         end
43.         table.sort(blocks,function(a,b) return getDistance(a)<getDistance(b) end)
44.         if #blocks>0 then
45.             block=blocks[1]
46.             msg=(("The block at %d, %d, %d is %s"):format(block.x, block.y, block.z, block.name))
47.             ni.tell(msg)
48.             pitch = -math.atan2(block.y, math.sqrt(block.x * block.x + block.z * block.z))
49.             yaw = math.atan2(-block.x, block.z)
50.             ni.fire(math.deg(yaw),math.deg(pitch),5)
52.             --moveTo(block.x,block.y,block.z)
53.             print(msg)
54.         end
55.         sleep(0.5)
56.     end
57. end
58.
59. function follow(mobfilter)
60.     while true do
61.         mobs=ni.sense()
62.         mobs=filterArray(mobs,mobFilter)
63.         table.sort(mobs,function(a,b) return getDistance(a)<getDistance(b) end)
64.         if #mobs>1 then
65.             mob=mobs[1]
66.             if getDistance(mob)<4 and getDistance(mob)>1 then
67.                 msg=(("The mob at %d, %d, %d is %s"):format(mob.x, mob.y, mob.z, mob.name))
68.                 pitch = -math.atan2(mob.y, math.sqrt(mob.x * mob.x + mob.z * mob.z))
69.                 yaw = math.atan2(-mob.x, mob.z)
70.                 ni.look(math.deg(yaw),math.deg(pitch))
71.                 moveTo(mob.x,mob.y,mob.z,0.5)
72.                 print(msg)
73.             end
74.         end
75.         sleep(0.1)
76.     end
77. end
78.
79. function followSwing(mobfilter)
80.     while true do
81.         mobs=ni.sense()
82.         mobs=filterArray(mobs,mobFilter)
83.         table.sort(mobs,function(a,b) return getDistance(a)<getDistance(b) end)
84.         if #mobs>1 then
85.             mob=mobs[2]
86.             if getDistance(mob)<2 and getDistance(mob)>1 then
87.                 msg=(("The mob at %d, %d, %d is %s"):format(mob.x, mob.y, mob.z, mob.name))
88.                 pitch = -math.atan2(mob.y, math.sqrt(mob.x * mob.x + mob.z * mob.z))
89.                 yaw = math.atan2(-mob.x, mob.z)
90.                 ni.look(math.deg(yaw),math.deg(pitch))
91.                 moveTo(mob.x,mob.y,mob.z,0.5)
92.                 print(msg)
93.             else
94.                 for is=1,10 do
95.                     ni.swing()
96.                 end
97.             end
98.         end
99.         sleep(0.1)
100.     end
101. end
102.
103. function filterArray(iArray,iFilter)
104.     oArray={}
105.     for iA=1, #iArray do
106.         if string.find(iFilter,iArray[iA].name)==nil then
107.             table.insert(oArray,iArray[iA])
108.         end
109.     end
110.     return oArray
111. end
112.
113. mobFilter="ecco7777ItemAlphaCyclesplethora:laserxp_orb_bigxp_orb_smallspiritArrow"
114. function autoKill(filter)
115.     while true do
116.         mobs=ni.sense()
117.         ni.canvas3d().clear()
118.         c3d=ni.canvas3d().create()
119.         --c3d.recenter()
120.         mobs=filterArray(mobs,mobFilter)
121.         table.sort(mobs,function(a,b) return getDistance(a)<getDistance(b) end)
122.         if #mobs>0 then
123.             mob=mobs[1]
124.             msg=(("The mob at %d, %d, %d is %s"):format(mob.x, mob.y, mob.z, mob.name))
125.             ni.tell(msg)
126.             pitch = -math.atan2(mob.y, math.sqrt(mob.x * mob.x + mob.z * mob.z))
127.             yaw = math.atan2(-mob.x, mob.z)
128.             ni.fire(math.deg(yaw),math.deg(pitch),5)
130.             --moveTo(mob.x,mob.y,mob.z)
131.             print(msg)
132.         end
133.         sleep(0.1)
134.     end
135. end
136.
137. function autoSwing(filter)
138.     while true do
139.         mobs=ni.sense()
140.         ni.canvas3d().clear()
141.         c3d=ni.canvas3d().create()
142.         --c3d.recenter()
143.         mobs=filterArray(mobs,mobFilter)
144.         table.sort(mobs,function(a,b) return getDistance(a)<getDistance(b) end)
145.         if #mobs>1 then
146.             mob=mobs[1]
147.             if getDistance(mob)<4 then
148.                 msg=(("The mob at %d, %d, %d is %s"):format(mob.x, mob.y, mob.z, mob.name))
149.                 ni.tell(msg)
150.                 pitch = -math.atan2(mob.y, math.sqrt(mob.x * mob.x + mob.z * mob.z))
151.                 yaw = math.atan2(-mob.x, mob.z)
152.                 ni.look(math.deg(yaw),math.deg(pitch))
153.                 ni.swing()
155.                 --moveTo(mob.x,mob.y,mob.z)
156.                 print(msg)
157.             end
158.         end
159.         sleep(0.1)
160.     end
161. end
162.
163. function fire()
164.     ni.fire(meta.yaw,meta.pitch,5)
165. end
166.
167. function split (inputstr, sep)
168.     if sep == nil then
169.             sep = "%s"
170.     end
171.     local t={}
172.     for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
173.             table.insert(t, str)
174.     end
175.     return t
176. end
177.
179.     fp=fs.open(filename,"r")
180.     lines={}
181.     i=1
183.     while lines[i]~=nil do
184.         i=i+1
186.     end
187.     return lines
188. end
189.
190. function compileObj(lines)
191. v = {}
192. vt = {}
193. vn = {}
194. f = {}
195. l = {}
196. print(#lines)
197.     for i=5, #lines do
198.         if string.sub(lines[i],1,2)=="v " then
199.             table.insert(v,split(lines[i]))
200.         end
201.         if string.sub(lines[i],1,2)=="vt" then
202.             table.insert(vt,split(lines[i]))
203.         end
204.         if string.sub(lines[i],1,2)=="vn" then
205.             table.insert(vn,split(lines[i]))
206.         end
207.         if string.sub(lines[i],1,2)=="f " then
208.             table.insert(f,split(lines[i]))
209.         end
210.         if string.sub(lines[i],1,2)=="l " then
211.             table.insert(l,split(lines[i]))
212.         end
213.     end
214. end
215.
216. function showModel()
218.     br=10
219.     line=1
220.     ni.canvas3d().clear()
221.     c3d=ni.canvas3d().create()
222.         for mi=1, 5000 do
223.             i=math.random(1,#v)
224.             i2=math.random(1,#v)
226.         end
227. end
228.
229. function displayImage()
230.     l=2
231.     br=1
232.     xOff=0
233.     yOff=0
234.     --shell.run(file)
236.     color=bild.color
237.     ni.canvas().clear()
238.     cvs=ni.canvas()
239.     --fp=fs.open(file,"r")
240.     xMax=#color
241.     yMax=#color[1]
242.     for y=1,xMax do
243.         for x=1,yMax do
245.             pixel.setColor(color[x][y])
246.             pixel.setAlpha(br*0xff)
247.         end
248.     end
249. end
250.
251. function debug()
252.     autoSwing(mobFilter)
253. end
254.
255. function keyevent()
256.     while true do
257.         e,val=os.pullEvent()
258.         if e=="key" then
259.             if val==57 then
260.                 debug()
261.             end
262.         end
263.     end
264. end
265.
266. function main()
267.     if mode=="" then
268.
269.     end
270.     if mode=="followSwing" then
271.         mobFilter="ItemAlphaCyclesplethora:laserxp_orb_bigxp_orb_smallspiritArrowThrownPotionbotania:magicMissilebotania:magicLandmine"
272.         followSwing(mobFilter)
273.     end
274.     if mode=="model" then
275.         showModel()
276.     end
277.     if mode=="autoSwing" then
278.         mobFilter="ecco7777ItemAlphaCyclesplethora:laserxp_orb_bigxp_orb_smallspiritArrowThrownPotionbotania:magicMissilebotania:magicLandmine"
279.         autoSwing(mobFilter)
280.     end
281.     if mode=="follow" then
282.         mobFilter="ItemAlphaCyclesplethora:laserxp_orb_bigxp_orb_smallspiritArrow"
283.         follow(filter)
284.     end
285.
286. end
287.
288. main()
RAW Paste Data