CaveBot w ElfBot
Cavebot może być używany przez zarówno zaawansowanych jak i zwykłych użytkowników. Może wykonywać proste polecenia typu chodzenie, ropanie, używanie drabin, itp. Jednakże możliwe jest stworzenie bardziej zaawansowanych zadań takich jak kupowanie manasów, odkładanie kasy do banku, sprzedawanie loota i wiele innych.
Poniższy poradnik przeprowadzi Cie przez tworzenie skryptów z kilkoma z wymienionych opcji.
WAŻNE: Upewnij się, że skonfigurowałeś Targeting aby atakować napotkane stwory.
Tworzenie waypointów
Aby zacząć kliknij na guzik Cavebota z głównego menu bota. Pojawi się okno z wieloma dostępnymi opcjami tak jak poniżej.

Jest 8 dostępnych typów waypointów których dodawanie jest raczej proste.
Stand: Dojdzie wszędzie niezależnie od tego co się po drodze stanie (dopóki cel jest osiągalny oraz na tym samym floorze). Najlepiej używać ich do stawiania przy miejscu do ropania, użycia łopaty, zejścia na dół czy też do góry oraz wszystkich miejsc w których musisz się znaleźć przed następnym waypointem.
Node: Ten typ waypointów powinien być używany podczas expienia. Są identyczne ze Standem z jedną chociaż ogromną różnicą. Posiadają bardzo przydatną opcję która została opisana poniżej.
Opcja "Skip Nearby Nodes" umieszczona w oknie Cavebota umożliwia ustawienie ile sqm'ów od waypointa Node musisz się znaleźć aby został on ominięty. Sprawia to, że bot ominie waypointy jeżeli przeszedł obok nich co przejawia największa użyteczność dla paladynów oraz magów którzy uciekają od stworów a potem muszą się wracać do miejsca gdzie owe stwory spotkali. Na dłuższą metę jest to ogromna ilość oszczędzonego czasu co przejawia się w większym expie na godzinę. Typowe i dobrze działające ustawienie to 5 (Klikasz na pole i przesuwasz wartość strzałkami w górę i dół).
Walk: Idzie do wyznaczonego miejsca. Jeżeli napotka stwora lub jakąś przeszkodę przejdzie do następnego waypointu. Najlepiej używać tego typu do wchodzenia na spawn stwora zabicia go i przejściu do następnego waypointu. Nie używaj tego do chodzenia po spawnach ponieważ bot ominie nie jeden waypoint.
Rope: Używa liny w danych miejscu. Najpierw użyj Stand aby stanąć obok rope spota a następnie użyj Rope.
Ladder: Tak jak wyżej tyle, że używa drabiny.
Shovel: Tak jak w Rope tylko, że używa łopaty.
Action: Daje miejsce do napisania komend, jedna na jedną linie. Można tu umieścić byle jakie komendy z hotkei. Warto wspomnieć, że Cavebot posiada własne okno komend wykonywanych od czasu włączenia opcji Follow Waypoints. Kliknięcie na guzik w prawym górnym rogu okna Cavebota spowoduje wyświetlenie owego okna komend.
Lure: Używane z opcja "Lure target" z 'Targeting stance'. Ustawia miejsce w kierunku którego cel powinien zostać zlurowany. Postać stanie w miejscu oznaczonym przez waypoint typu Lure i będzie tam stać dopóki stwór nie zginie.
Nowy waypoint zostaje umieszczony pod aktualnie zaznaczonym a wykonywanie waypointów zaczyna się od tego który jest zaznaczony w danej chwili.
Jak wejść na górę i na dół schodami/rampami/dziurami.
Możesz użyć opcji "Emplacement" aby ustawić waypoint 1 sqm od siebie a nie tylko na tym na którym aktualnie stoisz. Przykładem jest wejście do dziury która jest na południe od Ciebie. Zmieniasz "Emplacenet" na 'south' i ustawiasz waypoint typu 'Stand'. Ustawi to waypoint na południe od Ciebie którym jest dziura. Identycznie jest dla ramp, schodów, teleportów, itp.
Pamiętaj ustawiać "Emplacement" z powrotem na center jeżeli chcesz aby waypointy były tworzone na miejscu gdzie stoisz a nie obok!
Jak używać kołowrotów przy bramach, otwierać drzwi itp.
Utwórz waypoint typu Stand obok kołowrotu/drzwi, następnie typ Action z następującym skryptem:
usegrounditem idofitem
Zaczniemy od stworzenia kilku waypointów dla, np. rotów na darashi.
1. Zrób waypointy na całą jaskinię używając typu Node. Pamiętaj aby użyć "Stand" w celu stanięcia obok drabiny, rope spota czy też miejsca do rozkopania zanim umieścisz odpowiedni typ waypointu do danej akcji.
Action scripts
Action skrypty pozwalają na zdefiniowanie zachowania postaci. Zachowanie to może być dokładnie sprecyzowane lub warunkowe polegające na danych zdarzeniach. Tak jak wcześniej wspomniałem każda linijka jest oddzielną komendą (identyczne komendy występują w hotkeyach Elfbota). Często aby wykonać dane action skrypty gdy dany warunek zostanie spełniony trzeba przejść do danego waypointa. Używa się do tego etykiet (ang. label). Etykietowany waypoint posiada nazwę dzięki której można się do niego przenieść poprzez komendę "gotolabel NAZWA" niezależnie od tego który waypoint jest aktualnie wykonywany. Zaleca się nie używania spacji w nazwie etykiety.
Aby użyć etykiety (przypominam ang. label) zaznacz dowolny waypoint i kliknij na przycisk 'Label'. Otworzy się okno z pytaniem o nazwę etykiety. Po jej wpisaniu klikamy przycisk "Ok". Jednak problemem jest to, że nie widać który waypoint posiada etykietę, można to zmienić poprzez zaznaczenie opcji 'Show labels'.
2. Przydziel etykietę "start" (bez cudzysłowu) do pierwszego waypointu.
Jak już to zrobisz stwórz action skrypt na końcu listy. Można to zrobić na 2 sposoby. Zaznaczyć ostatni waypoint i stworzyć action skrypt klikając na guzik 'Action' lub stworzenie go w innym miejscu i przeciągnięcie na dół za pomocą przycisków '<' oraz '>'.
3. Stworzony 'Action' waypoint na końcu listy.
Jak już jest to zrobione zaznaczamy owy 'Action' waypoint. Zauważysz, że pod przyciskami dodających waypointy pojawi się pole tekstowe. Jest to miejsce na komendy. W naszym przypadku chcemy wrócić do waypointu opatrzonego etykietą 'start' jeżeli cap postaci jest wyższy lub równy 250. Aby to zrobić dodaj następującą komendę do action skryptu:
caphigher 250 gotolabel start
Ta komenda jest stworzona z warunku 'caphigher 250' który wykona zadanie 'gotolabel start' tylko i wyłącznie wtedy gdy cap postaci będzie wyższy lub równy 250. Możesz także użyć tej komendy jako hotkeya.
3. Dodana linia 'caphigher 250 gotolabel start' do Action skryptu stworzona by zrestartować pętle waypointów gdy cap postaci jest wyższy lub równy 250
Jak na razie mamy pętle waypointów która jest resetowana gdy dojdzie i Action skryptu i cap postaci będzie większy lub równy 250. Jako, że jest to ostatni waypoint gdy postać ma mniej capa niż 250 to i tak pętla jest resetowana i ostatecznie bot przechodzi do 1 waypointu. Chcemy to jednak zmienić.
Jeżeli stworzyć waypointy które wrócą do miasta za action skryptem zostaną one wykonane gdy cap postaci będzie mniejszy niż 250.
4. Stworzone waypointy do miasta zaraz za action skryptem.
Zakładając, że postać bez przeszkód wróciła do miasta jest teraz gotowa na zrobienie czegokolwiek. Patrząc na to cap postaci powinien być mniejszy niż 250 co oznacza potrzebę zdeponowania pieniędzy w banku oraz sprzedania uzbieranego loota. Aby to zrobić potrzebne są waypointy które dojdą do NPC.
5. Dojdź do NPC odpowiedzialnego za bank na darashii i ustaw stand waypoint w zasięgu rozmowy.
Aby porozumieć się z NPC będzie potrzebny nowy action skrypt.
6. Stwórz Action waypoint zaraz za Stand waypointem który przed chwilą ustawiłeś obok NPC odpowiedzialnego za bank.
Najpierw jak zapewne każdy wie trzeba się z NPC'em przywitać a następnie powiedzieć 'deposit all' i potwierdzić naszą decyzję o zdeponowaniu pieniędzy słówkiem 'yes'. Skrypt będzie wyglądać następująco:
say hi
npcsay deposit all
npcsay yes
Komenda 'npcsay' odpowiada za napisanie czegoś na kanale npc.
Normalnie wszystko powinno grać, jednak aby nie było tak różowo dodamy komendę która sprawdzi czy postać stoi na odpowiednim miejscu. Dla przykładu, jeżeli droga do NPC'a była zablokowana lub ktoś tam stał skrypt zostanie wykonany gdziekolwiek stoimy. Byłoby znacznie gorzej jeżeli jego zadaniem byłoby zrzucanie loota na ziemie co oznaczałoby jego utratę. Aby tego uniknąć trzeba dodać komendę 'isnotlocation skip' na początku action skryptu co spowoduje przejście do następnego waypointu jeżeli pozycja postaci nie jest równa pozycji na której zostaw ustawione action waypoint. Ostatecznie action skrypt powinien wyglądać następująco:
isnotlocation skip
say hi
npcsay deposit all
npcsay yes
Jeżeli wszystko pójdzie dobrze postać powinna zdeponować wszystkie pieniądze do banku.
7. Sprzedawanie reszty loota
Teraz trzeba sprzedać resztę uzbieranego loota. NPC który skupuje maczugi (mace) stoi na południu targowiska Darashii. Dojdź do niego.
8. Umieść stand waypoint obok NPC który kupuje i sprzedaje bronie na południowym końcu targowiska Darashii.
Action skrypt do interakcji z NPC powinien wyglądać następująco:
isnotlocation skip
say hello
npcsay trade
sellitems 3286 100
Otworzy trade i sprzeda wszystkie mace które masz aktualnie na sobie.
9. Stwórz action waypoint z tekstem powyżej aby sprzedać mace NPC'owi.
Możesz wrócić do banku i zdeponować pieniądze które otrzymałeś za sprzedaż mac ale to już pozostawiam Tobie. Zostało tylko wrócić na expa. Doczołgaj się do wejścia do jaskini z rotwormami gdzie expiłeś i stań 1 sqm na południe od wejścia. Jeżeli dziura jest zamknięta to ustaw Stand na miejscu gdzie aktualnie stoisz, zmień 'Emplacement' na north, ustaw Shovel a następnie Stand z 'Emplacement' także na north. Jeżeli dziura zawsze jest otwarta to wtedy tylko Stand z 'Emplacement' na north. Jak już postać znajdzie się na dole to zapewne tam zaczynają się Twoje waypointy. Jeżeli nie to stwórz jeszcze kilka aby postać doszła na piętro na którym się zaczynają. Gratulacje właśnie skończyłeś swój pierwszy skrypt! Teraz możesz już tylko zaznaczyć opcję 'Follow waypoint' i cieszyć się nowym skryptem. Pamiętaj o ustawieniu targetingu oraz lootingu i alarmach których obsługa jest wyjaśniona poniżej (poza targetingiem).
Jeżeli wszystko zrobiłeś prawidłowo skrypt powinien wyglądać następująco:

