Status serwera H&H widoczny tylko dla zalogowanych użytkowników.



  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Skrypt Skrypty dla Uniona



#1
Postanowiłem stworzyć obszerne "centrum" wspierania botów dla polskiej społeczności, głównie dla tych, którzy nie wiele wiedzą o tej dziedzinie lub dla tych, którzy z jakiegoś powodu nie uczestniczą w życiu codziennym oficjalnego forum gry i nie śledzą na bieżąco terminów wydania danych skryptów.

Nie jestem pewien ogólnej koncepcji całego tematu ale najlepiej (według mnie) wyglądałoby to tak, że wrzucałbym na pierwszą stronę gotowe skrypty z krótkim opisem działania i tego co ewentualnie można zmienić dla lepszego lub bardziej spersonalizowanego działania bota. Jeśli ktoś umieści swego bota w temacie to dodam też odnośnik do tego miejsca by twórca mógł zgarnąć zasłużone piwa.

W temacie nie prowadzimy pomocy z technicznym działaniem samego clienta. Pojawiać się będą trzy rodzaje botów. Te ukończone i sprawdzone (często z oficjalnej strony), ukończone i nietestowane oraz nieukończone z jakiegoś powodu, tak by zainteresowani mogli je pobrać, poprzerabiać/naprawić - z doświadczenia wiem, że czasem lepiej coś poprawić niż pisać od nowa.

Wszelkie propozycje będziemy rozważać jeśli tylko będą sensowne, rozważać je będziemy częściej i skuteczniej (;]) gdy użytkownik sam będzie konstruktywnie aktywny w temacie.

PS. W miarę czasu i możliwości będę dodawał wszystko i edytował by było czytelnie i jasno, początkowy bałagan musicie mi wybaczyć. Pierwsze skrypty dodam jak tylko popoprawiam komentarze i znajdę na to czas.



1: Skrypt do farmingu. LINK
- wymagania: wiadro wody, bukłak z wodą, trochę wolnego miejsca w ekwipunku, kosa,      oraz dla niektórych roślinek (jak np: flax, wheat) wymagane są seedbags.
- sposób działania: stajemy przy polu z daną roślinką, następnie uruchamiamy skrypt, wybieramy interesującą nas pozycję z listy. Bot powinien zacząć obrabiać nasze pola - potrafi omijać przeszkody.
- błędy i przeszkody: brakuje skryptu dla ścinania groszku (jak znajdę czas to go napiszę), z przyczyn oczywistych bot zawiesza się jeśli roślinki są w niedostępnym miejscu (np posadzone pod kamieniem), źle działa skrypt dla zbierania herbaty.
- propozycje: Chciałbym by po skończeniu ścinania postać teleportowała się do ogniska dla bezpieczeńśtwa, trzeba dopisać skrypt do groszków, poprawić herbatę i dodać ikonkę dla wyglądu.

1: Skrypt do zbierania obiektów z ziemi LINK
- wymagania: miejsce w ekwipunku.
- sposób działania: uruchamiamy skrypt i dostajemy komunikat "select object", po naciśnięciu leżącego na ziemi obiektu (np. marchwi, deski itp.) nasza postać zacznie zbierać wszystkie obiekty danego typu w polu widzenia.
- błędy i przeszkody: brak omijania przeszkód.
- propozycje: może wprowadzenie pathfindingu choć pewnie zmniejszyłoby to szybkość bota do poziomu "męczący"
W9 - HopesFall
W8 - Godtuwn
W7 - Korpiklaani, AD, Cookietown
W6 - Polan Horde, Nova Hoota, D13, Winterfell, AD
W5 - Ruj I Chuj, Thorn in Foothills
W4 - Melina
W3 - Ostrowin, Clockwork City, Rhovanion


„Utopię waszą utopię”



Odpowiedz



#2
Propozycja: mam bota (pewnie tego samegoTongue) do podnoszenia rzeczy z ziemi i do tego mam bota do wsadzania rzeczy z inventory do najbliższego fooderu. Wydaje mi się, że połączenie tych dwóch botów byłoby w miare proste, bez dodawania zbędnego wyszukiwania ścieżki, a i dość przydatne Smile

Związek Zwierząt Hodowlanych i Udomowionych się tego wręcz domaga!



Odpowiedz



#3
Mogłabyś wrzucić, chętnie połączę te dwa skrypty w jeden Smile
W9 - HopesFall
W8 - Godtuwn
W7 - Korpiklaani, AD, Cookietown
W6 - Polan Horde, Nova Hoota, D13, Winterfell, AD
W5 - Ruj I Chuj, Thorn in Foothills
W4 - Melina
W3 - Ostrowin, Clockwork City, Rhovanion


„Utopię waszą utopię”



Odpowiedz



#4
Napisałem małego bota, który może się przydać przy budowie piwnicy. Automatycznie wykopuje kamienie, przerabia je na runestone i niszczy. Wymagania to troszke wolnego miejsca (bot zaniesie kamień na miejsce w którym go odpaliliśmy), kilof i woda. LINK do bota.

PS Mógłby mi ktoś powiedzieć w jakich znacznikach mam zamknąć kod ?
Kod:
//#! name = Cellar Digger
//#! uniq = by Mundek
//#! icon = gfx/invobjs/stone

function checkInventory() {
    if(!jHaveWindow("Inventory")) {
        jToggleInventory();
        while(!jHaveWindow("Inventory")){
            jSleep(100);
        }
    }
    return jGetWindow("Inventory").getInventories()[0];
}

function drinkWater() {
    var inventory = checkInventory();
    var buckets = inventory.getItems("bucket-water");
    if (buckets.length > 0) {
        inventory.sortItems(buckets, "amount", false);
        var bucket = buckets[0];
        var bucket_coord = bucket.coord();
        if (bucket.isActual()) {
            bucket.take();
            jWaitDrag();
            var flasks = inventory.getItems("waterflask", "waterskin");
            if (flasks.length > 0) {
                var flask = flasks[0];
                if (flask.isActual()) {
                    flask.itemact(0);
                    jSleep(500);
                    inventory.drop(bucket_coord);
                    jWaitDrop();
                }
            }
        }
    }
    var flasks = inventory.getItems("waterflask", "waterskin");
    if (flasks.length > 0) {
        var flask = flasks[0];
        if (flask.isActual()) {
            flask.iact();
            if (jWaitPopup(100)) {
                jSelectContextMenu("Drink");
                jWaitProgress();
            }
        }
    }
}

function waitPickup(){
    var player = jFindObjectByName("borka", 1)
    while (player.isCarrying() == false){
        jSleep(100)
    }
}

function waitPlace(){
    var player = jFindObjectByName("borka", 1)
    while (player.isCarrying() == true){
        jSleep(100)
    }
}

function destroyThis(gob){
    var name = gob.name().split('/')
        var name2 = name[name.length-1];
    while (gob.isActual()){
        jSendAction("destroy");
        while (!jIsCursor("mine")){
            jSleep(100);
        }
        jDoClick(gob.getID(), 1, 0);
        while ((jGetStamina() >35)&&(gob.isActual())){
            jSleep(1000);
        }
        drinkWater();
    }
    jToConsole(name2+" destroyed");
}

function makeRunestone(){
    var stone = jFindObjectByName("bumlings/02", 666);
    jSendAction("runestone");
    jSendDoubleAction("swrk", "runestone")
    jDoClick(stone.getID(), 1, 0);
}

function resetCursor() {
    if (!jIsCursor("arw")) {
        jAbsClick(jCoord(0, 0), 3, 0);
        jWaitCursor("arw");
    }
}

function main()
{
    checkInventory();
    var startPosition = jMyCoords();
    var cellar = jFindObjectByName("door-cellar",666);
    while(1)
    {
            jDoClick(cellar.getID(), 3, 0);
            waitPickup();
            jAbsClick(startPosition, 3,0);
            waitPlace();
            makeRunestone();
            resetCursor();
            var runestone = jFindObjectByName("runestone", 666);
            while(runestone==null)
            {
                jSleep(500);
                runestone = jFindObjectByName("runestone", 666);
            }
            destroyThis(runestone);
    }
}

main();




Odpowiedz



#5
Ten oryginalny bot mundzia oczywiście z oficjala.

http://www.havenandhearth.com/forum/vie ... 2&start=80

kod taki sam
[Obrazek: u3l5bzm.gif]

W4 - Hermit
W5 - Lemegeton
W6 - Erathia,Boulder Village
W7 - AD, DIS, Polska Crev
W8 - Polska Crev
W9 - DIS, Polska Crev



Odpowiedz



#6
Nie wiem gdzie masz na tej stronie bot na kopanie piwnicy ale go nie widze. Kod na 100% nie jest taki sam bo sam go pisałem. Jeśli coś ci się nie podoba możesz nie pobierać/kopiować



Odpowiedz



#7
Jest może bot zbierający powalone drzewa i ustawiający je w jedno miejsce oraz usuwający pieńki?



Odpowiedz



Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Użytkownicy przeglądający ten wątek:
1 gości