jagerente / vrisingacademysite Goto Github PK
View Code? Open in Web Editor NEWVRising Database
Home Page: https://vrising-academy.info
VRising Database
Home Page: https://vrising-academy.info
Возвращать доп параметр к предмету.
Массив рецептов, в крафтах которых он участвует как input.
Название reagentFor
Можно быстренько добавить на сайт виды крови.
Крайне элементарная вещь, которая ни с чем не связана. В очень-очень далёком будущем её можно будет подключить к бестиарию обычных монстров, которую мы будем делать в последнюю очередь.
У типа крови есть:
— Имя
— Способность 1
— Способность 2
— Способность 3
— Способность 4
— Способность 5
Ну и иконка. Всё.
Ну и на стороне фронтэнда приписать, что Способность 1 работает на 0%+ качестве крови, способность 2 на 30%+ и т.д.
Think about another ways of API architecture
Сейчас для имитации нажатой кнопки используется 'focus' state.
Необходимо везде где это используется, сделать динамическое присваивание и удаление класса 'active', дабы при сбитом фокусе не слетало нажатие.
Тут все связи, которые на данный момент есть в игре. Если что-то вспомню и дополню, то напишу.
Ссылка на эту карту с правами редактирования:
https://miro.com/welcomeonboard/MEZpbHVuNVN3RVVsU092ZEVNTEIxNDJkV29ZMEp1elRFUG1SSVJkQWxjdk81SjI4b1FvQWoxZ01qYU0zYzZZdHwzNDU4NzY0NTI1NTM3MzAzOTY1?share_link_id=159356008124
Там надо нажимать на иконочку стрелок в углу, что почитать мои комментарии.
Либо приблизить очень сильно.
У меня есть монстры в полуготовом виде.
Их надо в этом полуготовом виде и публиковать, ибо это долгий проект. Выяснить, у каких монстров какой лут, где они обитают и т.п. Так что я напишу, какие фичи надо в ближайшее время, но с заделом на будущее.
Для фильтра я разделил монстров на типы или faction. У них кроме id и названия ничего нет.
Монстр:
— name
— faction
— blood type
—— есть 6 стандартный, есть None для нежити всякой, есть Random для комаров и есть V Blood для боссов. Когда у нас будет страница для типов крови, там отображать надо будет только 6 стандартных.
— level
—— У монстров есть базовый уровень, но каждые 30% качества крови их уровень повышается на 2 и ещё +4 при 100% (надо проверить). То есть можно хранить только одно число, а на странице указывать рендж от level до level+10. При этом для V Blood и None типов уровень фиксированный. Однако...
—— Есть парочка монстров-исключений. Villager'ы часть имеют базовый уровень 28, а часть 26. Они одни такие, и это не зависит от локации или чего-то ещё, по крайней мере я не смог понять прикол. Пофиг на них, текстом можно написать про это.
—— Есть парочка монстров, у который одинаковые названия и они одинаково выглядят, но у них разные уровни в зависимости от локации. Это Armoured Skeleton (20 ур. в начальных локациях и 40 в более сложных) и Skeleton Crossbow (2 в самой первой локации, 18 в начальных и 36 в сложных). Я думаю, можно их хранить как отдельных монстров и дописать им в название их уровень. В далёком будущем им можно будет указывать в качестве мест обитания разные локации.
— locationS
—— это для далёкого будущего, это слишком муторно делать. Причём тут такая проблема ещё: для каждой локации надо указывать монстров, в которой они обитают. Но при этом есть ещё патрулирующие монстры, которые ходят по дорогам, и при этом они ходят ни где попало, а, например, в северной части региона Данли. Можно придумать свои локации "северные дороги Данли" в принципе.
— loot
—— (loot id, droprate, amount)
—— у нас в ближайшее время не будет никакой информации по поводу шансов выпадения. Однако я думаю, можно сразу это подключить и использовать так: писать дропрейт 0.25 для редких предметов, 0.75 для частых предметов, 1.0 для гарантированных предметов. И в information соответственно давать три списка предметов: guaranteed drops, common drops, rare drops.
—— Но есть ещё "сеты" дропов. Например, Treant всегда гарантированно даёт 4 случайных предмета из списка семян, Stone Golem даёт 2 случайных гема и есть ещё пара примеров. Типа хотелось бы писать "Guaranteed to drop 4 items among these: (список итемов)".
— Соответственно эту информацию можно будет писать в information у итемов. Давать список name монстров, у которых можно нафармить эти предметы.
ДЛЯ V BLOOD дополнительно
— knowledgeid
— mapgenieid
Переименовать в Home, ибо короче.
На главной странице хотелось бы сразу иметь кнопки на рабочие разделы сайта.
Затем большая кнопка Support Us
Support us monetarily to pay for server hosting and keep this site ad-free.
Затем большая кнопка Contribute, которая перенаправляет на отдельную страницу.
If you want to help fill up the database, there is a number of topics we seek data about.
Changelog
21/05/2022 — Launched the website with the folowing features:
— items catalouge excluding sturctures and the majority of hats and cloaks
— search items by name
— search items by tags
— clickable tags to initiate and instant search by tag name
— display all recipes that a chosen item can be crafted from
— display all items that a chosen item is reagent for
— clickable items in the "recipe" and "reagent for" sections to display their information
24/05/2022
— added a variety (34) of hats and capes (big thanks to u/Difinitus)
— added Blood Key
— some minor fixes to tags of particular items
31/05/2022 Spells Update!
— Compete catalogue of all spells including weapon abilities
— For each spell their cooldown, cast time and number of charges is specified (according to the ingame tooltip).
— For vampire spells cast times were determined manually by recording a video of spell cast and counting frames, approximate values are shown on the website.
Время всех рецептов добавлено.
Отображать в формате Xm Ys (минуты - секунды)
Каким-то образом надо указать, что это время вне закрытых комнатах. Можно указывать два времени, второе равно 0.75*t.
Пример: рецепт 180 сек.
Crafting time: 3m (2m 15s in a confined castle room)
Текст какой-то длинный, конечно. В идеале нарисовать знак вопроса и при наведении мышкой на него написать, что это бонус закрытой комнаты).
id
- уникальное, одна таблица должна быть продолжением предыдущей. В SQL запросе можно не указывать, генерируется автоматически.
type
:
name
и description
сделать replace символа '
на два таких символа ''
, ВАЖНО, не на двойной символ "
.insert into items(name, description, tier, type) values
('Bone Sword', 'An all-round weapon that deals slash damage and has a greater effect on vegetation and thickets.', 3, 1),
('Reinforced Bone Sword', 'An all-round weapon that deals slash damage and has a greater effect on vegetation and thickets.2', 3, 1)
insert into tags (value) values
('equippable'),
('weapon')
insert into itemtags(itemid, tagid) values
(1, 1),
(1, 2),
(1, 3),
(2, 1),
(2, 2),
(2, 3)
description
— разделить строки символом '\n'
insert into sets(name, description) values
('Bone', 'No bonuses'),
('Reinforced Bone', 'No bonuses')
id
— id
предмета.
setbonus
— то же самое что и поле description
в sets
, так что можно оставить просто пустую строку ''
slotid
— используется только для брони, остальным ставить 0:
insert into itemstats(id, mainstat, setid, setbonus, gearlevel, durability, slotid) values
(1, 5.2, '1', '', 3, 817, 0),
(2, 6,8, '2', '', 6, 928, 0)
insert into secondarystats(bonus) values
('+12 Max Health'),
('+4% Movement Speed')
statsid
- id
из таблицы itemstats
.
secondarystatid
- id
стата.
secondaryitemstats(statsid, secondarystatid) values
(18, 1),
(18, 2),
Опять же, id
не указываем, но следим, чтобы всё было в верном порядке.
id
начинается от 1.
time
указывается в секундах.
insert into recipes(time) values
(30)
insert into stations(name, description) values
('Character', 'Character's Inventory. Uses for starting items and some light crafts.'),
('Simple Workbench', 'Simple Workbench description.')
insert into recipestations(recipeId, stationId) values
(1, 1),
(2, 1)
INPUT рецепта
Если в крафте участвуют разные предметы, указываются несколько значений для одного и того же id
рецепта.
insert into recipeingredients(recipeId, itemId, amount) values
(1, 3, 5),
(2, 3, 10),
(2, 4, 5),
(2, 5, 1)
OUTPUT рецепта
Если в крафте получаются разные предметы, указываются несколько значений для одного и того же id
рецепта.
insert into recipeingredients(recipeId, itemId, amount) values
(1, 6, 1),
(2, 7, 1),
(2, 8, 3)
Using README.
id(INT) name(STRING) description(STRING) schoolid(INT) type(STRING) cooldown(DOUBLE) casttime(DOUBLE) charges(INT)
id(INT) name(STRING) description(STRING)
spellid(INT) schoolid(INT)
id(INT) title(STRING)
spellid(INT) spelltypeid(INT)
/api/spells
/api/spells?school={INT}
/api/spells/schoolid={BOOL}
Spells {
id INT,
name STRING,
description STRING,
school STRING,
//schoolId INT,
cooldown DOUBLE,
castTime DOUBLE
charges INT
}
https://docs.google.com/spreadsheets/d/1YAMSUdtcrsG-mNUE8sqeDZMyww9yjaZ2kHGg6CavXxY/edit?usp=sharing
Не меняется курсор при наведении на button элементы.
Необходимо сделать так, чтобы они инициализировались до рендера.
ItemsModule написан идентично и работает как надо, а вот тут не всегда данные подготавливаются до рендера.
Таблица локаций, лута и координат. Полностью готова, и есть очень простая функциональность:
При выборе предмета, например, Whetstone, найти все локации, в которых фармится Whetstone. Это локации с id 3,5,15,20,21,79. Берётся соответствующий им mapgenie id и генерируется ссылка, где mapgenie id тупо перечисляется через запятую:
https://mapgenie.io/v-rising/maps/vardoran?locationIds=178238,178237,178444,178379,178390,178370
Ну и всё, это ссылка просто вставляется в разделе Information у предмета Whetstone.
Единственная трудность состоит в non-item вроде Horse, но пофиг, добавим лошадь как предмет.
Сама таблица на странице locations.
https://docs.google.com/spreadsheets/d/1R-Re2Xszgm2UDUvNVrYwZES5eAN9gIJqCEi6FGA4XPo/edit?usp=sharing
Пример:
— заходишь в Weapons,
— жмёшь на Bone Spear,
— в рецепте жмёшь на Bone.
— у Bone в тегах нажимаешь на reagent.
Результат: все оружия отфильтровались, ничего не осталось. Надо исправить, чтобы поиск шёл по всем разделам. И, к слову, можно в "Filter" добавить All, иначе ради поиска ты обязан сначала переключиться на нужный раздел, иначе не будет работать.
У структур есть вариации. Например:
[5] Stone Coffin
имеет альтернативу [16] Royal Coffin
В данном случае id: 1
будет иметь variantsid: 5, 16
Необходимые поля:
id
variantsid
Int[]
Эндпоинты обсудим в войсе по возможности.
obsolete поле.
Используем description
в sets
.
Так же необходимо сделать поле description
в sets
nullable.
После завершения тегнуть @Bobrokrot, чтобы он обновил таблицу:
setbonus
из таблицы itemstats
'No bonus.'
на NULL
в поле description
в sets
.Пока ты пишешь слово Seed, он начинает поиск уже на букве S, на это тратится полсекунды, только после этого регистрируется нажатие на E, тратится ещё полсекунды, и в итоге это всё сильно подтормаживает.
Надо либо начинать поиск только с 3-го символа и/или задерживать на полсекунды, чтобы подождать ввод новых букв перед тем, как начинать поиск.
Добавить к уже существующим эндпоинтам, которые выдают список Items и Spells структурированную выдачу:
/item/list
Type1
|- Set1
|-- Item1
|-- Item2
|- Set2
|-- Item3
|-- Item4
Type2
|- Set3
|-- Item5
|-- Item6
|- Set4
|-- Item7
|-- Item8
Так же добавить промежуточную таблицу, которая будет связывать typeid
и typetitle
.
Нужно для того, чтобы в выдаче выше мне слало typetitle
, а не id
и я мог автоматизировать выдачу вкладок.
id | title
1 | Weapon
2 | Armour
School1
|- Type1
|-- Spell1
|-- Spell2
|- Type2
|-- Spell3
|-- Spell4
School2
|- Type3
|-- Spell5
|-- Spell6
|- Type4
|-- Spell7
|-- Spell8
Attempt to rework existing database for gorm framework, that eases work with database.
САМЫЙ НИЗКИЙ ПРИОРИТЕТ! ДЕЛАТЬ В ПОСЛЕДНЮЮ ОЧЕРЕДЬ!
locales
id | en | ru | ...
1 | 'Bone' | 'Кость' | ...
locale_ru
id | en
1 | 'Bone'
locale_en
id | ru
1 | 'Кость'
Все остальные текстовые поля во всех таблицах, соответственно, переделать с типа String на Int id, связав с соответствующими таблицами. Надеюсь в db можно динамически связь id устанавливать.
Добавить параметр к общему запросу ?locale=ru/en/...
, который будет обращаться к той или иной языковой таблице.
В комментариях прикрепляю иконки предметов, которые надо найти.
Прикрепить скриншоты найденных предметов.
Blood Snapper
Fierce Stinger
Swamp Dweller
Giant Rat
Putrid Rat
Mosquito
Skeleton Priest
Banshee
Siege Golem Stone
Snow Flower Seed
Sunflower Seed
Mourning Lily Seed
Возможно в игре есть не всё
И прочие семена/растения.
Возможно в игре есть не всё
По возможности выбить данные предметы, если они есть в игре.
Disabled status
Для гайда нужна таблица с доступными в игре экспидициями (Hunt) сервантов.
Выглядит она вот так (лист List of Hunts).
В будущем можно будет связать локации сервантов с реальными локациями (они не совпадают 1 в 1), но это сейчас не надо, сейчас главное просто реализовать хоть как-то эту чисто справочную страничку.
Реализовать поисковик по кейвордам/тегам.
Сделать с использованием debounce.
Чтобы Bone Ring был с другой ювелиркой вместо того, чтобы был посреди тир 3 брони.
На сайт нужна страница с этой инфой, т.е. что можно разблокировать на каждой из 3 тиров станций.
Research Stations:
— id
— name
— description
— paperid (id на бумагу/скроллы/схематики)
— papercost (50/75/100, сколько бумаги надо на то, чтобы случайно разблокировать предмет)
У каждой станции есть набор разблокировок. Причём есть ячейки, которые разблокируют одновременно несколько предметов. Например, Assorment of Vases разблокирует несколько ваз.
При этом у каждой разблокировки есть свой тип Structures, Armour, Weapon и т.д. В принципе это можно выцепить из того, что уже у нас есть в базе.
К слову, предлагаю ювелирку всю вынести как отдельный тип предметов Magic.
У каждой разблокировки должно быть:
— Список предметов, которые он открывает.
— Картинка книжки, которая её открывает.
— Описание.
— (Потенциально) список источников. где можно найти эти книжки.
Книжки тоже надо добавить как отдельные предметы в базу. Можно как отдельный тип books, но у которого есть knowledgeid? Туда же уникальный General's Soul Reaper Orb.
Try to rewrite current server to C# and compare it's speed to out GO server
2) Что-то с ними не так. Иногда исчезают. Из состояния а), если нажать на Confined Room, первый тоггл исчезает. А если кликнуть в любом месте экрана, получается в).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.