Npc Especial

tesch
Por tesch
em Lixeira Pública

tesch

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/08/09Posts: 5Char no Tibia: Levoth de elera

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

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

pow velho ai vc tem que mechar na lib do npc para aceitar moedas vips tbm :X

bossisg.png

tesch

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/08/09Posts: 5Char no Tibia: Levoth de elera

como eu mecho na lib pra aceitar isso?

o dificil e trocar de guild pra vip gold o resto eu sei fazer o npc todinho menos isso que nao sei

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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

bossisg.png