Приветствую Вас Гость | RSSГлавная | Вопрос связанный с Lua - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Cortex Command » Вопросы по моддингу » Вопрос связанный с Lua (Нужен луч для определения пересечения с землей (!))
Вопрос связанный с Lua
ximximikДата: Суббота, 01.01.2011, 14:20 | Сообщение # 1
Добрый модератор
Группа: Проверенные
Сообщений: 449
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Итак, имеем задачу. Известны координаты некой точки. Точка находится над землей, у самого верха карты. Как только луч из этой точки, опущенный перпендикулярно земле, пересекает её, нужно записать в переменную координаты точки пересечения.
Делается вроде как с Cast***Ray. Но я не знаю каким именно. Или MovePointToGround. Прошу помочь.


Мой YouTube канал.
 
Mad_AlexДата: Суббота, 01.01.2011, 15:06 | Сообщение # 2
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Цикл for с функцией CastObstacleRay в теле цикла.

Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
ximximikДата: Суббота, 01.01.2011, 15:20 | Сообщение # 3
Добрый модератор
Группа: Проверенные
Сообщений: 449
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Спасибо, но я обошелся и без цикла.

Мой YouTube канал.


Сообщение отредактировал ximximik - Суббота, 01.01.2011, 15:38
 
RaseriДата: Суббота, 01.01.2011, 15:52 | Сообщение # 4
Темный Клинок
Группа: Добрый Модератор
Сообщений: 756
Награды: 23  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Так написал бы, как задачу решил =\
В общем, вот:
Code
local vectortoactor = actor.Pos - enemypos; -- тут понятно, в общем, вектор до вражеского актора
if vectortoactor.Magnitude < 1500 then -- если расстояние до него меньше этого
   local startpos = enemypos + Vector(vectortoactor.X / vectortoactor.Magnitude * 15 , vectortoactor.Y / vectortoactor.Magnitude * 15); -- хитрый матан
   local k = SceneMan:CastMORay(startpos , vectortoactor , 0 , 0 , false , 4); -- собственно, нужная функция
   local thingie = MovableMan:GetMOFromID(k); -- с имеющегося ИД-шника имеем объект
   if thingie ~= nil then -- если объект вообще существует
    local l = MovableMan:GetMOFromID(thingie.RootID); -- ищем, чему принадлежит этот объект
    if l.PresetName == 'Dummy' then -- в данном случае, если дамми, то тогда
     <чето-там вобщем делаем>
    end
   end
end

Это так, в более общем виде.

 
ximximikДата: Суббота, 01.01.2011, 15:58 | Сообщение # 5
Добрый модератор
Группа: Проверенные
Сообщений: 449
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dantalion13, Ууу, как сложно. Не, у меня проще получилось.

Добавлено (01.01.2011, 15:58)
---------------------------------------------
Можно сказать, что я неточно выразился. Мне надо было узнать, если препятствия над актором сверху (земля, корабли). Для этого мне и нужна была точка пересечения с землей. Но я проще сделал. Но тоже используя CastObstacleRay .


Мой YouTube канал.
 
RaseriДата: Суббота, 01.01.2011, 16:19 | Сообщение # 6
Темный Клинок
Группа: Добрый Модератор
Сообщений: 756
Награды: 23  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Так напиши свой вариант =)
Другим людям это полезно будет =)
Да и мне интересно ^^
 
ximximikДата: Суббота, 01.01.2011, 16:27 | Сообщение # 7
Добрый модератор
Группа: Проверенные
Сообщений: 449
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Code

   self.bx = actor.Pos.X;
   self.by = actor.Pos.Y;
   self.xy = SceneMan:CastObstacleRay(Vector(self.bx, 0), Vector(0, self.by), self.vector1, self.vector2, actor.ID, 0, 1);

В итоге этого кода, если над объектом ничего нет, то self.vector2 укажет почти на него (несколько сотых неточности). Если есть, то self.vector2.Y будет меньше self.by.


Мой YouTube канал.


Сообщение отредактировал ximximik - Суббота, 01.01.2011, 16:28
 
Форум » Cortex Command » Вопросы по моддингу » Вопрос связанный с Lua (Нужен луч для определения пересечения с землей (!))
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [yksys147keti3626]

АнтиБК/Бойцовский клуб/Сombats [greendayone82]

The Sims 3 [greendayone82]

ЯДЕРНЫЙ ТРОН!!! [greendayone82]

Очень интересная игра [greendayone82]

Проблема с Loadouts [mekkievbk]

Русификатор Cortex Command Build 32 [puksus]

CC теперь в Open Source и B33 с мультиплеером !!! [gjrfytn]

игра обломи предыдущего [puksus]

Smarter AI Mod v1 [TerrariMan]

[1]>Флудильня! [4729]

[2]>Свалка арта. [843]

[3]>игра обломи предыдущего [360]

[4]>Фан-арт по Cortex Command [349]

[5]>Песенки или музыка. [268]

[6]>Russian Combat Small Arms {B24-B27} [246]

[7]>[UNITED TERRAN FORCES] [240]

[8]>Elzirs [229]

[9]>Выход 24 билда. [214]

[10]>Cortex Command - Online Deathmatch [208]

BlackShadow7755 [11.04.2024|22:28]

ghost4559 [28.03.2024|12:29]

rostislavpoarkov55 [21.03.2024|10:44]

dawidponomaryow [08.03.2024|21:16]

nekoplay18 [31.01.2024|20:10]

Provv [19.10.2023|20:58]

ranatolevnko200 [01.10.2023|17:56]

Silencer18 [24.07.2023|21:52]

yksys147keti3626 [30.01.2023|23:11]

islambabaev1100 [22.12.2022|01:14]


Вверх
Русский Фан Сайт Cortex Command © 2024.