Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | + | ToolAPI - это API, позваляющий регистрировать инструменты и добываемые ими блоки. | |
− | + | <div class="mw-parser-output"> | |
− | + | <div class="mw-parser-output"> | |
+ | === Добавление инструмента === | ||
+ | |||
+ | Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)<br/> ''toolMaterial ''- название материала инструмента или объект его описания<br/> ''blockMaterials ''- массив с типами блоков, которые может добыть инструмент<br/> ''params ''- дополнительные параметры и функции инструмента | ||
+ | <syntaxhighlight lang="JavaScript">ToolAPI.registerTool(ItemID.myPickaxe, "wood", ["stone"], { | ||
damage: 1, // Базовый урон инструмента, | damage: 1, // Базовый урон инструмента, | ||
brokenId: 0, // Id предмета, который установится вместо инструмента при ломании | brokenId: 0, // Id предмета, который установится вместо инструмента при ломании | ||
Строка 8: | Строка 12: | ||
onAttack: function(item, victim, attacker) { | onAttack: function(item, victim, attacker) { | ||
return true; // возврат true предотвращает повреждение инструмента | return true; // возврат true предотвращает повреждение инструмента | ||
− | } | + | } |
// Действие при разрушении блока | // Действие при разрушении блока | ||
onDestroy: function(item, coords, block, player) { | onDestroy: function(item, coords, block, player) { | ||
return true; | return true; | ||
− | } | + | } |
// Расчёт времени разрушения блока инструментом | // Расчёт времени разрушения блока инструментом | ||
calcDestroyTime: function(toolData, coords, block, params, destroyTime, enchantData) { | calcDestroyTime: function(toolData, coords, block, params, destroyTime, enchantData) { | ||
Строка 18: | Строка 22: | ||
} | } | ||
} | } | ||
− | </syntaxhighlight> | + | </syntaxhighlight> |
− | + | ||
− | + | Для регистрации нового материала инструментов используется метод ToolAPI.addToolMaterial(toolMaterial, params) | |
+ | <syntaxhighlight lang="JavaScript">ToolAPI.addToolMaterial("dirt", { | ||
durability: 15, // Прочность (сколько блоков можно сломать) | durability: 15, // Прочность (сколько блоков можно сломать) | ||
level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть. | level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть. | ||
efficiency: 10, // Эффективность - модификатор скорости ломания блока | efficiency: 10, // Эффективность - модификатор скорости ломания блока | ||
− | damage: 1 // Урон от материала (складывается с базовым уроном) | + | damage: 1, // Урон от материала (складывается с базовым уроном) |
− | });</syntaxhighlight></ | + | });</syntaxhighlight> |
− | + | </div> | |
− | + | ||
− | + | === Регистрация блоков === | |
− | + | ||
− | </syntaxhighlight> | + | Для регистрации блока используется метод ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br/> ''blockMaterial ''- материал блока.<br/> ''level ''- уровень добычи |
− | + | <syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1); | |
− | + | </syntaxhighlight> | |
− | + | ||
− | + | Уровни добычи блоков из майнкрафта:<br/> 1 - камень<br/> 2 - железная руда<br/> 3 - алмазная руда<br/> 4 - обсидиан | |
− | + | ||
+ | По умолчанию доступны следующие материалы:<br/> "stone" - каменный,<br/> "wood" - деревянный,<br/> "dirt" - земляной,<br/> "plant" - растения,<br/> "fibre" - паутина,<br/> "unbreaking" - неломаемый | ||
+ | |||
+ | Для регистрации материала блока используется метод ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);<br/> ''blockMaterial ''- название материала.<br/> ''breakingMultiplier ''- модификатор времени ломания блока при добыче без подходящего инструмента. | ||
+ | <syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight> |