Перейти к содержанию

Вис691

Управление проектами
  • Публикаций

    1 539
  • Пожертвование

    0,00 ₽ 
  • Зарегистрирован

  • Посещение

  • Победитель дней

    67

Весь контент Вис691

  1. Возвращаясь к самому первому посту в этой теме, наткнулся на интересную фразу: Конкретно, конечно, имею в виду пометку про переменные типа Long. По интересному стечению обстоятельств я таки столкнулся с этим типом. Самое забавное, что пришлось им пользоваться самому. Если вкратце, то нужен был код, позволяющий одну из восемнадцати переменных увеличивать до одного, а остальные семнадцать уменьшать до нуля. Если говорить совсем по-простому, представьте что перед вами 18 лампочек. В любой момент времени гореть может только одна. Пускай горит лампа номер 5. Если вы зажигаете, скажем, лампу номер 12, то 5ая обязана потухнуть. Как это сделать? Ну, из логичных вариантов на ум приходит запоминать, какая лампа горит в данный момент и при зажигании другой тушить её и запоминать новую. К сожалению, переводя это всё в код скрипта, необходимо будет писать 18 проверок а-ля "Если горела лампа номер 1, то потушить её. Иначе если горела лампа номер 2, то потушить её ..." И так далее. Решение рабочее, но учитывая ограничения на количество строк в скрипте, не самое элегантное. А есть и более плохой вариант (который и использовался изначально, когда переменных-"лампочек" было около пяти): не запоминаем вообще ничего, а просто постоянно выключаем все лампы, кроме нужной. Даже если лампа и не горела в данный момент. "Если зажгли лампу номер 1, то потушить лампу номер 2 потушить лампу номер 3 ... иначе если зажгли лампу номер 2, то потушить лампу номер 1 потушить лампу номер 3 ..." Думаю, смысл ясен. Очевидно, что этот вариант совершенно неприемлемый. Однако он имеет место быть, если была бы возможность/необходимость зажигать сразу несколько ламп. Тогда бы прошлый, более компактный вариант, не совсем бы подходил и раздувался бы по количеству строк. "Что же делать?" - подумал я. Хотелось бы иметь всего одну кнопку, по нажатию которой сразу бы выставлялись все 18 состояний ламп. И тут я придумал следующее: в качестве кнопки будем передавать обычное число, скажем, 4. Вы наверное спросите, а как число 4 может изменить состояние всех 18ти лампочек? Всё очень просто - переведите число в двоичную систему, тогда оно будет состоять только из нулей и единиц. Даже если вы про такую только слышали или вообще слышите впервые, то ничего не составит труда разобраться. Это абсолютно такие же числа, которыми мы пользуемся. Как работает наша система? У нас есть 10 цифр 0-9, и, когда мы доходим до следующего после 9ки числа, мы просто добавляем новый разряд и получаем 10. Также и там, только цифр всего 2. Но это всё теория, которую даже знать не надо - есть куча конвертеров в Интернете, где за 5 секунд вы сможете перевести любое число в любую систему. Вернёмся к нашим баранам. Что я там выбрал, 4ку? В двоичной системе это число записывается как 100. "И что же тебе это даёт?" - спросите вы. А всё очень просто, пускай 0 - это лампа выключается, а 1 - включается. Добавлю для наглядности нулей перед нашим числом, чтобы выровнять по по количеству лампочек: 000000000000000100. Соответственно, каждый разряд соответствует своей лампочке. Имея функцию, которая просто приравнивает лампочки к разрядам а-ля "Лампа 1 = 0 (т.е. тушим её) Лампа 2 = 0 ... Лампа 16 = 1 (зажигаем) ..." мы с лёгкостью избавили себя от 18ти проверок (или 18*18 изменений состояний по второму методу) и сократили код до 18 строк. Ну, конечно, их по факту чуть больше, но не в этом смысл. При этом мы можем "зажечь" абсолютно любую комбинацию из этих ламп (хоть мне и нужно было только по одной). Допустим, хочу зажечь 2ую, 7ую и 15ую лампы. Всё, что мне нужно - это записать последовательность 010000100000001000 и перевести это число в привычную нам десятичную систему. Вручную или через конвертер получаем 67592. Передаём это число в функцию ("нажимаем кнопку") и радуемся жизни. Горят ровно те лампы, которые были нужны. А главное - совершенно не надо думать, чтобы "запрограммировать" какую-либо комбинацию. Выписал в строку 18 цифр и перевёл из двоичной систему в десятичную. Удобно, красиво, лаконично на мой взгляд. Проблема лишь в том, что с увеличением количества лампочек, увеличивается и количество комбинаций. 67592 явно больше, чем 32767 (см. цитату - это граница integer'a). Отсюда и применение переменной типа Long. Но он тоже не вечен - максимум в теории мы можем завести 31 лампочку (2147483647 = 1111111111111111111111111111111 (31 символ)). А если работаем конкретно с ГЕККом, то у функции, работающей с разрядами, к сожалению, есть ограничение на примерно 20 разрядов-"лампочек". Собственно, пожалуй, это всё, что я хотел сегодня рассказать. Хотелось бы почитать ваше мнение - достаточно ли понятно я всё рассказал, может вопросы какие остались? Придумали/знаете другой способ для зажигания конкретно одной лампочки? Поделитесь им, не стесняйтесь. Да и насколько интересно это было читать? А то, может, я время от времени буду подобными интересными моментами делиться. Или наоборот не буду, если вам не понравилось.
  2. Tom's eating dongs, Tom's eating dongs, Tom's eating dongs xdd
  3. Вис691

    Последний рывок?

    Добро пожаловать в мою регулярную рубрику блогов, где я рассказываю, что нового произошло за последнее время и как это выглядит со стороны разработки. Для новых читателей и для тех, кто забыл, напомню, что блоги выходят с завидной постоянностью - 2 раза в год, по двум главным праздникам: в Новый Год и в мой День Рождения Сегодняшний же "выпуск" немного задержался, но не верю, что кто-то его вообще ждал. В последней записи мы говорили о нуар квесте, который я разрабатываю. Сегодня мы вновь поговорим о нём. Как только я передал диалоги для персонажей другому члену команды, Пахе007, у меня буквально развязались руки. Мало того, что я доработал некоторые аспекты самой азартной игры (сделал анти-чит систему, добавил мелкие полезные функции, пофиксил некоторые баги и т.д.), так я успел поработать и над блокнотом детектива. Начальный рабочий вариант содержал в себе 2400+ строчек кода и ужасно пролагивал секунд на 5 при его открытии. Страшно подумать, сколько бы он лагал у людей с большИм количеством модов. Поэтому сразу же после очередного коллективного апдейта, я начал переписывать концепцию блокнота. Получилось неплохо - количество строк сократилось почти в 2 раза. Пролаг же, к сожалению, остался, но теперь он не такой большой (около полутора секунд). Посмотрим, может удастся и ещё что-нибудь вырезать. Кстати, это было сделано в прямом эфире - любой желающий мог посмотреть на процесс и столкнуться с некоторыми небольшими спойлерами Буду ли ещё стримить разработку, я не знаю, но если кому будет интересно - пишите в комментарии, найду способ вас предупредить заранее. Откуда же такой громкий заголовок у этой записи. Дело в том, что мы решили выпустить первую версию мода. Уверен, что она будет не последней, скорее что-то типа открытой бетки. Что, стало интересно? Не спешите радоваться - пускай мы и обговорили потенциальную дату выхода, я её называть не буду. Почему? Да чтобы не давать ложных обещаний. Чтобы потом не извиняться, если что-то пойдёт не так. Все мы люди, и у всех нас возникают проблемы. Могу заверить, что команда прикладывает все усилия в разработку. Для некоторых из нас этот мод является последней работой в сеттинге Фоллаута, а возможно и в моддинге в целом. На этом эта краткая запись подошла к концу. Если у кого-то есть вопросы - не стесняйтесь задавать их в комментариях. Встретимся где-то в районе Нового Года. Надеюсь, что к этому моменту дата выхода будет более чёткой, и я смогу ей поделиться (если мы не анонсируем её раньше).
  4. Ох, что же так сложно-то. Нет там скрипта. Никакого. Вообще. Не от скрипта появляется стелс-поле. И даже стелс-бои не от скриптов работают. StealthBoyStopCombatScript просто выводит игрока из боя при активации стелс-поля.
  5. Зачем, если есть броня, которая работает практически так, как надо?
  6. Ну, собственно, я посмотрел, что там и как. Вот результат: на китайской броне нет скрипта. И на шлеме нет. Скрипты здесь вообще не понадобятся. Но идея начать поиски с китайской брони - очень здравая. Так и поступите и попытайтесь выяснить, что же тогда даёт стелс-поле, если не скрипт. Только убедитесь, что нужную китайскую броню смотрите, из Анкориджа. А то лично у меня там ещё 2 были, и у них поля нет. Будут вопросы - пишите.
  7. Ну, учитывая, что вы обратись именно в школу скриптинга, а не в эту тему, то придётся всё же разбираться самому. Т.к. я в Сталкер и уж тем более в моды на него не играл, хотелось бы более подробное описание. Я так понимаю, нужен Селс-Режим пока костюм на ГГ. Всегда ли он нужен? Или есть условия выхода из него? Хотя смотреться наверно странно будет, но всё же. Жду подробностей, а я пока скрипт брони посмотрю. P.S. Если вдруг желания делать самому не будет вообще, то советую всё же переместиться в тему, которую я указал. Хотя пока что я ничего сложного не вижу. А если что, думаю, единственный ученик, Old Vault Boy, поможет при необходимости
  8. Вис691

    Ребята из Флагстаффа / Folks from Flagstaff

    Хм, значит для SFW придётся немного подправить плагин. Некоторые сочетания смотрятся очень даже интересно. Спасибо за перевод!
  9. Вис691

    Курица / Chicken

    Модификация неплоха, но с этой работой не сравнится, конечно... http://falcon-lair.com/files/file/1215-igrushechnaia-kurochka-sputnitca-buddy-chicken-companion/
  10. Честно говоря, я бы даже сказал, что хороших задумок очень много, но вот только: 1) Не всё реализуемо 2) Не на всё хватает времени Однако, надеюсь, что в итоге это всё будет стоить того.
  11. Вис691

    [WIP] Notebook feature 2

    Из альбома: Разработки

    Спасибо Паха007 за скрины и Allnarta за их обработку.
  12. Вис691

    [WIP] Notebook feature 1

    Из альбома: Разработки

    Спасибо Паха007 за скрины и Allnarta за их обработку.
  13. Вис691

    Fallout 5?

    Так-то если задуматься, то скоро 10 лет 3шке...
  14. Вис691

    Анонс S.T.A.L.K.E.R. 2

    Ох сейчас у всех фанатов этой игры (в том числе и у меня) пригорело . Террария - не майнкрафт, это 2 абсолютно разные игры. И пускай чем-то они действительно схожи, но отличий куда больше. Майн направлен на "построй свой идеальный мир", а Террария на "Убивай боссов, что продвигаться в развитии". Ну, это если совсем грубо сказать.
  15. Ещё вроде можно ткнуть на труп в консоли и прописать Disable. А люди вроде поняли вопрос в буквальном смысле и предложили "лорные" методы.
  16. Текстуру? Там только пути к моделям указываются вроде, если ты про всякие текстуры объектов типа брони, оружия и т.д. К ним текстуры в .nif файлах прописываются через NifSkope
  17. 10/10 Хмммм. Не, если серьёзно, то очень неплохо. Казалось бы - небольшой квестик, но мне нравится, что есть множество способов его прохождения.
  18. В профиле А так, они ничего годного пока не выпустили. А вот их бывший участник вполне
  19. Да нет, ничего сложного. http://falcon-lair.com/tutorials/article/8-port-plagina-iz-f3-v-sfw/

×
×
  • Создать...