Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Olá pessoal, deparei-me com um problema: coloquei um npc de troca, só que ele só pode trocar dois itens por vez, tem como fazê-lo trocar mais itens?

 

Aqui vai o código:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid)    npcHandler:onCreatureAppear(cid)   end
function onCreatureDisappear(cid)   npcHandler:onCreatureDisappear(cid)   end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg)  end
function onThink()     npcHandler:onThink()     end
 
local items = {
		item1 = {2159, 2145}, -- item1 item que será pedido e que será dado na primeira troca
		item2 = {2159, 2146} -- item2 item que será pedido e que será dado na segunda troca
}
local counts = {
		count1 = {10, 1},
		count2 = {10, 1}
}
 
function creatureSayCallback(cid, type, msg)
		if(not npcHandler:isFocused(cid)) then
				return false
		end
		local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

		if msgcontains(msg, 'removedor de frags') then
				if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then
						doPlayerRemoveItem(cid, items.item1[1], counts.count1[1])
						doPlayerAddItem(cid, items.item1[2], counts.count1[2])
						selfSay('Você trocou '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..'x '.. getItemNameById(items.item1[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid)
				end

		elseif msgcontains(msg, 'power exp ring') then
				if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then
						doPlayerRemoveItem(cid, items.item2[1], counts.count2[1])
						doPlayerAddItem(cid, items.item2[2], counts.count2[2])
						selfSay('Você trocou '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' por '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid)
				end
		end
		return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Editado por Sleet (veja o histórico de edições)

Postado
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid)    npcHandler:onCreatureAppear(cid)   end
function onCreatureDisappear(cid)   npcHandler:onCreatureDisappear(cid)   end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg)  end
function onThink()     npcHandler:onThink()     end
 
local items = {
		item1 = {2159, 2145}, -- item1 item que será pedido e que será dado na primeira troca
		item2 = {2159, 2146} -- item2 item que será pedido e que será dado na segunda troca
		item3 = {2159, 2146} -- É SÓ ADICIONAR UMA LINHA AQUI
		item4 = {2159, 2146} -- SE QUISER MAIS ITENS COLOQUE EM BAIXO DISSO POR EX: item5 = {2159, 2146}
}
}
}
local counts = {
		count1 = {10, 1},
		count2 = {10, 1}
		count3 = {10, 1} -- a mesma coisa aqui
		count4 = {10, 1} -- se arrumou item5, adiciona aqui count5 
}
 
function creatureSayCallback(cid, type, msg)
		if(not npcHandler:isFocused(cid)) then
				return false
		end
		local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

		if msgcontains(msg, 'removedor de frags') then
				if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then
						doPlayerRemoveItem(cid, items.item1[1], counts.count1[1])
						doPlayerAddItem(cid, items.item1[2], counts.count1[2])
						selfSay('Você trocou '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..'x '.. getItemNameById(items.item1[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid)
				end

		elseif msgcontains(msg, 'power exp ring') then
				if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then
						doPlayerRemoveItem(cid, items.item2[1], counts.count2[1])
						doPlayerAddItem(cid, items.item2[2], counts.count2[2])
						selfSay('Você trocou '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' por '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid)
				end
		elseif msgcontains(msg, 'Nome do item aqui') then 
				if getPlayerItemCount(cid, items.item3[1]) >= counts.count3[1] then
						doPlayerRemoveItem(cid, items.item3[1], counts.count3[1])
						doPlayerAddItem(cid, items.item3[2], counts.count3[2])
						selfSay('Você trocou '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..' por '.. counts.count3[2] ..' '.. getItemNameById(items.item3[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..'.', cid)
				end
		elseif msgcontains(msg, 'Nome do item aqui') then
				if getPlayerItemCount(cid, items.item4[1]) >= counts.count4[1] then
						doPlayerRemoveItem(cid, items.item4[1], counts.count4[1])
						doPlayerAddItem(cid, items.item4[2], counts.count4[2])
						selfSay('Você trocou '.. counts.count4[1] ..' '.. getItemNameById(items.item4[1]) ..' por '.. counts.count4[2] ..' '.. getItemNameById(items.item4[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count4[1] ..' '.. getItemNameById(items.item4[1]) ..'.', cid)
				end

		end
		return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Em 2017-5-25 ás 19:58, Sleet disse:

 


		if msgcontains(msg, 'removedor de frags') then
				if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then
						doPlayerRemoveItem(cid, items.item1[1], counts.count1[1])
						doPlayerAddItem(cid, items.item1[2], counts.count1[2])
						selfSay('Você trocou '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..'x '.. getItemNameById(items.item1[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid)
				end

		elseif msgcontains(msg, 'power exp ring') then
				if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then
						doPlayerRemoveItem(cid, items.item2[1], counts.count2[1])
						doPlayerAddItem(cid, items.item2[2], counts.count2[2])
						selfSay('Você trocou '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' por '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid)
				else
						selfSay('Você precisa de '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid)
				end

e não se esqueça de adicionar o elseif para cada item adicionado a mais, por exemplo e uma coisa IMPORTANTE repare que tem que trocar os numeros
aonde mostra items.item e counts.count para os numeros dos itens. que foi arrumado la em cima em local items = {  e local counts = {

elseif msgcontains(msg, 'Nome do item aqui') then
               if getPlayerItemCount(cid, items.item3[1]) >= counts.count3[1] then
                           doPlayerRemoveItem(cid, items.item3[1], counts.count3[1])
                           doPlayerAddItem(cid, items.item3[2], counts.count3[2])
                           selfSay('Você trocou '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..' por '.. counts.count3[2] ..' '.. getItemNameById(items.item3[2]) ..'.', cid)
               else
                           selfSay('Você precisa de '.. counts.count3[1] ..' '.. getItemNameById(items.item3[1]) ..'.', cid)
               end 

 

Editado por Boush (veja o histórico de edições)

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