Eladásnál valós érték

Indította gife974, 2018-03-09, 20:14:25

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?
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Szerintem az item_proto nem egyezik a szerver protoval vagy össze van keveredve.
Had kérdezzem meg magyarosítottad?
"A színpadon törtek elÅ' belÅ'lem a sötét erÅ'k!"

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.

2018-03-10, 06:09:02 #6 Utolsó szerkesztés: 2018-03-10, 06:24:30 Szerző: 5310pati
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.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

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.)
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

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

"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

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.