Ir para conteúdo
  • 0

Da pra fazer os monstros agirem como BOTs? Potencial [pedido]


razurator

Pergunta

Olá xTibianos, estou com uma equipe formada para a confecção de um Open Tibia no estilo MOBA e não sei se será possível programar os monstros que desejamos. Seria possível fazer algo como transformar os monstros em BOTs para que eles nasçam em um lugar, se desloquem para o local desejado e passem a lutar entre si e façam coisas como atacar players como nos MOBAs.

Estou com dois programadores iniciantes cursando prontos para treinar sua habilidades num server de Tibia e se isso for possível então passa a ser um pedido ao em vez de uma duvida.

Se fosse possível que alguém dispusesse pelo menos a logica empregada aos parâmetros do Tibia, já seria de grande ajuda.

Agradeço desde já apenas a atenção e claro que vai ganhar REP+

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Da pra fazer mas e meio dificil... seria melhor com NPC eu acho. Usa como exemplo esse npc aqui: http://www.xtibia.com/forum/topic/222197-bruce-the-fighter-o-npc-lutador/#entry1570123

 

A logica da linguagem vc encontra aqui no forum e no Manual.

 

A enciclopedia que o omega fez a pouco tempo lista bem os melhores tutoriais e listas de funcoes, oq ajuda bastante: http://www.xtibia.com/forum/topic/222237-enciclopedia-de-tutoriais-de-scripting/#entry1570942

Link para o comentário
Compartilhar em outros sites

  • 0

Da pra fazer mas e meio dificil... seria melhor com NPC eu acho. Usa como exemplo esse npc aqui: http://www.xtibia.com/forum/topic/222197-bruce-the-fighter-o-npc-lutador/#entry1570123

 

A logica da linguagem vc encontra aqui no forum e no Manual.

 

A enciclopedia que o omega fez a pouco tempo lista bem os melhores tutoriais e listas de funcoes, oq ajuda bastante: http://www.xtibia.com/forum/topic/222237-enciclopedia-de-tutoriais-de-scripting/#entry1570942

Obrigado pela resposta amoeba13. No entanto, vou deixar o tópico aberto para coletar mais conteúdo, caso isso seja permitido até que eu perceba que minha duvida foi completamente sanada.

Link para o comentário
Compartilhar em outros sites

  • 0

É possível sim, principalmente fazendo alterações nas sources. Se tomarmos como exemplo, League of Legends, onde existem dois times, podemos fazer alterações para que monstros do Time 1, enxerguem como inimigos apenas monstros e "heróis" do Time 2.

 

Inclusive a partir de revisões mais recentes do The Forgotten Server, foi incluida uma ótima função, doSteerCreature(cid, position), que traz a possibilidade de deslocar criaturas de um ponto até outro, como se elas andassem mesmo, não por teleporte instantâneo.

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

  • 0

Tem uma base pra isso De [monster do time 1 vs monster do Time 2]

 

monstersTeam = {
-- team 1
["Dragon Hatchling" ] = 1,
["Dragon Lord Hatchling" ] = 1,
["Dragon Lord" ] = 1,
["Dragon" ] = 1,
["Frost Dragon" ] = 1,

-- team 2
["Dwarf Geomancer" ] = 2,
["Dwarf Guard" ] = 2,
["Dwarf Soldier" ] = 2,
["Dwarf" ] = 2
}

function onStatsChange(cid, attacker, t, combat, value)
if t == STATSCHANGE_HEALTHGAIN then return TRUE end

-- getting monster being attacked team
local monster1Team = monstersTeam[getCreatureName(cid)]
-- return if it has no team
if monster1Team == nil then return TRUE end

-- getting monster that is attacking team
local monster2Team = monstersTeam[getCreatureName(attacker)]
-- return if it has no team
if monster2Team == nil then return TRUE end

-- check if they're of the same team
if monster1Team == monster2Team then
-- if they're of the same team, returning false will not allow the damage to be done to its partner
return FALSE
else
return TRUE
end

return TRUE

end

 

 

 

<event type="statschange" name="MonstersTeam" event="script" value="monstersTeam.lua"/>

 

 

poem isso No Monstro . xml

 

<script>

<event name="MonstersTeam" />


</script>

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tem uma base pra isso De [monster do time 1 vs monster do Time 2]

 

monstersTeam = {

-- team 1

["Dragon Hatchling" ] = 1,

["Dragon Lord Hatchling" ] = 1,

["Dragon Lord" ] = 1,

["Dragon" ] = 1,

["Frost Dragon" ] = 1,

 

-- team 2

["Dwarf Geomancer" ] = 2,

["Dwarf Guard" ] = 2,

["Dwarf Soldier" ] = 2,

["Dwarf" ] = 2

}

 

function onStatsChange(cid, attacker, t, combat, value)

if t == STATSCHANGE_HEALTHGAIN then return TRUE end

 

-- getting monster being attacked team

local monster1Team = monstersTeam[getCreatureName(cid)]

-- return if it has no team

if monster1Team == nil then return TRUE end

 

-- getting monster that is attacking team

local monster2Team = monstersTeam[getCreatureName(attacker)]

-- return if it has no team

if monster2Team == nil then return TRUE end

 

-- check if they're of the same team

if monster1Team == monster2Team then

-- if they're of the same team, returning false will not allow the damage to be done to its partner

return FALSE

else

return TRUE

end

 

return TRUE

end

 

 

 

<event type="statschange" name="MonstersTeam" event="script" value="monstersTeam.lua"/>

 

 

poem isso No Monstro . xml

 

<script>

<event name="MonstersTeam" />

</script>

 

 

 

É possível sim, principalmente fazendo alterações nas sources. Se tomarmos como exemplo, League of Legends, onde existem dois times, podemos fazer alterações para que monstros do Time 1, enxerguem como inimigos apenas monstros e "heróis" do Time 2.

 

Inclusive a partir de revisões mais recentes do The Forgotten Server, foi incluida uma ótima função, doSteerCreature(cid, position), que traz a possibilidade de deslocar criaturas de um ponto até outro, como se elas andassem mesmo, não por teleporte instantâneo.

Obrigado, já estou conseguindo resultados com a ajuda de vocês. Acho que a partir de agora já da pra tocas com a minha equipe.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...