KD87 723 Опубликовано 23 Октября 2011 Vano_Santuri, вот это: local Tbl="TblMsges_"..ComTbl, дает строку, а не таблицу. Вот insert и не работает. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 2 Ноября 2011 Desertir, local key = "key_1" if db.storage[db.actor:id()].pstor[key] then db.storage[db.actor:id()].pstor[key] = nil end Из АМК Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 4 Ноября 2011 (изменено) _Призрак_, открой в hex редакторе файл модели, в конце прописаны доступные анимации. У сталкеров прописаны все анимации из stalker_animation.omf, а у монстров анимации по отдельности. У той же химеры, например, анимации "idle" нет. Возможно, поэтому у тебя вылет. Изменено 4 Ноября 2011 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 8 Ноября 2011 Dreamtale, залей спавн, посмотрю. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 13 Ноября 2011 Лёха_тц, бери секции с section_name = physic_object. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 13 Ноября 2011 Shadows, регулярным выражением. В Lua это вроде через string.find(). Только совсем непонятен смысл этой чехарды. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 13 Ноября 2011 AndreySol, получить просто - берешь декомпилятор, декомпилишь xrGame.dll и смотришь размер Для ТЧ - 8 Кб, для ЧН и ЗП - 16 кб. Pstor же в нет-пакет сохраняется, а других способов получить размер нет-пакета нет. Как и невозможно определить момент переполнения нет-пакета при записи. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 15 Ноября 2011 _Призрак_, анимации задаются для модели при ее изготовлении. Почему они должны быть общими? Если нужен полный список, смотри в самой модели, лучше способа не придумаешь. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 18 Ноября 2011 Ааз, как меняешь, чем распаковываешь? Обязательно надо проставить upd:condition = 1. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 19 Ноября 2011 Artos, все так и есть. Добавлю только, что есть также параметр condition, который изменяется от 0.0 до 1.0. Оба параметра должны друг другу соответствовать. Впрочем, движок отдает предпочтение upd:condition Модель оружия никак не может влиять на его состояние. Callisto, если параметр в all.spawn равен дефолтному значению (для 'ammo_elapsed' это 0, ствол разряжен), он не печатается. Если нужно поменять такой параметр - просто добавь его в распакованный спавн. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 22 Ноября 2011 *Shoker*, universal acdc имеет функцию parse как раз для замены вертексов в спавне Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 23 Ноября 2011 *Shoker*, класс предмета в функции eat() должен наследовать от CEatableItem. Оружие и броня от него не наследуют. use() среди методов game_object в ТЧ нет, про остальные сказать не могу. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 27 Ноября 2011 (изменено) strelok200, дык он сразу в оффлайн уводится, скорее всего. Для того, чтобы монстр заспавнился по заданным координатам с помощью spawner, ему надо поставить флажок no_move_in_offline и отключить can_switch_offline. Или в СДК, или в object_flags. Изменено 27 Ноября 2011 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 1 Декабря 2011 (изменено) Кое-чего выяснил в процессе копания в update-части нет-пакета оружия. Нижеследующие параметры есть у любого оружия 1) upd:weapon_flags Значения: 0 - оружие спрятано, 1 - оружие в руках 2) upd:ammo_elapsed Остаток патронов в стволе 3) upd:addon_flags Навешанные аддоны. Бинарный флаг по сути, но распишу подробней: 0 - нету 1 - прицел 2 - гранатомет 3 - прицел+подствольный гранатомет 4 - глушитель 5 - прицел + глушитель 6 - подствольный гранатомет + глушитель 7 - все сразу 4) upd:ammo_type Тип патронов. 0 - обычные, 1 - бронебойные. Если есть еще - идут в порядке повышения убойности (так вроде) Если не полностью расстрелять магазин и поменять тип патронов, upd:ammo_type изменится для всего магазина. 5) upd:weapon_state Самое интересное. Это состояние оружия: 0 - в руках, idle 1 - стрельба выстрел пулей/дробью (или удар ножом) 2 - альтернативный удар (только нож) 3 - перезарядка 4 - достается 5 - убирается (или выбрасывается) 6 - спрятано 7 - заклинило 8 - ??? выстрел из подствольника (в режиме огня "А"-автомат) 9 - включение/выключение подствольного гранатомета 6) upd:weapon_zoom Состояние зума оружия: 0 - обычное состояние, 1 - прицел (зажатая правая мышка). Нижеследующие параметры есть у всего, кроме ножа 7) upd:current_fire_mode Текущий режим огня. 0 - одиночными, 1 - два патрона, 2 - очередью. Если режима по 2 патрона у оружия нет, то режим очередью будет 1. Нижеследующие параметры есть только у стволов с возможностью крепления подствольника 7) upd:grenade_mode Режим подствольника. 0 - выключен, 1 - включен Нижеследующие параметры есть только у дробовиков и ружей 8) upd:ammo_ids Количество оставшихся патронов в стволе. Полностью дублирует upd:ammo_elapsed, зачем - непонятно. Изменено 2 Декабря 2011 пользователем Artos 2 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 2 Декабря 2011 abramcumner, ammo_ids всегда равен ammo_elapsed. Проверял для всех дробовиков, с разными типами патронов, с разным количеством патронов разных типов. Так в ТЧ, по крайней мере. Artos, ну так они и должны соответствовать А что в ACDC надо поправить с твоей точки зрения? Zander_driver, честно говоря, не знал, что режимы стрельбы можно добавить в конфигах Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 25 Декабря 2011 Капрал Хикс, повесь в биндер объекта hit_callback. В вызываемой функции считай расстояние. Как-то так, я думаю: function generic_physics_binder:hit_callback(obj, amount, local_direction, who, bone_index) local dist = self.object:position():distance_to(who:position()) if dist > 100 then db.actor:give_info_portion(...) end end Добавлено через 5 мин.: Полтергейст, а оно разное от объекта к объекту. Зависит от наличия/отсутствия строковых параметров у объекта - кастом дата, character_profile и т.д. Разбирай пакет полностью. Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 25 Декабря 2011 (изменено) Полтергейст, формат нет-пакетов одинаковый в патчах 1.0002-1.0006, можешь использовать функции амк. Неудивительно, что виснет. Первый аргумент метода - id объекта, а не он сам. Также есть еще метод remove_all_restrictions() для клиентского объекта. Правда, в таком случае удаляются и out-рестрикторы. Изменено 25 Декабря 2011 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 30 Декабря 2011 (изменено) Artos, не буду возражать в целом, но best_danger() все-таки возвращает самый опасный объект. А кто его знает, как движок обрабатывает эти объекты, аномалии вполне могут считаться малоопасными, по сравнению со шмаляющим из ружья сталкером От себя могу предложить еще такой вариант - итератор memory_sound_objects() класса game_object. Он предоставляет возможность перебирать объекты в памяти сталкера (типа sound_memory_object), из которых легко получить обычные клиентские объекты, издававшие звук. Сталкер помнит 32 объекта по дефолту, но это можно поменять в конфигах. Разумеется, не буду говорить, что это лучший способ, но про такой вариант тоже можно помнить. Изменено 30 Декабря 2011 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 1 Января 2012 (изменено) Dennis_Chikin, эм. А что не так в коде? Ну, если опустить отсутствующую скобку в конце первой строки. По поводу нужности - ну не знаю. При обычном способе вызова функции через точку, они нормально вызываются. Но наверняка есть случаи, когда модуль, содержащий функцию, обязательно должен быть загружен. Изменено 1 Января 2012 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение
KD87 723 Опубликовано 1 Января 2012 (изменено) strelok200, нет. Dennis_Chikin, сразу не обратил внимания (я в lua с регулярками не работал), но тут, скорее всего, неправильное регулярное выражение в первой строке. "(.+)[.](.+)" означает "много любых символов, массив любых символов, снова много любых символов". Чтобы это превратить в "два массива символов, разделенные точкой", нужно как-то так, наверное: "(.+)\.(.+)" Изменено 1 Января 2012 пользователем KD87 Поделиться этим сообщением Ссылка на сообщение