/
casco intercambiable.txt
434 lines (416 loc) · 9.81 KB
/
casco intercambiable.txt
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
;|--------------------------------------|
;| 'Casco' intercambiable |
;|--------------------------------------|
;* Si seleccionamos el 'Casco' dentro de un contenedor que este en la mochila del personaje, en cualquier nivel, y/u otro objeto para cubrir la cabeza aumentara la posibilidad de que no sea saqueado, sobre todo cuando esta accion es automatizada
;** Si ademas escogemos como contenedor una 'Cajita' aun mayor sera la probabilidad de evitar la sustraccion
;*** El contenedor del 'Casco' tendra que permanecer abierto, al resucitar en nuestro cuerpo se abrira, o abriran, en la misma posicion que estaba en el momento de la seleccion
;**** Mientras no se cierre el cliente permaneceran los datos almacenados, compatible con el cambio de personajes
set %CASCOS OSH_TSH_CSH_BSH_ESH_DSH_CRH_ASH_GSH_FSH_NJL_QJL_ZPH_YPH
set %OBJSCABEZA OSH_TSH_CSH_BSH_ESH_DSH_CRH_ASH_GSH_FSH_NJL_QJL_ZPH_YPH_VVI_IWI_XVI_YVI_WVI_BWI_EWI_WWI_KWI_QSH_VSH_QZH_NZH_PZH_KZH_DZH_OZH_EZH_BZH_TDI_GZH_HWI_MKH_DPH_JWI_CZH_HZH
set %lTargetID #lTargetID
goSub control
goSub setCasco
goSub setObjCabeza
goSub scanTecla
sub control
{
if #cliLogged = 0
{
sound
set #sysMsgCol 1970
display ok No puedes iniciar este programa sin antes conectarte con un personaje ya que tiene que ser configurado , #DOT , #SPC , $$Deteniendo programa... <Parado>
stop
}
if #charGhost = NO
{
goSub transCharName
set #sysMsgCol 1391
event SysMessage 'Casco' automaticamente intercambiable por una prenda para cubrir la cabeza ('Resistencia Magica +15', etc.) o 'Casco' ('Del Caballero', 'Del Guerrero', 'Del Nigromante', etc.) -Activado-
findItem #backpackID C_ , #charID
if #findCnt = 0
{
set %xCharID #cliXRes + #cliLeft
set %yCharID #cliTop
nextCPos %xCharID %yCharID
event SysMessage ~ * , Abriendo la ficha de , #SPC , %transCharName , ...
event Macro 8 1
}
findItem * C_ , #backpackID
if #findCnt = 0
{
set %xBackpackID #cliXRes + #cliLeft
set %yBackpackID #cliYRes + #cliTop
nextCPos %xBackpackID %yBackpackID
wait 10
event SysMessage ~ * , Abriendo la mochila de , #SPC , %transCharName , ...
event Macro 8 7
}
display yesno ¿Tienes el contenedor donde , #SPC , %transCharName , #SPC , portara el 'Casco' y/o la prenda para cubrir la cabeza ('Resistencia Magica +15', etc.) o 'Casco' ('Del Caballero', 'Del Guerrero', 'Del Nigromante', etc.) abierto/s? $$Una vez asignados solo tendras que mantenerlo abierto, al igual que la ficha del personaje.
if #dispRes = NO
{
display ok Cuando termines pulsa la tecla 'Esc' (Escape) para continuar.
loopDispNo:
{
onHotKey ESC
{
return
}
}
goTo loopDispNo
}
set %charID #charID
}
else
{
sound
set #sysMsgCol 1970
display ok No puedes iniciar este programa estando muerto puesto que se imposibilita su configuracion , #DOT , #SPC , $$Deteniendo programa... <Parado>
stop
}
return
}
sub transCharName
{
set %transCharName #charName
set %charName #charName
str Len #charName
set %lenCharName #strRes
set %cont 1
while %cont <= %lenCharName
{
str Pos %transCharName #SPC
set %index #strRes
if %index <> 0
{
str Del %transCharName %index 1
set %transCharName #strRes
str Ins %transCharName _ %index
set %transCharName #strRes
set %cont %index
}
else
{
break
}
}
return
}
sub setCasco
{
loopSetCasco:
{
set #sysMsgCol 1391
event SysMessage ~1.- Selecciona el 'Casco' que contiene tu mochila.
set #targCurs 1
target
set #lTargetKind 1
loopTargetCasco:
{
if #targCurs = 0
{
onHotKey ESC
{
sound
goTo loopSetCasco
}
findItem #lTargetID A
if #findType in %CASCOS
{
set %CASCO #findID
goSub inBackpackCharID %CASCO
set #lTargetID %lTargetID
if #result = #FALSE
{
goTo loopSetCasco
}
goSub setBagObjsCabezaXY
return
}
else
{
goSub tryAgain
set #lTargetID %lTargetID
goTo loopSetCasco
}
}
}
goTo loopTargetCasco
}
}
sub setObjCabeza
{
loopSetObjCabeza:
{
set #sysMsgCol 1391
event SysMessage ~2.- Selecciona el objeto que llevaras en la cabeza, prenda para cubrir la cabeza o 'Casco', que contiene tu mochila o ficha.
wait 8
set #targCurs 1
target
set #lTargetKind 1
loopTargetObjCabeza:
{
if #targCurs = 0
{
onHotKey ESC
{
sound
goTo loopSetObjCabeza
}
findItem #lTargetID A
if #lTargetID <> %CASCO && #findType in %OBJSCABEZA
{
set %OBJCABEZA #findID
goSub inBackpackCharID %OBJCABEZA
set #lTargetID %lTargetID
if #result = #FALSE
{
goTo loopSetObjCabeza
}
return
}
else
{
goSub tryAgain
set #lTargetID %lTargetID
goTo loopSetObjCabeza
}
}
}
goTo loopTargetObjCabeza
}
}
sub tryAgain
{
sound
event ExMsg #lTargetID 3 1970 Intentalo de nuevo
return
}
sub inBackpackCharID
{
set %itemBuscado %1
set %cont 0
repeat
{
findItem %itemBuscado A
if #findCnt = 1
{
event Property #findBagID
set %cont %cont + 1
set %itemBuscado #findBagID
}
}
until #findBagID = #backpackID || #findBagID = #charID || Banco , #SPC , $Newbie$ In #property || #findBagID = X
if #findBagID <> #backpackID && #findBagID <> #charID
{
sound
if %cont > 1
{
set %itemBuscado %1
set %cont %cont - 1
for %i %cont 1
{
findItem %itemBuscado A
if #findCnt = 1
{
event ExMsg #findBagID 3 1970 %i
set %itemBuscado #findBagID
}
}
}
event ExMsg #lTargetID 3 1970 Contenme en tu mochila
return #FALSE
}
return
}
sub setBagObjsCabezaXY
{
set %itemBuscado %CASCO
set %contBagCasco 0
repeat
{
findItem %itemBuscado A
if #findCnt = 1
{
set %contBagCasco %contBagCasco + 1
if #findBagID <> #charID
{
if #findID = %CASCO
{
set %BAGCASCO #findBagID
}
set %bagCasco . %contBagCasco #findBagID
}
else
{
set %BAGCASCO #backpackID
set %bagCasco . %contBagCasco #backpackID
findItem * C_ , #backpackID
}
click #findX #findY dmc
set %xBagCont . %contBagCasco #contPosX
set %yBagCont . %contBagCasco #contPosY
set %itemBuscado #findBagID
}
}
until #findBagID = #backpackID || #findBagID = #charID
return
}
sub getBagObjsCabezaXY
{
set %lObjectID #lObjectID
for %i %contBagCasco 1
{
if %i <> %contBagCasco
{
nextCPos %xBagCont . %i %yBagCont . %i
set #lObjectID %bagCasco . %i
event Macro 17 0
goSub waitBag #lObjectID
}
else
{
goSub waitBag #backpackID
}
}
set #lObjectID %lObjectID
return
}
sub waitBag
{
while #contID <> %1
{
wait 1
}
return
}
sub scanTecla
{
while #TRUE
{
goSub filterHotKey
goSub corpseResurrection
}
return
}
sub corpseResurrection
{
if Tu_espiritu_retorna_a_su_cuerpo. = #sysMsg
{
goSub getBagObjsCabezaXY
}
return
}
sub filterHotKey
{
if #charID = %charID
{
if #charGHOST = NO
{
;TECLA [Ctrl] [Shift] [Alt]
onHotKey INSERT ;TECLA: A-Z|0-9|F1-F12|ESC|BACK|TAB|ENTER|PAUSE|CAPSLOCK|SPACE|PGDN|PGUP|END|HOME|LEFT|RIGHT|UP|DOWN|PRNSCR|INSERT|DELETE|NUMLOCK|SCROLLLOCK
{
goSub disarmObjCabeza
goSub armObjCabeza
}
}
else
{
nextCPos %xBagCont . %contBagCasco %yBagCont . %contBagCasco
}
}
return
}
sub disarmObjCabeza
{
if #charGHOST = NO
{
findItem %OBJCABEZA C_ , #charID
if #findCnt = 1
{
exevent Drag %OBJCABEZA
goSub waitDrag %OBJCABEZA
exevent Dropc %BAGCASCO
goSub waitDrop %OBJCABEZA %BAGCASCO
return %CASCO
}
else
{
findItem %CASCO C_ , #charID
if #findCnt = 1
{
exevent Drag %CASCO
goSub waitDrag %CASCO
exevent Dropc %BAGCASCO
goSub waitDrop %CASCO %BAGCASCO
}
else
{
findItem %OBJSCABEZA C_ , #charID
if #findCnt = 1
{
exevent Drag #findID
goSub waitDrag #findID
exevent Dropc %BAGCASCO
goSub waitDrop #findID %BAGCASCO
}
}
}
}
return %OBJCABEZA
}
sub armObjCabeza
{
if #charGHOST = NO
{
findItem #result A ;, %BAGCASCO
if #findCnt = 1
{
exevent Drag #result
goSub waitDrag #result
exevent Droppd
goSub waitDrop #result #CHARID
}
else
{
findItem %OBJSCABEZA A ;, %BAGCASCO
if #findCnt = 1
{
exevent Drag #findID
goSub waitDrag #findID
exevent Droppd
goSub waitDrop #findID #CHARID
}
}
}
return
}
sub waitDrag
{
set %playCrono #sCnt2
repeat
{
set %stopCrono #sCnt2 - %playCrono
if %stopCrono > 2
{
break
}
}
until #contKind = YMAC
wait 1
return
}
sub waitDrop
{
set %playCrono #sCnt2
repeat
{
set %stopCrono #sCnt2 - %playCrono
if %stopCrono > 2
{
break
}
}
until #contKind <> YMAC
wait 2
return
}