🐛 修复一些和面板有关的问题 (#666)

This commit is contained in:
KimigaiiWuyi 2025-01-05 18:50:01 +08:00
parent 1404dd79f7
commit 747010c8be
7 changed files with 531 additions and 103 deletions

View File

@ -11,6 +11,14 @@ from .dmg_calc.dmg_calc import get_char_dmg_percent
from .etc.etc import TEXT_PATH, get_all_artifacts_value
from .etc.MAP_PATH import COLOR_MAP, avatarName2SkillAdd
from ..utils.image.image_tools import get_v4_bg, get_star_png
from ..utils.resource.RESOURCE_PATH import (
REL_PATH,
ICON_PATH,
PLAYER_PATH,
WEAPON_PATH,
GACHA_IMG_PATH,
CHAR_NAMECARDPIC_PATH,
)
from ..utils.fonts.genshin_fonts import (
gs_font_18,
gs_font_20,
@ -21,15 +29,6 @@ from ..utils.fonts.genshin_fonts import (
gs_font_36,
gs_font_44,
)
from ..utils.resource.RESOURCE_PATH import (
REL_PATH,
ICON_PATH,
PLAYER_PATH,
WEAPON_PATH,
GACHA_IMG_PATH,
CHAR_STAND_PATH,
CHAR_NAMECARDPIC_PATH,
)
DMAP = {
'Anemo': 0,
@ -378,18 +377,11 @@ async def get_char_img(char: Character):
char_fg = Image.open(TEXT_PATH / 'info_char_fg.png')
char_bg = Image.open(TEXT_PATH / 'info_char_bg.png')
if char_name == '旅行者':
char_img = (
Image.open(CHAR_STAND_PATH / '10000007.png')
.convert('RGBA')
.resize((1776, 1000))
)
else:
char_img = (
Image.open(GACHA_IMG_PATH / f'{char_name}.png')
.resize((1776, 1000))
.convert('RGBA')
)
char_img = (
Image.open(GACHA_IMG_PATH / f'{char_name}.png')
.resize((1776, 1000))
.convert('RGBA')
)
char_mask = Image.new('RGBA', (700, 1000))
char_pic = Image.new('RGBA', (700, 1000))

View File

@ -21,7 +21,6 @@ from ..utils.resource.RESOURCE_PATH import (
ICON_PATH,
CU_CHBG_PATH,
GACHA_IMG_PATH,
CHAR_STAND_PATH,
)
from ..utils.fonts.genshin_fonts import (
gs_font_15,
@ -418,16 +417,7 @@ async def get_char_img(
char_img = Image.open(BytesIO(char.char_bytes)).convert('RGBA')
else:
offset_x, offset_y = 200, 0
if char_name == '旅行者':
char_img = (
Image.open(CHAR_STAND_PATH / '10000007.png')
.convert('RGBA')
.resize((1421, 800))
)
else:
char_img = Image.open(
GACHA_IMG_PATH / f'{char_name}.png'
) # 角色图像
char_img = Image.open(GACHA_IMG_PATH / f'{char_name}.png') # 角色图像
# 确定图片的长宽
w, h = char_img.size
if (w, h) != (based_w, based_h):

View File

@ -16790,21 +16790,21 @@
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+72.2%",
"60.5%+78.1%",
"65.0%+84.0%",
"71.5%+92.4%",
"76.0%+98.3%",
"81.2%+105.0%",
"88.4%+114.2%",
"95.5%+123.5%",
"102.7%+132.7%",
"110.5%+142.8%",
"118.3%+152.9%",
"126.1%+163.0%",
"133.9%+173.0%",
"141.7%+183.1%",
"149.5%+193.2%"
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
@ -16990,21 +16990,21 @@
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+72.2%",
"60.5%+78.1%",
"65.0%+84.0%",
"71.5%+92.4%",
"76.0%+98.3%",
"81.2%+105.0%",
"88.4%+114.2%",
"95.5%+123.5%",
"102.7%+132.7%",
"110.5%+142.8%",
"118.3%+152.9%",
"126.1%+163.0%",
"133.9%+173.0%",
"141.7%+183.1%",
"149.5%+193.2%"
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
@ -17124,21 +17124,21 @@
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+72.2%",
"60.5%+78.1%",
"65.0%+84.0%",
"71.5%+92.4%",
"76.0%+98.3%",
"81.2%+105.0%",
"88.4%+114.2%",
"95.5%+123.5%",
"102.7%+132.7%",
"110.5%+142.8%",
"118.3%+152.9%",
"126.1%+163.0%",
"133.9%+173.0%",
"141.7%+183.1%",
"149.5%+193.2%"
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
@ -17236,21 +17236,21 @@
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+72.2%",
"60.5%+78.1%",
"65.0%+84.0%",
"71.5%+92.4%",
"76.0%+98.3%",
"81.2%+105.0%",
"88.4%+114.2%",
"95.5%+123.5%",
"102.7%+132.7%",
"110.5%+142.8%",
"118.3%+152.9%",
"126.1%+163.0%",
"133.9%+173.0%",
"141.7%+183.1%",
"149.5%+193.2%"
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
@ -18324,5 +18324,339 @@
"572.5%"
]
}
},
"旅行者(火)": {
"A一段伤害": {
"name": "A一段伤害",
"type": "攻击力",
"plus": 1,
"value": [
"44.5%",
"48.1%",
"51.7%",
"56.9%",
"60.5%",
"64.6%",
"70.3%",
"76.0%",
"81.7%",
"87.9%",
"94.1%",
"100.3%",
"106.5%",
"112.7%",
"118.9%"
]
},
"A重击伤害": {
"name": "A重击伤害",
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
"name": "A高空下落伤害",
"type": "攻击力",
"plus": 1,
"value": [
"160%",
"173%",
"186%",
"204%",
"217%",
"232%",
"253%",
"273%",
"293%",
"316%",
"338%",
"360%",
"382%",
"405%",
"427%"
]
},
"E焰烈之槛伤害": {
"name": "E焰烈之槛伤害",
"type": "攻击力",
"plus": 1,
"value": [
"28.1%",
"30.2%",
"32.3%",
"35.1%",
"37.2%",
"39.3%",
"42.1%",
"44.9%",
"47.7%",
"50.5%",
"53.4%",
"56.2%",
"59.7%",
"63.2%",
"66.7%"
]
},
"E长按伤害": {
"name": "E长按伤害",
"type": "攻击力",
"plus": 1,
"value": [
"98.8%",
"106.2%",
"113.6%",
"123.5%",
"130.9%",
"138.3%",
"148.2%",
"158.1%",
"168.0%",
"177.8%",
"187.7%",
"197.6%",
"209.9%",
"222.3%",
"234.6%"
]
},
"E灼火之槛伤害": {
"name": "E灼火之槛伤害",
"type": "攻击力",
"plus": 1,
"value": [
"81.4%",
"87.5%",
"93.7%",
"101.8%",
"107.9%",
"114.0%",
"122.2%",
"130.3%",
"138.4%",
"146.6%",
"154.7%",
"162.9%",
"173.1%",
"183.2%",
"193.4%"
]
},
"Q伤害": {
"name": "Q伤害",
"type": "攻击力",
"plus": 1,
"value": [
"427.2%",
"459.2%",
"491.3%",
"534.0%",
"566.0%",
"598.1%",
"640.8%",
"683.5%",
"726.2%",
"769.0%",
"811.7%",
"854.4%",
"907.8%",
"961.2%",
"1014.6%"
]
}
},
"旅行者(水)": {
"A一段伤害": {
"name": "A一段伤害",
"type": "攻击力",
"plus": 1,
"value": [
"44.5%",
"48.1%",
"51.7%",
"56.9%",
"60.5%",
"64.6%",
"70.3%",
"76.0%",
"81.7%",
"87.9%",
"94.1%",
"100.3%",
"106.5%",
"112.7%",
"118.9%"
]
},
"A重击伤害": {
"name": "A重击伤害",
"type": "攻击力",
"plus": 1,
"value": [
"55.9%+60.7%",
"60.5%+65.7%",
"65.0%+70.6%",
"71.5%+77.7%",
"76.0%+82.6%",
"81.2%+88.2%",
"88.4%+96.0%",
"95.5%+103.8%",
"102.7%+111.5%",
"110.5%+120.0%",
"118.3%+128.5%",
"126.1%+137.0%",
"133.9%+145.4%",
"141.7%+153.9%",
"149.5%+162.4%"
]
},
"A高空下落伤害": {
"name": "A高空下落伤害",
"type": "攻击力",
"plus": 1,
"value": [
"160%",
"173%",
"186%",
"204%",
"217%",
"232%",
"253%",
"273%",
"293%",
"316%",
"338%",
"360%",
"382%",
"405%",
"427%"
]
},
"E喷发激流伤害": {
"name": "E喷发激流伤害",
"type": "攻击力",
"plus": 1,
"value": [
"189.3%",
"203.5%",
"217.7%",
"236.6%",
"250.8%",
"265.0%",
"283.9%",
"302.8%",
"321.8%",
"340.7%",
"359.6%",
"378.6%",
"402.2%",
"425.9%",
"449.5%"
]
},
"E露滴伤害": {
"name": "E露滴伤害",
"type": "攻击力",
"plus": 1,
"value": [
"32.8%",
"35.3%",
"37.7%",
"41.0%",
"43.5%",
"45.9%",
"49.2%",
"52.5%",
"55.8%",
"59.0%",
"62.3%",
"65.6%",
"69.7%",
"73.8%",
"77.9%"
]
},
"E灵息之刺伤害": {
"name": "E灵息之刺伤害",
"type": "攻击力",
"plus": 1,
"value": [
"32.8%",
"35.3%",
"37.7%",
"41.0%",
"43.5%",
"45.9%",
"49.2%",
"52.5%",
"55.8%",
"59.0%",
"62.3%",
"65.6%",
"69.7%",
"73.8%",
"77.9%"
]
},
"E充盈伤害增加": {
"name": "E充盈伤害增加",
"type": "生命值",
"plus": 1,
"value": [
"0.64%",
"0.69%",
"0.74%",
"0.80%",
"0.85%",
"0.90%",
"0.96%",
"1.02%",
"1.09%",
"1.15%",
"1.22%",
"1.28%",
"1.36%",
"1.44%",
"1.52%"
]
},
"Q伤害": {
"name": "Q伤害",
"type": "攻击力",
"plus": 1,
"value": [
"101.9%",
"109.5%",
"117.1%",
"127.3%",
"135.0%",
"142.6%",
"152.8%",
"163.0%",
"173.2%",
"183.4%",
"193.5%",
"203.7%",
"216.5%",
"229.2%",
"241.9%"
]
}
}
}

View File

@ -1,4 +1,88 @@
{
"旅行者(水)": {
"normal": {
"normal_skill": {
"50": "",
"70": ""
},
"normal_talent": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": ""
}
},
"fight": {
"fight_skill": {
"50": "",
"70": ""
},
"fight_talent": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": ""
},
"group_skill": {
"50": "",
"70": ""
},
"group_talent": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": ""
}
}
},
"旅行者(火)": {
"normal": {
"normal_skill": {
"50": "",
"70": ""
},
"normal_talent": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": ""
}
},
"fight": {
"fight_skill": {
"50": "",
"70": ""
},
"fight_talent": {
"1": "dmgBonus+15",
"2": "",
"3": "",
"4": "PyroDmgBonus+20",
"5": "",
"6": "ABC:critDmg+40"
},
"group_skill": {
"50": "",
"70": ""
},
"group_talent": {
"1": "dmgBonus+15",
"2": "",
"3": "",
"4": "",
"5": "",
"6": ""
}
}
},
"玛薇卡": {
"normal": {
"normal_skill": {

View File

@ -114,8 +114,9 @@ async def mys_to_data(uid: str):
continue
skill_icon = skill_icon_map[skill_id]
if skill_id.endswith('3') and skill_icon.endswith('2'):
continue
if skill_id not in ['10033']:
if skill_id.endswith('3') and skill_icon.endswith('2'):
continue
n += 1
skill_level = skill['level']

View File

@ -14,7 +14,7 @@ with open(MAP_PATH / 'enName2AvatarID_mapping_5.3.0.json') as f:
suffix = 'webp'
char_list = ['Mavuika', 'Citlali', 'Lanyan']
char_list = ['Diluc', 'PlayerFire']
base = 'https://api.hakush.in/gi/UI'
# title = 'https://enka.network/ui/{}'
# hakush = 'https://api.hakush.in/gi/UI/'

View File

@ -343,7 +343,16 @@ async def main():
for char_id in avatarId2Name:
char_list.append(avatarId2Name[char_id])
char_list.extend(['旅行者(风)', '旅行者(雷)', '旅行者(岩)', '旅行者(草)'])
char_list.extend(
[
'旅行者(风)',
'旅行者(雷)',
'旅行者(岩)',
'旅行者(草)',
'旅行者(火)',
'旅行者(水)',
]
)
for char in char_list:
print(char)
'''
@ -352,14 +361,32 @@ async def main():
).json()
if 'retcode' in talent_data:
'''
for _id in avatarId2Name:
if avatarId2Name[_id] == char:
char_id = _id
break
if char == '旅行者(风)':
char_id = '10000005-anemo'
elif char == '旅行者(雷)':
char_id = '10000005-electro'
elif char == '旅行者(岩)':
char_id = '10000005-geo'
elif char == '旅行者(草)':
char_id = '10000005-dendro'
elif char == '旅行者(火)':
char_id = '10000005-pyro'
elif char == '旅行者(水)':
char_id = '10000005-hydro'
elif char == '旅行者(冰)':
char_id = '10000005-cryo'
else:
continue
if int(char_id) >= 11000000:
continue
for _id in avatarId2Name:
if avatarId2Name[_id] == char:
char_id = _id
break
else:
continue
try:
if int(char_id) >= 11000000:
continue
except: # noqa: E722
pass
try:
talent_data = await convert_ambr_to_talent(char_id)