Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //// housedecay-checker - refined/updated by kakel_anders (Player - UOG:Demise) ////
- //// UPDATED 2022-01-31 ////
- //
- //
- //First off, i had my doubts about publishing this.
- //Partly cause it's given me and my closest an edge, partly cause of risk of abuse.
- //But i also realize alot of players arent proficient with macros in general and
- //releasing this could level the playingfield in a way i'd like to see.
- //
- //Secondly, i had so many good years on Demise thus far so i would like to give
- //something back to the community. This being part of that.
- //
- //Now everyone can be a successfull IDOC hunter :)
- //
- //Thanks, and keep beeing as awesome as you are everyone!
- //
- //////////////////
- // - Features - //
- //////////////////
- //1. Will automaticly index an entire container of runebooks and move them to your backpack
- //2. Inbuildt counter to keep check on what book and rune you are currently on
- //3. Applies Protection (To prevent disturbed recalls)
- //4. Will recall between houses Automaticly
- //5. Will notify when finding an decaying house
- //6. Will mark a rune and put in separate book for said decaying house
- //7. Will name the rune according to state of decay
- //8. Will restock recallrunes from mageshop. (2nd rune in homebook)
- //9. Can process as many full runebooks as you can fit in your backpack at once
- //10. Will return home when finished
- //////////////////////
- // - Requirements - //
- //////////////////////
- //Preparation for usage of this script is alot of work!
- //You need to mark a rune outside every house you want to check through the script.
- //This equalls roughly 60 full runebooks for Malas alone.
- //
- //1. Keep your runebooks in a secure container, preferable one for each facet.
- //2. Have a decent magechar and LRC, if it needs to mark alot it will drain mana.
- //3. Have a runebook in you inventory containing 2 runes in order below.
- // 1. Home (House or guardzone or whatever)
- // 2. Luna Mageshop (For restocking runes)
- //3. Keep a dozen empty runes in your backpack for marking, NEVER run out of these.
- //4. Keep an empty backpack in your inventory to keep the runebooks in while running the script.
- //5. Also remember to bring a runebook for any marked runes at decaying houses!
- //6. OPTIONALY, you can put a .wav named alarm.wav file in your UOS directory
- // to sound a signal when a falling house is found.
- ////////////////////
- //- End of intro -//
- ////////////////////
- clearignorelist
- clearjournal
- removelist 'signs'
- removelist 'Books'
- removelist 'booklist'
- removelist 'runelist'
- removelist 'homelist'
- unsetalias 'Idocrunes'
- unsetalias 'Home'
- unsetalias 'booksfrom'
- unsetalias 'booksto'
- msg 'Select a runebook to put decaying houserunes in'
- promptalias 'IdocRunes'
- msg 'Select a rune or runebook defaulted for home'
- promptalias 'Home'
- msg 'From where should i take runebooks?'
- promptalias 'booksfrom'
- msg 'What container in the inventory should i put books in?'
- promptalias 'booksto'
- createlist 'Books'
- if not listexists 'signs'
- createlist 'signs'
- pushlist 'signs' 2996
- pushlist 'signs' 3016
- pushlist 'signs' 2991
- pushlist 'signs' 3026
- pushlist 'signs' 3025
- pushlist 'signs' 2988
- pushlist 'signs' 3011
- pushlist 'signs' 3023
- pushlist 'signs' 3019
- pushlist 'signs' 3084
- pushlist 'signs' 2981
- pushlist 'signs' 3007
- pushlist 'signs' 3053
- pushlist 'signs' 3021
- pushlist 'signs' 3075
- pushlist 'signs' 3083
- pushlist 'signs' 2990
- pushlist 'signs' 3009
- pushlist 'signs' 3018
- pushlist 'signs' 3035
- pushlist 'signs' 2983
- pushlist 'signs' 3050
- pushlist 'signs' 2992
- pushlist 'signs' 2987
- pushlist 'signs' 2982
- pushlist 'signs' 3140
- pushlist 'signs' 2993
- pushlist 'signs' 3020
- pushlist 'signs' 2995
- pushlist 'signs' 3057
- pushlist 'signs' 3013
- pushlist 'signs' 2994
- pushlist 'signs' 2980
- pushlist 'signs' 2985
- pushlist 'signs' 2986
- pushlist 'signs' 2999
- pushlist 'signs' 2984
- pushlist 'signs' 3014
- pushlist 'signs' 3006
- pushlist 'signs' 3015
- pushlist 'signs' 2997
- pushlist 'signs' 3004
- pushlist 'signs' 3085
- pushlist 'signs' 3012
- pushlist 'signs' 3010
- pushlist 'signs' 2979
- pushlist 'signs' 2989
- pushlist 'signs' 2998
- pushlist 'signs' 3036
- pushlist 'signs' 2966
- pushlist 'signs' 3049
- pushlist 'signs' 3060
- pushlist 'signs' 3081
- pushlist 'signs' 3048
- pushlist 'signs' 3008
- pushlist 'signs' 3017
- pushlist 'signs' 3051
- pushlist 'signs' 3022
- pushlist 'signs' 3055
- pushlist 'signs' 3024
- pushlist 'signs' 3000
- pushlist 'signs' 3076
- pushlist 'signs' 3073
- pushlist 'signs' 3054
- pushlist 'signs' 7977
- pushlist 'signs' 4762
- pushlist 'signs' 4764
- pushlist 'signs' 4765
- pushlist 'signs' 3086
- pushlist 'signs' 3070
- pushlist 'signs' 3082
- pushlist 'signs' 3033
- pushlist 'signs' 2965
- pushlist 'signs' 3059
- pushlist 'signs' 3029
- pushlist 'signs' 3077
- pushlist 'signs' 7976
- pushlist 'signs' 4759
- pushlist 'signs' 4766
- pushlist 'signs' 4761
- pushlist 'signs' 3074
- pushlist 'signs' 3003
- pushlist 'signs' 3028
- pushlist 'signs' 3056
- pushlist 'signs' 5019
- pushlist 'signs' 0xbba
- endif
- if not listexists 'Runes'
- createlist 'Runes'
- pushlist 'Runes' 5
- pushlist 'Runes' 11
- pushlist 'Runes' 17
- pushlist 'Runes' 23
- pushlist 'Runes' 29
- pushlist 'Runes' 35
- pushlist 'Runes' 41
- pushlist 'Runes' 47
- pushlist 'Runes' 53
- pushlist 'Runes' 59
- pushlist 'Runes' 65
- pushlist 'Runes' 71
- pushlist 'Runes' 77
- pushlist 'Runes' 83
- pushlist 'Runes' 89
- pushlist 'Runes' 95
- endif
- createlist 'runelist'
- pushlist 'runelist' '1'
- pushlist 'runelist' '2'
- pushlist 'runelist' '3'
- pushlist 'runelist' '4'
- pushlist 'runelist' '5'
- pushlist 'runelist' '6'
- pushlist 'runelist' '7'
- pushlist 'runelist' '8'
- pushlist 'runelist' '9'
- pushlist 'runelist' '10'
- pushlist 'runelist' '11'
- pushlist 'runelist' '12'
- pushlist 'runelist' '13'
- pushlist 'runelist' '14'
- pushlist 'runelist' '15'
- pushlist 'runelist' '16'
- createlist 'booklist'
- pushlist 'booklist' '1'
- pushlist 'booklist' '2'
- pushlist 'booklist' '3'
- pushlist 'booklist' '4'
- pushlist 'booklist' '5'
- pushlist 'booklist' '6'
- pushlist 'booklist' '7'
- pushlist 'booklist' '8'
- pushlist 'booklist' '9'
- pushlist 'booklist' '10'
- pushlist 'booklist' '11'
- pushlist 'booklist' '12'
- pushlist 'booklist' '13'
- pushlist 'booklist' '14'
- pushlist 'booklist' '15'
- pushlist 'booklist' '16'
- pushlist 'booklist' '17'
- pushlist 'booklist' '18'
- pushlist 'booklist' '19'
- pushlist 'booklist' '20'
- pushlist 'booklist' '31'
- pushlist 'booklist' '32'
- pushlist 'booklist' '33'
- pushlist 'booklist' '34'
- pushlist 'booklist' '35'
- pushlist 'booklist' '36'
- pushlist 'booklist' '37'
- pushlist 'booklist' '38'
- pushlist 'booklist' '39'
- pushlist 'booklist' '40'
- pushlist 'booklist' '41'
- pushlist 'booklist' '42'
- pushlist 'booklist' '43'
- pushlist 'booklist' '44'
- pushlist 'booklist' '45'
- pushlist 'booklist' '46'
- pushlist 'booklist' '47'
- pushlist 'booklist' '48'
- pushlist 'booklist' '49'
- pushlist 'booklist' '50'
- pushlist 'booklist' '51'
- pushlist 'booklist' '52'
- pushlist 'booklist' '53'
- pushlist 'booklist' '54'
- pushlist 'booklist' '55'
- pushlist 'booklist' '56'
- pushlist 'booklist' '57'
- pushlist 'booklist' '58'
- pushlist 'booklist' '59'
- pushlist 'booklist' '60'
- pushlist 'booklist' '61'
- pushlist 'booklist' '62'
- pushlist 'booklist' '63'
- pushlist 'booklist' '64'
- pushlist 'booklist' '65'
- pushlist 'booklist' '66'
- pushlist 'booklist' '67'
- pushlist 'booklist' '68'
- pushlist 'booklist' '69'
- pushlist 'booklist' '70'
- pushlist 'booklist' '71'
- pushlist 'booklist' '72'
- pushlist 'booklist' '73'
- pushlist 'booklist' '74'
- pushlist 'booklist' '75'
- pushlist 'booklist' '76'
- pushlist 'booklist' '77'
- pushlist 'booklist' '78'
- pushlist 'booklist' '79'
- pushlist 'booklist' '80'
- createlist 'homelist'
- pushlist 'homelist' 5
- pushlist 'homelist' 11
- //
- ///Automaticly create list for houserunebooks
- while findtype 0x22c5 'any' 'booksfrom'
- pushlist 'Books' 'found'
- pause 500
- moveitem found 'booksto'
- pause 1000
- ignoreobject found
- endwhile
- //
- /// Check protection to prevent disturbed spells
- if not buffexists 'protection'
- cast 'protection'
- pause 1000
- target 'self'
- endif
- //
- for 0 to 'Books'
- sysmsg 'Changing to book nr:' 8
- sysmsg 'booklist[0]' 13
- for 0 to 'Runes'
- headmsg 'Checking rune nr:' 8 'self'
- headmsg 'runelist[0]' 66 'self'
- pause 500
- useobject 'Books[]'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 Runes[]
- pause 2000
- if @injournal 'That location is blocked''system'
- msg 'Rune blocked, skipping!'
- pause 5
- clearjournal
- endif
- pause 2000
- for 0 to 'signs'
- while @findtype 'signs[]' 'any' 'ground' 'any' 10
- waitforproperties 'found' 5000
- if @property 'Sign' 'found'
- headmsg '◄CHECKED►' 66 'found'
- if @property 'Condition: This Structure is Slightly Worn' 'found'
- headmsg '☢SLIGHTLY☢' 34 'found'
- pause 100
- playsound 'alarm.wav'
- snapshot
- pause 600
- cast "Mark"
- waitfortarget 15000
- targettype! 0x1f14 'any' 'backpack'
- pause 1000
- useobject! lasttarget
- waitforprompt 15000
- promptmsg 'slightly'
- pause 500
- moveitem lasttarget 'IdocRunes'
- pause 500
- ignoreobject 'found'
- elseif @property 'Condition: This Structure is Somewhat Worn' 'found'
- headmsg '☢SOMEWHAT☢' 34 'found'
- pause 100
- playsound 'alarm.wav'
- snapshot
- pause 600
- cast "Mark"
- waitfortarget 15000
- targettype! 0x1f14 'any' 'backpack'
- pause 1000
- useobject! lasttarget
- waitforprompt 15000
- promptmsg 'SOMEWHAT'
- pause 500
- moveitem lasttarget 'IdocRunes'
- pause 500
- ignoreobject 'found'
- elseif @property 'Condition: This Structure is Fairly Worn' 'found'
- headmsg '☢FAIRLY☢' 34 'found'
- pause 100
- playsound 'alarm.wav'
- snapshot
- pause 600
- cast "Mark"
- waitfortarget 15000
- targettype! 0x1f14 'any' 'backpack'
- pause 1000
- useobject! lasttarget
- waitforprompt 15000
- promptmsg 'FAIRLY'
- pause 500
- moveitem lasttarget 'IdocRunes'
- pause 500
- ignoreobject 'found'
- elseif @property 'Condition: This Structure is Greatly Worn' 'found'
- headmsg '☢GREATLY☢' 34 'found'
- pause 100
- playsound 'alarm.wav'
- snapshot
- pause 600
- cast "Mark"
- waitfortarget 15000
- targettype! 0x1f14 'any' 'backpack'
- pause 1000
- useobject! lasttarget
- waitforprompt 15000
- promptmsg 'GREATLY'
- pause 500
- moveitem lasttarget 'IdocRunes'
- pause 500
- ignoreobject 'found'
- elseif @property 'Condition: This Structure is In Danger of Collapsing' 'found'
- headmsg '☢☢☢ IDOC ☢☢☢' 34 'found'
- pause 100
- playsound 'alarm.wav'
- snapshot
- pause 600
- cast "Mark"
- waitfortarget 15000
- targettype! 0x1f14 'any' 'backpack'
- pause 1000
- useobject! lasttarget
- waitforprompt 15000
- promptmsg 'IDOC'
- pause 500
- moveitem lasttarget 'IdocRunes'
- pause 500
- ignoreobject 'found'
- endif
- ignoreobject 'found'
- endif
- endwhile
- endfor
- // Buy runes if running low
- if counttype 0x1f14 'any' 'backpack' <= 1
- pause 500
- useobject 'Home'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 homelist[1]
- pause 2000
- buy 'runes'
- pause 500
- waitforcontext '0xb0353' 1 1500
- pause 600
- endif
- //////Luna Mageshop//////
- pushlist 'runelist' 'runelist[0]'
- @poplist 'runelist' 'front'
- endfor
- @poplist 'booklist' 'front'
- endfor
- pause 500
- useobject 'Home'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 homelist[0]
- stop
Add Comment
Please, Sign In to add comment