Ir para conteúdo
  • Cadastre-se

[Resolvido] [Pedido] NPC dá storage e outro que reconhece


Posts Recomendados

 Olá galera! Vim aqui pra pedir este script de NPC, eu consegui fazer um sozinho, mas este não estou conseguindo:

 

 Quero um NPC que depois de falar uma palavra para ele, você adquire um STORAGE, porém, o mesmo NPC não dá STORAGE em outras coisas que você fale para ele, é daqueles NPCs que só da informação. É isto. Mas em uma delas ele dá também a STORAGE. 

 E depois, preciso de um NPC que só fale depois que você receber a STORAGE do NPC anterior. Antes disso, você fala "Hi" e ele te ignora como se não existisse.

 

 Obrigado desde já, só preciso mesmo do .lua, o .xml é fácil. VLW e abraço a todos.

Link para o post
Compartilhar em outros sites

Olá galera! Vim aqui pra pedir este script de NPC, eu consegui fazer um sozinho, mas este não estou conseguindo:

Quero um NPC que depois de falar uma palavra para ele, você adquire um STORAGE, porém, o mesmo NPC não dá STORAGE em outras coisas que você fale para ele, é daqueles NPCs que só da informação. É isto. Mas em uma delas ele dá também a STORAGE.

E depois, preciso de um NPC que só fale depois que você receber a STORAGE do NPC anterior. Antes disso, você fala "Hi" e ele te ignora como se não existisse.

Obrigado desde já, só preciso mesmo do .lua, o .xml é fácil. VLW e abraço a todos.

Ql palavra o player fala p ganha storage e ql o texto vc qr q apareça? Editado por alissonfgp (veja o histórico de edições)

Argon-Online

 

Cast System, Reward System, Flash Client, Support Versão 12.30, All areas, Ferumbras Quest e muito mais...

 

https://www.facebook.com/positiveglobal

Versão: 12.30

________________________________________________________________________________
 

2222.jpg

Link para o post
Compartilhar em outros sites

Aqui o NPC que dá storage

crie um arquivo chamado storage.xml e coloque isso dentro

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOME" script="data/npc/scripts/storage.lua" walkinterval="0" floorchange="0">
	<health now="100" max="100"/>
	<look type="130" head="9" body="85" legs="9" feet="0" addons="3"/>
	<parameters>
  <parameter key="message_greet" value="Coloque aqui sua mensagem"/>
</parameters>
</npc>

e depois vá em /npc/scripts e crie um arquivo chamado storage.lua e coloque isso dentro

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 (msgcontains(msg, 'servicos') or msgcontains(msg, 'SERVICOS')) then
selfSay("você irá receber uma storage de acesso ao proximo NPC, você aceita?")
talkState[talkUser] = 1
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
setPlayerStorageValue(cid, 6000, 1)
selfSay("Parabéns, você ganhou o acesso.",cid)
talkState[talkUser] = 0 
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Okay Entao", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testei e está sem erros, dando a storage apenas se falar "servicos".

E para fazer o que só fala se tiver a storage, preciso que você me dê mais especificações sobre o npc.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Joadson, eu testei o NPC e funcionou perfeitamente. Agora eu queria que quando você falar hi para o próximo NPC ele te responde por conta da STORAGE que você adquiriu no NPC que você me mandou, antes ele não te responde, você diz hi e ele não tem reação. E sim, você me ajudou rep+.

ABRAÇÃO!

Link para o post
Compartilhar em outros sites

Mas o NPC irá fazer o que?
Isso que quero saber, porque se for do jeito que você mencionou acima, já tenho ele feito, porém ficou sem função "nenhuma" apenas um NPC "ilustrativo" kk
ele irá entregar algum item se o player tiver a storage?

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Entendei, na verdade, na verdade ele irá checar se você tem um item, removê-lo e te dar outro item em troca. É só isto.
 Só aproveitando, qual a função que eu uso para poder fazer o player tomar dano. Tem uma função que seta o health, eu só queria hitar e não adicionar hp ao player ou  retirar. VLW cara!

Link para o post
Compartilhar em outros sites

Então no caso se o player tiver a storage e um item, ele perderá o item e ganhará outro?

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Aqui o outro NPC, fácil de configurar e sem erros nenhum(euacho) kkk

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

local itemRemove = 105 -- Item que irár "perder"/trocar ou sei la o que kkk
local itemADD = 107  -- item que irá ganhar

function Remover(cid) 
if doPlayerRemoveItem(cid,itemRemove, 1) then 
doPlayerAddItem(cid, itemADD, 1)
selfSay("Parabéns, você ganhou o novo item", cid)
talkState[talkUser] = 0
else
doPlayerPopupFYI(cid, "Você não pode concluir, pois está faltando o item.")
return false
end
end

if getPlayerStorageValue(cid, 6000) == 0 then
selfSay("você não tem acesso, fale com outro NPC e volte depois!!")
talkState[talkUser] = 0
elseif (msgcontains(msg, 'servics') or msgcontains(msg, 'SERVICOS')) then
selfSay("você quer receber o novo item?") 
talkState[talkUser] = 1
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if Remover(cid) then
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Adeus!!", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end  
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())     

OBS: mude apenas o itemRemove e o itemADD, assim fica fácil de se manusear o script.
é simples, porém é o que sei fazer kk

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites
  • 3 years later...
Em 2013-10-15 ás 23:17, joadson disse:

Aqui o outro NPC, fácil de configurar e sem erros nenhum(euacho) kkk


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

local itemRemove = 105 -- Item que irár "perder"/trocar ou sei la o que kkk
local itemADD = 107  -- item que irá ganhar

function Remover(cid) 
if doPlayerRemoveItem(cid,itemRemove, 1) then 
doPlayerAddItem(cid, itemADD, 1)
selfSay("Parabéns, você ganhou o novo item", cid)
talkState[talkUser] = 0
else
doPlayerPopupFYI(cid, "Você não pode concluir, pois está faltando o item.")
return false
end
end

if getPlayerStorageValue(cid, 6000) == 0 then
selfSay("você não tem acesso, fale com outro NPC e volte depois!!")
talkState[talkUser] = 0
elseif (msgcontains(msg, 'servics') or msgcontains(msg, 'SERVICOS')) then
selfSay("você quer receber o novo item?") 
talkState[talkUser] = 1
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if Remover(cid) then
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Adeus!!", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end  
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())     

OBS: mude apenas o itemRemove e o itemADD, assim fica fácil de se manusear o script.
é simples, porém é o que sei fazer kk

Pode me ajudar ? e pra esse segundo npc da outra storage para o player?

Link para o post
Compartilhar em outros sites
15 minutos atrás, Thay Oliveira disse:

Pode me ajudar ? e pra esse segundo npc da outra storage para o player?

Não entendi, explique um pouco melhor que talvez possa ajudar

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites
  1. 48 minutos atrás, joadson disse:

    Não entendi, explique um pouco melhor que talvez possa ajudar

    Você consegue fazer um npc assim , tipo no npc vai ter 2 missoes , a 1 missao o player tem que responder algumas pergunta , se ele acerta ele passa pra a 2 segunda missao , que ele vai ser teleportado pra um lugar aonde vai ter que lutar contra um monters

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo