7.9 174 Опубликовано 7 Января 2010 (изменено) Просто наблюдение: Разница между значениями game.time() и game.get_game_time()" - заметил, что при старте новых игр она каждый раз разная, и где-то, после 40млн.милисекунд, при рестарте счётчика, её значение изменяется... как ты высчитываешь разницу?Стартовал новую игру, получал game.time() и game.get_game_time(), переводил game.get_game_time() в мсек, вычитал и смотрел разницу. И какой рестарт счётчика ты имеешь в виду? Тот, что раз в месяц?Разница, была статична до того как, через какое-то игровое время, значение game.time() сбросилось и продолжило счёт с нуля, разница то-же пересчиталась и стала другой. Вот насчёт 40 млн... это я визуально запомнил - это может и не так быть, но срок был, в роде больше месяца, намного. Надо повторить эксперимент, а то вдруг чего не так делал... перепроверю. Но то, что game.time() обнулялась - это точно. Изменено 1 Декабря 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 22 Июля 2010 (изменено) ок, отвлечёмся немного от диалогов =) Ладно... Мне-же этот класс в связи с диалогами и понадобился. А даты-время, этот класс, обслуживает в пределах с 2000.1.1.0.0.0.0 по 2029.12.31.23.59.59.999 И функция sub() вроде криво работает, ещё раз перепроверюсь - отпишусь про неё. А ещё - не нашёл способа вычислять даты прибавляя время, например: дата + дни (часы, ...). Изменено 22 Июля 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 22 Июля 2010 (изменено) Действительно - - можно писать любые числа - они в роде как пересчитываются в правильные (?) ... Но! - вот, например, новогодняя аномалия, "32 декабря" называется: (далее: если "set" ... -> то "get" ...) 2014,12,32,0,0,0,0 -> 2014,12,32,0,0,0,0 2015,1,1,0,0,0,0 -> 2014,12,32,0,0,0,0 2014,12,33,0,0,0,0 -> 2015,1,2,0,0,0,0 Изменено 22 Июля 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 23 Июля 2010 (изменено) Темы про общие вопросы программирования не нашёл - спрошу здесь: Почему у меня получаются такие результаты: 8388608 + 2.555 - 8388608 = 3 ; 0.123456789 * 1000 / 1000 = 0.1234567835927 ? В документации написано, что числа в Луа "с плавающей точкой и двойной точности". Что сделать что-бы так не было? Почему предел 2^23? =========================== ЗЫ: Unnamed Black Wolf-у по самому луа, у меня все в порядке выдает.... Я про Луа в Сталкере имел в виду. Изменено 23 Июля 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 23 Июля 2010 (изменено) для AK74 Понятно, что всё это - округление, только вот - не ожидал я его так быстро. Было-бы 2^25 - я бы может ничего и не заметил. Числа двойной точности с плавающей точкой - это 15 (или 16?) десятичных разрядов, а тут... даже не половина.В принципе - не проблема - пока обошёлся... Изменено 23 Июля 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 23 Июля 2010 (изменено) ... что значит "округление, только вот - не ожидал я его так быстро"? Поясните, плз. Просто, я его (автоматического округления) вообще не ожидал - если-бы была двойная точность, как в стандарте, я бы никогда с этим не столкнулся. Я думал: в XRay-е стандартный формат числа Луа, оказалось - это не так. ЗЫ: Наверное для производительности разрядность порезали. Изменено 24 Июля 2010 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 18 Мая 2011 (изменено) Whisper, посмотри на иерархию диалога творчески - попробуй разделить весь диалог на автономные поддиалоги и организовать активацию нужных в нужные моменты. PS Придётся разобраться в скриптовой активировации диалога. Если у тебя получиться - мы то-же будем так делать :-) Изменено 18 Мая 2011 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 6 Сентября 2011 (изменено) Если-бы у меня спросили о темах постоянно возникающих у меня вопросов - я бы ответил так: x-Ray: программирование на Lua. x-Ray: создание, настройка и управление объектами. x-Ray: создание интерфейсов. [X] Изменено 6 Сентября 2011 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 10 Октября 2011 (изменено) Недавно, изучая нет-пакеты, наткнулся на описание интерфейса "cse_alife_inventory_item", некоторые его параметры вызывают любопытсво, особенно: кватернионы, угловые и линейные скорости, импульсы, позиции - всё это явно физика. Никто не сможет рассказать, как это всё связано с "инвентарностью" объекта? cse_alife_inventory_item { name => 'condition', type => 'f32', default => 0.0 }, # 0xec { name => 'upgrades', type => 'l32szv', default => [] }, # 0xec { name => 'upd:num_items', type => 'h8' }, # 0x90 { name => 'upd:force', type => 'f32v3' }, # 0x58 { name => 'upd:torque', type => 'f32v3' }, # 0x58 { name => 'upd:position', type => 'f32v3' }, # 0x58 { name => 'upd:quaternion', type => 'f32v4' }, # 0x5 { name => 'upd:angular_velocity', type => 'f32v3' }, # 0x58 { name => 'upd:linear_velocity', type => 'f32v3' }, # 0x58 { name => 'upd:enabled', type => 'u8'}, # 0x58 { name => 'upd:quaternion_SOC', type => 'q8v4' }, # 0x5 { name => 'upd:angular_velocity_SOC', type => 'q8v3' }, # 0x28,0x2c,0x30 { name => 'upd:linear_velocity_SOC', type => 'q8v3' }, # 0x28,0x2c,0x30 { name => 'upd:condition', type => 'f32' }, # 0x90 { name => 'upd:timestamp', type => 'u32' }, # 0x58 { name => 'upd:num_items_old_format', type => 'u16' }, # 0x58 { name => 'upd:cse_alife_inventory_item__unk1_u8', type => 'u8' }, # 0x58 Изменено 10 Октября 2011 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 7 Августа 2013 (изменено) Фактически не подходит для проигрывания зацикленных звуков. То-есть, ни stop(), ни stop_deffered(), точно не срабатывают? А если, например, переменную заnilить - ничего не сброситься? Изменено 7 Августа 2013 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 16 Апреля 2015 (изменено) Главная задача - привязать внешний файл к конкретному сейву. Если всё сохранять в файл с конкретным именем, то последний сейв затрёт внешние данные предыдущего. Если имя файла с дополнительными данными будет совпадать с именем штатного сейва с добавкой постоянного суффикса - всё будет как надо - пара: штатный сейв + файл (связанных с ним) дополнительных данных. Пример: savename1.sav savename1db.sav savenameA.sav savenameAdb.sav Изменено 16 Апреля 2015 пользователем 7.9 1 1 всё легко Поделиться этим сообщением Ссылка на сообщение
7.9 174 Опубликовано 16 Апреля 2015 (изменено) Если "дополнительные данные" связанны с "текущим состоянием игры", а они связанны, этот вариант самый оптимальный. Реализовать (давно) можно с использованием расширения Lua от RvP А хранить данных надо действительно много... Изменено 16 Апреля 2015 пользователем 7.9 всё легко Поделиться этим сообщением Ссылка на сообщение