Blog i nie tylko

Tiery 3 i 4 dla punktów życia i many – Local OTS #2

Tiery 3 i 4 dla punktów życia i many – Local OTS #2

Poniższy tekst dotyczy początkowego wdrożenia tieru 3 i 4 do Local OTSa. Został napisany w listopadzie 2022 i opublikowany zostaje po około miesiącu, natomiast bardziej aktualna rozgrywka zostanie omówiona najpewniej dopiero w kolejnym artykule.

Zmiany w tierze 3 i kolejny rodzaj transferów do nowego tieru

Początkowo tier 3 miał być zewnętrznym poziomem HP i MP. Postanowiłem cały proces przejścia do wartości zewnętrznych nieco bardziej skomplikować. Tier 3 jest obecnie wbudowany bezpośrednio do silnika gry, podobnie jak poprzednie tiery. Dotyczy to zarówno HP i MP. Transfer do tieru 3 jest jednak proporcjonalnie najdroższym transferem do tej pory. Jedynie po 1 (tak, po jednym) punkcie tieru 2 może zostać przeniesione do tieru 3 za 1000 Żetonów Handlu. Transfer jest możliwy zarówno dla HP i MP. Zwiększenie procentowe tieru 3 o +1% to koszt 2000 Żetonów Handlu.

W praktyce, aby możliwe było zwiększenie procentowe tieru 3, trzeba wpierw importować do tego tieru minimum 100 punktów HP lub MP, a więc na sam minimalny, początkowy import będzie trzeba wydać co najmniej 100 000 żetonów. Dlaczego akurat 100 punktów? Aby procentowe zwiększenie o +1% mogło zadziałać w obecnych bignumowych funkcjach, potrzeba minimum 100 punktów, aby mnożnik mógł dodać pełny 1 punkt. Przy testach z mniejszymi wartościami nie jest przyznawany nigdy ani jeden punkt.

Oczywiście im wartość będzie większa, tym każdorazowe zwiększenie wartości w ten sposób doda (dla wartości z dokładnością do jedności) dużo więcej później (np. 1% z 100 to 1, ale już z 1000 to 10).

Ostatnim etapem tieru 3 jest możliwy transfer do tieru 4, a zatem nowego tieru zewnętrznego. Odpowiedni NPC podzieli posiadaną ilość tieru 3 przez określoną wartość. Podczas transferu zostaje zapisana informacja o wartości trzeciego tieru przed podzieleniem i po, dzięki temu można odczytać “usuniętą” wartość. Przykładowo 987156456 podzielone przez 1000 w GMP dla liczb całkowitych da wynik 987156, a więc zostaje zapisana wartość 987156456 oraz 987156. Oznacza to, że 456 zostanie dalej przetwarzane.

W tym miejscu zaczynają się prace ręczne, ponieważ ów przykładowa wartość 456 zostaje odwrócona i 654 zostaje uznane za tier 4. Przy kolejnych transferach następne wartości są dołączane od prawej strony do poprzedniej wartości. Przykładowo przy kolejnym transferze będzie to liczba 265654 po odwróceniu, a więc końcowa wartość tieru 4 będzie wynosić 654265654 (265654 dołączone do 654). Cały opracowany proces daje podstawę do ciekawszej, drugiej, rozszerzonej nazwy tieru 4: Reverse Arbitrary Precision Health Points (dla HP) i Reverse Arbitrary Precision Mana Points (dla MP).

Reverse, ponieważ jest to wartość odwrócona. Arbitrary Precision, ponieważ jest to wartość o wielkiej precyzji. Ewentualnie można to również tłumaczyć jako dowolna precyzja, aczkolwiek w praktyce jest to spore uproszczenie. Warto mieć na uwadzę fakt, iż angielskie Arbitrary Precision ma inne znaczenie w ujęciu całościowym tego terminu niż dosłowne tłumaczenie słowa arbitrary na język polski. W tym przypadku jest to bezpośrednie nawiązanie do programistycznej arytmetyki wielkich liczb, a nie do samego słowa arbitralny w polskim znaczeniu (Arbitrary-precision arithmetic). Health Points, ponieważ dotyczy punktów życia lub dla drugiego podtypu Mana Points, ponieważ dotyczyć będzie punktów many.

Rozpoczęcie procesu przenoszenia do tieru 4 z poziomu gry jest bardzo kosztowne. Na ten moment jeden z NPC, który się w tym specjalizuje za przeniesienie 3 ostatnich cyfr zabiera 10 000 Żetonów Handlu.

Wartość jest odwracana, ponieważ przy rozważaniach nad wartościami zewnętrznymi zastanawiałem się jak częściowo ręcznie zarządzać wielkimi liczbami. Jeśli eksportowana wartość nie byłaby odwracana, wówczas najbardziej logicznie byłoby, aby dołączyć ją od lewej strony, a to spowodowałoby wiele problemów, gdyby liczba była dużo większa. Przykładowo przy stronicowaniu takiej liczby, należałoby zadbać o to, aby wszystko ręcznie lub automatycznie przerzucać na dalsze strony, tak aby zawsze zrobić “miejsce” dla wprowadzenia dołączonej wartości od “lewej strony” liczby.

Autor artykułu na blogint.pl: Danko
Opublikowano: 18.12.2022
Seria bazuje na starych elementach gry Tibia (wersja 7.6) oraz na wielu moich modyfikacjach zawartości gry i systemów.
Oficjalna gra najnowszej wersji bez modyfikacji: Tibia .