Artos 99 Опубликовано 5 Июня 2012 Поделиться Опубликовано 5 Июня 2012 (изменено) Clayman, А зачем тебе вообще через скрипт визуал менять? Не проще создать сколько угодно нужных профилей с нужными визуалами и вводить (убирать) в игру? Ну если тебе так "проще", то другим как раз проще и не мусорить в конфигах и именно нужному неписю в нужное время менять визуал, а не изгаляться с переспавнами по профилям. Shredder, ты, видно, не из любителей читать ... Про визуалы/броники только пару дней назад в топике по ковыряниям в файлах SoC упоминалось - почитал бы! И, визуал, это тебе не просто внешний вид непися, а как раз и его защита/иммунитеты - со всеми из этого вытекающими ... Изменено 5 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705243
Shredder 49 Опубликовано 5 Июня 2012 Поделиться Опубликовано 5 Июня 2012 (изменено) В character_desc_* куча профилей, в которых уже прописан визуал. Допустим я в них хочу заменить, но не во всех, тогда что делать?. А в моём способе что муторно? Визуал в одном месте прописать? Ну а с иконками вообще не заморачиваюсь, какие есть, такие есть, всё равно, когда играю, на них уже не смотрю. Да и потом, вдруг нужно какой-нибудь визуал из игры убрать - удаляю его из одного файла и всего делов. Мне кажется, способ оч. хороший. Добавлено через 30 мин.: Artos, про защиту я знаю, только сейчас про неё речи нет. В общем, попытался я сделать через net-paketы (своровал кусок кода из imm мода). Принцип работы: через нет-пакет записываю новый визуал, потом отправляю npc в оффлайн, потом отправляю обрано в онлайн. И всё в принципе работает, но есть проблемка: у трупов появляются вещи, которых быть не должно: гармошка, пда, гитара и т.д. Может кто-нибудь подскажет из-за чего? Функция, которая отправляет npc онлайн/оффлайн: function convert_npc(npc_id, state) local npc=level.object_by_id(npc_id) local serv_obj=alife():object(npc_id) if not serv_obj then need_change[npc_id]=nil return end if npc == nil and state == "turn_on" then serv_obj.sim_forced_online = true if serv_obj.online ~= true then serv_obj:switch_online() end need_change[npc_id]=nil elseif npc and state == "turn_off" then if _m.is_stalker(serv_obj) then npc:clear_animations() if serv_obj:alive() then npc:stop_talk() end end serv_obj:switch_offline() need_change[npc_id]="turn_on" end end Изменено 5 Июня 2012 пользователем Artos Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705248
Artos 99 Опубликовано 5 Июня 2012 Поделиться Опубликовано 5 Июня 2012 (изменено) Shredder, это как же "про защиту" ты не говоришь(?), ежели уже дважды сетуешь на "неубиваемость" неписей после переодевания?! В чем же тогда вопрос с переодеванием визуала? Пока именно только о "неубиваемости" и о "выглядят как комок с тряпками" - вроде как вопрошаешь ... Ну а по появлению (иль исчезновению) предметов в трупах - почитай-ка топики и ФАКи на предмет спавна лута в трупы менеджером death_manager.script. Не мешай разные вопросы в один. И, прячь портянки кодов под спойлер, плз. Изменено 5 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705255
Shredder 49 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Artos, возможно ты не внимательно посмотрел мой пример использования функции set_visual_name, т.к. там я совершенно не меняю параметры защиты у visual'а, более того там вообще всего один файл изменён по сравнению с оригиналом. Так о какой защите может идти речь? Проблема - npc после переодевания их функцией set_visual_name становятся бессмертными, независимо от того, какой визуал ты им указываешь. Да и к тому же, при переодевании npc нет-пакетом такой проблемы нет. Вообщем, либо после (до) использования функции set_visual_name c npc нужно что-то ещё сделать, либо эта функциия вообще предназначена только для ГГ, т.к. приминетельно к нему никаких проблем не возникает. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705299
Artos 99 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 (изменено) Shredder, к моему сожалению ... чаще замечаю то, о чем не подозревает сам спрашивающий, чем невнимателен к прочитанному ... ;-) 1. Ты так и не понял, что визуал для непися - это и есть защита! Смена визуала - как раз, в случае разных типов/классов визуалов, и есть изменение параметров защиты непися. Что значит(?) всего лишь одна строка: self.object:set_visual_name([[actors\stalker_neutral\stalker_neutral_nauchniy]]) Да всего лишь то, что непись теперь имеет костюм с высоким коэффициентом иммунитетов (high_resistance) и выше среднего параметры для bone_protection (body_damage_5,head_damage_3). Предполагаю, что проверял ты в игре на новичке иль начальном сталкере, которые появляются в начале новой игры и у которых защита как раз начального уровня. А ты все гутаришь "не трогаю защиту" И не нужно голословить в топике о бессмертии после переодевания в любой костюм. Чудес не бывает и тем более в игре, где все цифры/параметры можно прочитать и сравнить. Тут уже недавно было и ты видно не прочитал .. о "в чем бессмертие меряешь - в попугаях?". 2. То, что сами разрабочики используют данную функцию (set_visual_name) именно в xr_motivator.script, т.е .в биндере сталкеров, а не в акторском биндере, как раз говорит, что применяется не к актору, а к неписям. Изменено 6 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705302
Shredder 49 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 (изменено) На счёт попугаев. Специально для тебя добавил ещё один файлик, в котором в начале игры добавил себе гаусс. Встречаю двух типов в научных комбензонах (переодетых функцией set_visual_name), подхожу в упор и стреляю в голову из гаусса!!!. Он только: "Ах ты ж епт..." и по мне стрелять. Я думаю, мне не стоит тебе рассказывать, на сколько мощный гаусс в оригинале ЗП? И о том, что параметры защиты прошиты в визуале указанием на определённый файл я оч. хорошо знаю. Поэтому, уважаемый Artos, вместо того, чтобы принимать меня за дурачка, который совсем не шарит в кодах Сталкера, попробовал бы воспроизвести ситуацию и убить этих двух типов даже используя вот такую строку:self.object:set_visual_name([[actors\stalker_neutral\stalker_neutral_1]]) Изменено 6 Июня 2012 пользователем Shredder Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705312
Artos 99 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Shredder, прочитай свой первичный вопрос(!) и теперешние сетования/пояснения ... Какова цель твоих постов? За дурочка тут никого не считают, но ... нередкость когда спрашивают о том, о чем сами же не понимают иль рассуждают о том, что и близко не лежало. В чем конечная цель вопросов? Как пользоваться функцией иль как сменить визуал? О пользовании функцией уже ранее сказано, бессмертными не становятся как и "кучей трепья". Ставим как в твоем примере в stalker_binder:net_spawn код со сменой визуала на "actors\\stalker_neutral\\stalker_neutral_1" первому же новичку который спавнится в начале новой игры. Кстати, именно этот визуал он изначально и имеет. Записываем получившийся нет-пакет (пишем на 1-ом апдейте). Если интересно, могу выложить. Берем обычный винторез (зачем нам гаусс?) и обычным для него патроном сносим бошку неписю первым же выстрелом - никакого бессмертия. Однако то, что при онлайновой замене этой функцией визуала у неписей дополнительно повышается "пулестойкость" - есть такое дело. Почему именно так - вероятно только разработчики могут сказать, т.к. нет пакеты ничего криминального не говорят. Поисследую. Ну а если нужно просто менять визуал - то уже годы как это делабт именно нет-пакетами и не жалуются ... ;-) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705336
Shredder 49 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Я знаю, что ещё со времён Теней Чернобыля успешно используют нет-пакеты для этого дела. Но вот захотелось в ЗП использовать новую функцию, а она упрямится ((( Прочитал свой первый пост, в конце которого: как можно заставить эту функцию (set_visual_name) работать правильно? Если тебе не сложно, то покажи пожалуйста код, как её используешь ты. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705344
Artos 99 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 (изменено) Shredder, грубо говоря у себя в наработках я не использую эту функцию (set_visual_name), т.к. стараюсь писать по-возможности "кроссплатформенно", т.е. под все три версии игры. Был момент, когда повозился с нею, посмотрел на что способна и чем удобна. Минусов не меньше чем плюсов. Помимо уже затронутой некоторой непонятки с изменением иммунитетов, основной минус - то что применимо только для клиентских об'ектов. Но если ранее не было полного доступа к нет-пакетам сталкеров и нельзя было понять отчего есть особенности при смене - отложил ... Твой вопрос как раз вновь заставил вспомнить и, как выше уже сказал, попробую найти разницу в замене нет-пакетами и "штатной" для ЗП функцией. Сейчас же проверял в точности как и ты, т.е. при появлении непися в он-лайне меняю ему визуал и смотрю ... Про "комок тряпок" наверное не стОит упоминать, ты скорее всего напутал с названием/путем визуала. Слабые визуалы вполне "убиваемые", о чем и написал уже. Более защищеные - дают бОльший прирост к иммунитетам, тут нужно поисследовать ... может дополнительно включаются какие флаги/режимы. Ведь не просто так разрабы применили у себя эту функцию для присвоения визуала актора кому-то другому (типа двойника). Т.о. функция то работает правильно, если ей давать правильный визуа. ;-) Ну а особенности ее слишком "правильной" работы, которая именно тебе не подходит и как ее привести к "обычной" замене визуала - требует времени и анализа. Через день-два попробую дать информацию. Добавлено через 123 мин.: P.S. Кстати, я так и не понял из вопроса, тебе нужно менять визуалы для новых (тобою спавнящихся) неписей или уже имеющихся в игре. Все же это имеет свои особенности. Изменено 6 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705348
Shredder 49 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Ты натолкнул меня на одну мысль и я ещё немного поэкспериментировал. Что выяснилось: 1) set_visual_name отрабатывает норм, если ей передаётся такой же visual, как и был. Делал так: visual = npc:get_visual_name() npc:set_visual_name(visual) походу, где-то в движке проверка стоит, и функция просто не выполняется. 2) Теперь я знаю зачем разрбам понадобилась функция set_visual_name - для отыгрывания сценок с гг, когда спавнится сталкер и ему устанавливается визуал, как у ГГ. И понятно, что в этой сценке того двойника не должны убить, вот функция и делает его бессмертным. 3) А комок то всё равно получается. Вот как я его получал: local stalker_ids = {} function update() local npc local visual for id,t in pairs(stalker_ids) do if t then npc = level.object_by_id(id) if npc and (t + 20000 < time_global()) then npc:set_visual_name([[actors\stalker_neutral\stalker_neutral_nauchniy]]) stalker_ids[id] = nil end end end end function on_npc_spawn(npc) if npc and npc:alive() then stalker_ids[npc:id()] = time_global() end end Как говорится, в споре рождается истина! И хоть я так и не узнал, как правильно использовать функцию set_visual_name, зато теперь мне совершенно ясно, что её не нужно использовать для моих целей, т.к. она для этого не предназначена. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705390
Artos 99 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Shredder, хм ... вот за скрин и код "как скрутил" - спасибо, теперь еще немного инфы к особенностям функции. Проверю, конечно, почему нельзя менять визуал спустя N-ное время после спавна ... или это некая особенность. В общем функция явно не для "нормальной" смены вызуала неписям. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705396
Repka 31 Опубликовано 6 Июня 2012 Поделиться Опубликовано 6 Июня 2012 Что надо сделать, что бы в игре с разрешением 800х600 пропорции были как на широкоформатном мониторе 16х9? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705399
Artos 99 Опубликовано 7 Июня 2012 Поделиться Опубликовано 7 Июня 2012 (изменено) Возвращаясь к вопросу (Shredder) о функции set_visual_name: Довольно странная и возможно кому-то интересная функция. Как "правильно" она должна работать или как "правильно" ее использовать - можем пока только предполагать. Информация пока такова: 1. Функция, вызываемая для гейм-об'екта, устанавливает именно гейм-об'екту указываемый визуал, совершенно не обращаясь к серверной копии этого об'екта (каких-либо манипуляций с нет-пакетами не обнаружено). Обращаю внимание, что обычно смена визуала идет от обратного, т.е. заменяется серверному об'екту и, переводом в оффлайн и обратно, параметры передаются соответствующей копии гейм-об'екта. 2. По единственному практическому примеру из исходной игры можно заметить, что смена визуала разработчиками предусматривалась в самом начале активизации метода net_spawn в биндере сталкера. При чем(!), судя по месту строк, т.е. до: object_binder.net_spawn(self, server_object) - предполагаю, что тут происходит некая синхронозация серверного и клиентского об'ектов в движке игры. НПС, получив таким образом новый визуал вполне адекватно выглядит и анимации штатные. Имеется особенность: - если визуал менять на точно такой же - НПС немного повышает свою защиту/иммунитеты; - чем более отличен по типу новый визуал от прежнего - тем неубиваемее стновится НПС ... 3. В случае, если визуал "не родной" и функция замены визуала вызывается несколько позже чем в методе net_spawn, хотя бы из level.client_spawn_manager():add(...), что практически одномоментно с нет-спавном, визуал/модель НПС сворачивается в "клубок" и начинает "ползать" по локации, имитируя поведения самого НПС. Т.е. "ходит", порой зарываясь в грунт, стреляет, виден на карте, ... "Корявость" визуала вероятно имеет причиной рассинхронизацию серверной и клиентских копий об'екта из-за временнОй задержки. 4. Если такого НПС, с нормальным визуалом/моделью или свернутой в клубок, отправить в оффлайн и обратно (или сэйв-лоад) - НПС восстанавливает свой первоначальный визуал и свойства ... Это вероятно можно использовать для неких эффектов временной маскировки/мимикрии/временного бессмертия и др. ... Вот такая хитрая и малопонятная, но возможно интересная функция set_visual_name имеется в ЗП. ;-) Изменено 7 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705575
Shredder 49 Опубликовано 7 Июня 2012 Поделиться Опубликовано 7 Июня 2012 Хочу добавить, что при "комках" случались вылеты, в логе было что-то типа error stalker in visual. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705581
Shredder 49 Опубликовано 8 Июня 2012 Поделиться Опубликовано 8 Июня 2012 Возвращаюсь к теме визуала, хотя здесь скорее всего вопрос по нет-пакетам (туго у меня с ними). Сначала объясню на словах, что делаю, потом код. Мне нужно в первый спавн сталкера сменить ему визуал и установить флаг, что визуал сменён, чтобы при следующем спавне уже не менять визуал. Для этого я в файле se_stalker.script добавляю этот флаг self.not_first_spawn = false в функцию se_stalker:__init . В функции сохранения/записи в этом же файле добавляю соответственно в se_stalker:STATE_Write(packet) строку packet:w_bool(self.not_first_spawn), а в функцию se_stalker:STATE_Read(packet, size) строку self.not_first_spawn = packet:r_bool() в самом конце функций. В функцию se_stalker:switch_offline() в начале ставлю self.not_first_spawn = true. Для работы с нет-пакетами использую функции из SGM-мода. В первый спавн сталкера я нет-пакетом заменяю визуал. Чтобы изменения коснулись клиентского объекта - отправляю его в оффлайн, а потом обратно в онлайн. Но почему то иногда флаг спавна лута death_droped получается установлен в true ещё до смерти сталкера, из-за этого при убийстве у него появляются гармошка, гитара, кпк и т.д. Я подозреваю, что как раз в функциях _p.read_stalker_params, _p.write_stalker_params, которые как раз работают с нет-пакетом, тоже нужно внести изменения, чтобы они правильно записывали/читали новый параметр not_first_spawn, но не могу сообразить, что нужно добавить. Помогите пожалуйста. Может есть более лёгкий способ запомнить, что сталкер уже появлялся на свет? function se_stalker:__init (section) super (section) self.ini = nil self.ini_initialized = false self.smart_terrain_conditions = nil self.smart_terrain_conditions_initialized = false -- этот флаг берётся из работы смарта -- true = всегда в онлайне -- false = всегда в офлайне -- condlist = условие, которое отпределяет true или false -- nil = смарту всё равно self.job_online = nil self.job_online_condlist = nil self.death_droped = false --'Генерил ли персонаж выпадаемые предметы или нет. self.not_first_spawn = false --'Указывает, что сталкер заспавнился первый раз self.m_registred = false self.sim_forced_online = false if db.offline_objects[self.id] == nil then db.offline_objects[self.id] = {} end self.board = sim_board.get_sim_board() end function se_stalker:switch_offline() self.not_first_spawn = true _callbacks.on_npc_switch_offline(self) cse_alife_human_stalker.switch_offline(self) end -------------------- function se_stalker:STATE_Write(packet) cse_alife_human_stalker.STATE_Write (self, packet) if self.online then packet:w_stringZ(tostring(level and level.object_by_id(self.id) and level.object_by_id(self.id):level_vertex_id())) else packet:w_stringZ(tostring(db.offline_objects[self.id] and db.offline_objects[self.id].level_vertex_id)) end packet:w_stringZ(tostring(db.offline_objects[self.id] and db.offline_objects[self.id].active_section)) packet:w_bool(self.death_droped ) packet:w_bool(self.not_first_spawn) end -------------------- function se_stalker:STATE_Read(packet, size) cse_alife_human_stalker.STATE_Read (self, packet, size) if self.script_version > 10 then local old_lvid = packet:r_stringZ() if db.offline_objects[self.id] == nil then db.offline_objects[self.id] = {} end db.offline_objects[self.id].active_section = packet:r_stringZ() if db.offline_objects[self.id].active_section == "nil" then db.offline_objects[self.id].active_section = nil end if old_lvid ~= "nil" then db.offline_objects[self.id].level_vertex_id = tonumber(old_lvid) end end self.death_droped = packet:r_bool() self.not_first_spawn = packet:r_bool() end function read_stalker_params(id) local sobj if type(id) == "number" then sobj = alife():object(id) else sobj = id id = sobj.id end if sobj then stpk:w_begin(0) uppk:w_begin(0) sobj:STATE_Write(stpk) sobj:UPDATE_Write(uppk) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(2) uppk:r_seek(2) local ret = {} -- cse_alife_trader_abstract properties ret.money = stpk:r_s32() ret.specific_character = stpk:r_stringZ() ret.trader_flags = stpk:r_s32() ret.character_profile = stpk:r_stringZ() ret.community_index = stpk:r_s32() ret.rank = stpk:r_s32() ret.reputation = stpk:r_s32() ret.character_name = stpk:r_stringZ() -- cse_alife_object properties ret.game_vertex_id = stpk:r_u16() ret.distance = stpk:r_float() ret.direct_control = stpk:r_s32() ret.level_vertex_id = stpk:r_s32() ret.object_flags = stpk:r_s32() ret.custom_data = stpk:r_stringZ() ret.story_id = stpk:r_s32() ret.spawn_story_id = stpk:r_s32() -- cse_visual ret.visual_name = stpk:r_stringZ() ret.upd_extra_data=read_extra(uppk,size) ret.extra_data=read_extra(stpk,size) return ret end return nil end -- таблица параметров и id на входе function write_stalker_params(ret,id) local sobj if type(id) == "number" then sobj = alife():object(id) else sobj = id id = sobj.id end if sobj then stpk:w_begin(0) uppk:w_begin(0) -- cse_alife_trader_abstract properties stpk:w_s32(ret.money) stpk:w_stringZ(ret.specific_character) stpk:w_s32(ret.trader_flags) stpk:w_stringZ(ret.character_profile) stpk:w_s32(ret.community_index) stpk:w_s32(ret.rank) stpk:w_s32(ret.reputation) stpk:w_stringZ(ret.character_name) -- cse_alife_object properties stpk:w_u16(ret.game_vertex_id) stpk:w_float(ret.distance) stpk:w_s32(ret.direct_control) stpk:w_s32(ret.level_vertex_id) stpk:w_s32(ret.object_flags) stpk:w_stringZ(ret.custom_data) stpk:w_s32(ret.story_id) stpk:w_s32(ret.spawn_story_id) -- cse_visual stpk:w_stringZ(ret.visual_name) write_extra(uppk,ret.upd_extra_data) write_extra(stpk,ret.extra_data) local size=stpk:w_tell() stpk:r_seek(2) uppk:r_seek(2) sobj:STATE_Read(stpk,size) sobj:UPDATE_Read(uppk) end end local new_visual = visuals[math.random(1,#visuals)] local npc_data = _p.read_stalker_params(server_obj) if not npc_data then return end npc_data.visual_name = new_visual _p.write_stalker_params(npc_data, server_obj) need_change[npc:id()] = 'turn_off' function vch_update() for id, state in pairs(need_change) do if state then convert_npc(id, state) end end end function convert_npc(npc_id, state) local npc=level.object_by_id(npc_id) local serv_obj=alife():object(npc_id) if not serv_obj then need_change[npc_id]=nil return end if npc == nil and state == "turn_on" then serv_obj.sim_forced_online = true if serv_obj.online ~= true then serv_obj:switch_online() end need_change[npc_id]=nil elseif npc and state == "turn_off" then if _m.is_stalker(serv_obj) then npc:clear_animations() if serv_obj:alive() then npc:stop_talk() end end serv_obj:switch_offline() need_change[npc_id]="turn_on" end end Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-705947
Artos 99 Опубликовано 9 Июня 2012 Поделиться Опубликовано 9 Июня 2012 Shredder 1. Я бы не советовал увлекаться добавлениями в нет-пакет своих новых значений, тем более, как ты пишешь "туго у меня с ними". Работа с нет-пакетами требует аккуратности и ТОЧНОГО понимания что/куда ты пишешь/читаешь, тут каждый(!) байт/бит важен. 2. Тобою используются кастрированные функции чтения/записи нет-пакетов! Сам посмотри, все что в нет-пакетах после параметра visual_name - считывается в общую кучу extra_data и твоя читалка писалка (соответственно и ты) никак не знает ни о каких death_droped и тем более добавленном тобою not_first_spawn. Соответственно, в лучшем случае, ты просто теряешь этот новый параметр, в худшем - искажается нет-пакет. Что мешает тебе в качестве флага о уже свершившемся факте смены физуала использовать или инфопоршень или просто писать переменную в pstor твоему об'екту, если конечно подобное только для онлайновых важно? Даже просто прочитать из нет-пакета имеющийся визуал у непися и принять решение - стОит его менять иль нет - это тоже вариант. В общем, если хочешь ставить метку именно в нет-пакет, то и подбери соответствующий инструмент чтения/записи и освой работу с нет-пакетами на дОлжном уровне. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-706137
karavan 36 Опубликовано 10 Июня 2012 Поделиться Опубликовано 10 Июня 2012 (изменено) Shredder и Artos NPC в свернутом состоянии похож на модель без указанной анимации, как это происходит в СДК при просмотре анимаций. Возможно при смене вижуала модели просто не успевает назначить анимации. Может причина разгадка в скриптах назначающих анимки НПС? Пишу не из пустого места, лишь бы что-то написать. Я возвращал анимации из ЧН в ЗП сидения у коста, затрагивая файлы указывающие какую за какой анимку проигрывать, в одном из случаев получил именно такие комки. Изменено 10 Июня 2012 пользователем karavan Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-706304
karonbaron 2 Опубликовано 10 Июня 2012 Поделиться Опубликовано 10 Июня 2012 Ребята, такой вопрос: кто-нибудь создавал новые укрытия от выбросов? Я тут наковырял кое-что. Значит, в распакованном all.spawn создается спейс-рестриктор с именем zat_surge_hide_b42 (это из имеющихся). Вот его [227] ; cse_abstract properties section_name = space_restrictor name = zat_surge_hide_b42 position = 26.2803802490234,5.27456712722778,367.865234375 direction = -0.0748270004987717,0.522725999355316,0.00596300000324845 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 293223 object_flags = 0xffffff3e ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 15.4629888534546,0,0 shape0:axis_y = 0,6.51879787445068,0 shape0:axis_z = 0,0,15.4629888534546 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 Далее, регистрируем это укрытие в файле configs\misc\surge_manager.ltx. И все, будет работать? Или где-то еще что-то нужно прописать?.. Есть мысли по этому вопросу? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-706307
Artem_K. 75 Опубликовано 10 Июня 2012 Поделиться Опубликовано 10 Июня 2012 Надеюсь туда зашел. В общем решил освоить ЗП, подключил n-количество локаций, заспавнил на них некоторое количество разных физ. объектов и тп, заспавнить нпс я пока не смог, по этому решил добавить аномалии и артефакты, с аномалиями проблем не возникло, а вот с артефактами не "срослось". Делал все по статье из Сталкер Инсайд, но артефакты в аномалии так и не появились. Может на новых локациях поцесс добавления артефактов отличается, может где-то, что-то надо еще прописать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-706308
Clayman 104 Опубликовано 10 Июня 2012 Поделиться Опубликовано 10 Июня 2012 (изменено) karonbaron, об этом уже много раз писалось и статья на вики есть. Нужно зарегить смарт в simulation_objects_props. ltx с параметром surge = 1 и создать работы (way points типа смарт_surge_1_walk (look)), чтобы нпс юзали укрытие. Artem_K., процессом появления артов управляет спавн-элемент anomal zone. Прописывай его конфиг по аналогии с ЗП-шными (в gamedata\configs\scripts\уровень\anomaly), должны быть вей-поинты для спавна артов и прочие параметры. Это в теме обсуждалось, ищи поиском. Изменено 10 Июня 2012 пользователем Clayman Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/211/#findComment-706316
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти