Skip to content

Releases: TieruYT/metin2-playerbots

2.0.94 — blokady expa Grindera

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 19:36

Serwer 2.0.94. Klient bez zmian (2.0.23).

Boty nie zatrzymują się już całą wsią na jednym poziomie. Zgłosił Iwakura. Policzone dla całej kohorty: na poziomach 19–24 stawało po 3,4–3,8% botów, a na 25 aż 15,6%. Przyczyną było jedno losowanie wspólne dla wszystkich tierów — pierwsza wioska (13–19) i M3 (19–25) mają tę samą szerokość, więc bot z szóstą pozycją w przedziale dostawał w wiosce blokadę 19, której jej pasmo nie osiąga, i lądował na 25. Każdy tier losuje teraz osobno: 4,8–5,4% równo na 19–25.

Powyżej Góry Sohan nie ma już blokady. Tabela kończy się na 62, a bot, który ją przerósł, blokował się tam, gdzie akurat stanął — w logach 112 botów zamrożonych na 71. Blokady zapisane pod starą regułą są zdejmowane.

Czego to nie naprawia: awans nadal kończy blokady na zawsze, więc tiery M2 (30–35), Doliny (40–48) i Sohanu (55–62) nie działają. To i zaprojektowany przez Iwakurę rozłam po pierwszej wiosce wchodzą w następnym wydaniu.

2.0.93 — lurowanie na zlecenie gracza

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 17:54

Serwer 2.0.93. Klient bez zmian (2.0.23).

Lurowanie na zlecenie gracza. Zgłoszone przez ĹŌŞƬĒĶ (l0st3k) i NerrVoVy — i okazały się dwie różne awarie naraz, a dwie z trzech przyczyn wprowadziliśmy sami w dwóch poprzednich wydaniach.

  • Bot przyjmował zlecenie i stał: stojące zlecenie przestawiało go w tryb „jestem w drodze, nie poluję", a reguła oceniająca walkę odrzuca w tym trybie wszystko — również paczkę, po którą kurs właśnie wyszedł.
  • Bot otwierał kurs i zamykał go w tej samej chwili: próg startu obniżony do 55% życia, a próg przerwania został na 70%.
  • Lur szukał paczek daleko, bo tak działa rola dla drużyn botów. Na zlecenie od człowieka zbiera teraz to, co stoi wokół, a poziom potwora mierzy względem gracza, nie względem siebie.

Bot towarzysz robił zakupy zamiast słuchać. Reguła „bot w drużynie gracza nie chodzi na errandy" pytała, czy liderem jest człowiek — a Towarzysz zaprasza gracza do swojej własnej drużyny, więc była wyłączona akurat dla tych botów, z którymi ludzie grają.

Pełny opis i to, czego nie zmierzyliśmy, w CHANGELOG.md.

2.0.92 - gra mowi w osmiu jezykach

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 16:07

Serwer 2.0.92, klient 2.0.23. Zawiera wszystko z 2.0.91.

Gra mówi w ośmiu językach

Polski, English, Deutsch, Español, Italiano, Português, Română, Türkçe.
Język wybiera się w oknie konfiguracji przy logowaniu, obok rozdzielczości —
zmiana wymaga ponownego uruchomienia klienta.

Paczka językowa jest w całości robotą ĹŌŞƬĒĶ (l0st3k): siedem nowych
katalogów locale, tabele przedmiotów i potworów, opisy, okna logowania. My
wstawiliśmy to do naszego klienta i sprawdziliśmy, co następuje:

  • wszystkie 762 pliki naszej dotychczasowej paczki językowej są w jego
    bajtowo identyczne — nic naszego nie zginęło (tło wyboru postaci, ekran
    ładowania, regulamin);
  • jego root był zbudowany na starszym naszym kliencie i niósł starsze wersje
    trzech naszych plików
    — auto-łowów, tytułów botów i sklepu. Wzięliśmy z
    niego wyłącznie wybór języka, a nasze pliki zostały nasze, więc zmiana
    zachowania auto-łowów, którą po drodze wprowadził, nie wchodzi;
  • nasz metin2client.exe już umiał GetLanguage, więc nie trzeba było nowego
    pliku wykonywalnego.

Angielski interfejs

Dodatkowo 281 napisów interfejsu i komunikatów po angielsku, nakładanych
tylko przy wybranym „en" — każdy inny język widzi dokładnie to, co dotąd.
Doszły do tego cztery nagłówki, które do tej pory stały w skryptach na sztywno
i były polskie w każdym języku: „Status postaci", „Atrybuty" w oknie postaci
oraz „Kategorie" i „Stan Konta" w sklepie z przedmiotami.

