Minecraft Wiki
Advertisement
Это заготовка статьи.
Вы можете помочь проекту, дополнив и оформив её.

Основная информация

Ввиду того, что в версии мода 1.9.0 (beta) Noppes создал Скриптовый блок и Скрипровую дверь, а грамотно работающий Сценарист существует с версии 1.7.10, нельзя упускать тот факт, что мод становится всесторонним. Через скрипты можно заставить любого NPC быть кем угодно и заставить делать что угодно, а также при использовании мировых и серверных скриптов и команд, можно осуществить жанр любой известной вам игры, или создать собственный. Прошу всех кто, хоть немного разбирается в этом — выкладывать в эту статью рабочие примеры использования любых скриптов с необходимыми скриншотами и обязательно заливать карту с этим примером и указанием версии мода для этой карты. А также указывать язык программирования на котором написан ваш скрипт.

Англ. форум на эту тему.
Все ваши вопросы, касательно скриптования, вы можете задать разработчику и другим пользователям тут (DiscordApp)

Для начала, вот вам файлы для, того чтобы использовать программирование скриптов в моде. Просто закидывайте к себе в папку Mods тот файл, на котором вы писать умеете:

ECMAScript
Python
Lua
Ruby
Php
Scala

А также держите учебники на JavaScript изучение:

(очень рекомендую в начале подучиться на HTML)
Первый на англ. языке
Второй на англ. языке
Русский учебник
И маленькая помощь — ID в текстовом виде на ваниль
Ссылка на функции, команд и классов. На выбор вашей верссии мода.

Простой пример скрипта на приветствие игрока

  • Версия MineCraft = 1.10.2
  • Язык программирования = ECMAScript

Задача: Игрок подходит к NPC, нажимает на него ПКМ, а NPC отвечает ему: «Привет (игрок)», где (игрок) — имя игрока.

Эта задача является аналогом кнопки «Interact Lines»

Решение: Берём сценарист в руки, подходим к нужному NPC. Жмём на него ПКМ. Откроется основное окно. Проверьте, что у вас стоит язык ECMAScript и то, что он Включён:

Приме скрипта на ответ Общее

Далее нажимает на Вкладку "+". Появится вкладка "1". Теперь вводим следующий текст:

function interact(event) {event.npc.say("Привет, @p");}

Выглядеть должно всё примерно так:

Приме скрипта на ответ Вкладка

И закрываем окно сценариев на Esc. Вот и всё наша задача будет выполнена и NPC заговорит!

Функции

Взято и переведено с сайта разработчика.

NPC Зомби Паук Фермер житель

Function Описание, когда вызывается:
init  — если NPC появляется/спаунится/обновляется в игровом мире.
tick  — каждые 10 тактов (~0,5 секунд).
interact  — если игрок нажимает ПКМ на NPC.
dialog  — если игрок начинает диалог с NPC (открывает диалоговое окно).
dialogOption  — если игрок отвечает на диалог с NPC (даёт ответ).
dialogClose  — если игрок закрывает диалог с NPC (закрывается диалоговое окно).
damaged  — если NPC кто-то атаковал (потеряет здоровье).
died  — если NPC умирает.
meleeAttack  — если NPC наносит кому-нибудь урон с руки (удары оружием или рукой).
rangedLaunched  — если NPC наносит кому-нибудь огнестрельный урон (луки, пистолеты, посохи).
target  — если NPC видит цель (цель для атаки, или атакующего).
targetLost  — если NPC теряет цель (цель для атаки, или атакующего).
kill  — если NPC кого-нибудь убивает.
role  — если игрок открывает окно роли NPC.
collide  — если NPC с кем-нибудь сталкивается (или кто-то с ним)
timer  — если таймер закончил свою работу.

Скриптовый блок и Скриптовая дверь Скриптовый блок Скриптовая дверь

Function Описание, когда вызывается:
init  — если блок/дверь появляется/спаунится/обновляется в игровом мире.
tick  — каждые 10 тактов (~0,5 секунд).
interact  — если игрок нажимает ПКМ на блок/дверь.
redstone  — если блок/дверь получает сигнал красного камня.
fallenUpon  — если игрок/моб/NPC падают на верхнюю сторону блока/двери.
doorToggle  — при открывании/закрывании скриптовой двери.
broken  — если блок/дверь будут разрушены/сломаны любым способом.
exploded  — если блок/дверь будут взорваны.
rainFilled  — если в игровом мире идёт дождь.
neighborChanged  — при изменении соседних блоков (замена/разрушение/удаление).
clicked  — если игрок нажимает ЛКМ на блок/дверь.
harvested  — если блок/дверь будут разрушены/сломаны игроком.
collide  — если игрок/моб/NPC сталкиваются с блоком/дверью.
timer  — если таймер закончил свою работу.

Игрок Человек

Function Описание, когда вызывается:
init  — если игрок появляется/спаунится/обновляется в игровом мире.
tick  — каждые 10 тактов (~0,5 секунд).
interact  — если игрок нажимает ПКМ на что или кого-либо.
broken  — если игрок разрушает блок.
toss  — если игрок выбрасывает предмет/блок из инвентаря на землю.
pickedUp  — если игрок поднимает дроп (предмет/блок) с земли.
containerOpen  — если игрок открывает контейнер (любой блок/техника имеющая внутренний инвентарь, сундуки/печи/ящики)
containerClosed  — если игрок закрывает контейнер (любой блок/техника имеющая внутренний инвентарь, сундуки/печи/ящики)
died  — если игрок умирает
attack  — если игрок атакует кого-нибудь.
kill  — если игрок убивает кого-нибудь.
damaged  — если игрок наносит урон кому-нибудь (иногда, когда нажимает ЛКМ на что или кого-либо).
timer  — если таймер закончил свою работу.
login  — если игрок поключается к игре/заходит на карту.
logout  — если игрок отключается от игры/выходит с карты.
chat  — если игрок отправил сообщение в чат.
factionUpdate  — если у игрока изменяются очки фракции.
dialog  — если игрок начинает диалог с NPC (открывает диалоговое окно).
dialogOption  — если игрок отвечает на диалог с NPC (даёт ответ).
dialogClose  — если игрок закрывает диалог с NPC (закрывается диалоговое окно).

Функции Скриптового предмета

Function Описание, когда вызывается:
init  — если предмет появляется/спаунится/обновляется в игровом мире.
tick  — каждые 10 тактов (~0,5 секунд).
interact  — если игрок нажимает ПКМ на что или кого-либо с предметом в руке.
attack  — если игрок/NPC/моб атакуют кого-либо с предметом в руке (ЛКМ).
toss  — если предмет дропнут/брошен на землю.
spawn  — если предмет появляется в игровом мире.
pickedUp  — если игрок поднимет/заберёт предмет с земли.

Функции Скриптовый снаряд

Function Описание, когда вызывается:
projectileTick  — каждые 10 тактов (~0,5 секунд).
projectileImpact  — когда снаряд врезался в что или кого-нибудь.

Классы/Пакеты

NPC

IAnimal, ICustomNpc, IEntity, IEntityItem, IEntityLiving, IEntityLivingBase, IEntityProjectile, IMonster, IPixelmon, IPlayer

Скриптовый блок и Скриптовая дверь

IBlock, IBlockFluidContainer, IBlockScripted, IBlockScriptedDoor

Игрок

IAnimal, ICustomNpc, IEntity, IEntityItem, IEntityLiving, IEntityLivingBase, IEntityProjectile, IMonster, IPixelmon, IPlayer

Скриптовый предмет

IItemScripted, IItemStack

Advertisement