Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TUT]Usunięcie bugu z ujemnym HP po przejściu przez portal


Rekomendowane odpowiedzi

Opublikowano

Takiego tutka tutaj nie znalazłem, również nie znalazłem go na e*pvp więc za pomoc jaką Wy mi udzielaliście przez 2 lata to teraz ja Wam pomogę:

 

Wstęp:

Zapewne każdego z Was wkurza, że mając pow. 32k HP po przejściu przez portal czy użycie teleportera HP waszej postaci przyjmuje wartość ujemna.

Zacznijmy od tego dlaczego tak się dzieje. Pierwszym i jedynym powodem dlaczego tak się dzieje to typ danych kolumny hp w tabeli player serwera.

 

Jest to typ danych smallint - ten typ danych przechowuje liczbę całkowitą w bazie w zakresie od -32768 do 32767 (2 bit). To też postać, której HP

przekroczy ten zakres powoduje błąd w bazie (niegroźny chyba), ale bardzo uciążliwy dla postaci.

Do tego maksymalna długość znaków (liczb) jakie można przechować w tej kolumnie to 4 (32767 ma 5 znaków)

 

Rozwiązanie:

1. Wykonaj kopię zapasową całej bazy danych (na wszelki wypadek)

2. Uruchom Navicat i wejdź w bazę player swojego serwera.

3. Wybierz opcję "Edytuj tabelę"/"Edit Table" w zależności od wersji językowej navicat

 

screen01rm.jpg

 

4. Następnym posunięciem jaki musimy wykonać to zmienić typ danych kolumny hp

 

screen02bq.jpg

 

Wybrałem bigint, dlatego, że ten typ danych pozwala przechowywać 8bit wartość w tabeli

(od -2^63 do 2^63 -> 9,223,372,036,854,775,807)

 

5. Następny krok aby usunąć bug to obliczyć ile max HP jest w stanie gracz osiągnąć bonując EQ. Pod uwagę należy wziąć wszystko:

a. Dodanie bonusu (1 - 5)

b. 6 i 7 Bonus

c. Misje, gdzie nagrodą jest stały bonus do HP

 

Jeśli na Twoim serwie max HP ile można wyciągnąć nie przekracza 100k (100000) to pole maks. długość kolumny HP zmień z 4 na 6 (5 znaków dla +10k HP postaci + 1 extra znak w zapasie)

 

Jeśli na Twoim serwie max HP ile można wyciągnąć jednak przekracza 100k (100000) to pole maks. długość kolumny HP zmień z 4 na 7 (6 znaków dla +10k HP postaci + 1 extra znak w zapasie)

I tak dalej.

 

6. Zapisujemy tabelę i restartujemy serwer.

Uwaga:

 

Ten tutorial należy wykonywać na zatrzymanym serwerze (komenda ./stop)

 

Sposób działa na plikach raina (2006)Nie wiem jak na SF 2010, być może te pliki mają usunięty bug.

 

Jeżeli z jakiegoś powodu tutorial nie działa zachęcam do eksperymentowania z typami danych dla tej kolumny:

- int

- bigint

- Integer

 

Typu danych Tinyint i smallint omijamy jak ognia. Tinyint przechowuje wartość od 0 do 255, a smallint to jak pisałem na wstępie.

59649524317135950350.png

Opublikowano
To jest ukryta treść, proszę

tu jest quest od Bambuska który poradził sobie z tym bugiem . Quest w zupełności wystarcza, jednak doceniam twoją pracę bo pokazałeś jak to zrobić od początku do końca żeby quest nie był potrzebny. Masz + .

h65xnex.png

Opublikowano (edytowane)

Wszystko ma swoje plusy i minusy, też myślałem, żeby użyć questa, jednak nie jest to do końca dobre rozwiązanie. Albo inaczej:

Quest Bambuska jest dla początkujących HeadAdminów, mój dla bardziej zaawansowanych. :)

 

PS: prawdopodobnie w ten sam sposób można usunąć bug z yangami pow. 2kkk. Jednak tego jeszcze nie sprawdzałem.

Edytowane przez Lazarus-mt2

59649524317135950350.png

Opublikowano (edytowane)

Bardzo ladny tutek mi sie przyda napewno :P + i piąteczka. Widzialem wiele serwerow z tym bugiem (moj tez) wkoncu mi sie uda to usunac.

 

 

@EDIt jednak nie dziala ;x

 

@edit Ale ten od Bambusa dziala cyqs masz +

 

@edit kurva nie zauwazylem ze minusy zbierasz xD

Edytowane przez Casawir

Bez-nazwy_nwpsash.png


by me


Opublikowano

Tutek fajnie opisany, ładnie wykonany i co najważniesjsze przydatny.

Zawsze mnie to wkurzało, a teraz można się tego pozbyć :D

wielki + dloa cb ; >

Opublikowano

Chciałem tylko zaznaczyć, że ten sposób nie zawsze działa, ale w większości "skoków" po zalogowaniu mam HP. To nie daje 100% usunięcia bugu, ale jest praktyczniejsze. Tzn bardzo rzadko się zdarza, że HP jest na minusie.

A jeszcze lepszym rozwiązaniem jest połączyć oba sposoby. Mój tutek i quest bambuska, wtedy to da 100% skuteczność.

59649524317135950350.png

Opublikowano

Działa, przydatne na serwery medium/easy. : )

 

Ale ten sposób jest trochę lepszy co quest bambuska. (Podzielam zdanie Tenmy)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...