JO

[PEDIDO] Npc de troca por storage

Por Johnnyirie, 05 de jan. de 2016 em Scripts

resolvido
script
9
2.7k
JohnnyirieJ
05 de janeiro de 2016 às 10:32

preciso de um npc que troque itens apenas 1x ex:

 

sem ter trocado (sem storage)

player: hi

npc: eu posso trocar...

player: yes

 

com troca (com storage)

player: hi

npc: desculpe você já realizou está troca

1 mês depois...
DanihcvD
08 de fevereiro de 2016 às 23:30

Tópico Movido
Este tópico foi movido de "OTServScriptingDownloads Scripts"
para "OTServScriptingSuporte Scripting".

 

 

FurabioF
09 de fevereiro de 2016 às 20:35

Trocar que itens ? detalhe não sei o que se passa na sua mente ...

JohnnyirieJ
09 de fevereiro de 2016 às 23:39

Trocar que itens ? detalhe não sei o que se passa na sua mente ...

O item eu édito só preciso mesmo de um script

DanihcvD
10 de fevereiro de 2016 às 01:09

@@Johnnyirie, o que ele quis dizer é que vc precisa detalhar mais sobre como será o diálogo entre player e npc.

JohnnyirieJ
10 de fevereiro de 2016 às 01:14

Exemplo, na primeira tentativa de troca o player entraga x item ao NPC e recebe y item como recompensa e daí nunca mais o Player consegue trocar o x item no NPC.

FurabioF
10 de fevereiro de 2016 às 18:37
Melhor resposta

Não se esqueça de colocar o id dos itens ...

local item_1 = XXXX -- ID do item necessário para a troca
local item_2 = XXXX -- ID do item que recebe ao dar item_1

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 function creatureSayCallback(cid, type, msg)
	if not npcHandler:isFocused(cid) then
		return false
	end

	player = Player(cid);

	if msgcontains(msg, "troca") then
		if player:getStorageValue(9874) < 1 then
			if player:getItemCount(item_1) > 1 then
				npcHandler:say("Você tem certeza ?", cid);
				npcHandler.topic[cid] = 1;
			else
				npcHandler:say("Você não tem o item para a troca.", cid);
				npcHandler.topic[cid] = 0;
			end
		else
			npcHandler:say("Você já fez a troca.", cid);
			npcHandler.topic[cid] = 0;
		end
	elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 1 and player:getItemCount(item_1) > 1 then
		npcHandler:say("Aqui está o seu item!", cid);
		player:removeItem(item_1, 1);
		player:addItem(item_2, 1);
		player:setStorageValue(9874, 1);
		npcHandler.topic[cid] = 0;
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
JohnnyirieJ
11 de fevereiro de 2016 às 03:46

Obrigado, era isso mesmo que eu precisava ^^

DanihcvD
11 de fevereiro de 2016 às 21:47

Tópico movido para dúvidas / pedidos resolvidos.