mirror of
https://github.com/drmext/MonkeyBusiness.git
synced 2024-11-23 22:51:03 +01:00
Fix
This commit is contained in:
parent
95763bd60c
commit
990f070f52
@ -139,7 +139,7 @@ async def core_process_request(request):
|
|||||||
if request.compress == "lz77":
|
if request.compress == "lz77":
|
||||||
xml_dec = EamuseLZ77.decode(xml_dec)
|
xml_dec = EamuseLZ77.decode(xml_dec)
|
||||||
|
|
||||||
xml = KBinXML(xml_dec)
|
xml = KBinXML(xml_dec, convert_illegal_things=True)
|
||||||
root = xml.xml_doc
|
root = xml.xml_doc
|
||||||
xml_text = xml.to_text()
|
xml_text = xml.to_text()
|
||||||
request.is_binxml = KBinXML.is_binary_xml(xml_dec)
|
request.is_binxml = KBinXML.is_binary_xml(xml_dec)
|
||||||
|
@ -541,3 +541,18 @@ async def iidx31music_arenaCPU(request: Request):
|
|||||||
|
|
||||||
response_body, response_headers = await core_prepare_response(request, response)
|
response_body, response_headers = await core_prepare_response(request, response)
|
||||||
return Response(content=response_body, headers=response_headers)
|
return Response(content=response_body, headers=response_headers)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/{gameinfo}/IIDX31music/retry")
|
||||||
|
async def iidx31music_retry(request: Request):
|
||||||
|
request_info = await core_process_request(request)
|
||||||
|
|
||||||
|
response = E.response(
|
||||||
|
E.IIDX31music(
|
||||||
|
E.session(session_id=1),
|
||||||
|
status=0,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
response_body, response_headers = await core_prepare_response(request, response)
|
||||||
|
return Response(content=response_body, headers=response_headers)
|
||||||
|
@ -106,35 +106,7 @@ async def iidx31pc_get(request: Request):
|
|||||||
rivals[idx]["hand"] = rival_profile["hand"]
|
rivals[idx]["hand"] = rival_profile["hand"]
|
||||||
rivals[idx]["head"] = rival_profile["head"]
|
rivals[idx]["head"] = rival_profile["head"]
|
||||||
|
|
||||||
current_time = round(time())
|
# current_time = round(time())
|
||||||
|
|
||||||
skins = [
|
|
||||||
calculate_folder_mask(profile),
|
|
||||||
profile["explosion"],
|
|
||||||
profile["explosion_size"],
|
|
||||||
profile["turntable"],
|
|
||||||
profile["judgestring"],
|
|
||||||
profile["note"],
|
|
||||||
0,
|
|
||||||
profile["soundpreview"],
|
|
||||||
0,
|
|
||||||
profile["effector_type"],
|
|
||||||
profile["bgm"],
|
|
||||||
profile["alternate_hcn"],
|
|
||||||
profile["kokokara_start"],
|
|
||||||
profile["sudden"],
|
|
||||||
profile["grapharea"],
|
|
||||||
0,
|
|
||||||
profile["keybeam"],
|
|
||||||
0,
|
|
||||||
profile["fullcombo"],
|
|
||||||
0,
|
|
||||||
]
|
|
||||||
# unknown:
|
|
||||||
# profile["judge_pos"],
|
|
||||||
# profile["categoryvoice"],
|
|
||||||
# profile["frame"],
|
|
||||||
# profile["effector_lock"],
|
|
||||||
|
|
||||||
response = E.response(
|
response = E.response(
|
||||||
E.IIDX31pc(
|
E.IIDX31pc(
|
||||||
@ -225,12 +197,33 @@ async def iidx31pc_get(request: Request):
|
|||||||
__size=5 * 4,
|
__size=5 * 4,
|
||||||
),
|
),
|
||||||
E.skin(
|
E.skin(
|
||||||
skins,
|
[
|
||||||
|
calculate_folder_mask(profile),
|
||||||
|
profile["explosion"],
|
||||||
|
profile["explosion_size"],
|
||||||
|
profile["turntable"],
|
||||||
|
profile["judgestring"],
|
||||||
|
profile["note"],
|
||||||
|
profile.get("note_size", 0),
|
||||||
|
profile["soundpreview"],
|
||||||
|
profile["effector_lock"],
|
||||||
|
profile["effector_type"],
|
||||||
|
profile["bgm"],
|
||||||
|
profile["alternate_hcn"],
|
||||||
|
profile["kokokara_start"],
|
||||||
|
profile["sudden"],
|
||||||
|
profile["grapharea"],
|
||||||
|
profile.get("lift", 0),
|
||||||
|
profile["keybeam"],
|
||||||
|
profile.get("keybeam_size", 1),
|
||||||
|
profile["fullcombo"],
|
||||||
|
0,
|
||||||
|
],
|
||||||
__type="s16",
|
__type="s16",
|
||||||
),
|
),
|
||||||
E.tdjskin(
|
E.tdjskin(
|
||||||
[
|
[
|
||||||
0,
|
profile.get("submonitor", 0),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@ -238,33 +231,26 @@ async def iidx31pc_get(request: Request):
|
|||||||
__type="s16",
|
__type="s16",
|
||||||
),
|
),
|
||||||
E.skin_customize_flg(
|
E.skin_customize_flg(
|
||||||
skin_frame_flg=0,
|
skin_frame_flg=-1,
|
||||||
skin_turntable_flg=0,
|
skin_turntable_flg=-1,
|
||||||
skin_bomb_flg=0,
|
skin_bomb_flg=-1,
|
||||||
skin_bgm_flg=0,
|
skin_bgm_flg=-1,
|
||||||
skin_lane_flg0=0,
|
skin_lane_flg0=-1,
|
||||||
skin_lane_flg1=0,
|
skin_lane_flg1=-1,
|
||||||
skin_lane_flg2=0,
|
skin_lane_flg2=-1,
|
||||||
skin_lane_flg3=0,
|
skin_lane_flg3=-1,
|
||||||
skin_lane_flg4=0,
|
skin_lane_flg4=-1,
|
||||||
skin_lane_flg5=0,
|
skin_lane_flg5=-1,
|
||||||
skin_notes_flg=0,
|
skin_notes_flg=-1,
|
||||||
skin_fullcombo_flg=0,
|
skin_fullcombo_flg=-1,
|
||||||
skin_keybeam_flg=0,
|
skin_keybeam_flg=-1,
|
||||||
skin_judgestring_flg=0,
|
skin_judgestring_flg=-1,
|
||||||
# skin_bgm_flg=profile["skin_customize_flag_bgm"],
|
# skin_bgm_flg=profile["skin_customize_flag_bgm"],
|
||||||
# skin_lane_flg3=profile["skin_customize_flag_lane"],
|
# skin_lane_flg3=profile["skin_customize_flag_lane"],
|
||||||
),
|
),
|
||||||
E.tdjskin_customize_flg(
|
E.tdjskin_customize_flg(
|
||||||
skin_submonitor_flg=0,
|
skin_submonitor_flg=-1,
|
||||||
),
|
),
|
||||||
# *[
|
|
||||||
# E.skin_equip(
|
|
||||||
# skin_id=idx,
|
|
||||||
# skin_num=skin,
|
|
||||||
# )
|
|
||||||
# for idx, skin in enumerate(skins)
|
|
||||||
# ],
|
|
||||||
E.spdp_rival(
|
E.spdp_rival(
|
||||||
flg=-1
|
flg=-1
|
||||||
), # required for rivals to load after switching spdp in music select
|
), # required for rivals to load after switching spdp in music select
|
||||||
@ -568,6 +554,23 @@ async def iidx31pc_get(request: Request):
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
E.music_memo(
|
||||||
|
*[
|
||||||
|
E.folder(
|
||||||
|
E.music_id(
|
||||||
|
profile.get(f"music_memo_{fi}_{ps}_mids", [0] * 10),
|
||||||
|
__type="s32",
|
||||||
|
),
|
||||||
|
play_style=ps,
|
||||||
|
folder_id=fi,
|
||||||
|
name=profile.get(
|
||||||
|
f"music_memo_{fi}_{ps}_name", f"FOLDER {str(fi+1).zfill(2)}"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
for fi in range(10)
|
||||||
|
for ps in range(2)
|
||||||
|
],
|
||||||
|
),
|
||||||
# ),
|
# ),
|
||||||
# E.event_1(
|
# E.event_1(
|
||||||
# E.flyer_data(
|
# E.flyer_data(
|
||||||
@ -828,13 +831,13 @@ async def iidx31pc_common(request: Request):
|
|||||||
E.play_video(),
|
E.play_video(),
|
||||||
E.music_retry(),
|
E.music_retry(),
|
||||||
E.world_tourism(open_list=1),
|
E.world_tourism(open_list=1),
|
||||||
E.bpl_battle(phase=1),
|
# E.bpl_battle(phase=1),
|
||||||
E.display_asio_logo(),
|
E.display_asio_logo(),
|
||||||
# E.force_rom_check(),
|
# E.force_rom_check(),
|
||||||
E.lane_gacha(),
|
E.lane_gacha(),
|
||||||
# E.fps_fix(),
|
# E.fps_fix(),
|
||||||
# E.save_unsync_log(),
|
# E.save_unsync_log(),
|
||||||
E.tourism_booster(),
|
# E.tourism_booster(),
|
||||||
expire=600,
|
expire=600,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -955,6 +958,17 @@ async def iidx31pc_save(request: Request):
|
|||||||
if concentration is not None:
|
if concentration is not None:
|
||||||
game_profile["lightning_setting_concentration"] = int(concentration.text)
|
game_profile["lightning_setting_concentration"] = int(concentration.text)
|
||||||
|
|
||||||
|
music_memo = request_info["root"][0].find("music_memo")
|
||||||
|
if music_memo is not None:
|
||||||
|
folders = music_memo.findall("folder")
|
||||||
|
for f in folders:
|
||||||
|
fi = f.attrib["folder_id"]
|
||||||
|
fn = f.attrib["name"]
|
||||||
|
ps = f.attrib["play_style"]
|
||||||
|
mids = [int(x) for x in f.find("music_id").text.split(" ")]
|
||||||
|
game_profile[f"music_memo_{fi}_{ps}_name"] = fn
|
||||||
|
game_profile[f"music_memo_{fi}_{ps}_mids"] = mids
|
||||||
|
|
||||||
# lightning_customize_flg = request_info["root"][0].find("lightning_customize_flg")
|
# lightning_customize_flg = request_info["root"][0].find("lightning_customize_flg")
|
||||||
# if lightning_customize_flg is not None:
|
# if lightning_customize_flg is not None:
|
||||||
# for k in [
|
# for k in [
|
||||||
@ -1015,6 +1029,37 @@ async def iidx31pc_save(request: Request):
|
|||||||
int(x) for x in point.text.split(" ")
|
int(x) for x in point.text.split(" ")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
skin_equips = request_info["root"][0].findall("skin_equip")
|
||||||
|
skin_equips = [] if skin_equips is None else skin_equips
|
||||||
|
skin = {
|
||||||
|
1: "explosion",
|
||||||
|
2: "explosion_size",
|
||||||
|
3: "turntable",
|
||||||
|
4: "judgestring",
|
||||||
|
5: "note",
|
||||||
|
6: "note_size",
|
||||||
|
13: "sudden",
|
||||||
|
14: "grapharea",
|
||||||
|
15: "lift",
|
||||||
|
16: "keybeam",
|
||||||
|
17: "keybeam_size",
|
||||||
|
18: "fullcombo",
|
||||||
|
}
|
||||||
|
for skin_equip in skin_equips:
|
||||||
|
skin_id = int(skin_equip.attrib["skin_id"])
|
||||||
|
if skin_id in skin:
|
||||||
|
game_profile[skin[skin_id]] = int(skin_equip.attrib["skin_no"])
|
||||||
|
|
||||||
|
tdjskin_equips = request_info["root"][0].findall("tdjskin_equip")
|
||||||
|
tdjskin_equips = [] if tdjskin_equips is None else tdjskin_equips
|
||||||
|
tdjskin = {
|
||||||
|
0: "submonitor",
|
||||||
|
}
|
||||||
|
for tdjskin_equip in tdjskin_equips:
|
||||||
|
skin_id = int(tdjskin_equip.attrib["skin_id"])
|
||||||
|
if skin_id in tdjskin:
|
||||||
|
game_profile[tdjskin[skin_id]] = int(tdjskin_equip.attrib["skin_no"])
|
||||||
|
|
||||||
notes_radars = request_info["root"][0].findall("notes_radar")
|
notes_radars = request_info["root"][0].findall("notes_radar")
|
||||||
notes_radars = [] if notes_radars is None else notes_radars
|
notes_radars = [] if notes_radars is None else notes_radars
|
||||||
for notes_radar in notes_radars:
|
for notes_radar in notes_radars:
|
||||||
@ -1146,9 +1191,13 @@ async def iidx31pc_reg(request: Request):
|
|||||||
"judgestring": 0,
|
"judgestring": 0,
|
||||||
"soundpreview": 0,
|
"soundpreview": 0,
|
||||||
"grapharea": 0,
|
"grapharea": 0,
|
||||||
|
"lift": 0,
|
||||||
"effector_lock": 0,
|
"effector_lock": 0,
|
||||||
"effector_type": 0,
|
"effector_type": 0,
|
||||||
"explosion_size": 0,
|
"explosion_size": 0,
|
||||||
|
"note_size": 0,
|
||||||
|
"keybeam_size": 0,
|
||||||
|
"submonitor": 0,
|
||||||
"alternate_hcn": 0,
|
"alternate_hcn": 0,
|
||||||
"kokokara_start": 0,
|
"kokokara_start": 0,
|
||||||
"d_auto_adjust": 0,
|
"d_auto_adjust": 0,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
fastapi
|
fastapi
|
||||||
kbinxml
|
kbinxml>=2.0
|
||||||
pycryptodomex
|
pycryptodomex
|
||||||
python-multipart
|
python-multipart
|
||||||
tinydb
|
tinydb
|
||||||
|
26
start.bat
26
start.bat
@ -4,21 +4,16 @@ TITLE MB
|
|||||||
|
|
||||||
cd /d %~dp0
|
cd /d %~dp0
|
||||||
|
|
||||||
if exist .venv\Scripts\activate.bat (
|
REM goto :make_venv_portable
|
||||||
(
|
|
||||||
REM goto :make_venv_portable
|
if not exist .venv\Scripts\activate.bat (
|
||||||
:start_server
|
python -m venv .venv
|
||||||
.venv\Scripts\activate.bat
|
)
|
||||||
python pyeamu.py
|
|
||||||
)
|
(
|
||||||
) else (
|
.venv\Scripts\activate.bat
|
||||||
(
|
python -m pip install -r requirements.txt
|
||||||
:create_venv
|
python pyeamu.py
|
||||||
python -m venv .venv
|
|
||||||
.venv\Scripts\activate.bat
|
|
||||||
python -m pip install -U -r requirements.txt
|
|
||||||
python pyeamu.py
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
@ -72,4 +67,3 @@ setlocal enabledelayedexpansion
|
|||||||
endlocal
|
endlocal
|
||||||
del %activate%
|
del %activate%
|
||||||
rename "%activatetemp%" activate.bat
|
rename "%activatetemp%" activate.bat
|
||||||
goto :start_server
|
|
||||||
|
14
start.sh
14
start.sh
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
ver="3.11"
|
ver="3.12"
|
||||||
py="python$ver"
|
py="python$ver"
|
||||||
|
|
||||||
if ! command -v $py &> /dev/null
|
if ! command -v $py &> /dev/null
|
||||||
@ -9,13 +9,11 @@ then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d .venv/ ]
|
if [ ! -d .venv/ ]
|
||||||
then
|
then
|
||||||
source .venv/bin/activate
|
|
||||||
$py pyeamu.py
|
|
||||||
else
|
|
||||||
$py -m venv .venv
|
$py -m venv .venv
|
||||||
source .venv/bin/activate
|
|
||||||
$py -m pip install -U -r requirements.txt
|
|
||||||
$py pyeamu.py
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source .venv/bin/activate
|
||||||
|
$py -m pip install -r requirements.txt
|
||||||
|
$py pyeamu.py
|
||||||
|
Loading…
Reference in New Issue
Block a user