mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-13 21:34:43 +01:00
170 lines
5.9 KiB
Python
170 lines
5.9 KiB
Python
import time
|
|
import json
|
|
import random
|
|
from game_server.resource import ResourceManager
|
|
from game_server.resource.configdb.avatar_data import AvatarData
|
|
from game_server.resource.configdb.weapon_data import WeaponData
|
|
from game_server.resource.configdb.stigmata_data import StigmataData
|
|
from game_server.resource.configdb.material_data import MaterialData
|
|
from game_server.resource.configdb.elf_astra_mate_data import ElfAstraMateData
|
|
from game_server.resource.configdb.dress_data import DressData
|
|
from game_server.game.enum.item_type import MainType
|
|
|
|
class MongoDBCreate:
|
|
def __init__(self, mongo):
|
|
self.mongo = mongo
|
|
self.manager = ResourceManager.instance()
|
|
self.create_db()
|
|
self.avatars()
|
|
self.items()
|
|
self.elfs()
|
|
|
|
def create_db(self):
|
|
player_data = {
|
|
"UID": 1337,
|
|
"Name": "Miku",
|
|
"Level": 88,
|
|
"Exp": 0,
|
|
"HCoin": 1337,
|
|
"Stamina": 80,
|
|
"Sign": "MikuPS",
|
|
"HeadPhoto": 161090,
|
|
"HeadFrame": 200001,
|
|
"WarshipId": 400004,
|
|
"AssistantAvatarId": 101,
|
|
"WarshipAvatar": {
|
|
"WarshipFirstAvatarId": 101,
|
|
"WarshipSecondAvatarId": 0
|
|
},
|
|
"BirthDate": 0,
|
|
"CustomAvatarTeamList":{
|
|
f"{i}":{
|
|
"TeamId":i,
|
|
"Name": f"Team {i}",
|
|
"astraMateId":0,
|
|
"isUsingAstraMate":False,
|
|
"elfIdList":[],
|
|
"AvatarIdLists":[]
|
|
}
|
|
for i in range(1,11)
|
|
}
|
|
}
|
|
self.mongo.insert_document("players",player_data)
|
|
|
|
def avatars(self):
|
|
data = []
|
|
for avatar in self.manager.instance().values(AvatarData):
|
|
valk = {
|
|
"AvatarID":avatar.avatarID,
|
|
"Star":avatar.unlockStar,
|
|
"Level":80,
|
|
"Exp":0,
|
|
"Fragment":0,
|
|
"TouchGoodFeel":0,
|
|
"TodayHasAddGoodFeel":0,
|
|
"DressID":avatar.DefaultDressId,
|
|
"DressLists":[
|
|
dress.dressID
|
|
for dress in self.manager.instance().values(DressData)
|
|
if avatar.avatarID in dress.avatarIDList
|
|
],
|
|
"AvatarArtifact":None,
|
|
"SubStar":0,
|
|
"SkillLists": {
|
|
f"{skillId}": {
|
|
"SkillId": skillId,
|
|
"SubSkillLists": {}
|
|
}
|
|
for skillId in avatar.skillList
|
|
},
|
|
"CreateTime":int(time.time())
|
|
}
|
|
data.append(valk)
|
|
self.mongo.get_collection("avatars").insert_many(data)
|
|
|
|
def items(self):
|
|
last_item = self.mongo.get_collection("items").find_one(sort=[("UniqueID", -1)])
|
|
unique_id = last_item["UniqueID"] + 1 if last_item else 1
|
|
|
|
items_data = []
|
|
|
|
for weapon in self.manager.instance().values(WeaponData):
|
|
if weapon.rarity == weapon.maxRarity:
|
|
weapon_data = {
|
|
"UniqueID":unique_id,
|
|
"ItemID":weapon.ID,
|
|
"Level":weapon.maxLv,
|
|
"Exp":0,
|
|
"IsLocked":False,
|
|
"IsExtracted":False,
|
|
"QuantumBranchLists":None,
|
|
"MainType":MainType.WEAPON.value,
|
|
"EquipAvatarID":0
|
|
}
|
|
items_data.append(weapon_data)
|
|
unique_id += 1
|
|
|
|
for stigmata in self.manager.instance().values(StigmataData):
|
|
if stigmata.rarity == stigmata.maxRarity:
|
|
stigmata_data = {
|
|
"UniqueID":unique_id,
|
|
"ItemID":stigmata.ID,
|
|
"Level":stigmata.maxLv,
|
|
"Exp":0,
|
|
"SlotNum":0,
|
|
"RefineValue":0,
|
|
"PromoteTimes":0,
|
|
"IsLocked":False,
|
|
"RuneLists":[],
|
|
"WaitSelectRuneLists":[],
|
|
"WaitSelectRuneGroupLists":[],
|
|
"MainType":MainType.STIGMATA.value,
|
|
"EquipAvatarID":0
|
|
}
|
|
items_data.append(stigmata_data)
|
|
unique_id += 1
|
|
|
|
for material in self.manager.instance().values(MaterialData):
|
|
material = {
|
|
"ItemID":material.ID,
|
|
"ItemNum":99999999 if material.ID == 100 else (999 if material.quantityLimit > 999 else material.quantityLimit),
|
|
"MainType":MainType.MATERIAL.value,
|
|
}
|
|
items_data.append(material)
|
|
|
|
for avatar in self.manager.instance().values(AvatarData):
|
|
avatar_data = {
|
|
"UniqueID":unique_id,
|
|
"ItemID":avatar.initialWeapon,
|
|
"Level":15,
|
|
"Exp":0,
|
|
"IsLocked":False,
|
|
"IsExtracted":False,
|
|
"QuantumBranchLists":None,
|
|
"MainType":MainType.WEAPON.value,
|
|
"EquipAvatarID":avatar.avatarID
|
|
}
|
|
items_data.append(avatar_data)
|
|
unique_id += 1
|
|
|
|
self.mongo.get_collection("items").insert_many(items_data)
|
|
|
|
def elfs(self):
|
|
elfs_data = []
|
|
for elf in self.manager.instance().values(ElfAstraMateData):
|
|
elf_data = {
|
|
"ElfId":elf.ElfID,
|
|
"Level":elf.MaxLevel,
|
|
"Star":elf.MaxRarity,
|
|
"Exp":0,
|
|
"SkillLists":{
|
|
f"{skill.ElfSkillID}":{
|
|
"SkillId":skill.ElfSkillID,
|
|
"Level":skill.MaxLv
|
|
}
|
|
for skill in elf.skill_lists
|
|
}
|
|
}
|
|
elfs_data.append(elf_data)
|
|
self.mongo.get_collection("elfs").insert_many(elfs_data)
|