Редактирование: Minecraft Script Engine

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 100: Строка 100:
 
*getEntitiesFromSpatialView(SpatialView, X_0, Y_0, Z_0, X_1, Y_1, Z_1) - возвращает массив сущностей, которые попадают в коробку с координатами X_0, Y_0, Z_0, X_1, Y_1, Z_1, где нулевые координаты - координаты начала коробки, а первые - конца (У направлен вверх), либо ''null ''в случае ошибки.   
 
*getEntitiesFromSpatialView(SpatialView, X_0, Y_0, Z_0, X_1, Y_1, Z_1) - возвращает массив сущностей, которые попадают в коробку с координатами X_0, Y_0, Z_0, X_1, Y_1, Z_1, где нулевые координаты - координаты начала коробки, а первые - конца (У направлен вверх), либо ''null ''в случае ошибки.   
  
<div class="mw-parser-output"><div class="mw-parser-output">
 
 
== Компоненты скрипта ==
 
== Компоненты скрипта ==
  
Строка 115: Строка 114:
 
molangComponent["entity.molangexample"] = 1.0;  
 
molangComponent["entity.molangexample"] = 1.0;  
 
this.needsUpdate(molangComponent);</syntaxhighlight>
 
this.needsUpdate(molangComponent);</syntaxhighlight>
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
+
 
 
=== Серверные компоненты ===
 
=== Серверные компоненты ===
  
Строка 141: Строка 140:
 
**''on_equip ''- название события, которое вызывается, когда на сущность надевается данный предмет.  
 
**''on_equip ''- название события, которое вызывается, когда на сущность надевается данный предмет.  
 
**''on_unequip ''-&nbsp;название события, которое вызывается, когда с сущности снимается данный предмет.   
 
**''on_unequip ''-&nbsp;название события, которое вызывается, когда с сущности снимается данный предмет.   
*minecraft:explode - контроллирует взрыв сущности, а так же возникновение этого взрыва. Свойства:
+
</div> </div> </div> </div> </div>
**''fuseLength ''(по умолчанию [0, 0])&nbsp;- "длинна фитиля" - время в секундах до взрыва,&nbsp;задается&nbsp;массивом из двух чисел (минимальное и максимальное значения).
 
**''power ''(по умолчанию 3.0)&nbsp;- мощность взрыва, то есть его радиус и наносимый урон.
 
**''maxResistance ''(по умолчанию бесконечность)&nbsp;- если выставлено значение, взрывоустойчивость блоков во время взрыва не привысит данное значение. Может быть использовано для взрыва таких блоков, как обсидиан.&nbsp;
 
**''fuseLit ''(по умолчанию ''false'') - ''true'', если отсчет времени до взрыва уже идет, в противном случае ''false''.
 
**''causesFire ''(по умолчанию ''false'') - если свойство установлено в ''true'', после взрыва на его месте останется огонь. В противном случае ''false''.&nbsp;
 
**''breaks_blocks&nbsp;''(по умолчанию ''true'') - если свойство установлено в ''false'', не будет разрушать блоки в радиусе взрыва.&nbsp;
 
**''fireAffectedByGriefing&nbsp;''(по умолчанию ''false'') - если&nbsp;свойство установлено в ''true'', наличие огня после взрыва определяется игровым правилом&nbsp;''mob griefing''.&nbsp;
 
**''destroyAffectedByGriefing&nbsp;&nbsp;''(по умолчанию ''false'') - если&nbsp;свойство установлено в ''true'', разрушение блоков в радиусе взрыва&nbsp;определяется игровым правилом&nbsp;''mob griefing''.&nbsp; 
 
*minecraft:healable - определяет, как игрок может лечить сущность. Свойства:
 
**''force_use ''(по умолчанию ''false'') - если установлен в ''true'', игрок может использовать предмет для лечения сущности вне зависимости от её здоровья.&nbsp;
 
**''filters ''- группа фильтров, которая определяет условия возможности данного действия.
 
**''items ''- массив предметов, используемых для лечения сущности. Каждый элемент - независимый объект следующей структуры:
 
***''item'' - строковой ID предмета, используемый для лечения данной сущности
 
***''heal_amount ''(по умолчанию 1) - количество здоровья, восстанавливаемого данным предметом.
 
***''filters ''- группа фильтров,&nbsp;которая определяет условия возможности данного действия.   
 
*minecraft:health - определяет здоровье моба. Свойства:
 
**''health ''(по умолчанию 1) - текущее здоровье сущности.
 
**''maxHealth ''(по умолчанию 10) - максимальное здоровье, до которого сущность может вылечится.&nbsp; 
 
*minecraft:interact - определяет, каким образом игрок может взаимодействовать с сущностью. Имеет для этого следующие свойства:
 
**''spawn_entities ''- задает массив ID сущностей, которые призываются при взаимодействии с игроком.
 
**''on_interact ''- задает строковой ID события, которое вызывается при взаимодействии с игроком.
 
**''particle_on_start ''- задает эффект частиц в момент начала взаимодействия. Эффект задается объектом со следующими свойствами:
 
***''particle_type ''- строковой ID частицы
 
***''particle_y_offset ''(по умолчанию 0.0) - смещение эффекта вверх по оси Y
 
***''particle_offset_towards_interactor'' (по умолчанию ''false'') - если ''true'', эффект появится ближе к игроку 
 
**''cooldown ''- "охлаждение" - время, через которое сущность может снова взаимодействовать с игроком. По у молчанию 0.0
 
**''swing&nbsp;''(по умолчанию ''false'') - если установлен в true, игрок будет иметь анимацию "swing" (кивок головой) при взаимодействии с сущностью.&nbsp;
 
**''use_item&nbsp;''(по умолчанию ''false'') - если установлен в true, при взаимодействии будет тратится прдмет.
 
**''hurt_item'' (по умолчанию 0) - прочность, на которую будет умньшатся предмет при взаимодействии.&nbsp;
 
**''interact_text ''- текст, который будет показан на кнопке взаимодействия.
 
**''add_items.table'' -&nbsp;путь к файлу (относительно корня пакета поведений), в котором хранится информация о предметах, добавляемых в инвентарь после взаимодействия.
 
**''spawn_items.table'' -&nbsp;путь к файлу (относительно корня пакета поведений), в котором хранится информация о предметах, дропающихся рядом после взаимодействия.
 
**''transform_to_item ''- используемый прдмет превратится в указанный тут предмет после взаимодействия. Предмет указывается в формате "id:data".
 
**''play_sounds'' - массив строковых ID звуков, проигрываемых при взаимодействии. 
 
*minecraft:inventory - позволяет управлять инвентарем сущности, но не умеет менять его содержимое (к сожалению). Свойства:
 
**''container_type ''- задает тип интерфейса, может быть одним из следующих значений:&nbsp;''horse'', ''minecart_chest'', ''minecart_hopper'', ''inventory'', ''container ''и&nbsp;''hopper''.
 
**''inventory_size ''- задает размер инвентаря (количество доступных слотов). По умолчанию 5.&nbsp;
 
**''can_be_siphoned_from ''(по умолчанию ''false'')&nbsp;- если установлено в true, содержимое инвентаря сущности может быть вытянуто воронкой.
 
**''private ''(по умолчанию ''false'') - если установлено в true, только сущность имеет доступ к своему инвентарю.&nbsp;
 
**''restrict_to_owner ''(по умолчанию ''false'') - если установлено в true, доступ к инвентарю сущности имеет только&nbsp;она сама и её владелец.
 
**''additional_slots_per_strength ''(по умолчанию 0) - количество дополнительных слотов, которые сущность может получить (?). 
 
*minecraft:look_at - заставляет сущность некоторое время "пялиться" на другую сущность. Свойства:
 
**''filters ''(по умолчанию игрок) - фильтры, которыми определяется, на каких сущностей будет смотреть данная сущность.&nbsp;
 
**''look_cooldown ''(по умолчанию [0, 0]) - время, которое сущность будет стоять на месте и не будет искать цель/атаковать. Задается&nbsp;массивом из двух чисел (минимальное и максимальное значения).
 
**''look_event ''- идентификатор события, вызываемого, когда сущности из списка фильтров смотрят на эту сущность.
 
**''mAllowInvulnerable&nbsp;''(по умолчанию ''false'') - если установлено в ''true'', сущность будет смотреть даже на игрока в креативе.
 
**''searchRadius ''(по умолчанию 10.0) - максимальное расстояние в блоках, на котором будет срабатывать событие.
 
**''setTarget ''(по умолчанию ''true'') - если ''true'', сущность установит объект наблюдения в качестве цели для нападения.&nbsp; 
 
*minecraft:nameable - позволяет настраивать поведение и события сущности, когда к ней применяется бирка. Также позволяет заранее задавать имя сущности. Основные свойства:
 
**''name_actions ''- объект, представляющий собой описание события назначения имени мобу. Объект имеет следующую структуру:
 
***''on_named ''- название события, вызываемого при переименовании, если имя сущности входит в список&nbsp;''name_filter''
 
***''name_filter ''- список специальніх имен сущностей, для которых сработает событие&nbsp;''on_named'' 
 
**''default_trigger ''- переключатель, который срабатывает, когда сущность называют.
 
**''alwaysShow&nbsp;''(по умолчанию ''false'') - если выставлен в&nbsp;''true'', имя будет всегда показываться над мобом.
 
**''allowNameTagRenaming ''(по умолчанию ''true'') - если выставлен в&nbsp;''true'', сущность можно будет переименовать с помощью бирки.
 
**''name ''- позволяет задать или получить имя сущности, если оно было задано ранее. 
 
*minecraft:position - позволяет управлять положением сущности в мире. При применении мгновнно перемещает сущность в новое расположение. Свойства - координаты ''x, y z'' сущности entity.&nbsp;
 
*minecraft:rotation - возмоляет управлять поворотом сущности. Особое внимание стоит уделить свойствам, поскольку их названия семантически некорректны:
 
**''x'' (по умолчанию 0) - поворот головы вверх-вниз (по оси X). Является состовляющей '''''pitch'''''поворота объекта в общепринятой терминологии.&nbsp;
 
**y (по умолчанию 0) - поворот головы влево-вправо (по оси&nbsp;Y). Является состовляющей '''''yaw&nbsp;'''''поворота объекта в общепринятой терминологии.&nbsp; 
 
*minecraft:shooter - определяет, какими снарядами сущность будет вести дальний бой (стрельбу). Свойства:
 
**''def ''- идентификатор сущности, которая будет испольщована для дальнего боя. Для возможности стрельбы у этой сущности должен быть определен компонент projectile.
 
**''auxVal ''- ID эффекта зелья, который будет применен к сущности при попадании. 
 
*minecraft:spawn_entity - контроллирует способность моба призывать сущность или дроп. В качестве примера из ванильного Minecraft'а - курица, которая несет яйца. Свойста:
 
**''min_wait_time ''- минимальное время между призывами.в секундах. По умолчанию 300 секунд.
 
**''max_wait_time ''- максимальное время между призывами в секундах. По умолчанию 600 секунд.
 
**''spawn_sound ''- строковой ID звука, проигрываемого при спавне сущности.
 
**''spawn_item ''(по умолчанию egg) - если&nbsp;spawn_entity пустой, задает ID предмета, дропаемого сущностью.
 
**''spawn_entity ''- задает сущность, которую необходимо свавнить.
 
**''spawn_method ''- способ появления сущности. По умолчанию - ''born ''(рождение).
 
**''spawn_event ''- событие, вызываемое при спавне сущности. По умолчанию -&nbsp;''minecraft:entity_born''. 
 
*minecraft:teleport - задает возможность телепортации сущности (подобно Эндермену). Для разового перемещения используйте компонент&nbsp;minecraft:position.
 
**''darkTeleportChance ''- вероятность телепорта сущности, если она попадает в темноту. По умолчанию - 0.01.
 
**''lightTeleportChance'' -&nbsp;вероятность телепорта сущности, если она попадает на солнечный свет. По умолчанию - 0.01.
 
**''maxRandomTeleportTime ''- максимальное время в секунду между случайными перемещениями. По умолчанию - 20.0.
 
**''minRandomTeleportTime ''- минимальное время в секунду между случайными перемещениями. По умолчанию - 0.0.
 
**''randomTeleportCube ''- бокс&nbsp;случайной телепортации. Сущность будет телепортирована в приделах этого куба. Задается массивом из трех элементов - размерностей по осям ''x, y, z'' последовательно. По умолчанию -&nbsp;[32.0, 16.0, 32.0].
 
**''randomTeleports ''(по умолчанию ''true'') - если ''true'', сущность будет случайны образом тлепортироваться.
 
**''targetDistance ''- максимальное расстояние, на которое сущность будет телепортироваться во время атаки. По умолчанию - 16.0.
 
**''target_teleport_chance ''- вероятность телепортации, по умолчанию 1.0.&nbsp; 
 
 
 
=== Пользовательские компоненты ===
 
 
 
Пользовательские компоненты - особый вид компонентов, которые могут быть опрделены пользователем, но не дают сущности никакого поведения.&nbsp;Компонент должен быть зарегистрирован в Script Engine, для этого необходимо указать его имя и набор полей в формате name: value. После применения компонент ведет себя как&nbsp;и&nbsp;встроенный: вы можете получить его у сущности, изменить его значения и применить изменения. На данный момент пользовательские компоненты - единственные компоненты, которые могут быть добавлены к сущности на лету. Также они не сохраняются при выходе с уровня, поэтому заново присваивать их сущности необходимо при каждом заходе в мир.&nbsp;
 
 
 
Пример регистрации компонента:
 
<syntaxhighlight lang="Javascript">this.registerComponent("myNamespace:myComponent", { myString: "TamerJeison", myInt: 42, myFloat: 1.0, myArray: [1, 2, 3] });
 
</syntaxhighlight>
 
 
 
&nbsp;
 
</div> </div> </div> </div> </div> </div> </div> </div> </div>
 
  
 
== Ссылки ==
 
== Ссылки ==

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. Mineprogramming wiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!