Приветствую Вас Гость | RSSГлавная | Вопросы по Lua - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Cortex Command » Вопросы по моддингу » Вопросы по Lua ((!))
Вопросы по Lua
zoidbergДата: Четверг, 20.01.2011, 19:19 | Сообщение # 1
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
№1 Вот скрипт:
Code

  if self.timer:IsPastSimMS(200) then -- проверка времени
   if бла-бла then -- проверка условия
    self.ToDelete = true --удалялка
   end
  end

Работает так: после 200 мс запускается проверка условия, если оно выполнено, удаляет "self", если нет, то продолжает выполнять проверку, пока условие не выполнится.
Как заставить его проводить проверку только 1 раз?

№2 Кто-то может мне рассказать про Ray-Casting (кроме Obstacle, уже разобрался)?


hey, i've just killed someone with the rock!
 
SolisДата: Четверг, 20.01.2011, 21:02 | Сообщение # 2
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
По первому вопросу (еслия я его правильно понял) могу только предложить ввести дополнительную переменную - флаг, которая бы служила индикатором того, стоит ли вести проверку. К сожалению проверка флага в каждом цикле всё равно будет.
Если проверка условия которое должно проверяться один раз ресурсоёмка, то стоит заключить её в ещё один условный оператор с проверкой флага. Примерно так:

Quote
if self.timer:IsPastSimMS(200) then -- проверка времени
if flag==0 then;
if бла-бла then -- проверка условия
self.ToDelete = true; --удалялка
flag=1;
end;
end
end

По поводу Ray-casting могу предложить следующее. Думаю достаточно подробно:

CastStrengthSumRay

Прослеживает и суммирует прочность пикселей вдоль вектора. Берёт в расчёт закольцованность экрана.

Аргументы:

* Начальная позиция.
* Конечная позиция.
* Сколько пикселей подряд пропускать по пути (для оптимизации). 0 = проверять каждый пиксель.
* ID материала который следует игнорировать, В ДОПОЛНЕНИЕ к Air.

Возвращает:

Сумму прочности всех встреченных пикселей. Если не встречено ничего кроме воздуха то возвращает 0.

CastStrengthRay

Ищет вдоль вектора пиксель с прочностью большей или равной указанной.

Аргументы:

* Начальная позиция.
* Проверяемый вектор.
* Значение прочности искомого пикселя.
* Ссылка на вектор в который будет передана позиция найденного пикселя.
* Сколько пикселей подряд пропускать по пути (для оптимизации). 0 = проверять каждый пиксель.
* ID материала который следует игнорировать, В ДОПОЛНЕНИЕ к Air.
* Учитывать ли закольцованность экрана.

Возвращает:

Сообщает удался ли поиск. Если нет, то в четвёртый аргумент будет передана последняя точка луча.

CastWeaknessRay

Ищет вдоль вектора пиксель с прочностью меньшей или равной указанной.

Аргументы:

* Начальная позиция.
* Проверяемый вектор.
* Значение прочности искомого пикселя.
* Ссылка на вектор в который будет передана позиция найденного пикселя.
* Сколько пикселей подряд пропускать по пути (для оптимизации). 0 = проверять каждый пиксель.
* ID материала который следует игнорировать, В ДОПОЛНЕНИЕ к Air.
* Учитывать ли закольцованность экрана.

Возвращает:

Сообщает удался ли поиск. Если нет, то в четвёртый аргумент будет передана последняя точка луча.

CastMORay

Ведёт поиск вдоль вектора и возвращает ID первого встретившегося MO (если этот ID не указан как игнорируемый). Если при поиске будет встречен пиксель карты (не воздух) то будет возвращено значение g_NoMOID.

Аргументы:

* Начальная позиция.
* Проверяемый вектор.
* Игнорируемый MOID. Все дочерние MO данного объекта так же будут проигнорированы.
* ID материала столкновения с которым следует игнорировать.
* Игнорировать ли все столкновения с материалом карты.
* Сколько пикселей подряд пропускать по пути (для оптимизации). 0 = проверять каждый пиксель.

Возвращает:

MOID встреченного не игнорируемого объекта, или g_NoMOID при попадании в материал карты.

CastFindMORay

