karavan
Во первых откуда ты возьмёшь переменные Dictanse и obj_id ?
Их же нужно передать в функцию?!?
Конечно будет работать и так, но тогда либо убирай эти переменные, либо используй :
function Check_Distanse(obj_id, Dictanse)
Ну а во-вторых для проверки жив/иёртв есть метод :alive()
Поразмысли сам куда вставить. Artos
А я хотел по поданному Вами примеру заставить думать. Но уже поздно. Alive в студии
С Н А Й П Е Р специально для вас есть мод на 10 новых локаций, туда можно еще впихнуть рыжий лес и мертвый город.
В том уже есть генераторы, Варлаб, Лиманск, Госпиталь, Лесная чаща и пр.
На всех кроме Госпиталя и Лиманска наспавнено монстров и кое где можно и патроны найти и вроде пушку. Я этот мод скачал и немного изменил, теперь там на локациях другая погода и сама она тоже теперь другая, а так же добавлены на локации фоновая музыка и в меню тоже тепрь нескольок муз. тем. Для Госпиталя и Лиманска родная из ЧН.
Можно сделать ответвление от сюжетной линии что то вроде похода к центру зоны.
Теперь по делу, вобщем такая фигня, чтобы попасть в Ваолаб нужно открыть кодовую дверь, но я сделал проще, перенес координаты точки перехода между локациями, но вот если обратно вернуться то точка появления находится за дверью, и выйти невозможно, как теперь саму точку появления переместить? Она как называется? Или это в настройках надо копать?
Artos По поводу оформления учту. :ye) Это просто был копи-паст из блокнота и все отступы пропали. Ну а в целом про метод :alive() думал что он применим только для спавна, про метод .health не знал.
Благодарю. :-cool)
alive() vs alife() - почувствуй разницу(!) и будь внимательнее!
И на 'сон грядущий' почитывай иногда азбуку (lua_help.script), тогда незналок будет поменьше ...
Копи-паст под тег 'сode' - сохраняет форматирование кода (и время/нервы читателя)! Ну вот, сам обращаюсь с глупым вопросом (доработался ...)
Вопрос: В каком файле (\gamedata\config\ui\*.xml - вероятно), задаются координаты новостным строкам, выводящимся на основной игровой экран (не в ПДА!)?
Сам когда-то правил и ... забыл. Что-то никак не найду.
Требуется: Подправить расположение иконки 'автора' новости относительно текста. Да и саму строку немного передвинуть.
Это не метод. Наверное нужно провести небольшой ликбез.
Что такое объект (obj в твоём случае)?
Это некая сущность, для которой существуют заданные значения свойств (атрибутов) и
отредактировал(а) Gun12: 16-05-2010 00:14 GMT3 час. Не стань номинантом премии Дарвина.
Товарищи у меня назрел вопрос по поводу звуков и признатся непогу его не задать.
**50046ea8aab1bb10eeba**[commands\enemy_3]]) -- Команда о том, что враг рядом.
function snd()
snd_obj1:play_at_pos(db.actor, vector():set(0,1,0), 0, sound_object.s2d)
end[/code]
И если этот звук не слышен для НПС, а играет исключительно в голове ГГ, то есть ли возможность скриптом заставить НПС слышать и реагировать на звук.
Gun12 Ну как.... Сборка, SMP1,АМК, НЛС, Немного из НС, чуток из ОГСЕ, что-то из АБС. Вобщем с миром пополам. Однако на локацию пещера переходит а на Свалку вылет
(раз пошла такая "пьянка", уточню//дополню ликбез)
Gun12: По сути это таблица.[/quot**50316ea8aab1bb10eeba**/orange]', то получим:[code]type(obj) == "userdata"[/code], а не "table"!
В чем же разница?
Типовые таблицы можно читать (и соответственно использовать их) различными способами, наиболее известные:[code]for i=1,#Table do ... end
или
for k,v in pairs(Table) do ... end[/code]
Однако все эти методы НЕ применимы к таблицам/массивам типа <userdata>. Причина в том, что в эту таблицу/массив заносятся различные данные/типы данных и для чтения их и методы различны и собственно ключи (keys) как минимум нужно знать.
Т.о. читать/извлекать данные можно только заведомо зная ключ (key) искомого значения (бинарный способ чтения не рассматривается).
Например: local iObjHealth = obj.health - запрос из массива 'obj' (userdata!) по ключу 'health' значения соответствующее кол-ву здоровья объекта.
karavan
Не уверен, но в xr_motivator записаны следующие**50016ea8aab1bb10eeba**e.monster) == snd_type.monster then
,,.
[/code]
В свою очередь в lua_help.script
Так что делай выводы.
Можешь попробовать добавить через тип ambient
Но что из этого выйдет не знаю. Наверное будут шугаться всего и всегда:-) Artos
В кодах Сталкера ей/ему дано особое определение
Не только, точнее не столько, в кодах Сталкера, сколько в самой Lua.
Это тип данных из Си.
А доступ к ним через API.
В общем решил не лезьть туда, куда батько ... :-) и написал
Тут куча нюансов, но по-проще примерно так.
отредактировал(а) Gun12: 16-05-2010 01:40 GMT3 час. Не стань номинантом премии Дарвина.
АнархОПанк
Причин безлоговых вылетов огромное кол-во.
Вылеты при переходах в основном связаны с тем, что модмейкеры, вводя различные дополнения, часто забывают о таких периодах как: старт игры и выход из игры.
Что происходит в эти интервалы времени? Как минимум то, что объекты считываются из сэйва и инициализируются/'входят в онлайн' и соответственно обратные операции. Т.о. есть интервалы, когда объектов еще/уже нет! А различные модмейкерские функции продолжают обрабатывать по стандартным алгоритмам, нередко НЕ имеющих перепроверок на наличие объектов в игре. Вот и ...
Ну или другой тип ошибки/недочета: когда актор переходит уровень на этапе сохранения игры из него 'вываливается' весь набранный хабар. Если работают коды типа drop_item() - то можно представить порой, какова нагрузка при лавинном выбросе вего из рюкзака ...
Поиск причин ошибок при переходах/сэйвах очень не тривиален и слишком конкретен.
Artos спасибо за пояснение.
Вообще, раньше все работало. Теперь чем больше я впихнул, тем больше стал лагать (не из-за ошибок, нет) а из-за нехватки памяти. Даже при настройках на минимум. Да и
Вообще, раньше все работало
я впринципе ни чего и не внедрял после того как тестил. НУ только костюмы да оружие. Наврятли это влияет. Но за пояснение, СПАСИБО!
отредактировал(а) АнархОПанк: 16-05-2010 01:29 GMT3 час.
АнархОПанк: Теперь чем больше я впихнул, тем больше стал лагать (не из-за ошибок, нет) а из-за нехватки памяти.
Большое заблуждение! (или некорректное высказывание)
Лагает (как правило) НЕ из за того, что нехватает памяти. Каждая процессорная операция требует некоторого, хотя и небольшого, НО времени! В единицу времени любой процессор выполняет некоторое (хотя и очень большое, но ограниченное!) кол-во операция.
Если из-за увеличения требуемых операций на обработку 'впихнутого' процессорного времени/производительности не будет хватать - начинаются лаги ('тормоза').
Грешить на нехватку памяти при таких ситуациях и пытаться лечить увеличением ее - бессмысленно. Требуется или оптимизировать код(!) с целью сокращения требуемых операций обработки или сокращать кол-во 'впихнутого' (что подразумевает - сокращение требуемых операций).
Попытки снизить настройки для графики конечно могут дать некоторое облегчение, но ... это уже латание тришкиного кафтана.
Вот почему важно писать коды не абы работало, а с учетом корректности и оптимизации!
Artos Хм... Спасибо!
Просто в "нагруженных" моментах, либо тормозит, а бывает вылет с логом типа "Не хватает памяти". Да и вообще, первый тест (Когда все скрипты были и т.д) все работало. Правдо тормоза были. Снял "Полную динамику" и настройки средне. Не тормозит. Тестил, доходил аж до ЧАЭС. Потом пошло внедрение костюмов, итемсов и т.д., а, и адаптировал "Моннорок аддон" для НС. Я думал из-за этого. А нет.
karavan
Ты полез в очень непростую область.
Сначала посмотри "xr_danger.script" и "xr_reactions.script" ...
СтОит взглянуть еще на "xr_hear.script" из ЗП, т.к. в ТЧ управление звуковыми раздражителями довольно кастрированное.
АнархОПанк
Не стОит слепо и прямолинейно читать/воспринимать любое сообщение игры/системы.
Ведь и не могут предусмотреть всех ситуаций/причин разрабы, писавшие библиотеку этих сообщений!
Да и собственно и не могли бы предусмотреть все, что делают 'шаловливые руки' модмейкеров.
"Нехватает памяти" - запросто может обозначать, например, то, что выделенная область для обработки некоторых операций закончилась ... А выделяться области могут даже НЕ мегабайтами!
Artos Спасибо вобщем суть я понял. И я так понимаю, это не лечится?
Во всяком случае, это не из-за скриптов, с ними все работало. А из-за чего тогда он происходит, не пойму. Костюмы вроде да оружие с предметами, влияния мало оказывают.
Artos И все же мне хотелось бы увидеть функцию поигрыша звука с позиции ГГ, которая была бы слышна для окружающих НПС.
Или это вообще невозможно в ТЧ? Да и вообще в сталкере?
Пробовал сделать вот так:
local snd_obj1 = xr_sound.get_safe_sound_object([[commands\enemy_3]])
function snd()
snd_obj1:play_at_pos(db.actor, vector():set(0,1,0), 0, sound_object.s3d)
end
Но звук в таком случае вообше не играет.
АнархОПанк
Если ты о лагах - то именно из-за скриптов, т.е. из за их неоптимальности и излишних циклах/операциях.
Если о вылете при переходе - тут только с твоими модом можно ковыряться и искать. Писать технологические выводы в лог и читать их/искать ...
Анализом отдельных кусков кода в данном случае и врядли можно обойтись и оч.затратно по времени.
karavan
Ты копаешь НЕ в ту сторону!
Все что ты спрашиваешь - это методы/способы проиграть тот или иной звуковой файл.
Тебе же нужно: как проигрываемый звук сделать раздражителем для неписей.
Извини, сейчас этим заниматься нет никакой охоты, т.к. как уже сказал это очень непростой вопрос, готовых примеров у меня нет.
Если только как-нибудь позже ...
Повторюсь. При переходе с одной локи на другую есть точка появления ГГ, как ее переместить? Или по другому, как она называется? (в Спавне подредактировать).