MyOTS v5: Liczne zmiany i dalsze gromadzenie ryb #2

MyOTS v5: Liczne zmiany i dalsze gromadzenie ryb #2

Pomiędzy pierwszą częścią serii, a tym artykułem, wprowadziłem kilka zmian w skrypcie dotyczącym łowienia. Zastanawiałem się, czy szerzej to tu przedstawiać, ale wydaje mi się, że wystarczy omówienie w ekstremalnym skrócie. Mianowicie pozyskiwanie ryb z łowienia, zwłaszcza po skillu na poziomie 100 lub powyżej jest znacznie przyspieszone. Możliwe, że jeszcze do tego wrócę w bardziej szczegółowy sposób, np. w momencie, w którym podejmę się kolejnych zmian w tym aspekcie serwera.

Pod łowiącą postacią gromadzą się automatycznie kolejne stosy ryb. Po ostatnich modyfikacjach skryptu łowienia jest ich na tyle dużo, że najprawdopodobniej nawet z pomocą macro w BicTrainerze, nie będę w stanie zebrać wszystkiego. Mogę jedynie zacząć mniej więcej szacować ile znajduje się ryb z tych, które automatycznie “opadły” na ziemię. Co więcej w przyszłości możliwe, że będę przenosił bezpośrednio z plików serwerowych, część kodu odpowiedzialnego za przechowywanie informacji o części ryb i będę umieszczał to w innym miejscu z uwagi na chociażby problemy z coraz dłuższym trwaniem zapisu serwera. Lecz nie jest to jedyny dylemat, ponieważ nie wiem tak dokładnie jakie limity posiada serwer jeśli chodzi o obsługiwanie dużych plików XML, w których to właśnie są zakodowane przedmioty znajdujące się w domkach (a więc m.in. ryby w skrzynce, w moim domku).

Ponadto jeśli będę w przyszłości część ryb przenosił bezpośrednio z plików serwera, a nie z gry to też trzeba się liczyć z limitami obsługiwania maksymalnej wielkości pliku tekstowego, dla danego edytora plików tekstowych. Dla przykładu w Notepad++ maksymalna wielkość pliku, który można otworzyć wynosi około 2GB . Przynajmniej według informacji, które znalazłem w Internecie oraz przy pewnych założeniach związanych z platformą, na której działa Notepad++, ponieważ to też może mieć znaczenie co do limitów tego typu. W każdym razie rząd wielkości plików z rozmiarami kilku gigabajtów raczej mi nie groźny w najbliższym czasie, ponieważ na ten moment plik XML odpowiedzialny za przechowywanie informacji o przedmiotach znajdujących się w domkach ma rozmiar: 2,26 MB (Plik o nazwie: houseitems.xml - ~06.02.2021).

Docelowo wszystkie ryby miały być w jednej skrzynce, a ja tu coś zaczynam wspominać o ewentualnych przenosinach części tych przedmiotów w dalszej przyszłości. Zatem jak będzie z tym przechowywaniem ryb w jednej skrzynce? Otóż najważniejsze jest zastosowanie pewnej symboliki, ogólnej definicji, a kwestie technicznego przetrzymywania wszystkich tych przedmiotów będą wówczas drugorzędne. W końcu to wszystko jest kwestią umowną, nawet w samej grze wkładanie plecaków w plecaki itd. w prawdziwym świecie na taką skalę jest absolutnie niemożliwe. Zatem należy to wszystko traktować tak jak powyżej wspomniałem, właśnie umownie i tak naprawdę definicja części tych przedmiotów (ryb), nawet poza techniczna jest w tym wypadku najważniejsza. Będzie można w związku z tym wyodrębnić dwie kategorie: Ryby bezpośrednio w grze oraz ryby nie będące aktualnie bezpośrednio w grze, ale będące według pewnej definicji wciąż w skrzynce.

07.02.2021:
Zapis serwera trwa od ~0.5 do ~0.6 sekundy. Jest to zapis ~3x dłuższy niż ten gdy jeszcze nie zacząłem zbierać przedmiotów w domku na taką skalę, a trzeba też tu zaznaczyć, że ryby z edycji (MyOTS v4) również są przechowywane. W każdym razie biorąc pod uwagę w jakim tempie wydłuża się czas zapisu serwera to najprawdopodobniej to będzie pierwsze kryterium, przez które podejmę kroki technicznego przeniesienia części przedmiotów z houseitems.xml do jakiś najprawdopodobniej zewnętrznych plików, które technicznie nie będą związane z serwerem, ale w sposób symboliczny oraz ogólnie przyjętej definicji nadal będą uznawane jako przedmioty znajdujące się w skrzynce.

08.02.2021:
Najwyższy czas zająć się tym co chciałem zrobić właściwie już jakiś czas temu, ale z powodu tego, że postanowiłem poprowadzić serię blogową z MyOTS to te plany się przesunęły, tak abym mógł w między czasie opisać resztę zagadnień związaną z tym serwerem.

Rzecz dotyczy przeniesienia pojemników z rybami, z poprzednich edycji do obecnej skrzynki. Przy okazji będę musiał mieć tu na względzie zachowanie pewnych standardów dotyczących obecnych nad-plecaków, ich kolorów, kolejności, itd. Dla przykładu kilka lat temu mogłem gromadzić te wirtualne ryby w inny sposób niż robię to obecnie.

Przygotowałem już wcześniej pewną podstawę pod całą procedurę przenosin ryb. Mianowicie stworzyłem konto, w którym podpięte jest część postaci z poprzednich edycji, na których najprawdopodobniej gromadziłem ryby.

Danys GM - Około dwudziestu stacków dużych ryb, ale dużych ryb nie ma w omawianej skrzynce, do której chce wszystko finalnie przenieść, zatem zostawiam te ryby na tej postaci tak jak były.

Fish Collector - 2747 ryb (po wstępnym ułożeniu).

MainFishCollector - około 320 000 ryb. W tym wypadku za pewne dużo czasu zajmie przekładanie ryb do właściwych plecaków, ponieważ na tej postaci kolejność kolorów itd. nie zgadza się z ówczesnymi przyjętymi przeze mnie standardami.

Rybak - 12 730 ryb.

Oprócz tego jeszcze na MyOTS v4 zbierałem ryby do innej skrzynki. Obecnie ów skrzynkę przeniosłem do domku obok. Znajduje się w niej 214 000 ryb. Standardy ułożenia tych ryb oraz kolorystyka plecaków również musiałaby zostać zmieniona podczas przenoszenia.

Uprościłem nieco proces zmiany kolorów plecaków i część kolorów podmieniłem w plikach poprzez zamianę jednych ID na drugie.

Po przeniesieniu wszystkich wymienionych postaci / skrzynek z poprzednich edycji, łączna ilość ryb w aktualnej skrzynce wynosi ~3,6 miliona.

16.08.2021:
W ciągu ostatnich kilku dni nieco się pozmieniało. Przede wszystkim postanowiłem dodać dodatkowy serwer o nazwie “MyOTS v5 Sektor 1”. Na serwerze tym przechowuję w tej samej skrzynce większość ryb, natomiast na oryginalnym v5 dodaję kolejne na bieżąco.

Plan był taki, aby nieco odciążyć główny serwer oraz, aby wciąż w dość technicznym sensie przechowywać coraz więcej ryb w tej samej skrzyni, ale na dodatkowym serwerze, ponieważ koordynaty skrzyni oraz sama skrzynia są niemal identyczne. Następnie sumowałbym wszystko co jest na MyOTS v5 oraz MyOTS v5 Sektor 1. Itemy po raz pierwszy zostały przeniesione między serwerami poprzez dodatkową postać “Transfer”. Następnie plik z postacią został skopiowany z jednego serwera na drugi, a później zalogowałem już na Sektor 1 i przeniosłem wszystko do odpowiedniej skrzyni. Wcześniej Sektor 1 został odpowiednio przygotowany, m.in. zostały usunięte z niego nazbierane stosy ryb leżące na ziemi.

Wspomniane niepoukładane stosy ryb leżące na ziemi nadal w coraz większej ilości gromadzą się na głównym serwerze MyOTS v5. Problem wszystkich podjętych wcześniej działań jest taki, że wciąż nie nadążam zbierać wszystkich leżących na ziemi ryb. Nawet poprzez odpowiednie macro w Bic Trainerze, w samej grze.

