Artos 99 Опубликовано 15 Сентября 2012 (изменено) Vecz, по интересующему тебя моду имеется конкретный топик Nature Winter в Мастерской, вот туда и следует задавать подобные вопросы. Текущий топик ориентирован на оригинальную игру и общеизвестные для нее изменения. Изменено 15 Сентября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 17 Сентября 2012 (изменено) gruber, ColR_iT, невозможно дать ответ на некорректно заданный вопрос. "спавн количества" - само словосочетаное абсурдно. Если автора вопроса интересует именно 'что' отвечает за количество спавнящихся НПС на Кордоне (исключая заспавненных через алл.спавн) - то конечно отвечают респавнеры, параметры которых все же заданы тоже в алл.спавне, в том числе и респавнер около деревни новичков. Но и он не один, кто НПС спавнит на Кордоне, и в конструкторе респавнеров можно при необходимости изменить кол-ва спавнящихся и даже нет-пакетами изменить и запомнить на требуемое значение. Если же в вопросе подразумевается - 'что' отвечает на кол-во НПС на Кордоне и в частности в деревне новичков - то конечно же параметры гулагов этим управляют, точнее кол-ва работ, которые выдаются кордонными гулагами. В этом случае, НПС могут приходить на Кордон и с других локаций, так что не только кордонные респавнеры в этом учавствуют. ColR_iT, мы можем только гадать о действительном предназначении файла game_stats.script и его функционала. По сути, функции не используются в финалке ТЧ и можно сделать предположение исходя из самого названия скрипта и то, чем он занимается - это дебаговый модуль (для разрабов). Shredder, если ты удалишь или закомментируешь все вызовы этого скрипта и удалишь его - то в игре ничего не изменится, а только ресурсы освободятся. Этот же результат и в ЧН и в ЗП. Изменено 17 Сентября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 20 Сентября 2012 (изменено) Struck, в очередной раз оращаю внимание на то, что вопросы нужно формулировать так, чтобы на них можно было бы отвечать, а не "базарить" ... Ведь спрашиваешь бессмыслицу! Что ты называешь скриптовым диалогом? Цепочку соответствующих функций, в которые движек передает агрументы и в том числе первые два, которые нередко называют как speaker1 и speaker2? И тебя интересует как это движек делает? Не думаю, что тебя заинтересовал ассемблер и работа движка на низком уровне. Да и ответы на это тебе могли бы дать только те, кто имеет исходники движка. Функция relocate_item - является рядовой функцией и ее использование ровно такое же как и всех остальных, которые могут быть использованы и в алгоритмах диалогов (не обязательно скриптовых). Вот более важно, что сами разработчики для этой функции дали комментарий: "Obsolete, do not use!!!" и любое бездумное использование этой функции чревато последствиями... Изменено 20 Сентября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 20 Сентября 2012 Struck, с подобными вопросами уже не ко мне, ты просто напросто начинаешь погадалки, а не думаешь что и как нужно для реализации твоей же задумки. Не знаю что ты подразумеваешь под talk_message, но если это то, что выводит сам диалог - то это всего лишь строка, которая прописана в самом диалоге. А уж если ты при обработке этой строки подключишь свои сторонние функции, которые также могут выдавать некие строки на худ - то и получмишь в итоге то, что они выдадут. Сорри, но гадай дальше без меня, может еще кто подключится ... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 26 Сентября 2012 (изменено) SkyLoader, смотрим в исходники, например для wpn_toz34: orientation = 0, 30, 0 ;значение устанавливается в градусах - коммент от разрабов(!) и ты просто не замечаешь разницы, изменив на 0,1 градуса... Изменено 26 Сентября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 29 Сентября 2012 (изменено) CuJIbBEP, "мигание" лампочек сделать не так и сложно, учитывая, что для класса hanging_lamp имеются методы turn_on()/turn_off(). Для фонариков сделать несколько сложнее, т.к. их "вкл/откл" в игре осуществляется аттачем и деаттачем фонариков "к лбам" неписей... смотри схему sr_light. Стрелоk, 1. В моде "SIMBION" актор летает не В вертолете, а вместе с вертолетом. Если при виде от 1-го лица это не сильно заметно, то легко видно при включении вида от 3-го лица. Т.о. в моде создана иллюзия управляемого полета актора на вертушке для вида от 1-го лица, а не сам полет. 2. В игре (СТАЛКЕР) посадить актора в объекты класса вертушек и полетать невозможно, в отличии, например, от класса машин. Тем более невозможно "посадить пассажиром". Хотя ... при развитой фантазии и навыках в кодинге и приложив время и усилия, создать иллюзию в общем-то как-то возможно. Rover_M51, жди LA и возможно SkyLoader порадует тебя автоматической винтовкой с зум-прицелом. ИМХО, это уже скорее чистый чит, а не развитие игры... По 1 и 2 - без правки движка - все это фантазии. Ну а подбираемыми "рюкзачки-тайнички" вполне можно сделать, и помнится даже в каком-то моде это было сделано (может кто и напомнит), так что делай... Изменено 29 Сентября 2012 пользователем Artos 2 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Октября 2012 (изменено) volazar, твоя проблема крылась в том, что неуместно применять для сталкеров схемы предназначенные для рестрикторов. Схема sr_idle - для рестрикторов и попытка применить(перейти на нее) для сталкера - как раз и приводит к твоим "пути Зоны неисповедимы", т.е. непись остается под схемой кампера (сидит на пятой точке) ... Если требуется пауза в логике, то следует ее организовывать на сталкеровских схемах логики, а не абы какая под руку попадется. Экономия строк в логике подобным образом - плохая идея. Изменено 2 Октября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 3 Октября 2012 (изменено) А может... 'пожалеть' - как раз дать осуществиться мыслям... Так сразу все мучения закончатся... 1. Чтобы говорить про он-лайн или клиентского объекта - нужно понимать что же это такое и делать свои попытки-проверки не а бы где и когда, а как минимум в нужное (подходящее) время. 2. изменил: имя на light_alarm_glass_0004, координаты, gv и lv, остальное не трогал - таким образом ты спавнишь объект в ту-же самую точку!gv и lv - при подобном спавне несут информацию только о локации. Изменено 3 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 3 Октября 2012 (изменено) В данном случае (про спавл ламны) вообще говорить про оффлайны достаточно бессмысленно Судя по первому посту ("остальное не трогал"), лампа должна иметь флаги object_flags = 0xffffffba: UseSwitches = 0 SwitchOnline = 1 SwitchOffline = 0 Interactive = 1 VisibleForAI = 1 UsefulForAI = 1 OfflineNoMove = 0 ... т.е. никак не может быть в НЕ в онлайне! Изменено 3 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 3 Октября 2012 (изменено) 1. Был не прав, в том что не заметив в фразе 'изменил ... координаты' - сказал про 'ту же' точку. Если их (координаты) изменить с умом - можно и в другую точку на этой (иль иной) локации. ;-) 2. malandrinus, мы все же говорим по контексту вопроса и о спавне лампочки на текущей локации. И конечно же о том времени, когда лампочка уже должна быть в онлайне, т.е. забиндена соотв.биндером (net_spawn). Иначе можно договориться и до того, что не запустив игру - лампочка тоже не в онлайне... Предлагаю прекратить предложенную викторину "кто отгадает что же в очередной раз учудил AndreySol", т.к. по представленной им информации (и о спавне и о проверке) можно о чем угодно и сколь угодно гадать. Начнем с того, что получить объект лампочки по его имени - уже глупая затея! В исходной игре лампочек с именем "light_alarm_glass_0000" - больше дюжины(!), да и лампочек "light_alarm_glass_0004" не меньше(!). Т.о. какую лампочку начинает проверять AndreySol - только ему самому и движку ведомо. С подобными подходами можно сколь угодно гадать и бесконечно долго ... Изменено 3 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 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 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 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 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 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 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 6 Октября 2012 Buusty, чтобы вертушка нормально взлетала и садилась - нужно управлять скоростью. Изначально в схеме стоИт дефолтная скорость =30, что даже для свободного полета несколько многовато. При взлете, стартующая схема (heli_move) заставляет вертушку "бросаться с места в карьер"... причем движек еще не просчитал нормально высоту (GetRealAltitude). Совет: 1. Задавать начальную точку взлета непосредственно над текущей точкой (над вертушкой) - метров ~5, чтобы вертушка взлетала вертикально, а не "вперед". При наличии горизонтальной составляющей (т.е. "вперед") движение по путям просчитывается не от точки к точке, а с вариациями, которые порой и "проваливают" вертушку под уровень. 2. Задавать или в самой логике схемы и/или в точках пути ограниченные скорости. Например у меня ранее было задано для "взлетной" точки так: p0:name = pm00|v=8|dv=15 - т.е. при взлете стартовая скорость 8 (можно и поменьше), ауже в точке взлета 15. Т.о. вертушка плавно с ускорением вертикально взлетает на высоту 2-5 метров и уже далее устремляется в полет (к следующей точке). 3. Ну и ... можно отказаться от полета "по путям" и переделать схему полностью для полетов по задаваемым точкам (по координатам), контролируя скриптами, а не движком и высоту и скорость и прочее... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 6 Октября 2012 (изменено) Struck, не засоряй топик банальными вопросами! Открой статью по логике и по нужной схеме (ссылки в шапке) - и почитай. Можешь открыть саму схему (скрипт) и посмотреть какие параметры она (не)использует: --/ Функция чтения настроек. В нее передается секция, откуда их нужно читатьюfunction init_meet(npc, ini, section, st, scheme) ]snork[, а взять и посмотреть самому как это уже сделано в модах (хотя бы в том же AMK) - лень? Ждешь когда тебе готовые строки выложат? Посмотри логику для "сирен" на базах и доработай ее, чтобы когда выброс - завывала (не забудь по окончании - отключать). Изменено 6 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 6 Октября 2012 (изменено) ]snork[, распакуй all.spawn и найди в alife_l01_escape.ltx объект name = esc_matugalnik - это и есть сирена на блокпосте. В этой секции объекта и смотри его логику, в которой по получению соотв.инфопоршня (+esc_blockpost_alarm) активируется соответствующая секция логики ([ph_sound@alarm]) и проигрывается snd = alarm1. По аналогии - делай и для других баз... Изменено 6 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 6 Октября 2012 Struck, если тебя не устраивает существующая схема то... или юзаешь другую (подходящуюю) или засучиваешь рукава и пишешь свою иль дорабатываешь под себя имеющуюся. Схема "meet" разработчиками задумана как встреча двух сталкеров и смотреть "не на собеседника" им как то в голову не пришло. Поэтому в схеме жестко задано: look_object = victim. Не подходит - меняй... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 7 Октября 2012 (изменено) Стрелоk, убирай, плз, строки кодов под спойлеры, не захламляя ими топик... И почему бы тебе не посмотреть как правильно нужно сделать в многочисленных модах, а не пытаться копипастить с ошибками? Твоя ошибка: создавая ссылку на коллбэк в классе биндера ( self.object:set_callback(callback.use_object, self.use_obj, self) ) ты его (сам метод) НЕ создаешь, а засунул внутрь имеющегося on_item_drop ... Почитай мануалы по Lua и прекрати писать скрипты методом тыка. BFG, нет никаких параметров, отвечающих за задержку перед началом боя, это особенности функционирования AI-схем. Что собственно происходит перед началом каждого боя? Спавнятся нужные монстры/неписи в нужном месте и им активируется схема 'camper' и ... они тупо (стОя на месте!) выискивают врага-цель. Пока они не увидят (не услышат) врага (актора) - они ничего не предпринимают, т.к. схема ничего иного не предусматривает. Т.о. если только дорабатывать новой схемой, типа "поиск врага в пределах зоны", может заставить начать бой вместе в актором. Zander_driver, если говорить строго (а это в данном случае важно), в нет пакете нет никаких имен параметров, а те, которые получены после чтения нет-пакета - по сути повторяют имена из распаковки all.spawn'а, а еще точнее - соответствующим настройкам / параметрам из SDK. Подсмотренное тобою значение 2048 - говорит только об одном: об ошибочном задании/чтении/трактовке этого парамета, т.к., как правило, значение (индекс) для каждой аномалии свое... А то, что у тебя у всех одинаково - ну так и спавнишь свои "рандомные" по одному и тому же шаблону. Суть этого параметра - это индекс места спавна артефакта, который (индекс) описан в section2.bin, и как правило, у каждой аномалии свой. Возьми последние версии uACDC и распакуй с ключиком -af, да и посмотреть что-к-чему в SDK можно. Изменено 7 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 8 Октября 2012 (изменено) Struck, ты вновь с вопросами в стиле "аля для СП"... почему бы тебе там же их и не задавать? 1. Раз нашел "портянку", для чего переспрашивать и устраивать в топике "Бюро находок"? Нашел - изучай, в исходной игре более логики для Борова нет. 2. "Трудно иль нет" - зависит от навыков чтения и работы со скриптами и желания самому понять и сделать. Для тех, кто считает себя "нубом" в скриптах, лентяям и торопыжкам - трудно, для остальных... Квестов на нахождение нескольких предметов понаписано в модах уже на десяток туторов... С добавлением через task manager тоже не мало. Так что для многих это не трудно. Однако, такая возможность сильно зависит от того, что за "итемы" ты собрался добавлять в квесты. Например, пару бутылок и закуску - тебе врядли удастся добавить, т.к. прежде всего придется научить task manager узнавать что такие итемы имеются в игре. 2.б. Для квестовых неписей диалоги на "наличие работы" добавить не сложно, примеров предостаточно, однако с похотелкою "для каждого НПС" - придется обломиться... Таскменеджер понимает заказчиков для квестов по наличию у них сида (story_id), да еще и прописать их в него придется попотеть... Так что если сможешь каждому неписю, который спавнится в игру, прописать свой сид и зарегистрируешь в таскменеджере - тогда и о диалогах можешь подумать. ну иль ... переписать сам таскменеджер, чтобы он сам узнавал "каждого"... Изменено 8 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 9 Октября 2012 proger_Dencheek, твоя ошибка вероятно обусловлена тем, что пытаешься получить доступ к гейм-объекту (онлайновому) не дожидаясь его выхода в онлайн, т.е. не пропустив пару-тройку апдейтов после спавна костюма. Также, если твой НПС за пределами алайфа (switch_distance) - то не стОит надеяться заполучить онлайн-костюм, если непись в оффлайне. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение