Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
volazar 140 Опубликовано 3 Октября 2012 Поделиться Опубликовано 3 Октября 2012 AndreySol, осмелюсь спросить. А файл то в папку с игрой кинули? ЗЫ: Для проверки, запакуйте, а затем снова распакуйте all.spawn и гляньте, будет ли секция там или нет. Может дело в распаковщике... Ссылка на комментарий
Malandrinus 615 Опубликовано 3 Октября 2012 Поделиться Опубликовано 3 Октября 2012 AndreySol, Почему Вы решили, что я этот код вызывал в том-же месте что и создание объекта ? А при чём здесь создание? В одном фрагменте стоит инициирование выхода в онлайн (функцией set_switch_online) и дальнейшее получение онлайнового, что как раз и есть неправильно. Да, кстати, цитатами слабо пользоваться? Совершенно непонятно, кому отвечаешь и на какой вопрос. Artos, т.е. никак не может быть в НЕ в онлайне! Ну почему не может? А вдруг объект на другом уровне? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Artos 99 Опубликовано 3 Октября 2012 Поделиться Опубликовано 3 Октября 2012 (изменено) 1. Был не прав, в том что не заметив в фразе 'изменил ... координаты' - сказал про 'ту же' точку. Если их (координаты) изменить с умом - можно и в другую точку на этой (иль иной) локации. ;-) 2. malandrinus, мы все же говорим по контексту вопроса и о спавне лампочки на текущей локации. И конечно же о том времени, когда лампочка уже должна быть в онлайне, т.е. забиндена соотв.биндером (net_spawn). Иначе можно договориться и до того, что не запустив игру - лампочка тоже не в онлайне... Предлагаю прекратить предложенную викторину "кто отгадает что же в очередной раз учудил AndreySol", т.к. по представленной им информации (и о спавне и о проверке) можно о чем угодно и сколь угодно гадать. Начнем с того, что получить объект лампочки по его имени - уже глупая затея! В исходной игре лампочек с именем "light_alarm_glass_0000" - больше дюжины(!), да и лампочек "light_alarm_glass_0004" не меньше(!). Т.о. какую лампочку начинает проверять AndreySol - только ему самому и движку ведомо. С подобными подходами можно сколь угодно гадать и бесконечно долго ... Изменено 3 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Malandrinus 615 Опубликовано 3 Октября 2012 Поделиться Опубликовано 3 Октября 2012 Artos, мы все же говорим по контексту вопроса и о спавне лампочки на текущей локации. Я отреагировал на фрагмент кода, который неправилен вне зависимости от контекста. Неважно, как, где и когда создавался объект. Ставить в одном фрагменте выведение в онлайн и после этого получение клиентского - неправильно в любом случае. Впрочем, косяков там хватает и без этого. Судя по всему, главный косяк я пропустил. Как ты верно заметил: В исходной игре лампочек с именем "light_alarm_glass_0000" - больше дюжины(!), да и лампочек "light_alarm_glass_0004" не меньше(!). Т.о. какую лампочку начинает проверять AndreySol - только ему самому и движку ведомо. С большой вероятностью это и есть причина проблемы. Т.е. попросту лампочка на другом уровне. Я однако замечу, что использование имени в основном стало глупой затеей благодаря модостроителям, которые пихают объекты в аллспавн копипастой. Ещё замечу, что это может вызывать проблемы достаточно серьёзного плана. Вот у нас недавно выловили проблему с объектами костров. Наличие на одной локации двух костров с одинаковым именем вызывало вылет. Однако, вылет происходил не сразу, а при переходе на другую локацию, после определённое времени нахождении на проблемной локации. И в логе ничего вменяемого не было. Из-за такого эзотерического характера вылета первое подозрение было, что заканчиваются некие ресурсы. Только долгие и мучительные эксперименты позволили установить истинного виновника. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Artos 99 Опубликовано 3 Октября 2012 Поделиться Опубликовано 3 Октября 2012 (изменено) malandrinus, зря мы все же продолжаем это обсуждение, но ... 1. В моей фразе подразумевалось, что если лампочка заспавнена правильно в алл.спавне (т.е. и на текущей локации), то она при старте игры (после выхода в онлайн всех соответствующих объектов на карте) - обязана быть в онлайне. Это прописано ей именно флагами. Т.е. подразумеваю, что заспавненная лампочка на текщей локации после ее инициализации в качестве серверного объекта - обязана быть забинденной и выйти в онлайн. 2. А вот с твоим замечанием по set_switch_online не совсем согласен. Это всего лишь команда движку для перевода объекта в онлайн. Если лампочка уже(!) в онлайне - то эта команда будет просто проигнорирована. Т.е. если свою проверку AndreySol делает, например, в апдейте лампочки иль на апдейтах актора (но не в самом начале игры) - то никакой (пере)инициализации выхода в онлайн у лампочки нет. Она уже должна быть в онлайне, в соответствии с флагами спавна. Ну а этой командой может быть выпихнута в онлайн, если данная команда дана в самом начале, т.е. непосредственно при появлении серверного объекта лампы... хотя это все одно должен сделать сам движек (опять же по флагам). Т.о. set_switch_online - в данном контескте бессмысленная команда в какое бы время не была бы отдана, т.к. или лампочка должна быть в онлайне "само-собою" или же движек не может ее вывести в онлайн по какой-то причине и повторно его "просить" об этом врядли поможет... P.S. О недопустимости наличия объектов с одинаковыми именами на одной локации мною говорилось пару лет назад и неоднократно. К сожалению возражения типа "А я заспавнил и у меня все нормально" и отсутствие возможности доказать "ненормальность" по исходникам движка иль по логам, делает эту проблему(ошибку) актуальной и сегодня и... завтра. :-( Ну и опять не согласен полностью со словами: использование имени в основном стало глупой затеей благодаря модостроителям - как раз контекст вопроса о лампочках говорит о вине в подобной 'глупости' разработчиков GSC, которые и лампочки и костры и т.п. сами начали добавлять в алл.спавн под одинаковыми именами, а не использовали хотя бы в SDK - 'level_prefix_ ', переводя его при компиляции спавна в соответствующий префикс локации... Кстати, даже это, перевод 'level_prefix_ ' в типа 'esc_','agr_'... и то не делали везде ни разработчики ни, взяв с них "пример", нынешние маперы ... Изменено 3 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
volazar 140 Опубликовано 4 Октября 2012 Поделиться Опубликовано 4 Октября 2012 Всем привет! Может кто нибудь поделится значениями флагов из алл спавна, когда объект спавнится через net_packet. Т.е например, значение 0xfffffffa соотв. числу 5 и т.д А именно, интересуют значения: 0xffffff3a, 0xffffff3e, 0xffffffba и 0xffffffff Ссылка на комментарий
Artos 99 Опубликовано 4 Октября 2012 Поделиться Опубликовано 4 Октября 2012 (изменено) volazar, та сам то прочел и понял о чем спрашиваешь? all.spawn - это бинарный файл-конфиг для начального спавна объектов движком и к скриптовому спавну (нет-пакетами) никакого отношения не имеет. Если ты имеешь ввиду распаковку all.spawn'а - то формат представляемых данных сильно зависит от самого распаковцика (декомпилятора) и значения типа 0xfffffffa вполне могут быть представлены и иначе, т.е. в десятичном формате. Ничто тебе не мешает это сделать самостоятельно имея под рукой простенький калькулятор переводящий из HEX в DEC. Для получения "соотв. числу" следует от полученного значения отнять 4294967295 (это десятичное значение для 0xffffffff). Т.о., например для 0xffffff3a имеешь: 4294967098 - 4294967295 = -197 Если же имеешь ввиду смысловые значения для каждого бита флага, то: а) параметров, которые несут информацию именно в виде битовых флагов, в all.spawn'е не менее десятка, поэтому следует в вопросе конкретно говорить о каком именно параметре тебя интересует информация. б) на форуме имеется поиск, которым и следует пользоваться... в) смею предположить, что тебя заинтересовала информация по параметру 'object_flags', о которой уже раз давалась на форумах информация. Сейчас не помню ссылку на первоначальный пост с материалами от KD87 и malandrinus'а, но вот выжимка: Флажок двоичное дес. Функция-аксессор * назначение ====================================================================== flUseSwitches 0000000000001 1 используется только редактором level editor из SDK и отвечает за видимость в редакторе флажков flSwitchOnline и flSwitchOffline flSwitchOnline 0000000000010 2 can_switch_online возможность перехода в онлайн flSwitchOffline 0000000000100 4 can_switch_offline возможность перехода в оффлайн flInteractive 0000000001000 8 interactive ** Такое ощущение, что ни на что не влияет flVisibleForAI 0000000010000 16 используется на клиентской стороне, в частности для зон отвечает за возможность реакции на контакт flUsefulForAI 0000000100000 32 кроме участия в interactive имет смысл для инвентарного предмета, в частности, влияет на торговлю flOfflineNoMove 0000001000000 64 move_offline по идее должен отвечать за отсутствие движения в оффлайне, но не используется flUsedAI_Locations 0000010000000 128 used_ai_locations*** При спавне будет привязан к сетке, при наличии таковой под объектом Иначе будет создан в воздухе. flGroupBehaviour 0000100000000 256 неизвестно flCanSave 0001000000000 1024 can_save Сохранять ли объект. Если флажок снят, то при перезагрузке объект исчезнет. flVisibleForMap 0010000000000 2048 visible_for_map Устанавливает видимость на миникарте flUseSmartTerrains 0100000000000 4096 неизвестно flCheckForSeparator 1000000000000 8192 неизвестно * Для многих объектов соответствующая функция не связана с флагом, а имеет логику, специфичную для данного объекта. ** Функция interactive также учитывает флажки flVisibleForAI и flUsefulForAI *** В ЗП имеется функция для установки флажка use_ai_locations(bool). Обратите внимание, имя отличается от функции для чтения флажка. г) если говоришь о нет-пакетах... то стОит заглянуть именно в модуль (функции) работы с нет-пакетами, чтобы не было для тебя же недопоняток в соответствии того, что те видишь в распаковке all.spawn'а и в реальной работе скриптов. Примечание: в модуле m_netpk.script есть достаточная информация по флагам всех параметров. Изменено 4 Октября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
volazar 140 Опубликовано 5 Октября 2012 Поделиться Опубликовано 5 Октября 2012 Artos, я как раз по модулю m_netpk.script и делаю ф-ию спавна физического объекта с возможностью фиксации. Копаясь также в amk.script встретился там с функцией спавна вертолета, всю ф-ию приводить не буду, приведу кусочек, который заинтересовал при заполнении параметров cse_alife_object: object_flags = bit_not(5) -- ~5 = 0xfffffffa packet:w_s32(object_flags) Получается, что 0xfffffffa = 5. А вот как оно было высчитано? Я пробовал переводить 0xfffffffa в десятичное число - однако получил совершенно другой результат, а не число 5. Ссылка на комментарий
Artos 99 Опубликовано 5 Октября 2012 Поделиться Опубликовано 5 Октября 2012 (изменено) volazar, раз пользуешься модулем m_netpk.script, тогда чего же спрашиваешь про значения флагов? Там все флаги расписаны, включая семантические имена... А получается как раз не 5, а -5 (минус пять)! Да и расчитывается просто: Отбрасываем, чтобы не путаться старшие байты и смотрим только последний 'fa' => 250 т.е. имеем десятичное число 250, отняв от которого 255 (ff) получаем -5 Можно иначе: Переводим 'fa' в бинарное значение, т.е. именно в флаги: 'fa' => 11111010 Смотрим что за флаги сброшены: это будут UseSwitches = 1 SwitchOffline = 4 Т.е. 1+4 = 5 Для сброса флагов требуется от их 'ff' отнять 5 , т.е. 255 - 5 = 250 => 'fa' Ну а суть всех этих значений флагов - сброшен флаг SwitchOffline - который не дает вертолету уходить о оффлайн, т.е. он всегда будет в онлайне (конечно после его спавна и если он на текущей локации). Примечание: В модуле m_netpk.script при изменении любых параметров вертушек (да и машин/ящиков) биты вышеупомянутых флагов сбрасываются автоматически. Да и значение параметра 'skeleton_name' изменяется с '$editor' на 'idle', если не задано иное. Изменено 5 Октября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
***~GiVcHiK~*** 3 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 Подскажите пожалуйста, как сделать рандомное воспроизведение звука кидания гранат... Как в этом Ссылка на комментарий
DrDen 0 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 (изменено) Знатоки,подскажите как в ТЧ изменить погоду на солнечную? Играю в RMA shadows addon, постоянно дождь и пасмурно, с дождём вроде справился, во всех файлах weather_ххххх.ltx поставил значение rain_density = 0.0, а вот как облачность убрать, хотелось бы чистого неба) Ссылка: "Настройка погоды и освещения". ColR_iT ColR_iT, спасибо, но ничего из написанного по ссылке не помогло, судя по описанию нужно в параметре clouds_color менять четвёртое число на 0, однако это не работает--изменений никаких. Изменено 6 Октября 2012 пользователем ColR_iT всё идёт по плану... Ссылка на комментарий
Buusty 386 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 (изменено) Подскажите, пожалуйста, кто "в теме". Как избежать вот такого "нырка вертолета" под текстуры при взлете - Замучился я уже по 80 раз переписывать пути отлета в алл.спавн. Какие бы пути не выставлял (в основном, играл с координатами высоты), вертолет перед взлетом обязательно уходит под террейн! Неужели высоты 86.5072298 для первого вэйпойнта мало?! На уровне земли значение - "26.00" [upi_heli_baty_otlet_move] points = p0,p1,p2 p0:name = wp00 p0:position = -153.445114,86.5072298,-459.451752 p0:game_vertex_id = 3714 p0:level_vertex_id = 459501 p0:links = p1(1) p1:name = wp01 p1:position = -116.552254,102.800180,-477.721039 p1:game_vertex_id = 3714 p1:level_vertex_id = 523484 p1:links = p2(1) p2:name = wp02 p2:position = -34.024799,264.659878,-778.659119 p2:game_vertex_id = 3714 p2:level_vertex_id = 470337 === П.С. Прилет идеален - вертушка зависает в полуметре над землей, выход непися, разговор, сдача квеста, уход непися/посадка в вертушку, все нормально. А вот с отлетом такая трабла. Может и не в путях совсем дело, а я их перебрал около 3х десятков различных вариантов. Возможо ли сделать отлет вертолета корректным? Пользуемся тегами! ColR_iT Изменено 6 Октября 2012 пользователем ColR_iT Ссылка на комментарий
volazar 140 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 Buusty, когда то тоже намучился с путями вертушек. Спавним - летит нормально. Спавним в другой раз - летит абы как. Возможно иногда схема обрабатывается немного криво. А может и еще что. По взлету - попробуй добавить точку чуть выше (метров 10) и впереди, от того места - где он (вертолет) зависает. А затем уже с той точки, пусть летит по остальным. Так например сделано с вертушкой Бати на Янтаре - единственный минус там - там не взяли в расчет высоту забора вокруг территории бункера. Ссылка на комментарий
Buusty 386 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 По взлету - попробуй добавить точку чуть выше (метров 10) и впереди, от того места - где он (вертолет) зависает. А затем уже с той точки, пусть летит по остальным. Так я так и делаю. Первую точку вперед по курсу и выше (и "немного" выше, и "намного" выше, и "средне"... говорю же, перепробовал массу вариантов путей/порядка 30 разных вариантов/). Но такое впечатление складывается, что у вертушки "свое видение взлета", он все равно "ныряет" перед тем, как встать в первую точку вэйпойнта, потом то все идет "как по маслу", встает в две разные точки вэйпойнта и улетает по направлению к третей, окончательной, но чуток до неё не долетает - удаляется по таймеру)). Так например сделано с вертушкой Бати на Янтаре Именно оттуда вся логика и взята, как основа для моего прилета/отлета. === Переносить место квеста не буду. Если не найду решение этой траблы - так и оставлю, все остальное прекрасно работает /и слишком много завязано именно на данной площадке/. Ссылка на комментарий
Artos 99 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 Buusty, чтобы вертушка нормально взлетала и садилась - нужно управлять скоростью. Изначально в схеме стоИт дефолтная скорость =30, что даже для свободного полета несколько многовато. При взлете, стартующая схема (heli_move) заставляет вертушку "бросаться с места в карьер"... причем движек еще не просчитал нормально высоту (GetRealAltitude). Совет: 1. Задавать начальную точку взлета непосредственно над текущей точкой (над вертушкой) - метров ~5, чтобы вертушка взлетала вертикально, а не "вперед". При наличии горизонтальной составляющей (т.е. "вперед") движение по путям просчитывается не от точки к точке, а с вариациями, которые порой и "проваливают" вертушку под уровень. 2. Задавать или в самой логике схемы и/или в точках пути ограниченные скорости. Например у меня ранее было задано для "взлетной" точки так: p0:name = pm00|v=8|dv=15 - т.е. при взлете стартовая скорость 8 (можно и поменьше), ауже в точке взлета 15. Т.о. вертушка плавно с ускорением вертикально взлетает на высоту 2-5 метров и уже далее устремляется в полет (к следующей точке). 3. Ну и ... можно отказаться от полета "по путям" и переделать схему полностью для полетов по задаваемым точкам (по координатам), контролируя скриптами, а не движком и высоту и скорость и прочее... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
]snork[ 0 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 Всем привет!Подскажите,как сделать что бы перед началом выброса на базах выла сирена??? Ссылка на комментарий
Struck 61 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 Для [meet] применим target?(я про логику) Ссылка на комментарий
Artos 99 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 (изменено) Struck, не засоряй топик банальными вопросами! Открой статью по логике и по нужной схеме (ссылки в шапке) - и почитай. Можешь открыть саму схему (скрипт) и посмотреть какие параметры она (не)использует: --/ Функция чтения настроек. В нее передается секция, откуда их нужно читатьюfunction init_meet(npc, ini, section, st, scheme) ]snork[, а взять и посмотреть самому как это уже сделано в модах (хотя бы в том же AMK) - лень? Ждешь когда тебе готовые строки выложат? Посмотри логику для "сирен" на базах и доработай ее, чтобы когда выброс - завывала (не забудь по окончании - отключать). Изменено 6 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
]snork[ 0 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 а взять и посмотреть самому как это уже сделано в модах (хотя бы в том же AMK) - лень? Ждешь когда тебе готовые строки выложат?Посмотри логику для "сирен" на базах и доработай ее, чтобы когда выброс - завывала (не забудь по окончании - отключать). Я уже искал в АМК 1.4.1 там нету.я нашел логику сирен на базах,посмотрел и ничего не понял Ссылка на комментарий
Artos 99 Опубликовано 6 Октября 2012 Поделиться Опубликовано 6 Октября 2012 (изменено) ]snork[, распакуй all.spawn и найди в alife_l01_escape.ltx объект name = esc_matugalnik - это и есть сирена на блокпосте. В этой секции объекта и смотри его логику, в которой по получению соотв.инфопоршня (+esc_blockpost_alarm) активируется соответствующая секция логики ([ph_sound@alarm]) и проигрывается snd = alarm1. По аналогии - делай и для других баз... Изменено 6 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти