Szerző Téma: Itemshop leltár probléma  (Megtekintve 722 alkalommal)

Nem elérhető gergo1995

  • Beginner
  • Hozzászólások: 14
  • Segített: 0
Itemshop leltár probléma
« Dátum: 2021-07-13, 00:40:30 »
Sziasztok!

Olyan problémába ütköztem, hogy ha megveszek valamit az itemshopból, akkor a leltárban csak az utoljára vásárolt tárgy kerül be, pl.: megveszek 200db köpit, 1db optolót, 1db opt cserélőt, akkor csak az opt cserélő kerül be az itemshop leltárba. is_log-ban benne van, hogy megvettem, SÉ-t le is vonja, viszont az itemshop leltárba csak az utoljára megvásárolt tárgy kerül be. A segítséget előre is köszönöm!
« Utoljára szerkesztve: 2021-07-13, 00:42:24 írta gergo1995 »

Nem elérhető TMP4

  • Trainee
  • *
  • Hozzászólások: 78
  • Segített: 19
Re:Itemshop leltár probléma
« Válasz #1 Dátum: 2021-07-13, 12:55:08 »
Az semmit nem számít mi van az is_logban, ami számít az az hogy mi van az item_awardban. A kérdéses "eltűnt" itemek belekerülnek-e, ha igen akkor "taken"-e, kaptak-e id-t, az szerepel-e az item táblában. Ha ez mind oké akkor a db-dben lesz a hiba ahol betölti a tárgyakat az is ablakba.

Ha esetleg nem item_awardos itemshopot használsz (nagy hiba) akkor módosítsd át a webedben a query-t hogy az item_awardba inserteljen, amúgy sem szabad több okból sem direkten az itembe illeszteni mert úgy az id-k nem lesznek lefoglalva, anno a nagy szervereknél emiatt voltak a "random" cucc eltűnések.

Nem elérhető gergo1995

  • Beginner
  • Hozzászólások: 14
  • Segített: 0
Re:Itemshop leltár probléma
« Válasz #2 Dátum: 2021-07-13, 13:21:10 »
Az item_award-ba bekerül, viszont rárakja az itemshop leltárban a másik cuccra, és így az előző cucc eltűnik, olyan mint ha nem működne az itemshop leltárban csak az első "rublika".

Nem elérhető TMP4

  • Trainee
  • *
  • Hozzászólások: 78
  • Segített: 19
Re:Itemshop leltár probléma
« Válasz #3 Dátum: 2021-07-13, 17:06:23 »
Biztos vagy benne hogy rárakja vagy csak feltételezed? Mármint ellenőrizted az item táblában a MALL-on lévő cuccok pos oszlopának a számát és ugyan az?

Ebben az esetben itt van a hiba: CClientManager::RESULT_SAFEBOX_LOAD (ClientManager.cpp)
Mégpedig ez nem működik nálad valamiért:
int iPos;
if ((iPos = grid.FindBlank(1, it->second->bSize)) == -1)
break;

ennek a kódja pedig a CGrid::FindBlank (grid.cpp)-ben van és -1-et ad vissza ha nincs szabad hely.

Én amúgy nem hinném hogy tényleg rárakja, ahogy látod ha nincs szabad hely akkor nem a 0-ra rakja hanem egyszerűen megáll a kód és a folyamat sikertelen lesz tehát nem is lesz insertelve az item táblába. Persze ha nem alap forrást használsz akkor valaki belepiszkálhatott.

Ha mégis rárakja egymásra tehát látod hogy a pos megegyezik akkor írd le és tovább gondoljuk de ahogy látod az (alap) kód ilyet nem enged meg plusz akkor egy relog után a 2. tárgy megjelenne elvileg.