Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Desan
Привет всем!!
помогите почему то в скрипте не работает визуальный эффект VFX_FNF_SUMMON_UNDEAD или любой другой , что делаю не так вроде бы по готовому скрипту.
Моб просто появляется без эффекта
Код
void main()
{
  effect eMind = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
  string sCreature = "undead001";
  object oMonster = CreateObject(OBJECT_TYPE_CREATURE, sCreature,
  GetLocation(GetObjectByTag("spawn01")));

  ApplyEffectToObject(DURATION_TYPE_INSTANT, eMind, oMonster,1.0);
}
PaiNt
Цитата(Desan @ Jun 9 2012, 08:43) *
Привет всем!!
помогите почему то в скрипте не работает визуальный эффект VFX_FNF_SUMMON_UNDEAD или любой другой , что делаю не так вроде бы по готовому скрипту.
Моб просто появляется без эффекта
Код
void main()
{
  effect eMind = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
  string sCreature = "undead001";
  object oMonster = CreateObject(OBJECT_TYPE_CREATURE, sCreature,
  GetLocation(GetObjectByTag("spawn01")));

  ApplyEffectToObject(DURATION_TYPE_INSTANT, eMind, oMonster,1.0);
}

функция создания помойму работает в течении 2с, так что у тебя присваевается эффект к не существующему пока объекту. Нужно поставить задержку функцией "DelayCommand".
Flaristan
Lilac'овский скрипт-генератор ставит задержку на визуальный эффект при спавне критеров в 0.5 секунды.
Не пренебрегайте проверять им такие вещи – прога очень качественная.
Librarian
Мне нужно сделать огромные ворота, которые выше обычных раза в 2 и длиннее раз в 7 где-то.
Понимаю, что можно все нарисовать самому в 3дс максе, но у меня в голове вертится вариант попроще:
Можно ли в какой-нибудь проге, например, в том же в 3ds максе (или в какой-нибудь другой), открыть модельку обычных ворот и просто увеличить масштаб или накопировать навставлять правые и левые створки после чего их склеить?
И то же самое с дверным проемом. Просто сделать его длиннее и выше.
denis0k
Нвн2 позволяет растягивать модели в любом направлении. В нвн1 придётся искать конвертер, старый макс и возиться вручную. Но, честно сказать, не знаю, что будет с воротами после этого - они же активный объект.
Librarian
А можно поподробнее про конвертеры?
Почему именно старый макс?
denis0k
Цитата
А можно поподробнее про конвертеры?
Их можно найти на nwvault.ign.com, я сам не моделлер, точнее подсказать не могу. Ни одна софтина напрямую модели нвн открыть не может.
Цитата
Почему именно старый макс?
Ну потому что нвн делался в бородатом году, и конвертеры под старый макс smile.gif Они часто в следующей версии уже не работают, а тут версий 5 как минимум сменилось.
Ilerien
Тык.
Для скейлинга моделек рекомендую версию для gmax - с ним проще.
Librarian
Спасибо большое, пойду разбираться)
denis0k
Я как-то помню пробовал гмакс поставить - он попросил регистрацию, а сайта такого уже не существует smile.gif
Ollone5
У меня вобще не запускается prankster2.gif
Flaristan
Попробуй режим совместимости. lol.gif
Desan
Привет народ!!!
А кто знает метод спавна мобов как MMORPG style monster respawner, он когда то был на ваулте но уже его не найти.


У меня тоже есть gmax 1.2 и нашел к нему key reg 9405B1CCE2B0EA37E2CEC2052DA9CC36AEEB7804D3ED51250A
CCDE3E73
Когда то давно еще устанавливал его на Хр винду думаю пойдет и на семерке если нет то режим совместимости можно еще
Flaristan
Поподробнее опиши метод.
Anakondar
Цитата(Desan @ Jun 11 2012, 14:43) *
А кто знает метод спавна мобов как MMORPG style monster respawner, он когда то был на ваулте но уже его не найти.


Могу дать свой. В нём происходит следующее:
Энкаунтерные существа и асошиэйты не оставляют трупов, не спаунятся и исчезают при перезагрузке модуля.
Модульные существа оставляют трупы на некоторое время, спаунятся (либо в конкретной точке, либо в одной из набора рандомных, либо там, где были убиты) и автоматически оживают при перезагрузке модуля.
ДМ существа (вызванные с палитры) оставляют трупы на некоторое время, спаунятся и автоматически исчезают при перезагрузке модуля.
Существа игроков (кравченные игроками големы, выращенные домашние животные, драконы из яиц, наёмники, в том числе и с других планов) оставляют трупы на некоторое время, остаются в своём состоянии при перезагрузке модуля, но не спаунятся, а умирают перманентно.
Гос.служащие (охрана, нанятая за казну нпс-фракций городов-государств) оставляют трупы на некоторое время, сохраняют своё состояние при перезагрузке модуля, спаунятся, если казна способна это оплатить.

Естественно, это не один скрипт, а несколько скриптсэтов.
Desan
Я нашел описание таких скриптом а ссылки на сами скрипты были битые уже

1.Script Name: MMORPG style monster respawner.
2.What it does: Will respawn an instance monster after a set duration(seconds).
3. Notes:

Finally it's complete!
Special thanks to SPIKE for the error correcting!
This will respawn a monster to a waypoint OnDeath.

Steps:
1) Create a monster in the creature wizard.
2) Remember or copy down the creatures BLUEPRINT name. (if this isn't done you may start respawning badgers instead of the intended creature).
3) Laydown a WAYPOINT and name it's tag to something - I used "littlespawner" but you may change it to whatever you like.
4) Copy this script into the OnDeath script of your creature.
5) Replace your waypoint name where it reads "littlespawner"
6) Replace your custom creature blueprint name where it reads "spec"
7) Save the script as a Save As [whatever_name_you_want_] Update any instances for that monster by right clicking the monster name in the blueprint editor and selecting UPDATE INSTANCED: (if you have placed any creatures make sure you select them all or the script may not execute)
You're done! You now have a simple MMORPG style creature respawner.
futurebount
Всем привет
Недавно начал осваивать скрипты и совершенно не разбираюсь что к чему
вопрос :
Можно ли задать одному НПС несколько команд, то есть что бы он ходил выполнял какие-то действия, если да то как это сделать?
Если уже есть ответ ссылку пожалуйста, желательно на подробный,пошаговый мануал.
пример :
Мне нужно что бы сразу после появления героя на стартовой локации сразу подскакивал непись и начинал с ним диалог объясняя что к чему,куда двигаться,что делать.После всего этого он удаляется и исчезает.
2 вопрос :
Как замутить такую вещь как диалог с внесюжетным нпс,только что бы диалог повторялся, допустим нпс спрашивает героя: что тебе надо? герой что то спрашивает, непись отвечает, и что бы диалог не заканчивался, а продолжался с того же вопроса пока герой не скажет ему что нибудь вроде: все отстань я погнал.
3 вопрос :
Может ли торговец быть одновременно торговцем и тем челиком который дает задания
4 вопрос : сколько всего фракций можно создать?
Flaristan
1. Можно – назначить конечную/бесконечную серию команд, стартующую с определенного события/онхеартбита.
2. Самому интересно, но пока до этого вопроса еще не дошел.
3. Может.
4. Теоретически – столько сколько нужно.

P.S.:..
Как поймать лису за хвост,
Как достать рукой до звезд,
Как из камня сделать пар,
Знает доктор наш Гаспар!
(с)
Virake
1. такое можно сделать. рекомендую Lilac Soul's Script Generator - мощьнейшая прога для создания скриптов. там все просто и интуитивно понятно. единственное, с чем там, в нашем случае, могут возникнуть проблемы - уход и самоуничтожение НПЦ после диалога. однако тут нам поможет мануал по модмейкингу от айвана - там в учебном модуле есть скрипт, который делат точь-в-точь то, что надо. этот скрипт можно украсть и использовать самому.
2. нет ничего проще. копируешь строку диалога, потом правой кнопкой мыши на другой реплике >> в меню >> Paste as a link (вставить как ссылку) - все. если расставить ссылки соответствующим образом - диалог выйдет зацыкленым.
скрин-пример:
4. количество не ограничено (по крайней мере, я до лимита не доходил). однако есть лимит на кол-во отображаемых одновременно фракций в редакторе фракций.
futurebount
Отлично,спасибо.
Кому не сложно помогите с написанием скрипта:
Нужно значит : Герой заходит в локацию там НПС бродит по трем точкам (WP_TRADEHOUSE_1 \2 \3)
WP_TRADEHOUSE_1 точка стоит напротив алхимического стола, WP_TRADEHOUSE_2 напротив лектурна, WP_TRADEHOUSE_3 напротив книжной полки, нужно что бы НПС перемещался между ними и допустим подошел к точке 1 поделал что-нибудь с с этим объектом.
И как составить диалог с этим же неписем что бы он давал какой-нибудь квест,продавал что-нибудь и с ним можно было просто поговорить
Заранее буду очень признателен.
Virake
касательно скрипов советую задавать вопросы в этой теме: http://www.city-of-masters.ru/forums/index...&start=3525

касательно диалога. опять таки, все элементарно: достаточно организовать 1 общую строку, в которой будут строки по заданию, торговле и болтовне.
скрин-пример:
вообще, лучше некоторое время попрактиковаться и самому понять основы модмейкинга. советы и пояснения не заменят настоящий опыт.
malivix
Когда то давно играл в NWN, знал много разных скриптов, потом надоела игра, а теперь вновь захотелось поиграть. Поставил игру (пиратка) версии 1.69, со всеми дополнениями, все играется нормально. Конечно просто играть скучно, пошел вспоминать скрипты. Дошло дело до создания наемника. И тут я обнаружил что при попытке что-либо изменить в св-вах персонажа, сам персонаж исчезает из модуля, т.е. в редакторе он есть, а в игре нету. И так с каждым. При том все это сопровождается длинным сообщением, где я запомнил только следующее - fix Purple Dragon Class, или что-то в этом в роде. Скачал с интернета другой репак, та же история. В чем проблема? Винда семерка х64.
P.S.: и уж совсем глупый вопрос, как дать предмет персонажу или забрать его, с помощью волшебника не получается, и с помощью скрипта тоже, может игра все таки кривая? (прописывал и таг, и ресреф, и добавлял нужный предмет в инвентарь непися)
Flaristan
У меня та же проблема была с патчем 1.69 (в патчах более ранней версии ее нет).
Решение так же уже постилось тут, так что на выбор – либо решение, либо просто использовать редактор более ранней версии и играть модули на 1.69.

P.S.: По поводу предмета – не знаю что ты там делал, но: для NPC работает как кнопка «инвентарь» в свойствах НПС, так и скрипты; для PC с этим вполне справляются скрипты. Может ты просто перепутал резреф в скрипте с тагом при попытке дать предмет (в команде «создать итем объекту» берется резреф предмета который дать и таг объекта которому дать). Так же в инвентаре НПС есть флажок для предметов «выпадаемый» который определяет будет ли доступен предмет только для НПС или всем, через его инвентарь.
denis0k
Репак кривой. Лицензия работает отлично.
malivix
Ну вот незнаю, не хочет давать предмет и все. Говорю ведь пробовал и ресреф и таг предмета. Ни в какую. Насчет файла спасибо, надеюсь заробит (пишу с работы). Кстати про лицуху - с удовольствием бы купил, но нет в продаже НИГДЕ, по крайней мере в моем городе и в интернете, в том числе на озоне.
Rewazer
если не вспоминать про торренты, то вот Neverwinter Nights Diamond Edition. Да, надо будет написать в саппорт, чтобы сгенили уникальные ключи.
gennady
Цитата(malivix @ Aug 2 2012, 08:25) *
Ну вот незнаю, не хочет давать предмет и все. Говорю ведь пробовал и ресреф и таг предмета. Ни в какую.

А если попробовать скомпилировать сприпт?
malivix
Цитата(gennady @ Aug 2 2012, 09:03) *
А если попробовать скомпилировать сприпт?


Спасибо, скомпилировал, вроде теперь даются предметы. Говорил же что глупый вопрос, надо было же так забыть.
denis0k
С торрента тоже пойдёт. Главное - именно лицензию, а не самопал.
kadr88
1.Как изменить параметры какого-либо класса? Т.е., например, добавить какую-либо классовую способность, изменить требования для возможности прокачки класса?

2. Как я понимаю, в SOU увеличить уровень и количество врагов зависит от уровня персонажа. Можно ли изменить уровень сразу всех врагов на карте(в главе)?
Ilerien
Цитата
1.Как изменить параметры какого-либо класса? Т.е., например, добавить какую-либо классовую способность, изменить требования для возможности прокачки класса?
Ковырять 2да-таблицы, а именно cls_feat_*.2da и cls_pres_*.2da. Подробнее - в теме "Работа с 2DA таблицами" в разделе Custom Content.
denis0k
Цитата
2. Как я понимаю, в SOU увеличить уровень и количество врагов зависит от уровня персонажа. Можно ли изменить уровень сразу всех врагов на карте(в главе)?
Нет. Монстры в нвн расставляются заранее, тут нет генерации от уровня игрока в стиле тес или дьяблы.
malivix
Появилось два вопроса (пока ковырялся в редакторе):
1. Каким образом настраивается место респавна после смерти персонажа (допустим в какой-нибудь триггер/портал в храме, а не на месте). Как я понял надо в модульных св-вах, даже нашел нужную строку, а вот дальше незнаю.
2. Никак не получается заставить своего спутника говорить в диалоге в другой локации. Как это можно сделать? (Играл в HoU, там Дикин иногда встревал, значит это возможно). Спасибо.
Flaristan
1. Так как никто ничего не написал, могу только поделиться своими соображениями: 1) в модуле есть точка старта, которую обязательно нужно помещать перед его закрытием/сохранением – это место, в котором появится игрок после перезапуска модуля (рестарт/вайп); 2) после смерти игрока возможно произвести его банальный перенос в нужную локацию с помощью функции «онплеердеф/онплеердайинг», так же в скриптах есть такой оператор «GetLastRespawnButtonPresser» который как бэ намекает нам, что с помощью какого-нибудь «онхеартбита» и т.д. можно отловить игрока нажавшего кнопку респавна и запустить нужный скрипт для него (где-то там есть еще так же настройки самого окна респавна); 3) система по умолчанию запоминает последнее место игрока в модуле, если он не был перезапущен, поэтому следует использовать «онклиентэнтер» дополнительно для перенаправления его местоположения в особых ситуациях при перезаходе игрока.

2. Про спутника – нужно смотреть условия когда начинается конвертация его диалога, возможно там просто стоит условие завязанное на определенной локации и т.д..
Librarian
Здравствуйте, я не знаю почему, но у меня не получается создать новую тему. По этому пишу сюда. В тулсете, я перекачал все возможные виды дверей, ворот, створок, но так и не нашел подходящую для меня. Обговорив эту тему, мы пришли к выводу, что можно попытаться нарисовать дверь в нвмаксе, я только что попытался это сделать, надюпил миллион чайников, покрутил их в разные стороны, но так ничего не получилось. Мы хотим найти\сделать, створки, это большие ворота ведущие в безумные по своей величине подземелья. Я уверен ваша фантазия подсказывает вам красоту и маштабность?) Так вот у меня просьба, возможно есть какие-то особые модельки ручной отделки так сказать, из печи, или может кому не сложно подскажите пожалуйста с НВмаксом, а то я совсем не получается, начиная от того, как выбрать предмет нужный мне, а потом изменять его, можно ли так сделать, или прийдется рисовать с самого начала. Может быть если кто не боится я могу выложить свой скайп, чтоб если вам не сложно вы помогло тет а тет. Заранее благодарю, Ваш Сон.
Flaristan
Вот тут что-то было про увеличение моделей, может быть и плейсеблы так же можно… Но мое ИМХО проще собрать эти ворота йз плейсеблов в стене или типа того и не мучиться. Не обязательно же нужно чтоб дверь «открывалась и закрывалась», а обставить можно при желании что угодно.
tellyr
А как в диалоге прописать разные варианты ответов?
меня нпс спашивает, я хочу вставить разные ответы -> и в зависимости от ответа и реакцию нпс.
или тут тоже без скриптов не обойтись?
Melisse
Что ты подразумеваешь под реакций НПС?
Без скриптов никак
Flaristan
В редакторе диалога правой кнопкой на «корне» вызываешь контекстное меню и там самый первый пункт «добавить». Первая созданная в «корне» строка - приветствие НПС, если кликнуть «добавить» на нее, добавится разветвление – вариант ответа ПС. Если дальше добавлять к строке ответа ПС – это будут фразы продолжающие диалог, а если добавить еще к приветствию – варианты ответа для ПС.
Справа внизу в окне редактора диалогов есть вкладки (активные при выборе строки диалога) куда можно вставить скрипт на условия появления строки для ПС («текст появляется при»), срабатывающий при выборе данного ответа («совершенные действия»), а так же вкладка «другие действия» позволяющая проигрывать анимацию, звук или активировать записи журнала без скриптов.
Почитай мануалы в общем. smile.gif
Aiwan
tellyr, туториалы почитать не судьба? Там эти вопросы разжеваны и приведены примеры.
tellyr
Flaristan ,

