This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
Пример: есть три игрока с правами. У первого есть право "1", у второго - "1", "2" и у третьего - "1", "3" Для, например, третьего игрока должно быть выведено меню с описанием прав на предмете, которыми он обладает в данный момент.
Как я представляю себе это: Есть БД, в которой перечислены все права и их описания под номерами. Например:
LoreNumber1=perm:1 lore:{@Вы можете@использовать команду /1} LoreNumber2=perm:2 lore:{@Вы можете@использовать команду /2} LoreNumber3=perm:3 lore:{@Вы можете@использовать команду /3}
Заметьте, что перед началом каждого описания я написал символ переноса строки. Это по тому, что мы добавляем текст в Lore. Хотя, для удобства здесь можно было бы принять по-умолчанию, что добавляется именно новая строка.
Так же есть БД с предметами. Ну, например:
ItemNumber1=item:339
Начнём составление "динамичного lore". Для начала, нужно проверять игрока на предмет обладания правом. Это флаг. Значит, будет несколько активаторов в связке, которые на выходе формируют окончательное Lore. Но обо всём по порядку.
Итак, есть первый активатор Exec1, который добавляет к Lore "окончательного" предмета строку 1 при условии, что проверка на присутствие права "1" прошла успешно:
SetLore=item:ItemNumber1 lore:LoreNumber1
Этим действием мы добавили строку Lore из первой БД к "динамическому предмету". Думаю, его можно назвать так.
Во втором активаторе Exec2 идёт проверка на обладание правом "2", которая выдаёт false, а после третья проверка в активаторе Exec3 на присутствие права "3" соответственно. И, так как право "3" присутствует, выполняется действие:
SetLore=item:ItemNumber1 lore:LoreNumber3
Далее идёт четвёртый активатор, который запускает долгожданное меню с одним предметом. Будем использовать файл меню. В строке предмета напишем следующее:
item:ItemNumber1
И того, у нас получится предмет с Lore, которое полностью описывает права, которыми обладает игрок, запустивший эту цепочку.
Но, согласитесь, что не очень удобно проверять КАЖДОЕ право. Ведь, игроки и так обладают начальным набором прав? По этому, можно записать все стандартные права в другие предметы, а под новые отвести отдельный предмет. Ещё есть вариант совмещения обычного Lore и "динамического", которое создаём мы.
Делать это можно было бы в той же ITEM-БД. То есть, мы не просто создаём кастомный ID для использования его дальше. Мы можем задать и своё описание предмету в этой БД, к которой будет добавляться новое описание. Например:
ItemNumber1=item:Имя_Бумаги@Начальное_описание_бумаги$339*12
Интересно, а что же делать с "изменённым" "динамическим предметом"? Он же так и остаётся в памяти, с такими же параметрами. Можно создать отдельное действие, которое бы сбрасывало наше кастомное Lore. Или можно сразу сбрасывать до стандартного Lore, что есть в ITEM-БД
Но, второй способ будет лишним, если мы создаём эдакий квест, где от каждого шага зависит успех решения головоломки. Например, нужно ходить по разным местам, разгадывая загадки. За разгадку к "динамическому предмету" будет добавляться символ кода, который будет служить паролем, допустим, к какой-то двери, которая активируется командой с аргументом, который игрок "насобирал".
В общем, очень интересно было бы поиграться с "динамический описанием" :D
Даже не знаю. Пока отложу. Мылей нет вообще ;)
@fromgate: Go
В связи с тем, что на момент написания данного поста, Вы, как я понял из темы на рубаккит, занимаетесь созданием правил описания предметов посредством строки, а так же, что эти строки можно будет заносить в переменные, хочу спросить: возможно ли перезаписывать не всё, что в переменной, а только часть текста в ней? Если возможно, то всё, что я описал выше, можно уместить в пару тройку предложений.
To post a comment, please login or register a new account.