Добавлен ledoed
при создании моба для игрока 12(компьютер)-автоматом есть точка сюора (0,0)
вот все тесты с этим связанные
1.нет компа значит нет точки сбора но непуляет обычные способности
2.вместо компа указал нейтрал ,тоже самое что 1 пункт
3.комп есть но выкрутил аремя возвращения атаки - всеровно в 0,0 лезет
4.даю мобов под контроль 13 игрока скилы юзает но тоже в 0.0 лезет
система ии построенна так что если юнит в течении минуты не доходит до точки указаной там то точка прибытия рандомиться,также если его кординаты в течении 5 сек не изменилиь и он не делает не каких действий то тоже точка рандомиться(тоесть такого нет чтобы юнит састревал дето)
вот все тесты с этим связанные
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)
}
}
""
Принятый ответ
было бы круто если бы ты их вспомнил а то я уже собираюсь весь ии переписать
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
На всех нейтралов работает общий ИИ, который нельзя отключить.