Offline Shop duplicate bug

10/24/2017 05:57 humanforu#1
Hello there ,
I have a bug of duplication in offline shop.
a players duplicates items using ken offline shop with refresh unsold items
* i just need one command or coding that is if offline shop is opened that refresh unsold items must not allow items to remove that's it
or
* refresh unsold item box must not open when offline shop is opened and also if refresh unsold box is opened then offline shop should not be created
can anyone made coding for that so it will avoid that duplication?
[Only registered and activated users can see links. Click Here To Register...][Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]


Will be happy if anyone helps

regards

Hawk
10/25/2017 14:18 FetteRatte.#2
Quote:
Originally Posted by humanforu View Post
Hello there ,
I have a bug of duplication in offline shop.
a players duplicates items using ken offline shop with refresh unsold items
* i just need one command or coding that is if offline shop is opened that refresh unsold items must not allow items to remove that's it
or
* refresh unsold item box must not open when offline shop is opened and also if refresh unsold box is opened then offline shop should not be created
can anyone made coding for that so it will avoid that duplication?
[Only registered and activated users can see links. Click Here To Register...][Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]


Will be happy if anyone helps

regards

Hawk
Try to add "AND status=1" to the querys in offlineshop_manager.cpp at "void COfflineShopManager::TakeItem(LPCHARACTER ch, BYTE bPos)"

second method (not tested)

open input_main.cpp and edit:
Code:
		case SHOP_SUBHEADER_CG_TAKE_ITEM:
		{
			if (uiBytes < sizeof(BYTE))
				return -1;

			BYTE bPos = *c_pData;
			sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName());
			COfflineShopManager::instance().TakeItem(ch, bPos);
			return (sizeof(BYTE));
		}
to
Code:
		case SHOP_SUBHEADER_CG_TAKE_ITEM:
		{
			if (uiBytes < sizeof(BYTE))
				return -1;

			BYTE bPos = *c_pData;
			if (!COfflineShopManager::instance().HasOfflineShop(ch)){
				sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName());
				COfflineShopManager::instance().TakeItem(ch, bPos);
			}
			return (sizeof(BYTE));
		}
and
Code:
		case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS:
		{
			sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName());
			COfflineShopManager::instance().RefreshUnsoldItems(ch);
			return 0;
		}
to
Code:
		case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS:
		{
			if (!COfflineShopManager::instance().HasOfflineShop(ch)){
				sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName());
				COfflineShopManager::instance().RefreshUnsoldItems(ch);
			}
			return 0;
		}
10/26/2017 06:33 humanforu#3
Quote:
Originally Posted by GucciMane. View Post
Try to add "AND status=1" to the querys in offlineshop_manager.cpp at "void COfflineShopManager::TakeItem(LPCHARACTER ch, BYTE bPos)"

second method (not tested)

open input_main.cpp and edit:
Code:
		case SHOP_SUBHEADER_CG_TAKE_ITEM:
		{
			if (uiBytes < sizeof(BYTE))
				return -1;

			BYTE bPos = *c_pData;
			sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName());
			COfflineShopManager::instance().TakeItem(ch, bPos);
			return (sizeof(BYTE));
		}
to
Code:
		case SHOP_SUBHEADER_CG_TAKE_ITEM:
		{
			if (uiBytes < sizeof(BYTE))
				return -1;

			BYTE bPos = *c_pData;
			if (!COfflineShopManager::instance().HasOfflineShop(ch)){
				sys_log(0, "INPUT: %s OFFLINE_SHOP_TAKE_ITEM", ch->GetName());
				COfflineShopManager::instance().TakeItem(ch, bPos);
			}
			return (sizeof(BYTE));
		}
and
Code:
		case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS:
		{
			sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName());
			COfflineShopManager::instance().RefreshUnsoldItems(ch);
			return 0;
		}
to
Code:
		case SHOP_SUBHEADER_CG_REFRESH_UNSOLD_ITEMS:
		{
			if (!COfflineShopManager::instance().HasOfflineShop(ch)){
				sys_log(0, "INPUT: %s OFFLINE_SHOP_REFRESH_UNSOLD_ITEMS", ch->GetName());
				COfflineShopManager::instance().RefreshUnsoldItems(ch);
			}
			return 0;
		}
Thanks dude i already added status = 1 and its solved anyway thanks for this coding :)