Пятница, 29 Ноября 2024, 07:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Ограниченый путь
KrososДата: Среда, 10 Июля 2013, 11:29 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Вот я решил сделать ИИ.
Я научил его : ходить и вставать возле игрока , научил бить , но не удается решить эту проблему:
Код
if global.EPhase3=1 and mp_grid_path(global.Moving_mpgrid,path_combat_check,x,y,instance_nearest(x+0,y+0,AA).x,instance_nearest(x+0,y+0,AA).y,false)=true  and path_get_number(path_combat_check)>=UnitMovement[O] {(Вот здесь что-то должно быть=()}

Проблема в том , что не получается сделать движение к ближайшей метке AA(Особая метка возле игрока , направляющая ИИ) если она вне зоны досягаемости пути.
UnitMovement[O] - количество шагов = от 2 до сколько-угодно.
Как сделать так , чтобы игрок двигался в направление метки AA, сделав всего 6 шагов , когда метка АА находится значительно дальше?





Мой проект


Сообщение отредактировал Krosos - Среда, 10 Июля 2013, 11:39
BrightSpotДата: Среда, 10 Июля 2013, 14:50 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
сделай счетчик шагов и просто тормози при исходе шагов на пути к метке...


Более мощный компьютер глючит быстрее и точнее.
KrososДата: Воскресенье, 14 Июля 2013, 15:33 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Я пробовал его тормозить - он зависает между ячейками , а это не допустимо.
=(

Добавлено (14.07.2013, 14:33)
---------------------------------------------
В общем вот:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_combat)>global.SP[O]
{D=path_get_number(path_combat)-global.SP[O]
path_start(path_combat,8,0,1)     
if global.SP[O]=D{path_end()}
endpath2=1

И как я говорил , игрок зависает между последними точками.=(

. . . . . . P. (Вот как-то так)

Добавлено (14.07.2013, 15:02)
---------------------------------------------
Все равно хрень...
При разных значениях global.SP[O] получается...назовем это сбой.
То есть при 3 все нормально , тормозит на середине ,а при при 4 или 5 начинается полный писец , а сетка вообще никак не реагирует...

Есть еще одно решение , но я еще пока не думаю, как это реализовать.
Сделать переход через метку , как на картинке.
<a class="link" href="/go?http://www.fotolink.su/v.php?id=35ff803d4250b8098469366353611df3" title="http://www.fotolink.su/v.php?id=35ff803d4250b8098469366353611df3" rel="nofollow" target="_blank">

1218x852(2.97 MB)</a>
хостинг изображений

Добавлено (14.07.2013, 15:33)
---------------------------------------------
В общем я решил эту проблему......

Код
if mp_grid_path(global.Moving_mpgrid,AA_Path,x,y,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)=true and path_get_number(AA_Path)=global.MovingRange +1
and mp_grid_path(global.Moving_mpgrid,path_combat,x,y,global.Sunit.x,global.Sunit.y,false)=true and path_get_number(path_combat)=global.SP[O]
{instance_create(x,y,M)
}
global.CreateMovingPoint=0
global.MovingPoint=1


Вот этим кодом создается точка М.В нужных мне точках

А вот этим кодом:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x,y,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_combat)>global.SP[O]
{global.MovingRange=path_get_number(path_combat)-global.SP[O]
global.CreateMovingPoint=1}if global.MovingPoint=1{
if mp_grid_path(global.Moving_mpgrid,path_combat,x,y,instance_nearest(x,y,M).x,instance_nearest(x,y,M).y,false)= true {
path_start(path_combat,8,0,1)
endpath2=1
}

все получается вон, как на том скрине.





Мой проект


Сообщение отредактировал Krosos - Воскресенье, 14 Июля 2013, 15:34
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг