Você está na página 1de 4

;Macro corta árvores caminhando em pontos definidos pelo jogador, scaneando

tiles procurando por árvores


; e usa Hiding e Stealth para permanecer furtivo enquanto corta e caminha até o
local para guardar os logs e repete.
;Este macro utiliza as Teclas F9 e F10 para marcar os locais que deseja cortar
árvores e iniciar
;Desative Hotkeys que vc tenha nas teclas F9 e F10
;A bag e a barra de status devem permanecer abertas em qualquer lugar da tela
;Ajuste as variáveis abaixo conforme indicado.
;Ao iniciar o macro você deve marcar os pontos do lado de árvores, pode
marcar um ponto que pega todas arvores num raio de 2 tiles.
;Marque pontos se precisar "fazer curvas" ou desviar de obstáculos, mesmo que
não tenham árvores.
;O último ponto (F9) deve ser ao lado do bau ou banco pra guardar os logs, em
seguida pressione F10.
;É bom que o primeiro e último ponto completem uma "volta" ou circuito, para
que o macro funcione bem. Pense nisso ao marcar o primeiro ponto.

initEvents
tile init
;-Variáveis do jogador
set %bau XAPTNMD ;Defina o ID do bau que deseja usar para guardar os logs (Wooden
Box que esta definido).
set %bank 1 ;Se o bau estiver no banco deixe valor 1 se quer usar bau em casa valor
0.
set %peso 370 ;Defina o peso maximo para comecar a guardar os logs
set %machado ZRF_BSF_JOH_MPH_NSF_FSF_SMH_LSF ;Pode utilizar qualquer machado
vendido no NPC blacksmithing.

;---Variaveis de controle
set %raio 2
set %2 tree
set %rail_pointer 0
set %voltas 0

event macro 8 7 ;abre backpack uma vez antes de começar, vc pode mover mas não
deve fechar.
wait 10
event macro 8 2 ;abre status bar uma vez antes de começar, vc pode mover mas não
deve fechar.

event SysMessage Selecione os Pontos onde Deseja cortar as arvores. F9 - salva, F10
- termina
loop_rail:
Onhotkey F9
Gosub rail_save
Onhotkey F10
Goto rail_end
goto loop_rail
rail_end:
event SysMessage Começando o macro!

;--------------------------------------------------------------------------------

loopzin:
for %n 1 %rail_pointer
{
move %rail_pointx . %n %rail_pointy . %n 0 15s
wait 20
if #CHARPOSX <> %rail_pointx . %n && #CHARPOSY <> %rail_pointy . %n
{
move %rail_pointx . %n %rail_pointy . %n 0 5s
}
if %n = %rail_pointer
{
gosub guarda_logs
}
if #weight >= %peso
{
goto fim
}
else
{
gosub tilescanner
}
fim:
}

goto loopzin

;--------------------------------------------------------------------------------
sub rail_save
wait 10
Set %rail_pointer %rail_pointer + 1
Set %rail_pointx . %rail_pointer #CHARPOSX
Set %rail_pointy . %rail_pointer #CHARPOSY
event SysMessage Ponto SALVO %rail_pointer .

return

;--------------------------------------------------------------------------------

sub guarda_logs
if %bank = 1
{
msg Beau bank$

}
event macro 8 7
wait 1s

checklog:
finditem ZLK C_
if #findid = X
{
set %voltas %voltas + 1
return
}
exevent drag #findid #findstack
wait 10
Exevent dropc %bau ;id do bau pra guardar
wait 1s
goto checklog
;-------------------------------------------------------------------------------

sub TileScanner

Set %Scan_Low_X_Point #CHARPOSX - %raio


Set %Scan_High_X_Point #CHARPOSX + %raio
Set %Scan_Low_Y_Point #CHARPOSY - %raio
Set %Scan_High_Y_Point #CHARPOSY + %raio
Set %tile_index 0

For %scan_X_Point %scan_Low_X_Point %scan_High_X_Point


{
For %scan_Y_point %scan_Low_Y_Point %scan_High_Y_Point
{
Tile cnt %Scan_X_Point %Scan_Y_Point
For %tile_scan 1 #TILECNT
{
Tile get %Scan_X_Point %Scan_Y_Point %tile_scan
Set %ZCompare #CHARPOSZ - #TILEZ abs
If ( %2 in #TILENAME || %2 = ALL ) && %ZCompare < 19
{
Set %tile_index %tile_index + 1
Set %Tile_Name . %Tile_Index #TILENAME
Set %Tile_Type . %Tile_Index #TILETYPE
Set %Tile_X . %Tile_Index %Scan_X_Point
Set %Tile_Y . %Tile_Index %Scan_Y_Point
Set %Tile_Z . %Tile_Index #TILEZ
Set %Tile_CompareDistX abs ( #CHARPOSX - %Tile_X . %Tile_Index )
Set %Tile_CompareDistY abs ( #CHARPOSY - %Tile_Y . %Tile_Index )
If %Tile_CompareDistX > %Tile_CompareDistY
Set %Tile_Distance . %Tile_Index %Tile_CompareDistX
Else
Set %Tile_Distance . %Tile_Index %Tile_CompareDistY

gosub lumberjack

}
}
}
}
Return

; ---------------------------------------------

sub lumberjack

For %choptarget 1 3
{
event ExMsg #charID 3 0 Ja fui no banco %voltas vezes!
event exmsg #charID 3 0 Estou no ponto %n de %rail_pointer
stealth:
if H notin #charstatus
{
event macro 13 21 ;hiding
wait 4s
goto stealth
}
Wait 0
finditem %machado C_
Set #LOBJECTID #findid ;<-------ID DO MACHADO
Set #LTARGETX %tile_X . %tile_index
Set #LTARGETY %tile_Y . %tile_index
Set #LTARGETZ %tile_Z . %tile_index
Set #LTARGETKIND 3
Set #LTARGETTILE %tile_type . %tile_index
Event macro 17 0
Target
Event macro 22 0

for %y 1 15
{
Wait 1s
set %choptarget 1 ;tava comentado
scanjournal 1
if ha_madeiras_aqui in #journal || muito_longe in #journal || parece_imune in
#journal || reach_this in #journal || Nao_ha_madeiras_aqui in #journal
{
set %choptarget 3
set %y 15
}
if em_sua_mochila in #journal || nao_encontrou in #journal ||
voce_nao_conseguiu in #journal
{
deletejournal
goto fimlumber
}
deletejournal
}
fimlumber:
}
Wait 3
Return

halt

Você também pode gostar