Сейчас 16:08:02 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Область
samolet99Дата: Пятница, 08 Августа 2014, 14:35:29 | Сообщение # 1
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
Возможно ли сделать через триггеры, чтобы герой двигался к ближней области?
 

Q1wAseДата: Пятница, 08 Августа 2014, 16:18:18 | Сообщение # 2
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата samolet99 ()
Возможно ли сделать через триггеры, чтобы герой двигался к ближней области?

да


 

samolet99Дата: Пятница, 08 Августа 2014, 16:20:54 | Сообщение # 3
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
Q1wAse, не подскажите как?:)
 

SirNikolasДата: Пятница, 08 Августа 2014, 19:04:13 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Для начала требуется уточнить, что подразумевается под "ближней областью". Та из нескольких областей (записанных в массив), расстояние до центра которой меньше, чем у остальных?

 

samolet99Дата: Пятница, 08 Августа 2014, 19:12:44 | Сообщение # 5
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
SirNikolas, Верно
 

totti20Дата: Пятница, 08 Августа 2014, 21:41:06 | Сообщение # 6
5 уровень
Группа: Проверенные
Сообщений: 138
Награды: 0
Репутация: 0
Блокировки:
Цитата samolet99 ()
Возможно ли сделать через триггеры, чтобы герой двигался к ближней области?

создаешь область, даешь приказ передвижения к выбранной области, там много вариантов

Добавлено (08 Августа 2014, 21:41:06)
---------------------------------------------

Цитата samolet99 ()
Возможно ли сделать через триггеры, чтобы герой двигался к ближней области?

создаешь область, даешь приказ передвижения к выбранной области, там много вариантов
 

samolet99Дата: Суббота, 09 Августа 2014, 02:22:27 | Сообщение # 7
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
totti20,
Допустим есть три стороны. Герой пошёл по 1 стороне. Жизни стало 200 или меньше, и он бежит к ближней области.
 

Q1wAseДата: Суббота, 09 Августа 2014, 10:04:25 | Сообщение # 8
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата samolet99 ()
totti20,
Допустим есть три стороны. Герой пошёл по 1 стороне. Жизни стало 200 или меньше, и он бежит к ближней области.

Смахивает на ИИ.
Заноси все области в переменные с массивом, а так же не забудь создать переменную целочисленную MAX в которой будет храниться максимальное число таких областей.
Затем когда тебе нужно циклом сравнивай расстояние между героем и центром области в цикле это расстояние заноси в другую вещественную переменную и запоминай, если расстояние между героем и областью меньше чем значение вещественной переменной, то заноси в вещественную переменную расстояние от этой области до героя, а так же заноси эту области из массива в новую переменную типа область (не массив), для того чтобы к неё потом обратиться.

Это куда громоздкий вариант работы и возможно лучше было бы воспользоваться декартовой системой координат. А по точнее
Jass вариант:
допустим у нас уже есть переменные x и y типа real в которых лежат координаты
Действия функции AI_Variable следует запихать в триггер с инициализацией!
Код

globals
      integer MinIndex
      real array x
      real array y
      integer MaxIndex
      unit array AI_Hero
endglobals
function AI_Variable takes nothing returns nothing
   set x[1] = 100.
   set y[1] = -100.
   set x[2] = 300.
   set y[2] = -300.
   set x[3] = 500.
   set y[3] = -500.
   set x[4] = 700.
   set y[4] = -700.
   set MaxIndex = 4
   set AI_Hero[0] = gg_unit_Hmkg_0258 // Работаем с этим юнитом для теста, можно изменить на своего.
endfunction
function AI_CheckRun takes integer PlayerId returns integer
      local integer i = 0
      local real dist = 1000000
      local real xc = GetUnitX(AI_Hero[PlayerId])
      local real yc = GetUnitY(AI_Hero[PlayerId])   
      loop
      set i = i + 1
      exitwhen i > MaxIndex
          if SquareRoot(( ( x[i] - xc )*( x[i] - xc ) + ( y[i] - yc )*( y[i] - yc ))) < dist then
              set dist = SquareRoot(( ( x[i] - xc )*( x[i] - xc ) + ( y[i] - yc )*( y[i] - yc )))
              set MinIndex = i
          endif
      endloop
      return MinIndex
endfunction




Сообщение отредактировал Q1wAse - Суббота, 09 Августа 2014, 10:05:14
 

samolet99Дата: Суббота, 09 Августа 2014, 21:11:30 | Сообщение # 9
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
а через триггеры?
 

Q1wAseДата: Суббота, 09 Августа 2014, 21:36:54 | Сообщение # 10
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата samolet99 ()
а через триггеры?

Ну это и есть через триггеры, только не GUI вариант.


 

samolet99Дата: Суббота, 09 Августа 2014, 22:25:53 | Сообщение # 11
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
ну вот а мне нужен GUI вариант.
 

totti20Дата: Суббота, 09 Августа 2014, 22:42:31 | Сообщение # 12
5 уровень
Группа: Проверенные
Сообщений: 138
Награды: 0
Репутация: 0
Блокировки:
Цитата samolet99 ()
Допустим есть три стороны. Герой пошёл по 1 стороне. Жизни стало 200 или меньше, и он бежит к ближней области.

ну все же просто емае,
событие, вход в область
условие, кто входит или то что тебе нужно
действие, установить хп 200 и меньше, конечно если у героя не меньше,
не знаю что ты имеешь в виду " и он бежит к ближней области" но также в действии отдаешь приказ о передвижении куда тебе надо.
 

samolet99Дата: Суббота, 09 Августа 2014, 22:50:48 | Сообщение # 13
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
закрывайте тему.
 

Q1wAseДата: Воскресенье, 10 Августа 2014, 09:02:08 | Сообщение # 14
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата totti20 ()
ну все же просто емае,
событие, вход в область
условие, кто входит или то что тебе нужно
действие, установить хп 200 и меньше, конечно если у героя не меньше,
не знаю что ты имеешь в виду " и он бежит к ближней области" но также в действии отдаешь приказ о передвижении куда тебе надо.

Это что ????????????
Он имеет ввиду про Искусственный Интеллект, если у героя здоровье меньше чем 200 хп(как он писал пример), то бежать к ближней области.


 

samolet99Дата: Воскресенье, 10 Августа 2014, 22:36:21 | Сообщение # 15
2 уровень
Группа: Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Блокировки:
Q1wAse, верно:))
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz