RA
dúvida

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

Por razurator, 10 de out. de 2013 em Scripts

monstros
bot
resolvido
otserv
tibia
7
1.4k
razuratorR
10 de outubro de 2013 às 03:42

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+

KilluaK
10 de outubro de 2013 às 14:25

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

razuratorR
11 de outubro de 2013 às 02:59

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.

OneshotO
11 de outubro de 2013 às 16:40

É 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 Outubro 11 por Oneshot

11 de outubro de 2013 às 18:20

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>

 

razuratorR
11 de outubro de 2013 às 23:43

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.

AlexclusiveA
12 de outubro de 2013 às 00:02

Tópico movido para a seção de dúvidas e pedidos resolvidos.