Sziasztok! Erre az alábbi hibára esetleg valaki tudna megoldást? A probléma, az, hogy amikor ráhúzom az egeret a tárgyra, akkor nem írja ki mind a 200db-nak az árát, viszont eladásnál a valós értéket adja már meg. Illetve amikor behúzom a tárgyat, akkor 0-yangot ír, mint látni lehet, az alábbi GIF-en. Előre is köszönöm!
GIF FÁJL:
[spoiler]https://gyazo.com/b7af214c82e76e1369c08c4c99ada57c[/spoiler]
A neve sem stimmel... Nap Elixirt ír mikor behúzod és kidobja a rákérdező dialogot.
Valami oltári gubanc van ott... Egyezik a kliens item_proto a szerverével?? Nincs azonosító ütközés tárgy VNUM-ben? Mit/miket módosítottál utoljára a szerverben/kliensben?
Szerintem az item_proto nem egyezik a szerver protoval vagy össze van keveredve.
Had kérdezzem meg magyarosítottad?
Nem az a baj, más tárgy nevét is mutatja eladásnál.
Pythont néz át a questiondialog résznél, vmi ott nem stimmel és már tárgy adatait írja.
Keress egy működő uishop.py vagy nézd át ezt a részt:
[spoiler]def SellAttachedItem(self):[/spoiler]
Köszi a tippeket. Viszont én nem 1 szerveren tapasztaltam azt a hibát, hogy ha behúzok 1 tárgyat a boltba, akkor nem mindig a tárgy pontos nevét írja ki a dialog. Illetve én már valahol láttam is erre fixet, itt a fórumon, csak nem tudom, hogy volt pontosan.
if player.IsValuableItem(itemtype, attachedSlotPos):
itemPrice = item.GetISellItemPrice()
módosítsd:
if player.IsValuableItem(itemtype, attachedSlotPos):
item.SelectItem(attachedItemIndex)
itemPrice = item.GetISellItemPrice()
ugyanis az playerIsValueableItem fv-ben van egy olyan művelet, mint maga az item.SelectItem és ez rontja el.
Ugyan kérdéses, hogy miért, hisz ugyanazt kéne kiválasztania amit eladsz de hát...
Üzenet összefésülés: 2018-03-10, 06:24:30
Na közbe csak kideríttem hol van az a bogár... :D
UserInterface/PythonPlayerModule.cpp
PyObject * playerIsValuableItem(PyObject* poSelf, PyObject* poArgs)
ezen belül
switch (PyTuple_Size (poArgs))
{
case 1:
if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell))
return Py_BuildException();
break;
case 2:
if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.window_type))
return Py_BuildException();
if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell))
return Py_BuildException();
break;
default:
return Py_BuildException();
}
Ymirék kicsit elírták, és a slotnak is az ablak típusát töltötte be mivel a cellát is 0-s indexel kérték le.
Íme a jó:
switch (PyTuple_Size (poArgs))
{
case 1:
if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell))
return Py_BuildException();
break;
case 2:
if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.window_type))
return Py_BuildException();
if (!PyTuple_GetInteger(poArgs, 1, &SlotIndex.cell))
return Py_BuildException();
break;
default:
return Py_BuildException();
}
UI: tesztelve 8)
Az a rész valóban hibás, de alapvetően csak egy paraméterrel használjuk azt a függvényt (nálam legalábbis így van), úgy pedig tökéletesen működik.
1-gyel igen, de nálam a python 2-vel hívja meg, mint fentebbi kódban látod.
De az nálad van, nem nála, ez a lényeg. :-X
(Illetve feltételezem, hogy nála sincs így, mivel alapvetően csak egyet használ mint már írtam.)
Hát pedig a DS miatt kell a 2 paraméteres eset, ha csak vettétek ki és írtátok át ezt a részt :D
Köszi Pati, hazaerek es kiprobalom. Ez pontosan melyiket javítja? Hogy amikor behúzom a boltba a 200db tárgyat, és jól írja ki az árat? Vagy a nevét javítja?
Mindkettőt javítja, ugyanis a nevet is és az árat is item. metódussal kéri le.
item.GetName
item.GetISellItemPrice
és előtte az item.SelectItem volt elronta, ezért rossz tárgyról adott infot, de a slottal nem volt gond ezért működött az eladás mindezek ellenére.
Hazaerek, es kiprobalom. Halas koszonet.
Ez a hiba csak 4 leltárnâl jelentkezik?
Hol látsz te utalást 4 leltárra...? :o :-X
Egyik kódrészletnek sincs köze hozzá :'( :'(
A gif-en gifenek 4 leltâr van..
És akk az lett volna vmelyik hsz-ben, hogy a 4 leltár rontja el, de nincs.
+ mint írtam 1ik kódrészletnek sincs köze hozzá :'( :'(
Ez a szerverek nagy részén hibás.
Ja
Pati. És arra valami megoldás, hogy amikor ráhuzom az egeret a 200db tárgyra, akkor lehet látni, hogy 141 milliót ít, de 970-et ad. Ez iy megjavu ettől?
Nem, valamit te rontottál el mikor max yangot raktad be, mivel nálam tökéletesen mutatja.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F10%2F2200310_130307.jpg&hash=5d7f5f9d1afe32277dafefa02bae7493846f4b7a)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F10%2F2200310_130241.jpg&hash=4eea0ce85c1f0f331acf344d577db7a5f9b617ce)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F10%2F2050310_130242.jpg&hash=6cd67822ef0cec6c5540a0e064608385eca95c49)
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F03%2F10%2F9180310_130243.jpg&hash=f57bed8aed14f0ad0f9f57a1cac88cab55e9becc)
Hm, és pontosan nem tudod, hogy melyik funkció felelhet ezért. Mert ezen kívül a max-yang, tökéletesen működik.
Kicsit jobban megnéztem, és rájöttem, hogy ami 400.000.000 millió felett van eladásnál, azt már nem jól jeleníti meg. Az első képen a 80db követ még jól, mert ugye pontosan 400.000.000 millió. Viszont a 2. kép, ahol már felette van, azt már nem.
player.GetISellItemPrice
Ezt nézd át. Nemtom magadtól megírtad-e mert penger leírásában ez nincs benne.
Nem tudom ez mennyire tartozik még ide, de nekem ilyen hogy "más tárgy nevét mutatja" hibám csak a Hungary v1 és társainál volt. Mióta sajáttal dolgozok semmi ilyen hibám nincs. Elvileg ott a New SellPacket from GF
okozta. Nem olvastam végig a témát, de ha neked ez bent van, próbáld meg kivenni.