2 Категорія: Блоки
- 2.1 Додаткові параметри блоків
- 2.2 Приклад створення блоку (на прикладі ліхтаря) та блоку, що викликає блискавку
- 2.3 Блок «Призовник блискавок»
- 2.4 Список нескладних функцій
- 3.1 Додаткові параметри для предметів
- 3.2 Приклад створення предмета
- 3.3 Створення функції на спаун предмета на інвентар після застосування іншого
- 4.1 Структура створення рецепту
- 4.2 Видалення рецепту
- 8.1 Гравітаційна установка
- 8.2 Надісланий телепортатор
- 8.3 Електро-Гвинтівка
Установка [ ]
- Встановіть Minecraft Forge.
- Завантажте Custom Stuff.
- Скопіюйте файл у папку /mods.
Категорія: Блоки [ ]
- Щоб додати свій блок у гру, потрібно створити у категорії customBlocks файл з розширенням .block та відкрити за допомогою блокнота.
У блоків повинні бути обов'язково 3 параметри:
| Параметр |
Примітка |
| name |
Можна назвати російською, якщо використовується русифікатор, але гравці, які мають англійська розкладка, побачать лише незрозумілі символи. |
| id |
У блоків є обмеження: [97 . 255]
|
| texturefile |
Шлях до текстури блоку. Текстура має бути роздільною здатністю 16×16 і поміщена до архіву .minecraft/mods/custom stuff.zip
|
Додаткові параметри блоків [ ]
| Параметр |
Базове значення |
Опис |
| type |
normal |
Визначає тип блоку (normal, fence, fencegate, stairs, door, slab, crosstexture, torch, pressureplate, chest, pane, liquid, trapdoor). |
| textureindex |
не має значення. |
Може використовуватись для текстур-файлів. Порядок починається від 0, зліва направо та від верху. |
| textureindex1 |
не має значення. |
textureindex1 до textureindex15. Textureindex для зменшення цін. Same with thether texture properties. |
| texturefiletop |
не має значення. |
Верхній текстури блоку. |
| texturefileeast |
не має значення |
Східна сторона блоку. |
| texturefilewest |
не має значення |
Західний бік блоку. |
| texturefilenorth |
не має значення |
Північна сторона блоку. |
| Texturefilesouth |
не має значення |
Південна сторона блоку. |
| textureindextop |
не має значення |
Верхній індексний бік блоку. Тобто потрібно вказати номер текстури з файлу, де 0,0 - найвища ліва, 0,1 - трохи нижче, 1,0 - трохи правіше і т.д. буд.. |
| textureindexeast |
не має значення |
Західна індексна сторона блоку. |
| textureindexwest |
не має значення |
Східна індексна сторона блоку. |
| textureindexnorth |
не має значення |
Північна індексна сторона блоку. |
| textureindexsouth |
не має значення |
Південна індексна сторона блоку. |
| chesttexturefile1 |
не має значення |
chesttexturefile1 до chesttexturefile7. Текстури для скрині. Дивіться chesttextures.png (таке зображення є в архіві), де пронумеровані числа для текстур. |
| матеріал |
rock |
Матеріал, з якого складається блок (grass, ground, wood, rock, iron, cloth, sand, glass). |
| damagevalues |
0 |
Number of damage values the block has [1 . 15] (За замовчуванням 0). "Індексація" блоку (приклад: барвники мають номер 351 та 15 значень (по одному для кожного барвника)). Тільки для типу normal, fence і crosstexture. |
| name1 |
не має значення |
Ім'я індексованих блоків name1, name2. |
| redstoneonly |
False |
Тільки для дверей. Якщо поставити true, то двері можна відчинити тільки за допомогою червоного каменю. |
| texturefilebottom |
не має значення |
Тільки для дверей. Шлях до текстури нижньої частини дверей. |
| doubleslabid |
не має значення |
Лише для плит. ID блоку, який встановлюється, коли ви розміщуєте одну плиту над іншою. Якщо цього не встановлено, неможливо зробити подвійну плиту. |
| stepsound |
stone |
Звук ходьби по блоку. Також проводиться звук розміщення/знищення блоку. Наявні звуки (wood, gravel, grass, stone, metal, cloth, glass). |
| hardness |
1 |
Складність видобутку блоку. (наприклад: обсидіан 10; бруд 0,5; камінь 1) |
| resistance |
0 |
Стійкість до вибуху.(наприклад: обсидіан 2000; камінь 10) |
| light |
0 |
Яскравість освітлення блоку (наприклад: камінь, що світиться 15; факел 14) |
| opacity |
255 |
Скільки світла проходить через блок [0. 255]. (наприклад: 255 = світло не проходить через блок, 0 = весь світ проходить через блок) |
| iddropped |
той самий блок |
Блок, матеріал, що випадає із блоку. |
| iddropped1 |
iddropped |
iddropped1 to iddropped15. iddropped for damage values. |
| quantitydropped |
1 |
Кількість предметів/блоків, що випадають. Можна встановити випадкову кількість (наприклад: 3-6). |
| damagedropped |
0 |
Which damage value the block drops. |
| damagedropped1 |
Default is the damage the block has |
damagedropped1 to damagedropped15. damagedropped for damage values. |
| transparent |
False |
Встановіть true, якщо блок має прозору текстуру. |
| Speed |
0.6 |
Як швидко можна пересуватися блоком (стандартно: 0.6). |
| gravity |
False |
Якщо поставити true, то гравітація впливатиме на блок (приклад: пісок та гравій). |
| collision |
true |
Якщо поставити false, через блок можна проходити. |
| movebypiston |
true |
Якщо встановити false, то блок неможливо буде рухати за допомогою поршня. |
| pressureplatetrigger |
all |
Блок активується натискною пластиною. Можливі значення (all, player, monster, animal, creature, item, noplayer, nomonster, noanimal, nocreature and noitem). Не можна використовувати кілька значень. |
| destroyed |
не має значення |
Функції, що викликаються, коли гравець зруйнував блок. |
| destroyed1 |
не має значення |
destroyed1 to destroyed15. destroyed for damage values. Same with clicked, added etc. |
| clicked |
не має значення |
Функції, що викликаються при натисканні ЛКМ на блок. |
| neighborchanged |
не має значення |
Функції, що викликаються, коли поруч із блоком змінюється сусідній блок. |
| added |
не має значення |
Функції, що викликаються, коли блок було встановлено. |
| activated |
не має значення |
Функції, які викликаються, коли підключений до червоного каменю. |
| deactivated |
не має значення |
Функції, що викликаються, коли блок відключено від червоного каменю (не зовсім правильний переклад). |
| rigthclicked |
не має значення |
Функції, що викликаються, коли гравець клацне правою кнопкою миші на блок. |
|---|
Приклад створення блоку (на прикладі ліхтаря) та блоку, який викликає блискавку [ ]
- Як написано вище, потрібно створити файл із розширенням .block та відкрити за допомогою блокнота.
- Підготувати текстуру 16х16 для блоку.
- Написати основні параметри (id, name та texturefile).
id=170; name="Ліхтар";
id=170; name="Ліхтар"; texturefile="Lantern.png";
- Кинути текстуру Lantern.png (з урахуванням регістру) в архів .minecraft/mods/custom stuff.zip
- Блок створено.
Блок «Призовник блискавок» [ ]
- Потрібно створити ще один файл із розширенням .block та відкрити за допомогою блокнота.
- Потім зробити текстуру 16×16 для «Закличника».
- Крім основних параметрів, потрібно написати ще й виклик функції, що впливає на блок червоного каменю.
id=195; name="Призовник блискавок"; texturefile="ім'я_вашої_текстури.png";
- Основні параметри готові, залишилося додати вторинні та виклик функції.
id=195; name="Призовник блискавок";
- Кидайте вашу_текстуру.png в архів .minecraft/mods/custom stuff.zip
- Тестуйте свій витвір
Список нескладних функцій [ ]
"world.createThunderbolt(origin);";
- Функція створення вибуху (остання цифра "3" - це потужність вибуху, можна змінити значення на своє).
"world.createExplosion(origin, 3);";
- Функція встановлення часу (ставте будь-яке значення від 0 до 24, 0 ранок, 12 опівночі)
- Функція спауна мобів (можете ставити імена інших мобів, наприклад 'Cow' або 'Creeper', але вони обов'язково повинні бути поміщені в одинарні лапки.)
"world.spawnMob(origin, 'Pig');";
Категорія: Предмети [ ]
- Щоб додати в гру свій предмет, потрібно створити файл із розширенням .item у категорії customItems та відкрити за допомогою блокнота.
У предметів обов'язково повинні бути три параметри:
| Параметр |
Примітка |
| name |
Можна назвати російською, якщо використовується русифікатор, але гравці, які мають англійська розкладка, побачать лише незрозумілі символи. |
| id |
У предметів є обмеження (від 512 до 5000) |
| iconfile |
Шлях до текстури. Текстура має бути роздільною здатністю 16×16 і поміщена до архіву .minecraft/mods/custom stuff.zip
|
Додаткові параметри для предметів [ ]
| Параметр |
Базове значення |
Опис |
| type |
normal |
Визначає тип предмета (normal, food, helmet, body, legs, boots, grenade). |
| iconindex |
не має значення. |
Може використовуватись для текстур-файлів (що містять більше однієї текстури). Нумерація починається від 0, зліва-направо та зверху. |
| maxstack |
1 |
Визначає максимальне значення одному стаку. Максимальне значення: 64 |
| healamount |
1 |
Визначає кількість вгамування пунктів голоду. Максимально доступне значення: 20 (1 – половинка пункту голоду). |
| saturation |
0.6 |
Value for the saturation. |
| efficiency |
4 |
Ефективність інструментів (швидкість видобутку блоків. Наприклад: дерев'яний: 2, діамантовий: 8). |
| damage |
1 |
Шкода, що наноситься інструментами/зброєю. (Наприклад: дерев'яний: 0, діамантовий: 3) |
| maxuses |
броня: 16, їжа: 1, решта: 64 |
Кількість використання інструменту чи предмета. |
| harvestblocks |
all |
Визначає силу кирки (які блоки може руйнувати кирка). Допустимі значення: all, pickaxewood, pickaxestone, pickaxeiron, pickaxediamond, default або будь-який ID блоку. Ставте кілька ID, розділяючи їх комою. |
| ефективніблоки |
не має значення |
Визначає тип інструменту. Дані значення також повинні бути в "злочинах". Допустимі значення: all, none, pickaxe, axe, shovel and any blockid. Можна використовувати кілька значень, розділивши їх комою ",". |
| armorname |
не має значення |
Шлях до броні текстури.Увага! В архіві .minecraft/mods/custom stuff.zip потрібно створити папку "armor" та покласти текстуру туди. Для броні потрібно два зображення броні (див. архів minecraft/armor). |
| infiniteair |
False |
Лише для броні. Якщо поставити true, то гравець може нескінченно дихати під водою із цією бронею. (Only Singleplayer) |
| noburning |
False |
Лише для броні. Якщо поставити true, то гравець ніколи не загориться (не купайтеся в лаві - марно (завдає шкоди)). (Only Singlepalyer) |
| nofalldamage |
False |
Лише для броні. Якщо поставити true, то гравцю не буде завдаватися шкоди від падіння. (Only Singlepalyer) |
| grenadetime |
50 |
Часом до вибуху гранати. |
| grenadethrowforce |
1 |
Сила кидка гранати. |
| rightclick |
не має значення |
Функції, викликані, коли гравець натискає предметом правою кнопкою миші по блоку. |
| blockdestroyed |
не має значення |
Функції, викликані, коли гравець знищує блок. |
| hitmob |
не має значення |
Функції, викликані, коли гравець б'є моба чи гравця цим предметом. |
| explode |
не має значення |
Функції, викликані, коли вибухає граната. Якщо ви не поставите це значення, то гранати просто пропадатимуть без будь-якого ефекту. |
| eaten |
не має значення |
для їди (food). Функції, викликані, коли з'їдено предмет. |
|---|
Приклад створення предмета
- Як написано вище, потрібно створити файл із розширенням .item та відкрити за допомогою блокнота.
- Підготувати текстуру для предмета 16×16.
- Написати основні параметри (id, name та iconfile).
id=1503; name="Derky Pickaxe"; iconfile="Derky_Pickaxe.png";
- Додати вторинні параметри (хоча у випадку з інструментом ці параметри не можна назвати вторинними).
name="Derky Pickaxe"; id=1503; iconfile="Derky_Pickaxe.png"; type="normal"; maxuses = 2048; harvestblocks="pickaxediamond"; efficiencyblocks="pickaxe"; efficiency=16; damage=1; blockdestroyed="player.damageItem(player.getCurrentSlot(), 1);"; hitmob="player.damageItem(player.getCurrentSlot(), 512);";
Властивості даної кирки:
- Знищується з чотирьох ударів, якщо атакувати їй мобів.(hitmob)
- Ефективність удвічі вища, ніж у алмазної кирки. (ефективність)
- Максимальна кількість використань вища, ніж у алмазної кирки на ~500. (maxuses, blockdestroyed)
- Може видобувати обсидіан. (Шерстьблоків, ефективніблоки)
Створення функції на спаун предмета на інвентар після застосування іншого [ ]
Ви не замислювалися, чому ваш гравець випиває додану вами пляшку соку з пляшкою? Якщо замислювалися, цей розділ для вас:
- Створюємо файл із розширенням .item
- Робимо текстуру – 16×16, звичайно.
- А тепер наш предмет – пляшка із соком.
id = 701; name = "Пляшка із соком"; iconfile = "ваша_текстура.png"; type = "food"; maxstack = 1; saturation = 1.3; healamount = 2; eaten = "player.addToInventory(374, 1, 0);";
- Перше число у функції - це id предмета, який спауниться в інвентар після вживання вашого соку, в даному випадку порожня бульбашка. Друге число - кількість предметів, які спауняться в інвентар. Третє - параметр damage предмета, що не міняти.
- eaten – викликає функцію, після з'їдання предмета.
- Тестуєте, чи все нормально.
Категорія: Рецепти [ ]
- Щоб створити рецепт, потрібно створити файл з розширенням .recipe у категорії customRecipes та відкрити його за допомогою блокнота.
- Файл має бути один (тобто для створення одного і більше рецептів вистачає одного рядка в блокноті).
Структура створення рецепту
recipes.addRecipe("X amount 2 2 1 2 3 4", "vanilla");
recipes.addRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla");
- Для крафта в нестрогому порядку предметів (розмір комірки вказувати не потрібно):
recipes.addShapelessRecipe("X amount 1 2 3 4 5 6 7 8 9", "vanilla");
X — предмет, що виходить.
amount — кількість предметів, що виходять.
2 2 (або 3 3) - сітка крафта.
1 2 3 4 - інгредієнти, поставлені по порядку (див. праворуч нумерацію крафта).
Видалення рецепту
- Для видалення рецепту, написаного Mojang або іншими модами, необхідно вписати наступні рядки:
recipes.removeRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla");
X — предмет, що виходить
amount — кількість предметів, що виходять
2 2 (або 3 3) - сітка крафта
1 2 3 4 - інгредієнти, поставлені по порядку (див. праворуч нумерацію крафта).
recipes.removeRecipe("46 1 3 3 289 12 289 12 289 12 289 12 289 12", "vanilla");
Цей рядок дозволить видалити рецепт ТНТ
recipes.removeShapelessRecipe("X amount 1 2 3 4 5 6 7 8 9", "vanilla");
Категорія: Паливо [ ]
- Ця категорія додає властивість предмету використовуватися в печі як паливо. Щоб створити паливо, потрібно створити файл з розширенням .fuel у категорії customFuels.
Для переплавлення однієї речі потрібно 200 енергії (10 секунд). Наприклад, у вугілля енергетичний запас становить 1600 од. енергії, а у дощок/деревини – 300 одиниць. В одному файлі з розширенням .fuel можна зберігати плавку всіх предметів, тобто для кожного рядка буде визначено по одному пальному матеріалу.
fuels.addFuel("49 3200", "vanilla"); (Обсидіан може проплавити 16 предметів)
fuels.addFuel("1 100", "vanilla"); (Камінь може переплавити 0.5 предметів)
Категорія: Створення рецепту переплавлення [ ]
- Ця категорія додає властивість отримувати один предмет з іншого шляхом переплавлення печі. Щоб створити рецепт переплавлення, потрібно створити файл з розширенням .srecipe у категорії customSmeltingRecipes.
У файлі example.srecipe потрібно написати в один рядок:
smeltingRecipes.addRecipe("X 1 amount", "vanilla");
X - який предмет (або блок) треба переплавити
amount - кількість речей
1 — предмет, що вийшов.
Категорія: Створення генерації руди [ ]
- Щоб створити генерацію руди (блоку), потрібно створити файл із розширенням .oregen у категорії customOreGeneration.
| Параметр |
Базове значення |
Опис |
| id |
не має значення. |
id генерованого блоку. |
| damage |
не має значення. |
Мета-ідентифікатор.Приклад - різнокольорова шерсть має один ідентифікатор, але різні мета-ідентифікатори, для пошкоджених кирок ці мета-ідентифікатори також різні. |
| type |
normal |
Тип блоку, що генерується (normal, flower) |
| size |
не має значення. |
Кількість генерації блоків одному місці. |
| generationblocks |
не має значення. |
Визначає параметр біля яких блоків генерується блок. |
| heightmin |
не має значення. |
Мінімальна висота по альтитуді. |
| heightmax |
не має значення. |
Максимальна висота по альтитуді. |
| rate |
не має значення. |
Кількість генерації покладів у одному чанке. |
id=35; damage=10; type="normal"; size = 10; rate=10; generationblocks=1; heightmin = 0; heightmax=128;
Блоки та предмети з різними функціями [ ]
Гравітаційна установка [ ]
- Гравітаційна установка (блок має два режими: звичайний (не підключений червоний камінь) та ультра (підключений червоний камінь), при першому висота підкидання – 6-8 блоків, при другому – близько 40).
- Створюємо файл із розширенням .block.
- У ньому пишемо:
id = 205; type = "normal"; name = "Гравітаційна установка (звичайний режим)"; texturefile = "ваша_текстура.png"; damagevalues = 1; material = "iron"; stepsound = "metal"; hardness = 1; rightclicked = "player.addVelo(0, 1, 0);"; activated = "world.setBlockMetadata(origin, 1);player.sendMessage('Активовано ультра-режим.');"; name1 = "Гравітаційна Установка (ультра-режим)"; iddropped1 = 205; damagedropped1 = 0; rightclicked1 = "player.addVelo(0, 3, 0);"; deactivated1 = "world.setBlockMetadata(origin, 0);player.sendMessage('Активовано звичайний режим.');";
- Готово! Перемикати режими найкраще важелем, вимкнений звичайний режим, включений ультрарежим. Щоб установка підкинула вас, натисніть на неї ПКМ. Літайте на здоров'я та не переламайте ноги!
Надісланий телепортатор [ ]
- Спрямований телепортатор переміщає ГГ на місце прицілювання, при натисканні ПКМ. І щоб уникнути читерства, обмежимо радіус дії телепортатора до 20 блоків.
- Отже, у папці CustomItems створюємо файл із розширенням .item, і пишемо туди:
name="Направлений телепортатор"; id=793; type="normal"; iconfile="ваш_файл.png"; iconindex = 1; maxstack = 1; rightclickair = "customstuff.loadScript('portalgun.script')";
- Сам телепортатор готовий. Тепер робимо його скрипт.
- У папці customStuffFunctions створюємо файл з розширенням .script, у ньому пишемо:
var x = player.getLookX(20); // \var y = player.getLookY(20); //> можна вставити свої значення. var z = player.getLookZ(20); // / player.setPosition(x, y+3, z);
- Все готове. Тепер зберігаєте та тестуєте.
- Іконка для телепортатора:
Електро-Гвинтівка [ ]
(Матеріал з minecraftmodcustomstuff.wikia.com)
- Гвинтівка викликає електро-розряд з небес у місце прицілювання, і для пострілу використовує пил, що світиться. Максимальний радіус – 60 блоків.
- У папці CustomItems створюємо файл із розширенням .item, і пишемо в ньому:
name="Електро-Гвинтівка"; id=793; type="normal"; iconfile="ваш_файл.png"; iconindex = 1; maxstack = 1; rightclickair = "if(player.getItemCount(348, 0) >=1 )"; //перевірка, якщо в інвентарі є пил, що світиться, то запускаємо скрипт.
- Тепер робимо скрипт для гвинтівки.
- У папці customStuffFunctions створюємо файл із розширенням .script, туди пишемо:
var x = player.getLookX(60); // \var y = player.getLookY(60); //> можна виставити свої значення(у блоках) var z = player.getLookZ(60); ///world.createThunderbolt(x, y, z);//створюємо блискавку в цих координатах (напрямок погляду ГГ) player.removeFromInventory(348, 1, 0); //забираємо 1 пил, що світиться з інвентарю (перше число id)
Помилки (CS1) [ ]
- Якщо створеною киркою вдарити по землі, траві, гравію, піску та багатьом іншим блокам, гра фарбується і видасть помилку.
- У розрахованій на багато користувачів грі не можна відкрити двері з атрибутом «redstoneonly».
- У розрахованій на багато користувачів грі двері часто відкриваються тільки з боку клієнта. Через це іноді неможливо пройти через них.
- Атрибут броні «noburning» тощо не працюють у мережній грі.
- До виходу CustomStuff 2 предмети в руці відображалися великими вдвічі і перевернутими, подібно до інструментів і кістки.