Ir para conteúdo

Featured Replies

Postado

Seria uma boa, refazer o npc. Ou substituir a pasta lib pela original, que já vem no servidor.

Só da o REP+.

 

 

  • Respostas 9
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado
  • Autor

Seria uma boa, refazer o npc. Ou substituir a pasta lib pela original, que já vem no servidor.

Minha pasta lib é a original, não modifiquei nada, apenas add essa função mais continuou a mesma coisa!

Você poderia refazer o npc para mim?

Postado
  • Autor

Consegui arrumar a função:


function customCallbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks, shopWindow)

	local shopItem, npcHandler = nil, NpcHandler

	for _, item in ipairs(shopWindow) do

		if not item.subType then

			item.subType = (isItemFluidContainer(item.id) == TRUE or isItemStackable(item.id) == TRUE) and 0 or 1

		end

		if(item.id == itemid and (item.subType == subType)) then

			shopItem = item

			break

		end

	end


	if(shopItem == nil) then

		error("[ShopModule.onBuy]", "Item not found on shopItems list")

		return false

	end


	if(shopItem.buy < 0) then

		error("[ShopModule.onSell]", "Attempt to purchase an item which is only sellable")

		return false

	end


	local backpack, totalCost = 1988, amount * shopItem.buy

	if(inBackpacks) then

		totalCost = isItemStackable(itemid) == TRUE and totalCost + 20 or totalCost + (math.max(1, math.floor(amount / getContainerCapById(backpack))) * 20)

	end


	if(getPlayerMoney(cid) < totalCost) then

		doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_NEEDMONEY), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name}))

		return false

	end


	local subType = shopItem.subType or isItemFluidContainer(itemid) == TRUE and 0 or 1

	local a, b = doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack)

	if(a < amount) then

		local msgId = MESSAGE_NEEDMORESPACE

		if(a == 0) then

			msgId = MESSAGE_NEEDSPACE

		end


		doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(msgId), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name, [TAG_ITEMCOUNT] = a}))


		if(a > 0) then

			doPlayerRemoveMoney(cid, ((a * shopItem.buy) + (b * 20)))

			return true

		end


		return false

	end

	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_BOUGHT), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name}))

	doPlayerRemoveMoney(cid, totalCost)


	return true

end


function customCallbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks, shopWindow)

	local shopItem, npcHandler, subType = nil, NpcHandler, subType or 0

	for _, item in ipairs(shopWindow) do

		item.subType = not item.subType and 0 or item.subType

		if(item.id == itemid and (isItemFluidContainer(itemid) == FALSE or isItemFluidContainer(itemid) == TRUE and item.subType == subType)) then

			shopItem = item

			break

		end

	end


	if(shopItem == nil) then

		error("[ShopModule.onBuy]", "Item not found on shopItems list")

		return false

	end


	if(shopItem.sell < 0) then

		error("[ShopModule.onSell]", "Attempt to sell an item which is only buyable")

		return false

	end


	if(doPlayerRemoveItem(cid, itemid, amount, isItemFluidContainer(itemid) == TRUE and subType or isItemStackable(itemid) == TRUE and amount or 1) == TRUE) then

		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_SOLD), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name}))

		doPlayerAddMoney(cid, amount * shopItem.sell)


		return true

	end

	doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_NEEDITEM), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name}))


	return false

  end

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo