Ir para conteúdo
  • Cadastre-se

(Resolvido)NPC Barco , Viajar PK , PZ Battle ou Normal


Ir para solução Resolvido por Micheel15,

Posts Recomendados

@xWhiteWolf, @KotZletY, @marcot

 

Galera estou com uma Duvida Imensa sobre esse Script,

estou procurando montar um NPC barco que funcione no estilo do 7.4

no caso na hora de viajar eu não quero que o NPC check se o player está PK, PZ, Battle

quero apenas que fale com o NPC e ele teleporte para outra cidade, mesmo que o player esteja PK,  PZ, Battle, 

alguem poderia me ajuda ?

 

USO OTX servidor 8.6

 

fucei nos Modules no NPC axei algo envolvendo Pzlock, mais não sei bem se ali é a parte correta

alguem poderia me dar uma luz ?

 

estou tentando fazer com esse script abaixo : 

 

Spoiler

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
  	if focus == cid then
          selfSay('Tchau então.')
          focus = 0
          talk_start = 0
  	end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
  	return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
  	msg = string.lower(msg)

  	if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 5 then
		if isPremium(cid) then
			selfSay('Olá ' .. creatureGetName(cid) .. 'Eu posso te levar para a Infernus City, Diga {infernus}. Isto ira te custar 100k?')
			focus = cid
			talk_start = os.clock()
		else
			selfSay('Desculpe, somente premiuns podem viajar nesse barco.')
			focus = 0
			talk_start = 0
		end
  	elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 5 then
  		selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Converso com você em um estante.')

  	elseif focus == cid then
		talk_start = os.clock()

		elseif msgcontains(msg, 'mordor') then
			if getPlayerLevel(cid) > 420 or getPlayerLevel(cid) < 419 then
			if getPlayerVocation(cid) <1  or getPlayerVocation(cid) > 8 then
				selfSay('Desculpe, Somente Promotion\'s podem ter acesso a Infernus!')
				talk_state = 0
			else
				selfSay('Você deseja viajar para Infernus por 100000 moedas de ouro?')
				talk_state = 1
			end

		elseif talk_state == 1 then
			if msgcontains(msg, 'yes') then
				if pay(cid,100000) then
				travel(cid, 250, 2328, 7)
				selfSay('Que rude!')
				else
					selfSay('Desculpe, você não tem dinheiro suficiente.')
				end
 			end
			talk_state = 0

			elseif msgcontains(msg, 'hi') then
			selfSay('Olá ' .. creatureGetName(cid) .. ' ?')

			elseif msgcontains(msg, 'travel') then
			selfSay('Eu posso te levar para a Infernus City, Diga {infernus}. Isto ira te custar 100k.')	
			
		elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
			selfSay('Tchau, ' .. creatureGetName(cid) .. '!')
			focus = 0
			talk_start = 0
		end
	end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
 	doNpcSetCreatureFocus(focus)
 if (os.clock() - talk_start) > 30 then
  		if focus > 0 then
  			selfSay('Próximo Porfavor...!')
  		end
  			focus = 0
  	end
 	if focus ~= 0 then
 		if getDistanceToCreature(focus) > 5 then
 			selfSay('Tchau então.')
 			focus = 0
 		end
 	end
end

 

 

 

só que ao ligar o servidor me deparo com esse erro, imagem abaixo : 

 

 

erro npc.jpg

Editado por Micheel15 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 7
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Onde tem  creatureGetName(cid) Use |PLAYERNAME|  

Posta o código novamente após as modificações, por gentileza. Edit: Eu cometi um engano, na parte do script em si, em que você está trabalhando, não pode usar |PLAYERNAME|, fui dá uma olhada no código e percebi que, a função creatureGetName, na verdade sempre vai retornar nulo, pois a mesma é getCreatureName(cid), e não dá forma que estava no script. Teste aí e me informe como que ficou, @Micheel15

não é mais fácil criar um npc de tibia 8.6 e só reprogramar ele para este tipo de situação?

Posted Images

Onde tem 

creatureGetName(cid)

Use |PLAYERNAME|
 

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites

@lordzetros, quando coloco isso  e dou reload no npc

ta retornando esses erros a cada 1 segundo

imagem abaixo : 

 

bu.jpg

Link para o post
Compartilhar em outros sites

Posta o código novamente após as modificações, por gentileza.
Edit: Eu cometi um engano, na parte do script em si, em que você está trabalhando, não pode usar |PLAYERNAME|, fui dá uma olhada no código e percebi que, a função creatureGetName, na verdade sempre vai retornar nulo, pois a mesma é getCreatureName(cid), e não dá forma que estava no script. Teste aí e me informe como que ficou, @Micheel15

Editado por lordzetros (veja o histórico de edições)

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites

@lordzetrosentão, eu falo Hi agora ele responde, mais quando falo o destino ele não me leva eu não fala mais nada, e por incrivel que pareça, não da nenhum erro na distro

eu estou tentando fazer um NPC de barco, mais que eu consiga viajar com PK, Battle, resumindo viajar de qualquer jeito !

se você puder me ajudar.

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.

  • Estatísticas dos Fóruns

    96850
    Tópicos
    519614
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo