Добавлен
при создании моба для игрока 12(компьютер)-автоматом есть точка сюора (0,0)
вот все тесты с этим связанные
1.нет компа значит нет точки сбора но непуляет обычные способности
2.вместо компа указал нейтрал ,тоже самое что 1 пункт
3.комп есть но выкрутил аремя возвращения атаки - всеровно в 0,0 лезет
4.даю мобов под контроль 13 игрока скилы юзает но тоже в 0.0 лезет
система ии построенна так что если юнит в течении минуты не доходит до точки указаной там то точка прибытия рандомиться,также если его кординаты в течении 5 сек не изменилиь и он не делает не каких действий то тоже точка рандомиться(тоесть такого нет чтобы юнит састревал дето)
как зделать так чтобы юниты нормально передвигались не обращая на этот сборный пункт + ещё чтобы могли способности юзать
может я неправильно двигаю бойцов вот системка
""
library IIrankC{

private timer T=null




define{








private mapX=5100
private mapY=5100
}

private int count = 0



private unit this_u[]
private float this_x[]
private float this_y[]
private int minuta[]

private int Proverka(unit u){int i = 0;while(i<count){if(u==this_u[i]){return i}i++}return -1}


private void RemoveUnitStruct(int i){
count--

//====================
this_u[i]=this_u[count]
this_x[i]=this_x[count]
this_y[i]=this_y[count]
minuta[i]=minuta[count]
//======================
this_u[count]=null
  
}



public void AddUnit(unit u){

//===========
     this_u[count]=u
         this_x[count]=GetRandomInt(-mapX,mapX)
     this_y[count]=GetRandomInt(-mapY,mapY)
     minuta[count]=0
//============

IssuePointOrder(u,"attack",this_x[count],this_y[count])
   count++

}








private void Remove(int i){


minuta[i]=0
this_u[i]=null
RemoveUnitStruct(i)
}






private void Action(int i){
float x=GetUnitX(this_u[i])-this_x[i],y=GetUnitY(this_u[i])-this_y[i]
float distance=x*x+y*y

minuta[i]++
if(minuta[i]>15){distance=0}

if(distance<10000){

    this_x[i]=GetRandomInt(-mapX,mapX)
     this_y[i]=GetRandomInt(-mapY,mapY)

IssuePointOrder(this_u[i],"attack",this_x[i],this_y[i])

minuta[i]=0
}




if(ISLife(this_u[i])){Remove(i)}

}








public void Update(){
int i = 0
while(i<count){Action(i);i++}

}



public void init(){

T=CreateTimer()
TimerStart(T,5.00,true,function Update)
}


}
""

Принятый ответ

было бы круто если бы ты их вспомнил а то я уже собираюсь весь ии переписать
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
7 лет назад
0
12 игрок - нейтрально враждебный, юзайте игроков от 0 до 11.
0
17
7 лет назад
0
тоесть да 11 игрок это и есть 12(который коричневый)
0
32
7 лет назад
0
ну делаешь его обычным игроком компьютером и направляешь, пришеш примитивный ии чтобы кастовал спеллы.
0
17
7 лет назад
0
всмысле компом кокраз иза того что в свойствах сценария в графе 12 игрока стоит компьютер мобы имеют точку сбора и это выглядет смешно (типо толстушка после 6.00 в кординатах 0.0 находиться холодильник,сначала он прёт на точку системы а через секунду прёт к холодильнику а потом опять к системной точке),а вот если убрать в графе комп то у монстров 12 игрока не будет точки сбора и они будут как надо действовать но скилы юзать несмогут
0
32
7 лет назад
0
ledoed, они охраняют исходную позицию, вроде были дейсвтия для ИИ - игнорировать исходную позицию...
0
17
7 лет назад
0
было бы круто если бы ты их вспомнил а то я уже собираюсь весь ии переписать
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.