abramcumner 1 145 Опубликовано 12 Июня 2011 herurg, это вольный и не совсем точный пересказ se_respawn.script и xr_gulag.script Если коротко, то респавнеры в ТЧ при спавне пытаются пристроить НПЦ в какой-нибудь гулаг. Если не получается, то заспавненный НПЦ сразу же уничтожается. По-видимому ты для своих изломов не сделал гулага, вот респавнер якобы и не работал. Для принятия в гулаг нужно выполнить кучу условий: там должны быть свободные работы, НПЦ должен подходить гулагу по группировке и прочее... Одна из не точностей кстати, что на локации с респавнером должен быть гулаг. Гулаг может быть где угодно, главное чтобы НПЦ туда могли взять. В том же ТЧ все ровно наоборот - гулаги заполняются респавнерами, находящимися на других локациях. Из-за этого на свалке у ангара может возникать непрерывный поток бандитов, так как свалка фактически представляет собой перекресток для НПЦ, расходящихся по своим гулагам. Хочешь точно знать, что происходит - изучай скрипты, а так довольствуйся тем, что для респавнящихся НПЦ должно быть свободное место в гулаге Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 23 Июня 2011 (изменено) По делу: У тебя несколько раз вызывается self:Register(...), но метода ms:Register(...) в файле нет - наводит на подозрения Register - функция из lua_help. Ставит в соответствие контрол и строчку. По этой строчке потом коллбеки привязываются к уи-событиям - первый параметр в функции AddCallback Ошибка скорей всего в том, что сначала контрол назвали btn_1, а потом сделали коллбек btn_1 Можно попробовать обозвать коллбек например OnBtn1Pressed Изменено 23 Июня 2011 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 28 Июня 2011 panzyuza, Может так: [smart_terrains] esc_lager = {=time_ust(6:8)} esc_fabrika_bandit = {!time_ust(6:8)} Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 28 Июня 2011 *Shoker*, функция add_restrictions(in_restrictions, out_restrictions) добавляет соответственно in и out рестрикторы Но способ то этот всеми используется, в том числе и в АМК для обхода аномалий. И это из-за него куча вылетов: в соседней теме очередной вылет, что недоступна точка пути. При удалении аномалии, которая у кого-нибудь в рестрикторах прописана, будет безлоговый вылет. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 28 Июня 2011 (изменено) А я думал, все используют старый метод, когда просто НПС поворачивается от аномалии. Спасибо за ответ. Надо будет глянуть, правда не совсем понятно как из аномалии in\out рестрикторы выдрать. ничего выдирать не надо. Все аномалии унаследованы от рестриктора. Просто передаешь таблицу из нужных аномалий в функцию и все. Посмотри как используется в АМК или в описании функций Маландринуса. Понятие in, out применяется уже к НПЦ. В in-рестрикторы НПЦ нельзя заходить, Из out-рестрикторов выходить. (Вроде так - лучше уточнить - все время путаю). То есть аномалии добавляются только в тот тип рестрикторов, куда нельзя входить. Обход без рестрикторов был в первых версиях у Red75, и то он потом на рестрикторах сделал, все остальные обходы делались на рестрикторах Суть в том, что хочу перед вызовом функции пустить счётчик, а после вызова функции остановить и глянуть, сколько времени прошло после вызова функции. Специально для этого есть класс в lua_help profile_timer. Изменено 28 Июня 2011 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 5 Августа 2011 А вот про watchdog интересно, как он должен работать? Вотчдог следит за тем не завис ли биндер ГГ. Работа основана на том, что вызовы апдейта для биндеров ГГ и НПЦ идут поочередно. Поэтому в начале actor_binder:update инициализируем какую-либо переменную (amk.oau_watchdog) значением 100 и после вызова функции или группы функций присваиваем меньшее значение. В конце actor_binder:update присваиваем этой переменной 0. В апдейте биндера НПЦ motivator_binder:update проверяем эту переменную на 0. Если биндер ГГ завис, то апдейт до конца не дойдет и переменная будет не нулевая. По значению переменной можно определить место зависания. Такую же шнягу можно провернуть и для биндеров НПЦ. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 17 Августа 2011 Виталкер, level.spawn в игре не работает. Используется в СДК. А дерется машина из-за того, что погружена немного в землю или в другое препятствие. Когда ты ее касаешься для машины активируется просчет физики и она выпрыгивает из земли, попутно убивая ГГ. При стрельбе просчет физики активируется издалека Надо просто чуток скорректировать координаты спавна машины Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 18 Августа 2011 Stalkersof, Кстати, а ты проверил - в твоих неисследованных областях аи-сетка то есть? А то НПЦ там не задержатся и убегут туда где аи-сетка есть Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 24 Августа 2011 Ulman, Эта таблица не используется Так население не уменьшишь Если по скрипту ниже пройдешь, увидишь, что все обращения к simMaxCount закомментированы Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 24 Августа 2011 abramcumner, да это вот только что тоже заметил, но ещё увидел, что одно обращение всё таки есть: local gl = simMaxCount[k] Это не оно? Если всё таки это не сработает, то каким способом можно уменьшить? Нет, даже по названию это функция для сбора статистики, на население никакого влияния не оказывает. Уменьшить можно только поставив скрипт для редкого респавна. В той же солянке он есть. В нем se_respawn.script как раз и правится. Ну или уменьшив население и количество гулагов Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 7 Сентября 2011 (изменено) _Призрак_, у машины небось стоит маленькая масса, а у гранаты большой импульс - обычная физика Скажи спасибо, что машина вообще не взрывается. Изменено 7 Сентября 2011 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 8 Сентября 2011 Mass, ) А зачем ты сделал, то что сделал? А если аборт переставить в начало функции, то вылезет очень много проблем и в оригинальной игре. Скажи в чем по-твоему заключаются проблемы? Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 15 Сентября 2011 (изменено) 3. По координатам респавнера, по которым разработчики его прописали, можно видеть, что место спавна бандитов - довольно закрытый уголок Кордона у заваленного прохода на ТД, т.е. возле АТП. Учитывая, что при выборе работы в гулагах учитывается и расстояние (выбирается работа ближайшего гулага), ясно, что разработчиками задумано, что бандиты заспавненые этим рестриктором должны в первую очередь попадать в АТП-шный гулаг 'esc_fabrika_bandit' (если там конечно были бы свободные работы). Неверно. В теории может и должны, но на практике такого никогда не будет. Не забывай, что мы не в топике по оригинальной игре и то, что давным давно уже сделано и работает в некоторых модах твое категоричное "неверно" и "никогда" опроверкает именно практикой! Не глаголь "истины" и не окажешся неправым. --/ Artos Когда этот респавнер заработает, гулаг с бандитами уже будет заполнен из других респавнеров. На практике бандиты из респавнера esc2_respawn_bandits_fabrika идут куда угодно, но не на esc_fabrika_bandit. Почему - смотри ниже. Если эти доводы не являются достаточно логичными и очевидными для слов о 'связи респавнера и гулага' - то ... справку от разработчиков я конечно не предоставлю, а дальше убеждать/доказывать - не намерен. Сама игра это доказывает: После выноса бандитов с АТП и пробежки за квестовой курткой для Шустрого, порой можно встретить в том районе заспавнившуюся именно этим респавнером. кучку бандитов, бредущих на АТП. Если их не трогать - они и оседают на АТП, зачистив его от разведчиков Толика (если те еще живы). Игра доказывает обратное - просто посмотри то, о чем говорил =VENOM= и все поймешь. В онлайне респавнеры не работают из-за неуказанного respawn_radius. Поэтому гулаги заполняются респавнерами, находящимися на другой локации. А бандиты идут вовсе и не на АТП - просто гейм-граф такой. Меньше пустопорожних измышлений, больше практики Поаккуратнее в выражениях, даже улыбаясь следует выбирать слова. А попрактиковаться тебе бы не помешало, а не зашориваться только на кодах оригинала. --/ Artos Добавлено через 19 мин.: =VENOM=, если хочешь, чтобы респавнеры работали в соответствии со своими названиями, то прописывай им respawn_radius. Но не уверен что это хорошая идея - может получаться как на свалке у ангара - непрерывный поток НПЦ. Сейчас от момента спавна до прибытия на точку проходит достаточно много времени именно из-за того, что НПЦ далеко идти от респавнера. А если бы все было как говорит Artos, то не успел бы обшмонать бандитов на АТП, как туда уже новые входят Оффтоп. Вообще надо сделать один респавнер на всех на Кордоне - типа в зону приходят. Он штампует сталкеров новичков. На кордоне посадить вербовщиков в долг/свободу/бандиты. Сталкеры подходят к ним, болтают и решают куда вступать. Собираются группами и дуют на базы группировок. А уже оттуда пусть расползаются по всей зоне В зомби пусть попадают зомбированные сталкеры, в монолит полу зомбированные. Типа симуляция. Ну или выставить им по одному респавнеру на базах. Изменено 15 Сентября 2011 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 20 Сентября 2011 *Shoker*, возможно передается урон еще до ослабления защитой. Посравнивай hit_power и всякие коэффициенты защиты у НПЦ Ну и 35 это как-то много - ты на 100 что ли умножил? Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 20 Сентября 2011 Посмотри в этой теме [CS] Расчет повреждений при стрельбе по неписям Реальный только как разницу между старым и новым здоровьем Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 2 Октября 2011 До ЗП, у игры небыло колбека на использование вещи (self.object:set_callback(callback.use_object, nil)) Твоя функция просто не вызывается. Все модеры в ТЧ/ЧН используют колбек на потерю предмета из инвентаря и проверяют, что он был удалён (какбэ использован) Думаю в солянке его стоит искать в amk.script Нее - нее, коллбек на использование вещи был всегда, начиная с ТЧ. И работал тоже. Просто его не использовали. ХЕМУЛЬ36RUS, Странный вызов функции zvuki.script.use_snd(obj) Надо zvuki.use_snd(obj) Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 14 Октября 2011 *Shoker*, из того, что я написал про q8 выше, оно переводится в нормальный float так: float = (q8/255)*2 -1. Подставь свое значение, получишь как раз примерно 1. Кстати, а почему 256? Разве не должен выдавать 255, он же 8 бит читает? Неверно. Для updcondition диапазон от 0.0f до 1.0f. Ну и формула соответственно q8 / 255 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 25 Октября 2011 *Shoker*, типа квадратный корень долго извлекается Ускоряют Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 26 Октября 2011 (изменено) Ну и в конечном итоге новое значение благосклонности обрезается, чтобы попадать в отрезок personal_goodwill_limits = -1000, 1000 То есть запросто что-то может не так работать, если менялся game_relations.ltx Добавлено через 24 мин.: Ну и кстати функции relation и set_relation не симметричны. set_relation устанавливает личную благосклонность или лучше писать "личное отношение"(personal_goodwill) из game_relations.ltx а relation возвращает attitude из game_relations.ltx приведенный к перечислению ERelationType. Только приводится в соответствии с константами ;пороговые значения для отношения персонажей attitude_neutal_threshold = -400 ;когда attitude меньше значения, то выставляется ALife::eRelationEnemy attitude_friend_threshold = 500 ;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend ну и general_goodwill тоже возвращает attitude только в численном виде. Так что проблемы скорей всего в этом. То есть на отношение влияет еще куча слагаемых. Изменено 25 Октября 2011 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 145 Опубликовано 25 Ноября 2011 Лёха_тц, тебе же 5 страниц назад отвечали: спавнишь как physic_object, в custom_data надо прописать fixed_bones, чтобы модель не двигали. Ну и в огф должна быть сделана кость. У тебя огф то есть? Ну и после спавна надо еще рестриктором будет накрыть, чтобы нпц сквозь твое укрепление не ходили. Ну и если что, прятаться за ним они тоже не будут. Поделиться этим сообщением Ссылка на сообщение