Ir para conteúdo
  • Cadastre-se

(Resolvido)Ajuda Em criar 1 Npc De Informações


Ir para solução Resolvido por FelipeWikky,

Posts Recomendados

Bom Botei donate em meu otserv Mas queria Por Tipo 1 Npc Que Quando A pessoa fala-se Hi

o Npc Diria Ola Senhor Gostaria de Comprar 1 item Donate? Diga Deposito Para Saber Os Dados Bancarios Para Deposito

Ai quando a pessoa fala-se Deposito Iria apareçer o Banco Etc.. Do titular Alguem poderia Ajudar ? Darei 5 Rep + Pela Resposta Util

 

 

 

 

 

 

Link para o post
Compartilhar em outros sites
  • Solução

Bom, achei aqui no TK um script, só fiz edita-lo para que ao falar "deposito", ele dirá a msg que está contida no script.
No entanto, ele manda a mensagem em forma de Creaturesay, ou seja. É como se o npc estivesse falando, e em certo tempo a mensagem some, impossibilitando as vezes, de ser lida completamente. Caso queira o script, segue abaixo
Crie um arquivo .xml na pasta data/npc e coloque:
 
 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Informador" script="information.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="606" head="91" body="114" legs="86" feet="0"/>
<parameters>
<parameter key="message_greet" value="Ola. Gostaria de Comprar 1 item Donate? Diga 'deposito' Para Saber Os Dados Bancarios Para Deposito."/>
<parameter key="message_farewell" value="Good bye!"/>
<parameter key="message_idletimeout" value="Good bye!"/>
<parameter key="message_walkaway" value="Good bye!"/>
</parameters>
</npc>

 
Agora em data/npc/scripts crie um arquivo .lua e renomie para information.lua e dentro coloque:
 

local text = {

 

deposito  = 'Digite aqui o dados que deseja', -- escreva o texto

 

 

}

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

npcHandler.topic = {}

 

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

 

if msgcontains(msg:lower(), 'deposito') then

npcHandler:say(text.deposito, cid)

npcHandler.topic[cid] = 0

 

elseif msgcontains(msg:lower(), 'bye') or msgcontains(msg:lower(), 'ok') then

npcHandler:say('Bye!', cid)

npcHandler.topic[cid] = 0

 

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Agora, tenho um script que faz a mesma coisa, só que por talkaction(comando). Basicamente, ao digitar um comando(/deposito), abre uma janela com as informações que você desejar. Acho mais eficaz que o sistema por npc, pois como eu disse, depois de um certo tempo a mensagem some, impossibilitando as vezes de ser lida completamente. Caso queira o script, segue abaixo

 

Crie um arquivo em data/talkaction/scripts com o nome infodeposito.lua e coloque dentro:

function onSay(cid, words)
local msg = [[ -----Dados para Deposito-----
 
Digite os dados
Dentro desse
espaço entre o local msg e o colchete fechando \/
 
 
]]
 
doPlayerPopupFYI(cid, msg)
return true
end

Agora, vá no arquivo talkactions.xml e adicione esta tag

 <talkaction words="/deposito" event="script" value="infodeposito.lua"/>

Pronto, ai é só digitar o comando /deposito que abrirá uma janela com as informações que você colocar no script

 

Créditos a fywell pelo script do npc

Créditos a mim pelo script do talkaction

 

Rep+

 

 

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

infodonates.lua

local info = [[As informações de deposito :
Banco do Brasil
Nome : Flavio 
Agência : 6576-5
Conta : 9.751-9   
]]

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:lower(), "deposito") or msgcontains(msg:lower(), "deposit") then
        selfSay(cid, info)
    
    elseif msgcontains(msg:lower(), "bye") or msgcontains(msg:lower(), "tchau") then
        selfSay(cid, "Volte sempre!!")
    end

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

npc.XML

<?xml version="1.0" encoding="UTF-8"?>
<npc name="QUALQUERNAME" script="data/npc/scripts/infodonates.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="152" head="95" body="95" legs="29" feet="56" addons="2" corpse="6080"/>
    <parameters>
    <parameter key="message_greet" value="Ola senhor gostaria de comprar items donate? diga {deposito} para saber os dados bancarios para o {deposito}." />
    </parameters>
</npc>
Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

Nao tem npc.xml na minha pasta


Bom, achei aqui no TK um script, só fiz edita-lo para que ao falar "deposito", ele dirá a msg que está contida no script.
No entanto, ele manda a mensagem em forma de Creaturesay, ou seja. É como se o npc estivesse falando, e em certo tempo a mensagem some, impossibilitando as vezes, de ser lida completamente. Caso queira o script, segue abaixo
Crie um arquivo .xml na pasta data/npc e coloque:
 
 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Informador" script="information.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="606" head="91" body="114" legs="86" feet="0"/>
<parameters>
<parameter key="message_greet" value="Ola. Gostaria de Comprar 1 item Donate? Diga 'deposito' Para Saber Os Dados Bancarios Para Deposito."/>
<parameter key="message_farewell" value="Good bye!"/>
<parameter key="message_idletimeout" value="Good bye!"/>
<parameter key="message_walkaway" value="Good bye!"/>
</parameters>
</npc>

 
Agora em data/npc/scripts crie um arquivo .lua e renomie para information.lua e dentro coloque:
 

local text = {

 

deposito  = 'Digite aqui o dados que deseja', -- escreva o texto

 

 

}

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

npcHandler.topic = {}

 

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

 

if msgcontains(msg:lower(), 'deposito') then

npcHandler:say(text.deposito, cid)

npcHandler.topic[cid] = 0

 

elseif msgcontains(msg:lower(), 'bye') or msgcontains(msg:lower(), 'ok') then

npcHandler:say('Bye!', cid)

npcHandler.topic[cid] = 0

 

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Agora, tenho um script que faz a mesma coisa, só que por talkaction(comando). Basicamente, ao digitar um comando(/deposito), abre uma janela com as informações que você desejar. Acho mais eficaz que o sistema por npc, pois como eu disse, depois de um certo tempo a mensagem some, impossibilitando as vezes de ser lida completamente. Caso queira o script, segue abaixo

 

Crie um arquivo em data/talkaction/scripts com o nome infodeposito.lua e coloque dentro:

function onSay(cid, words)
local msg = [[ -----Dados para Deposito-----
 
Digite os dados
Dentro desse
espaço entre o local msg e o colchete fechando \/
 
 
]]
 
doPlayerPopupFYI(cid, msg)
return true
end

Agora, vá no arquivo talkactions.xml e adicione esta tag

 <talkaction words="/deposito" event="script" value="infodeposito.lua"/>

Pronto, ai é só digitar o comando /deposito que abrirá uma janela com as informações que você colocar no script

 

Créditos a fywell pelo script do npc

Créditos a mim pelo script do talkaction

 

Rep+

 Vou testar aki 1 minuto

 

 

 

 

 

 

Link para o post
Compartilhar em outros sites

Nao existe a npc.xml, você tem que criar um arquivo com a extensão .xml, e edite o nome do arquivo para Information.xml e continue seguindo o script que funcionará certinho

Link para o post
Compartilhar em outros sites

Eu dei /s information e n foi, presciso por o npc pelo remers?


Botei o sistema de comando /deposito Mesmo é melhor e mais pratico ! Obg

 

 

 

 

 

 

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