Ir para conteúdo
  • 0

[Resolvido] Shop entregando vários itens


Ayron5

Pergunta

Bom, é um bug/erro antigo... Já ví vários tópicos falando sobre, testei todas as scripts possíveis mas a parada ainda continua.

A maioria fala que é nas scripts do site, eu creio que não, Vou dar o exemplo do que ocorre... Comprando o item no site ele chega normalmente ao player, caso esse player mantenha esse item na bag e fizer outra compra em seguida, o script manda: 

Citar

doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem espaco suficiente na mochila para receber o item >> "..productn.." <<")

E é nessa hora que começa a chegar vários itens sem parar

mesmo tendo espaço na bag... 

(JÁ QUE FALA QUE NÃO TEM ESPAÇO, NÃO ERA PARA CANCELAR A CHEGADA DOS ITENS?)   .-.

Peguei o vídeo do FlamesAdmin que demonstra melhor isso... 

Spoiler

 

 Script do shop.lua do globalevents:

Spoiler

function onThink(interval, lastExecution, thinkInterval)

	local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;")
	
		if(result:getID() ~= -1) then 
			while(true) do
				cid = getCreatureByName(tostring(result:getDataString("player")))
				product = tonumber(result:getDataInt("product"))
				itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";")
					if isPlayer(cid) then
						local id = tonumber(itemr:getDataInt("item"))
						local tid = tonumber(result:getDataInt("id"))
						local count = tonumber(itemr:getDataInt("count"))
						local tipe = tonumber(itemr:getDataInt("type"))
						local productn = tostring(itemr:getDataString("name"))
							if isInArray({5,8},tipe) then
								if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then
									if isContainer(getPlayerSlotItem(cid, 3).uid) then
										received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count)
										if received then
										
											doPlayerSendTextMessage(cid,19, "Voce recebeu >> "..productn.." << do nosso sistema de loja")
											db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
										else
											doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem espaco suficiente na mochila para receber o item >> "..productn.." <<")
										end
									else
										doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem uma mochila para receber o item >> "..productn.." <<")
									end
								else
									doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem capacidade suficiente para receber o item >> "..productn.." << (Voce precisa: "..getItemWeightById(id, count).." Capacidade)")
								end
							elseif isInArray({6,7},tipe) then
									if tipe == 6 then
										bcap = 8
										bid = 1987
									elseif tipe == 7 then
										bcap = 20
										bid = 1988
									end
									if isItemRune(id) then
										count = 1
									end
									if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then
										local bag = doCreateItemEx(bid, 1)
											for i = 1,bcap do
												doAddContainerItem(bag, id, count)
											end
										received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag)
										if received == RETURNVALUE_NOERROR then
											doPlayerSendTextMessage(cid,19, "Voce recebeu >> "..productn.." << do nosso sistema de loja")
											
											db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
										else
											doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem espaco suficiente para receber o item >> "..productn.." <<")
										end
									else
										doPlayerSendTextMessage(cid,19, "Desculpe, voce nao tem capacidade suficiente para receber o item >> "..productn.." << (Voce precisa: "..getItemWeightById(id, count).." Capacidade)")
									end
							end
					end
				itemr:free()
				if not(result:next()) then
					break
				end
			end
			result:free()
		end
	return true
end

 

Uso Modern... 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...