Na ten moment tymczasowo postanowiłem nieco zmniejszyć ilość przyznawanych ryb podczas łowienia dla pewnych zakresów poziomów umiejętności “Fishing”, tak aby zredukować ilość kolejnych złowionych ryb w najbliższym czasie. To jednak nie jest wystarczające, zatem planuję podjąć zdecydowane zmiany co do dalszego zbierania ryb. Łowienie nadal będzie odbywać się bezpośrednio w grze, ale zbieranie ryb do skrzynki będę wykonywał w zupełnie inny sposób. Z poziomu pliku houseitems.xml będę wycinał / przenosił i podsumowywał kolejne linie kodu XML, w którym znajdują się nazbierane na podłożu ryby. Przynajmniej jeśli chodzi o pełne stacki (po 100 ryb), natomiast mniejsze ilości oraz big fishe będę póki co zostawiał w tym samym pliku. Kod z rybami, które będą przenoszone będę umieszczał w jakiś innych plikach XML i dodawał do łącznej ilości ryb w skrzynce, przy czym nie będą te przedmioty w niej znajdować się technicznie, tylko w sposób obranej później definicji.

17.08.2021:
Przeniosłem z pliku houseitems.xml większość leżących na ziemi ryb do osobnego pliku XML: 2_houseitems1_205100_lines.xml .

W nazwie jest informacja o ilości linii w pliku, przy czym dwie linie (początkowa i końcowa) są przeznaczone na informację o koordynatach i teoretycznym pojemniku (skrzynce), w którym się znajdują.

Pozostałe 205 098 linii zawierają informacje o pełnych stosach ryb po 100 ryb na linię kodu. Łącznie jest to 20 509 800 ryb (205 098 linii kodu * 100 ryb).

Wcześniej wspominałem o pominięciu niepełnych stacków oraz dużych ryb w przenosinach z poziomu pliku. Jednak w między czasie zmieniłem zdanie i stwierdziłem, że przeniosę niemal wszystko.

Oprócz zebranych 20 509 800 ryb, został jeszcze jeden niekompletny stack ryb (57 sztuk) oraz 147 dużych ryb. Niekompletny stos oraz big fishe dodałem z powrotem na serwer poprzez komendy, a następnie wprowadziłem wszystko do odpowiednich skrzyni.

Te ponad 20 mln ryb pochodzi z pierwszych przenosin z poziomu plików. Nadal jednak posiadam ryby, które znajdują się w MyOTS v5 Sektor 1. Aby wszystko zawierało się w jednej skrzyni czas na wprowadzenie odpowiedniej definicji, o której miałem okazję wspomnieć kilka razy we wcześniejszych akapitach tej serii blogowej.

Definicja wersji 1 zawartości skrzyni o koordynatach x="149" y="60" z="7":
Skrzynia (x="149" y="60" z="7") zawiera:
- Ryby znajdujące się w skrzyni o tych samych koordynatach w MyOTS v5,
- Ryby znajdujące się w skrzyni o tych samych koordynatach w MyOTS v5 Sektor 1,
- Ryby znajdujące się w 2_houseitems1_205100_lines.xml .

Obliczenia:
Ryby w MyOTS v5 Sektor 1: 200 nad-plecaków. W każdym znajduje się 40 000 ryb. 200 * 40 000 = 8 000 000 ryb (200 nad-plecaków lub 4 000 plecaków).
Ryby w 2_houseitems1_205100_lines.xml: 20 509 800 (512 nad-plecaków i niepełny nad-plecak z 29 800 rybami lub 10 254 plecaków i niepełny plecak z 1 800 rybami).
Póki co wszystkie pełne nad-plecaki ryb z MyOTS v5 zostały przeniesione do Sektora 1.

8 000 000 + 20 509 800 = 28 509 800 ryb.

Kolejne podsumowanie łącznej ilości ryb w skrzynce.

Motywem przewodnim w kolejnym planowanym artykułe z tej serii blogowej będzie prawdopodobnie kwestia szczegółów odnośnie zdobywania poziomów umiejętności łowienia.

Autor: Ynfi (Danys)

Data publikacji: 17.02.2021.

Rozpoczęcie serii: 29.01.2021.

Ostatnia aktualizacja: 17.02.2021.

Inne artykuły z tej serii blogowej:

Część 1: MyOTS v5: Bardzo nietypowy gameplay na OTS #1 .

Część 2: MyOTS v5: Liczne zmiany i dalsze gromadzenie ryb #2 .

Część 3: MyOTS v5 #3: Zmiany w gromadzeniu przedmiotów .

Wszystkie artykuły z tej serii blogowej: MyOTS v5: Wszystkie artykuły dotyczące serii .