*Problemă/Întrebare: dupa ce retrag iteme din shopoffline unele se duc pe slotu care este deja un item si dispare.
in shop normal armele si alte iteme se duc normal in slot-uri din inventar normal.
Tipologie server(PvM / PvP):...
*Resursă folosită: *Link exclusiv J4M* sursa/special-storage-zenu-t81425.html
*ServerFiles utilizat:...
*Syserr:
Poză: https://gyazo.com/0f23a98ff2d8ef068578d30c89a9a814
in tutorial nu are partea de shopoffline
am facut asa, nu stiu daca am facut bine.
offline_shop.cpp
offlineshop_manager.cpp
offlineshop.py
dispar iteme din inventar special
up, undeva de aici cred ca vine problema, doar cand scot iteme din offline, cand le cumpar se duc bine...
def SelectEmptySlot(self, slotIndex):
try:
if (constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1):
return
if (mouseModule.mouseController.isAttached()):
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
mouseModule.mouseController.DeattachObject()
if player.SLOT_TYPE_INVENTORY != attachedSlotType and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
(player.SLOT_TYPE_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_UPGRADE_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_BOOK_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_STONE_INVENTORY != attachedSlotType and app.ENABLE_SPECIAL_STORAGE):
return
attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
itemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
item.SelectItem(itemVnum)
if (item.IsAntiFlag(item.ANTIFLAG_GIVE) or item.IsAntiFlag(item.ANTIFLAG_MYSHOP)):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_CANNOT_SELL_ITEM)
return
priceInputBoard = uiCommon.MoneyInputDialog()
priceInputBoard.SetTitle(item.GetItemName() + "'s price")
priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
priceInputBoard.Open()
self.priceInputBoard = priceInputBoard
self.priceInputBoard.bDisplayPos = slotIndex
self.priceInputBoard.bPos = attachedSlotPos
except Exception, e:
import dbg
dbg.TraceError("Exception : SelectEmptySlot, %s" %(e))
def SelectEmptySlot(self, slotIndex):
try:
if (constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1):
return
if (mouseModule.mouseController.isAttached()):
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
mouseModule.mouseController.DeattachObject()
if player.SLOT_TYPE_INVENTORY != attachedSlotType and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
(player.SLOT_TYPE_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_UPGRADE_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_BOOK_INVENTORY != attachedSlotType and\
player.SLOT_TYPE_STONE_INVENTORY != attachedSlotType and app.ENABLE_SPECIAL_STORAGE):
return
attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
itemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
item.SelectItem(itemVnum)
if (item.IsAntiFlag(item.ANTIFLAG_GIVE) or item.IsAntiFlag(item.ANTIFLAG_MYSHOP)):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_CANNOT_SELL_ITEM)
return
priceInputBoard = uiCommon.MoneyInputDialog()
priceInputBoard.SetTitle(item.GetItemName() + "'s price")
priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
priceInputBoard.Open()
self.priceInputBoard = priceInputBoard
self.priceInputBoard.bDisplayPos = slotIndex
self.priceInputBoard.bPos = attachedSlotPos
except Exception, e:
import dbg
dbg.TraceError("Exception : SelectEmptySlot, %s" %(e))
imi apare acest sysser pe ch1
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005375 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005375)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005414 Bucata de tesatura+ owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30085 (name NvL id 10005414)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005404 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005404)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005424 Coada de sarpe owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30022 (name NvL id 10005424)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005405 Fiere de Urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30010 (name NvL id 10005405)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005481 Ochi de Paianjen owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30057 (name NvL id 10005481)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005410 Simbol de razboinic owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30091 (name NvL id 10005410)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005375 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005375)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005414 Bucata de tesatura+ owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30085 (name NvL id 10005414)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005404 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005404)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005424 Coada de sarpe owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30022 (name NvL id 10005424)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005405 Fiere de Urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30010 (name NvL id 10005405)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005481 Ochi de Paianjen owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30057 (name NvL id 10005481)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005410 Simbol de razboinic owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30091 (name NvL id 10005410)
- NoNNeX
-

