kakel_anders

UOS - Automated IDOC-hunter

Jan 30th, 2022 (edited)
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.31 KB | None | 0 0
  1. //// housedecay-checker - refined/updated by kakel_anders (Player - UOG:Demise) ////
  2. //// UPDATED 2022-01-31 ////
  3. //
  4. //
  5. //First off, i had my doubts about publishing this.
  6. //Partly cause it's given me and my closest an edge, partly cause of risk of abuse.
  7. //But i also realize alot of players arent proficient with macros in general and
  8. //releasing this could level the playingfield in a way i'd like to see.
  9. //
  10. //Secondly, i had so many good years on Demise thus far so i would like to give
  11. //something back to the community. This being part of that.
  12. //
  13. //Now everyone can be a successfull IDOC hunter :)
  14. //
  15. //Thanks, and keep beeing as awesome as you are everyone!
  16. //
  17. //////////////////
  18. // - Features - //
  19. //////////////////
  20. //1. Will automaticly index an entire container of runebooks and move them to your backpack
  21. //2. Inbuildt counter to keep check on what book and rune you are currently on
  22. //3. Applies Protection (To prevent disturbed recalls)
  23. //4. Will recall between houses Automaticly
  24. //5. Will notify when finding an decaying house
  25. //6. Will mark a rune and put in separate book for said decaying house
  26. //7. Will name the rune according to state of decay
  27. //8. Will restock recallrunes from mageshop. (2nd rune in homebook)
  28. //9. Can process as many full runebooks as you can fit in your backpack at once
  29. //10. Will return home when finished
  30. //////////////////////
  31. // - Requirements - //
  32. //////////////////////
  33. //Preparation for usage of this script is alot of work!
  34. //You need to mark a rune outside every house you want to check through the script.
  35. //This equalls roughly 60 full runebooks for Malas alone.
  36. //
  37. //1. Keep your runebooks in a secure container, preferable one for each facet.
  38. //2. Have a decent magechar and LRC, if it needs to mark alot it will drain mana.
  39. //3. Have a runebook in you inventory containing 2 runes in order below.
  40. // 1. Home (House or guardzone or whatever)
  41. // 2. Luna Mageshop (For restocking runes)
  42. //3. Keep a dozen empty runes in your backpack for marking, NEVER run out of these.
  43. //4. Keep an empty backpack in your inventory to keep the runebooks in while running the script.
  44. //5. Also remember to bring a runebook for any marked runes at decaying houses!
  45. //6. OPTIONALY, you can put a .wav named alarm.wav file in your UOS directory
  46. // to sound a signal when a falling house is found.
  47. ////////////////////
  48. //- End of intro -//
  49. ////////////////////
  50. clearignorelist
  51. clearjournal
  52. removelist 'signs'
  53. removelist 'Books'
  54. removelist 'booklist'
  55. removelist 'runelist'
  56. removelist 'homelist'
  57. unsetalias 'Idocrunes'
  58. unsetalias 'Home'
  59. unsetalias 'booksfrom'
  60. unsetalias 'booksto'
  61. msg 'Select a runebook to put decaying houserunes in'
  62. promptalias 'IdocRunes'
  63. msg 'Select a rune or runebook defaulted for home'
  64. promptalias 'Home'
  65. msg 'From where should i take runebooks?'
  66. promptalias 'booksfrom'
  67. msg 'What container in the inventory should i put books in?'
  68. promptalias 'booksto'
  69. createlist 'Books'
  70. if not listexists 'signs'
  71. createlist 'signs'
  72. pushlist 'signs' 2996
  73. pushlist 'signs' 3016
  74. pushlist 'signs' 2991
  75. pushlist 'signs' 3026
  76. pushlist 'signs' 3025
  77. pushlist 'signs' 2988
  78. pushlist 'signs' 3011
  79. pushlist 'signs' 3023
  80. pushlist 'signs' 3019
  81. pushlist 'signs' 3084
  82. pushlist 'signs' 2981
  83. pushlist 'signs' 3007
  84. pushlist 'signs' 3053
  85. pushlist 'signs' 3021
  86. pushlist 'signs' 3075
  87. pushlist 'signs' 3083
  88. pushlist 'signs' 2990
  89. pushlist 'signs' 3009
  90. pushlist 'signs' 3018
  91. pushlist 'signs' 3035
  92. pushlist 'signs' 2983
  93. pushlist 'signs' 3050
  94. pushlist 'signs' 2992
  95. pushlist 'signs' 2987
  96. pushlist 'signs' 2982
  97. pushlist 'signs' 3140
  98. pushlist 'signs' 2993
  99. pushlist 'signs' 3020
  100. pushlist 'signs' 2995
  101. pushlist 'signs' 3057
  102. pushlist 'signs' 3013
  103. pushlist 'signs' 2994
  104. pushlist 'signs' 2980
  105. pushlist 'signs' 2985
  106. pushlist 'signs' 2986
  107. pushlist 'signs' 2999
  108. pushlist 'signs' 2984
  109. pushlist 'signs' 3014
  110. pushlist 'signs' 3006
  111. pushlist 'signs' 3015
  112. pushlist 'signs' 2997
  113. pushlist 'signs' 3004
  114. pushlist 'signs' 3085
  115. pushlist 'signs' 3012
  116. pushlist 'signs' 3010
  117. pushlist 'signs' 2979
  118. pushlist 'signs' 2989
  119. pushlist 'signs' 2998
  120. pushlist 'signs' 3036
  121. pushlist 'signs' 2966
  122. pushlist 'signs' 3049
  123. pushlist 'signs' 3060
  124. pushlist 'signs' 3081
  125. pushlist 'signs' 3048
  126. pushlist 'signs' 3008
  127. pushlist 'signs' 3017
  128. pushlist 'signs' 3051
  129. pushlist 'signs' 3022
  130. pushlist 'signs' 3055
  131. pushlist 'signs' 3024
  132. pushlist 'signs' 3000
  133. pushlist 'signs' 3076
  134. pushlist 'signs' 3073
  135. pushlist 'signs' 3054
  136. pushlist 'signs' 7977
  137. pushlist 'signs' 4762
  138. pushlist 'signs' 4764
  139. pushlist 'signs' 4765
  140. pushlist 'signs' 3086
  141. pushlist 'signs' 3070
  142. pushlist 'signs' 3082
  143. pushlist 'signs' 3033
  144. pushlist 'signs' 2965
  145. pushlist 'signs' 3059
  146. pushlist 'signs' 3029
  147. pushlist 'signs' 3077
  148. pushlist 'signs' 7976
  149. pushlist 'signs' 4759
  150. pushlist 'signs' 4766
  151. pushlist 'signs' 4761
  152. pushlist 'signs' 3074
  153. pushlist 'signs' 3003
  154. pushlist 'signs' 3028
  155. pushlist 'signs' 3056
  156. pushlist 'signs' 5019
  157. pushlist 'signs' 0xbba
  158. endif
  159. if not listexists 'Runes'
  160. createlist 'Runes'
  161. pushlist 'Runes' 5
  162. pushlist 'Runes' 11
  163. pushlist 'Runes' 17
  164. pushlist 'Runes' 23
  165. pushlist 'Runes' 29
  166. pushlist 'Runes' 35
  167. pushlist 'Runes' 41
  168. pushlist 'Runes' 47
  169. pushlist 'Runes' 53
  170. pushlist 'Runes' 59
  171. pushlist 'Runes' 65
  172. pushlist 'Runes' 71
  173. pushlist 'Runes' 77
  174. pushlist 'Runes' 83
  175. pushlist 'Runes' 89
  176. pushlist 'Runes' 95
  177. endif
  178. createlist 'runelist'
  179. pushlist 'runelist' '1'
  180. pushlist 'runelist' '2'
  181. pushlist 'runelist' '3'
  182. pushlist 'runelist' '4'
  183. pushlist 'runelist' '5'
  184. pushlist 'runelist' '6'
  185. pushlist 'runelist' '7'
  186. pushlist 'runelist' '8'
  187. pushlist 'runelist' '9'
  188. pushlist 'runelist' '10'
  189. pushlist 'runelist' '11'
  190. pushlist 'runelist' '12'
  191. pushlist 'runelist' '13'
  192. pushlist 'runelist' '14'
  193. pushlist 'runelist' '15'
  194. pushlist 'runelist' '16'
  195. createlist 'booklist'
  196. pushlist 'booklist' '1'
  197. pushlist 'booklist' '2'
  198. pushlist 'booklist' '3'
  199. pushlist 'booklist' '4'
  200. pushlist 'booklist' '5'
  201. pushlist 'booklist' '6'
  202. pushlist 'booklist' '7'
  203. pushlist 'booklist' '8'
  204. pushlist 'booklist' '9'
  205. pushlist 'booklist' '10'
  206. pushlist 'booklist' '11'
  207. pushlist 'booklist' '12'
  208. pushlist 'booklist' '13'
  209. pushlist 'booklist' '14'
  210. pushlist 'booklist' '15'
  211. pushlist 'booklist' '16'
  212. pushlist 'booklist' '17'
  213. pushlist 'booklist' '18'
  214. pushlist 'booklist' '19'
  215. pushlist 'booklist' '20'
  216. pushlist 'booklist' '31'
  217. pushlist 'booklist' '32'
  218. pushlist 'booklist' '33'
  219. pushlist 'booklist' '34'
  220. pushlist 'booklist' '35'
  221. pushlist 'booklist' '36'
  222. pushlist 'booklist' '37'
  223. pushlist 'booklist' '38'
  224. pushlist 'booklist' '39'
  225. pushlist 'booklist' '40'
  226. pushlist 'booklist' '41'
  227. pushlist 'booklist' '42'
  228. pushlist 'booklist' '43'
  229. pushlist 'booklist' '44'
  230. pushlist 'booklist' '45'
  231. pushlist 'booklist' '46'
  232. pushlist 'booklist' '47'
  233. pushlist 'booklist' '48'
  234. pushlist 'booklist' '49'
  235. pushlist 'booklist' '50'
  236. pushlist 'booklist' '51'
  237. pushlist 'booklist' '52'
  238. pushlist 'booklist' '53'
  239. pushlist 'booklist' '54'
  240. pushlist 'booklist' '55'
  241. pushlist 'booklist' '56'
  242. pushlist 'booklist' '57'
  243. pushlist 'booklist' '58'
  244. pushlist 'booklist' '59'
  245. pushlist 'booklist' '60'
  246. pushlist 'booklist' '61'
  247. pushlist 'booklist' '62'
  248. pushlist 'booklist' '63'
  249. pushlist 'booklist' '64'
  250. pushlist 'booklist' '65'
  251. pushlist 'booklist' '66'
  252. pushlist 'booklist' '67'
  253. pushlist 'booklist' '68'
  254. pushlist 'booklist' '69'
  255. pushlist 'booklist' '70'
  256. pushlist 'booklist' '71'
  257. pushlist 'booklist' '72'
  258. pushlist 'booklist' '73'
  259. pushlist 'booklist' '74'
  260. pushlist 'booklist' '75'
  261. pushlist 'booklist' '76'
  262. pushlist 'booklist' '77'
  263. pushlist 'booklist' '78'
  264. pushlist 'booklist' '79'
  265. pushlist 'booklist' '80'
  266. createlist 'homelist'
  267. pushlist 'homelist' 5
  268. pushlist 'homelist' 11
  269. //
  270. ///Automaticly create list for houserunebooks
  271. while findtype 0x22c5 'any' 'booksfrom'
  272. pushlist 'Books' 'found'
  273. pause 500
  274. moveitem found 'booksto'
  275. pause 1000
  276. ignoreobject found
  277. endwhile
  278. //
  279. /// Check protection to prevent disturbed spells
  280. if not buffexists 'protection'
  281. cast 'protection'
  282. pause 1000
  283. target 'self'
  284. endif
  285. //
  286. for 0 to 'Books'
  287. sysmsg 'Changing to book nr:' 8
  288. sysmsg 'booklist[0]' 13
  289. for 0 to 'Runes'
  290. headmsg 'Checking rune nr:' 8 'self'
  291. headmsg 'runelist[0]' 66 'self'
  292. pause 500
  293. useobject 'Books[]'
  294. waitforgump 0x554b87f3 15000
  295. replygump 0x554b87f3 Runes[]
  296. pause 2000
  297. if @injournal 'That location is blocked''system'
  298. msg 'Rune blocked, skipping!'
  299. pause 5
  300. clearjournal
  301. endif
  302. pause 2000
  303. for 0 to 'signs'
  304. while @findtype 'signs[]' 'any' 'ground' 'any' 10
  305. waitforproperties 'found' 5000
  306. if @property 'Sign' 'found'
  307. headmsg '◄CHECKED►' 66 'found'
  308. if @property 'Condition: This Structure is Slightly Worn' 'found'
  309. headmsg '☢SLIGHTLY☢' 34 'found'
  310. pause 100
  311. playsound 'alarm.wav'
  312. snapshot
  313. pause 600
  314. cast "Mark"
  315. waitfortarget 15000
  316. targettype! 0x1f14 'any' 'backpack'
  317. pause 1000
  318. useobject! lasttarget
  319. waitforprompt 15000
  320. promptmsg 'slightly'
  321. pause 500
  322. moveitem lasttarget 'IdocRunes'
  323. pause 500
  324. ignoreobject 'found'
  325. elseif @property 'Condition: This Structure is Somewhat Worn' 'found'
  326. headmsg '☢SOMEWHAT☢' 34 'found'
  327. pause 100
  328. playsound 'alarm.wav'
  329. snapshot
  330. pause 600
  331. cast "Mark"
  332. waitfortarget 15000
  333. targettype! 0x1f14 'any' 'backpack'
  334. pause 1000
  335. useobject! lasttarget
  336. waitforprompt 15000
  337. promptmsg 'SOMEWHAT'
  338. pause 500
  339. moveitem lasttarget 'IdocRunes'
  340. pause 500
  341. ignoreobject 'found'
  342. elseif @property 'Condition: This Structure is Fairly Worn' 'found'
  343. headmsg '☢FAIRLY☢' 34 'found'
  344. pause 100
  345. playsound 'alarm.wav'
  346. snapshot
  347. pause 600
  348. cast "Mark"
  349. waitfortarget 15000
  350. targettype! 0x1f14 'any' 'backpack'
  351. pause 1000
  352. useobject! lasttarget
  353. waitforprompt 15000
  354. promptmsg 'FAIRLY'
  355. pause 500
  356. moveitem lasttarget 'IdocRunes'
  357. pause 500
  358. ignoreobject 'found'
  359. elseif @property 'Condition: This Structure is Greatly Worn' 'found'
  360. headmsg '☢GREATLY☢' 34 'found'
  361. pause 100
  362. playsound 'alarm.wav'
  363. snapshot
  364. pause 600
  365. cast "Mark"
  366. waitfortarget 15000
  367. targettype! 0x1f14 'any' 'backpack'
  368. pause 1000
  369. useobject! lasttarget
  370. waitforprompt 15000
  371. promptmsg 'GREATLY'
  372. pause 500
  373. moveitem lasttarget 'IdocRunes'
  374. pause 500
  375. ignoreobject 'found'
  376. elseif @property 'Condition: This Structure is In Danger of Collapsing' 'found'
  377. headmsg '☢☢☢ IDOC ☢☢☢' 34 'found'
  378. pause 100
  379. playsound 'alarm.wav'
  380. snapshot
  381. pause 600
  382. cast "Mark"
  383. waitfortarget 15000
  384. targettype! 0x1f14 'any' 'backpack'
  385. pause 1000
  386. useobject! lasttarget
  387. waitforprompt 15000
  388. promptmsg 'IDOC'
  389. pause 500
  390. moveitem lasttarget 'IdocRunes'
  391. pause 500
  392. ignoreobject 'found'
  393. endif
  394. ignoreobject 'found'
  395. endif
  396. endwhile
  397. endfor
  398. // Buy runes if running low
  399. if counttype 0x1f14 'any' 'backpack' <= 1
  400. pause 500
  401. useobject 'Home'
  402. waitforgump 0x554b87f3 15000
  403. replygump 0x554b87f3 homelist[1]
  404. pause 2000
  405. buy 'runes'
  406. pause 500
  407. waitforcontext '0xb0353' 1 1500
  408. pause 600
  409. endif
  410. //////Luna Mageshop//////
  411. pushlist 'runelist' 'runelist[0]'
  412. @poplist 'runelist' 'front'
  413. endfor
  414. @poplist 'booklist' 'front'
  415. endfor
  416. pause 500
  417. useobject 'Home'
  418. waitforgump 0x554b87f3 15000
  419. replygump 0x554b87f3 homelist[0]
  420. stop
  421.  
Add Comment
Please, Sign In to add comment