Ir para conteúdo

Descobrir lugares ao caminhar (Skyrim)


Lordfire

Posts Recomendados

Eu tava cansado do quão monótono é andar por aí no Tibia e eu tava jogando muito Skyrim nessa época e resolvi fazer um patch pra descobrir os lugares que nem no Skyrim, que aparece uma mensagem pro player e marca no mapa onde fica. Funciona na versão mais recente do The Forgotten Server que tiver no Github mas se alguém usa o 1.0 ou 1.1 me avisa que eu faço um rebase.

 

Link do patch:

https://gist.github.com/ranisalt/a075bdc4d87ed8572f869da15e200dee

 

Pra aplicar você vai na raiz do server (onde fica o diretório src/ e data/) e executa:

patch -p1 -i <nome do arquivo>

 

No Windows eu não faço ideia, mas se precisar faço um tutorial depois.

 

A configuração fica no arquivo data/global.lua, na variável locations:

locations = {	[15000] = {		name = "Initial Temple",		pos = { x = 95, y = 122, z = 7 },		mapmark = MAPMARK_TEMPLE	}}

 

Editado por Lordfire
Link para o comentário
Compartilhar em outros sites

ótimo código, só uma dúvida.. vc é mesmo o ranisalt? 

O unico problema desse callback seria a complexidade.. muitos lugares, muitos players e muitos passos seria o suficiente pra comer a ram inteirinha da máquina. As vezes uma abordagem que parece mais porca (colocar uma dúzia de actionids nas areas que dão acesso à area a ser descoberta) acaba sendo infinitas vezes melhor do que um evento que é acionado a cada passo. 

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Night Wolf disse:

ótimo código, só uma dúvida.. vc é mesmo o ranisalt? 

 

O unico problema desse callback seria a complexidade.. muitos lugares, muitos players e muitos passos seria o suficiente pra comer a ram inteirinha da máquina. As vezes uma abordagem que parece mais porca (colocar uma dúzia de actionids nas areas que dão acesso à area a ser descoberta) acaba sendo infinitas vezes melhor do que um evento que é acionado a cada passo. 

Sim sr, sou eu =):

 

O callback não é tão pesado, o onWalk só é ativado em players e ao completar o passo, ou seja, cada vez que o movimento é cancelado (ex. pisar num tile de level sem ter level suficiente), não dispara. A engine de Lua é bem leve, Lua é muito otimizado pra scripting embutido.

 

Na verdade, a última vez que eu vi isso sendo medido, 65% do tempo de processamento do TFS é gasto calculando os spectators de um dado tile, callbacks em Lua são uma parcela ínfima e tem muito espaço pra isso :D

Link para o comentário
Compartilhar em outros sites

43 minutos atrás, Lordfire disse:

Sim sr, sou eu =):

 

O callback não é tão pesado, o onWalk só é ativado em players e ao completar o passo, ou seja, cada vez que o movimento é cancelado (ex. pisar num tile de level sem ter level suficiente), não dispara. A engine de Lua é bem leve, Lua é muito otimizado pra scripting embutido.

 

Na verdade, a última vez que eu vi isso sendo medido, 65% do tempo de processamento do TFS é gasto calculando os spectators de um dado tile, callbacks em Lua são uma parcela ínfima e tem muito espaço pra isso :D

O numero de checagens ainda seria significativo, isso é praticamente um onThink mas enfim, em todo caso acredito que possua um bug lógico na sua idéia: como ele só é ativado ao completar o walk, se o cara clicar no minimap e iniciar o walk passando pela área a ser descoberta e saindo dela, ela não será dada como descoberta, correto?

Link para o comentário
Compartilhar em outros sites

ah, eu pensei que vc tava usando dentro do onMoveComplete mas tá no onMove, esquece então. É q eu tava na aula quando fui ler o código então eu vi beem por cima e quando vc comentou que era só quando o walk fosse completo eu imaginei outra função.

Link para o comentário
Compartilhar em outros sites

  • 7 months later...
  • 2 months later...
×
×
  • Criar Novo...