- Mesaje: 287
- Membru din: 27 Mai 2022, 11:48
- Server: -
- Regat: Jinno
- Aprecieri: 161
- Mulţumiri: 150
- Rezolvări prob.: 4
- Discord: Copiază ID
Verifica item.cpp și char_item.cpp defapt cred ca este din input_db.cpp parca funcția de item load am avut ceva asemenea la switchbot a lu saniiyonr1 scrie: ↑07 Aug 2022, 19:52 imi apare acest sysser pe ch1
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005375 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005375)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005414 Bucata de tesatura+ owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30085 (name NvL id 10005414)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005404 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005404)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005424 Coada de sarpe owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30022 (name NvL id 10005424)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005405 Fiere de Urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30010 (name NvL id 10005405)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005481 Ochi de Paianjen owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30057 (name NvL id 10005481)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005410 Simbol de razboinic owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30091 (name NvL id 10005410)
decat aasta am gasit in input_dbNoNNeX scrie: ↑07 Aug 2022, 21:25Verifica item.cpp și char_item.cpp defapt cred ca este din input_db.cpp parca funcția de item load am avut ceva asemenea la switchbot a lu saniiyonr1 scrie: ↑07 Aug 2022, 19:52 imi apare acest sysser pe ch1
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005375 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005375)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005414 Bucata de tesatura+ owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30085 (name NvL id 10005414)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005404 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005404)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005424 Coada de sarpe owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30022 (name NvL id 10005424)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005405 Fiere de Urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30010 (name NvL id 10005405)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005481 Ochi de Paianjen owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30057 (name NvL id 10005481)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005410 Simbol de razboinic owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30091 (name NvL id 10005410)
Cod: Selectaţi tot
oid CInputDB::ItemLoad(LPDESC d, const char * c_pData)
{
LPCHARACTER ch;
if (!d || !(ch = d->GetCharacter()))
return;
if (ch->IsItemLoaded())
return;
DWORD dwCount = decode_4bytes(c_pData);
c_pData += sizeof(DWORD);
sys_log(0, "ITEM_LOAD: COUNT %s %u", ch->GetName(), dwCount);
std::vector<LPITEM> v;
TPlayerItem * p = (TPlayerItem *) c_pData;
for (DWORD i = 0; i < dwCount; ++i, ++p)
{
LPITEM item = ITEM_MANAGER::instance().CreateItem(p->vnum, p->count, p->id);
if (!item)
{
sys_err("cannot create item by vnum %u (name %s id %u)", p->vnum, ch->GetName(), p->id);
continue;
}
item->SetSkipSave(true);
item->SetSockets(p->alSockets);
item->SetAttributes(p->aAttr);
if ((p->window == INVENTORY && ch->GetInventoryItem(p->pos)) ||
(p->window == EQUIPMENT && ch->GetWear(p->pos)))
{
sys_log(0, "ITEM_RESTORE: %s %s", ch->GetName(), item->GetName());
v.push_back(item);
}
else
{
switch (p->window)
{
case INVENTORY:
case DRAGON_SOUL_INVENTORY:
#ifdef ENABLE_SWITCHBOT
case SWITCHBOT:
#endif
#ifdef __SPECIAL_STORAGE__
case UPGRADE_INVENTORY:
case BOOK_INVENTORY:
case STONE_INVENTORY:
{
//sys_err("Load shit window = %d // pos = %d", p->window, p->pos);
item->AddToCharacter(ch, TItemPos(p->window, p->pos));
}
break;
#endif
item->AddToCharacter(ch, TItemPos(p->window, p->pos));
break;
case EQUIPMENT:
if (item->CheckItemUseLevel(ch->GetLevel()) == true )
{
if (item->EquipTo(ch, p->pos) == false )
{
v.push_back(item);
}
}
else
{
v.push_back(item);
}
break;
}
}
if (false == item->OnAfterCreatedItem())
sys_err("Failed to call ITEM::OnAfterCreatedItem (vnum: %d, id: %d)", item->GetVnum(), item->GetID());
item->SetSkipSave(false);
}
itertype(v) it = v.begin();
while (it != v.end())
{
LPITEM item = *(it++);
int pos = ch->GetEmptyInventory(item->GetSize());
if (pos < 0)
{
PIXEL_POSITION coord;
coord.x = ch->GetX();
coord.y = ch->GetY();
item->AddToGround(ch->GetMapIndex(), coord);
item->SetOwnership(ch, 180);
item->StartDestroyEvent();
}
else
item->AddToCharacter(ch, TItemPos(INVENTORY, pos));
}
ch->CheckMaximumPoints();
ch->PointsPacket();
ch->SetItemLoaded();
}- NoNNeX
-

- Mesaje: 287
- Membru din: 27 Mai 2022, 11:48
- Server: -
- Regat: Jinno
- Aprecieri: 161
- Mulţumiri: 150
- Rezolvări prob.: 4
- Discord: Copiază ID
da mi un discord sa te ajut acolo imi e mai usor sau da mi add 亗NoNNeX亗#6187yonr1 scrie: ↑08 Aug 2022, 12:59decat aasta am gasit in input_dbNoNNeX scrie: ↑07 Aug 2022, 21:25Verifica item.cpp și char_item.cpp defapt cred ca este din input_db.cpp parca funcția de item load am avut ceva asemenea la switchbot a lu saniiyonr1 scrie: ↑07 Aug 2022, 19:52 imi apare acest sysser pe ch1
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005375 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005375)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005414 Bucata de tesatura+ owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30085 (name NvL id 10005414)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005404 Piele de talpa de urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30053 (name NvL id 10005404)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005424 Coada de sarpe owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30022 (name NvL id 10005424)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005405 Fiere de Urs owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30010 (name NvL id 10005405)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005481 Ochi de Paianjen owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30057 (name NvL id 10005481)
SYSERR: Aug 7 20:48:19 :: CreateItem: ITEM_ID_DUP: 10005410 Simbol de razboinic owner 0x735bc680
SYSERR: Aug 7 20:48:19 :: ItemLoad: cannot create item by vnum 30091 (name NvL id 10005410)
Cod: Selectaţi tot
oid CInputDB::ItemLoad(LPDESC d, const char * c_pData) { LPCHARACTER ch; if (!d || !(ch = d->GetCharacter())) return; if (ch->IsItemLoaded()) return; DWORD dwCount = decode_4bytes(c_pData); c_pData += sizeof(DWORD); sys_log(0, "ITEM_LOAD: COUNT %s %u", ch->GetName(), dwCount); std::vector<LPITEM> v; TPlayerItem * p = (TPlayerItem *) c_pData; for (DWORD i = 0; i < dwCount; ++i, ++p) { LPITEM item = ITEM_MANAGER::instance().CreateItem(p->vnum, p->count, p->id); if (!item) { sys_err("cannot create item by vnum %u (name %s id %u)", p->vnum, ch->GetName(), p->id); continue; } item->SetSkipSave(true); item->SetSockets(p->alSockets); item->SetAttributes(p->aAttr); if ((p->window == INVENTORY && ch->GetInventoryItem(p->pos)) || (p->window == EQUIPMENT && ch->GetWear(p->pos))) { sys_log(0, "ITEM_RESTORE: %s %s", ch->GetName(), item->GetName()); v.push_back(item); } else { switch (p->window) { case INVENTORY: case DRAGON_SOUL_INVENTORY: #ifdef ENABLE_SWITCHBOT case SWITCHBOT: #endif #ifdef __SPECIAL_STORAGE__ case UPGRADE_INVENTORY: case BOOK_INVENTORY: case STONE_INVENTORY: { //sys_err("Load shit window = %d // pos = %d", p->window, p->pos); item->AddToCharacter(ch, TItemPos(p->window, p->pos)); } break; #endif item->AddToCharacter(ch, TItemPos(p->window, p->pos)); break; case EQUIPMENT: if (item->CheckItemUseLevel(ch->GetLevel()) == true ) { if (item->EquipTo(ch, p->pos) == false ) { v.push_back(item); } } else { v.push_back(item); } break; } } if (false == item->OnAfterCreatedItem()) sys_err("Failed to call ITEM::OnAfterCreatedItem (vnum: %d, id: %d)", item->GetVnum(), item->GetID()); item->SetSkipSave(false); } itertype(v) it = v.begin(); while (it != v.end()) { LPITEM item = *(it++); int pos = ch->GetEmptyInventory(item->GetSize()); if (pos < 0) { PIXEL_POSITION coord; coord.x = ch->GetX(); coord.y = ch->GetY(); item->AddToGround(ch->GetMapIndex(), coord); item->SetOwnership(ch, 180); item->StartDestroyEvent(); } else item->AddToCharacter(ch, TItemPos(INVENTORY, pos)); } ch->CheckMaximumPoints(); ch->PointsPacket(); ch->SetItemLoaded(); }
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori

de