Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
FANAT 117 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 KD87, В НС к примеру у Гарика все время растет ранг, а ведь он в баре, и ни кого не мочит.. Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения' Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации Ссылка на комментарий
Max_Plohih 4 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 Я про тоже. Может какая-то функция повышает ранг рандомно? Мой мод. Ссылка на комментарий
KD87 718 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 FANAT, да хоть за стояние сталкерам увеличивай ранг, дело-то твое. Методы я тебе привел. Ссылка на комментарий
Полтергейст 37 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 Ранг добавляется за хождение по smart_terrain'ам. В AMK помимо этого в оффлайн боях добавляется за победу. Ссылка на комментарий
Saruman 8 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 (изменено) гарик с жориком наверное на кулочках соревнуются, как уменьшит начисление рейтинга им? Будешь продолжать писать без соблюдения правил форума по грамматике - будут последствия. --/Artos Изменено 25 Декабря 2011 пользователем Artos 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 Добавление нового транспорта в сталкер Ссылка на комментарий
Wolix 0 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 Artos, в продолжении вопроса увеличения респауна появления врагов... Всё Вами сказанное правильно, каждая загрузка обновляет "респавн" и все враги появляютя вновь... Время уменьшил сейчас путём простого изменения переменных в таблице спавнеров "...local idle_spawn_preset = ... ". Это помогло - теперь все появляются с той переодичнстью, что мне нужна... Но любая загрузка их обновляет, как Вы и говорили. То есть надо изменить он-лайн респавн, а при смене локаций пусть обнуляются. Чтобы мои загрузки (когда умру или просто вхожу-выхожу из игры) не влияли - не обнуляли спавн, а смена локаций обнуляет, как в оригинале и офф-лайн спавн был оригинальный. Как отредактировать для этого файл se_respawn.script и после каких именно строк? Заранее спасибо... помогите пожалуйста Ссылка на комментарий
Artos 99 Опубликовано 25 Декабря 2011 Поделиться Опубликовано 25 Декабря 2011 (изменено) Wolix, довольно невнятно описано то что требуется ... Wolix: Чтобы мои загрузки (когда умру или просто вхожу-выхожу из игры) не влияли - не обнуляли спавн это и так у всех и всегда, т.к. при этом ничего(!) в сэйвы не заносится (сэйвы просто не создаются). Wolix: ... смена локаций обнуляет, как в оригинале и офф-лайн спавн был оригинальный - а вот это говорит о том, что ты пока так и не понял суть твоей проблемы ... Пока кратко повторю: Респавнеры в оригинальной игре: а) не спавнят в онлайне (если им специально не задан параметр respawn_radius) б) не запоминают в сэйвы времена последних спавнов. Т.о. при каждом запуске сохраненной игры все респавнеры переинициализируют свои настройки респавна, что приводит в большинстве случаев к вбросу в игру новой порции объектов спавна. Отличие в случае перехода на др. локацию от простой загрузке сэйва на локации в том, что прекрашается респавн на новой локации (на которую перешел актор) и возобновляется на той, которую покинул. Т.к. не понял пока что же конкретно тебе требуется оставить как есть, а что изменить, то и конкретных кодов не могу привести для реализации того чтто неясно. Могу привести довольно несложный вариант доработки кода, когда все респавнеры начинают запоминать время спавна и соответственно будут спавнить только по заложенным параметрам без зависимости от перезагрузок, что конечно же затронет и оффлайновые и онлайновые респавнеры. Изменено 25 Декабря 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
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. Понятие "динамический худ" может относиться к чему угодно, та же шкала радиации, введенная во многе моды - динамический худ шкалы. Если ты об "интерактивном худе" для противогазов/шлемов из АМК-мода, то там звук уже в наличии. Бери и смотри как 'добавлено', в чем вопрос-то? Ссылка на комментарий
Artos 99 Опубликовано 26 Декабря 2011 Поделиться Опубликовано 26 Декабря 2011 Wolix Смогу ответить только вечером если будет уточнен вопрос. Неужели неясно, что ставить критериями относительные и/или расплывчатыми понятия - только размусоливает вопрос, а не решает его. Хотя вроде как "максимально оригинальный скрипт" - понятно, но(!) максимально по символам (с минимумом правок) или с максимально оригинальныи алгоритмом (т.е. правки не имеют значения). "внести только эти изменения" - процитировав полностью последние посты по теме (заодно и не относящееся к делу), думаешь понятн стало что подразумевается под 'только эти'? "при смене локаций пусть остаётся такой какой в игре" - т.е. из всех локация для тех с которой и кудв при переходе сбрасывать замомненные времена? И это при желании "максимально оригинальный скрипт"? И ... хотел бы уточнить, т.к. в некотором замешательстве, и получить ответ: Weeko == Wolix: (т.е. одно лицо?) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Seruva 87 Опубликовано 28 Декабря 2011 Поделиться Опубликовано 28 Декабря 2011 Как можно самому исправить вот такое недоразумение: Это я наблюдал в "AMK 1.4.1. + NLC 5.08 + НС3 - ZaZaZy Edition v3.0".В каких файлах стоит покавыряться и каким образом,чтобы оружие было где положено,а не в стороне? DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий
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 Добавление нового транспорта в сталкер Ссылка на комментарий
Wolix 0 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Добрый вечер... Как прописываются детекторы? как понял мало их задействовать у торговцев, их надо ещё где-то включать.... Ссылка на комментарий
Seruva 87 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 (изменено) saruman_ten,благодарствую.Вот результат правки: . Подойдет ли данная правка и к другим стволам(если таковые нелепости повторятся) в данной ситуации?Как я понял это координаты положения ствола в пространстве локации,так? Изменено 29 Декабря 2011 пользователем Seruva DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий
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 Добавление нового транспорта в сталкер Ссылка на комментарий
Seruva 87 Опубликовано 29 Декабря 2011 Поделиться Опубликовано 29 Декабря 2011 Значит надо взять на вооружение:ствол в стороне от тела-неверный страп параметр(в школе изучал немецкий, поэтому читать могу неверно). DSH - настраиваемые правки -Яндекс дискРастительность "Пустошь" в папку mods Ссылка на комментарий
Читак 0 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Подскажите пожалуйста как сделать чтобы мутант (например собака) передвигалась по определённому пути с помощью smart_terrain? Ссылка на комментарий
Artos 99 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Читак, почитай стати на вики-сайтах по логике и в частности по схеме 'walker' (для монстров). "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Читак 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 пользователем Читак Ссылка на комментарий
KD87 718 Опубликовано 31 Декабря 2011 Поделиться Опубликовано 31 Декабря 2011 Читак, как называется путь в all.spawn? Ссылка на комментарий
Читак 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 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти