* * * * * * * * * * Zamknięte forum dyskusyjne Gildii Najemników na prywatnym serwerze "Dziedzictwo Mistrzów" na bazie gry Ultimy Online * * * * * * * * *
Aktywny
;%Rodzaje_drzew - defaultowo drzewo_cedr_dab_orzech_wierzba_cyprys_cis_o'hii - okresla jakich drzew ma szukac, jesli chcesz tylko zwykle drzewa to zmien na drzewo, a jesli np. cyprysowe i ohii to zmien na cyprys_o'hii (te nazwy musza byc dokladnie takie same jak na liscie)(nie mozna uzywac spacji, zamiast tego stosowac "_" )(kolejnosc jest obojetna, nic nieznaczaca).
;%Max_waga - defaultowo 600 - jesli twoja waga przekroczy ta wartosc skrypt zatrzyma sie.
;%Max_odleglosc - defaultowo 13 - maxymalna odleglosc od postaci w jakiej beda szukane drzewa (czyli defaultowo przeszukuje kwadrat o boku 27, a postac jest w jego centrum)(jesli ta odleglosc bedzie za duza to nie bedzie w stanie dojsc do drzewa).
;================
;set %Rodzaje_drzew cyprys_drzewo_YEW_drzewo_cedr_dab_orzech_wierzba_drzewo_o'hii
set %Rodzaje_drzew cyprys_drzewo_YEW_drzewo_cedr_dab_orzech_wierzba_drzewo_o'hii
set %Sciezka_do_wava C:\WINDOWS\Media\tada.wav
set %Max_waga 250
set %Max_odleglosc 20
set %ilm 2 ; Ilosc zdefiniowanych magazynow w lokalizacji
set %Magazynier 1 ; Czy odkładamy kłody do magazynu? 0-nie, 1-Magazynier(1), 2-Magazynier(2), itd.
set %czyJesc #true ; Czy jemy gdy jest potrzeba? Aby sprawdzanie/jedzenie dzialalo wymagany jest dodatkowy skrypt
set %jedzenie IND_GUD_FND_HQD_WLI_QRD_NRD_VRD_NWI ; TYP jedzenia
;================
set %Id_plecaka_juczniaka 0
gosub Wskaz_juczniaka
wait 5
gosub Wskaz_siekiere
wait 5
start:
set #lpc 200
set %Plecak_lamy_pelny 0
tile Init noOverrides
; gosub nakarm_zwierzaki ; karmi juczniaki
if drzewo in %Rodzaje_drzew
set %Rodzaje_drzew tree_ , %Rodzaje_drzew
;set %x_poczatek #charposx - %Max_odleglosc
;set %y_poczatek #charposy - %Max_odleglosc
set %x_poczatek #charposx
set %y_poczatek #charposy
set %x_koniec #charposx + %Max_odleglosc
set %y_koniec #charposy + %Max_odleglosc
for %x %x_poczatek %x_koniec
{
for %y %y_poczatek %y_koniec
{
tile Cnt %x %y
for %i 1 #tilecnt
{
tile Get %x %y %i
if #tilename in %Rodzaje_drzew && Impassable in #tileflags
{
set #lpc 10
gosub Podejdz_do_drzewa
if #result
{
wait 10
gosub Scinaj_drzewo
}
else
{
set #sysmsgcol 1080
event sysmessage Nie udalo mi sie dostac do drzewa.
set #sysmsgcol 1152
event sysmessage Szukam dalej...
}
set #lpc 200
break
}
}
}
}
sound C:\WINDOWS\Media\ding.wav
Display yesno Idziemy dalej?
if #dispRes = Yes
{
gosub Idz_na_ustawxy
goto start
}
Koniec:
sound %Sciezka_do_wava
set #sysmsgcol 1152
event sysmessage Przeszukiwanie skonczone.
halt
sub Podejdz_do_drzewa
set #sysmsgcol 1152
event sysmessage Znalazlem drzewo o nazwie #tilename , #dot
wait 5
if %Id_plecaka_juczniaka <> 0
event macro 1 0 za mna
wait 5
deletejournal
set %Uzyte_move_x_y 0
Zacznij_isc:
event pathfind %x %y #tilez
set %Timer #scnt2 + 5
repeat
if %Timer < #scnt2
goto Zacznij_isc
scanjournal 1
if #journal = Can't_get_there
return #false
until #journal = Pathfinding!
set %Timer 0
set %Char_x_old -1
set %Char_y_old -1
repeat
if %Timer < #scnt2
{
scanjournal 1
if Zapisywanie_Stanu_Swiata in #journal || #journal = Pathfinding!
{
if #journal = Pathfinding!
{
scanjournal 2
if Zapisywanie_Stanu_Swiata in #journal
goto Przeczekaj_zapis
goto Omin_przeczekiwanie_zapisu
}
Przeczekaj_zapis:
wait 90
continue
}
Omin_przeczekiwanie_zapisu:
if %Char_x_old = #charposx && %Char_y_old = #charposy
{
if %Uzyte_move_x_y = 2
return #false
gosub Uzyj_move_x_y
if ! #result
return #false
goto Zacznij_isc
}
set %Char_x_old #charposx
set %Char_y_old #charposy
set %Timer #scnt2 + 30
}
if #stamina < 1 && %Odleglosc > 1
{
repeat
gosub Oblicz_odleglosc
until #stamina > 9 || %Odleglosc < 2
event pathfind %x %y #tilez
}
gosub Oblicz_odleglosc
until %Odleglosc < 2
if %Odleglosc < 1
return #false
return #true
sub Oblicz_odleglosc
set %Odl_x %x - #charposx abs
set %Odl_y %y - #charposy abs
if %Odl_x > %Odl_y
set %Odleglosc %Odl_x
else
set %Odleglosc %Odl_y
return
sub Uzyj_move_x_y
move %x %y 1 9s
if #charposx = %Char_x_old && #charposy = %Char_y_old
return #false
set %Uzyte_move_x_y %Uzyte_move_x_y + 1
return #true
sub Scinaj_drzewo
Petla_scinania_drzewa:
if %czyJesc = #true
{
jesliGlod:
if *ivGlod = #true
{
gosub jedzenie %jedzenie
goto jesliGlod
}
}
deletejournal
Toporek:
if #weight > %Max_waga
{
sound %Sciezka_do_wava
set #sysmsgcol 1080
event sysmessage Osiagnieto maksymalna wage - %Max_waga
if %Magazynier > 0
{
event sysmessage Udaje sie do magazynu.
; zapamietaj gdzie stalem
set %obecneXYx #CHARPOSX
set %obecneXYy #CHARPOSY
if %Magazynier > %ilm
{
event sysmessage Brak definicji magazynu.
halt
}
else
gosub Magazyn %Magazynier
wait 5
event sysmessage Wracam na stara lokalizacje.
move %obecneXYx %obecneXYy 1 120s
gosub Idz_na_ustawxy
goto start
}
sound C:\WINDOWS\Media\ding.wav
event sysmessage KONIEC.
halt
}
gosub siekiera ; zaloz siekiere
set #lobjectid %siekiera
event macro 17
set %Timer #scnt2 + 5
repeat
if %Timer < #scnt2
goto Toporek
until #targcurs = 1
Celownik:
gosub Ustaw_x_y_drzewa
event macro 22
set %Timer #scnt2 + 5
repeat
if %Timer < #scnt2
goto Celownik
until #targcurs = 0
set %Timer_scinania_drzewa #scnt2 + 110
if %Id_plecaka_juczniaka <> 0 && %Plecak_lamy_pelny = 0
gosub Przezuc_klody
repeat
scanjournal 1
if Stoisz_za_daleko in #journal || Nie_wiesz_jak_uzyc_te_przedmioty_razem in #journal || Nie_mozesz_tego_uzyc in #journal || To_drzewo_wyglada_juz_na_wystarczajaco_obciete in #journal
return
until ( s_troche_ in #journal && _klod_i_wlozyl in #journal ) || Zniszczyles_klody in #journal || Zniszczylas_klody in #journal || Oddaliles_sie in #journal || Oddalilas_sie in #journal || %Timer_scinania_drzewa < #scnt2
goto Petla_scinania_drzewa
sub Ustaw_x_y_drzewa
set #ltargetx %x
set #ltargety %y
set #ltargetz #tilez
set #ltargetkind 3
set #ltargettile #tiletype
return
sub Przezuc_klody
Poczatek_przezucania_klod:
finditem zlk C_ , #backpackid
if #findkind = -1
return
set %Id_klod #findid
set %Stack_klod #findstack
set %Kolor_klod #findcol
Klody_Plecak_juczniaka_petla:
finditem %Id_plecaka_juczniaka C_ , #charid
if #findkind = -1
{
finditem %Id_juczniaka
if #finddist > 1
{
Klody_Powiedz_podejdzcie:
if #finddist > 8
{
event sysmessage Juczniak stoi za daleko.
return
}
event macro 1 0 podejdzcie
set %Timer #scnt2 + 10
repeat
if %Timer < #scnt2
goto Klody_Powiedz_podejdzcie
finditem %Id_juczniaka
until #finddist < 2
}
set #lobjectid #findid
wait 5
event macro 17
wait 20
goto Klody_Plecak_juczniaka_petla
}
ExDrag_klod:
exevent drag %Id_klod %Stack_klod
set %Timer #scnt2 + 25
repeat
if %Timer < #scnt2
goto ExDrag_klod
finditem %Id_klod C_ , #backpackid
until #findkind = -1
finditem zlk C_ , %Id_plecaka_juczniaka
set %Id_klod_w_plecaku_juczniaka 0
for %k 1 #findcnt
{
if #findkind = -1
break
set #findindex %k
if #findcol = %Kolor_klod
{
set %Id_klod_w_plecaku_juczniaka #findid
set %Stack_klod_w_plecaku_juczniaka #findstack
break
}
}
set %Cnt_drop_klod 0
ExDrop_klod:
set %Cnt_drop_klod %Cnt_drop_klod + 1
if %Cnt_drop_klod > 4
goto Poczatek_przezucania_klod
exevent dropc %Id_plecaka_juczniaka
set %Timer #scnt2 + 12
repeat
if %Timer < #scnt2
goto ExDrop_klod
scanjournal 1
if That_item_is_too_heavy in #journal
{
set %Plecak_lamy_pelny 1
return
}
if %Id_klod_w_plecaku_juczniaka = 0
finditem %Id_klod C_ , %Id_plecaka_juczniaka
else
finditem %Id_klod_w_plecaku_juczniaka C_ , %Id_plecaka_juczniaka
until ( #findkind = 0 && %Id_klod_w_plecaku_juczniaka = 0 ) || ( #findstack = %Stack_klod_w_plecaku_juczniaka + %Stack_klod && %Id_klod_w_plecaku_juczniaka <> 0 )
goto Poczatek_przezucania_klod
sub Wskaz_juczniaka
set #targcurs 1
set #sysmsgcol 1152
Wskaz_juczniaka:
event sysmessage Wskaz juczniaka.
set %Timer #scnt2 + 90
repeat
if %Timer < #scnt2
goto Wskaz_juczniaka
onhotkey ESC
return
until #targcurs = 0
onhotkey ESC
return
set %Id_juczniaka #ltargetid
Sprawdz_tego_juczniaka:
finditem %Id_juczniaka
if #findtype <> wn && #findtype <> bo
{
event sysmessage To nie jest ani kon ani lama juczna.
return
}
if #finddist > 1
{
if #finddist > 8
{
event sysmessage Juczniak stoi za daleko.
return
}
event macro 1 0 podejdzcie
set %Timer #scnt2 + 10
repeat
if %Timer < #scnt2
goto Sprawdz_tego_juczniaka
finditem %Id_juczniaka
until #finddist < 2
}
set %Id_jakiegos_gumpa #contid
set #lobjectid #findid
event macro 17
set %Timer #scnt2 + 10
repeat
until #contid <> %Id_jakiegos_gumpa || %Timer < #scnt2
finditem #contid C_ , #charid
if #findtype <> zjf || #findid = #backpackid
goto Sprawdz_tego_juczniaka
set %Id_plecaka_juczniaka #contid
return
sub jedzenie
finditem %1 C
if #FINDCNT > 0
{
set #lobjectid #FINDID
event macro 17
}
else
{
event sysmessage SKONCZYLO SIE JEDZENIE!
sound %Sciezka_do_wava
; halt
}
wait 2s
return
sub Magazyn
if %1 = 1
{
move 507 970 0 60s
move 505 981 0 20s
}
if %1 = 2
{
move 568 1018 0 60s
}
wait 20
gosub Otworz_juke
wait 5
event macro 1 0 Otworz moj magazyn
wait 20
click 610 430
Display OK Przerzuc kłody i nacisnij ESC
; set #lpc 1000
desactive:
onhotkey ESC
goto active
goto desactive
active:
wait 10
click 550 400 r
wait 5
return
sub Otworz_juke
finditem %Id_plecaka_juczniaka C_ , #charid
if #findkind = -1
{
finditem %Id_juczniaka
if #finddist > 1
{
Klody_Powiedz_podejdzcie:
if #finddist > 8
{
event sysmessage Juczniak stoi za daleko.
return
}
event macro 1 0 podejdzcie
set %Timer #scnt2 + 10
repeat
if %Timer < #scnt2
goto Klody_Powiedz_podejdzcie
finditem %Id_juczniaka
until #finddist < 2
}
set #lobjectid #findid
event macro 17
}
return
sub Wskaz_siekiere
set #targcurs 1
set #sysmsgcol 1152
Wskaz_siekiere:
event SysMessage Wskaz siekere:
set %Timer #scnt2 + 90
repeat
if %Timer < #scnt2
goto Wskaz_siekiere
onhotkey ESC
goto Wcisnieto_ESC
until #targcurs = 0
onhotkey ESC
{
Wcisnieto_ESC:
set #sysmsgcol 1080
event sysmessage Nie wskazales celu.
halt
}
set %siekiera #ltargetid
return
sub siekiera ; załóż siekierę
finditem %siekiera C_ , #CHARID
if #findkind <> 0
{
finditem %siekiera C_ , #BACKPACKID
if #findkind = 0
{
Exevent Drag #FINDID
Exevent Droppd
Exevent Droppd
}
else
gosub Wskaz_siekiere
}
wait 10
return
sub nakarm_zwierzaki
return
Sub Idz_na_ustawxy
set %ustawx #charposx + 1
set %ustawy %y_poczatek
Event Sysmessage Poprawiam koordynaty na X: %ustawx Y: %ustawy
Idznaustawxy:
; Event Pathfind %ustawx %ustawy #tilez
; set %Timer #scnt2 + 5
; repeat
; if %Timer < #scnt2
; goto Idznaustawxy
; scanjournal 1
; if #journal = Can't_get_there
; goto Koniec
; until #charposx = %ustawx && #charposy = %ustawy
Move %ustawx %ustawy 0 10s
return
Offline