Ir para conteúdo

Featured Replies

Postado

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

Resolvido por Wakon

Ir para solução
  • Respostas 5
  • Visualizações 551
  • Created
  • Última resposta

Top Posters In This Topic

Posted Images

Postado

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

Postado
  • 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.

Postado
  • Autor

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)

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