Alarmy
Ta część należy raczej do łatwiejszych. Elfbot posiada 5 rodzajów alarmów z czego każdy ma 3 odpowiadające mu rodzaje zdarzeń.
'S' oznacza, że w wypadku danego zdarzenia bot włączy alarm. Pliki z muzyką są w folderze 'sounds', możesz je zmieniać i dodawać nowe jak Ci się żywnie podoba.
'P' oznacza zatrzymanie cavebota. Jak na razie zatrzymuje targeting i 'follow waypoints'.
'X' oznacza X-log. Zamknie twoje połączenie z tibia i wyloguje Cie z gry po minucie w przypadku gdy miałeś pz.
Na specjalną uwagę zasługuje alarm typu Disconnect, który ma domyślnie i niemożliwe do zmiany zaznaczone 'R' (Reconnect). Oznacza to, że bot przeloguje Cie jak tylko wykryje zamknięcie połączenia. Nie próbuj sprawdzać tego poprzez ręczne wylogowanie się, ponieważ bot wykrywa tylko i wyłącznie nagłe zakończenie połączenia (kick), oznacza to, że w wypadku ręcznego wylogowania nie zostaniesz z powrotem zalogowany. Podczas SS (server save) bot zacznie próbować zalogować się z powrotem po upłynięciu 13-17 minut w losowych odstępach czasowych 20-30 sekund.
Loot
Główna myśl looting systemu była aby był on w miarę inteligentny i mam nadzieję, że taki się stał. Jednak wciąż wymaga kilku małych zmian.
List box (lista itemów do zbierania) listuje wszystkie itemy które chcesz zbierać. Aby dodać nowy item kliknij na i uzupełnij 3 boksy tekstowe poniżej. Pierwszy odpowiada za id itemu (aby je pobrać użyj 'look' na item a pojawi się jego id na dole ekranu). Drugi jest odpowiedzialny za to do jakiego plecaka trafi dany przedmiot. Można tu wpisać liczbę od 0-15 która będzie odpowiadała indeksowi bp oraz 'e' co odpowiada za wrzucenie itemu do pierwszego plecaka z wolnym miejscem. Trzeci boks jest opisem danego itemu, można tu wpisać WOI jako opis lootowania wand of inferno, itp. Aby usunąć przedmiot z listy do lootowania po prostu zaznaczamy przedmiot do usunięcia z listy i klikamy na guzik 'Del'.
Poniżej jest spis pozycji które są dostępne w drugim boksie:
0-15: id okna otwartych bp.
e: automatycznie znajduje wolne miejsce i wrzuca tam item.
e1: jak wyżej z tą różnicą, że omija pierwsze otwarte okno.
g: wyrzuca loot na ziemie (tam gdzie aktualnie stoisz).
Do expienia na rotwormach stworzyłem 2 poniższe wpisy:
03031 e gold
03038 e mace
Zbiera golda i mace do pierwszego wolnego slota.
Opcje
Tutaj możesz wybrać jakiej liny oraz łopaty ma używać bot do ropania się lub rozkopywania dziur. Wybór jest pomiędzy Rope, Elvenhair rope, Shovel i Light Shovel.
Umieszczone są tu także 3 opcje odpowiedzialne za system lootowania:
Open next bp: Sprawdzi całe twoje aktualnie otworzone okna (backpacki) i sprawdzi czy są pełne. Jeżeli tak to automatycznie otworzy nowy backpack czy też inny kontener (oczywiście jeżeli takowy istnieje) w danym backpack'u.
Loot nearby targets: będzie lootować itemy ze stworów które zginą obok Ciebie podczas wykonywania waypointów. Itemy do pozbierania są pobierany z listy.
Loot distant targets: zapamiętuje gdzie dane stwory zostały zabite i wraca do nich aby pozbierać z nich loota zaraz gdy zabije inne napotkane stwory. Lista zapamiętanych potworów zostaje zresetowana po zaznaczeniu i odznaczeniu 'Follow waypoints'.
Zapisywania ustawień:
Jak juz skończysz pamiętaj żeby zapisać ustawienia do pliku. Wpisz nazwe pliku albo wybierz z listy i kliknij na 'Save' aby zapisać ustawienia na dysk. Jeżeli nie wpiszesz nazwy to po wciśnięciu przycisku pojawi się okno które pozwoli Ci wybrać plik. Pamiętaj jednak, że nie musisz za każdym razem gdy dokonasz najmniejszych zmian w skrypcie nadpisywać go na dysk. Zmiany są zapisywane zaraz po tym jak zostaną wprowadzone (czasami musisz odznaczyć pole które z edytowałeś aby zmiany zostały wprowadzone).
Na koniec dodam, że action skrypt jest potężnym narzędziem które otwarte jest na wiele możliwości. Poeksperymentuj z nim.
Udanego botowania!


