#ots30wkids #tibia #programowanie

Wreszcie się udało!
Zanim będziecie chcieli mnie zabić za wrzucenie tutaj świętego tagu pozwólcie proszę, że się wytłumaczę.
Jak to zwykle bywa przy moich zabawach, granie w gierki jest tylko pretekstem, żeby coś porobić. Nie inaczej jest z moim OTSem.
Chciałem dać możliwość wylogowania się gdziekolwiek - w Tibi, nie możesz wylogować się przez 60s po tym jak zostałeś zauważony przez ostatniego przeciwnika.
Na początku poszedłem prostą ścieżką - brak statusu in-combat - był do tego nawet całkiem sprytny pstryczek w plikach .lua - pliki do konfigurowania w trybie hot (wystarczy restart serwisu serwera). Zmieniłem czas statusu in-combat na 0 ze skutkiem braku możliwości wylogowania się w ogóle. No to lecimy 1, wartość wyrażona w mili sekundach.

Patrzę, status niby flapuje ale rzeczywiście da się wylogować zawsze. Zadowolony zabrałem się za resztę ficzerów. W czasie developmentu zauważyłem, że niepoprawnie naliczają się zabite potworki co rodzi problemy przy questach takich jak zabij 100 potworów.
Do tego źle liczyło też w hunt analajzerze. Zaczęła się ostra dłubanina, issue na githubie projektu aż w końcu przejście do plików c++, czyli core samego serwera. Tam grube analizy jak liczony jest kill i szukanie błędu w logice z tym związanej. Na gitcie dostałem odpowiedź, że team się temu przyjrzy, więc jak nikt nie jest pewny, że działa to znaczy, że dłubiemy dalej.

Po jakimś tygodniu spróbowania wszystkiego, trochę sobie odpuściłem, żeby zobaczyć co powie team. Trochę grałem, wprowadzałem dodatkowe zmiany, zwiedzałem miejscówki, w których nigdy nie byłem. Na 1 huncie zauważyłem, że są takie momenty podczas walki, że nie mogę użyć run pomimo tego, że nie jestem na cooldownie. Skończyłem gierke, połozyłem się spać. Standardowa pobudeczka koło 3 30, żeby pobujać po cycu młodą. I wtedy EUREKA! Kurwa, nie mogłem już potem usnąć, żeby spróbować tego rano.

A co jeśli problemem jest to, że czasem nie jesteś w in-combat a kill liczony jest tylko wtedy? Jeśli status flapuje, to może się tak zdarzyć!

Pierwsze co po przebudzeniu do kompa, vim config.lua, /PZlocked, dw, dw, dw, i, 5*1000, esc, :, qw, docker-compose restart server!

I taaaak jest! To było to! Kurwa co za ulga.
Teraz pozostało tylko zrobić, możliwość logoutu w czasie jak jesteś in-combat ale tu już po statusie, który wyświetlał się na dole ekranu o niemożności przeprowadzenia procesu, doszedłem sobie w plikach źródłowych to gameprotocol.cpp (pic rel 2). Jeden zakomentowny return dalej i rebuild źródła mamy to!

Jak by ktoś chciał pośmigać na otsie to jeszcze troche surowo ale register i klient do pobrania są dostępne tutaj
http://195.167.154.107:6060/

Mam większość najwazniejszych ficzerów i jako taki balans rozgrywki solo więc w następnym kroku zabieram się za domene i ssla

Jak się zarejestrujecie, dajcie znać wrzucę wam trochę TC na start
zboinek userbar
f509b2db-8aac-41bc-8a1c-e9da5d58b0cd
917e8afd-8155-4e19-a823-4f3a3b390272
koszotorobur

@zboinek - wielu może powiedzieć - propsy za używanie vima - ale nie ja

zboinek

@koszotorobur Też raczej staram się nie ale jak mam coś edytować bezpośrednio na serwerze to nie ma innej drogi.

U mnie inna najlepsza ścieżka to VScode, git add --all, git commit, git push, ssh, git pull

Ale nie czuje się źle w vimie także zdarza mi sie pokodzić i tam

ataxbras

@koszotorobur czemu? Dalej nie możesz wyjść?

koszotorobur

@zboinek - to zrozumiałe - niemniej jako wieloletni użytkownik vima, dla odmiany, zacząłem korzystać z nano kiedy muszę coś na serwerze edytować - aczkolwiek vi(m) jest prawie wszędzie od razu... a nano trzeba często doinstalowywać

koszotorobur

@ataxbras - dokładnie, dlatego nie używam vima bo jak utknę to muszę restartować cały serwer by z niego wyjść

wombatDaiquiri

@zboinek wszystko fajnie, gratuluję, dobra robota, ale czy umożliwienie wylogowania się zawsze nie psuje jednego z istotniejszych tibijskich elementów czyli braku opcji "uratowania dupy" w przypadku nierozważnej wyprawy?


Mapa z rl tibii czy jakiś custom?

zboinek

@wombatDaiquiri odpowiadając na pytanie tak, robi to. Jednakże, jak się zalogujesz ponownie w tym samym miejscu to twoja sytuacja niewiele się poprawi Zresztą sama śmierć, aż tak bardzo nie boli ze względu na w miare duże exp i skill rate. Chociaż skill jest troche do poprawy bo jednak idzie bardzo po mału.

Serwer jest typowo pod zabawe, dla ludzi, którzy często potrzebują wylogować się w środku hunta. Dzieci, praca te sprawy.


Mapa RL, miałem chęć na custom ale na razie bez szans jeśli chodzi o czas. Zresztą, uświadomiłem sobie też, że ja nie znam nawet 1/3 mapy nie mówiąc już o questach, których zrobiłem w całej karierze może 10. Jak na razie super się tu bawie, gra ze 3 moich ziomków więc ostatnio nawet był team hunt na vamp cave

Totem

@zboinek Trzymam kciuki za rozwój serwera.


Dwa pytania:


  1. Jaka wersja tibii?

  2. Czy to jest ots na bazie forgotten server?

zboinek

@Totem 


  1. 13.21

  2. Nie wiem, ale raczej nie. Projekt nazywa sie Canary i jest forkiem OpenTibiaBR

Zaloguj się aby komentować