new:新增技能代码导入
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
from core.open.skillTree import get_skill_info
|
||||
|
||||
print(get_skill_info("eJytxzFOwmAAQOH3oA34U2gXQtDBMGBiSPBfSKBXIB5COjh1MDq4MXuDpju7CTsn8RaMLgbO4De85J2TNOm+87kF6e+/fj6+Ie5nVKbuHPLiDa1jcyf+UtB46ytSMSXzgRWP1ix8RkqWSmBDNBIdIImBNwL3BFJ7rNGCQAedoyP0Ds3QE3KkzxOaoGkjubRaY6bd9voljDaUNOa2HoDIippMqORid+3/O/8Bl00Yew=="))
|
||||
@@ -2,7 +2,7 @@ import re
|
||||
from api.core.Auth import createToken
|
||||
from api.core.Gzip import register_gzip_request
|
||||
import json
|
||||
from fastapi import APIRouter,Request, Depends
|
||||
from fastapi import APIRouter,Request, Depends, Body
|
||||
from typing import Annotated
|
||||
from api.core.Response import Return, response
|
||||
from api.core.Redis import get_redis_info
|
||||
@@ -10,6 +10,7 @@ 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
|
||||
from core.open.skillTree import get_skill_tree_info
|
||||
from api.core.exception import ResponseException
|
||||
|
||||
router = APIRouter()
|
||||
@@ -104,4 +105,17 @@ async def get_info_by_dnfhelper(uid: str, state: AltersDep, redis: RedisDep):
|
||||
except Exception as e:
|
||||
if isinstance(e, ResponseException):
|
||||
return response(code=500, message=str(e), data=None)
|
||||
return response(code=500, message="Failed to fetch DNFHelper info", data=None)
|
||||
return response(code=500, message="Failed to fetch DNFHelper info", data=None)
|
||||
|
||||
@router.post("/skillTree/")
|
||||
async def get_skill_by_code(state: AltersDep, code = Body(None)):
|
||||
try:
|
||||
skills = get_skill_tree_info(code.get("code", ""))
|
||||
if skills.get("job",{}).get("class","") != state.alter:
|
||||
return response(code=500, message="技能加点代码职业与登录职业不匹配", data=None)
|
||||
return response(data=skills)
|
||||
except Exception as e:
|
||||
print(f"Error fetching skill tree info: {e}")
|
||||
if isinstance(e, ResponseException):
|
||||
return response(code=500, message=str(e), data=None)
|
||||
return response(code=500, message="解析技能加点失败", data=None)
|
||||
@@ -403,7 +403,7 @@ def _parse_section2(sec2: bytes):
|
||||
return evolutions, enhancements, keybinds, remaining
|
||||
|
||||
|
||||
def get_skill_info(encoded: str) -> dict:
|
||||
def get_skill_tree_info(encoded: str) -> dict:
|
||||
r = decode_skill_hash(encoded)
|
||||
header = r['header']
|
||||
role = role_map.get(str(header['job_bytes'][0]), None)
|
||||
@@ -443,10 +443,10 @@ def get_skill_info(encoded: str) -> dict:
|
||||
chosen = next((x for x in candidates if x.type == ('active' if skill['skill_type'] == 1 else 'passive')), None)
|
||||
if chosen:
|
||||
skillLearn[str(chosen.id)] = {
|
||||
'level': skill['level'],
|
||||
'lv': skill['level'],
|
||||
'up': 0,
|
||||
'vp': 0,
|
||||
'name': chosen.name,
|
||||
# 'name': chosen.name,
|
||||
}
|
||||
|
||||
# 处理进化
|
||||
@@ -460,6 +460,14 @@ def get_skill_info(encoded: str) -> dict:
|
||||
for s in skillMap.get(enh['skill_index'], []):
|
||||
if getattr(s, 'hasUP', False) and str(s.id) in skillLearn:
|
||||
skillLearn[str(s.id)]['up'] = enh['type']
|
||||
for i in character.skills:
|
||||
if (i.learnLv in [50,85] or i.name == '基础精通') and str(i.id) not in skillLearn:
|
||||
skillLearn[str(i.id)] = {
|
||||
'lv': i.calculate_lv(),
|
||||
'up': 0,
|
||||
'vp': 0,
|
||||
# 'name': i.name,
|
||||
}
|
||||
return {
|
||||
"name": header['name'],
|
||||
"level": header['level'],
|
||||
|
||||
Reference in New Issue
Block a user