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


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

С вопросами, в том числе касающимися моддинга, пишите мне в личные сообщения. Они должны дойти до меня, даже если я не часто захожу на сам сайт.
А вообще можете связаться со мной через VK: https://vk.com/dizzybat
Там я, возможно, отвечу чуть быстрее.
 
ximximikДата: Суббота, 01.01.2011, 15:20 | Сообщение # 3
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Спасибо, но я обошелся и без цикла.

Мой YouTube канал.


Сообщение отредактировал ximximik - Суббота, 01.01.2011, 15:38
 
RaseriДата: Суббота, 01.01.2011, 15:52 | Сообщение # 4
Темный Клинок
Группа: Добрый Модератор
Сообщений: 779
Награды: 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
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Dantalion13, Ууу, как сложно. Не, у меня проще получилось.

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


Мой YouTube канал.
 
RaseriДата: Суббота, 01.01.2011, 16:19 | Сообщение # 6
Темный Клинок
Группа: Добрый Модератор
Сообщений: 779
Награды: 23  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Так напиши свой вариант =)
Другим людям это полезно будет =)
Да и мне интересно ^^
 
ximximikДата: Суббота, 01.01.2011, 16:27 | Сообщение # 7
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 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
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [puksus]

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

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

Кампания ронинов Escape - v.1.2.3 {B32} [berddor]

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

Smarter AI Mod v1 [TerrariMan]

Black Ravens v.0.8.8 {B27} [compot]

Выход 27 Билда [compot]

Мой очередной последний недоМод [IceMan]

ВНИМАНИЕ! Всем, кто первый раз на форуме, читать! [CryoliteMan]

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

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

[3]>Фан-арт по Cortex Command [386]

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

[5]>Black Ravens v.0.8.8 {B27} [289]

[6]>Выход 24 билда. [281]

[7]>[UNITED TERRAN FORCES] [274]

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

[9]>Улучшения форума [270]

[10]>Russian Combat Small Arms {B24-B27} [264]

zdrach228 [07.02.2021|14:56]

ivan1592002 [28.01.2021|21:03]

mekkievbk [23.01.2021|19:41]

mekkievmg20 [23.01.2021|19:35]

artemdelmakov30 [12.01.2021|08:58]

stive006 [05.01.2021|18:22]

goja_Mir [25.11.2020|13:06]

fogartart [17.11.2020|21:13]

alexpyslar03 [17.11.2020|10:33]

gort133 [17.10.2020|22:08]


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