Динамическое LORE. #32


  • Patch
  • Replied
Open
Assigned to fromgate
  • _ForgeUser16377105 created this issue Feb 24, 2015
    Tester

    Пример: есть три игрока с правами. У первого есть право "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

  • _ForgeUser16377105 added the tags New Patch Feb 24, 2015
  • fromgate posted a comment May 5, 2015

    Даже не знаю. Пока отложу. Мылей нет вообще ;)

  • fromgate removed a tag New May 5, 2015
  • fromgate added a tag Waiting May 5, 2015
  • _ForgeUser16377105 posted a comment Jun 3, 2015

    @fromgate: Go

    В связи с тем, что на момент написания данного поста, Вы, как я понял из темы на рубаккит, занимаетесь созданием правил описания предметов посредством строки, а так же, что эти строки можно будет заносить в переменные, хочу спросить: возможно ли перезаписывать не всё, что в переменной, а только часть текста в ней? Если возможно, то всё, что я описал выше, можно уместить в пару тройку предложений.


    Edited Jul 8, 2015
  • _ForgeUser16377105 removed a tag Waiting Jun 3, 2015
  • _ForgeUser16377105 added a tag Replied Jun 3, 2015

To post a comment, please login or register a new account.