Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Opa , gostaria de 4 npcs.
o 1º npc com 2 keywords(palavras-chaves) para falar com o 2º npc
o 2º npc com 1 keyword para falar com o 3º npc
o 3º npc com 4 keywords para falar com o 4º npc
e 4º com uma keyword para ser teleportado para o lugar X (tipo os npcs de barco)

obs: voce so pode falar com o 2 npc se tiver falado com o 1 e assim em diante

  • Respostas 10
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Fiz de uma forma simplificada para vocês. Em npcs/scripts crie um arquivo.lua:     Como arquivo.xml base você pode utilizar esse, faça as mudanças que desejar.   <?xml ver

Postado

@Fernandooww Você quer que ele precise ter falado ou quer que ele fale as palavras ?

Ajudei? REP+

 

Meus Servers:

PokeUnwind Em Breve

Rust Tibia Fechado

 

Tópicos: 

[Tutorial] Adicionando Pokemons com icon system

[Solução] ElfBot não abre corpos

 

Projetos:

DigiTibia Fechado

Rust Tibia Fechado(temporariamente!)

Postado
  • Autor
37 minutes ago, Ckfox said:

@Fernandooww Você quer que ele precise ter falado ou quer que ele fale as palavras ?

quero que o player use palavras chaves.
exmplo: o jogador fala hi no npc e o npc responde "hi , what a lovely day to die"
e pra ele falar vc usa a keyword "madmax" ele diz o texto2 e ai vc colocava a keyword2 e finalizava.

tem um npc que eu consegui fazer isso . mas ele so funciona com um texto e 1 keyword ... nao consigo colocar mais que isso.
vou por aki em baixo \/
 

<?xml version="1.0"?>
<npc name="Warp" script="data/npc/scripts/warp.lua" walkinterval="2000">
    <health now="100" max="100"/>
<look type="289" head="0" body="120" legs="120" feet="132" addons="2"/>

    <parameters>
        <parameter key="message_greet" value="|PLAYERNAME|, os mortos nao contam historias." />
        <parameter key="message_farewell" value="Cuidado pelos mares afora." />           
        <parameter key="message_onsell" value="YO HO." />
        <parameter key="message_walkaway" value="Justo." />
        
        <parameter key="module_keywords" value="1" />
        <parameter key="keywords" value="pirata" />
        <parameter key="keyword_reply1" value="Ouvi dizer que capitao Sales e sua tripulacao chegavam mais rapidos em todas as Hunts mas ninguem descobriu como." />
    </parameters>


</npc>
 


 

Postado

Fiz de uma forma simplificada para vocês. Em npcs/scripts crie um arquivo.lua:

 

Spoiler

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

local npcOrder = 1 -- edite a ordem do npc

local t = {
[1] = {keyword = "kazordoon", text = "Bela cidade construída pelos seres mais fortes, os dwarfs."}, -- palavra-chave, texto
[2] = {keyword = "mushroom", text = "Comida típica dos dwarfs. A propósito, você não teria algum para mim?"}
}

function creatureSayCallback(cid, type, msg)
local talkUser, msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, string.lower(msg)
    if(not npcHandler:isFocused(cid)) then
        if isInArray({"hi", "hello"}, msg) then
            if (getPlayerStorageValue(cid, 96772) == -1 and npcOrder == 1) or getPlayerStorageValue(cid, 96772) == npcOrder then
                npcHandler:addFocus(cid)
                npcHandler:say("Olá, "..getPlayerName(cid).."! Você tem algo a me dizer?", cid)
                talkState[talkUser] = 1
            else
                npcHandler:addFocus(cid)
                npcHandler:say("Olá, "..getPlayerName(cid).."! Talvez possamos conversar outra hora...", cid)
                talkState[talkUser] = 0
                npcHandler:releaseFocus(cid)
            end
        else
            return false
        end    
    elseif t[talkState[talkUser]] and msgcontains(msg, t[talkState[talkUser]].keyword) then
            npcHandler:say(t[talkState[talkUser]].text, cid)
            if talkState[talkUser] == #t then
                setPlayerStorageValue(cid, 96772, npcOrder + 1)
                talkState[talkUser] = 0
            else
                talkState[talkUser] = talkState[talkUser] + 1
            end
    elseif msgcontains(msg, "bye") then
        npcHandler:say("Bye.", cid)
        talkState[talkUser] = 0
        npcHandler:releaseFocus(cid)
    else
        npcHandler:say("WHAT?", cid)
        talkState[talkUser] = 0
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

 

Como arquivo.xml base você pode utilizar esse, faça as mudanças que desejar.

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Dwarfer" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="66"/>
</npc>

 

Para os outros npcs é só copiar a mesma coisa, mudar a ordem do npc em npcOrder para (2, 3, 4...), além das palavras-chave e dos textos enviados ao player. 

 

Contato:

 

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo