updat
This commit is contained in:
parent
5a9bf4922b
commit
e28c9dc331
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,306 @@
|
|||
osu file format v14
|
||||
|
||||
[General]
|
||||
AudioFilename: audio.mp3
|
||||
AudioLeadIn: 0
|
||||
PreviewTime: 18808
|
||||
Countdown: 0
|
||||
SampleSet: Soft
|
||||
StackLeniency: 0
|
||||
Mode: 0
|
||||
LetterboxInBreaks: 0
|
||||
WidescreenStoryboard: 1
|
||||
|
||||
[Editor]
|
||||
DistanceSpacing: 1.7
|
||||
BeatDivisor: 4
|
||||
GridSize: 4
|
||||
TimelineZoom: 1.7
|
||||
|
||||
[Metadata]
|
||||
Title:Spelunker
|
||||
TitleUnicode:Spelunker
|
||||
Artist:Unknown Artist
|
||||
ArtistUnicode:Unknown Artist
|
||||
Creator:IOException
|
||||
Version:top-rhythm'
|
||||
Source:しょぼんのアクション
|
||||
Tags:スペランカー しょぼんのアクション sybon Syobon no Akushon Action Cat Neko Gato mario from hell Super Mario Bros world parody ちくChiku Spelunk 元祖みんなでスペランカー Tim Timothy G. Martin stage theme 01 atari NES nintendo entertainment system video game instrumental scognito deadcode ceo_of_osu ceo of osu press
|
||||
BeatmapID:0
|
||||
BeatmapSetID:1145452
|
||||
|
||||
[Difficulty]
|
||||
HPDrainRate:3
|
||||
CircleSize:0
|
||||
OverallDifficulty:8.5
|
||||
ApproachRate:0
|
||||
SliderMultiplier:3.6
|
||||
SliderTickRate:1
|
||||
|
||||
[Events]
|
||||
//Background and Video events
|
||||
0,0,"WP.PNG",0,0
|
||||
//Break Periods
|
||||
//Storyboard Layer 0 (Background)
|
||||
//Storyboard Layer 1 (Fail)
|
||||
//Storyboard Layer 2 (Pass)
|
||||
//Storyboard Layer 3 (Foreground)
|
||||
//Storyboard Layer 4 (Overlay)
|
||||
//Storyboard Sound Samples
|
||||
|
||||
[TimingPoints]
|
||||
133,397.350993377483,4,2,0,70,1,0
|
||||
133,-10,4,2,0,70,0,0
|
||||
5894,-10,4,2,0,80,0,0
|
||||
6291,-10,4,2,0,85,0,0
|
||||
6589,-10,4,2,0,75,0,0
|
||||
12947,-10,4,2,0,65,0,0
|
||||
17616,-10,4,2,0,70,0,0
|
||||
19205,-10,4,2,0,90,0,1
|
||||
25464,-10,4,2,0,90,0,0
|
||||
25563,-10,4,2,0,90,0,1
|
||||
32020,-10,4,2,0,85,0,0
|
||||
35099,-10,4,2,0,93,0,0
|
||||
36689,-10,4,2,0,100,0,0
|
||||
|
||||
|
||||
[Colours]
|
||||
Combo1 : 0,128,255
|
||||
Combo2 : 251,217,153
|
||||
Combo3 : 131,180,252
|
||||
Combo4 : 247,157,157
|
||||
Combo5 : 159,253,157
|
||||
Combo6 : 224,177,252
|
||||
Combo7 : 128,255,128
|
||||
Combo8 : 255,128,128
|
||||
|
||||
[HitObjects]
|
||||
256,193,133,5,4,1:0:0:0:
|
||||
255,193,431,1,0,1:0:0:0:
|
||||
254,192,530,1,8,2:0:0:0:
|
||||
254,191,729,1,2,2:0:0:0:
|
||||
254,190,927,1,0,1:0:0:0:
|
||||
256,190,1126,1,2,2:0:0:0:
|
||||
257,190,1325,1,8,2:0:0:0:
|
||||
256,193,1523,1,2,0:0:0:0:
|
||||
257,192,1623,1,2,0:0:0:0:
|
||||
255,193,1722,5,0,1:0:0:0:
|
||||
254,192,2020,1,0,1:0:0:0:
|
||||
254,191,2119,1,8,2:0:0:0:
|
||||
254,190,2317,1,2,2:0:0:0:
|
||||
257,190,2715,1,0,1:0:0:0:
|
||||
257,192,2815,1,0,1:0:0:0:
|
||||
256,193,2914,1,8,1:0:0:0:
|
||||
255,193,3311,5,4,1:2:0:0:
|
||||
254,192,3609,1,0,1:0:0:0:
|
||||
254,191,3709,1,8,2:0:0:0:
|
||||
254,190,3907,1,2,2:0:0:0:
|
||||
256,190,4106,1,0,1:0:0:0:
|
||||
257,190,4305,1,2,2:0:0:0:
|
||||
257,192,4503,1,8,2:0:0:0:
|
||||
255,193,4702,1,2,2:0:0:0:
|
||||
256,193,4801,1,2,0:0:0:0:
|
||||
254,192,4901,5,0,1:0:0:0:
|
||||
254,191,5199,1,0,1:0:0:0:
|
||||
254,190,5298,1,8,2:0:0:0:
|
||||
256,190,5497,1,2,1:2:0:0:
|
||||
257,190,5795,1,0,1:2:0:0:
|
||||
257,192,5894,1,0,1:2:0:0:
|
||||
256,193,6093,1,8,1:0:0:0:
|
||||
255,193,6291,1,10,2:0:0:0:
|
||||
254,192,6391,1,10,2:0:0:0:
|
||||
254,191,6490,5,4,1:0:0:0:
|
||||
254,190,6788,1,0,1:0:0:0:
|
||||
256,190,6887,1,8,2:0:0:0:
|
||||
257,190,7086,1,2,2:0:0:0:
|
||||
257,192,7285,1,0,1:0:0:0:
|
||||
256,193,7384,1,2,2:0:0:0:
|
||||
256,193,7483,1,2,2:0:0:0:
|
||||
255,193,7682,1,8,2:0:0:0:
|
||||
255,193,7881,1,2,2:0:0:0:
|
||||
254,192,8080,5,0,1:0:0:0:
|
||||
254,191,8179,1,0,1:0:0:0:
|
||||
254,190,8278,1,0,1:0:0:0:
|
||||
254,190,8378,1,0,1:0:0:0:
|
||||
256,190,8477,1,8,2:0:0:0:
|
||||
257,190,8676,1,2,2:0:0:0:
|
||||
257,192,8874,1,0,1:0:0:0:
|
||||
256,193,9073,1,8,1:2:0:0:
|
||||
255,193,9172,1,0,1:0:0:0:
|
||||
254,192,9272,1,8,1:0:0:0:
|
||||
254,192,9470,1,8,1:0:0:0:
|
||||
254,191,9669,5,4,1:2:0:0:
|
||||
254,190,9967,1,0,1:0:0:0:
|
||||
256,190,10066,1,8,2:0:0:0:
|
||||
257,190,10265,1,2,2:0:0:0:
|
||||
257,192,10464,1,0,1:0:0:0:
|
||||
256,193,10662,1,2,2:0:0:0:
|
||||
255,193,10861,1,8,2:0:0:0:
|
||||
254,192,11060,1,2,2:0:0:0:
|
||||
254,192,11159,1,2,2:0:0:0:
|
||||
254,191,11258,5,0,1:0:0:0:
|
||||
256,190,11556,1,0,1:0:0:0:
|
||||
257,190,11656,1,8,2:0:0:0:
|
||||
257,192,11854,1,2,2:0:0:0:
|
||||
257,192,11954,1,2,2:0:0:0:
|
||||
256,193,12053,1,0,1:0:0:0:
|
||||
255,193,12152,1,0,1:0:0:0:
|
||||
254,192,12252,1,0,1:0:0:0:
|
||||
254,190,12450,1,8,1:0:0:0:
|
||||
256,190,12649,1,10,2:0:0:0:
|
||||
257,190,12748,1,10,2:0:0:0:
|
||||
257,192,12848,5,6,3:2:0:0:
|
||||
256,193,13146,1,0,3:0:0:0:
|
||||
255,193,13444,1,0,3:0:0:0:
|
||||
254,192,13841,1,0,3:0:0:0:
|
||||
254,191,14040,1,2,3:2:0:0:
|
||||
254,190,14238,1,2,3:2:0:0:
|
||||
256,190,14437,5,2,3:2:0:0:
|
||||
257,190,14735,1,2,3:2:0:0:
|
||||
257,192,15033,1,2,3:2:0:0:
|
||||
254,192,15331,1,0,3:0:0:0:
|
||||
256,193,15431,1,0,3:0:0:0:
|
||||
255,193,15629,1,0,3:0:0:0:
|
||||
254,192,15729,1,0,3:0:0:0:
|
||||
254,192,15828,1,0,3:0:0:0:
|
||||
254,191,16027,5,6,3:2:0:0:
|
||||
254,190,16325,1,0,3:0:0:0:
|
||||
256,190,16623,1,0,3:0:0:0:
|
||||
256,190,16722,1,0,3:0:0:0:
|
||||
257,190,16822,1,2,3:2:0:0:
|
||||
257,192,17020,1,2,3:2:0:0:
|
||||
256,193,17219,1,2,3:2:0:0:
|
||||
255,193,17417,1,2,3:2:0:0:
|
||||
254,192,17616,5,8,2:0:0:0:
|
||||
254,191,17815,1,8,2:0:0:0:
|
||||
254,190,18013,1,8,2:0:0:0:
|
||||
256,190,18212,1,8,2:0:0:0:
|
||||
257,190,18411,5,8,1:2:0:0:
|
||||
257,192,18510,1,0,1:0:0:0:
|
||||
256,193,18709,1,0,1:0:0:0:
|
||||
255,193,18808,1,8,1:0:0:0:
|
||||
254,192,18907,1,8,1:0:0:0:
|
||||
254,191,19007,1,8,1:0:0:0:
|
||||
254,190,19106,1,8,1:0:0:0:
|
||||
256,190,19205,5,4,1:0:0:0:
|
||||
257,190,19404,1,2,0:2:0:0:
|
||||
257,192,19503,1,0,1:0:0:0:
|
||||
256,193,19603,1,8,2:0:0:0:
|
||||
255,193,19801,1,2,2:0:0:0:
|
||||
254,190,19901,1,2,0:0:0:0:
|
||||
254,192,20000,1,0,1:0:0:0:
|
||||
254,190,20099,1,2,0:0:0:0:
|
||||
254,191,20199,1,2,2:0:0:0:
|
||||
256,190,20397,1,8,2:0:0:0:
|
||||
257,190,20596,1,2,2:0:0:0:
|
||||
254,190,20695,1,2,0:0:0:0:
|
||||
257,192,20795,5,0,1:0:0:0:
|
||||
255,193,21093,1,0,1:0:0:0:
|
||||
254,192,21192,1,8,2:0:0:0:
|
||||
254,191,21391,1,2,2:0:0:0:
|
||||
256,190,21689,1,0,1:0:0:0:
|
||||
256,190,21788,1,0,1:0:0:0:
|
||||
256,190,21887,1,0,1:0:0:0:
|
||||
257,190,21987,1,8,1:0:0:0:
|
||||
257,192,22384,5,4,1:0:0:0:
|
||||
256,193,22583,1,2,0:2:0:0:
|
||||
255,193,22682,1,0,1:0:0:0:
|
||||
254,192,22782,1,8,2:0:0:0:
|
||||
254,191,22980,1,2,2:0:0:0:
|
||||
257,190,23080,1,2,0:0:0:0:
|
||||
254,190,23179,1,0,1:0:0:0:
|
||||
257,190,23278,1,2,0:0:0:0:
|
||||
256,190,23378,1,2,2:0:0:0:
|
||||
256,190,23477,1,2,2:0:0:0:
|
||||
257,192,23576,1,8,2:0:0:0:
|
||||
256,193,23775,1,2,2:0:0:0:
|
||||
256,193,23874,1,2,2:0:0:0:
|
||||
255,193,23974,5,0,1:0:0:0:
|
||||
254,191,24272,1,0,1:0:0:0:
|
||||
254,190,24371,1,8,2:0:0:0:
|
||||
254,190,24470,1,2,2:0:0:0:
|
||||
256,190,24570,1,2,2:0:0:0:
|
||||
257,192,24868,1,0,1:0:0:0:
|
||||
256,193,24967,1,0,1:0:0:0:
|
||||
255,193,25166,1,8,1:2:0:0:
|
||||
254,192,25265,1,0,1:0:0:0:
|
||||
254,191,25365,1,10,2:0:0:0:
|
||||
254,190,25464,1,10,2:0:0:0:
|
||||
256,190,25563,5,4,1:0:0:0:
|
||||
257,192,25861,1,0,1:0:0:0:
|
||||
256,193,25960,1,8,2:0:0:0:
|
||||
255,193,26159,1,2,2:0:0:0:
|
||||
254,192,26358,1,0,1:0:0:0:
|
||||
254,191,26457,1,2,2:0:0:0:
|
||||
254,191,26556,1,2,2:0:0:0:
|
||||
254,191,26656,1,2,2:0:0:0:
|
||||
254,190,26755,1,8,2:0:0:0:
|
||||
254,191,26954,1,2,2:0:0:0:
|
||||
256,190,27152,5,0,1:0:0:0:
|
||||
257,190,27252,1,0,1:0:0:0:
|
||||
257,192,27351,1,0,1:0:0:0:
|
||||
256,193,27550,1,8,2:0:0:0:
|
||||
255,193,27748,1,2,2:0:0:0:
|
||||
254,192,27947,1,0,1:0:0:0:
|
||||
254,191,28145,1,8,1:2:0:0:
|
||||
254,191,28245,1,8,1:2:0:0:
|
||||
254,190,28344,1,8,1:0:0:0:
|
||||
256,190,28742,5,4,1:0:0:0:
|
||||
257,190,28941,1,2,0:2:0:0:
|
||||
257,192,29040,1,0,1:0:0:0:
|
||||
256,193,29139,1,8,2:0:0:0:
|
||||
255,193,29338,1,2,2:0:0:0:
|
||||
254,192,29536,1,0,1:0:0:0:
|
||||
254,191,29735,1,2,2:0:0:0:
|
||||
254,190,29834,1,2,0:0:0:0:
|
||||
256,190,29934,1,8,2:0:0:0:
|
||||
257,190,30132,1,2,2:0:0:0:
|
||||
257,192,30331,5,0,1:0:0:0:
|
||||
256,193,30629,1,0,1:0:0:0:
|
||||
255,193,30729,1,8,2:0:0:0:
|
||||
256,193,30828,1,2,0:0:0:0:
|
||||
254,192,30927,1,2,2:0:0:0:
|
||||
254,190,31225,1,0,1:0:0:0:
|
||||
256,190,31325,1,8,1:2:0:0:
|
||||
257,190,31424,1,0,1:0:0:0:
|
||||
257,192,31523,1,8,1:0:0:0:
|
||||
256,193,31722,1,10,2:0:0:0:
|
||||
256,193,31821,1,10,2:0:0:0:
|
||||
255,193,31921,5,0,1:0:0:0:
|
||||
254,192,32119,1,8,2:0:0:0:
|
||||
254,191,32318,1,8,2:0:0:0:
|
||||
254,190,32517,1,8,2:0:0:0:
|
||||
256,190,32616,1,8,2:0:0:0:
|
||||
257,190,32815,1,8,2:0:0:0:
|
||||
257,192,32914,1,8,2:0:0:0:
|
||||
256,193,33113,1,8,2:0:0:0:
|
||||
255,193,33212,1,8,2:0:0:0:
|
||||
254,192,33510,5,0,1:0:0:0:
|
||||
254,191,33708,1,8,2:0:0:0:
|
||||
254,190,33907,1,8,2:0:0:0:
|
||||
256,190,34106,1,8,2:0:0:0:
|
||||
257,190,34205,1,8,2:0:0:0:
|
||||
257,192,34404,1,8,2:0:0:0:
|
||||
256,193,34503,1,8,1:2:0:0:
|
||||
256,193,34603,1,8,2:0:0:0:
|
||||
255,193,34702,1,8,2:0:0:0:
|
||||
254,192,34801,1,8,2:0:0:0:
|
||||
254,190,35099,5,0,1:0:0:0:
|
||||
256,190,35298,1,8,2:0:0:0:
|
||||
257,190,35397,1,8,2:0:0:0:
|
||||
257,192,35497,1,8,2:0:0:0:
|
||||
256,193,35695,1,8,2:0:0:0:
|
||||
255,193,35894,1,0,1:0:0:0:
|
||||
254,192,36093,1,8,2:0:0:0:
|
||||
254,191,36192,1,8,2:0:0:0:
|
||||
254,190,36291,1,8,2:0:0:0:
|
||||
256,190,36490,1,8,2:0:0:0:
|
||||
257,190,36689,5,8,1:2:0:0:
|
||||
257,192,36887,5,8,2:0:0:0:
|
||||
256,193,37086,5,8,1:2:0:0:
|
||||
255,193,37285,5,8,2:0:0:0:
|
||||
254,192,37483,5,8,1:2:0:0:
|
||||
254,192,37583,1,8,1:2:0:0:
|
||||
254,192,37782,1,0,1:2:0:0:
|
||||
254,192,37881,1,8,1:2:0:0:
|
||||
254,192,37980,1,8,1:2:0:0:
|
|
@ -0,0 +1,96 @@
|
|||
from PIL import Image, ImageDraw, ImageFont
|
||||
from pathlib import Path
|
||||
|
||||
out_dir = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker"
|
||||
|
||||
|
||||
def empty(path):
|
||||
im = Image.new("RGBA", (1, 1))
|
||||
im.save(path)
|
||||
|
||||
|
||||
hitcircle = Image.new("RGBA", (128, 128))
|
||||
draw = ImageDraw.Draw(hitcircle)
|
||||
draw.ellipse((5, 5, 118 + 5, 118 + 5), fill="white")
|
||||
|
||||
hitcircleoverlay = Image.new("RGBA", (128, 128))
|
||||
draw = ImageDraw.Draw(hitcircleoverlay)
|
||||
draw.ellipse((5, 5, 118 + 5, 118 + 5), outline="white", width=8)
|
||||
|
||||
approachcircle = Image.new("RGBA", (126, 126))
|
||||
draw2 = ImageDraw.Draw(approachcircle)
|
||||
size = 4
|
||||
draw2.ellipse((size, size, 118 + size, 118 + size), outline="white", width=6)
|
||||
|
||||
scorebarbg = Image.new("RGBA", (400, 40))
|
||||
draw4 = ImageDraw.Draw(scorebarbg)
|
||||
draw4.rectangle((0, 10, 400, 40), fill="yellow")
|
||||
|
||||
scorebarcolor = Image.new("RGBA", (390, 40))
|
||||
draw5 = ImageDraw.Draw(scorebarcolor)
|
||||
draw5.rectangle((0, 4, 400, 20), fill="orange")
|
||||
|
||||
|
||||
def get_text_dimensions(text_string, font):
|
||||
# https://stackoverflow.com/a/46220683/9263761
|
||||
ascent, descent = font.getmetrics()
|
||||
|
||||
text_width = font.getmask(text_string).getbbox()[2]
|
||||
text_height = font.getmask(text_string).getbbox()[3] + descent
|
||||
|
||||
return (text_width, text_height)
|
||||
|
||||
|
||||
def thefont(size=None):
|
||||
if size is None:
|
||||
size = 48
|
||||
return ImageFont.FreeTypeFont(r"C:\WINDOWS\FONTS\SIMFANG.TTF", size)
|
||||
|
||||
|
||||
def gentext(text, path, font=None, size=None, **kwargs):
|
||||
if font is None:
|
||||
font = thefont(size=size)
|
||||
|
||||
width, height = get_text_dimensions(text, font)
|
||||
height += 2
|
||||
|
||||
im = Image.new("RGBA", (width, height))
|
||||
draw3 = ImageDraw.Draw(im)
|
||||
draw3.fontmode = "1"
|
||||
draw3.text((0, 0), text, font=font, **kwargs)
|
||||
im.save(path)
|
||||
|
||||
|
||||
def gen2text(text, path, font=None, size=None, **kwargs):
|
||||
if size is None:
|
||||
size = 48
|
||||
|
||||
p = Path(path)
|
||||
gentext(text, p, font=font, **kwargs)
|
||||
|
||||
pname = p.name.rstrip(".png")
|
||||
p2 = p.with_name(pname + "@2x.png")
|
||||
gentext(text, p2, font=font, size=size * 2, **kwargs)
|
||||
|
||||
|
||||
# Scorebar set
|
||||
scorebarbg.save(f"{out_dir}/scorebar-bg.png")
|
||||
scorebarcolor.save(f"{out_dir}/scorebar-colour.png")
|
||||
|
||||
# Hitcircle set
|
||||
hitcircle.save(f"{out_dir}/hitcircle.png")
|
||||
hitcircleoverlay.save(f"{out_dir}/hitcircleoverlay.png")
|
||||
hitcircleoverlay.save(f"{out_dir}/sliderstartcircleoverlay.png")
|
||||
empty(f"{out_dir}/sliderendcircleoverlay.png")
|
||||
approachcircle.save(f"{out_dir}/approachcircle.png")
|
||||
hitcircle.save(f"{out_dir}/sliderstartcircle.png")
|
||||
|
||||
# Hitcircle number set
|
||||
for i in range(10):
|
||||
gentext(str(i), f"{out_dir}/default-{i}.png", fill="white")
|
||||
|
||||
# Hitburst set
|
||||
gen2text("Zzz", f"{out_dir}/hit0.png")
|
||||
# gen2text("無謀な……", f"{out_dir}/hit100k.png")
|
||||
# gen2text("え?俺勝っちゃったの?", f"{out_dir}/hit300g.png")
|
||||
# gen2text("ヤッフー!!", f"{out_dir}/hit300k.png")
|
|
@ -0,0 +1,47 @@
|
|||
in_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [top-rhythm'].osu"
|
||||
out_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [Prece Enter Key].osu"
|
||||
|
||||
positions = [
|
||||
(317, 289),
|
||||
(225, 305),
|
||||
(151, 253),
|
||||
(135, 161),
|
||||
(186, 87),
|
||||
(278, 69),
|
||||
(352, 121),
|
||||
(369, 214),
|
||||
]
|
||||
|
||||
with open(in_file_path, "rb") as f:
|
||||
data = f.readlines()
|
||||
|
||||
with open(out_file_path, "wb") as f:
|
||||
section = b""
|
||||
c = 0
|
||||
for line in data:
|
||||
if line.startswith(b"Version"):
|
||||
line = line.replace(b"top-rhythm'", b"Prece Enter Key")
|
||||
|
||||
line = line.strip()
|
||||
if not line: continue
|
||||
|
||||
if line.startswith(b"[") and line.endswith(b"]"):
|
||||
section = line.lstrip(b"[").rstrip(b"]")
|
||||
|
||||
print(section, line)
|
||||
|
||||
if section != b"HitObjects":
|
||||
f.write(line + b"\n")
|
||||
continue
|
||||
|
||||
parts = line.split(b",")
|
||||
|
||||
if len(parts) > 2:
|
||||
x, y = positions[c]
|
||||
parts[0] = str(x).encode("utf-8")
|
||||
print(parts)
|
||||
parts[1] = str(y).encode("utf-8")
|
||||
c = (c + 1) % len(positions)
|
||||
|
||||
line = b",".join(parts)
|
||||
f.write(line + b"\n")
|
Loading…
Reference in New Issue