Ir para conteúdo

Featured Replies

Postado

(sinto que estou no lugar errado, se tiver, por favor, mude)

 

Eae pessoal, tudo certo ?

Venho aqui pedir a vcs um NPC, que a unica função dele é contar algo, tipo aqueles npc de templo que se fala hi, ai ele te conta uma historia e talz, eu queria fazer uma historia bacana e talz, entao preciso desse npc

Obrigado.

Postado

historias.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
        
-- HISTORIA START --
keywordHandler:addKeyword({'historia um'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "era uma vez um lobo que comeu ração velha e morreu"})
keywordHandler:addKeyword({'historia dois'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "era uma vez uma ração velha, foi comida por um lobo e morreu"})


npcHandler:addModule(FocusModule:new())

Contador de Hiostorias.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Contador de Historias" script="historias.lua" walkinterval="2000" floorchange="0">
          <health now="150" max="150" />
          <look type="277" head="0" body="0" legs="0" feet="0"/>
          <parameters>
                    <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu conto historias, tenho duas historias pra contar. A {historia um} e a {historia dois}" />
                    <parameter key="message_farewell" value="Volte para ouvir mais historias!" />
          </parameters>
</npc>
Postado

Você pode tentar assim:

 

Em data/npc copie um arquivo de qualquer npc, renomeie para ajudante, troque tudo que tem dentro por isso:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Ajudante" script="ajudante.lua" walkinterval="2000" speechbubble="1" floorchange="0">
  <health now="100" max="100" />
 <look type="160" head="98" body="95" legs="115" feet="114" addons="0"/>
  <parameters>
    <parameter key="message_greet" value="Ola, eu posso lhe contar {historias} para ajudar na sua aventura." />
  </parameters>
</npc>

Em data/npc/scripts copie qualquer arquivo e renomeie para ajudante, troque tudo que tem dentro por isso:

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

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end
	msg = msg:lower()


local mensagens = {
             ["quest"] = "Então, você quer saber sobre quests eim... Bom vou lhe contar blablablablablablablabla...",
             ["correr"] = "Quer correr? Digite utani hur!",

}


	if msgcontains(msg, "historias") or msgcontains(msg, "historia") then
	    local newstr = ""
	    for k,v in pairs(mensagens) do
	        newstr = newstr..k..", "
	    end
	    newstr = newstr:sub(-newstr:len(), (newstr:len()-2))
	    npcHandler:say("Bom, eu posso lhe contar sobre: "..newstr, cid)
	elseif mensagens[msg:lower()] then
            npcHandler:say(mensagens[msg:lower()], cid)
	end
	return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Configuração:

 

Você pode configurar nessa parte:

local mensagens = {
             ["quest"] = "Então, você quer saber sobre quests eim... Bom vou lhe contar blablablablablablablabla...",
             ["correr"] = "Quer correr? Digite utani hur!",

}

Onde tem ["quest"] você coloca a palavra que o player deve dizer para receber tal mensagem, a mensagem é configurada logo do lado, lembre-se, a palavra deve estar em aspas >" "< ex: ["god"] = "O administrador desse servidor é o Snowsz."

Após isso, nunca esqueça a vírgula no final de tudo, isso ficaria mais ou menos assim:

local mensagens = {
             ["quest"] = "Então, você quer saber sobre quests eim... Bom vou lhe contar blablablablablablablabla...",
             ["correr"] = "Quer correr? Digite utani hur!",
             ["god"] = "O administrador desse servidor é o Snowsz.",

}

Editado por Snowsz (veja o histórico de edições)

Postado
  • Autor

Bom, eu só testei a primeira, mas acredito que as duas teram isso: limite

No tibia, tem um limite de palavras que tu pode usar e quando passa esse limite, ele nao fala mais nada

no global, eles usam auqele negocio que o cara fala uma vez, passa um tempinho, fala outra vez, passa um tempinho.... e assim por diante

nao teria como fazer igual ?
Grato

Editado por Zazeros (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo