dev
This commit is contained in:
@@ -9,6 +9,7 @@ from api.core.Redis import get_redis_info
|
||||
from api.dp import RedisDep,AltersDep
|
||||
from core.character.adventure import get_adv_list
|
||||
from core.basic.character import createCharacter
|
||||
from core.open.helper import get_user_info_by_id
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -97,8 +98,7 @@ async def get_skill_info(
|
||||
@router.get("/dnfhelper/{uid}/")
|
||||
async def get_info_by_dnfhelper(uid: str, redis: RedisDep):
|
||||
try:
|
||||
from openapi.dnfhelper.main import get_main_user_info_by_id
|
||||
result = await get_main_user_info_by_id(uid)
|
||||
result = await get_user_info_by_id(uid,'')
|
||||
return response(data=result)
|
||||
except Exception as e:
|
||||
print(f"Error fetching DNFHelper info: {e}")
|
||||
|
||||
@@ -724,9 +724,9 @@ class Character(CharacterProperty):
|
||||
def calc_avatar(self, avatar: dict):
|
||||
"""计算时装效果"""
|
||||
equ = get_equipment(self.equVersion)
|
||||
dress = {key: value for key, value in avatar.items() if key in ['头发', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋']}
|
||||
dress = {key: value for key, value in avatar.items() if key in ['头部', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋']}
|
||||
equ.funs.calc_dress_effect(dress, self)
|
||||
avatarElse = {key: value for key, value in avatar.items() if key not in ['头发', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋']}
|
||||
avatarElse = {key: value for key, value in avatar.items() if key not in ['头部', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋']}
|
||||
for key in avatarElse:
|
||||
value = avatarElse[key].get('enchant', None)
|
||||
emblem_0 = avatarElse[key].get('emblem_0', None)
|
||||
|
||||
@@ -31,10 +31,10 @@ adv = [
|
||||
'name': 'fighter_male',
|
||||
'title': '格斗家(男)',
|
||||
'children': [
|
||||
{'id': 0, 'name': 'nenmaster_male', 'title': '归元·气功师', 'open': True,'class': 'GF.fighter_male.nenmaster_male'},
|
||||
{'id': 0, 'name': 'nenmaster_male', 'title': '归元·气功师', 'open': True, 'class': 'GF.fighter_male.nenmaster_male'},
|
||||
{'id': 1, 'name': 'striker_male', 'title': '归元·散打', 'open': True, 'class': 'GF.fighter_male.striker_male'},
|
||||
{'id': 2, 'name': 'brawler_male', 'title': '归元·街霸', 'open': True, 'class': 'GF.fighter_male.brawler_male'},
|
||||
{'id': 3, 'name': 'grappler_male', 'title': '归元·柔道家', 'open': True,'class': 'GF.fighter_male.grappler_male'},
|
||||
{'id': 3, 'name': 'grappler_male', 'title': '归元·柔道家', 'open': True, 'class': 'GF.fighter_male.grappler_male'},
|
||||
{'name': 'empty', 'title': '', 'comment': '首页'},
|
||||
],
|
||||
},
|
||||
@@ -44,9 +44,9 @@ adv = [
|
||||
'title': '格斗家(女)',
|
||||
'children': [
|
||||
{'id': 0, 'name': 'nenmaster_female', 'title': '归元·气功师', 'open': True, 'class': 'GF.fighter_female.nenmaster_female'},
|
||||
{'id': 1, 'name': 'striker_female', 'title': '归元·散打', 'open': True,'class':"GF.fighter_female.striker_female"},
|
||||
{'id': 1, 'name': 'striker_female', 'title': '归元·散打', 'open': True, 'class': 'GF.fighter_female.striker_female'},
|
||||
{'id': 2, 'name': 'brawler_female', 'title': '归元·街霸', 'open': False},
|
||||
{'id': 3, 'name': 'grappler_female', 'title': '归元·柔道家', 'open': True,'class':"GF.fighter_female.grappler_female"},
|
||||
{'id': 3, 'name': 'grappler_female', 'title': '归元·柔道家', 'open': True, 'class': 'GF.fighter_female.grappler_female'},
|
||||
{'name': 'sponsor', 'url': 'https://bbs.colg.cn', 'title': '', 'open': True},
|
||||
],
|
||||
},
|
||||
@@ -67,9 +67,9 @@ adv = [
|
||||
'name': 'gunner_female',
|
||||
'title': '神枪手(女)',
|
||||
'children': [
|
||||
{'id': 0, 'name': 'ranger_female', 'title': '重霄·漫游枪手', 'open': True,'class':"GF.gunner_female.ranger_female"},
|
||||
{'id': 1, 'name': 'launcher_female', 'title': '重霄·枪炮师', 'open': True,'class':'GF.gunner_female.launcher_female'},
|
||||
{'id': 2, 'name': 'mechanic_female', 'title': '重霄·机械师', 'open': False,'class': 'GF.gunner_female.mechanic_female'},
|
||||
{'id': 0, 'name': 'ranger_female', 'title': '重霄·漫游枪手', 'open': True, 'class': 'GF.gunner_female.ranger_female'},
|
||||
{'id': 1, 'name': 'launcher_female', 'title': '重霄·枪炮师', 'open': True, 'class': 'GF.gunner_female.launcher_female'},
|
||||
{'id': 2, 'name': 'mechanic_female', 'title': '重霄·机械师', 'open': False, 'class': 'GF.gunner_female.mechanic_female'},
|
||||
{'id': 3, 'name': 'spitfire_female', 'title': '重霄·弹药专家', 'open': True, 'class': 'GF.gunner_female.spitfire_female'},
|
||||
{'id': 4, 'name': 'paramedic', 'title': '重霄·协战师', 'open': True, 'class': 'GF.gunner_female.paramedic'},
|
||||
],
|
||||
@@ -114,7 +114,7 @@ adv = [
|
||||
'name': 'crusader_male',
|
||||
'title': '神启·圣骑士',
|
||||
'open': True,
|
||||
'class': 'GF.priest_male.crusader_male'
|
||||
'class': 'GF.priest_male.crusader_male',
|
||||
# 'options': [{'id': 0, 'name': 'default', 'title': '奶', 'class': 'crusader_male'}, {'id': 1, 'name': 'default', 'title': '审判', 'class': 'crusader_male_carry'}],
|
||||
},
|
||||
{'id': 1, 'name': 'infighter', 'title': '神启·蓝拳圣使', 'open': True, 'class': 'GF.priest_male.infighter'},
|
||||
@@ -133,7 +133,7 @@ adv = [
|
||||
'name': 'crusader_female',
|
||||
'title': '神启·圣骑士',
|
||||
'open': True,
|
||||
'class': 'GF.priest_female.crusader_female'
|
||||
'class': 'GF.priest_female.crusader_female',
|
||||
# 'options': [{'id': 0, 'name': 'default', 'title': '奶', 'class': 'GF.priest_female.crusader_female', "open": True}, {'id': 1, 'name': 'default', 'title': '输出', 'class': 'crusader_female_carry'}],
|
||||
},
|
||||
{'id': 1, 'name': 'inquistor', 'title': '神启·异端审判者', 'open': True, 'class': 'GF.priest_female.inquistor'},
|
||||
@@ -171,10 +171,10 @@ adv = [
|
||||
'name': 'demonic_lancer',
|
||||
'title': '魔枪士',
|
||||
'children': [
|
||||
{'id': 0, 'name': 'vanguard', 'title': '千魂·征战者', 'open': True,'class': 'GF.demonic_lancer.vanguard'},
|
||||
{'id': 0, 'name': 'vanguard', 'title': '千魂·征战者', 'open': True, 'class': 'GF.demonic_lancer.vanguard'},
|
||||
{'id': 1, 'name': 'skirmisher', 'title': '千魂·决战者', 'open': True, 'class': 'GF.demonic_lancer.skirmisher'},
|
||||
{'id': 2, 'name': 'dragoon', 'title': '千魂·狩猎者', 'open': True, 'class': 'GF.demonic_lancer.dragoon'},
|
||||
{'id': 3, 'name': 'impaler', 'title': '千魂·暗枪士', 'open': True,'class': 'GF.demonic_lancer.impaler'},
|
||||
{'id': 3, 'name': 'impaler', 'title': '千魂·暗枪士', 'open': True, 'class': 'GF.demonic_lancer.impaler'},
|
||||
{'id': 4, 'name': 'empty', 'title': ''},
|
||||
],
|
||||
},
|
||||
@@ -184,7 +184,7 @@ adv = [
|
||||
'title': '枪剑士',
|
||||
'children': [
|
||||
{'id': 0, 'name': 'hitman', 'title': '苍暮·暗刃', 'open': True, 'class': 'GF.gunblader.hitman'},
|
||||
{'id': 1, 'name': 'agent', 'title': '苍暮·特工', 'open': True,'class': 'GF.gunblader.agent'},
|
||||
{'id': 1, 'name': 'agent', 'title': '苍暮·特工', 'open': True, 'class': 'GF.gunblader.agent'},
|
||||
{'id': 2, 'name': 'trouble_shooter', 'title': '苍暮·战线佣兵', 'open': True, 'class': 'GF.gunblader.trouble_shooter'},
|
||||
{'id': 3, 'name': 'specialist', 'title': '苍暮·源能专家', 'open': True, 'class': 'GF.gunblader.specialist'},
|
||||
{'id': 4, 'name': 'empty', 'title': ''},
|
||||
|
||||
@@ -65,8 +65,8 @@ class 装扮:
|
||||
skill.lv += 1
|
||||
|
||||
|
||||
class 神器装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
class 神器装扮头部(装扮):
|
||||
部位 = "头部"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
id = 1
|
||||
@@ -123,8 +123,8 @@ class 神器装扮鞋(装扮):
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
class 稀有装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
class 稀有装扮头部(装扮):
|
||||
部位 = "头部"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
@@ -179,8 +179,8 @@ class 稀有装扮鞋(装扮):
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
class 高级装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
class 高级装扮头部(装扮):
|
||||
部位 = "头部"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
@@ -235,11 +235,11 @@ class 高级装扮鞋(装扮):
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
神器装扮集合 = (神器装扮头发, 神器装扮帽子, 神器装扮脸部, 神器装扮胸部,
|
||||
神器装扮集合 = (神器装扮头部, 神器装扮帽子, 神器装扮脸部, 神器装扮胸部,
|
||||
神器装扮上衣, 神器装扮腰带, 神器装扮下装, 神器装扮鞋)
|
||||
稀有装扮集合 = (稀有装扮头发, 稀有装扮帽子, 稀有装扮脸部, 稀有装扮胸部,
|
||||
稀有装扮集合 = (稀有装扮头部, 稀有装扮帽子, 稀有装扮脸部, 稀有装扮胸部,
|
||||
稀有装扮上衣, 稀有装扮腰带, 稀有装扮下装, 稀有装扮鞋)
|
||||
高级装扮集合 = (高级装扮头发, 高级装扮帽子, 高级装扮脸部, 高级装扮胸部,
|
||||
高级装扮集合 = (高级装扮头部, 高级装扮帽子, 高级装扮脸部, 高级装扮胸部,
|
||||
高级装扮上衣, 高级装扮腰带, 高级装扮下装, 高级装扮鞋)
|
||||
|
||||
装扮集合 = tuple(map(lambda x: x[1](x[0]), enumerate(神器装扮集合 + 稀有装扮集合 + 高级装扮集合)))
|
||||
|
||||
@@ -15655,6 +15655,12 @@ def equ_4021(char: CharacterProperty):
|
||||
char.SetSkillCD(1, 100, 0.05, [])
|
||||
pass
|
||||
|
||||
@register
|
||||
def equ_4022(char: CharacterProperty):
|
||||
"""
|
||||
"""
|
||||
equ_4020(char)
|
||||
pass
|
||||
|
||||
# endregion
|
||||
# region 耕耘
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
from openapi.dnfhelper.public import get_main_user_info_by_id
|
||||
from core.basic.equipment import get_equipment
|
||||
|
||||
job_mapping = {
|
||||
'极诣·剑魂': 'weapon_master',
|
||||
'极诣·鬼泣': 'soul_bender',
|
||||
'极诣·狂战士': 'berserker',
|
||||
'极诣·阿修罗': 'asura',
|
||||
'极诣·剑影': 'ghostblade',
|
||||
'极诣·驭剑士': 'sword_master',
|
||||
'极诣·暗殿骑士': 'dark_templar',
|
||||
'极诣·契魔者': 'demon_slayer',
|
||||
'极诣·流浪武士': 'vegabond',
|
||||
'极诣·刃影': 'spectre',
|
||||
'归元·气功师(男)': 'nenmaster_male',
|
||||
'归元·散打(男)': 'striker_male',
|
||||
'归元·街霸(男)': 'brawler_male',
|
||||
'归元·柔道家(男)': 'grappler_male',
|
||||
'归元·气功师(女)': 'nenmaster_female',
|
||||
'归元·散打(女)': 'striker_female',
|
||||
'归元·街霸(女)': 'brawler_female',
|
||||
'归元·柔道家(女)': 'grappler_female',
|
||||
'重霄·漫游枪手(男)': 'ranger_male',
|
||||
'重霄·枪炮师(男)': 'launcher_male',
|
||||
'重霄·机械师(男)': 'mechanic_male',
|
||||
'重霄·弹药专家(男)': 'spitfire_male',
|
||||
'重霄·合金战士': 'assault',
|
||||
'重霄·漫游枪手(女)': 'ranger_female',
|
||||
'重霄·枪炮师(女)': 'launcher_female',
|
||||
'重霄·机械师(女)': 'mechanic_female',
|
||||
'重霄·弹药专家(女)': 'spitfire_female',
|
||||
'重霄·协战师': 'paramedic',
|
||||
'知源·元素爆破师': 'elemental_bomber',
|
||||
'知源·冰结师': 'glacial_master',
|
||||
'知源·血法师': 'blood_mage',
|
||||
'知源·逐风者': 'swift_master',
|
||||
'知源·次元行者': 'dimension_walker',
|
||||
'知源·元素师': 'elementalist',
|
||||
'知源·召唤师': 'summoner',
|
||||
'知源·战斗法师': 'battle_mage',
|
||||
'知源·魔道学者': 'witch',
|
||||
'知源·小魔女': 'enchantress',
|
||||
'光启·光明骑士(男)': 'crusader_male',
|
||||
'光启·蓝拳圣使': 'infighter',
|
||||
'光启·驱魔师(男)': 'exorcist',
|
||||
'光启·惩戒者': 'avenger',
|
||||
'光启·光明骑士(女)': 'crusader_female',
|
||||
'光启·正义审判者': 'inquistor',
|
||||
'光启·驱魔师(女)': 'sorceress',
|
||||
'光启·除恶者': 'mistress',
|
||||
'隐夜·暗星': 'rogue',
|
||||
'隐夜·黑夜术士': 'necro',
|
||||
'隐夜·忍者': 'kunoichi',
|
||||
'隐夜·影舞者': 'shadow_dancer',
|
||||
'皓曦·精灵骑士': 'elven_knight',
|
||||
'皓曦·混沌魔灵': 'chaos',
|
||||
'皓曦·帕拉丁': 'paladin',
|
||||
'皓曦·龙骑士': 'dragon_knight',
|
||||
'千魂·征战者': 'vanguard',
|
||||
'千魂·决战者': 'skirmisher',
|
||||
'千魂·狩猎者': 'dragoon',
|
||||
'千魂·暗枪士': 'impaler',
|
||||
'苍暮·暗刃': 'hitman',
|
||||
'苍暮·特工': 'agent',
|
||||
'苍暮·战线佣兵': 'trouble_shooter',
|
||||
'苍暮·源能专家': 'specialist',
|
||||
'聆风·缪斯': 'muse',
|
||||
'聆风·旅人': 'traveler',
|
||||
'聆风·猎人': 'hunter',
|
||||
'聆风·妖护使': 'vigilante',
|
||||
'聆风·奇美拉': 'chimera',
|
||||
'知源·缔造者': 'creator',
|
||||
'极诣·黑暗武士': 'dark_knight',
|
||||
}
|
||||
|
||||
|
||||
async def get_user_info_by_id(user_id: str, alter: str):
|
||||
# 通过OCR助手获取用户信息
|
||||
helper_info = await get_main_user_info_by_id(user_id)
|
||||
if helper_info is None:
|
||||
return None
|
||||
else:
|
||||
return trans_to_dcalc_set(helper_info)
|
||||
pass
|
||||
|
||||
|
||||
def trans_to_dcalc_set(detail):
|
||||
job = job_mapping.get(detail.get('job', ''), '')
|
||||
basic = get_equipment('0')
|
||||
basicAvatars = basic.funs.get_dress_list([])
|
||||
equs = detail.get('equs', [])
|
||||
equips = {}
|
||||
avatar = {}
|
||||
for equ in equs:
|
||||
info = {
|
||||
'id': '0',
|
||||
# 强化
|
||||
'reinforce': equ.get('enhance', {}).get('reinforce', 0),
|
||||
# 强化类型
|
||||
'reinforceType': equ.get('enhance', {}).get('reinforceType', 0),
|
||||
# 附魔
|
||||
'enchant': 0,
|
||||
# 徽章1
|
||||
'emblem_0': 0,
|
||||
# 徽章2
|
||||
'emblem_1': 0,
|
||||
# 贴膜
|
||||
'fusion': 0,
|
||||
# 锻造等级
|
||||
'refine': equ.get('enhance', {}).get('refine', 0),
|
||||
# 调试等级
|
||||
'adaptation': 3,
|
||||
# 精度
|
||||
'precision': 100,
|
||||
}
|
||||
# 装备
|
||||
dcalcEqu = next((item for item in basic.equs if item.name == equ['name']), None)
|
||||
# 贴膜
|
||||
if dcalcEqu:
|
||||
info['id'] = dcalcEqu.id
|
||||
dcalcEquFusion = next((item for item in basic.stones if item.name == equ.get('upgrade', '')), None)
|
||||
if dcalcEquFusion:
|
||||
info['fusion'] = dcalcEquFusion.id
|
||||
info['enchant'] = getEnchatIdByName(equ.get('enchant', ''), equ.get('posName', ''), basic.enchants)
|
||||
emblems = [getEmblemIdByName(i.get('detail', ''), i.get('categorize', ''), i.get('rarity', ''), basic.emblems) for i in equ.get('emblems', [])]
|
||||
info['emblem_0'] = emblems[0] if len(emblems) > 0 else 0
|
||||
info['emblem_1'] = emblems[1] if len(emblems) > 1 else 0
|
||||
equips[equ['posName']] = info
|
||||
avatars = detail.get('avatars', [])
|
||||
for item in avatars:
|
||||
info = {
|
||||
'id': '',
|
||||
'option': '',
|
||||
'enchant': '',
|
||||
'emblem_0': '',
|
||||
'emblem_1': '',
|
||||
}
|
||||
list = basicAvatars.get(item.get('posName', ''), [])
|
||||
if len(list) > 0:
|
||||
dcalcAvatar = next((i for i in list if i.get('rarity', '') == item.get('rarity', '')), None)
|
||||
if dcalcAvatar:
|
||||
info['id'] = dcalcAvatar.get('id', '0')
|
||||
info['option'] = item.get('attr', '')
|
||||
avatar[item['posName']] = info
|
||||
else:
|
||||
print(avatar)
|
||||
return {
|
||||
'job': job,
|
||||
'equips': equips,
|
||||
'avatars': avatar,
|
||||
}
|
||||
# 处理装备
|
||||
# 处理时装
|
||||
pass
|
||||
|
||||
|
||||
def getEnchatIdByName(name: str, position: str, items: list):
|
||||
items = list(filter(lambda x: position in x.get('position', []), items))
|
||||
for item in items:
|
||||
if '|'.join(sorted(item.get('detail', '').split('|'))) == '|'.join(sorted(name.split('|'))):
|
||||
return item.get('id', 0)
|
||||
return 0
|
||||
|
||||
|
||||
def getEmblemIdByName(detail: str, categorize: str, rarity: str, items: list):
|
||||
print()
|
||||
if categorize == '白金':
|
||||
return detail
|
||||
for item in items:
|
||||
if item.get('detail', '') == detail and categorize in item.get('categorize', []) and item.get('rarity', '') == rarity:
|
||||
return item.get('id', 0)
|
||||
return 0
|
||||
Binary file not shown.
+1
-1
Submodule backend/openapi updated: 4649a77b72...d374db49af
@@ -15,7 +15,7 @@ export default defineComponent({
|
||||
const has_socket = computed(() => ['武器装扮', '光环', '皮肤'].includes(part.value as string))
|
||||
const basicInfoStore = useInfoStore()
|
||||
const has_enchant = computed(() => {
|
||||
return !['头发', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋'].includes(
|
||||
return !['头部', '帽子', '脸部', '胸部', '上衣', '腰带', '下装', '鞋'].includes(
|
||||
part.value as string,
|
||||
)
|
||||
})
|
||||
|
||||
@@ -72,7 +72,7 @@ export const useInfoStore = defineStore('infoStore', () => {
|
||||
|
||||
const avatarParts = [
|
||||
'武器装扮',
|
||||
'头发',
|
||||
'头部',
|
||||
'帽子',
|
||||
'脸部',
|
||||
'光环',
|
||||
|
||||
Reference in New Issue
Block a user