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

нужна помощь в custom nps


wiliam

Рекомендуемые сообщения

В теме 13 сообщений

я не могу сделать профессию раздатчик ресурсов правильно я всё настраиваю а он не выдаёт предметы

кто может помочь пишите в тг-@kuzmich_piter

Ссылка на комментарий
Поделиться на другие сайты

Только что, wiliam сказал:

я не могу сделать профессию раздатчик ресурсов правильно я всё настраиваю а он не выдаёт предметы

кто может помочь пишите в тг-@kuzmich_piter

Ну как бы в custom npcs нету отдельного роли/работы "раздатчик ресурсов". Если ты имел в виду чтобы нпс бесплатно выдавал предметы, то тут есть 3 пути. Предположу также, что у тебя версия 1.12.2, поэтому некоторые, возможно, команды будут на этой версии и вообще все будет работать на этой версии

1. Ты делаешь нпс торговцев, ложишь в него любой предмет тот, который должен продавать, но не ложишь предметы в покупку, тогда нпс будет бесконечно выдавать 1 и тот же предмет

2. Если у тебя есть диалог, то можешь выдавать этой командой - просто выставь в ответах гг "Команды" (или как там я не помню точно) и вставляешь эту команду: 

/give <target> <item> [<count>]

где target - селектор существ, item - твой предмет (смотреть через f3 + H) и count - количество предметов (необязательно указывать)

3. Самый муторный, но опциональный вариант - через скрипты. Тут еще есть 2 варианта какой тебе скрипт надо. Один из них даже хорошо заменяет 2, т.к. можно выдавать аж несколько предметов одновременно. Для использования всех скриптов выбираешь "Скриптер", т.е. лопату и щелкаешь по нему. Все скрипты на языке JavaScript (или же ECMAScript), поэтому если у тебя его нету то скачай (по умолчанию обычно есть). Также не забудь нажать "Включено" на "Да", иначе ничего не сработает (Ох, какая же это для меня ностальгия это капец......)

Первый скрипт, если тебе надо просто "подойди" к нпс и нажать ПКМ по нему и должны выдаться предметы игроку:

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var damage = 0// дамаг предметам. Ставь 0, если хочешь видеть их целыми или хочешь видеть блоки с текстурой
var amount = 1 //количество предметов

function interact(e) {
    for (var i = 0; i <= items.length; i++) {
        e.player.giveItem(items[i], damage, amount)
    }
}

Второй скрипт, если хочешь чтобы выдавался сразу после закрытия конкретного диалога (это даже лучше 2 варианта):

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var damage = 0// дамаг предметам. Ставь 0, если хочешь видеть их целыми или хочешь видеть блоки с текстурой
var amount = 1 // количество предметов
var idDialog = 3 // id диалога

function dialog(e) {
    if (e.dialog.getId() === idDialog) {
        for (var i = 0; i <= items.length; i++) {
            e.player.giveItem(items[i], damage, amount)
        }
    }
}

Где взять id диалога? Заходи в настройки нпс, "Глобальные", "Диалоги", выбираешь нужную категорию и сам диалог и возле названия будет id нужный id диалога, при открытии которого будут выдаваться предметы.

Надеюсь помог :) Удачи

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за помощь попробую но я хотел сделать так как у ютубера кабан-майнкрафт где когда он подходил к нпс он ему выдавал предмет и профессия там есть раздатчик ресурсов

В 27.03.2026 в 15:33, Hibbe сказал:

Ну как бы в custom npcs нету отдельного роли/работы "раздатчик ресурсов". Если ты имел в виду чтобы нпс бесплатно выдавал предметы, то тут есть 3 пути. Предположу также, что у тебя версия 1.12.2, поэтому некоторые, возможно, команды будут на этой версии и вообще все будет работать на этой версии

1. Ты делаешь нпс торговцев, ложишь в него любой предмет тот, который должен продавать, но не ложишь предметы в покупку, тогда нпс будет бесконечно выдавать 1 и тот же предмет

2. Если у тебя есть диалог, то можешь выдавать этой командой - просто выставь в ответах гг "Команды" (или как там я не помню точно) и вставляешь эту команду: 

/give <target> <item> [<count>]

где target - селектор существ, item - твой предмет (смотреть через f3 + H) и count - количество предметов (необязательно указывать)

3. Самый муторный, но опциональный вариант - через скрипты. Тут еще есть 2 варианта какой тебе скрипт надо. Один из них даже хорошо заменяет 2, т.к. можно выдавать аж несколько предметов одновременно. Для использования всех скриптов выбираешь "Скриптер", т.е. лопату и щелкаешь по нему. Все скрипты на языке JavaScript (или же ECMAScript), поэтому если у тебя его нету то скачай (по умолчанию обычно есть). Также не забудь нажать "Включено" на "Да", иначе ничего не сработает (Ох, какая же это для меня ностальгия это капец......)

Первый скрипт, если тебе надо просто "подойди" к нпс и нажать ПКМ по нему и должны выдаться предметы игроку:

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var damage = 0// дамаг предметам. Ставь 0, если хочешь видеть их целыми или хочешь видеть блоки с текстурой
var amount = 1 //количество предметов

function interact(e) {
    for (var i = 0; i <= items.length; i++) {
        e.player.giveItem(items[i], damage, amount)
    }
}

Второй скрипт, если хочешь чтобы выдавался сразу после закрытия конкретного диалога (это даже лучше 2 варианта):

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var damage = 0// дамаг предметам. Ставь 0, если хочешь видеть их целыми или хочешь видеть блоки с текстурой
var amount = 1 // количество предметов
var idDialog = 3 // id диалога

function dialog(e) {
    if (e.dialog.getId() === idDialog) {
        for (var i = 0; i <= items.length; i++) {
            e.player.giveItem(items[i], damage, amount)
        }
    }
}

Где взять id диалога? Заходи в настройки нпс, "Глобальные", "Диалоги", выбираешь нужную категорию и сам диалог и возле названия будет id нужный id диалога, при открытии которого будут выдаваться предметы.

Надеюсь помог :) Удачи

У меня версия 1.20.1

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, wiliam сказал:

где когда он подходил к нпс он ему выдавал предмет и профессия там есть раздатчик ресурсов

это похоже на профессию "торговец", тогда никакие скрипты наверное не нужны

3 минуты назад, wiliam сказал:

У меня версия 1.20.1

я думаю, если будешь использовать скрипты, то все равно будут работать на этой версии (там фактически синтаксис особо не поменялся)

Ссылка на комментарий
Поделиться на другие сайты

В 31.03.2026 в 11:24, Hibbe сказал:

это похоже на профессию "торговец", тогда никакие скрипты наверное не нужны

я думаю, если будешь использовать скрипты, то все равно будут работать на этой версии (там фактически синтаксис особо не поменялся)

Да госпаде посмотри его видео про прокачки и увидишь он подходил к нпс и он выдавал ему предмет просто подойдя

Ссылка на комментарий
Поделиться на другие сайты

14 минут назад, wiliam сказал:

Да госпаде посмотри его видео про прокачки и увидишь он подходил к нпс и он выдавал ему предмет просто подойдя

Пришли лучше ссылку на видео (на ютуб)

Ссылка на комментарий
Поделиться на другие сайты

45 минут назад, wiliam сказал:

таймкод:11:21

Аааа все я наконец-то понял . В общем тебе нужен скрипт, который ранее давал, только он не будет рабочий из-за разных версий (именно что подойти, нажать на пкм и выдастся предмет). Вот адаптировал под твою:

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var text = "" // реплика нпс при выдачи предметов
var textPravda = true // указываешь, будет ли выдаваться вообще реплика. true - да, false - нет
var amount = 1 //количество предметов

function init(e) {
	var storeddata = e.npc.world.getStoreddata()
	if (!storeddata.has("predmetTrue")) storeddata.put("predmetTrue", 1)
}

function interact(e) {
if (e.npc.world.getStoreddata().get("predmetTrue") === 1) {
    for (var i = 0; i <= items.length; i++) {
        	e.player.giveItem(items[i], amount)
        }
    if (textPravda) {e.npc.say(text)}
    e.npc.world.getStoreddata().put("predmetTrue", 0)
    }
}

Ставь, проверяй. Код выдает предметы 1 раз и все больше не выдадут никогда. Если что ставь вот этого еще одного нпс и добавляй туда вот это:

function interact(e) {
    e.npc.world.getStoreddata().remove("predmetTrue")
}

После бери в руки "скриптер", нажимай по нему 1 раз и выходи, и проверяй должно снова выдаваться.

Если тебе надо чтобы нпс выдавал 1 предмет, то тогда тебе понадобиться вот этот скрипт уже:

var item = "" // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var text = "" // реплика нпс при выдачи предметов
var textPravda = true // указываешь, будет ли выдаваться вообще реплика. true - да, false - нет
var amount = 1 //количество предметов

function init(e) {
	var storeddata = e.npc.world.getStoreddata()
	if (!storeddata.has("predmetTrue")) storeddata.put("predmetTrue", 1)
}

function interact(e) {
if (e.npc.world.getStoreddata().get("predmetTrue") === 1) {
	e.player.giveItem(item, amount)
    if (textPravda) {e.npc.say(text)}
    e.npc.world.getStoreddata().put("predmetTrue", 0)
    }
}

Проверяй должно получиться (ну надеюсь) :)

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Hibbe сказал:

Аааа все я наконец-то понял . В общем тебе нужен скрипт, который ранее давал, только он не будет рабочий из-за разных версий (именно что подойти, нажать на пкм и выдастся предмет). Вот адаптировал под твою:

var items = [] // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var text = "" // реплика нпс при выдачи предметов
var textPravda = true // указываешь, будет ли выдаваться вообще реплика. true - да, false - нет
var amount = 1 //количество предметов

function init(e) {
	var storeddata = e.npc.world.getStoreddata()
	if (!storeddata.has("predmetTrue")) storeddata.put("predmetTrue", 1)
}

function interact(e) {
if (e.npc.world.getStoreddata().get("predmetTrue") === 1) {
    for (var i = 0; i <= items.length; i++) {
        	e.player.giveItem(items[i], amount)
        }
    if (textPravda) {e.npc.say(text)}
    e.npc.world.getStoreddata().put("predmetTrue", 0)
    }
}

Ставь, проверяй. Код выдает предметы 1 раз и все больше не выдадут никогда. Если что ставь вот этого еще одного нпс и добавляй туда вот это:

function interact(e) {
    e.npc.world.getStoreddata().remove("predmetTrue")
}

После бери в руки "скриптер", нажимай по нему 1 раз и выходи, и проверяй должно снова выдаваться.

Если тебе надо чтобы нпс выдавал 1 предмет, то тогда тебе понадобиться вот этот скрипт уже:

var item = "" // указываешь id предметов (смотреть через f3 + H) и чередуешь их названия через запятую, обязательно с кавычками!!!!!
var text = "" // реплика нпс при выдачи предметов
var textPravda = true // указываешь, будет ли выдаваться вообще реплика. true - да, false - нет
var amount = 1 //количество предметов

function init(e) {
	var storeddata = e.npc.world.getStoreddata()
	if (!storeddata.has("predmetTrue")) storeddata.put("predmetTrue", 1)
}

function interact(e) {
if (e.npc.world.getStoreddata().get("predmetTrue") === 1) {
	e.player.giveItem(item, amount)
    if (textPravda) {e.npc.say(text)}
    e.npc.world.getStoreddata().put("predmetTrue", 0)
    }
}

Проверяй должно получиться (ну надеюсь) :)

слушай я в этом не разбираюсь давай ты мне напишешь в тг я тебе скину моды и в мире по сети ты мне всё сделаешь

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, wiliam сказал:

слушай я в этом не разбираюсь давай ты мне напишешь в тг я тебе скину моды и в мире по сети ты мне всё сделаешь

и сколько ты заплатишь?

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, нет стен сказал:

и сколько ты заплатишь?

он сам решил проблему

прикол да, ему даже скрипты не помогли?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
В 02.04.2026 в 22:45, Hibbe сказал:

он сам решил проблему

прикол да, ему даже скрипты не помогли?

Привет ты я так понял зариш в custom NPS короче можешь помочь снова но с другой проблемой?

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, wiliam сказал:

Привет ты я так понял зариш в custom NPS короче можешь помочь снова но с другой проблемой?

я написал в тг тебе

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...