Koray OfflineShop

Indította whiteworld, 2017-08-04, 10:20:53

Szép napot. Valaki tud egy működő változatot ebből az OfflineShopból? Esetleg valaki javította és működő képessé tette? Talán esetleg publikálna egy működő változatot? Válaszokat előre is köszönöm.

Erről lenne szó.

https://metin2dev.org/board/index.php?/topic/13808-offline-shop-preview/
https://devcore.hu/showthread.php?tid=47

Én is kerestem de nem találtam de minden madár azt csiriptelte nincs ,magunknak kel megcsinálni ...

Én egyelőre annyi bugot találtam, hogy kifagy a DB ha rámegyek a Claim Rewardra rakiban, és yangot se lehet onnan kivenni, azon kívül működik.

Akkor valamit én toltam el, mivel nálam nem lehet a boltból vásárolni.
Már kétszer néztem át és nem igazán találom a hibát.
Ez a kifagyás nálam is meg van. De kezdjük az elején.

A 01-es kép a bolt készítés



ez működik.

A 02-es kép árazás



A 03-as kép vásárlás



No ez már nem működik

Ráadásul az inventoryban lévő yang-nál mint a képeken is látható
nem a megszokot formátum van 136.000.000 yang ez csak példa.
Már kétszer is átnéztem de nem igazán találtam meg a hibát.
Lehet a hőség miatt van (:

Vásárlással nincs gondom, SÉ-ért is működik a dolog, bár az ugyan még nincs nekem a leltárba mutatva, de működik a vásárlás SÉ-ért is.
Ami gondom van még vele, hogy ha az 1. típust választom ami ugye az alap privát bolt lesz és átváltozol, akkor a bolt fölött nem lesz ott a neve 1 olyan thinboardban v miben, amitől ugye nem tudod megnyitni a saját boltod h be tudd zárni.
Más player rád tud kattintani szokásos módon és megnyílik a bolt de magadnál sajnos nem.
Bár ez a hiba nem nagyon izgat, sőt lehet ki is szedem, hisz ki használna sima privátboltot amikor van lehetőség offshopra is :D

2017-08-04, 16:04:39 #5 Utolsó szerkesztés: 2017-08-05, 10:53:46 Szerző: whiteworld
Vagy a simát átírhatod mondjuk 2 órásra. Holnap megint átnézem a py fájlokat talán rájövök én merre is rontottam el.

Ezt a hibát írja vásárláskor


0804 14:00:49844 :: Traceback (most recent call last):

0804 14:00:49844 ::   File "ui.py", line 1824, in OnUnselectItemSlot

0804 14:00:49845 ::   File "ui.py", line 86, in __call__

0804 14:00:49845 ::   File "ui.py", line 77, in __call__

0804 14:00:49845 ::   File "uiShop.py", line 598, in UnselectItemSlot

0804 14:00:49845 ::   File "uiShop.py", line 660, in AskBuyItem

0804 14:00:49845 :: AttributeError
0804 14:00:49846 :: :
0804 14:00:49846 :: 'module' object has no attribute 'DO_YOU_BUY_ITEM'
0804 14:00:49846 ::


Nálam az alap bolt felett is ott a név és megtudom jelölni ha valami érdekes van benne így nem kell keresnem ha újra megakarom nézni, mondjuk ez csak addig jelöli amíg nem karakter cserézek vagy nem portolok, de vásárolni ott sem tudok.








0804 14:00:49846 :: 'module' object has no attribute 'DO_YOU_BUY_ITEM'

localeInfo.py-ba nem tetted bele a részletet, vagy rossz helyre tetted, mert nem az első találat a jó.  ;)


[spoiler]Én beraktam a Koray féle offline shop-ot mert tetszik, de valamiért a forrást hiába fordítom le, ch1 és ch99 leáll ezzel a sysser-el.

Boot: shop table size error
[/spoiler]

2017-08-05, 19:52:09 #7 Utolsó szerkesztés: 2017-08-06, 07:27:47 Szerző: whiteworld
Köszönöm Pisti így már jó.
Találtam egy majd nem fixet a yang kivételére a raktárból. Azért írtam, hogy majd nem fix mivel kilehet venni a yangot de nem 0 yangot ír ki hanem a kivett összeg dupláját vagyis ha van bent 15.000 yang amikor ezt kiveszem nem 0 yangot ír hanem 30.000 yangot. De egy raktár bezárás és újra nyitás után vagy kari csere után már 0 yangot ír ki. Viszont addig lehet kiszedni a yangokat, vagyis ez így már fix és bug is egyszerre. Javította a yang kivételt, de potyán lehet hozzá jutni egy csomó yanghoz.

Képek:

raktárban lévő yang



kivétel után dupla



raktár bezárás és újra nyitás vagy karakter csere után már rendesen jelzi a 0 yangot



Tehát a fix:

Indító forrásban az UserInterface / PythonNetworkStreamModule.cpp

A mellékelt leírásban ez van

Keresés:
PyObject* netSendSafeboxSaveMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_SAVE, iMoney);

return Py_BuildNone();
}

PyObject* netSendSafeboxWithdrawMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_WITHDRAW, iMoney);

return Py_BuildNone();
}

Cseréld ki erre:
PyObject* netSendSafeboxSaveMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
#ifdef __OFFLINE_SHOP__
uint64_t iMoney;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iMoney))
return Py_BuildException();
#else
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();
#endif

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_SAVE, iMoney);

return Py_BuildNone();
}

PyObject* netSendSafeboxWithdrawMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
#ifdef __OFFLINE_SHOP__
uint64_t iMoney;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iMoney))
return Py_BuildException();
#else
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();
#endif

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_WITHDRAW, iMoney);

return Py_BuildNone();
}


de erre cseréld

PyObject* netSendSafeboxSaveMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
#ifdef __OFFLINE_SHOP__
uint64_t iMoney;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iMoney))
return Py_BuildException();
#else
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();
#endif

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_SAVE, iMoney);
TraceError("x money %d", iMoney);
return Py_BuildNone();
}

PyObject* netSendSafeboxWithdrawMoneyPacket(PyObject* poSelf, PyObject* poArgs)
{
int iMoney;
if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
return Py_BuildException();

CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_WITHDRAW, iMoney);
TraceError("x money %d", iMoney);
return Py_BuildNone();
}