Ведёт поиск указанного MOID вдоль вектора.

Аргументы:

* Начальная позиция.
* Проверяемый вектор.
* Искомый MOID. Так же сработает и при столкновении с дочерними элементами искомого объекта.
* Ссылка на вектор в который будет передана позиция пикселя, принадлежащего найденному MOID.
* ID материала столкновения с которым следует игнорировать.
* Игнорировать ли все столкновения с материалом карты.
* Сколько пикселей подряд пропускать по пути (для оптимизации). 0 = проверять каждый пиксель.

Возвращает:

Сообщает удался ли поиск.

 
zoidbergДата: Пятница, 21.01.2011, 16:14 | Сообщение # 3
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Спасибо, что юзал поиск вместо меня) Только где? На единственной рабочей вики этого нет, да и дату я облазил.
По первому вопросу: "флаг" для меня был последним вариантом, т. к. скрипт массовый и доп. переменные возможно будут тормозом.
Еще раз спасибо.


hey, i've just killed someone with the rock!
 
SolisДата: Пятница, 21.01.2011, 16:42 | Сообщение # 4
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Оффлайновую копию вики с этой информацией взял с datarealms.com а точнее здесь. В архиве смотри раздел SceneManager.

И ещё по поводу первого вопроса. Если производительность действительно сильно пострадает из за лишней проверки то следует подготовить две версиии скрипта - с проверкой и без. И как только проверка становится не нужна подменяем оригинальный объект на точно такой же но со скриптом без проверки (с сохранением всех параметров естественно).

Проблему это решит, но создаст целых две новых, а именно:
1. Сам процесс замены реализовать значительно сложнее чем тот же флаг.
2. Возникнет разовая пиковая нагрузка при замене объектов, тут уж тебе решать в каких условиях это будет применяться (будет ли происходить замена одновременно для многих объектов что не приемлимо или всё будет равномерно и следовательно терпимо).

Сообщение отредактировал Solis - Пятница, 21.01.2011, 16:50
 
zoidbergДата: Пятница, 21.01.2011, 17:15 | Сообщение # 5
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Нет, там не одновременно, но часто. Да и не надо уже, работает, не виснет.

Quote
Оффлайновая копия вики с этой информацией

Ура, нашел себе новую книжку наночь почитать)

№3 Есть ACrab. У ACrab'а есть пушка, на ней емиттер (выключенный). Никак не могу его включить.
(HitsMOs и GetsHitByMOs равны 1)

Code

function Create(self)
  for i = 1, MovableMan:GetMOIDCount()-1 do
   if MovableMan:GetMOFromID(i).RootID == self.ID and i ~= self.ID then
    print("found smth")
    self.att = MovableMan:GetMOFromID(i)
    if self.att.PresetName == "aimitter" then
     self.att = ToAttachable(self.att)
     print(self.att.PresetName)
     print(self.att.ClassName)
    end
   end
  end
end
function Update(self)
  if  бла-бла then
   self.att:EnableEmission(true)
  end
end

Выдает "found smth" в консоль 6 раз (4 ноги, турель, сама пушка?) и все
Если
Quote
бла-бла
- ругается на EnableEmission, мол, a nil value.


hey, i've just killed someone with the rock!
 
SolisДата: Пятница, 21.01.2011, 19:04 | Сообщение # 6
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
К сожалению так включить эмиттер не получится. Подобный скрипт сработает только если этот эмиттер будет отдельным объектом. :мечтательно: Ах если бы мы могли запускать скрипты на аттачментах... но раз 24 билд нам этой долгожданной возможности не принёс то добро пожаловать в суровую реальность костылей и обходных путей.

На сколько я понял ты хочешь сделать лазерный прицел или нечто подобное.
По сути проблема аналогична созданию оружия с несколькими режимами стрельбы (к слову на данный момент наиболее популярным является способ, реализованный замечательным моддером CaveCricket48, хотя справедливости ради стоит сказать что до него были и другие реализации). Общее решение сводится к тому, что мы создаём несколько отдельных сущностей, управляемых из одного источника.
К примеру: твой эмиттер будет работать постоянно, но испускать он будет частицы с нулевой яркостью. Эти частицы будут содержать скрипт, согласно которому они будут находить испустивший их эмиттер и следить за управляющим им контроллером. По сигналу контроллера (скажем нажатию кнопки) частицы увеличат яркость и "луч" прицела станет виден.
Менее ресурсоёмкий (не создающий ежесекундно множество частиц со скриптами) вариант: краб создаёт эмиттер как отдельную сущность, эмиттер следит за контроллером и своим внутренним скриптом соответственно регулирует своё состояние. Основная проблема тут - это позиционирование эмиттера при движении (особенно быстром, и при вращении), но это вполне решаемо.

Готовую реализацию подобного прицела можно посмотреть ну хотя бы в этом моде.

Сообщение отредактировал Solis - Пятница, 21.01.2011, 19:13
 
zoidbergДата: Пятница, 21.01.2011, 22:25 | Сообщение # 7
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Дело в том, что этот скрипт должен работать, он находит аттачменты, любые аттачменты. А емиттер - нет.
Емиттер испускает видимые частицы, МОПиксели, и чтоб сделать их невидимыми надо... хмм... LifeTime = 1? Приклеить еще один емиттер - контролер, проверяющий нужные условия и удаляющий пиксели. Опять нагрузка.
Лучше сделаю емиттер отдельно, пусть крутится вместе с крабом и включается когда надо.
Кстати это все для мод-контеста, включу тебя в список благодарностей happy


hey, i've just killed someone with the rock!
 
SolisДата: Пятница, 21.01.2011, 22:51 | Сообщение # 8
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
На счёт светимости я имел в виду следующее:
Сам MOPixel невидим, но включает в себя видимое свечение (glow) со следующими (к примеру) параметрами:
Code

ScreenEffect = ContentFile
    FilePath = Путь к файлу свечения
EffectAlwaysShows = 1
EffectStartTime = 500
EffectStopTime = 10000
EffectStartStrength = 1.0
EffectStopStrength = 1.0

До получения сигнала частицы каждый цикл устанавливают свой возраст в 1 (self.Age=1;) и таким образом остаются невидимыми. Получив же сигнал, возраст устанавливается в 500 или выше и мы получаем яркое свечение.

Удачи с проектом! smile

Сообщение отредактировал Solis - Пятница, 21.01.2011, 22:59
 
zoidbergДата: Суббота, 22.01.2011, 18:34 | Сообщение # 9
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Я бы никогда не догадался использовать Age так. Но всё-равно не в этом случае
Quote
видимые частицы


hey, i've just killed someone with the rock!
 
SolisДата: Четверг, 27.01.2011, 08:25 | Сообщение # 10
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote
Линия 1 в Index.ini это DataModule?

Вопрос конечно не по теме, к Lua он отношения не имеет. Но да, в index.ini первой строкой (если конечно эта строка не комментарий выделенный подобным образом: "//") как правило указывается "DataModule" указывающий в числе прочего на начало перечисления других .ini файлов мода.
Я бы порекомендовал ознакомиться с руководствами по .ini здесь, в вики и на официальном форуме.
А дальнейшие вопросы по .ini лучше задавать в подхдящей для этого теме или если такой нет то создать её.

Сообщение отредактировал Solis - Четверг, 27.01.2011, 08:47
 
GollorДата: Четверг, 27.01.2011, 09:01 | Сообщение # 11
Краб
Группа: Проверенные
Сообщений: 3
Награды: 1  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Можно ли как то сделать что бы краб-туррель смотрел только в одну сторону? Например, только налево и не могло поворачиваться направо.
 
ximximikДата: Четверг, 27.01.2011, 13:08 | Сообщение # 12
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Gollor, это надо будет зафиксировать в луа через
Code

self.HFlipped = 0;


Вместо нуля можно поставить один. И тогда он будет всё время смотреть в противоположную сторону.


Мой YouTube канал.


Сообщение отредактировал ximximik - Четверг, 27.01.2011, 13:08
 
SolisДата: Четверг, 27.01.2011, 14:06 | Сообщение # 13
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote (Gollor)
Можно ли как то сделать что бы краб-туррель смотрел только в одну сторону? Например, только налево и не могло поворачиваться направо.

Как я понимаю краб стоит на месте и двигаться не умеет. Тогда, если турель будет управляться исключительно компьютером, то действительно будет достаточно прицепить к крабу скрипт с кодом от ximximik'а или таким:

Code
function Update(self)
   self:GetController():SetState(Controller.MOVE_LEFT, true);
   self:GetController():SetState(Controller.MOVE_RIGHT, false);
end

Но у такой реализации есть минусы:
- пригодна только для турели под управлением ИИ (игрок сможет прицелиться вправо не смотря на HFlipped или MOVE).
- подходит только для стационарного объекта (при варианте с MOVE_LEFT, MOVE_RIGHT).
- под управлением ИИ турель может упорно продолжать пытаться выстрелить в противника справа (для устранения нужна система автоматического прицеливания).

Если же управлять таким крабом будет игрок, то мышью он сможет прицелиться вправо не смотря на действие скрипта (прицел будет постоянно дёргаться). Но при большом желании можно обойти и это ограниение.

Некоторые из возможных вариантов решения (пока в общих чертах, если понадобится разберём подробнее):
1. Принудительная установка угла прицеливания при выходе за указанные рамки. Определяем текущий угол прицеливания через GetAimAngle (учитывая сторону, в которую смотрит краб) и сравниваем его с допустимым значением. При выходе за рамки устанавливаем прицеливание в крайнее-верхнее или крайнее-нижние положение (с помощью SetState(Controller.AIM_UP, true) и SetState(Controller.AIM_DOWN, true) ) в зависимости от того, за какую границу вышло значение.
Пример скрипта для стрельбы только влево:

Code

function Update(self)
     local AimAngle = self:GetAimAngle(true); -- получаем текущий угол прицеливания
     if  not ( (AimAngle>(math.pi / 2)) and (AimAngle<=(math.pi * 1.5)) )  then -- смотрим входит ли угол во II или III четверть плоскости
        if (AimAngle<=(math.pi / 2)) and (AimAngle>=0)  then
           self:SetAimAngle(math.pi / 2); -- устанавливаем угол прицеливание в начало II четверти
           self:GetController():SetState(Controller.AIM_DOWN, true); -- даём команду прицелиться ниже, чем заставляем применить новый угол.   
        elseif AimAngle<0 then
           self:SetAimAngle(-math.pi / 2); -- устанавливаем угол прицеливание в конец III четверти
           self:GetController():SetState(Controller.AIM_UP, true); -- даём команду прицелиться выше, чем заставляем применить новый угол.
        end
     end
     self.Controller:SetState(Controller.MOVE_LEFT, true); -- даём команду постоянно идти влево для сохранения направления
     self.Controller:SetState(Controller.MOVE_RIGHT, false); -- даём команду не идти вправо
     -- если тут вместо команд на движение использовать - HFlipped будет дёргаться прицел, а при использовании MOVE прицел может временно "залипнуть" в одной из крайних позиций.   
end

Минусы данной реализации:
- под управлением ИИ турель может упорно продолжать пытаться выстрелить в противника справа (для устранения нужна система автоматического прицеливания).
- подходит только для стационарного объекта.
- возможно "залипание" прицела

2. Создать оружие, независимое от краба и функционирующее так, как нам захочется (в том числе будет стрелять только в одну сторону даже если краб будет ползти в другую). Минусов тут пожалуй два - относительно сложная реализация и возможная нестабильность работы (просто по причине недочётов во внедрении lua в Cortex Command).

Ни один вариант не идеален. Но если подробнее опишешь что тебе нужно то совместными усилиями мы найдём оптимальный.

Сообщение отредактировал Solis - Четверг, 27.01.2011, 14:11
 
zoidbergДата: Четверг, 27.01.2011, 17:15 | Сообщение # 14
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline

да, любой скрипт ограничения угла работает некорректно
я использовал 2:
1) ограничение наклона пушки. результат - пушка крутится в нужном интервале но стреляет под углом обзора
2) ограничение угла обзора. результат - обзор ограничен, пушка крутится и стреляет
1+2 = обзор и пушка ограничены, а стреляю куда угодно.
так-то


hey, i've just killed someone with the rock!
 
ximximikДата: Четверг, 27.01.2011, 17:40 | Сообщение # 15
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote (zoidberg)
где нашел AIM_UP/DOWN?

Они есть в LuaDocs. Ты не знал? Вот, посмотри здесь.


Мой YouTube канал.
 
zoidbergДата: Четверг, 27.01.2011, 17:51 | Сообщение # 16
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
не читал не переведенные статьи. в офф-вики нету
какой же я невнимательный dry

хмм... SECONDARY_ACTION, что это?
а FACEBUTTON O_o


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Четверг, 27.01.2011, 17:54
 
ximximikДата: Четверг, 27.01.2011, 17:54 | Сообщение # 17
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
На заметку: для тех кто не знает, та вики что по ссылке - не официальная, а лично мною развернутая. Пока она кривая, потом будет более нормальная, когда закончу с остальным. И вот что. Там побольше функций будет в списке функций, чем в офф вики.

Мой YouTube канал.
 
zoidbergДата: Четверг, 27.01.2011, 18:00 | Сообщение # 18
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
офф - оффлайн или официальная? я про оффлайн

Quote
Там побольше функций будет

будет или побольше будет [есть]?


hey, i've just killed someone with the rock!
 
ximximikДата: Четверг, 27.01.2011, 18:02 | Сообщение # 19
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Офф - официальная. А насчет функций - уже есть. Добавлял собственноручно те, которые мне встречались при работе и при этом отсутствовали в вики Даты.

Мой YouTube канал.
 
SolisДата: Четверг, 27.01.2011, 18:25 | Сообщение # 20
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote
не официальная, а лично мною развернутая

За что тебе кстати большое спасибо.

Quote
хмм... SECONDARY_ACTION, что это?
а FACEBUTTON O_o

SECONDARY_ACTION - действие, вызывающее круговое меню.
А PRESS_FACEBUTTON если не ошибаюсь относится к управлению с помощью геймпада и является для него аналогом PRESS_PRIMARY.


Сообщение отредактировал Solis - Четверг, 27.01.2011, 18:28
 
zoidbergДата: Суббота, 29.01.2011, 18:22 | Сообщение # 21
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
если я использую физические формулы, то мне надо умножать расстояние на PPM и время на DeltaTime (как-то так), правильно?
зачем в других модах время еще и на 3 умножают?


hey, i've just killed someone with the rock!
 
SolisДата: Суббота, 29.01.2011, 18:56 | Сообщение # 22
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote (zoidberg)
если я использую физические формулы, то мне надо умножать расстояние на PPM и время на DeltaTime (как-то так), правильно?
зачем в других модах время еще и на 3 умножают?

Если точнее то на TimerMan.DeltaTimeSecs (т.е. секунд на обновление кадра), а так да - правильно. Соответственно если к примеру нам нужно получить скорость в пикселях на обновление кадра то Vel объекта (в м/с) умножаем на FrameMan.PPM * TimerMan.DeltaTimeSecs.
На счёт умножения точно сказать не могу - зависит от конкретного мода, но это имеет смысл если нам нужно рассчитать перемещение не на один кадр а на те самые 3 что позволит снизить ресурсоёмкость но снижает точность результата (так как не учитывает возможные изменения такие как воздействие гравитации в двух пропущенных кадрах).
 
zoidbergДата: Воскресенье, 30.01.2011, 19:00 | Сообщение # 23
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
я походу ИИ не успею до 1-го доделать... у меня ваще паника блин!
объект массой 0.01кг и globalaccscalar = 1 летит также как и 2кг с globalaccscalar = 1
меня это устраивало, в этом и была вся задумка, пока не понадобилось найти реальную силу притяжения, действующую, по крайней мере на 2кг объект.


hey, i've just killed someone with the rock!
 
SolisДата: Воскресенье, 30.01.2011, 19:07 | Сообщение # 24
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote (zoidberg)
объект массой 0.01кг и globalaccscalar = 1 летит также как и 2кг с globalaccscalar = 1

Эээ.. ну собственно так и должно быть smile В CC же сопротивления воздуха (если оно специально не определено) нет.
Quote
Свободное падение тел впервые исследовал Галилей, который установил, что свободно падающие тела движутся равноускоренно с одинаковым для всех тел ускорением. Это наглядно видно из следующего опыта. Поместим в длинную стеклянную трубку (один конец которой запаян, а в другом находится кран для изолирования объема трубки после откачки воздуха) три разных по массе предмета, например дробинку, пробку и птичье перышко. Если быстро перевернуть трубку, то на ее дно сначала упадет дробинка, потом пробка, а затем перышко. Происходит это потому, что в трубке есть воздух, создающий разное сопротивление движению этих тел. Если воздух из трубки откачать, то все три тела падают одновременно. Следовательно, в вакууме все тела независимо от их масс падают с одинаковым ускорением.


Сообщение отредактировал Solis - Воскресенье, 30.01.2011, 19:08
 
zoidbergДата: Воскресенье, 30.01.2011, 19:24 | Сообщение # 25
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
ок, забыл про Галилея, паника проходит...
так, получается что g = sceneman:getglobalacc при globalaccscalar = 1?


hey, i've just killed someone with the rock!
 
SolisДата: Воскресенье, 30.01.2011, 19:33 | Сообщение # 26
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Именно так.
 
zoidbergДата: Воскресенье, 30.01.2011, 19:43 | Сообщение # 27
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
хмм...
пожалей мой бедный мозг, скажи, tan-1(a) = atan(a)?


hey, i've just killed someone with the rock!
 
SolisДата: Воскресенье, 30.01.2011, 19:51 | Сообщение # 28
Краб
Группа: Проверенные
Сообщений: 49
Награды: 6  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Тригонометрия конечно не мой конёк но на сколько я помню - да, равны.

Сообщение отредактировал Solis - Воскресенье, 30.01.2011, 19:51
 
zoidbergДата: Воскресенье, 30.01.2011, 19:53 | Сообщение # 29
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
угу, спасибо

hey, i've just killed someone with the rock!
 
RaseriДата: Воскресенье, 30.01.2011, 20:09 | Сообщение # 30
Темный Клинок
Группа: Добрый Модератор
Сообщений: 779
Награды: 23  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Если что, то время приема работ можно будет немножко продлить, кстати =)
 
zoidbergДата: Воскресенье, 30.01.2011, 20:18 | Сообщение # 31
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
думаю я успею, уже почти готово, осталось разобраться с PPM и DeltaTimeSecs...

вот чем детей пугать
script

SceneMan:GetGlobalAcc() не работает
без скобок тоже
что не так?


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Воскресенье, 30.01.2011, 21:34
 
ximximikДата: Воскресенье, 30.01.2011, 21:24 | Сообщение # 32
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
А разве не надо ставить точку с запятой после каждой функции?

Добавлено (30.01.2011, 21:22)
---------------------------------------------
Вот так.
http://pastebin.com/C6Yszye2
И вроде бы надо ставить скобки у всех функций без значений.
Вот со скобками.
http://pastebin.com/R7qsnEHN

Добавлено (30.01.2011, 21:24)
---------------------------------------------
Но может быть и не в этом дело.


Мой YouTube канал.


Сообщение отредактировал ximximik - Воскресенье, 30.01.2011, 21:23
 
zoidbergДата: Воскресенье, 30.01.2011, 21:31 | Сообщение # 33
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
; не надо
ты скобки возле isreloading пропустил, а я все расставил, только в пастебин не сохранил
проблема в getglobalacc
attempt to call method GetGlobalAcc (a nil value)
вот так


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Воскресенье, 30.01.2011, 21:32
 
ximximikДата: Воскресенье, 30.01.2011, 21:36 | Сообщение # 34
Добрый модератор
Группа: Проверенные
Сообщений: 460
Награды: 29  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Используй SceneMan.GlobalAcc

Мой YouTube канал.
 
zoidbergДата: Воскресенье, 30.01.2011, 21:41 | Сообщение # 35
Манекен
Группа: Проверенные
Сообщений: 256
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Quote
SceneMan.GlobalAcc

да, это работает

м-да, опять что-то не так

Code
ERROR: no overload of  'Vector:__add' matched the arguments (Vector, number)
candidates are:
Vector:__add(lua_State*, const Vector&, const Vector&)

это значит я прибавляю число к вектору?

походу SceneMan.GlobalAcc - вектор?
да, так и есть.


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Понедельник, 31.01.2011, 14:37
 
Форум » 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.