"В редакторе диалога правой кнопкой на «корне» вызываешь контекстное меню и там самый первый пункт «добавить». Первая созданная в «корне» строка - приветствие НПС, если кликнуть «добавить» на нее, добавится разветвление – вариант ответа ПС. Если дальше добавлять к строке ответа ПС – это будут фразы продолжающие диалог, а если добавить еще к приветствию – варианты ответа для ПС." - вот до этого никак не мог допереть , спасибо огромное!
Aiwan
А если бы почитал мануал, то и скрипты вставлять научился.
justshurik
Товарищи, подскажите пожалуйста. с такой проблемой столкнулся. Вот в диалоге всегда есть кнопка для продолжения разговора, в этом случае говорящий движется вниз по структуре диалогового дерева. А как сделать кнопку, которая позволила бы двигаться вверх по структуре дерева ну или вернуться в определенное место диалога, которое уже было раньше?
Ilerien
Правой кнопкой по вершине, на которую нужно вернуться -> Copy.
Правой кнопкой по вершине, с которой нужно вернуться -> Paste as link.
Librarian
Подскажите, пожалуйста: создал 9 существ, все разные, прекрасно стоят, дерутся, после чего я всем поменял имена и всем добавил квенты, и четверо из них перестали отображаться в игре.
И еще создал НПСа с диалогами, а он тоже не отображается в игре. А в тулсете всех прекрасно видно.
С остальными существами проблем нет.

Как с этим бороться?
Melisse
Это глюк.
Скорее всего железо глючит, но бывает еще сам дефолтный контент нвн глючный. Нвн может быть не хороший?
Кастомный контент используете если - с ним тоже могут быть проблемы.

Вообще надо скрины было прицепить... хотя бы что-то, а то так гадать, но основные проблемы часто встречающиеся назвала.
Librarian
Цитата(Melisse @ Oct 24 2012, 17:27) *
Это глюк.
Скорее всего железо глючит, но бывает еще сам дефолтный контент нвн глючный. Нвн может быть не хороший?
Кастомный контент используете если - с ним тоже могут быть проблемы.

Вообще надо скрины было прицепить... хотя бы что-то, а то так гадать, но основные проблемы часто встречающиеся назвала.


Спасибо, железо это мб, потому что винду давно не переставлял, все дико лагает и все такое...НВН лицензионный еще с древних дисков.
А скрины чего?
Ilerien
Проблема может быть в dialog.tlk - при отсутствии добавленных в 1.69 строк клиент отказывается отображать некоторых неписей. Можно взять оригинальный файл из 1.69 и посмотреть, не решится ли проблема.
Mandrake
Доброго времени суток, уважаемые знатоки.

Заранее благодарю за помощь и ценю каждого, кто еще не забыл про NWN.

Захотелось мне побаловаться тулсетом и сделать свой персональный "шард", именно для себя, оффлайновый, натыкать монстров, может воссоздать по памяти что то из тех шардов, где я бегал по молодости...

