Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-847221
Artos 99 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 (изменено) Wolix, довольно невнятно описано то что требуется ... Wolix: Чтобы мои загрузки (когда умру или просто вхожу-выхожу из игры) не влияли - не обнуляли спавн это и так у всех и всегда, т.к. при этом ничего(!) в сэйвы не заносится (сэйвы просто не создаются). Wolix: ... смена локаций обнуляет, как в оригинале и офф-лайн спавн был оригинальный - а вот это говорит о том, что ты пока так и не понял суть твоей проблемы ... Пока кратко повторю: Респавнеры в оригинальной игре: а) не спавнят в онлайне (если им специально не задан параметр respawn_radius) б) не запоминают в сэйвы времена последних спавнов. Т.о. при каждом запуске сохраненной игры все респавнеры переинициализируют свои настройки респавна, что приводит в большинстве случаев к вбросу в игру новой порции объектов спавна. Отличие в случае перехода на др. локацию от простой загрузке сэйва на локации в том, что прекрашается респавн на новой локации (на которую перешел актор) и возобновляется на той, которую покинул. Т.к. не понял пока что же конкретно тебе требуется оставить как есть, а что изменить, то и конкретных кодов не могу привести для реализации того чтто неясно. Могу привести довольно несложный вариант доработки кода, когда все респавнеры начинают запоминать время спавна и соответственно будут спавнить только по заложенным параметрам без зависимости от перезагрузок, что конечно же затронет и оффлайновые и онлайновые респавнеры. Изменено 25 Декабря 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-656804
Wolix 0 Опубликовано 26 Декабря 2011 Поделиться Опубликовано 26 Декабря 2011 Weeko, насчет "НЕ РАБОТАЕТ": 1. Не стОит отождествлять то, что ты удосужился прочесть ... со всем-всем-всем. И на этом форуме, при желании, можно найти гораздо больше и подробнее по этому вопросу. 2. Если ты не видишь что-то, то это не значит что это НЕ работает. О цифирьках: Формат времени указан и в названии метода (setHMSms): Н,M,S ms - т.е. час,минута,секунда,милисекунда. Уж это можно найти в ФАКах или самому догадаться. Т.о. в строке кода респавнера, в которой задается пауза для респавна (idle_time) стоит исходная пауза: 0 часов, 0 минут, 0 секунд, далее идут милисекунды, хотя множитель 1000 превращает их по сути в секунды. Сделано это для удобства задания рандомного диапазона. Твой вопрос о "что за цифры?" - говорит о низком знании (если не о полном незнании) языка Lua, на котором написаны скрипты игры. Код: math.random(self.idle_spawn_min, self.idle_spawn_max) читается как: "получение случайного числа из диапазона заданного минимальным значением (1-м числом self.idle_spawn_min) и максимальным (2-м числом - self.idle_spawn_max)[/)". Т.е. из параметров каждого респавнера считываются минимум и максимум и из них расчитывается пауза для следующего респавна объектов. О том КАК это работает: Если в исходном случае пауза задается милисекундами, то во втором случае вместо 0 часов применяется рандомный метод и для часов, которые и указываются как минимум и максимум: (Первое число, Второе число). Т.о. вместо стандартной паузы (medium) примерно в 60*60*1000 милисекунд = 360 секунд = 60 минут = 1 час в измененном варианте к этим секундам задаются и часы. Но(!) огорчу тебя, показав как это "РАБОТАЕТ НЕ РАБОТАЯ": 1. Все эти параметры для пауз вступают в силу ПОСЛЕ события спавна, т.е. при старте игры каждый респавнер спавнит по определенным ему условиям объекты т.к. изначально пауза ОБНУЛЕНА и только после этого наступает пауза до следующего респавна. 2. Установленные паузы НЕ сохраняются в сэйвах и т.о. при КАЖДОМ перезапуске игры эти паузы вновь обнуляются и респавнеры спавнят объекты. 3. Даже если ты попробуешь играть без сохранений - все равно при переходе на другую локацию игра перезапускается и ... все респавнеры вновь обнуляют свои паузы и вновь спавнят объекты. Т.о. чем больше перезапусков в игре - тем чаще респавнятся объекты ... если у них нет условий запрета на спавн. Ну уж если так приспичило отключить респавнеры, то стОит попробовать изменить строку (267) в методе on_register(): -- производим первичную инициализацию self.respawn_time = game.CTime() --/ время след.респавна приравнено к текущеу игровому времени на типа: local idle_time = game.CTime() --/ текущее игровое время idle_time:setHMSms( 8, 0, 0, 0 ) --/ тайм-аут в 8 часов self.respawn_time = game.get_game_time() + idle_time --/ задаем начальный тайм-аут - где каждому респавнеру при старте игры назначается пауза в 8 часов. Но, ИМХО, это уже не ... та игра. Респавн всего в зоне будет отложен каждый раз на 8 часов при каждом перезапуске игры! (кстати, пока была поднята тема) Некоторые размышления о доработке респавнеров для тех, кто понял о чем и может воспользоваться: 1. Респавнеры не сохраняют время последнего респавна, что приводит при каждом (пере)запуске игры к спавну объектов, что порою нежелательно. Для того, чтобы тайм-аут спавна запоминался достаточно чуть доработать методы чтения/записи серверного объекта респавнеров (см. se_respawn.script). Заодно можно ввести (на всякий случай) защиту от переполнения кол-ва заспавненных объектов респавнерами, т.к. разрядность байта хранения этого кол-ва позволяет хранить до 255 и при переполнении приводит к сбросу/искажению. Итак правим читалку/запоминалку: -- сохранение function se_respawn:STATE_Write( packet ) cse_alife_smart_zone.STATE_Write( self, packet ) local table_size = table.getn(self.spawned_obj) if table_size > 255 then --/#+# проверка переполнения --printf("STATE_Write:=[%s/%s],Cnt=[%s]:<%s>", self:name(), self.id, table_size, "Warning!") --/#~# table_size = math.min(table_size,255) --/ усекаем до объема хранилища (или потребного) end packet:w_u8(table_size) for i=1,table_size do packet:w_u16(self.spawned_obj[i]) end --/#+# запоминаем тайм-аут респавнера if self.last_spawn_time_present then --/ спавн уже был? packet:w_u8(1) utils.w_CTime(packet, self.respawn_time) --/ записываем время след.спавна else packet:w_u8(0) end end -- восстановление function se_respawn:STATE_Read( packet, size ) cse_alife_smart_zone.STATE_Read( self, packet, size ) if editor() then return end local table_size = packet:r_u8() for i=1,table_size do table.insert(self.spawned_obj, packet:r_u16()) end --/#+# считываем тайм-аут респавнера if not packet:r_eof() then --/ еще не конец пакета? (для совместимости со 'старыми' сэйвами) self.last_spawn_time_present = packet:r_bool() if self.last_spawn_time_present then self.respawn_time = utils.r_CTime(packet) end end end Для того, чтобы регистрация респавнеров в игре не затирала бы запомненные значения потребуется небольшая правка метода регистрации: function se_respawn:on_register() --/ ... начальные коды --/ производим первичную инициализацию (если нет времени последнего спавна) if not (self.last_spawn_time_present and self.respawn_time) then self.respawn_time = game.CTime() end --/ ... заключительные коды end и в методе 'execute' добавим инициализацию флага спавна чтобы запоминать состоявшиеся спавны: function se_respawn:execute() --/ ... начальные коды self.last_spawn_time_present = true --/#+# флаг if self.respawn_time < game.get_game_time() then --/ ... заключительные коды end 2. Еще один недостаток респавнеров - отсутствие возможности задавать начальную паузу для спавна. Т.е. если нам требуется чтобы некий респавнер респавнил бы объекты с периодом в 24 часа, то ... все одно он будет спавнить каждый раз при запуске игры, если актор не на текущей локации (при отсутствии спец.ограничителей). Ведь при запуске новой игры все респавнеры по сути свободны для спавна и ... требуется каждому прописывать некое услове для начала спавна (инфопоршни и т.п.) Если ввести в параметры респавнеров дополнительный, например назовем : 'respawn_first_idle' в котором в секундах игрового времени задавать начальную паузу для спавна, то в купе с другими условиями, дает довольно простое средство задавать начальную паузу. Таким образом доработанный вышеприведенный код в регистраторе респавнеров может быть таким: Хочется оставить максимально оригинальный скрипт, и внести только эти изменения - победить обнуление респавна при перезапуске игре, но при смене локаций пусть остаётся такой какой в игре. function se_respawn:on_register() --/ ... начальные коды --/ производим первичную инициализацию времени спавна if not (self.last_spawn_time_present and self.respawn_time) then --/#+# читаем начальную паузу спавна объектов (при старте игры) local iPause = r_num(ini, "respawn", "respawn_first_idle", nil) --/ sec if iPause then --/ имеется пауза (в игр.секундах) local iShift = math.floor(iPause*0.2) --/ погрешность (sec) local idle_time = game.CTime() --/ текущее игровое время idle_time:setHMSms(0,0,iPause+math.random(-iShift,iShift),0) --/ тайм-аут self.respawn_time = game.get_game_time() + idle_time --/ устанавливаем начальный тайм-аут self.last_spawn_time_present = true --/#+# флаг else --/ ставим текущее игровое время self.respawn_time = game.CTime() end end --/ ... заключительные коды end , а уж пользоваться этим или нет - каждый модмейкер сам может решить, была бы возможность. Примечание: Собственно почти все вышеизложенное можно взлянуть в кодах Симбион-мода, на котором и был доведен до ума и проверен. P.S. Подправил коды, а то при перенесении из рабочих кодов допустил пару неточностей/дублей. Добавлено через 8 мин.: =============================================================== Max_Plohih, ты хоть понял о чем спросил? 1. Звук противогаз НЕ издает, издавать звук может тот, кто в противогазе (озвучка дыхания). 2. Понятие "динамический худ" может относиться к чему угодно, та же шкала радиации, введенная во многе моды - динамический худ шкалы. Если ты об "интерактивном худе" для противогазов/шлемов из АМК-мода, то там звук уже в наличии. Бери и смотри как 'добавлено', в чем вопрос-то? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-656858
Artos 99 Опубликовано 26 Декабря 2011 Поделиться Опубликовано 26 Декабря 2011 Wolix Смогу ответить только вечером если будет уточнен вопрос. Неужели неясно, что ставить критериями относительные и/или расплывчатыми понятия - только размусоливает вопрос, а не решает его. Хотя вроде как "максимально оригинальный скрипт" - понятно, но(!) максимально по символам (с минимумом правок) или с максимально оригинальныи алгоритмом (т.е. правки не имеют значения). "внести только эти изменения" - процитировав полностью последние посты по теме (заодно и не относящееся к делу), думаешь понятн стало что подразумевается под 'только эти'? "при смене локаций пусть остаётся такой какой в игре" - т.е. из всех локация для тех с которой и кудв при переходе сбрасывать замомненные времена? И это при желании "максимально оригинальный скрипт"? И ... хотел бы уточнить, т.к. в некотором замешательстве, и получить ответ: Weeko == Wolix: (т.е. одно лицо?) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-656863
Seruva 98 Опубликовано 28 Декабря 2011 Поделиться Опубликовано 28 Декабря 2011 Как можно самому исправить вот такое недоразумение: Это я наблюдал в "AMK 1.4.1. + NLC 5.08 + НС3 - ZaZaZy Edition v3.0".В каких файлах стоит покавыряться и каким образом,чтобы оружие было где положено,а не в стороне? DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657495
Saruman 8 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Seruva, ;--STRAP PARAMETERS----------------------------------------------------------------- strap_position = -0.13,-0.25,0.2 ; position (offset) and orientation of the weapon when it is strapped strap_orientation = -10,-5,10; (3rd person view in degrees) в конфиге этого ствола S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1 Vkontakte Добавление нового транспорта в сталкер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657536
Wolix 0 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Добрый вечер... Как прописываются детекторы? как понял мало их задействовать у торговцев, их надо ещё где-то включать.... Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657751
Seruva 98 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 (изменено) saruman_ten,благодарствую.Вот результат правки: . Подойдет ли данная правка и к другим стволам(если таковые нелепости повторятся) в данной ситуации?Как я понял это координаты положения ствола в пространстве локации,так? Изменено 29 Декабря 2011 пользователем Seruva DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657760
Saruman 8 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Seruva, я тебе вообше чисто случайный кусок конфига кидал)) это относительно центра координат модели S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1 Vkontakte Добавление нового транспорта в сталкер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657788
Seruva 98 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Значит надо взять на вооружение:ствол в стороне от тела-неверный страп параметр(в школе изучал немецкий, поэтому читать могу неверно). DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-657825
Читак 0 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Подскажите пожалуйста как сделать чтобы мутант (например собака) передвигалась по определённому пути с помощью smart_terrain? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658239
Artos 99 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Читак, почитай стати на вики-сайтах по логике и в частности по схеме 'walker' (для монстров). "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658253
Читак 0 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 (изменено) Артос, логику я прописал. Например мне нужно чтобы собака пошла в определённую точку. Вот логика: [logic@krai_dog] active = mob_walker@test_mob [mob_walker@krai_dog_1] path_walk = krai_dog_1 Я вообще думаю прописал всё верно, но что-то напутал в спавне смарта. Потому что собака просто ничего не делает, как будто в него и не попадала, хотя я ей уже в спавне прописал по умолчанию этот смарт террейн. Совет: обращайся к кому-либо, используя оригинальное написание ника. Для этого даже кнопка есть. Cyclone Добавлено через 108 мин.: Блин сам у себя ошибку нашёл)) С названиями попутал) test_mob и krai_dog_1 P.S. Но от этого результат не меняется. После исправления всё то же самое. Изменено 31 Декабря 2011 пользователем Читак Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658340
KD87 722 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Читак, как называется путь в all.spawn? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658375
Читак 0 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 KD87, путь в all.spawn (type = krai_dog) ссылается на скрипт гулага в gulag_escape.script: if type == "krai_dog" then t = { section = "logic@krai_dog", idle = 0, prior = 5, state = {0}, online = true, in_rest = "", out_rest = "" } table.insert(sj, t) end Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658377
KD87 722 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Читак, path_walk - явное указание пути из all.spawn. Название пути должно содержать префикс гулага, но в логике он не указывается. Пример: полное имя - dar_control_poltergeist_walk_1, в логике указывается path_walk = walk_1. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658380
Читак 0 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 KD87, тоесть в way_l01_escape.ltx (Например) будет название пути [krai_dog_walk_1], а в логике просто path_walk = walk_1? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658426
KD87 722 Опубликовано 1 Января 2012 Поделиться Опубликовано 1 Января 2012 Читак, именно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658492
Читак 0 Опубликовано 1 Января 2012 Поделиться Опубликовано 1 Января 2012 KD87, за этот совет спасибо! Но всё равно после исправления ничего не происходит. По теории можно сделать выводы что собака просто не попадает в этот смарт либо он не создаётся, потому что раньше, если бы при стольких ошибках собака попала в смарт игра бы вылетела по любому. А она просто дальше бродит по локации... Даже и не знаю в чём проблема, видимо в спавне или в координатах. Координаты спавна собаки: position = 178.578369140625,20.1452732086182,77.9087600708008 game_vertex_id = 23 distance = 50 level_vertex_id = 529018 Координаты спавна смарта: position = 178.578369140625,20.1452732086182,77.9087600708008 game_vertex_id = 23 distance = 0 level_vertex_id = 529018 Радиус смарта shape0:radius = 2. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658614
ObJIom4uk 0 Опубликовано 1 Января 2012 Поделиться Опубликовано 1 Января 2012 Подскажите кто нибуть как сделать облёт камеры (как на агропроме) если такое возможно конечно без вскрытия двига Извиняюсь если не в ту тему Добавлено через 2 мин.: Подскажите кто нибуть как сделать облёт камеры (как на агропроме) если такое возможно конечно без вскрытия двига Извиняюсь если не в ту тему Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658647
Artos 99 Опубликовано 1 Января 2012 Поделиться Опубликовано 1 Января 2012 Читак, твои вопросы сильно напоминают поиски черной кошки в темной комнате ... А вообще она там есть? Читак: По теории можно сделать выводы что собака просто не попадает в этот смарт либо ... А может быть стОит не задаваться вопросом о нерабочей логике (хотя и тут у тебя описки/ошибки), а определиться с базовой информацией?! А заспанилась ли собака, а создан ли гулаг, а попала ли собака в гулаг, а получила ли она именно эту работу, ...? И т.д. и т.п. Без ответов на эти вопросы не имеет смысла заниматься погадалкаи о "а почему логика собаки не работает". "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/392/#findComment-658657
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти