Ir para conteúdo
  • 0

NPC Diferente


matheuspeixoto12

Pergunta

Boa tarde a todos, estou criando um server de narutibia e gostaria de colocar um npc que faz umas perguntas e dependendo da resposta ele muda a vocação do player, ex.

 

player: hi

npc: Olá, você gostaria de ser um (ninja) ou um (samurai) ?

 


player: ninja

npc: hmm.. você quer ser (bloquer), (healer), (atacante de perto) ou (atacante de longe) ?


player: atacante de perto

npc: ok, temos estas vocações disponíveis, (Naruto), (sasuke)


player: Naruto

npc: Vocação adicionada com sucesso, Divirta-se !

-- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l -- l --


player: hi

npc: Olá, você gostaria de ser um (ninja) ou um (samurai) ?

player: samurai

npc: você quer ser um (defensor) ou (atacante) ?


player: defensor

npc: Vocação adicionada com sucesso, Divirta-se !

 

OBS 1: Sei que é dificil mas não é impossivel, se alguém puder me ajudar agradeço !

OBS 2: Será tudo grátis

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Essa seção não deve ser usada para pedidos ou dúvidas, temos uma seção específica para isso. Por favor, preste mais atenção da próxima vez.
Movido para Pedidos e Dúvidas - Scripting.

Link para o comentário
Compartilhar em outros sites

  • 0

Primeiramente você deve criar as vocações especiais que o npc lhe dará, faça isto em vocations.xml onde poderá renomeá-las e configurar os atributos da mesma, depois basta pegar o NPC que lhe transforma em Elite Knight, Royal Paladin, etc..editá-lo para que ele lhe ofereça estas vocações novas.

 

Não da muito trabalho, basta ter paciência.

 

 

Boa sorte.

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, estou montando pra ti.

Mas me confirme uma coisa, para classe Ninja, existe Naruto e Sasuke? Ou existem healer, bloquer, atacante de perto e atacante de longe?

 

 

== Para lhe adiantar.

Fiz somente 2 categoria para classe Ninja e 2 categorias para classe Samurai.

Sendo elas para Ninja: Naruto e Sasuke e para Samurai: Atacante e Defensor.

 

Pois foi as que você me passou as ids da vocação e também os referidos nomes.

 

Sem mais delongas, abaixo segue os scripts:

Este é o npc que nomeei de Sensei.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="[NPC] Sensei" script="data/npc/scripts/vocations.lua" walkinterval="2000" floorchange="0">
    <mana now="800" max="800"/>
    <health now="200" max="200"/>
    <look type="133" head="114" body="119" legs="132" feet="114"/>
    <parameters>
        <parameter key="message_greet" value="Opah |PLAYERNAME|, tudo bem? Diga {ajuda} para saber quais as classes disponíveis."/>
    </parameters>
</npc>

 

Este é o arquivo da funcionalidade do NPC, nomeado de vocations.lua:

 

 

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, 'ajuda') or msgcontains(msg, 'help')) then
        selfSay('Lembrando sempre que existem 2 classes e varias categorias, quais das abaixo deseja se tornar?', cid)
        selfSay('Para a classe Ninja temos as seguintes categorias: {Naruto} e {Sasuke}.', cid)
        selfSay('Para a classe Samurai temos as categorias {Defensor} e {Atacante}.', cid)
        selfSay('Qual destas classes melhor lhe descreve?', cid)
        talkState[talkUser] = 1
    end

    if(msgcontains(msg, 'defensor') or msgcontains(msg, 'samurai defensor')) then
        selfSay('Tem certeza que deseja se tornar um {Samurai Defensor}?', cid)
        talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 2) then
        doPlayerSetVocation(cid, 202)
        selfSay('Parabens, se tornou um {Samurai Defensor}.', cid)
    end

    if(msgcontains(msg, 'atacante') or msgcontains(msg, 'samurai atacante')) then
        selfSay('Tem certeza que deseja se tornar um {Samurai Atacante}?', cid)
        talkState[talkUser] = 3
    elseif(msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 3) then
        doPlayerSetVocation(cid, 203)
        selfSay('Parabens, se tornou um {Samurai Atacante}.', cid)
    end
    
    if(msgcontains(msg, 'naruto') or msgcontains(msg, 'naruto uzumaki')) then
        selfSay('Tem certeza que deseja se tornar um {Ninja Naruto}?', cid)
        talkState[talkUser] = 4
    elseif(msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 4) then
        doPlayerSetVocation(cid, 200)
        selfSay('Parabens, se tornou o ninja {Naruto}.', cid)
    end
    
    if(msgcontains(msg, 'sasuke') or msgcontains(msg, 'saski')) then
        selfSay('Tem certeza que deseja se tornar um {Ninja Sasuke}?', cid)
        talkState[talkUser] = 5
    elseif(msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 5) then
        doPlayerSetVocation(cid, 201)
        selfSay('Parabens, se tornou o Ninja {Sasuke}.', cid)
    end
    
    
return true
end

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

 

Eu testei sobre erros no launcher, diálogos, movimentos e funções e não apresentou nenhum erro.
Caso encontre algum, poste aqui para resolvermos.

 

 

Boa sorte.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...