Аааа все я наконец-то понял . В общем тебе нужен скрипт, который ранее давал, только он не будет рабочий из-за разных версий (именно что подойти, нажать на пкм и выдастся предмет). Вот адаптировал под твою:
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)
}
}
Проверяй должно получиться (ну надеюсь) :)