Advertisement
Kirkq

Lawn Mower Script V6

Feb 11th, 2019
1,638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. --Here is my old WIP: http://dehacked.2y.net/microstorage.php/info/1990383037/Lawn_Mower%20Stage%203%203273.fm2
  2. --This script is setup for FCEUX
  3.  
  4. --Copy into file and save as LawnMowerScript.lua (Notepad++ can do this)
  5. --Please disregard the fact that this is coded like trash.
  6. --Source code also exists for the game. Rainbowism was messing around with it quite a bit. I have it somewhere.
  7.  
  8. local Base1= 0x0000
  9. local Base2 = 0x0001 --Per pixel in bar
  10. local CurrFuelAd2 = 0x00CB --Continuous
  11. local GrassesLeftAd = 0x00CC --Continuous
  12.  
  13. local XAd = 0x00EA --Also 0x00D8
  14. local XSubAd = 0x00E9
  15. local YAd = 0x00E8 --Also 0x00D2, 0x00D7
  16. local YSubAd = 0x00E7
  17.  
  18. local VelocityAd = 0x00D4
  19. local DoubleSubPxAd = 0x00D9
  20.  
  21. local Percentage = 0x00B2
  22. local Percentage2 = 0x00D1
  23. local NextFuelYAd = 0x00B7
  24. local NextFuelXAd = 0x00B8
  25. local FuelCounterAd = 0x00BC
  26.  
  27. local WHERETOGETAD = 0x00B5 -- Locking all two of these locks the fuel spawn, it sometimes goes invis as a side effect.
  28. local WHERETOGETAD2 = 0x00B6
  29.  
  30. local WHERETOGETAD3 = 0x00E3
  31.  
  32. local CurrFuelYAd = 0x00C0
  33. local CurrFuelXAd = 0x00C1
  34.  
  35. local GAME_CAM_X = 0x00D5
  36.  
  37. local CuttingGrassAnimAd = 0x00FD
  38. local Counter1 = 0x00FE -- This causes you to stop every 5th frame.
  39. local Counter2 = 0x00FF -- This is related to draining fuel. Locking it locks fuel.
  40.  
  41. local RandSeedAd = 0x00FD
  42.  
  43. local FuelHackThing = 0x00BE --Invisible Fuel Hack? Bad
  44.  
  45. local Grass1Ad = 0x40A --These are grass sprites, i think there are two types
  46. local Grass2Ad = 0x40B
  47. local Grass3Ad = 0x40C
  48. local Grass4Ad = 0x40D
  49.  
  50. local GAME_MAP_WDT = 0x00C9
  51.  
  52. local XX
  53. local YY
  54.  
  55. local x = {}
  56. local y = {}
  57.  
  58. local i
  59.  
  60. x[1]=8
  61. y[1]=8
  62. x[2]=9
  63. y[2]=7
  64. x[3]=6
  65. y[3]=9
  66. x[4]=6
  67. y[4]=8
  68. x[5]=9
  69. y[5]=3
  70. x[6]=13
  71. y[6]=3
  72. x[7]=3
  73. y[7]=3
  74. x[8]=7
  75. y[8]=6
  76. x[9]=1
  77. y[9]=4
  78. x[10]=1
  79. y[10]=7
  80. x[11]=9
  81. y[11]=4
  82. x[12]=1
  83. y[12]=11
  84. x[13]=14
  85. y[13]=8
  86. x[14]=11
  87. y[14]=7
  88. x[15]=7
  89. y[15]=4
  90. x[16]=10
  91. y[16]=5
  92. x[17]=3
  93. y[17]=7
  94. x[18]=5
  95. y[18]=11
  96. x[19]=3
  97. y[19]=4
  98. x[20]=1
  99. y[20]=10
  100. x[21]=1
  101. y[21]=3
  102. x[22]=10
  103. y[22]=6
  104. x[23]=4
  105. y[23]=4
  106. x[24]=4
  107. y[24]=5
  108. x[25]=10
  109. y[25]=4
  110. x[26]=2
  111. y[26]=13
  112. x[27]=8
  113. y[27]=13
  114. x[28]=1
  115. y[28]=6
  116. x[29]=6
  117. y[29]=13
  118. x[30]=14
  119. y[30]=12
  120. x[31]=9
  121. y[31]=6
  122. x[32]=8
  123. y[32]=6
  124. x[33]=6
  125. y[33]=12
  126. x[34]=1
  127. y[34]=10
  128. x[35]=2
  129. y[35]=8
  130. x[36]=12
  131. y[36]=5
  132. x[37]=13
  133. y[37]=10
  134. x[38]=13
  135. y[38]=7
  136. x[39]=2
  137. y[39]=6
  138. x[40]=4
  139. y[40]=9
  140. x[41]=3
  141. y[41]=6
  142. x[42]=5
  143. y[42]=10
  144. x[43]=11
  145. y[43]=3
  146. x[44]=2
  147. y[44]=5
  148. local N=44
  149.  
  150.  
  151. local RNGArray = {}
  152.  
  153. RNGArray[1] = 246
  154. RNGArray[2] = 35
  155. RNGArray[3] = 70
  156. RNGArray[4] = 140
  157. RNGArray[5] = 215
  158. RNGArray[6] = 97
  159. RNGArray[7] = 194
  160. RNGArray[8] = 75
  161. RNGArray[9] = 150
  162. RNGArray[10] = 227
  163. RNGArray[11] = 9
  164. RNGArray[12] = 18
  165. RNGArray[13] = 36
  166. RNGArray[14] = 72
  167. RNGArray[15] = 144
  168. RNGArray[16] = 239
  169. RNGArray[17] = 17
  170. RNGArray[18] = 34
  171. RNGArray[19] = 68
  172. RNGArray[20] = 136
  173. RNGArray[21] = 223
  174. RNGArray[22] = 113
  175. RNGArray[23] = 226
  176. RNGArray[24] = 11
  177. RNGArray[25] = 22
  178. RNGArray[26] = 44
  179. RNGArray[27] = 88
  180. RNGArray[28] = 176
  181. RNGArray[29] = 175
  182. RNGArray[30] = 145
  183. RNGArray[31] = 237
  184. RNGArray[32] = 21
  185. RNGArray[33] = 42
  186. RNGArray[34] = 84
  187. RNGArray[35] = 168
  188. RNGArray[36] = 159
  189. RNGArray[37] = 241
  190. RNGArray[38] = 45
  191. RNGArray[39] = 90
  192. RNGArray[40] = 180
  193. RNGArray[41] = 167
  194. RNGArray[42] = 129
  195. RNGArray[43] = 205
  196. RNGArray[44] = 85
  197. RNGArray[45] = 170
  198. RNGArray[46] = 155
  199. RNGArray[47] = 249
  200. RNGArray[48] = 61
  201. RNGArray[49] = 122
  202. RNGArray[50] = 244
  203. RNGArray[51] = 39
  204. RNGArray[52] = 78
  205. RNGArray[53] = 156
  206. RNGArray[54] = 247
  207. RNGArray[55] = 33
  208. RNGArray[56] = 66
  209. RNGArray[57] = 132
  210. RNGArray[58] = 199
  211. RNGArray[59] = 65
  212. RNGArray[60] = 130
  213. RNGArray[61] = 203
  214. RNGArray[62] = 89
  215. RNGArray[63] = 178
  216. RNGArray[64] = 171
  217. RNGArray[65] = 153
  218. RNGArray[66] = 253
  219. RNGArray[67] = 53
  220. RNGArray[68] = 106
  221. RNGArray[69] = 212
  222. RNGArray[70] = 103
  223. RNGArray[71] = 206
  224. RNGArray[72] = 83
  225. RNGArray[73] = 166
  226. RNGArray[74] = 131
  227. RNGArray[75] = 201
  228. RNGArray[76] = 93
  229. RNGArray[77] = 186
  230. RNGArray[78] = 187
  231. RNGArray[79] = 185
  232. RNGArray[80] = 189
  233. RNGArray[81] = 181
  234. RNGArray[82] = 165
  235. RNGArray[83] = 133
  236. RNGArray[84] = 197
  237. RNGArray[85] = 69
  238. RNGArray[86] = 138
  239. RNGArray[87] = 219
  240. RNGArray[88] = 121
  241. RNGArray[89] = 242
  242. RNGArray[90] = 43
  243. RNGArray[91] = 86
  244. RNGArray[92] = 172
  245. RNGArray[93] = 151
  246. RNGArray[94] = 225
  247. RNGArray[95] = 13
  248. RNGArray[96] = 26
  249. RNGArray[97] = 52
  250. RNGArray[98] = 104
  251. RNGArray[99] = 208
  252. RNGArray[100] = 111
  253. RNGArray[101] = 222
  254. RNGArray[102] = 115
  255. RNGArray[103] = 230
  256. RNGArray[104] = 3
  257. RNGArray[105] = 6
  258. RNGArray[106] = 12
  259. RNGArray[107] = 24
  260. RNGArray[108] = 48
  261. RNGArray[109] = 96
  262. RNGArray[110] = 192
  263. RNGArray[111] = 79
  264. RNGArray[112] = 158
  265. RNGArray[113] = 243
  266. RNGArray[114] = 41
  267. RNGArray[115] = 82
  268. RNGArray[116] = 164
  269. RNGArray[117] = 135
  270. RNGArray[118] = 193
  271. RNGArray[119] = 77
  272. RNGArray[120] = 154
  273. RNGArray[121] = 251
  274. RNGArray[122] = 57
  275. RNGArray[123] = 114
  276. RNGArray[124] = 228
  277. RNGArray[125] = 7
  278. RNGArray[126] = 14
  279. RNGArray[127] = 28
  280. RNGArray[128] = 56
  281. RNGArray[129] = 112
  282. RNGArray[130] = 224
  283. RNGArray[131] = 15
  284. RNGArray[132] = 30
  285. RNGArray[133] = 60
  286. RNGArray[134] = 120
  287. RNGArray[135] = 240
  288. RNGArray[136] = 47
  289. RNGArray[137] = 94
  290. RNGArray[138] = 188
  291. RNGArray[139] = 183
  292. RNGArray[140] = 161
  293. RNGArray[141] = 141
  294. RNGArray[142] = 213
  295. RNGArray[143] = 101
  296. RNGArray[144] = 202
  297. RNGArray[145] = 91
  298. RNGArray[146] = 182
  299. RNGArray[147] = 163
  300. RNGArray[148] = 137
  301. RNGArray[149] = 221
  302. RNGArray[150] = 117
  303. RNGArray[151] = 234
  304. RNGArray[152] = 27
  305. RNGArray[153] = 54
  306. RNGArray[154] = 108
  307. RNGArray[155] = 216
  308. RNGArray[156] = 127
  309. RNGArray[157] = 254
  310. RNGArray[158] = 51
  311. RNGArray[159] = 102
  312. RNGArray[160] = 204
  313. RNGArray[161] = 87
  314. RNGArray[162] = 174
  315. RNGArray[163] = 147
  316. RNGArray[164] = 233
  317. RNGArray[165] = 29
  318. RNGArray[166] = 58
  319. RNGArray[167] = 116
  320. RNGArray[168] = 232
  321. RNGArray[169] = 31
  322. RNGArray[170] = 62
  323. RNGArray[171] = 124
  324. RNGArray[172] = 248
  325. RNGArray[173] = 63
  326. RNGArray[174] = 126
  327. RNGArray[175] = 252
  328. RNGArray[176] = 55
  329. RNGArray[177] = 110
  330. RNGArray[178] = 220
  331. RNGArray[179] = 119
  332. RNGArray[180] = 238
  333. RNGArray[181] = 19
  334. RNGArray[182] = 38
  335. RNGArray[183] = 76
  336. RNGArray[184] = 152
  337. RNGArray[185] = 255
  338. RNGArray[186] = 49
  339. RNGArray[187] = 98
  340. RNGArray[188] = 196
  341. RNGArray[189] = 71
  342. RNGArray[190] = 142
  343. RNGArray[191] = 211
  344. RNGArray[192] = 105
  345. RNGArray[193] = 210
  346. RNGArray[194] = 107
  347. RNGArray[195] = 214
  348. RNGArray[196] = 99
  349. RNGArray[197] = 198
  350. RNGArray[198] = 67
  351. RNGArray[199] = 134
  352. RNGArray[200] = 195
  353. RNGArray[201] = 73
  354. RNGArray[202] = 146
  355. RNGArray[203] = 235
  356. RNGArray[204] = 25
  357. RNGArray[205] = 50
  358. RNGArray[206] = 100
  359. RNGArray[207] = 200
  360. RNGArray[208] = 95
  361. RNGArray[209] = 190
  362. RNGArray[210] = 179
  363. RNGArray[211] = 169
  364. RNGArray[212] = 157
  365. RNGArray[213] = 245
  366. RNGArray[214] = 37
  367. RNGArray[215] = 74
  368. RNGArray[216] = 148
  369. RNGArray[217] = 231
  370. RNGArray[218] = 1
  371. RNGArray[219] = 2
  372. RNGArray[220] = 4
  373. RNGArray[221] = 8
  374. RNGArray[222] = 16
  375. RNGArray[223] = 32
  376. RNGArray[224] = 64
  377. RNGArray[225] = 128
  378. RNGArray[226] = 207
  379. RNGArray[227] = 81
  380. RNGArray[228] = 162
  381. RNGArray[229] = 139
  382. RNGArray[230] = 217
  383. RNGArray[231] = 125
  384. RNGArray[232] = 250
  385. RNGArray[233] = 59
  386. RNGArray[234] = 118
  387. RNGArray[235] = 236
  388. RNGArray[236] = 23
  389. RNGArray[237] = 46
  390. RNGArray[238] = 92
  391. RNGArray[239] = 184
  392. RNGArray[240] = 191
  393. RNGArray[241] = 177
  394. RNGArray[242] = 173
  395. RNGArray[243] = 149
  396. RNGArray[244] = 229
  397. RNGArray[245] = 5
  398. RNGArray[246] = 10
  399. RNGArray[247] = 20
  400. RNGArray[248] = 40
  401. RNGArray[249] = 80
  402. RNGArray[250] = 160
  403. RNGArray[251] = 143
  404. RNGArray[252] = 209
  405. RNGArray[253] = 109
  406. RNGArray[254] = 218
  407. RNGArray[255] = 123
  408. RNGArray[256] = 246
  409.  
  410. local XArray = {}
  411. local YArray = {}
  412. local XSeed = 0
  413. local YSeed = 0
  414.  
  415. local XMax = 0
  416. local XMaxPrev = 0
  417. local YMax
  418.  
  419. YMax = 11
  420.  
  421. --maybe 13 on the grass means fuelable?
  422.  
  423. while true do
  424.  
  425. XMaxPrev = XMax
  426. XMax = memory.readbyte(GAME_MAP_WDT) -- Script must be reset each level currently.
  427.  
  428. if(XMax<14) then
  429. XMax = 14
  430. end
  431. if(XMax ~= XMaxPrev) then
  432. for i = 1, 255 do
  433.  
  434. XSeed = RNGArray[i]
  435. YSeed = RNGArray[i+1]
  436.  
  437. while XSeed >= 32 do
  438. XSeed = XSeed - 32
  439. end
  440. while YSeed >= 16 do
  441. YSeed = YSeed - 16
  442. end
  443. while XSeed >= XMax do -- outputs 0 to max-1
  444. XSeed = XSeed - XMax
  445. end
  446. while YSeed >= YMax do -- outputs 0 to max-1
  447. YSeed = YSeed - YMax
  448. end
  449.  
  450. x[i]=XSeed + 1
  451. y[i]=YSeed + 3
  452.  
  453. N=i
  454.  
  455. end
  456. end
  457.  
  458.  
  459. FuelX = memory.readbyte(NextFuelXAd)
  460. FuelY = memory.readbyte(NextFuelYAd)
  461.  
  462. RandSeed = memory.readbyte(RandSeedAd)
  463.  
  464. XVal = memory.readbyte(XAd)
  465. YVal = memory.readbyte(YAd)
  466. XSub = memory.readbyte(XSubAd)
  467. YSub = memory.readbyte(YSubAd)
  468. RealSub = memory.readbyte(DoubleSubPxAd)
  469.  
  470. WHERETOGET = memory.readbyte(WHERETOGETAD)
  471. WHERETOGET2 = memory.readbyte(WHERETOGETAD2)
  472. WHERETOGET3 = memory.readbyte(WHERETOGETAD3)
  473.  
  474. Velocity = memory.readbyte(VelocityAd)
  475.  
  476. CurrFuel = memory.readbyte(CurrFuelAd2)
  477. FuelCounter = memory.readbyte(FuelCounterAd)
  478. GrassesLeft = memory.readbyte(GrassesLeftAd)
  479.  
  480. gui.text(45,0,"X: " .. XVal .. " " .. XSub)
  481. gui.text(100,0,RealSub)
  482. gui.text(45,10,"Y: " .. YVal .. " " .. YSub)
  483. gui.text(45,20,"Fuel X: " .. FuelX)
  484. gui.text(45,30,"Fuel Y: " .. FuelY)
  485. gui.text(45,40,"Fuel in " .. FuelCounter)
  486. gui.text(45,50,"Speed " .. Velocity)
  487. gui.text(55,60,"Seed " .. RandSeed)
  488. gui.text(108,20,CurrFuel)
  489. gui.text(185,22,"Remaining: " .. GrassesLeft)
  490. --gui.text(170,42,"B5: " .. WHERETOGET)
  491. --gui.text(170,52,"B6: " .. WHERETOGET2)
  492. --gui.text(170,62,"E3: " .. WHERETOGET3)
  493. --gui.text(170,72,"31: " .. memory.readbyte(0x00C9))
  494. --gui.text(170,82,"XCAM:" .. memory.readbyte(GAME_CAM_X))
  495.  
  496. --------------------------memory.writebyte(WHERETOGETAD3,233)
  497. --memory.writebyte(WHERETOGETAD2,3)
  498. --memory.writebyte(WHERETOGETAD,235)
  499. --memory.writebyte(Grass2Ad,12)
  500. --memory.writebyte(Grass3Ad,13)
  501. --memory.writebyte(Grass4Ad,13)
  502. --memory.writebyte(Base2,1)
  503. --memory.writebyte(Counter2,1)
  504.  
  505. BoxArray = {}
  506.  
  507. -- Encode the counted data into an array for reference.
  508. for i=1,N do
  509. if BoxArray[x[i]*100+y[i]] == nil then
  510. BoxArray[x[i]*100+y[i]] = 1
  511. else
  512. BoxArray[x[i]*100+y[i]] = BoxArray[x[i]*100+y[i]]+1
  513. end
  514. end
  515.  
  516.  
  517. for i=1,N do
  518. XX=16*(x[i]-1)+24 - memory.readbyte(GAME_CAM_X)
  519. YY=16*(y[i]-3)+48
  520. BACount = BoxArray[x[i]*100+y[i]]
  521. gui.drawbox(XX-3, YY-3, XX+3, YY+3, "red")
  522. gui.text(XX-2,YY-2,BACount)
  523. end
  524.  
  525. FCEU.frameadvance()
  526.  
  527. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement