Что то рандомное
Перейти к содержимому

Что то рандомное

  • автор:

рандом

Сделал генерацию кастомных структур в мире и появился вопрос — как сделать чтобы в сундуках этих структур генерировался рандомный лут? Что-то наподобие loot_table для сундуков в кастомной структуре (сундук ванильный). Я нашёл пример loot_table для desert pyramid, но не знаю как связать данный.

  • daola
  • Тема
  • 28 Июл 2022
  • loot structure генератор структур генерация лут рандом
  • Ответы: 1
  • Форум: Вопросы

создание рандомных текстур для моба

я хочу сделать моба похожего на человека. Но как к примеру сделать так чтобы у него была текстура то с коричневым цветом волос то с чёрным и тд.

  • mr_pogo135
  • Тема
  • 20 Янв 2022
  • моб рандом текстура
  • Ответы: 0
  • Форум: Вопросы

Выпадение рандомного предмета из Item

Здравствуйте, решил я значит понемногу осваивать моддинг на 1.5.2, а точнее — создать якобы кейс. смог кое-что написать, а именно: public class Case extends Item < public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player)

  • spared1sad
  • Тема
  • 19 Окт 2021
  • 1.5.2 itemlist кейсы рандом
  • Ответы: 1
  • Форум: Вопросы

Как сделать рандомное направление листвы?

Привет! Делаю свой ресурспак, в котором заменил модели листвы на свои. Каждая сторона блока листвы со своей текстурой и мне нужно сделать так, чтобы при генерации блоки вставали разными сторонами (чтобы кроны выглядели чуть живее). Какими путями можно этого достичь? Чувствую, просто заменой.

  • kishalov
  • Тема
  • 4 Июн 2021
  • блок рандомрандомная текстура спавн блоков
  • Ответы: 7
  • Форум: Оффтоп

Как создать массив с вещами и случайно доставать оттуда один предмет

Доброго времени суток Земляне и Чужие! Сегодня у меня появился вопрос: Как сделать массив который будет хранить предметы со стаками, и доставать рандомно один предмет из списка. Я попытался такое провернуть через лист, но не получилось: @Override public ActionResult.

Зацикливание

Ребят,есть код на рандомное получение зелья отравления. Но происходит зацикливание. Как подправить код?

  • Cornette
  • Тема
  • 11 Авг 2018
  • зельеварение майнкрафт 1.7.10 рандом урон
  • Ответы: 12
  • Форум: Вопросы

Спавн игрока

Всем привет. Задался тут вопросом, как сделать несколько позиций спавна игрока, дабы при первом входе (onEntityFirstJoinчетатам) и при респавне игрока выбиралась случайная точка из конфига, где же в самом конфиге был бы список этих точек. Скажем так, что работать с конфигом форжевскими методами.

  • deleted.user
  • Тема
  • 12 Апр 2018
  • позиции рандом спавн спавн игрока
  • Ответы: 2
  • Форум: Вопросы

Как создать рандомное целое число в JavaScript

Часто требуется создать случайное число в JavaScript. В этой статье напишем простую функцию, которая выводит рандомное число из заданного диапазона.

Эта функция выводит рандомное целое число из диапазона. Первое число диапазона включается, конечное — не включается. min и max — целые числа.

// [min, max) const getRandomInt = (min, max) => < return Math.floor(Math.random() * (max - min) + min); >;

Например, если требуется получить рандомное число 1,2,3. 100, то вызов будет выглядеть таким образом:

console.log(getRandomInt(1, 101)) // 5, 31, 17, 89, . 

Что такое сайд эффекты в ES модулях и как они влияют на бандл?

7 месяцев назад · 6 мин. на чтение

В этой статье разберемся что такое сайд эффекты, рассмотрим поле sideEffects в package.json, и как его значение влияет на финальный бандл и на tree shaking.

Многие проекты используют webpack в качестве сборщика, который может уменьшить размер своих выходных бандлов с помощью встряхивания дерева (tree shaking, удаления мертвого кода). Однако встряхивание деревьев может работать эффективно только в том случае, если оно знает о побочных эффектах в вашем коде и в пакетах, которые вы используете. В этой статье разберемся, что такое побочные эффекты, почему webpack должен знать о них и что он делает с этими знаниями.

Что такое побочные эффекты?

Побочным эффектом (сайд эффект, side effect) в контексте модуля ECMAScript является код, который выполняет некоторое внешне видимое поведение (то есть поведение, видимое вне модуля) при загрузке модуля. Вот пример:

import < registerThing >from 'thing-registry'; const store = registerThing( THING_KEY, < /* . */ >);

registerStore вызывается на верхнем уровне, что означает, что он будет запущен, как только модуль будет впервые импортирован. Эти изменения видны внешне, так как вещи модифицируются во внешнем хранилище, которое находится в другом модуле ( thing-registry ). Другие примеры побочных эффектов включают установку глобальных значений в window или добавление поведения браузера с помощью полифиллов (polyfills).

Однако, если бы это произошло внутри функции init , которая не вызывается при загрузке модуля, то это больше не было бы побочным эффектом:

import < registerThing >from 'thing-registry'; export function init() < const store = registerThing( THING_KEY, < /* . */ >); > // `init` не вызывается на верхнем уровне модуля, // и таким образом импорт этого модуля не вызывает сайд эффектов.

Объявление переменной или выполнение каких-либо изменений на верхнем уровне, которые влияют только на текущий модуль, также не является побочным эффектом, поскольку они содержатся в модуле:

import list from './list'; // не сайд эффект let localVariable = []; // тоже не сайд эффект for ( const entry of list )

Влияние побочных эффектов на сборку

Большинство современных сборщиков реализуют tree shaking, при котором неиспользуемый код удаляется из финальных бандлов, так как в этом нет необходимости. Это становится важным в библиотеках, которые предлагают множество различных функций, поскольку потребители этой библиотеки могут использовать только небольшую ее часть и не хотят, чтобы их бандлы были больше, чем необходимо. Таким образом, пакеты и библиотеки должны предпринять шаги для обеспечения того, чтобы их действительно можно было правильно встряхнуть. Это возвращает нас к побочным эффектам. Как мы видели, побочные эффекты — это код, который запускается просто в силу импорта модуля и оказывает какое-то внешнее влияние. Это означает, что код не может быть вытряхнут деревом; Он должен работать, потому что он изменяет вещи за пределами модуля, которые могут понадобиться в другом месте. К сожалению, побочные эффекты трудно определить автоматически, и некоторые сборщики (например, webpack) ошибаются в сторону осторожности, предполагая, что каждый модуль потенциально имеет побочные эффекты. Это становится проблемой для index модулей, которые повторно экспортируют (ре-экспортируют) вещи из других модулей, поскольку это фактически означает, что все, что там есть, теперь должно быть объединено вместе:

// index.js export < a, b >from './module1'; export < c, d, e >from './module2'; export < f >from './module3'; // Tree shaking не может быть применен, т.к. сборщик не знает // имеют ли эти ре-экспортируемые модули сайд эффекты.

Рассказываем сборщикам о побочных эффектах

Поскольку сборщики не могут сами разобраться в побочных эффектах, нам нужно явно заявить о них. Это делается в package.json пакетов. Это означает, что объявление побочных эффектов является обязанностью пакета, и для пакетов, которые этого не делают, webpack, скорее всего, не сможет ничего стереть. Пользователи такого пакета могут в конечном итоге вытащить все это в свою сборку, даже если они используют только небольшую часть пакета, часто без простого способа обойти его. Так как же заявить о побочных эффектах? Лучший способ сделать это зависит от того, насколько вы их используете и где они находятся в вашем коде. Очень часто ваш пакет вообще не будет использовать никаких побочных эффектов. В этой ситуации вы можете просто установить sideEffects значение false :

Если в нем есть несколько файлов с побочными эффектами, вы можете перечислить их:

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

Webpack поддерживает ряд сложных функций сопоставления, поэтому другой подход, который вы можете использовать, заключается в инвертировании вещей и объявлении путей без побочных эффектов, оставляя webpack предполагать, что все остальное может иметь побочные эффекты:

Приведенный выше пример говорит сборщику, что он должен предполагать, что все, что находится за пределами каталогов components и utils , содержит побочные эффекты. Этот подход должен гарантировать, что все в components и utils может быть встряхнуто деревом без проблем с побочными эффектами и потенциально вызовет проблемы только в том случае, если один из файлов там использует побочные эффекты. В некоторых ситуациях может быть предпочтительнее пометить конкретный вызов функции как не имеющий побочных эффектов, а не весь файл. Рассмотрим следующий пример:

function noSideEffects() < // Do something. >noSideEffects();

Сборщик не может определить, содержит ли вызов верхнего уровня noSideEffects какие-либо побочные эффекты. Одним из решений было бы включение модуля в поле package.json sideEffects , как мы видели выше. Однако мы также можем обрабатывать его в коде с помощью подсказки PURE :

function noSideEffects() < // Do something. >/*#__PURE__*/ noSideEffects();

Потеря побочных эффектов у потребителя

Рассмотрим другой случай. Теперь вы являетесь потребителем и импортируете пакет, в котором используются побочные эффекты. Вы хотите их использовать. На самом деле, вы полагаетесь на то, что эти побочные эффекты произойдут, иначе ваш код не будет работать правильно. Вы можете столкнуться с некоторыми ситуациями, когда побочные эффекты неожиданно пропадают. Вот пример:

// index.js import 'side-effectful-module'; export < a, b >from './impl';
// impl.js function a() < // что-то делает >function b() < // делает что-то, что зависит от произошедших сайд эффектов >

В index.js мы видим то, что часто называют “голым импортом” (naked import). Этот синтаксис означает, что мы не используем ни один из экспортов модуля, и нас фактически интересуют только его побочные эффекты. Голый импорт сам по себе не является побочным эффектом, но он является очень сильным сигналом о том, что побочные эффекты присутствуют во всем, что вы импортируете. index.js не делает ничего, кроме импорта side-effectful-module , просто ре-экспортируя функции из impl.js . Ключевым моментом здесь является то, что функции в impl.js на самом деле зависят от побочного эффекта, который происходит в index.js . Если встряхивание деревьев отключено, например, в режиме разработки, все будет работать правильно. Однако, если встряхивание дерева включено, модуль index.js может быть удален из дерева, оставив только фактические функции из impl.js . Если это произойдет, побочный эффект будет потерян, и b потерпит неудачу. То же самое может произойти, если импорт выполняется в дочернем модуле:

// index.js import < unused >from './util'; function b() < // делает что-то, что зависит от произошедших сайд эффектов >// Этот модуль не использует функцию `unused`.
// util.js import "side-effectful-module"; export function unused() < // делает что-то, что зависит от произошедших сайд эффектов >

Поскольку unused не используется в index.js , он будет вытряхнут деревом. Это означает, что ничего из impl.js больше не нужно, поэтому ничего из этого не будет загружено. В очередной раз мы теряем побочный эффект, хотя он необходим.

Предотвращение побочных эффектов при встряхивании деревьев

Поскольку эти побочные эффекты по существу являются автоматически выполняемыми безымянными зависимостями, мы должны рассматривать их как таковые. Если в модуле есть код, который зависит от побочного эффекта, мы должны быть уверены, что импортируем его туда. Второй пример можно легко исправить с помощью дополнительного импорта в index.js :

// index.js import "side-effectful-module"; import < unused >from './util'; function b() < // делает что-то, что зависит от произошедших сайд эффектов >// этот модуль все еще не использует `unused`.

Это гарантирует, что side-effectful-module будет выполняться перед любым кодом в index.js и не будет вытряхиваться из дерева. Обратите внимание, что теперь мы импортируем побочный эффект в оба модуля, но это нормально! Модули ES запускаются только один раз, а это означает, что их побочные эффекты также будут запускаться только один раз, независимо от того, сколько файлов они импортированы.

Подведем итоги

  • Если ваша библиотека не содержит побочных эффектов, установите sideEffects: false в package.json .
  • Если ваша библиотека содержит побочные эффекты, вы все равно можете включить встряхивания деревьев насколько это возможно. Перечислите файлы с побочными эффектами в явном виде или используйте обратные условия, чтобы перечислить пути, которые не имеют побочных эффектов.
  • Если вы полагаетесь на побочные эффекты от внешнего модуля, обязательно импортируйте этот модуль везде, где вы их используете.

Как задать условие в Python if «text» + «что-то рандомное»?

Как в Python задать условие if, чтобы он реагировал на определенный введенный текст?

a = какой-то-заданный-текст И какой-то рандомный текст
что-то типа if a = 'text' + 'random'
print('Hello')
text - заданный как-бы первый параметр, а рандом - это любое рандомно введенное далее слово, цифра.
text23894234, textsdfsdf, text12, textWHAT. чтобы при вводе всех этих слов мне выводился print('Hello')

  • Вопрос задан более трёх лет назад
  • 1137 просмотров

Решения вопроса 0
Ответы на вопрос 2

Есть несколько вариантов. Один из них: делаете срез строки и сравниваете первые условно 4 буквы. Если они равны заданной строке, то выполняется действие. Пример:

a = 'text2283832939' if a[:4] == 'text': print('Hello')

Ответ написан более трёх лет назад

ScriptKiddo

ScriptKiddo @ScriptKiddo

a = 'textJKKLXCK23' if a.startswith('text'): print('Hello')

Ответ написан более трёх лет назад
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.

python

  • Python
  • +1 ещё

Как запустить код Python через PS в этом случае?

  • 1 подписчик
  • 3 часа назад
  • 62 просмотра

Рандомизатор (всего) и немного разного 2.2.1.2

Да я пытался удалить файл, не смог (не было прав), потому сделал ссылку.

Загрузил напрямую. Добавил теги.

Diablolll
Diablolll
Гвардеец

Участник форума
Регистрация 18 Июл 2021 Сообщения 1.105 Реакции 353 Баллы 148 Лучшие ответы 11

сломает баланс, хотя некоторые моменты рандомные которые уже присутствуют в игре тоже иногда удивляют, пример тому шкафы в библиотеке магов огня

punkkk
punkkk
Наемник

Участник форума
Регистрация 5 Июн 2018 Сообщения 742 Реакции 231 Баллы 105 Лучшие ответы 4

сломает баланс

Мне понравилось просто на эксперементальных скриптах от Хаарта бегать (с рандомным оружием), решил сделать что-то подобное.

Да, балансить это дело невозможно, с другой стороны кроме как денег (за продажу оружия) оно преимущества и не даст. Зато разнообразие!

Если например не продавать оружие (делать что бы оно исчезало - запарно), то весьма себе челендж, ибо враги будут с новыми пушками, иногда очень сильными.

punkkk
punkkk
Наемник

Участник форума
Регистрация 5 Июн 2018 Сообщения 742 Реакции 231 Баллы 105 Лучшие ответы 4

punkkk обновил ресурс Рандомное оружие у НПЦ + Доп лут новой записью:

Теперь не надо ничего делать, кроме как положить файл в ". /Gothic II/Data"

rioris1995
rioris1995
Рыцарь

Участник форума
Регистрация 31 Дек 2017 Сообщения 2.072 Реакции 680 Баллы 221 Лучшие ответы 9

@punkkk , уточните на какой платформе работает плагин,у вас указано G2a, это должно означать, что на этой игре плагин будет работать,если это НБ, то так и укажите, ну и версию НБ, для которой сделан плагин. Совместимость только с НБ? Или ещё с чем-то? Напишите.

punkkk
punkkk
Наемник

Участник форума
Регистрация 5 Июн 2018 Сообщения 742 Реакции 231 Баллы 105 Лучшие ответы 4

@punkkk , уточните на какой платформе работает плагин,у вас указано G2a, это должно означать, что на этой игре плагин будет работать,если это НБ, то так и укажите, ну и версию НБ, для которой сделан плагин. Совместимость только с НБ? Или ещё с чем-то? Напишите.

Тестил на НБ только на последних скриптах и на эксперементальных скриптах от Хаарта.
Теоретически должно работать на любой версии Г2 ночь ворона, но может иметь какие-то ошибки, ибо например квестовые предметы и некоторые предметы типа когтя белиара, я отсеиваю базируясь на НБ.

Скрипт с рандомным лутом тоже под НБ заточен (думаю любая версия НБ подойдет). Если вдруг найдете ошибки или будет желание не для НБ использовать, я могу поправить потом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *