Boa dia/tarde/noite galera do Xtibia, estou com um problema não muito critico, mas que atrapalha muito qualquer jogador.
Como o titulo ja diz, quando vc vai vender seu loot (da backpack) e o item que vc for vender for o mesmo ID do que tiver equipado em um dos slots de equips, o NPC acaba levando o que ta equipado. Eu mesmo fiz uma gabiarra para evitar esse tipo de transtorno porém não é de fato a solução. Se alguém que manje um pouco mais puder ajudar eu agradeço. Segue UMA PARTE do script de sistema do NPC :
-- Callback onSell() function. If you wish, you can change certain Npc to use your onSell().function ShopModule:callbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks)local shopItem =nilfor _, item in ipairs(self.npcHandler.shopItems)doif(item.id == itemid and item.subType == subType)then
shopItem = item
breakendendif(shopItem ==nil)then
print('[Warning - '.. getCreatureName(getNpcId())..'] NpcSystem:','ShopModule.onSell - Item not found on shopItems list')returnfalseendif(shopItem.sell ==-1)then
print('[Warning - '.. getCreatureName(getNpcId())..'] NpcSystem:','ShopModule.onSell - Attempt to sell an item which is only buyable')returnfalseendlocal parseInfo ={[TAG_PLAYERNAME]= getPlayerName(cid),[TAG_ITEMCOUNT]= amount,[TAG_TOTALCOST]= amount * shopItem.sell,[TAG_ITEMNAME]= shopItem.name
}function GetEquippedItems(cid,itemid)
items ={}for i = CONST_SLOT_FIRST, CONST_SLOT_LAST do
item = getPlayerSlotItem(cid, i).itemid
table.insert(items, item)endreturn items
end-- GAMBIARRA --if isInArray(GetEquippedItems(cid,itemid), itemid)then
doPlayerSendTextMessage(cid,22,"Guarde seus equips no depot antes de realizar a venda do loot.")returntrueendif(doPlayerRemoveItem(cid, itemid, amount, subType))thenlocal msg = self.npcHandler:getMessage(MESSAGE_SOLD)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, self.npcHandler:parseMessage(msg, parseInfo))
doPlayerAddMoney(cid, amount * shopItem.sell)if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT)then
self.npcHandler.talkStart[cid]= os.time()else
self.npcHandler.talkStart = os.time()endreturntrueendlocal msg = self.npcHandler:getMessage(MESSAGE_NEEDITEM)
doPlayerSendCancel(cid, self.npcHandler:parseMessage(msg, parseInfo))if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT)then
self.npcHandler.talkStart[cid]= os.time()else
self.npcHandler.talkStart = os.time()endreturnfalseend
Pergunta
Pedrosass 0
OT 8.6(TFS 0.4.0 rev 3777).
Boa dia/tarde/noite galera do Xtibia, estou com um problema não muito critico, mas que atrapalha muito qualquer jogador.
Como o titulo ja diz, quando vc vai vender seu loot (da backpack) e o item que vc for vender for o mesmo ID do que tiver equipado em um dos slots de equips, o NPC acaba levando o que ta equipado. Eu mesmo fiz uma gabiarra para evitar esse tipo de transtorno porém não é de fato a solução. Se alguém que manje um pouco mais puder ajudar eu agradeço. Segue UMA PARTE do script de sistema do NPC :
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados