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

SILNIK OTS PRZELICZNIK KASY


MovivikxD

Rekomendowane odpowiedzi

Opublikowano

Witam wszystkim mam problem, otóż zrobiłem custom money ponad 100cc mam dwie inne waluty, powiedzmy że to będzie 100SZM i 100R.

Problem zaczyna się kiedy mam przy sobie najwyższy nominał 100R to jest 10000000000 GP i np kupie blessy bądź idę do shopa kupić łuk cokolwiek zostaje mi wtedy tylko z tych 100R, 14R i reszta.

Źle przelicza. Gdzie mogę znaleźć miejsce w którym można to edytować?

Opublikowano
<item id="11059" article="a" name="nowy pieniadz">
	<attribute key="weight" value="10"/>
	<attribute key="worth" value="1000000"/>
</item>

Wartość pieniądza ustawiasz wartość worth:

<attribute key="worth" value="1000000"/>

 

Opublikowano

NIeee to nie to. Tu mam dobrze wszystko ustawione. Chodzi o to że jak idę do npc i coś kupie to źle wydaje kase.

Tutaj wartości są ustawione dobrze.

<item id="2160" article="a" name="crystal coin" plural="crystal coins">
        <attribute key="weight" value="10" />
        <attribute key="worth" value="10000" />
    </item>

<item id="12661" article="a" name="nowy pieniadz1" plural="nowy pieniadz1">
        <attribute key="weight" value="10" />
        <attribute key="worth" value="1000000" />
    </item>
    <item id="12662" article="a" name="nowy pieniadz2" plural="nowy pieniadz2">
        <attribute key="weight" value="10" />
        <attribute key="worth" value="100000000" />
    </item>

 

Tutaj kiedy mam przy sobie item 12662 czyli największy nominał. Tj 100 nowy pieniadz2 = 10000000000GP = 10000CC i kupie coś mając tyle przysobie.

TO samo tyczy się banku kiedy mam wpłacone niewiem powiedzmy jedną taką kupkę 100nowypieniadz2 wypłaca mi tylko 21nowy pieniądz a niecałość. I do tego jeszcze zeruje mi bilans w banku.

Opublikowano

Sprawdź jaki typ zmiennej jest używany przy pieniądzach w silniku bo wydaje mi się, że przepełnia się zmienna i ucina.

 

Sprawdziłem i w bazie danych standardowo jest to bigint(20)

iobw468.png

 

Czyli:

G3vPx4b.png

Więc powinno przechować bez problemu.

 

W grze zmienna może być 32 bitowa i wtedy będzie problem bo to mieści max 4 294 967 295‬

2CDcIBm.png

 

100 nowy pieniadz2 = 100 000 000 000 czyli ponad 20 razy więcej

JYoq97N.png

 

Sprawdź czy po oddaniu pieniędzy do banku w bazie danych będzie dobra wartość.

Opublikowano

Niestety nie wiem jak ;/ mógłbyś mnie troche nakierować gdzie tego szukać?

Dokładnie taki jest objaw jak mówisz ale podejrzewam że będę musiał to znaleźć w źródłach a przyznam szczerze że nie wiem gdzie tego szukać.

Opublikowano

Tak jak myślałem:

Cytat

the problem is both in server (game.cpp, game.h and possibly more) and in client, but you can only fix the first completely - the 2nd has to be hacked (ProtocolGame::sendGoods msg->AddU32(std::max(2147483647, g_game.getMoney(player)));)

 

https://otland.net/threads/currency-issues-source-edit.146502/

Opublikowano

Super dzięki. Już szukam rozwiązania 🙂

Przeszukałem te dwa pliki zmieniałem w różnych konfiguracjach niestety bezowocnie możesz się przyjrzeć temu ?

Może Ty dostrzeżesz gdzie to zmienić żeby poprawnie działało?

Mój bank jest inny jakiś. Ostatnio miałem z nim problem, nie mogłem wypłacać pieniędzy w ogóle i znalazłem inny skrypt całkowicie. 

Taką wartość max przyjmuje. 2147483647

poniżej skrypt banku

https://pastebin.pl/view/f8bbd468

a teraz ciekawostka tak wyglada ilość którą widzą mi npc. (wcześniejszy skrypt banku pomimo że nie działał to widział taką samą wartość)

https://zapodaj.net/882eda58fb097.bmp.html

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...