Ir para conteúdo

Featured Replies

Postado

@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)

Resolvido por Micheel15

Ir para solução
  • Respostas 7
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most 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ódi

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

Posted Images

Postado

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)

Postado
  • Autor

@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.

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