Sprawdzone uczciwie, bez klikania w grze: wszystkie 33 skrypty kompilują się w
Pythonie 2.7 klienta, a prawdziwe loadery locale uruchomione z atrapami silnika
dla PL, EN, DE i TR potwierdzają, że po angielsku wchodzą angielskie
wartości, a w pozostałych językach żaden napis się nie ruszył
(tests/client_locale_loader_test.py). Przepakowany root różni się od
poprzedniego dokładnie jedenastoma naszymi plikami.

Czego to jeszcze nie tłumaczy

Żeby nie było niespodzianki po wybraniu angielskiego — po polsku zostają:

  • nazwy NPC („Agent Lądowy"), treści questów („Osiągnij 1 poziom
    jeździectwa…") i wszystko, co przysyła serwer: to jest baza i questy serwera,
    nie klient;
  • nazwy przedmiotów i kategorie w sklepie z przedmiotami — też z serwera;
  • część opisów w oknie bonusów postaci i opisy umiejętności: to brakujące
    wiersze w plikach locale_game.txt wybranego języka (dla angielskiego 676
    kluczy), a nie kod.

To jest osobna, większa robota po stronie serwera i danych — nie chcemy
mówić, że gra jest przetłumaczona, kiedy przetłumaczony jest interfejs.

Paczka klienta urosła z 68 MB do 96 MB — to te siedem nowych katalogów
językowych.

2.0.91 - druzyny botow byly w wiekszosci jednoosobowe

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 15:28

Serwer 2.0.91, klient bez zmian (2.0.22). Zawiera wszystko z 2.0.90.

Drużyny botów były w większości jednoosobowe

I dlatego wyglądały, jakby ich nie było. CParty::Quit wyjmuje członka i
zostawia drużynę stojącą; silnik kasuje ją tylko wtedy, gdy odchodzi lider.
Więc kiedy z pary wychodził zwykły członek — a wychodził stale, bo hub do
polowania bywa dwadzieścia kilometrów od drugiego bota — drugi zostawał sam
w „drużynie" jednoosobowej
. Dla kodu to wciąż drużyna: GetParty() odpowiada,
pass drużyn wraca w pierwszej linii, i ten bot przestaje szukać kogokolwiek.

Własny kod silnika nigdy na to nie pozwala: przy dwóch członkach rozwiązuje
drużynę. Dlatego gracz nie może być w drużynie jednoosobowej i od strony
gracza nie dało się tego zobaczyć.

Jak to wyglądało na naszym świecie testowym — od 94 do 2519 założonych drużyn
na godzinę, i w każdym spisie tyle samo drużyn co botów w drużynach. Teraz
boty wychodzą z drużyny tą samą drogą co gracz, a drużyna jednoosobowa, jeśli
się gdzieś ostała, jest rozwiązywana w minutę. Zmierzone dziesięć minut po
wdrożeniu: stosunek z 1,00 na 1,375 (świat samych par daje 1,33 — spis ogląda
połowę botów, więc to jest wartość docelowa, nie 2).

Przy okazji wraca lurowanie dla drużyn botów: kurs Łucznika potrzebuje
trzech osób i przez pięć godzin nie odpalił ani razu, bo trójki nie miały z
czego powstać. Zlecenie od gracza („luruj" z 2.0.90) działało niezależnie od
tego — tam wystarczy para.

Świeża instalacja nie wywala się już na pustym katalogu

„Launcher każe mi ogarniać pliki r40250" (dekri) — przy serwerze 2.0.89,
czyli na linii, która paczki r40250 nigdy nie używa. Brakowało dokładnie
jednego katalogu, i to pustego: serverfiles\share\package. Jest pusty na
każdej instalacji obu linii, Docker tylko go kopiuje — ale git pustego katalogu
nie przechowa wcale, a paczka niesie go jako jeden z dwunastu gołych wpisów
w zipie, które część programów do rozpakowywania po prostu pomija.

Zamiast odmawiać, launcher tworzy go teraz sam — na wszystkich trzech
drogach, które prowadzą do budowy, i tak samo update.sh na Linuksie. Komunikat
odsyłający do instalatora r40250 nie pojawi się już z tego powodu.

2.0.90 - lurowanie na zlecenie w koncu rusza, swieza instalacja znow sie buduje

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 14:32

Serwer 2.0.90, klient 2.0.22. Zawiera wszystko z 2.0.89.

Lurowanie na zlecenie: Ninja w końcu wychodzi po moby

„Ninja zabija ich zamiast przynieść do mnie i pisze mu cały czas »Czekam żeby
lurować dla nick«" (marcinxboss). Jedno i drugie to ten sam błąd: kurs nie
mógł się zacząć, więc bot spadał do zwykłego zdobywania celu i zabijał to, co
miał przyprowadzić.

Trzy bramki zamykały go na zawsze, i wszystkie trzy są z czasów, gdy lurował
tylko dla drużyny botów stojącej bezczynnie i czekającej na pakiet:

  • „drużyna jest zajęta" — kurs nie ruszał, gdy w pobliżu było więcej niż
    trzy potwory na drużynie. Cztery moby na graczu stojącym na spocie to zwykła
    niedziela. Ta zasada istnieje po to, żeby bot nie zasypał drużyny, która już
    ma pełne ręce — ale ktoś, kto napisał „luruj", sam o to poprosił, a jak ma
    dość, to napisze „przestań lurować".
  • dziewięć dziesiątych życia — przy graczu bot obrywa od tego, z czym gracz
    walczy, więc ten próg nie otwierał się nigdy. Na zlecenie wystarczy 55%.
  • „coś mnie goni" — ta zostaje, bo odejście z paczką na plecach to jest
    właśnie zgubiony lur. Ale teraz sama schodzi do zera, bo:

bot ze zleceniem nie poluje na własną rękę. Tego nie mówiła żadna zasada,
więc między kursami Ninja szła bić jak każdy inny bot — i już nie mogła wyruszyć,
bo miała potwory na sobie. Obrona własna i pomoc osobie, dla której luruje,
zostają bez zmian; znika chodzenie do potworów z własnej woli. Do kompletu: łuk
zostaje w ręce na czas zlecenia (sztylet dobyty na jednego metina wyłączał cały
kurs, bo lurowanie idzie z łuku).

A gdy bot naprawdę na coś czeka, mówi na co: „Czekam, żeby lurować dla X
(hp)", „(monsters_on_me)", „(no_bow)", „(safe_zone)". Poprzednia wersja
powtarzała samo „Czekam" i nie dało się z tego nic zgłosić.

Zastrzeżenie, bo na takie rzeczy zasługuje jasna odpowiedź: to jest skompilowane
i przeczytane, ale nie obejrzane w grze z żywym graczem — nasz świat testowy
nie ma ani jednego. Jeśli dalej będzie coś nie tak, słowo w nawiasie nad głową
bota powie, co go blokuje.

Świeża instalacja na Linuksie znów się buduje

Jeśli stawiałeś serwer od zera na VPS-ie albo mini PC i nic nie wstawało —
to było to.
Cały build przewracał się na jednej linii:

target seban-panel: failed to solve: failed to compute cache key: "/VERSION": not found

a razem z nim gra, panel i itemshop — więc nie startowało nic, i żadne
„kliknij jeszcze raz" nie mogło pomóc.

Plik, którego brakowało, jest w .gitignore, a tworzą go tylko dwa skrypty:
ten od instalacji na starej linii i launcher windowsowy. Czyli istniał na
każdej maszynie, która kiedykolwiek któryś z nich uruchomiła — i na niczyjej
innej. Instalacja 2.x na Linuksie nie uruchamia żadnego z nich, a paczka nie
mogła go przenieść, bo powstaje z czystego eksportu z repozytorium.

Build nie zależy już od tego pliku, a aktualizacja sama go dokłada. Zgłosił
superjerry925 z pełnym logiem — bez niego to by leżało dalej.

Przy okazji naprawione narzędzie, które miało takie rzeczy wyłapywać przed
wydaniem: pytało dysk zamiast repozytorium, więc wierzyło plikowi, który jest
tylko u nas. Teraz pyta, kto dany plik tworzy i czy ten ktoś w ogóle
działa na danej linii.

Ceny hurtem w sklepie: powtarza to, co nie weszło

„Zmienianie cen działa, ale potrafi ominąć nawet parę itemów, gdy ma się ich
dużo w sklepie" (blastyw). Ctrl + prawy wysyłał pakiety w odstępach, bo
serwer przyjmuje jedną operację na sklepie co 200 ms — ale wysyłał i
zapominał
. Ćwierć sekundy liczona zegarem klienta potrafi dolecieć wewnątrz
jednego okna serwera po zaciętej klatce, a wtedy ta jedna pozycja przepadała
bezpowrotnie.

Teraz klient sprawdza, co faktycznie weszło: czeka na powrót listy sklepu,
porównuje ceny i powtarza to, co się nie udało — trzy podejścia, a potem mówi
na czacie, ile zostało. Pozycja sprzedana w międzyczasie nie liczy się jako
pominięta. Zaktualizuj też klienta.

Liczba botów per królestwo nie otwiera się już na zerach

W oknie LICZBA BOTÓW ptaszek „Indywidualne wartości dla królestw" pokazywał
0 / 0 / 0, bo te trzy ustawienia nie istnieją w .env na żadnej
instalacji starszej niż 2.0.83. Zaznaczenie go i wpisanie liczby tylko w
jednym polu zostawiało dwa pozostałe królestwa bez ani jednego bota — i nic w
grze tego nie mówiło.

Pola otwierają się teraz na równym podziale twojej liczby botów, a zero
wpisane świadomie jest honorowane i powiedziane wprost: „UWAGA: Shinsoo i
Jinno nie wystartuje żadnego bota".

To nie jest potwierdzona przyczyna „nowe postacie tworzą się tylko w
Chunjo" (NerrVoVy) — on sam dopisał tego samego dnia, że widział to również
przy wyłączonym ptaszku, samym suwakiem. Dwie rzeczy zmierzone u nas, żeby
wykluczyć to, co się najpierw nasuwa: podział liczby botów między królestwa jest
równy (przy 1000 botów rdzeń zgłasza „world split 334/333/333"), a drugi
kanał nie ma z tym nic wspólnego — przy ch2 włączonym oba kanały niosą wszystkie
trzy królestwa (kanał 1: 320 / 1185 / 347, kanał 2: 180 / 315 / 153). Zostaje
liczba zdatnych tożsamości w danym świecie; rdzeń wypisuje ją przy starcie i
to jest pierwsza linia, o którą poprosimy przy następnym zgłoszeniu:

PLAYERBOT_AUTH: loaded N registered bot identities (shinsoo=.. chunjo=.. jinno=..)
PLAYERBOT_AUTH: registry rows=.. usable=.. rejected: ...

Przy okazji, bo to wyszło w tej samej rozmowie: .env nie jest miejscem, w
którym stoją twoje aktualne raty.
Na linii 2.x raty to flagi zdarzeń w bazie —
panel je zmienia i gra liczy nimi od razu — a M2_RATE_* w .env to tylko
wartości startowe świeżego świata. To, że w .env stoi 100, a w panelu 125, nie
jest błędem i niczego nie cofa.

2.0.89 - lurowanie na zlecenie, jedna prawda dla rat

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 13:10

Serwer 2.0.89, klient bez zmian (2.0.21). Zawiera wszystko z 2.0.88.

Poproś ninję o lurowanie

Bot z łukiem w twojej drużynie przyjmuje teraz dwie komendy na priv:

  • „luruj" — bierze zlecenie (rozumie też „lur", „pull", „przyciągnij",
    „ciągnij")
  • „przestań lurować" — oddaje je (albo „koniec", „dość", „stop")

Kiedy zlecenie stoi, kurs jest twój, a paczka ląduje na tobie, nie na bocie.
To jedyne miejsce w całym lurowaniu, które rusza agro silnika — kiedy boty
lurują dla siebie, potwory trzeba odbić walką — i robi to dwoma wywołaniami
silnika w kolejności, która się trzyma: bot oddaje ci potwora z większym agro, niż zdążył
zarobić strzałami, a potem odwraca go na ciebie. Masz około trzech sekund na
pierwsze uderzenia, zanim silnik znów zacznie liczyć agro normalnie.

Ustępują tylko te reguły, które istnieją po to, żeby bot nie lurował dla nikogo:
trzech w drużynie → dwóch (para to drużyna), odbiorcą może być człowiek, znika
wymóg mapy frontierowej, a przerwa między kursami spada z 20-50 s do 4-9 s.
Próg życia, strefa bezpieczeństwa i „czy ta walka jest warta" zostają.

Bot odmawia konkretnie: „Najpierw zaproś mnie do drużyny", „Nie mam teraz łuku
w ręce", „Jesteśmy w strefie bezpieczeństwa — wyjdź na łowisko". Nad jego głową
i w panelu widać, dla kogo luruje.

Raty: jedna prawda dla obu paneli

„Jak ustawiałem wcześniej raty u tiera, to u sebana narzucał poprzednie"
(NerrVoVy) i „ustawiłem 10000%, a boty działają jakby miały x3/5" (marcol_) to
było to samo.

Rata to flaga zdarzenia w bazie — wszystko inne to jej kopie. Flagi
zapisują cztery rzeczy (oba panele, pomocnik w grze, eventy czasowe) i nie
wszystkie odświeżają każdą kopię. Panel zaawansowany czytał plik ze spoola jako
pierwszy, a ten się rozjeżdżał: na świecie testowym mówił drop 150 / yang 120,
kiedy świat naprawdę chodził na 200 / 200 — i w chwili kliknięcia „Zapisz"
wpisałby te stare liczby jako nowe raty.

Oba panele czytają teraz flagi. W trakcie eventu strona pokazuje twoje
ustawienie, nie podbicie, więc zapis podczas eventu nie zamieni podbicia w nową
normę.

+7 nigdy nie jest złomem, sprzęt startowy też

Jedna liczba była dwoma progami naraz: od ilu stragan bierze przedmiot i
poniżej ilu handlarz go skupuje. Dla broni i zbroi na 1 lvl próg wynosił +8, więc
+7 wpadał między nie i szedł do handlarza — kilkanaście sztuk dziennie. Teraz +7
trafia na stragan; do handlarza idzie tylko +4 do +6.

Ciszej w logach, i jedna prośba, której silnik nigdy nie spełniał

Bot prosił o dosiadanie konia w chwilach, w których silnik zawsze odmawiał —
przy otwartym straganie, przy magazynie, w sklepie z przedmiotami, przy
warzeniu mikstur. Tysiące linii błędu dziennie, a koń był w porządku. Teraz bot
pyta o to zawczasu i po prostu czeka.

Audyt siatki plecaka pisał do logu błędów przy każdym sortowaniu, także wtedy,
gdy niczego nie zepsuł: 2285 przebiegów na 1002 plecakach w ciągu dnia i ani
jednego, który skończył gorzej, niż zaczął. Pisze teraz tylko wtedy, gdy
naprawdę coś się pogorszyło.

Support bundle dostaje mniej śmieci, a prawdziwe błędy przestają w nich ginąć.

2.0.88 + klient 2.0.21 - osobowości nad głowami, cennik Iwakury, Auto Łowy

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 11:19

Serwer 2.0.88, klient 2.0.21. Zaktualizuj jedno i drugie.

Nazwy osobowości wracają nad głowy botów

Serwer od 2.0.86 wysyła nad głową bota nazwę osobowości, która go teraz trzyma —
Grinder, Zdobywca, Handlarz i tak dalej. Klient 2.0.20 tych nazw nie znał:
poprawka leżała w repozytorium od 19 września, ale nie trafiła do paczki klienta,
więc bot dostawał numer, którego klient nie umiał nazwać, i nie rysował nic. Kto
zauważył, że osobowości zniknęły — miał rację.

Auto Łowy: odpały idą po jednym

Silnik przyjmuje jedno użycie przedmiotu naraz i odrzuca resztę, więc klatka
wysyłająca cztery odpały kończyła się tym, że działał pierwszy. Teraz między
dwoma użyciami jest sto milisekund, a reszta idzie w następnych przebiegach.
Poprawka od Colide, autora tego okna.

Nowy cennik Iwakury

Ceny w tym projekcie nie są wpisywane ręcznie — są renderowane z jego arkusza.
Ten jest z 20 września i ruszył się w nim prawie każdy numer, większość
materiałów o jakieś siedemdziesiąt procent:

było jest
Ząb Orka 136 730 232 441
Zwój Błogosławieństwa 180 000 550 000
Kamień duchowy 500 000 750 000

Doszły też receptury zielarskie — czterdzieści pozycji, wszystkie po
450 000, których cennik wcześniej w ogóle nie wyceniał.

Stragany, które już stoją, przeceniają się same przy najbliższej wizycie
właściciela — nie trzeba nic robić ani zaczynać od nowa.

2.0.87 - nowy świat na Twoich stawkach, Iwakura Community Patch 1

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 10:59

Serwer 2.0.87. Klient bez zmian — zostaje 2.0.20.

Nowy świat zaczyna się wtedy, kiedy chcesz

Po wyzerowaniu świata serwer ruszał natychmiast, a panel pokazywał 650%
doświadczenia, którego w grze nie było: mnożniki stawek powstają na tym silniku
dopiero przy pierwszym kliknięciu Zastosuj na stronie „Stawki”, więc świeży
świat chodził na 100%, a panel obiecywał co innego. Pierwsze kliknięcie —
choćby bez ruszania pól — robiło z tej obietnicy prawdę.

  • Launcher pyta o stawki, gdy zakładasz nowy świat. Normalnie (100/100/100),
    Spokojnie (300/200/200), Szybko (1000/500/500) albo własne liczby. To, co
    wybierzesz, zapisuje się zanim rdzenie wstaną — pierwszy bot gra już na
    Twoich ustawieniach. Świat, który raz je dostał, zmienia się wyłącznie ze
    strony „Stawki” w panelu, tak jak dotąd.
  • Boty mogą poczekać przy drzwiach. Przy zerowaniu świata można zaznaczyć,
    że ma wstać pusty. Ustawiasz spokojnie stawki, respawny i osobowości, a potem
    klikasz Wpuść boty do świata na stronie AI w panelu. Wchodzą stopniowo,
    jak po zwykłym starcie. Domyślnie wyłączone.
  • Bez launchera: M2_RATE_EXP, M2_RATE_DROP, M2_RATE_YANG i
    M2_PLAYERBOT_START_HELD w .env.

Dzięki NerrVoVy za zgłoszenie.

Iwakura Community Patch 1

  • Grinder nie zatrzymuje się już całą wsią na jednym poziomie. Blokada
    pierwszej wioski losuje się równo z 13–19, blokada M3 z 19–25. Co czwarty bot
    w ogóle nie staje w pierwszej wiosce — od 13. poziomu idzie prosto na M3.
    Boty, które stoją na starej blokadzie, dostają nową przy pierwszym
    sprawdzeniu.
  • Od 35. poziomu Prawo Awansu jest ostrzejsze: broń przynajmniej +8, a do
    zbroi i tarczy dochodzi maska albo hełm na +6.
  • Przed 45. poziomem bot bonuje najpierw naszyjnik, bransoletę i buty, bez
    względu na ich ulepszenie, i celuje w linie z tabeli Iwakury dla każdego z
    tych slotów.
  • Ulepszanie idzie kolejnością: bronie, zbroje, tarcze, hełmy.
  • Kamień Duszy +2 wolno włożyć w słaby sprzęt wczesnej gry; +0 i +1 już nie.

Walka botów

  • Cios trafia to, co jest przed botem. Bot bił do czterech potworów w
    promieniu 300 jednostek, także za plecami. Gracz trafia to, co ma przed sobą,
    bo łuk broni zakreśla się z przodu — bot ma teraz ten sam łuk. Liczby celów
    nie zmieniamy: gracz może trafić szesnaście, bot najwyżej cztery.
  • Słaba broń bije jak słaba broń. Przy małych wyliczonych obrażeniach bot
    podstawiał wymyśloną liczbę, około trzystu dla bota z siedemdziesiątki. Teraz
    cios jest wart tyle, ile liczy gra.

Dzięki Nagashowi za to, że nie odpuścił.

Panel

  • Z okna ekwipunku znika przycisk odśwież: wejście w postać i tak pobiera
    dane od nowa, a teraz z gwarancją, że przeglądarka nie poda starej kopii.

2.0.86 — system osobowosci Iwakury, jeden swiat dla trzech krolestw, okno ulepszania

Choose a tag to compare

@TieruYT TieruYT released this 20 Sep 07:43

Serwer 2.0.86, klient 2.0.20. Zawiera wszystko z niewydanego 2.0.85.

Zalecamy zaczac na nowym swiecie

To wydanie zmienia zachowanie botow i ich gospodarke mocniej niz jakiekolwiek
wczesniej. Swiat, ktory gral na starych zasadach, niesie plecaki, sklepy i
magazyny ulozone pod tamte reguly — nowy pokaze te systemy tak, jak maja
dzialac. W launcherze: KOPIA / NOWY SWIAT (najpierw zrobi kopie zapasowa).

System osobowosci Iwakury

Najwieksza zmiana w dzialaniu botow od poczatku projektu. Do tej pory bot
dostawal osobowosc raz, przy wejsciu do gry. Teraz o tym, kim jest w danej
chwili, decyduje jego wlasna sytuacja — sprawdzana co dwie sekundy.

Nastroje. SLABY, NORMALNY, BARDZO DOBRY. Posucha obniza, dobry drop i
udane ulepszenie podnosza, spalenie przedmiotu na +8 czy +9 obniza o jeden, a
piec smierci z reki gracza blokuje na SLABYM na trzy kwadranse. Tylko bot w
slabym nastroju robi przerwy, odchodzi na chwile od klawiatury i odpoczywa w
miescie. W towarzystwie — druzyna, loch, rajd, wojna, pojedynek, kontrakt —
kazdy gra jak NORMALNY.

Kim bot jest teraz: kontrakt najemnika, druzyna (Towarzysz), wedka, kilof,
metin pod mlotkiem, sesja hazardzisty, kowadlo dla siebie (Perfekcjonista),
plecak przy 80% (Handlarz), a na koncu Grinder albo Zdobywca.

Towarzysz. Suwak PT ustawia teraz udzial czasu w druzynie, a nie sam
ranking. Druzyna konczy sie tak, jak opisal Iwakura: przy pelnym plecaku, gdy
poziomy sie rozjada albo gdy reszta odejdzie — nie na minutnik. Bot zaprasza
takze graczy: samotnego zaprosi, a do druzyny z wolnym miejscem poprosi o
przyjecie (blokady z opcji gry sa szanowane, prosby mocno racjonowane).
Towarzysz-szaman trzyma buffy calej druzynie, graczom najpierw.

Najemnik. Bot, ktory trzy razy w pol godziny zginal od potworow, jest w
tarapatach. Silniejszy bot z jego krolestwa podchodzi i proponuje godzine
opieki za 250 000 yang przeliczone przez stawki: prowadzi druzyne, poluje tam,
gdzie jest klient, klient dostaje polowe z kazdego zabicia.

Lista Przydatnych Przedmiotow. Co bot odklada u Dozorcy zamiast sprzedac:
bizuteria i buty tieru 3-6, bronie z jego pasm poziomow, tarcze z 61 i zbroje
z 66, i kazdy przedmiot z linia tieru 5-6 wyrzucona co najmniej do polowy.

Calosc na przelaczniku OSOBOWOSCI (panel klasyczny, strona AI) — domyslnie
wlaczonym; wylaczenie wraca do starego zachowania.

Wszystkie trzy krolestwa na jednym swiecie, domyslnie

M2_PLAYERBOT_WORLD_LAYOUT=unified jest teraz domyslne — takze na serwerach,
ktore juz stoja (raz, przy najblizszym starcie). Wczesniej kazde krolestwo
dostawalo osobny rdzen, a bot nie przechodzi miedzy rdzeniami: caly front —
Dolina Orkow, Pustynia, Sohan, Lochy Pajakow — hostuje rdzen Chunjo, wiec boty
Shinsoo i Jinno konczyly w okolicach 36 poziomu. Swiat proszacy o wiecej niz
1500 botow zostaje na split.

Okno ulepszania nie zamyka sie po kazdej probie

Ulepszasz dalej bez klikania od nowa w kowala i w przedmiot. System byl w
serwerze od 2.0.31, ale tylko dla kogos, kto znal komende — teraz dziala u
kazdego. Kto woli po staremu: /refine_keep_open 0. (Podpowiedzial sizowski.)

Zmiana ceny wielu przedmiotow w sklepie (klient 2.0.20)

Ctrl + prawy przycisk zmienia cene wszystkich takich samych przedmiotow. Dotad
zmienial sie jeden, a reszta wyrzucala blad — serwer przyjmuje jedna operacje
na 200 ms, a klient wysylal wszystkie naraz. (Zglosili uxietoszef i Nagash.)

GRAJ moze uruchomic sam serwer

Pod przyciskiem GRAJ jest „Uruchom takze klienta gry". Odznacz, jesli
trzymasz swiat wlaczony dla innych. Napis zmienia sie wtedy na „GRAJ (SAM
SERWER)", a wybor jest zapamietany.

Kazde ustawienie w .env opisane po polsku

Wszystkie 88 ustawien ma nad soba linie # PL: mowiaca, co robi i co mozna
wpisac. Opis musi byc w osobnej linii nad ustawieniem — KLUCZ=1 # opis
psuje wartosc.

Medale konne i kamienie bonusu

  • Bot z koniem na dziesiatce nie mogl ani wydac medalu, ani go sprzedac, wiec
    medale zbieraly sie bez konca (zglosil Greess). Teraz wszystko ponad dwa jest
    towarem.
  • Kamienie bonusu (zmianki, dodania, Nagash): sprawdzone do konca — nie da sie
    ich wystawic na straganie i nie jest to wina botow
    . Te przedmioty maja w
    bazie blokade sklepu, gracz tez ich nie wystawi. Boty uzywaja ich do
    mixowania; zajmuja srednio 1,6 komorki, bo sie stackuja.

Poprawki

  • Swiat opisany osobno dla kazdego krolestwa liczyl sie jako maly i trafial
    na jeden rdzen — trzy razy po 700 botow to 2100, a nie „nic".
  • Log serwera przestal straszyc przy sortowaniu ekwipunku: kontrola liczyla
    dolna polowe kazdego miecza jako blad i pisala o tym 2188 razy. Samo
    sortowanie bylo i jest bezpieczne.
  • Drugi kanal na Linuksie otwiera teraz porty sam (zglosil GoracyDelfin).
  • Liczba botow per kanal w panelu zaawansowanym (hunmar).

2.0.84 — drugi kanał dla botów, Kamienie Duszy według Iwakury, Auto Łowy od Colide'a

Choose a tag to compare

@TieruYT TieruYT released this 19 Sep 17:43

Wydanie serwera 2.0.84 i klienta 2.0.19 — w launcherze ZAINSTALUJ AKTUALIZACJE (nowe Auto Łowy są w kliencie).

Drugi kanał dostaje swoich botów (SIZOWSKI, Xewi, Mkls)

  • Z włączonym drugim kanałem CH2 dostaje tylu botów, ile ustawia suwak (domyślnie 40%). Wcześniej każdy bot, który miał kiedyś sklep offline, był na stałe przypisany do CH1. Na świecie, który już trochę pograł, sklep ma prawie każdy bot, więc CH2 dostawał kilkadziesiąt botów zamiast kilkuset.
  • Sklepy dalej stoją tylko na CH1. Bot z CH2, który chce otworzyć albo obsłużyć swój sklep albo coś kupić, przechodzi na CH1, a wolny bot z CH1 przechodzi na jego miejsce na CH2. Przejście to wylogowanie z jednego kanału i zalogowanie na drugim. Bot nigdy nie jest na obu kanałach naraz.
  • Bot z CH2 obsługuje swój sklep co 45–75 minut, a nie co kwadrans: przejście między kanałami kosztuje więcej niż zwykła zmiana mapy.
  • Ustawiony udział to najmniej tyle botów na CH2. Gdy nikt nie czeka na przejście, CH2 może przejąć do 10 punktów więcej. Dropki medali zostają na CH1.
  • Projekt przejść między kanałami przysłał SIZOWSKI. Dziękujemy!

Serwer wstaje po nagłym wyłączeniu komputera (Greess)

  • Gdy komputer wyłączy się nagle w trakcie aktualizacji, plik linux-port\docker.env potrafi zostać wypełniony zerami. Serwer nie startował wtedy wcale (w logu: „unexpected character "\x00"”), a hasła do bazy postaci były tylko w tym pliku.
  • Launcher sam naprawia taki plik przy następnym starcie albo aktualizacji: przywraca kopię z ostatniego udanego startu, a gdy jej nie ma, odczytuje ustawienia i hasła z kontenerów serwera. Uszkodzony plik zostaje obok jako kopia. Postacie i baza zostają nietknięte.
  • Plik .env jest teraz zapisywany tak, żeby nagłe wyłączenie komputera go nie zniszczyło, a przy każdym starcie launcher zostawia jego kopię (.env.last-good).

Kamienie Duszy według tierów Iwakury

  • Boty wkładają Kamienie Duszy według nowej listy Iwakury: tylko +3 i +4, i tylko te, które do expienia ocenił co najmniej na 3. Kamień +3 albo +4 trafia do przedmiotu od +6 w górę, a przedmiot +8 i +9 czeka na +4. Kamienie klasowe (Wojownika, Sury, Ninja, Szamana) są tylko do PvP i boty ich nie wkładają.
  • Kamienie +0, +1 i +2 bot wkłada tylko wtedy, gdy mu wypadną, i tylko do słabego przedmiotu: do 21 poziomu i najwyżej +6. Rodzaj kamienia musi mieć u Iwakury ocenę co najmniej 3. Takich kamieni boty nie kupują.
  • Na targu boty kupują tylko Kamienie Duszy +3 i +4.
  • Przy wyborze ekwipunku liczą się włożone kamienie, więc bot nie zamieni przedmiotu z dobrymi kamieniami na goły.

Nowe nicki od Iwakury

  • Lista nicków urosła do 1800. Bot, który ma już nick, zostaje przy nim. Nowe nicki dostają tylko boty, które jeszcze nie mają nicku.

Auto Łowy od Colide'a, wersja druga (klient 2.0.19)

  • 12 przedmiotów na czasie, w dwóch rzędach.
  • Podnoszenie ma własne, przesuwane okno „Auto Łowy – Łupy”, więc oba okna mieszczą się na ekranie 800×600.
  • Ustawienia zapisane w poprzedniej wersji zostają.

Klient 2.0.19

  • Auto Łowy w drugiej wersji od Colide'a (opis wyżej).