Таймер с периодом(рассотояние от юнита)
|
|
lawson | Дата: Понедельник, 07 Марта 2011, 22:18:50 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| НЕ могу уже мозги вскипели. Объясните мне подробней как узнать расстояние от юнита до юнита и перевести это в секунды? У меня есть функция - это аля DistanceBetweenPoints()вот что там и где надо вписывать чтоб узнать расстояние в секундах Code call TimerStart(t, Metr(lu, la) * 0.01, false, function AttackTo) Это мой таймер Code function Metr takes location locA, location locB returns real local real dx = GetLocationX(locB) - GetLocationX(locA) local real dy = GetLocationY(locB) - GetLocationY(locA) return SquareRoot(dx * dx + dy * dy) endfunction Это для рассчета длины. В общем я примерно понял как делать но ни чего не работает.Добавлено (07-03-2011, 22:17) --------------------------------------------- Я пытался сделать я координатами x и y сделал для этого функцию но всеравоно не могу понять почему не работает. Добавлено (07-03-2011, 22:18) --------------------------------------------- Мне нужно узнать расстояние до здания(которое стоит неподвижно) от юнита которое к ниму движеться.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 07 Марта 2011, 22:21:39 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (lawson) Мне нужно узнать расстояние до здания(которое стоит неподвижно) от юнита которое к ниму движеться. Юнит движеться триггерно?
|
|
|
|
lawson | Дата: Понедельник, 07 Марта 2011, 22:28:14 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| ПРикол в чем. Когда здание атакуют бот должен к ниму двигаться сделал для этого call IssueTargetOrder(udg_bot[l], "move", GetTriggerUnit()) это все фигня(все работает) ПОтом мне надо когда юнит прибегает должен истеч таймер который я запускал - который с периодом(расстояние от юнитов) и начаться действие. Так вот я не понимаю как расстояние перевести в секунды.Добавлено (07-03-2011, 22:26) --------------------------------------------- Вот посмотри как я хочу сделать. http://rghost.ru/4671341 Добавлено (07-03-2011, 22:28) --------------------------------------------- Кароче логики здесь ни какой нет мне просто надо знать что здесь ставить Code function Metr takes location locA, location locB returns real local real dx = GetLocationX(locB) - GetLocationX(locA) local real dy = GetLocationY(locB) - GetLocationY(locA) return SquareRoot(dx * dx + dy * dy) endfunction И как перевести то что здесь получилось в секунды.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 07 Марта 2011, 22:24:34 |
|
|
|
rixt7956 | Дата: Понедельник, 07 Марта 2011, 22:51:50 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Code function Metr takes real x1,real y1, real x2, real y2,unit u returns real local real dx=x1-x2 local real dy=y1-y2 return SquareRoot(dx * dx + dy * dy)/GetUnitSpeed(u) endfunction Но только если юнит будет двигаться по прямой.Добавлено (07-03-2011, 22:51) --------------------------------------------- lawson, А вообще, тебе надо каким то раком, вычислить дорогу юнита до цели, обходя все препятствия, и это делать надо в цикле через полярки, со смещением на n, и потом суму правильно подобранных полярок сложить и разделить на скорость юнита, вообщем ты этого не зделаешь, да и хз сделаю или нет.
|
|
|
|
lawson | Дата: Понедельник, 07 Марта 2011, 22:54:26 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (rixt7956) Но только если юнит будет двигаться по прямой. Да и еще надо учитывать его скорость перемещения. Все извините за шумиху все сделал. Добавлено (07-03-2011, 22:54) --------------------------------------------- Кароче я наполовину сделал. Они движуться и когда таймер истекает действия делаються. Но обычно это происходит на половине пути. Пхх попробую сделать завтра.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 07 Марта 2011, 22:54:41 | Сообщение # 6 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (lawson) Да и еще надо учитывать его скорость перемещения. Quote (rixt7956) /GetUnitSpeed(u) А это по твоему что Quote (lawson) все сделал. И как?
|
|
|
|
lawson | Дата: Понедельник, 07 Марта 2011, 22:58:24 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (rixt7956) А это по твоему что Да это я знаю. Сказал же что на половину. Таймер работает но он рассчитывает время из расстояние только напрямую. Вот в чем проблема.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 07 Марта 2011, 23:05:50 | Сообщение # 8 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (lawson) Таймер работает но он рассчитывает время из расстояние только напрямую. Вот в чем проблема. М.б завтра сделаю наработку на определение пути.
|
|
|
|
lawson | Дата: Понедельник, 07 Марта 2011, 23:07:22 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Эта система работает хорошо с летающими юнитами. Эхх Добавлено (07-03-2011, 23:07) ---------------------------------------------
Quote (rixt7956) наработку на определение пути. Очень полезная будет вещь для всех.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 07 Марта 2011, 23:08:51 | Сообщение # 10 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (lawson) Очень полезная будет вещь для всех. Ну как бы она будет не определять путь, а только время, но всё же.
|
|
|
|