Ir para conteúdo

Npc Especial


tesch

Posts Recomendados

Tipo do script:npcs

Protocolo (versão do Tibia):8.60

Servidor utilizado:styller yourots

Nível de experiência:medio/baixo(sei mecher no bassico fazer creatures essas coisas)

Adicionais/Informações:o npc e o seguinte ele vende itens por otro itens sem ser gold seria uma nova moeda mais eu nao quero de troca eu queria que o player podesse falar trade como se fose gold mais esse npoc em vez de pegar gold ele pega o item vip do server!

ex:

player:hi

npc: ola player para comprar itens vips e so falar trade

player:trade

ae la abre akela paradinha do trade ele compra sertinho mais quando ele compra em ves de ser gold vai ser barras de ouro

Link para o comentário
Compartilhar em outros sites

se eu não me engano é nessa função:

 

-- Callback onBuy() function. If you wish, you can change certain Npc to use your onBuy().
function ShopModule:callbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks)
	if(self.npcHandler.shopItems[itemid] == nil) then
		error("[shopModule.onBuy]", "items[itemid] == nil")
		return false
	end

	if(self.npcHandler.shopItems[itemid].buyPrice == -1) then
		error("[shopModule.onSell]", "Attempt to buy a non-buyable item")
		return false
	end

	local backpack = 1988
	local totalCost = amount * self.npcHandler.shopItems[itemid].buyPrice
	if(inBackpacks) then
		totalCost = totalCost + (math.max(1, math.floor(amount / getContainerCapById(backpack))) * 20)
	end

	local parseInfo = {
		[TAG_PLAYERNAME] = getPlayerName(cid),
		[TAG_ITEMCOUNT] = amount,
		[TAG_TOTALCOST] = totalCost,
		[TAG_ITEMNAME] = self.npcHandler.shopItems[itemid].realName
	}

	if(getPlayerMoney(cid) < totalCost) then
		local msg = self.npcHandler:getMessage(MESSAGE_NEEDMONEY)
		msg = self.npcHandler:parseMessage(msg, parseInfo)
		doPlayerSendCancel(cid, msg)
		return false
	end

	local subType = self.npcHandler.shopItems[itemid].subType 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

		local msg = self.npcHandler:getMessage(msgId)
		parseInfo[TAG_ITEMCOUNT] = a
		msg = self.npcHandler:parseMessage(msg, parseInfo)
		doPlayerSendCancel(cid, msg)
		if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
			self.npcHandler.talkStart[cid] = os.time()
		else
			self.npcHandler.talkStart = os.time()
		end

		if(a > 0) then
			doPlayerRemoveMoney(cid, ((a * self.npcHandler.shopItems[itemid].buyPrice) + (b * 20)))
			return true
		end

		return false
	else
		local msg = self.npcHandler:getMessage(MESSAGE_BOUGHT)
		msg = self.npcHandler:parseMessage(msg, parseInfo)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg)
		doPlayerRemoveMoney(cid, totalCost)
		if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then
			self.npcHandler.talkStart[cid] = os.time()
		else
			self.npcHandler.talkStart = os.time()
		end

		return true
	end
end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...