Ir para conteúdo
  • Cadastre-se

Como fazer um npc que dá uma raça para o player


Posts Recomendados

Bom, neste meu tópico:

http://tibiaking.com...stema-de-racas/

O Skydangerous comentou o seguinte sobre o script dele:

Porquê não faz o sistema igual o meu de raça?

O sistema é assim, cria char sem raça, pega algum level e depois disso conversa com o npc e ganha uma raça.

Sou meio novato na parada de scripts, e queria saber como fazer um script parecido com esse, ai quando o cara falava com o tal npc e escolhesse a raça, os outifits dele mudavam com os de acordo com os da raça.

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

Então vou te ajudar:

Fazendo script....

Já edito aqui com o script.

Quais são as raças?

Edit:

Desculpa, eu disse que ia editar aqui, fiz new post, se alguém quiser deletar esse post aqui sem problema!

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

Pra tirar todos outfits deles, pra só ficar do orc, vai lá deixa só o Citizen, o resto bota default = 0

Exemplo: <outfit id="23" default="0">

Ok, primeiro você cria as raças em XML/vocations.xml

Com os ids:

Orc = 1

Dwarf = 2

Elf = 3

Depois crie o NPC, normal como você quer e dai em script você bota scripts/raças.lua

Copie algum arquivo.lua lá renomeie para raças.lua, tire tudo de dentro e bote isso:


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,'raças')then

selfSay('Eu vou lhe falar um pouco mais sobre as raças, qual você gostaria de conhecer melhor? {orc}, {dwarf}, {elf}',cid)

if(msgcontains(msg,'orc'))then

selfSay('Os orcs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um orc}?',cid)

if(msgcontains(msg,'ser um orc'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,1)

doPlayerAddOutfit(cid,5, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end


if(msgcontains(msg,'dwarf'))then

selfSay('Os dwarfs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um dwarf}?',cid)

if(msgcontains(msg,'ser um dwarf'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,2)

doPlayerAddOutfit(cid,69, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end


if(msgcontains(msg,'elf'))then

selfSay('Os dwarfs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um elf}?',cid)

if(msgcontains(msg,'ser um elf'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,3)

doPlayerAddOutfit(cid,63, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end

end


end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Tenta se não der certo me fala..

Link para o post
Compartilhar em outros sites

Cara foi mal, não tava no pc ^^.

Bom, fui testar agora, e já comecei mal. Eu não achei onde é pra botar o default 0. O resto eu acho que deu pra entender de boa, normal.

Edit:

Quando eu liguei o server, claramente pulando o passo do outfit (que ñ deve ter nada a ver), deu esse erro ao ligar o server:

Error - LuaScriptInterface::loadFile] data/npc/scripts/racas.Lua:18 '>'

expect 'then'

- NpcScript::NpcScript] Cannot load script: data/npc/scripts/racas.lua

/scripts/racas.lua:18: '>' expected near 'then'

O arquivo lua chama racas mesmo...

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

bota esse


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,'raças'))then

selfSay('Eu vou lhe falar um pouco mais sobre as raças, qual você gostaria de conhecer melhor? {orc}, {dwarf}, {elf}',cid)

if(msgcontains(msg,'orc'))then

selfSay('Os orcs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um orc}?',cid)

if(msgcontains(msg,'ser um orc'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,1)

doPlayerAddOutfit(cid,5, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end


if(msgcontains(msg,'dwarf'))then

selfSay('Os dwarfs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um dwarf}?',cid)

if(msgcontains(msg,'ser um dwarf'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,2)

doPlayerAddOutfit(cid,69, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end


if(msgcontains(msg,'elf'))then

selfSay('Os dwarfs são uma raça muito forte, blá blaá blá',cid)

selfSay('Você deseja {ser um elf}?',cid)

if(msgcontains(msg,'ser um elf'))then

if (getPlayerVocation(cid)==0)then

doPlayerSetVocation(cid,3)

doPlayerAddOutfit(cid,63, 1)

doPlayerRemoveOutfit(cid,136, 1)

else

selfSay('Você já é de uma raça!',cid)

end

end

end

end


end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Link para o post
Compartilhar em outros sites

Agora não deu falha nem uma ao iniciar o servidor, porém quando ele pergunta para mim saber mais sobre as raças, e eu respondo algumas delas, não acontece nada.

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