Ir para conteúdo
  • Cadastre-se

[Resolvido] [Dúvida] Distância do NPC'


Posts Recomendados

É muito simples...

Primeiramente, boa tarde a todos.

Gostaria de saber se é possível, e se possível, como proceder, para que o player só pudesse falar com um certo NPC estando a 1 sqm de distância dele.

É de grande ajuda.

Atenciosamente,

Adriano Swatt

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Também gostaria de saber, pois se eu der trade em 1 npc, a janela trade só fecha se eu subir ou descer um andar

Se o npc tiver no mesmo andar da minha hunt, consigo comprar potion dentro da cave =|

Obrigado

Link para o post
Compartilhar em outros sites

Eu sei que é possível, tenho dois "amigos" que sabem'

Só que não estão Online para montar pra mim'

:T

Abraços e Boa sorte pra nós'

EUIHAIUEH

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Ai vai ser pra todos,

Creio que ele queira só pra um NPC,

Sim, eu realmente queria só para um NPC...

No entanto o que ele disse acima, é valido por enquanto'

@@Lpz

Valeu, vou usar isto por enquanto'

Abraços.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Fiz uma tentativa aqui e não testei, logo não sei se vai funcionar.

Abra o arquivo npchandler.lua em data/npc/lib/npcsystem e procure por:


function NpcHandler:isInRange(cid)

	local distance = getNpcDistanceTo(cid) or -1

	return distance ~= -1 and distance <= self.talkRadius

end

Embaixo, adicione:

function NpcHandler:setRadius(value)

	self.talkRadius = value

end

No NPC, procure por isso:

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

Logo abaixo adicione:

npcHandler:setRadius(1)

Bom teste :O

Link para o post
Compartilhar em outros sites

Ficou assim:

O Começo do NPC ficou assim:

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

npcHandler:setRadius(1)

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

O meu npchandler.lua, estava um pouquinho diferente do seu...Olha como está: (já editado com seu código)

-- Returns true if cid is within the talkRadius of this npc.

function NpcHandler:isInRange(cid)

local distance = getDistanceTo(cid) or -1

if(distance == -1) then

return false

end

function NpcHandler:setRadius(value)

self.talkRadius = value

end

return (distance <= self.talkRadius)

end

E deu o seguinte erro ao inicializar o server.

[12/03/2012 21:29:31] [Error - Npc interface]

[12/03/2012 21:29:31] data/npc/scripts/caixa_eletronico.lua

[12/03/2012 21:29:31] Description:

[12/03/2012 21:29:31] data/npc/scripts/caixa_eletronico.lua:4: attempt to call method 'setRadius' (a nil value)

[12/03/2012 21:29:31] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/caixa_eletronico.lua

Abraços e valeu pela tentativa, me parece que falta pouco pra funfar'

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Você cometeu um erro ali, no caso, o npchandler.lua era para ficar assim:


-- Returns true if cid is within the talkRadius of this npc.

function NpcHandler:isInRange(cid)

local distance = getDistanceTo(cid) or -1

if(distance == -1) then

return false

end

return (distance <= self.talkRadius)

end


function NpcHandler:setRadius(value)

self.talkRadius = value

end

E não esqueça de dar /reload npcs ou abrir e fechar o executável do seu servidor

Link para o post
Compartilhar em outros sites

Você cometeu um erro ali, no caso, o npchandler.lua era para ficar assim:


-- Returns true if cid is within the talkRadius of this npc.

function NpcHandler:isInRange(cid)

local distance = getDistanceTo(cid) or -1

if(distance == -1) then

return false

end

return (distance <= self.talkRadius)

end


function NpcHandler:setRadius(value)

self.talkRadius = value

end

E não esqueça de dar /reload npcs ou abrir e fechar o executável do seu servidor

Mano, você é um gay' (no bom sentido, se é que há)

eiaheiuahuiehauihe

:D

Pegou certinho... Nuss, nem imagina o quanto me ajudou'

:D

REP+ pra ti' :accept:

Abraços

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Mals o Double-Post'

Mas PODEM FECHAR AQUI' :accept:

@@EDIT'

Mals, Agora que vi o botão de reportar tópico Resolvido'

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Tópico Resolvido.

A postagem após o tópico resolvido será considerado flood, a não ser que o dono do tópico esqueceu de algo, ou se algum membro tiver a dúvida semelhante.

Até.

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites
  • LeoTK locked this tópico
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo