Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Fala ai galera do TK, eu estou precisando de uma ajudinha ae de vocês com 2 npcs.

 

Vamos la: 

 

Primeiro npc: Você falaria com ele, para poder falar com o segundo. Nada demais, apenas o dialogo simples: Hi/Mission/Yes. E então você teria "permissão" para prosseguir e falar com o segundo.

 

Segundo npc: Após ter falado com o primeiro npc, você agora seguiria para o proximo npc, onde nele você precisaria dos seguintes itens para continuar a quest: 20 golden mugs, 30 piece of iron, e um item que não lembro o nome, mas tem o id de 2350. Caso você tivesse esses itens, o dialogo seria o seguinte: Hi/Pai/Itens. E então ele iria retirar os itens de você e iria te dar um "documento" (7844) que não é nada mais que um documento velho. E seguiria de volta ao primeiro npc.

 

Primeiro npc (denovo): Após ter falado com segundo, você voltaria novamente ao primeiro, e teria o seguinte dialogo: Hi/Filho/Espada. E então ele iria retirar o item que o segundo npc te deu, e iria pegar o item final, que é a recompensa da quest.

 

Bom, na teoria é isso. Mas eu nem imagino como que começa. Se alguem conseguir ai fazer 2 npcs que tenham essas funçoes, eu agradeço, e se possivel se alguem fizer, faça um dialogo qualquer para eu editar dps, tipo Ola, voce blablablabla (mission). Só pra eu saber oque mudar depois e arrumar as falas dos npcs. Agradeço desde ja.

Editado por Makakovisk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não testei  :D

 

 

npc1 :

local config = {
		
		storage_new = 74562, -- Não mudar
		storage = 74561, -- Não mudar
		remove_item = 7844, -- Item que vai ganhar
		add_item = XXXX, -- id da espada
}

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


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 getPlayerStorageValue(cid, config.storage) == 1 then
		selfSay('Ok, volte aqui após conversar com o {Nik}.', cid)
		return true
	end

	if getPlayerStorageValue(cid, config.storage) == 3 then
		selfSay('Obrigado por nos ajudar!!', cid)
		return true
	end

	if getPlayerStorageValue(cid, config.storage) < 1 then
		if msgcontains(msg:lower(), 'mission') or msgcontains(msg:lower(), 'missao') then
			selfSay('you are sure', cid)
			talkState[talkUser] = 1
		end
		
		if msgcontains(msg:lower(), 'yes') and talkState[talkUser] == 1 then
			selfSay('Ok, volte aqui após conversar com o {Nik}.', cid)
			setPlayerStorageValue(cid, storage, 1)
			talkState[talkUser] = 0
			setPlayerStorageValue(cid, config.storage, 1)
		elseif msgcontains(msg:lower(), 'no') then
			selfSay('Então volte, quando tiver coragem!!', cid)
			selfSay('Bye!!', cid)
			talkState[talkUser] = 0
		end
	end
	
	if getPlayerStorageValue(cid, config.storage) == 2 then
		if msgcontains(msg:lower(), 'filho') then
			selfSay('diga {espada} para pega-lá', cid)
			talkState[talkUser] = 0
		end

		if msgcontains(msg:lower(), 'espada') then
			selfSay('you are sure!!', cid)
			talkState[talkUser] = 1
		end

		if msgcontains(msg:lower(), 'yes') and talkState[talkUser] == 1 then
			if doPlayerRemoveItem(cid, config.remove_item, 1) then
				selfSay('Congratulations!!', cid)
				doPlayerAddItem(cid, config.add_item, 1)
				setPlayerStorageValue(cid, config.storage, 3)
				talkState[talkUser] = 0
			else
				selfSay('você não tem o item...')
				talkState[talkUser] = 0
			end
		end
       end
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

npc2 :

local config = {
		
		items = {{itemid = 2225, count = 30}, {itemid = 2033, count = 20}, {itemid = 2363, count = 1}, {itemid = 2350, count = 1}},
		storage = 74561, -- Não mudar
		storage_new = 74562 -- Não mudar
		add_item = 7844, -- Item que vai ganhar
}

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


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 getPlayerStorageValue(cid, config.storage) < 1 then
		selfSay('Não te conheço suma!!', cid)
		return true
	end

	if getPlayerStorageValue(cid, config.storage_new) == 1 then
		selfSay('Não tenho mais nada a te entregar!!', cid)
		return true
	end
	
	if msgcontains(msg:lower(), 'pai') then
		selfSay('Estou precisando de uns itens e se tu me trouxer eu lhe recompensarei... 30 Piece of Iron, 20 Golden Mug, 1 Blood Orb, 1 Sword Hilt.Diga {entregar} se tiver os itens listado.', cid)
		talkState[talkUser] = 0
	end
	
	if msgcontains(msg:lower(), 'entregar') then
		selfSay('you are sure ?', cid)
		talkState[talkUser] = 1
	end

	if msgcontains(msg:lower(), 'yes') and talkState[talkUser] == 1 then
		item = 0

		for i = 1, #config.items do
	  		if getPlayerItemCount(cid, config.items[i].itemid) >= config.items[i].count then
	   			item = item + 1
	 		end
	 	end

		if item == #config.items then
			for x = 1, #config.items do
		 		doPlayerRemoveItem(cid, config.items[x].itemid, config.items[x].count)
			end
		
			selfSay('Aqui está sua recompensa', cid)
			doPlayerAddItem(cid, config.add_item, 1)
			setPlayerStorageValue(cid, config.storage_new, 1)
			setPlayerStorageValue(cid, config.storage, 2)
			talkState[talkUser] = 0
		else
			selfSay('Verifique se você tem todos os items...', cid)
			talkState[talkUser] = 0
		end
	elseif msgcontains(msg:lower(), 'no') and talkState[talkUser] == 1 then
		selfSay('Bye!!', cid)
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo