Вопросы по Lua
|
|
zoidberg | Дата: Четверг, 20.01.2011, 19:19 | Сообщение # 1 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| №1 Вот скрипт: Code if self.timer:IsPastSimMS(200) then -- проверка времени if бла-бла then -- проверка условия self.ToDelete = true --удалялка end end Работает так: после 200 мс запускается проверка условия, если оно выполнено, удаляет "self", если нет, то продолжает выполнять проверку, пока условие не выполнится. Как заставить его проводить проверку только 1 раз? №2 Кто-то может мне рассказать про Ray-Casting (кроме Obstacle, уже разобрался)?
|
|
| |
Solis | Дата: Четверг, 20.01.2011, 21:02 | Сообщение # 2 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 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 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| Спасибо, что юзал поиск вместо меня) Только где? На единственной рабочей вики этого нет, да и дату я облазил. По первому вопросу: "флаг" для меня был последним вариантом, т. к. скрипт массовый и доп. переменные возможно будут тормозом. Еще раз спасибо.
|
|
| |
Solis | Дата: Пятница, 21.01.2011, 16:42 | Сообщение # 4 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| Оффлайновую копию вики с этой информацией взял с datarealms.com а точнее здесь. В архиве смотри раздел SceneManager. И ещё по поводу первого вопроса. Если производительность действительно сильно пострадает из за лишней проверки то следует подготовить две версиии скрипта - с проверкой и без. И как только проверка становится не нужна подменяем оригинальный объект на точно такой же но со скриптом без проверки (с сохранением всех параметров естественно). Проблему это решит, но создаст целых две новых, а именно: 1. Сам процесс замены реализовать значительно сложнее чем тот же флаг. 2. Возникнет разовая пиковая нагрузка при замене объектов, тут уж тебе решать в каких условиях это будет применяться (будет ли происходить замена одновременно для многих объектов что не приемлимо или всё будет равномерно и следовательно терпимо).
Сообщение отредактировал Solis - Пятница, 21.01.2011, 16:50 |
|
| |
zoidberg | Дата: Пятница, 21.01.2011, 17:15 | Сообщение # 5 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: 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 ноги, турель, сама пушка?) и все Если - ругается на EnableEmission, мол, a nil value.
|
|
| |
Solis | Дата: Пятница, 21.01.2011, 19:04 | Сообщение # 6 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| К сожалению так включить эмиттер не получится. Подобный скрипт сработает только если этот эмиттер будет отдельным объектом. :мечтательно: Ах если бы мы могли запускать скрипты на аттачментах... но раз 24 билд нам этой долгожданной возможности не принёс то добро пожаловать в суровую реальность костылей и обходных путей. На сколько я понял ты хочешь сделать лазерный прицел или нечто подобное. По сути проблема аналогична созданию оружия с несколькими режимами стрельбы (к слову на данный момент наиболее популярным является способ, реализованный замечательным моддером CaveCricket48, хотя справедливости ради стоит сказать что до него были и другие реализации). Общее решение сводится к тому, что мы создаём несколько отдельных сущностей, управляемых из одного источника. К примеру: твой эмиттер будет работать постоянно, но испускать он будет частицы с нулевой яркостью. Эти частицы будут содержать скрипт, согласно которому они будут находить испустивший их эмиттер и следить за управляющим им контроллером. По сигналу контроллера (скажем нажатию кнопки) частицы увеличат яркость и "луч" прицела станет виден. Менее ресурсоёмкий (не создающий ежесекундно множество частиц со скриптами) вариант: краб создаёт эмиттер как отдельную сущность, эмиттер следит за контроллером и своим внутренним скриптом соответственно регулирует своё состояние. Основная проблема тут - это позиционирование эмиттера при движении (особенно быстром, и при вращении), но это вполне решаемо. Готовую реализацию подобного прицела можно посмотреть ну хотя бы в этом моде.
Сообщение отредактировал Solis - Пятница, 21.01.2011, 19:13 |
|
| |
zoidberg | Дата: Пятница, 21.01.2011, 22:25 | Сообщение # 7 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| Дело в том, что этот скрипт должен работать, он находит аттачменты, любые аттачменты. А емиттер - нет. Емиттер испускает видимые частицы, МОПиксели, и чтоб сделать их невидимыми надо... хмм... LifeTime = 1? Приклеить еще один емиттер - контролер, проверяющий нужные условия и удаляющий пиксели. Опять нагрузка. Лучше сделаю емиттер отдельно, пусть крутится вместе с крабом и включается когда надо. Кстати это все для мод-контеста, включу тебя в список благодарностей
|
|
| |
Solis | Дата: Пятница, 21.01.2011, 22:51 | Сообщение # 8 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 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 или выше и мы получаем яркое свечение. Удачи с проектом!
Сообщение отредактировал Solis - Пятница, 21.01.2011, 22:59 |
|
| |
zoidberg | Дата: Суббота, 22.01.2011, 18:34 | Сообщение # 9 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| Я бы никогда не догадался использовать Age так. Но всё-равно не в этом случае
|
|
| |
Solis | Дата: Четверг, 27.01.2011, 08:25 | Сообщение # 10 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 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 |
Краб
Группа: Проверенные
Сообщений: 1
Награды: 0 +
Статус: Offline
| Можно ли как то сделать что бы краб-туррель смотрел только в одну сторону? Например, только налево и не могло поворачиваться направо.
|
|
| |
ximximik | Дата: Четверг, 27.01.2011, 13:08 | Сообщение # 12 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| Gollor, это надо будет зафиксировать в луа через Вместо нуля можно поставить один. И тогда он будет всё время смотреть в противоположную сторону.
Сообщение отредактировал ximximik - Четверг, 27.01.2011, 13:08 |
|
| |
Solis | Дата: Четверг, 27.01.2011, 14:06 | Сообщение # 13 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 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 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| да, любой скрипт ограничения угла работает некорректно я использовал 2: 1) ограничение наклона пушки. результат - пушка крутится в нужном интервале но стреляет под углом обзора 2) ограничение угла обзора. результат - обзор ограничен, пушка крутится и стреляет 1+2 = обзор и пушка ограничены, а стреляю куда угодно. так-то
|
|
| |
ximximik | Дата: Четверг, 27.01.2011, 17:40 | Сообщение # 15 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| Quote (zoidberg) где нашел AIM_UP/DOWN? Они есть в LuaDocs. Ты не знал? Вот, посмотри здесь.
|
|
| |
zoidberg | Дата: Четверг, 27.01.2011, 17:51 | Сообщение # 16 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| не читал не переведенные статьи. в офф-вики нету какой же я невнимательный хмм... SECONDARY_ACTION, что это? а FACEBUTTON O_o
Сообщение отредактировал zoidberg - Четверг, 27.01.2011, 17:54 |
|
| |
ximximik | Дата: Четверг, 27.01.2011, 17:54 | Сообщение # 17 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| На заметку: для тех кто не знает, та вики что по ссылке - не официальная, а лично мною развернутая. Пока она кривая, потом будет более нормальная, когда закончу с остальным. И вот что. Там побольше функций будет в списке функций, чем в офф вики.
|
|
| |
zoidberg | Дата: Четверг, 27.01.2011, 18:00 | Сообщение # 18 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| офф - оффлайн или официальная? я про оффлайн Quote Там побольше функций будет будет или побольше будет [есть]?
|
|
| |
ximximik | Дата: Четверг, 27.01.2011, 18:02 | Сообщение # 19 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| Офф - официальная. А насчет функций - уже есть. Добавлял собственноручно те, которые мне встречались при работе и при этом отсутствовали в вики Даты.
|
|
| |
Solis | Дата: Четверг, 27.01.2011, 18:25 | Сообщение # 20 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 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 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| если я использую физические формулы, то мне надо умножать расстояние на PPM и время на DeltaTime (как-то так), правильно? зачем в других модах время еще и на 3 умножают?
|
|
| |
Solis | Дата: Суббота, 29.01.2011, 18:56 | Сообщение # 22 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| Quote (zoidberg) если я использую физические формулы, то мне надо умножать расстояние на PPM и время на DeltaTime (как-то так), правильно? зачем в других модах время еще и на 3 умножают? Если точнее то на TimerMan.DeltaTimeSecs (т.е. секунд на обновление кадра), а так да - правильно. Соответственно если к примеру нам нужно получить скорость в пикселях на обновление кадра то Vel объекта (в м/с) умножаем на FrameMan.PPM * TimerMan.DeltaTimeSecs. На счёт умножения точно сказать не могу - зависит от конкретного мода, но это имеет смысл если нам нужно рассчитать перемещение не на один кадр а на те самые 3 что позволит снизить ресурсоёмкость но снижает точность результата (так как не учитывает возможные изменения такие как воздействие гравитации в двух пропущенных кадрах).
|
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 19:00 | Сообщение # 23 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| я походу ИИ не успею до 1-го доделать... у меня ваще паника блин! объект массой 0.01кг и globalaccscalar = 1 летит также как и 2кг с globalaccscalar = 1 меня это устраивало, в этом и была вся задумка, пока не понадобилось найти реальную силу притяжения, действующую, по крайней мере на 2кг объект.
|
|
| |
Solis | Дата: Воскресенье, 30.01.2011, 19:07 | Сообщение # 24 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| Quote (zoidberg) объект массой 0.01кг и globalaccscalar = 1 летит также как и 2кг с globalaccscalar = 1 Эээ.. ну собственно так и должно быть В CC же сопротивления воздуха (если оно специально не определено) нет. Quote Свободное падение тел впервые исследовал Галилей, который установил, что свободно падающие тела движутся равноускоренно с одинаковым для всех тел ускорением. Это наглядно видно из следующего опыта. Поместим в длинную стеклянную трубку (один конец которой запаян, а в другом находится кран для изолирования объема трубки после откачки воздуха) три разных по массе предмета, например дробинку, пробку и птичье перышко. Если быстро перевернуть трубку, то на ее дно сначала упадет дробинка, потом пробка, а затем перышко. Происходит это потому, что в трубке есть воздух, создающий разное сопротивление движению этих тел. Если воздух из трубки откачать, то все три тела падают одновременно. Следовательно, в вакууме все тела независимо от их масс падают с одинаковым ускорением.
Сообщение отредактировал Solis - Воскресенье, 30.01.2011, 19:08 |
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 19:24 | Сообщение # 25 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| ок, забыл про Галилея, паника проходит... так, получается что g = sceneman:getglobalacc при globalaccscalar = 1?
|
|
| |
Solis | Дата: Воскресенье, 30.01.2011, 19:33 | Сообщение # 26 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| Именно так.
|
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 19:43 | Сообщение # 27 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| хмм... пожалей мой бедный мозг, скажи, tan-1(a) = atan(a)?
|
|
| |
Solis | Дата: Воскресенье, 30.01.2011, 19:51 | Сообщение # 28 |
Краб
Группа: Проверенные
Сообщений: 42
Награды: 6 +
Статус: Offline
| Тригонометрия конечно не мой конёк но на сколько я помню - да, равны.
Сообщение отредактировал Solis - Воскресенье, 30.01.2011, 19:51 |
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 19:53 | Сообщение # 29 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| угу, спасибо
|
|
| |
Raseri | Дата: Воскресенье, 30.01.2011, 20:09 | Сообщение # 30 |
Краб
Группа: Добрый Модератор
Сообщений: 208
Награды: 18 +
Статус: Offline
| Если что, то время приема работ можно будет немножко продлить, кстати =)
|
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 20:18 | Сообщение # 31 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| думаю я успею, уже почти готово, осталось разобраться с PPM и DeltaTimeSecs... вот чем детей пугать script SceneMan:GetGlobalAcc() не работает без скобок тоже что не так?
Сообщение отредактировал zoidberg - Воскресенье, 30.01.2011, 21:34 |
|
| |
ximximik | Дата: Воскресенье, 30.01.2011, 21:24 | Сообщение # 32 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| А разве не надо ставить точку с запятой после каждой функции? Добавлено (30.01.2011, 21:22) --------------------------------------------- Вот так. http://pastebin.com/C6Yszye2 И вроде бы надо ставить скобки у всех функций без значений. Вот со скобками. http://pastebin.com/R7qsnEHN Добавлено (30.01.2011, 21:24) --------------------------------------------- Но может быть и не в этом дело.
Сообщение отредактировал ximximik - Воскресенье, 30.01.2011, 21:23 |
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 21:31 | Сообщение # 33 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| ; не надо ты скобки возле isreloading пропустил, а я все расставил, только в пастебин не сохранил проблема в getglobalacc attempt to call method GetGlobalAcc (a nil value) вот так
Сообщение отредактировал zoidberg - Воскресенье, 30.01.2011, 21:32 |
|
| |
ximximik | Дата: Воскресенье, 30.01.2011, 21:36 | Сообщение # 34 |
Краб
Группа: Проверенные
Сообщений: 247
Награды: 27 +
Статус: Offline
| Используй SceneMan.GlobalAcc
|
|
| |
zoidberg | Дата: Воскресенье, 30.01.2011, 21:41 | Сообщение # 35 |
Краб
Группа: Проверенные
Сообщений: 148
Награды: 1 +
Статус: Offline
| да, это работает м-да, опять что-то не так Code ERROR: no overload of 'Vector:__add' matched the arguments (Vector, number) candidates are: Vector:__add(lua_State*, const Vector&, const Vector&) это значит я прибавляю число к вектору? походу SceneMan.GlobalAcc - вектор? да, так и есть.
Сообщение отредактировал zoidberg - Понедельник, 31.01.2011, 14:37 |
|
| |
Статистика Форума |
Последние темы |
Читаемые темы |
Последние зарегистрированные пользователи |
|
|
|
|