My name is Lucas Araújo, i'm a brazilian game designer(originaly a pixel-artist) and also a C# programer majoring in information systems.
I have started to code on byond a little time ago, and started a project called "Infected Online" with my team(Pixel SoftWorks). I have coded the basic AI and the basic Spawner System, the problem is :
* When i'm using the Dream Maker to compile and run my project, the game runs fine the spawner system works and also the AI system. But when I start my server with Dream Daemon the two systems doesn't work.
I think some of you guys that have a lot more experience than I should be able to give me a hand !
I have recorded a video about the bug :
http://www.youtube.com/watch?v=YsFTTGsbxLM
And here is the codes :
Spawner :
obj
proc
Spawn(mob/Jogador/J in oview(100, src)) //Define que mob/Jogador/J(Variável) é um mob no campo de visão de 100 tiles.
var/Contador = 0
for(J) //Para J, ou seja, a condição acima :
if(get_dist(src, J) <= 10) //Se a distância de J para o spawn for menor ou igual a 10 tiles :
while(Contador < 5) //Enquanto o contador for menor que 5 :
new/mob/Inimigos/Zumbi(src.loc) //Spawna um novo Zumbi, no local em que o spawner foi colocado.
sleep(50) //Aguarda 50 mileseconds :
Contador++ //Adciona +1 ao contador
sleep(1000) //Aguarda 1000 mileseconds :
Contador = 0 //Zera o contador para que processo de spawn seja recomeçado.
Spawn() //Chama recursivamente o proc spawner.
else if(get_dist(src, J) > 10) //Se a distância for maior que 10 tiles.
sleep(10) //Descansa 10 mileseconds.
Spawn() //Chama recursivamente o proc Spawn()
sleep(10) //Descansa 10 mileseconds.
Spawn() //Chama recursivamente o proc Spawn()
AI system :
mob/Inimigos
proc
AI(mob/Jogador/J as mob in oview(1000, src)) //Define que mob/Jogador/J(Variável) é um mob no campo de visão de 1000 tiles.
for(J) //Para J, ou seja, a condição acima :
if(get_dist(src, J) <= 10) //Se J estiver a menos de 10 tiles ou a 10 tiles do zumbi, o zumbi vai persegui-lo.
walk_towards(src, J, 0, 2) //Persegue o jogador.
if(get_dist(src, J) <= 2) //Se J estiver a menos de 2 tiles ou a 2 tiles do zumbi :
Atacar(J) //O zumbi ataca J.
sleep(10) //Delay de 10 mileseconds.
AI() //Chama recursivamente o proc AI(), para que checagens sejam feitas denovo.
else if(get_dist(src, J) >= 10 && get_dist(src, J) < 20) //Se não, se a distância de J para o Zumbi for igual a 10 tiles e menor que 20 tiles :
walk_rand(src, 0,2) //Zumbi anda randomicamente.
sleep(10) //Delay de 10 mileseconds.
AI() //Chama recursivamente o proc AI(), para que chegagens sejam feitas denovo.
else if(get_dist(src, J) > 20) //Se não, se a distância de J para o Zumbi for maior que 20 tiles :
del(src) //Deleta o mob para que seja evitada sobrecarga no servidor.
sleep(10) //Aguarda 10 mileseconds :
AI() //Chama recursivamente o proc para verificar erros na IA e corrigi-los.