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 |
|
| |