Добавлен
при создании моба для игрока 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
19
7 лет назад
0
Похожие вопросы:

ответ
делается это через проверку на существование точки сбора
то есть
boolean IsRally(unit u){
	location a=GetUnitRallyPoint(u);
	bool b=a!=null;
	RemoveLocation(a)
	return b;	
}
ответ
UnitRemoveAbility(whichUnit, 'ARal')
где whichUnit - твое здание
ответ
Нужно делать регионы подальше от мест строительства, смотри замок скиби.
Так же сделай крипам атаку которая ваншотит здания, если крипы не смогут пройти, они будут автоатковать ближайшие здания, таким образом тот кто застроит проход - навредит сам себе.

0
32
7 лет назад
0
Никак, не юзайте нейтралов - там сидит ии который ими управляет, юзайте обычных игроков.
На всех нейтралов работает общий ИИ, который нельзя отключить.
0
17
7 лет назад
0
да я и юзаю 12 игрока но он упрёться в координаты 0,0 и его от туда даже насильно невытащиш
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
было бы круто если бы ты их вспомнил а то я уже собираюсь весь ии переписать
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.