Ir para conteúdo
  • Cadastre-se

(Resolvido)Npc de acordo com vocation


Ir para solução Resolvido por Wakon,

Posts Recomendados

Boa noite meus jovens e loucos Tibianos.

 

To montando um servidor e to precisando de um npc que teleporte o player para o local, porem que somente com X vocation...

Exemplo, meu servidor tem 8 vocations, e já fiz as 8 cidades, uma de cada vocation, queria que quando o player pegasse level 10 e fosse ao npc, o npc nao desse outra escolha a ele, e falasse somente "aquela cidade" de acordo com sua vocation, e se ele soubesse o nome de outra cidade, ele nao conseguir viajar, pois ele só pode ir pra "a cidade da sua vocation", entenderam?

 

Vlw galera s2

Link para o post
Compartilhar em outros sites

MMHUCMQ.png  Esta é uma mensagem automática, este tópico foi movido para a área correta.
  Regras do fórum: http://www.tibiaking.com/forum/topic/1281-regras-gerais/#comment-7680

Este tópico foi movido:
De: Scripting OTServ > OTServ > Monsters e NPCs
Para: Suporte OTServ > OTServ > Suporte de Scripts

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

Fiz um aqui pra você, espero que sirva, se der algum problema me avise.

Em "Data/npc/scripts", copie e cole um arquivo.lua e renomeie para vocTravel.lua, apague tudo e cole:

local cfg = {
        citys = {
	        [1] = {pos = {x = 160, y = 43, z = 7}, name = "cidade1"},
	        [2] = {pos = {x = 160, y = 44, z = 7}, name = "cidade2"},
		[3] = {pos = {x = 160, y = 45, z = 7}, name = "cidade3"},
		[4] = {pos = {x = 160, y = 46, z = 7}, name = "cidade4"},
        },
    level = 10,
    keys = {'travel', 'viajar', 'sail', 'passage'}
}

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 msg = msg:lower();
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid 
	
        local city = cfg.citys[getPlayerVocation(cid)]
        local vocName = getVocationInfo(getPlayerVocation(cid)).name
	if isInArray(cfg.keys, msg) then
	    if getPlayerLevel(cid) >= cfg.level then
		if city then
		    selfSay('Sua cidade principal sendo um '.. vocName ..' é a '.. city.name ..', deseja mesmo ir?', cid)
		    talkState[talkUser] = 1
                end
	    else
		selfSay('Você ainda está muito fraco para viajar, volte aqui quando estiver level '.. cfg.level ..' ou mais.', cid)
            end
	elseif msgcontains(msg, 'yes') then
	    if talkState[talkUser] == 1 then
		doTeleportThing(cid, city.pos)
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
	    end
	elseif msgcontains(msg, 'no') then
	    if talkState[talkUser] == 1 then
		selfSay('Tudo bem então, quando estiver interessado, venha falar comigo novamente.', cid)
		talkState[talkUser] = 0
	    end
	end
   return true
end

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

Em "Data/npc", copie e cole um arquivo.xml e renomeie para nomedonpc.xml, apague tudo e cole:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDONPC" script="vocTravel.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
	<parameters>
		<parameter key="message_greet" value="Olá |PLAYERNAME|! Deseja {viajar} para sua cidade principal?"/>
	</parameters>
</npc>

A configuração é o seguinte, em citys você coloca o ID da vocação entre [] e na frente você coloca a posição para onde essa vocação será levada e o nome da cidade desse vocação.

Logo abaixo, tem o level necessário para passar e as mensagens para iniciar o diálogo de travel.

Link para o post
Compartilhar em outros sites

Wakon, desculpa pela demora, estou correndo atrás disso mas sai com a familia por 2 dias ... Venho já pedir muito obrigado por me ajudar, ultimamente eu nao consigo ninguem disposto a isso ...

 

Mas bem, deu este erro, vou postar a imagem e voce me diz oque aconteceu <3

Uso tfs 10.76-10.77 

 

error.jpg

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

Resolvido em outro forum, se alguem precisar esta o link abaixo, muito obrigado mesmo assim, Wakon. <3

https://otland.net/threads/oracle-for-each-vocation.240356/

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