Ir para conteúdo
  • 0

[Pedido de npc]


Loouis

Pergunta

Oi, gente queria um npc que:

Player:hi

NPC:Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?

player:yes

(ai o npc remove os 20 devoted token(ID:XXXX) e da pro player 1 um item id (XXXX).)

só que queria que o player podesse realizar essa troca com esse npc quantas vezes ele quiser...

Agradeço e dou Reputação+ pra quem ajudar =):

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

@Loouis, vê se funfa:

local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid)           	npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid)        	npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) 		npcHandler:onCreatureSay(cid, type, msg) endfunction onThink()       					npcHandler:onThink() endlocal devotedTokenId = 1515 --id do devoted tokenlocal qntdDT = 20 --quantidade de devoted tokenslocal boxId = 1414 --id do item que o player receberáfunction greetCallback(cid)npcHandler:say('Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?', cid)npcHandler:addFocus(cid)return trueendfunction creatureSayCallback(cid, type, msg)	if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then		if getPlayerItemCount(cid, devotedTokenId) >= qntdDT then		doPlayerRemoveItem(cid, devotedTokenId, qntdDT)		npcHandler:say('Aqui está. Agora vá, continue sua jornada.', cid)		npcHandler:releaseFocus(cid)		else		npcHandler:say('Opa, parece que você não tem o necessário para esta troca. Volte quando tiver.', cid)		npcHandler:releaseFocus(cid)		end	endreturn trueendnpcHandler:setCallback(CALLBACK_GREET, greetCallback)npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

*se você não souber como instalar esse npc, avisa que eu te ajudo.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 25/05/2016 at 01:39, Danihcv disse:

@Loouis, vê se funfa:


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 devotedTokenId = 1515 --id do devoted token
local qntdDT = 20 --quantidade de devoted tokens
local boxId = 1414 --id do item que o player receberá

function greetCallback(cid)
npcHandler:say('Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?', cid)
npcHandler:addFocus(cid)
return true
end

function creatureSayCallback(cid, type, msg)
	if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
		if getPlayerItemCount(cid, devotedTokenId) >= qntdDT then
		doPlayerRemoveItem(cid, devotedTokenId, qntdDT)
		npcHandler:say('Aqui está. Agora vá, continue sua jornada.', cid)
		npcHandler:releaseFocus(cid)
		else
		npcHandler:say('Opa, parece que você não tem o necessário para esta troca. Volte quando tiver.', cid)
		npcHandler:releaseFocus(cid)
		end
	end
return true
end

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

 

*se você não souber como instalar esse npc, avisa que eu te ajudo.

Oi, desculpe a demora, tive um problema pra adicionar esse npc.

Dialogo usado:

Eu:hi

NPC:Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?

Eu:yes

NPC:Pronto ai está...

mais nenhum item era removido da minha bag nem adicionado...mesmo sem eu ter os tokens ele falou isso...

 

NPC.XML:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Breno" script="abreno.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="662" head="95" body="88" legs="114" feet="94"/>

    <parameters>

    <parameter key="message_greet" value="Ola |PLAYERNAME|, eu tenho uma dificil task para voce, esta interessado?Se sim diga {task}"/>

    </parameters>

</npc>

 

NPC.LUA:

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 devotedTokenId = 14338 --id do devoted token
local qntdDT = 20 --quantidade de devoted tokens
local boxId = 14188 --id do item que o player receberá

function greetCallback(cid)
npcHandler:say('Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?', cid)
npcHandler:addFocus(cid)
return true
end

function creatureSayCallback(cid, type, msg)
    if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
        if getPlayerItemCount(cid, 14338) >= qntdDT then
        doPlayerRemoveItem(cid, 14338, qntdDT)
        npcHandler:say('Aqui está. Agora vá, continue sua jornada.', cid)
        npcHandler:releaseFocus(cid)
        else
        npcHandler:say('Opa, parece que você não tem o necessário para esta troca. Volte quando tiver.', cid)
        npcHandler:releaseFocus(cid)
        end
    end
return true
end

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

Link para o comentário
Compartilhar em outros sites

  • 0

@Loouis, eu esqueci de adicionar o comando pra dar o item ao player kkkkk.
O script na seguitne forma é pra estar funcionando corretamente:


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 devotedTokenId = 1515 --id do devoted token
local qntdDT = 20 --quantidade de devoted tokens
local boxId = 1414 --id do item que o player receberá

function greetCallback(cid)
npcHandler:say('Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?', cid)
npcHandler:addFocus(cid)
return true
end

function creatureSayCallback(cid, type, msg)
	if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
		if getPlayerItemCount(cid, devotedTokenId) >= qntdDT then
			doPlayerAddItem(cid, boxId, 1)
			doPlayerRemoveItem(cid, devotedTokenId, qntdDT)
			npcHandler:say('Aqui está. Agora vá, continue sua jornada.', cid)
			npcHandler:releaseFocus(cid)
		else
			npcHandler:say('Opa, parece que você não tem o necessário para esta troca. Volte quando tiver.', cid)
			npcHandler:releaseFocus(cid)
		end
	end
return true
end

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

 

Se não funcionar, veja se aparece algum erro na distro. E mande.

Link para o comentário
Compartilhar em outros sites

  • 0
12 horas atrás, Danihcv disse:

@Loouis, eu esqueci de adicionar o comando pra dar o item ao player kkkkk.
O script na seguitne forma é pra estar funcionando corretamente:



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 devotedTokenId = 1515 --id do devoted token
local qntdDT = 20 --quantidade de devoted tokens
local boxId = 1414 --id do item que o player receberá

function greetCallback(cid)
npcHandler:say('Olá treinador, eu troco Devoted Tokens por uma box onde poderá vir um held aleatorio do tier 1 à 2, mais para isso preciso de 20 devoted tokens, você tem os 20 devoted tokens?', cid)
npcHandler:addFocus(cid)
return true
end

function creatureSayCallback(cid, type, msg)
	if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
		if getPlayerItemCount(cid, devotedTokenId) >= qntdDT then
			doPlayerAddItem(cid, boxId, 1)
			doPlayerRemoveItem(cid, devotedTokenId, qntdDT)
			npcHandler:say('Aqui está. Agora vá, continue sua jornada.', cid)
			npcHandler:releaseFocus(cid)
		else
			npcHandler:say('Opa, parece que você não tem o necessário para esta troca. Volte quando tiver.', cid)
			npcHandler:releaseFocus(cid)
		end
	end
return true
end

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

 

Se não funcionar, veja se aparece algum erro na distro. E mande.

agora esta funfando 100%, Obrigado Rep+

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...