-
Notifications
You must be signed in to change notification settings - Fork 0
/
house.cmd
214 lines (191 loc) · 5.38 KB
/
house.cmd
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
include libmaster.cmd
###############################
# Housing Doors
###############################
###############################
### IDLE ACTION ITEMS
###############################
action goto closeDoor when ^You must wait a few hours before entering this home again\.
action put .house when ^The door is closed\.$
###############################
### VARIABLES
###############################
var knownLocation 0
###############################
### LOCATION CHECK
###############################
house.locationCheck:
if ($zoneid = 1 && $roomid = 258) then {
var obj house
var knownLocation 1
}
if ($zoneid = 66 && $roomid = 252) then {
var obj sandalwood door
var knownLocation 1
}
if ($zoneid = 150 && $roomid = 50) then {
var obj fieldstone bothy
var knownLocation 1
}
if ("$roomname" = "Private Home Interior") then {
var obj door
var knownLocation 1
}
if (%knownLocation <> 1) then {
gosub house.findLocalHouse
if !(matchre("$charactername", "Selesthiel|Inauri")) then {
gosub house.releaseInvis
goto house.enterHouse
}
goto house.locationCheck
}
goto house.main
house.enterHouse:
matchre enterHouseCont suddenly rattles
matchre enterHouseCont suddenly opens
put peer %obj
matchwait 20
gosub move move %obj
goto house.locationCheck
house.enterHouseCont:
gosub move move %obj
goto house.locationCheck
###############################
### MAIN
###############################
house.main:
gosub house.releaseInvis
# Key holders going inside.
if ("%obj" != "door" && matchre("$charactername", "Selesthiel|Inauri")) then {
gosub move move %obj
}
# Non-key holders going inside.
if ("%obj" != "door" && !matchre("$charactername", "Selesthiel|Inauri")) then {
gosub house.peer %obj
}
# Leaving a house.
if ("%obj" = "door") then {
gosub move move %obj
}
house.mainEnter:
gosub move move %obj
if ("%obj" <> "door") then {
gosub close door
gosub lock door
} else {
var closeObj house
if (contains("$roomobjs", "farmstead") then var closeObj farmstead
if (contains("$roomobjs", "sandalwood door") then var closeObj door
if (contains("$roomobjs", "bothy") then var closeObj fieldstone bothy
gosub close %closeObj
if (matchre("$charactername", "Selesthiel|Inauri")) then gosub lock %closeObj
}
goto house.exit
house.exit:
pause .2
put #parse HOUSE DONE
exit
house.peer:
var todo $0
matchre house.mainEnter ^(.*)suddenly opens\!$|^(.*)suddenly rattles\!$
matchre house.peer ^(.*)suddenly slams shut\!
put peer %todo
matchwait 20
house.releaseInvis:
if ($SpellTimer.RefractiveField.active = 1) then gosub release rf
if ($SpellTimer.EyesoftheBlind.active = 1) then gosub release eotb
if ($SpellTimer.KhriSilence.active = 1) then gosub khri stop silence
return
###############################
### MOVE METHOD
###############################
house.findLocalHouse:
echo Looking for local house..
# Crossing - City
if ($zoneid = 1) then {
gosub house.releaseInvis
gosub automove portal
gosub move go meeting portal
goto house.findLocalHouse
}
# Crossing - West Gate
if ($zoneid = 4) then {
gosub automove crossing
goto house.findLocalHouse
}
# Crossing - North Gate
if ($zoneid = 6) then {
gosub automove crossing
goto house.findLocalHouse
}
# Crossing - NTR
if ($zoneid = 7) then {
gosub automove crossing
goto house.findLocalHouse
}
# NTR - Abandoned Mine
if ($zoneid = 10) then {
gosub automove crossing
goto house.findLocalHouse
}
# Leth
if ($zoneid = 61) then {
gosub automove portal
gosub house.releaseInvis
gosub move go meeting portal
goto house.findLocalHouse
}
# Shard - East Gate
if ($zoneid = 66) then {
gosub automove portal
gosub house.releaseInvis
gosub move go meeting portal
}
# Shard - City
if ($zoneid = 67) then {
gosub automove portal
gosub house.releaseInvis
gosub move go meeting portal
goto house.findLocalHouse
}
# Shard - South of City
if ($zoneid = 68) then {
gosub automove 3
gosub move go path
goto house.findLocalHouse
}
# Shard - Ice Caves
if ($zoneid = 68a) then {
gosub automove 30
goto house.findLocalHouse
}
# Storm Bulls
if ($zoneid = 112) then {
gosub automove leth
goto house.findLocalHouse
}
# Inner, Outer Hib
if ($zoneid = 116) then {
gosub automove portal
gosub move go meeting portal
goto house.findLocalHouse
}
# Road Between Hib and Boar Clan
if ($zoneid = 126) then {
gosub automove hib
goto house.findLocalHouse
}
# Boar Clan
if ($zoneid = 127) then {
gosub automove hib
goto house.findLocalHouse
}
# Fang Cove
if ($zoneid = 150) then {
if ($roomid = 50) then {
goto house.locationCheck
}
gosub automove 50
goto house.findLocalHouse
}
goto house.findLocalHouse