Уперся в стенку на вопросе о спауне мобов, стандартный спаун не совсем гибкий и вспомнив о наличие скрипта, в котором при приближении к трупу из него вылезал зомби, я открыл его и попробовал сделать под себя, мучался целый день, но не смог добиться желаемого, а имено:

"Скрытый плейсибл со скриптом спауна на хартбит >>> приближается мой персонаж >>> монстр появляется и пока не будет убит, на его месте не появляется кто то другой >>> после смерти проходит n-секунд, если игрок не ближе чем n-метров и не дальше чем n-метров, монстр снова появляется."

Мой скрипт то начинал постоянно спавнить монстров, внезависимости от того убит целевой или нет, то вроде бы я это преодолел, но пытаясь создать универсальность, в итоге получил, что в случае, если один монстр прибегал к плейсиблу соседнего, то 1е место спауна переставало "плодить" мобов и умирало (т.к. я использовал ориентир "ближайший объект"). Казалось я и это вылечил, добавив в скрипт проверку, позволяющую оживить спаун, но теперь мобы стали появляться по 2е...


В общем буду примного благодарен за ссылку на скрипт с "шардовым" вариантом появляния монстров, отличающийся универсальностью и простотой использования (создать плейсиблы-ориентиры с уникальными тегами для каждого моба на локации это еще ладно, но чтобы не пришлось каждому отдельному мобу писать скрипт).
Anakondar
У меня, например, не из плейсов респаунятся, а из своих трупов (некоторые из хитбита локации). Общий вид скрипта на смерть существа выглядит так (всё лишнее\личное удалил):
Neverwinter Script
void Resp (location lLocation)
{
    SetIsDestroyable(TRUE);
    DestroyObject(OBJECT_SELF);
    if (GetIsEncounterCreature()) return;     // энкаунтерные сущаства респаунятся в скриптах энкаунтера
                                          //хотя у меня чуть более сложная система для них, чем описана, но общий смысл такой
    object oNew = CreateObject(OBJECT_TYPE_CREATURE,GetResRef(OBJECT_SELF),lLocation);
            // а тут с этим новым объектом можно что-то сделать; например, левелапнуть правильно.
}


void main()
{
        int hours = GetSpawnTime();        // у меня вычисляется в зависимости от HD и CR существа
        location lLoc = GetSpawnLocation();   // у меня читается из локалок, при спуне инициализированных
        DelayCommand(HoursToSeconds(hours), Resp(lLoc));

        DropItems();     // система выпадения лута
        GiveXPToKillers();     // своя система пати-опыта
}
Ну и в спауне не забудь вставить SetIsDestroyable(FALSE);



В случае респауна через локацию (можно любой удобный объект использовать - плейс или даже модуль), текст на смерть выглядит примерно так:
Neverwinter Script
void main()
{
        object oArea=GetArea(OBJECT_SELF);
        SetLocalInt(oArea,"respawn_time",GetSpawnTime());
        SetLocalLocation(oArea,"respawn_loc",GetSpawnLocation());
        SetLocalString(oArea,"respawn_resref",GetResRef(OBJECT_SELF));
        ExecuteScript("respawn",oArea);

        DropItems();     // система выпадения лута
        GiveXPToKillers();     // своя система пати-опыта
}
и скрипт respawn
Neverwinter Script
void Resp (string sRef, location lLocation)
{
    object oNew = CreateObject(OBJECT_TYPE_CREATURE,sRef,lLocation);
            // а тут с этим новым объектом можно что-то сделать; например, левелапнуть правильно.
}


void main()
{
        int hours = ;
        string sRef = ;
        location lLoc = ;       // всё читаем из локалок, ну или вычисляем любым удобным способом
        DelayCommand(HoursToSeconds(hours), Resp(sRef,lLoc));
}


Это система: один убитый - один новый. Если нужна популяционная система (с изменяющейся численностью) - напиши. Тут не так много менять (собственно, перевесить скрипт на хитбит, добавить параметры вероятности, близости (игрока, другого объекта), насыщенности (максимум плотности населения) и изменить метод вычисления исходных данных.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.