Кнопки, предметы позволяющие воздействовать на другие предметы в заданном игроком виде, список действий думаю можно не ограничивать, в моем видении нужно предоставить игроку возможность выполнения указанной им команды над предметом, то есть должно быть какое-то меню !fs_act там то что делает кнопка, и можно добавить либо изменить выполняемые действия над предметом. Нужно предусмотреть чтобы выла возможность задать действия в формате ДЕЛАЕМ ЕСЛИ ВКЛЮЧАЕМ, ЧТО ДЕЛАТЬ ЕСЛИ ВЫКЛЮЧАЕМ.
появление таких кнопок бы сильно добавило фана, можно было бы добавить всякие разные действия, типа вращение, сдвиг предмета по направлению его осей (раздвижные двери так можно сделать), возможно лифты (если будет гибкая возможность сохранить что должна делать кнопка), способов применения уйма, и с этим интересно поигратся.
но есть проблема, как сохранить такую кнопку, текущая реализация базы данных расчитана на описание свойств предмета, но не на описание их изменения, более того нет способа идентифицировать нужный проп от другого чтобы при загрузке сохранились те действия которые кнопка должна выполнять над предметом
в принципе над этой задачкой интересно подумать если и не сейчас то обозначить на будущее.
Рабочие заметки:
я понимаю что можно добавить еще одно поле в таблицу хранилища и как-то вписать все действия предположим в виде keyvalue записанного в одно поле текстом, или же что-то еще, но есть же проблема! стройка устроена так что если ты выходишь с сервера, либо я перезагружаю плагин, то особые свойства предметов такие как ид в сохранке, слот и прочее сохраняется в targetname проперти каждого пропа, и зайдя обратно сервер это сканирует и обратно связывает с игроком, но ведь в него не запишешь такие большие сложные данные как keyvalue к примеру, терять эту фичу ради кнопок как-то не хочется все же это очень удобно как мне так и игрокам.
Но, если это прям так нужно можно же сделать выделенный дамп параметров keyvalue структур в файл при OnPluginEnd и этот же файл при старте плагина считать и записать обратно в память, в принципе! даже не обязательно всю систему переводить на такой вариант сохранения метаданных о предмете, достаточно в targetname указать что этот предмет кнопка, а все остальное по таким кнопкам на карте в пределах раунда считывать из keyvalue
еще нужно подумать о том как указать на конкретный предмет из слота в сохранении кнопки, так и в игре, у предметов должен появится какой-то универсальный ID который будет сквозным как для базы данных так и для загруженных из базы данных слотов, только при наличии ID можно будет указать целевой предмет для одного из действий кнопки коих может быть много.
Рекомендованные комментарии
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.