alexrsworld 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Apps/30dollarwebsite.html +403 -0
- package/Apps/emulatorjs.html +258 -0
- package/Apps/ruffle.html +93 -0
- package/Apps/soundboard.html +4 -0
- package/Games/WAflash/connect4.html +87 -0
- package/Games/WAflash/dealornodeal.html +89 -0
- package/Games/WAflash/escapingtheprison.html +87 -0
- package/Games/WAflash/fancypants2.html +86 -0
- package/Games/WAflash/freegear.html +87 -0
- package/Games/WAflash/learntoflyidle.html +87 -0
- package/Games/WAflash/papascoop.html +88 -0
- package/Games/WAflash/papashotdog.html +88 -0
- package/Games/WAflash/papaspancake.html +89 -0
- package/Games/WAflash/papaswingeria.html +87 -0
- package/Games/WAflash/pottyracers3.html +86 -0
- package/Games/WAflash/run.html +88 -0
- package/Games/WAflash/run2.html +88 -0
- package/Games/WAflash/shoppingcarthero2.html +88 -0
- package/Games/WAflash/sonicultimate.html +87 -0
- package/Games/WAflash/sugarsugar.html +91 -0
- package/Games/WAflash/vex.html +91 -0
- package/Games/WAflash/worldshardestgame3.html +89 -0
- package/Games/emulated/GBA/emeraldversion.html +30 -0
- package/Games/emulated/GBA/fireredversion.html +30 -0
- package/Games/emulated/GBA/leafgreenversion.html +30 -0
- package/Games/emulated/GBA/rubyversion.html +30 -0
- package/Games/emulated/GBA/sapphireversion.html +30 -0
- package/Games/emulated/N64/mariokart64.html +27 -0
- package/Games/emulated/N64/supermario64.html +30 -0
- package/Games/emulated/SNES/earthbound.html +31 -0
- package/Games/ruffle/MahjongTower.html +40 -0
- package/Games/ruffle/QWOP.html +41 -0
- package/Games/ruffle/achievementunlocked.html +41 -0
- package/Games/ruffle/achievementunlocked2.html +41 -0
- package/Games/ruffle/achievementunlocked3.html +41 -0
- package/Games/ruffle/ageofdefense.html +41 -0
- package/Games/ruffle/ageofwar.html +41 -0
- package/Games/ruffle/ageofwar2.html +41 -0
- package/Games/ruffle/airship.html +41 -0
- package/Games/ruffle/alien.html +41 -0
- package/Games/ruffle/angrybirdshalloween.html +40 -0
- package/Games/ruffle/appleshooter.html +41 -0
- package/Games/ruffle/axisfootballleague.html +40 -0
- package/Games/ruffle/badpiggies.html +41 -0
- package/Games/ruffle/bejeweledtwist.html +41 -0
- package/Games/ruffle/blinding.html +40 -0
- package/Games/ruffle/bloons.html +41 -0
- package/Games/ruffle/bloonsupermonkey.html +40 -0
- package/Games/ruffle/bloxorz.html +40 -0
- package/Games/ruffle/bobtherobber.html +41 -0
- package/Games/ruffle/bowling.html +40 -0
- package/Games/ruffle/breakingthebank.html +40 -0
- package/Games/ruffle/btd.html +40 -0
- package/Games/ruffle/btd2.html +40 -0
- package/Games/ruffle/btd3.html +41 -0
- package/Games/ruffle/btd4.html +41 -0
- package/Games/ruffle/btd4expansion.html +41 -0
- package/Games/ruffle/btd5.html +41 -0
- package/Games/ruffle/bubbleshooter.html +41 -0
- package/Games/ruffle/burgerrun.html +41 -0
- package/Games/ruffle/burritobisonrevenge.html +41 -0
- package/Games/ruffle/crimsonroom.html +41 -0
- package/Games/ruffle/cubefield.html +40 -0
- package/Games/ruffle/curveball.html +41 -0
- package/Games/ruffle/deadzed2.html +40 -0
- package/Games/ruffle/dinerdash.html +41 -0
- package/Games/ruffle/donkeykong.html +40 -0
- package/Games/ruffle/douchebagworkout.html +40 -0
- package/Games/ruffle/douchebagworkout2.html +40 -0
- package/Games/ruffle/ducklife.html +40 -0
- package/Games/ruffle/ducklife2.html +40 -0
- package/Games/ruffle/ducklife3.html +40 -0
- package/Games/ruffle/ducklife4.html +40 -0
- package/Games/ruffle/electricman.html +41 -0
- package/Games/ruffle/electricman2.html +41 -0
- package/Games/ruffle/factoryballs.html +42 -0
- package/Games/ruffle/factoryballs2.html +42 -0
- package/Games/ruffle/factoryballs3.html +41 -0
- package/Games/ruffle/factoryballs4.html +41 -0
- package/Games/ruffle/fancypants.html +41 -0
- package/Games/ruffle/fancypants3.html +41 -0
- package/Games/ruffle/fleeingthecomplex.html +41 -0
- package/Games/ruffle/fltron.html +40 -0
- package/Games/ruffle/foresttemple.html +40 -0
- package/Games/ruffle/frogger.html +40 -0
- package/Games/ruffle/frontlinedefense.html +40 -0
- package/Games/ruffle/galagaflash.html +41 -0
- package/Games/ruffle/gravitee.html +41 -0
- package/Games/ruffle/gravitee2.html +41 -0
- package/Games/ruffle/growcube.html +41 -0
- package/Games/ruffle/growisland.html +41 -0
- package/Games/ruffle/growvalley.html +41 -0
- package/Games/ruffle/impossiblequiz.html +41 -0
- package/Games/ruffle/impossiblequiz2.html +41 -0
- package/Games/ruffle/injustice.html +41 -0
- package/Games/ruffle/isoball.html +41 -0
- package/Games/ruffle/johnnyupgrade.html +41 -0
- package/Games/ruffle/jumpingfinn.html +40 -0
- package/Games/ruffle/kaboomz.html +40 -0
- package/Games/ruffle/leaguebowling.html +41 -0
- package/Games/ruffle/learntofly.html +40 -0
- package/Games/ruffle/learntofly2.html +40 -0
- package/Games/ruffle/learntofly3.html +40 -0
- package/Games/ruffle/lemonade.html +40 -0
- package/Games/ruffle/madness.html +40 -0
- package/Games/ruffle/madnessa.html +40 -0
- package/Games/ruffle/mahjonggardens.html +40 -0
- package/Games/ruffle/mahjongtitans.html +40 -0
- package/Games/ruffle/mariocombat.html +40 -0
- package/Games/ruffle/minecrafttowerdefense.html +41 -0
- package/Games/ruffle/minecrafttowerdefense2.html +41 -0
- package/Games/ruffle/motherload.html +40 -0
- package/Games/ruffle/murder.html +41 -0
- package/Games/ruffle/myfriendpedro.html +40 -0
- package/Games/ruffle/neonrider.html +41 -0
- package/Games/ruffle/nyancatlostinspace.html +40 -0
- package/Games/ruffle/pacman.html +40 -0
- package/Games/ruffle/pacxon.html +41 -0
- package/Games/ruffle/pacxondeluxe.html +41 -0
- package/Games/ruffle/pandemic2.html +41 -0
- package/Games/ruffle/papas sushi.html +40 -0
- package/Games/ruffle/papasbake.html +40 -0
- package/Games/ruffle/papasburgeria.html +41 -0
- package/Games/ruffle/papascheese.html +40 -0
- package/Games/ruffle/papascupcake.html +40 -0
- package/Games/ruffle/papasdonut.html +40 -0
- package/Games/ruffle/papaspasta.html +42 -0
- package/Games/ruffle/papaspizza.html +41 -0
- package/Games/ruffle/papastaco.html +42 -0
- package/Games/ruffle/plantsvszombies.html +41 -0
- package/Games/ruffle/poppit.html +42 -0
- package/Games/ruffle/portaltheflashversion.html +42 -0
- package/Games/ruffle/pottyracers.html +40 -0
- package/Games/ruffle/pottyracers2.html +40 -0
- package/Games/ruffle/raftwars.html +40 -0
- package/Games/ruffle/redball.html +42 -0
- package/Games/ruffle/redball2.html +41 -0
- package/Games/ruffle/redball3.html +41 -0
- package/Games/ruffle/riddleschool.html +41 -0
- package/Games/ruffle/riddleschool2.html +41 -0
- package/Games/ruffle/riddleschool3.html +41 -0
- package/Games/ruffle/riddleschool4.html +41 -0
- package/Games/ruffle/riddleschool5.html +41 -0
- package/Games/ruffle/riddletransfer.html +41 -0
- package/Games/ruffle/riddletransfer2.html +41 -0
- package/Games/ruffle/rollercoaster.html +41 -0
- package/Games/ruffle/shoppingcarthero.html +41 -0
- package/Games/ruffle/spaceiskey.html +41 -0
- package/Games/ruffle/spaceiskey2.html +41 -0
- package/Games/ruffle/sprinter.html +41 -0
- package/Games/ruffle/stealingthediamond.html +41 -0
- package/Games/ruffle/stickwar.html +41 -0
- package/Games/ruffle/strikeforceheros.html +40 -0
- package/Games/ruffle/strikeforceheros2.html +40 -0
- package/Games/ruffle/strikeforcekitty.html +41 -0
- package/Games/ruffle/sugarsugar2.html +41 -0
- package/Games/ruffle/superfighters.html +41 -0
- package/Games/ruffle/supermarioflash.html +41 -0
- package/Games/ruffle/supermarioflash2.html +41 -0
- package/Games/ruffle/supermarioflash3.html +41 -0
- package/Games/ruffle/supersmashflash.html +41 -0
- package/Games/ruffle/tactical.html +41 -0
- package/Games/ruffle/tactical2.html +41 -0
- package/Games/ruffle/tacticaloriginal.html +41 -0
- package/Games/ruffle/territorywar.html +41 -0
- package/Games/ruffle/tetrix2.html +41 -0
- package/Games/ruffle/thefightforglorton.html +41 -0
- package/Games/ruffle/thinice.html +41 -0
- package/Games/ruffle/treasurehunt.html +40 -0
- package/Games/ruffle/unfairmario.html +40 -0
- package/Games/ruffle/vex2.html +41 -0
- package/Games/ruffle/whenpizzaattacks.html +41 -0
- package/Games/ruffle/whg.html +40 -0
- package/Games/ruffle/whg2.html +40 -0
- package/Games/ruffle/whg4.html +40 -0
- package/Games/ruffle/yahootennis.html +40 -0
- package/Games/ruffle/zombocalypse.html +41 -0
- package/Games/singlefile.html +67 -0
- package/Games/sonic-games/sonicthehedgehog.html +29 -0
- package/Games/sonic-games/sonicthehedgehog2.html +31 -0
- package/Games/sonic-games/sonicthehedgehog3.html +23 -0
- package/Games/standalone/10minutestilldawn.html +85 -0
- package/Games/standalone/1v1lol.html +299 -0
- package/Games/standalone/2048.html +129 -0
- package/Games/standalone/2048cupcakes.html +135 -0
- package/Games/standalone/Angry Birds.html +20 -0
- package/Games/standalone/BlockPost.html +36 -0
- package/Games/standalone/BuildNow.gg.html +136 -0
- package/Games/standalone/Flappy Dunk.html +169 -0
- package/Games/standalone/Granny 2.html +202 -0
- package/Games/standalone/Time Shooter 2.html +94 -0
- package/Games/standalone/adventure.html +128 -0
- package/Games/standalone/angrybirdsshowdown.html +24 -0
- package/Games/standalone/badicecream.html +163 -0
- package/Games/standalone/badicecream2.html +165 -0
- package/Games/standalone/badicecream3.html +165 -0
- package/Games/standalone/badtime.html +145 -0
- package/Games/standalone/baldi.html +26 -0
- package/Games/standalone/basketrandom.html +46 -0
- package/Games/standalone/bigtower.html +65 -0
- package/Games/standalone/bigtower2.html +20 -0
- package/Games/standalone/bitlife.html +22 -0
- package/Games/standalone/blockblast.html +94 -0
- package/Games/standalone/blockthepig.html +142 -0
- package/Games/standalone/bowmasters.html +27 -0
- package/Games/standalone/boxingrandom.html +0 -0
- package/Games/standalone/candycrush.html +67 -0
- package/Games/standalone/carssimulator.html +40 -0
- package/Games/standalone/caseclicker.html +310 -0
- package/Games/standalone/cellmachine.html +24 -0
- package/Games/standalone/choppyorc.html +210 -0
- package/Games/standalone/circleo.html +99 -0
- package/Games/standalone/clusterrush.html +47 -0
- package/Games/standalone/colorswitch.html +224 -0
- package/Games/standalone/colortunnel.html +24 -0
- package/Games/standalone/cookieclicker.html +150 -0
- package/Games/standalone/crazycattle3d.html +246 -0
- package/Games/standalone/crossyroad.html +23 -0
- package/Games/standalone/cyberpunkracing.html +37 -0
- package/Games/standalone/dadish.html +46 -0
- package/Games/standalone/dadish2.html +72 -0
- package/Games/standalone/deathrun3d.html +69 -0
- package/Games/standalone/dogeminer.html +996 -0
- package/Games/standalone/dragonvsbricks.html +48 -0
- package/Games/standalone/driftboss.html +146 -0
- package/Games/standalone/drifthunters.html +123 -0
- package/Games/standalone/drivemad.html +41 -0
- package/Games/standalone/ducklifebattle.html +131 -0
- package/Games/standalone/ducklifespace.html +93 -0
- package/Games/standalone/earntodie.html +117 -0
- package/Games/standalone/economical.html +77 -0
- package/Games/standalone/fireandice.html +22 -0
- package/Games/standalone/flappybird.html +137 -0
- package/Games/standalone/fnaf.html +115 -0
- package/Games/standalone/fnaf2.html +34 -0
- package/Games/standalone/fnaf3.html +337 -0
- package/Games/standalone/fnaf4.html +338 -0
- package/Games/standalone/fnaf4halloween.html +34 -0
- package/Games/standalone/fridaynightfunkin.html +76 -0
- package/Games/standalone/fruitninja.html +99 -0
- package/Games/standalone/galaga.html +216 -0
- package/Games/standalone/gdlite.html +255 -0
- package/Games/standalone/gladihoppers.html +36 -0
- package/Games/standalone/googlefeud.html +1163 -0
- package/Games/standalone/granny.html +233 -0
- package/Games/standalone/grindcraft.html +44 -0
- package/Games/standalone/happywheels.html +19 -0
- package/Games/standalone/helixjump.html +30 -0
- package/Games/standalone/holeio.html +53 -0
- package/Games/standalone/idlebreakout.html +95 -0
- package/Games/standalone/jetpack.html +21 -0
- package/Games/standalone/magictiles3.html +111 -0
- package/Games/standalone/monkeymart.html +365 -0
- package/Games/standalone/motox3m.html +1 -0
- package/Games/standalone/motox3mpoolparty.html +18 -0
- package/Games/standalone/motox3mspookyland.html +68 -0
- package/Games/standalone/ngon.html +577 -0
- package/Games/standalone/omnombounce.html +82 -0
- package/Games/standalone/pacmanoriginal.html +30 -0
- package/Games/standalone/papasfreezeria.html +348 -0
- package/Games/standalone/paperio2.html +54 -0
- package/Games/standalone/parkingfury.html +45 -0
- package/Games/standalone/polytrack.html +40 -0
- package/Games/standalone/pou.html +73 -0
- package/Games/standalone/retrobowl.html +119 -0
- package/Games/standalone/retrobowlcollege.html +179 -0
- package/Games/standalone/rocketsoccer.html +39 -0
- package/Games/standalone/run3.html +64 -0
- package/Games/standalone/slender.html +40 -0
- package/Games/standalone/slope.html +59 -0
- package/Games/standalone/snowrider3d.html +27 -0
- package/Games/standalone/soccerrandom.html +0 -0
- package/Games/standalone/solitaire.html +32 -0
- package/Games/standalone/sonicroboblast2.html +2169 -0
- package/Games/standalone/spacewaves.html +239 -0
- package/Games/standalone/stack.html +639 -0
- package/Games/standalone/station141.html +27 -0
- package/Games/standalone/stickmangolf.html +22 -0
- package/Games/standalone/stickmanhook.html +39 -0
- package/Games/standalone/stuntcars3.html +26 -0
- package/Games/standalone/subwaysurfers.html +55 -0
- package/Games/standalone/superhot.html +35 -0
- package/Games/standalone/superliquidsoccer.html +311 -0
- package/Games/standalone/templerun2.html +38 -0
- package/Games/standalone/timeshooter.html +99 -0
- package/Games/standalone/tinyfishing.html +139 -0
- package/Games/standalone/tombofthemask.html +14 -0
- package/Games/standalone/triviacrack.html +24 -0
- package/Games/standalone/tubejumpers.html +20 -0
- package/Games/standalone/ultimatecustomnight.html +34 -0
- package/Games/standalone/undertheredsky.html +46 -0
- package/Games/standalone/vex3.html +42 -0
- package/Games/standalone/vex4.html +38 -0
- package/Games/standalone/vex5.html +43 -0
- package/Games/standalone/vex6.html +56 -0
- package/Games/standalone/vex7.html +53 -0
- package/Games/standalone/vex8.html +46 -0
- package/Games/standalone/wordle.html +27 -0
- package/Games/standalone/worldtour.html +95 -0
- package/backup.html +2016 -0
- package/games.json +2373 -0
- package/index.html +2302 -0
- package/new logo.png +0 -0
- package/package.json +21 -0
- package/port.html +0 -0
- package/readme.md +1 -0
- package/singlefilegames.json +2266 -0
- package/sounds/ambience.mp3 +0 -0
- package/sounds/click.mp3 +0 -0
- package/sounds/close.mp3 +0 -0
- package/sounds/hover.mp3 +0 -0
- package/sounds/select.mp3 +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<!DOCTYPE html>
|
|
4
|
+
<html>
|
|
5
|
+
<head>
|
|
6
|
+
<base href="https://rawcdn.githack.com/genizy/assets/main/blockpost/">
|
|
7
|
+
<meta charset="utf-8">
|
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
9
|
+
<title>Blockpost</title>
|
|
10
|
+
<script>
|
|
11
|
+
window.config = {
|
|
12
|
+
loader: 'unity',
|
|
13
|
+
debug: false,
|
|
14
|
+
maxRatio: 16 / 9,
|
|
15
|
+
minRatio: 9 / 16,
|
|
16
|
+
|
|
17
|
+
title: 'Blockpost',
|
|
18
|
+
thumbnail: 'thumb.png',
|
|
19
|
+
numScreenshots: 4,
|
|
20
|
+
|
|
21
|
+
unityVersion: '2018.4.32f1',
|
|
22
|
+
unityWebglBuildUrl: 'Build\/webgl_poki.json',
|
|
23
|
+
|
|
24
|
+
fileSize: 22,
|
|
25
|
+
cachedDecompressedFileSizes: {
|
|
26
|
+
'webgl_poki.data.unityweb': 12379304 ,
|
|
27
|
+
'webgl_poki.wasm.code.unityweb': 9776558 ,
|
|
28
|
+
'webgl_poki.wasm.framework.unityweb': 100499 ,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
</script>
|
|
32
|
+
</head>
|
|
33
|
+
<body>
|
|
34
|
+
<script src="master-loader.js"></script>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-us">
|
|
3
|
+
<head>
|
|
4
|
+
<base href="https://cdn.jsdelivr.net/gh/genizy/cg-rip@main/buildnow-gg/">
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
|
8
|
+
</head>
|
|
9
|
+
<body style="margin:0;padding:0" class="noselect">
|
|
10
|
+
<div id="loading-text" style="color: black; font-size: 48px; font-family: cursive; text-align: center; margin-top: 20px;">LOADING...</div>
|
|
11
|
+
<canvas id="unity-canvas"
|
|
12
|
+
style="position:fixed;top:0;left:0;width:100%;height:100%;outline:none"></canvas>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
const SPLIT_MAP = {"7db022abd161455e3cc5f207e75d294b.wasm": null, "ab8dd356a41a2943639294657a0990f8.data": null};
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
async function mergeParts(baseUrl) {
|
|
20
|
+
const parts = [];
|
|
21
|
+
for (let i = 1; i <= 99; i++) {
|
|
22
|
+
const testUrl = baseUrl + ".part" + i;
|
|
23
|
+
try {
|
|
24
|
+
const head = await fetch(testUrl, { method: "HEAD" });
|
|
25
|
+
if (!head.ok) break;
|
|
26
|
+
parts.push(testUrl);
|
|
27
|
+
} catch { break; }
|
|
28
|
+
}
|
|
29
|
+
if (parts.length === 0) return baseUrl;
|
|
30
|
+
|
|
31
|
+
const buffers = await Promise.all(parts.map(async (u) => {
|
|
32
|
+
const r = await fetch(u);
|
|
33
|
+
if (!r.ok) throw new Error("Failed part " + u);
|
|
34
|
+
return new Uint8Array(await r.arrayBuffer());
|
|
35
|
+
}));
|
|
36
|
+
|
|
37
|
+
const total = buffers.reduce((a, b) => a + b.length, 0);
|
|
38
|
+
const merged = new Uint8Array(total);
|
|
39
|
+
let offset = 0;
|
|
40
|
+
for (const b of buffers) { merged.set(b, offset); offset += b.length; }
|
|
41
|
+
|
|
42
|
+
return URL.createObjectURL(new Blob([merged]));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function preMergeAll() {
|
|
46
|
+
const map = {};
|
|
47
|
+
const files = Object.entries(SPLIT_MAP);
|
|
48
|
+
const total = files.length;
|
|
49
|
+
let done = 0;
|
|
50
|
+
|
|
51
|
+
const loadingText = document.getElementById("loading-text");
|
|
52
|
+
|
|
53
|
+
for (const [file, _] of files) {
|
|
54
|
+
const merged = await mergeParts("Build/" + file);
|
|
55
|
+
map[file] = merged;
|
|
56
|
+
done++;
|
|
57
|
+
const percent = Math.floor((done / total) * 100);
|
|
58
|
+
loadingText.innerText = `LOADING... ${percent}%`;
|
|
59
|
+
console.log("Premerged:", file, "→", merged);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
loadingText.style.display = "none";
|
|
63
|
+
|
|
64
|
+
return map;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
(async () => {
|
|
68
|
+
const mergedMap = await preMergeAll();
|
|
69
|
+
window.SPLIT_MAP = mergedMap;
|
|
70
|
+
const origFetch = window.fetch;
|
|
71
|
+
window.fetch = async function(resource, options) {
|
|
72
|
+
if (typeof resource === "string") {
|
|
73
|
+
const key = resource.split("/").pop();
|
|
74
|
+
if (mergedMap[key]) {
|
|
75
|
+
console.log("Redirect fetch:", key);
|
|
76
|
+
return origFetch(mergedMap[key], options);
|
|
77
|
+
}
|
|
78
|
+
if (resource.includes("StreamingAssets")) {
|
|
79
|
+
return origFetch((document.querySelector('base').href !== null ? document.querySelector('base').href+"/" : "") + "StreamingAssets/"+resource.split("/StreamingAssets/")[1])
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return origFetch(resource, options);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const OrigXHR = window.XMLHttpRequest;
|
|
86
|
+
window.XMLHttpRequest = function() {
|
|
87
|
+
const xhr = new OrigXHR();
|
|
88
|
+
const origOpen = xhr.open;
|
|
89
|
+
xhr.open = function(method, url, ...rest) {
|
|
90
|
+
const key = url.split("/").pop();
|
|
91
|
+
if (mergedMap[key]) {
|
|
92
|
+
console.log("Redirect XHR:", key);
|
|
93
|
+
origOpen.call(xhr, method, mergedMap[key], ...rest);
|
|
94
|
+
} else {
|
|
95
|
+
origOpen.call(xhr, method, url, ...rest);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
return xhr;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const canvas = document.querySelector("#unity-canvas");
|
|
102
|
+
const loaderUrl = "Build/7a2dbded24d57e056180125b1583e7c4.loader.js";
|
|
103
|
+
const config = {
|
|
104
|
+
dataUrl: "Build/ab8dd356a41a2943639294657a0990f8.data",
|
|
105
|
+
frameworkUrl: "Build/91a2bfcec140bc524100478b99a4f6d7.framework.js",
|
|
106
|
+
codeUrl: "Build/7db022abd161455e3cc5f207e75d294b.wasm",
|
|
107
|
+
streamingAssetsUrl: "StreamingAssets",
|
|
108
|
+
companyName: "BuildNow GG",
|
|
109
|
+
productName: "BuildNow GG",
|
|
110
|
+
productVersion: "1.0.0"
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const script = document.createElement("script");
|
|
114
|
+
script.src = loaderUrl;
|
|
115
|
+
script.onload = () => {
|
|
116
|
+
createUnityInstance(canvas, config, (progress) => {}).then((unityInstance) => {
|
|
117
|
+
window.gameInstance = unityInstance;
|
|
118
|
+
}).catch((message) => alert(message));
|
|
119
|
+
};
|
|
120
|
+
document.body.appendChild(script);
|
|
121
|
+
})();
|
|
122
|
+
</script>
|
|
123
|
+
|
|
124
|
+
<script>
|
|
125
|
+
function resizeCanvas() {
|
|
126
|
+
const canvas = document.getElementById("unity-canvas");
|
|
127
|
+
canvas.width = window.innerWidth;
|
|
128
|
+
canvas.height = window.innerHeight;
|
|
129
|
+
canvas.style.width = window.innerWidth + "px";
|
|
130
|
+
canvas.style.height = window.innerHeight + "px";
|
|
131
|
+
}
|
|
132
|
+
window.addEventListener("load", resizeCanvas);
|
|
133
|
+
window.addEventListener("resize", resizeCanvas);
|
|
134
|
+
</script>
|
|
135
|
+
</body>
|
|
136
|
+
</html>
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang="en-us">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<base href="https://cdn.jsdelivr.net/gh/bubbls/youtube-playables@main/flappy%20dunk/">
|
|
10
|
+
<meta charset="utf-8">
|
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
12
|
+
<title>Flappy Dunk</title>
|
|
13
|
+
<link rel="stylesheet" href="TemplateData/style.css" nonce="CRrAvEtnTYz2xyLLghZb0w">
|
|
14
|
+
<script src="https://cdn.jsdelivr.net/gh/bubbls/youtube-playables@main/ytgame.js" nonce="qdhAB9vIEyxuPCqnXvX_tA"></script>
|
|
15
|
+
</head>
|
|
16
|
+
|
|
17
|
+
<body>
|
|
18
|
+
<div id="unity-container" class="unity-desktop">
|
|
19
|
+
<canvas id="unity-canvas" width=100% height=100% tabindex="-1"></canvas>
|
|
20
|
+
<div id="unity-loading-bar">
|
|
21
|
+
<div id="unity-logo"></div>
|
|
22
|
+
<div id="unity-progress-bar-empty">
|
|
23
|
+
<div id="unity-progress-bar-full"></div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div id="unity-warning"> </div>
|
|
27
|
+
</div>
|
|
28
|
+
<script src="unarchiver.min.js" nonce="CRrAvEtnTYz2xyLLghZb0w">// used for decompression if zip files are used</script>
|
|
29
|
+
<script nonce="CRrAvEtnTYz2xyLLghZb0w">
|
|
30
|
+
/*custom unity script*/
|
|
31
|
+
var canvas = document.querySelector("#unity-canvas");
|
|
32
|
+
var gameInstance = null;
|
|
33
|
+
var defaultRemoteData = "Total Hoops In Endless:::0|||white state:::1|||wingRed state:::1|||hoopYellowBack state:::1|||buoy state:::0|||purple state:::1|||baseball state:::1|||black state:::1|||hoopPurpleBack state:::1|||christmashat state:::1|||wingOrange state:::1|||hoopPinkBack state:::1|||moon state:::1|||earth state:::1|||RedFever state:::1|||wingRainbow state:::1|||normal state:::4|||bowling state:::1|||green state:::1|||brain state:::0|||cd state:::1|||BlueFever state:::1|||hypnotic state:::1|||tennis state:::1|||GreenFever state:::1|||hoopCheeseBack state:::1|||wingBlue state:::1|||pizza state:::0|||blue state:::1|||yinyang state:::1|||hoopWhiteBack state:::1|||hoopBack state:::4|||hoopSmileBack state:::1|||football state:::1|||wingGreen state:::1|||YellowFever state:::1|||pink state:::1|||beachball state:::1|||red state:::1|||PinkFever state:::1|||hoopRainbowBack state:::1|||wingBlack state:::1|||wingPink state:::1|||poker state:::1|||wingYellow state:::1|||hoopOrangeBack state:::1|||wing state:::4|||rainbow state:::1|||eye state:::1|||poolball state:::1|||watermelon state:::1|||hoopBlackBack state:::1|||PurpleFever state:::1|||yellow state:::1|||volley state:::1|||wingPurple state:::1|||smiley state:::1|||NormalFever state:::4|||hoopBlueBack state:::1|||wingSmile state:::1|||hoopGreenBack state:::1|||fdban state:::1|||wingInfinity state:::1|||analyticsSession:::Active Users (1.6.4)|||Audio On:::1";
|
|
34
|
+
var remoteData = "";
|
|
35
|
+
var typeToBlob = {
|
|
36
|
+
"wasm":"application/wasm",
|
|
37
|
+
"js":"text/javascript",
|
|
38
|
+
"binary":"application/octet-stream",
|
|
39
|
+
};
|
|
40
|
+
var buildUrl = "Build";
|
|
41
|
+
var loaderUrl = buildUrl + "/flappydunk_unity6_V1.0.1.loader.js";
|
|
42
|
+
var config = {
|
|
43
|
+
arguments: [],
|
|
44
|
+
dataUrl: buildUrl + "/flappydunk_unity6_V1.0.1.data.zip",
|
|
45
|
+
frameworkUrl: buildUrl + "/flappydunk_unity6_V1.0.1.framework.js",
|
|
46
|
+
codeUrl: buildUrl + "/flappydunk_unity6_V1.0.1.wasm.zip",
|
|
47
|
+
streamingAssetsUrl: "StreamingAssets",
|
|
48
|
+
companyName: "Voodoo",
|
|
49
|
+
productName: "Flappy Dunk",
|
|
50
|
+
productVersion: "1.0.1",
|
|
51
|
+
showBanner: unityShowBanner,
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
|
|
56
|
+
var meta = document.createElement("meta");
|
|
57
|
+
meta.name = "viewport";
|
|
58
|
+
meta.content = "width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, shrink-to-fit=yes";
|
|
59
|
+
document.getElementsByTagName("head")[0].appendChild(meta);
|
|
60
|
+
document.querySelector("#unity-container").className = "unity-mobile";
|
|
61
|
+
canvas.className = "unity-mobile";
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const w = window.innerWidth;
|
|
65
|
+
const h = window.innerHeight;
|
|
66
|
+
const r = 800/450;
|
|
67
|
+
|
|
68
|
+
var newWidth = parseInt(h / r);
|
|
69
|
+
if(newWidth < 1){
|
|
70
|
+
newWidth = 450;
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
canvas.style.width = parseInt(window.innerHeight/1.7778) +"px";
|
|
73
|
+
}, 500);
|
|
74
|
+
}
|
|
75
|
+
canvas.style.width = newWidth +"px";
|
|
76
|
+
canvas.style.height = "100vh";
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
function unityShowBanner(msg, type) {}
|
|
81
|
+
|
|
82
|
+
function unCompress(codeUrl, shouldDecompress = false, type = "raw") {
|
|
83
|
+
if (!shouldDecompress)
|
|
84
|
+
return Promise.resolve(codeUrl);
|
|
85
|
+
|
|
86
|
+
const proxy = { onResolve: () => {} };
|
|
87
|
+
const blobType = typeToBlob[type] || typeToBlob["binary"];
|
|
88
|
+
const promise = new Promise((resolve) => proxy.onResolve = resolve);
|
|
89
|
+
DecompressFile(codeUrl, blobType, (file) => proxy.onResolve(file));
|
|
90
|
+
|
|
91
|
+
return promise;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function loadZipData(url, callback) {
|
|
95
|
+
fetch(url)
|
|
96
|
+
.then((response) => response.blob())
|
|
97
|
+
.then((blob) => {
|
|
98
|
+
callback(blob);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function DecompressFile(file, blobMimeType, callback) {
|
|
103
|
+
let decompressedFile;
|
|
104
|
+
|
|
105
|
+
loadZipData(file, (f) => {
|
|
106
|
+
Unarchiver.open(f).then(async function (archive) {
|
|
107
|
+
for (let entry of archive.entries) {
|
|
108
|
+
if (entry.is_file) {
|
|
109
|
+
let entryRead = await entry.read();
|
|
110
|
+
let entryData = await entryRead.arrayBuffer();
|
|
111
|
+
let dataBlob = new Blob([new Uint8Array(entryData)], {
|
|
112
|
+
type: blobMimeType,
|
|
113
|
+
});
|
|
114
|
+
decompressedFile = window.URL.createObjectURL(dataBlob);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
callback(decompressedFile);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* load zipped wasm & data files*/
|
|
123
|
+
async function loadAllResources() {
|
|
124
|
+
config.codeUrl = await unCompress(config.codeUrl, true, "wasm");
|
|
125
|
+
config.dataUrl = await unCompress(config.dataUrl, true, "raw");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async function loadYoutubeData() {
|
|
129
|
+
const data = await ytgame.game.loadData();
|
|
130
|
+
if (data == "") {
|
|
131
|
+
console.log("youtube remote data is empty, use default data instead");
|
|
132
|
+
}
|
|
133
|
+
remoteData = data == "" ? defaultRemoteData : data;
|
|
134
|
+
console.log("******START GAME WITH PRELOADED DATA: " + remoteData);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async function onPageLoaded() {
|
|
138
|
+
const promise1 = loadAllResources();
|
|
139
|
+
const promise2 = loadYoutubeData();
|
|
140
|
+
await Promise.all([promise1, promise2]);
|
|
141
|
+
startUnityGame();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function startUnityGame() {
|
|
145
|
+
var script = document.createElement("script");
|
|
146
|
+
script.src = loaderUrl;
|
|
147
|
+
script.onload = () => {
|
|
148
|
+
createUnityInstance(canvas, config, (progress) => {
|
|
149
|
+
document.querySelector("#unity-progress-bar-full").style.width =
|
|
150
|
+
100 * progress + "%";
|
|
151
|
+
})
|
|
152
|
+
.then((unityInstance) => {
|
|
153
|
+
gameInstance = unityInstance;
|
|
154
|
+
document.querySelector("#unity-loading-bar").style.display = "none";
|
|
155
|
+
})
|
|
156
|
+
.catch((message) => {
|
|
157
|
+
alert(message);
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
document.querySelector("#unity-loading-bar").style.display = "block";
|
|
161
|
+
document.body.appendChild(script);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
window.addEventListener("load", onPageLoaded);
|
|
165
|
+
|
|
166
|
+
</script>
|
|
167
|
+
</body>
|
|
168
|
+
|
|
169
|
+
</html>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-us">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8"/>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
6
|
+
<title>Granny 2</title>
|
|
7
|
+
<link rel="icon" href="/assets/new%20logo.png">
|
|
8
|
+
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/TemplateData/favicon.ico"/>
|
|
9
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/TemplateData/styles.css"/>
|
|
10
|
+
<!-- GameMonetize SDK Entegrasyonu -->
|
|
11
|
+
<script type="text/javascript">
|
|
12
|
+
window.SDK_OPTIONS = {
|
|
13
|
+
gameId: "jp112o3o4hzgrnc7zaewjkrfk282pul8",
|
|
14
|
+
onEvent: function (a) {
|
|
15
|
+
switch (a.name) {
|
|
16
|
+
case "SDK_GAME_PAUSE":
|
|
17
|
+
console.log("Oyun duraklatıldı, ses kapatılıyor...");
|
|
18
|
+
if (typeof myGameInstance !== 'undefined' && myGameInstance) {
|
|
19
|
+
myGameInstance.SendMessage('AudioManager', 'MuteAudio');
|
|
20
|
+
}
|
|
21
|
+
break;
|
|
22
|
+
case "SDK_GAME_START":
|
|
23
|
+
console.log("Reklam bitti, oyun devam ediyor...");
|
|
24
|
+
if (typeof myGameInstance !== 'undefined' && myGameInstance) {
|
|
25
|
+
myGameInstance.SendMessage('AudioManager', 'UnmuteAudio');
|
|
26
|
+
}
|
|
27
|
+
break;
|
|
28
|
+
case "SDK_READY":
|
|
29
|
+
console.log("SDK hazır.");
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
(function (a, b, c) {
|
|
35
|
+
var d = a.getElementsByTagName(b)[0];
|
|
36
|
+
a.getElementById(c) || (a = a.createElement(b), a.id = c, a.src = "https://cdn.jsdelivr.net/gh/testamalame/sef@main/sedk.js", d.parentNode.insertBefore(a, d));
|
|
37
|
+
})(document, "script", "gamemonetize-sdk");
|
|
38
|
+
</script>
|
|
39
|
+
</head>
|
|
40
|
+
<body>
|
|
41
|
+
<div id="unity-container" style="position: absolute; width: 100%; height: 100%; left: 0%; top: 0%;">
|
|
42
|
+
<canvas id="unity-canvas" style="position: absolute; width: 100%; height: 100%"></canvas>
|
|
43
|
+
<div id="unity-loading-bar">
|
|
44
|
+
<div id="unity-logo"></div>
|
|
45
|
+
<div id="unity-progress-bar-empty">
|
|
46
|
+
<div id="unity-progress-bar-full"></div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div id="unity-warning"> </div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<script>
|
|
53
|
+
YaGames.init().then(ysdk => {
|
|
54
|
+
console.log('Yandex SDK initialized');
|
|
55
|
+
window.ysdk = ysdk;
|
|
56
|
+
initPlayer();
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
var player;
|
|
60
|
+
|
|
61
|
+
function initPlayer() {
|
|
62
|
+
return ysdk.getPlayer({ scopes: false }).then(_player => {
|
|
63
|
+
player = _player;
|
|
64
|
+
return player;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<script>
|
|
70
|
+
var container = document.querySelector("#unity-container");
|
|
71
|
+
var canvas = document.querySelector("#unity-canvas");
|
|
72
|
+
var loadingBar = document.querySelector("#unity-loading-bar");
|
|
73
|
+
var progressBarFull = document.querySelector("#unity-progress-bar-full");
|
|
74
|
+
var warningBanner = document.querySelector("#unity-warning");
|
|
75
|
+
|
|
76
|
+
let myGameInstance = null;
|
|
77
|
+
let isAdShown = false;
|
|
78
|
+
|
|
79
|
+
function unityShowBanner(msg, type) {
|
|
80
|
+
function updateBannerVisibility() {
|
|
81
|
+
warningBanner.style.display = warningBanner.children.length ? 'block' : 'none';
|
|
82
|
+
}
|
|
83
|
+
var div = document.createElement('div');
|
|
84
|
+
div.innerHTML = msg;
|
|
85
|
+
warningBanner.appendChild(div);
|
|
86
|
+
if (type == 'error') div.style = 'background: red; padding: 10px;';
|
|
87
|
+
else {
|
|
88
|
+
if (type == 'warning') div.style = 'background: yellow; padding: 10px;';
|
|
89
|
+
setTimeout(function() {
|
|
90
|
+
warningBanner.removeChild(div);
|
|
91
|
+
updateBannerVisibility();
|
|
92
|
+
}, 5000);
|
|
93
|
+
}
|
|
94
|
+
updateBannerVisibility();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function showAdOnClick() {
|
|
98
|
+
if (!isAdShown && typeof sdk !== 'undefined' && typeof sdk.showBanner !== 'undefined') {
|
|
99
|
+
sdk.showBanner();
|
|
100
|
+
isAdShown = true;
|
|
101
|
+
console.log("Reklam çağrıldı.");
|
|
102
|
+
} else {
|
|
103
|
+
console.warn("SDK veya showBanner tanımlı değil.");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
let environmentData = {
|
|
108
|
+
language: "en",
|
|
109
|
+
domain: "default_domain",
|
|
110
|
+
deviceType: "desktop",
|
|
111
|
+
isMobile: false,
|
|
112
|
+
isDesktop: true,
|
|
113
|
+
isTablet: false,
|
|
114
|
+
isTV: false,
|
|
115
|
+
appID: "default_app_id",
|
|
116
|
+
browserLang: navigator.language || "en",
|
|
117
|
+
payload: null,
|
|
118
|
+
promptCanShow: false,
|
|
119
|
+
reviewCanShow: false,
|
|
120
|
+
platform: navigator.platform,
|
|
121
|
+
browser: (function() {
|
|
122
|
+
let userAgent = navigator.userAgent;
|
|
123
|
+
if (userAgent.includes("YaBrowser")) return "Yandex";
|
|
124
|
+
if (userAgent.includes("OPR") || userAgent.includes("Opera")) return "Opera";
|
|
125
|
+
if (userAgent.includes("Firefox")) return "Firefox";
|
|
126
|
+
if (userAgent.includes("MSIE") || userAgent.includes("Trident")) return "IE";
|
|
127
|
+
if (userAgent.includes("Edge")) return "Edge";
|
|
128
|
+
if (userAgent.includes("Chrome")) return "Chrome";
|
|
129
|
+
if (userAgent.includes("Safari")) return "Safari";
|
|
130
|
+
return "Other";
|
|
131
|
+
})()
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
async function mergeFiles(parts, onProgress) {
|
|
135
|
+
let loaded = 0;
|
|
136
|
+
const total = parts.length;
|
|
137
|
+
const blobs = await Promise.all(parts.map(async (part, index) => {
|
|
138
|
+
const res = await fetch(part);
|
|
139
|
+
const blob = await res.blob();
|
|
140
|
+
loaded++;
|
|
141
|
+
if (onProgress) onProgress(loaded / total);
|
|
142
|
+
return blob;
|
|
143
|
+
}));
|
|
144
|
+
return URL.createObjectURL(new Blob(blobs));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
async function initializeGame() {
|
|
148
|
+
var buildUrl = "https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build";
|
|
149
|
+
var loaderUrl = buildUrl + "/Granny 2.loader.js";
|
|
150
|
+
|
|
151
|
+
var dataParts = [
|
|
152
|
+
"https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build/Granny 2_part1.data",
|
|
153
|
+
"https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build/Granny 2_part2.data",
|
|
154
|
+
"https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build/Granny 2_part3.data"
|
|
155
|
+
];
|
|
156
|
+
var wasmParts = [
|
|
157
|
+
"https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build/Granny 2_part1.wasm",
|
|
158
|
+
"https://cdn.jsdelivr.net/gh/forms-docs-slides-glgl/ngng@main/Build/Granny 2_part2.wasm"
|
|
159
|
+
];
|
|
160
|
+
|
|
161
|
+
loadingBar.style.display = "block";
|
|
162
|
+
|
|
163
|
+
var dataUrl = await mergeFiles(dataParts, progress => {
|
|
164
|
+
progressBarFull.style.width = (50 * progress) + "%";
|
|
165
|
+
});
|
|
166
|
+
var wasmUrl = await mergeFiles(wasmParts, progress => {
|
|
167
|
+
progressBarFull.style.width = (50 + 50 * progress) + "%";
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
var config = {
|
|
171
|
+
dataUrl: dataUrl,
|
|
172
|
+
frameworkUrl: buildUrl + "/Granny 2.frameworkx.js",
|
|
173
|
+
codeUrl: wasmUrl,
|
|
174
|
+
streamingAssetsUrl: "StreamingAssets",
|
|
175
|
+
companyName: "Awesome",
|
|
176
|
+
productName: "Granny 2",
|
|
177
|
+
productVersion: "1.0",
|
|
178
|
+
showBanner: unityShowBanner,
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
var script = document.createElement("script");
|
|
182
|
+
script.src = loaderUrl;
|
|
183
|
+
script.onload = () => {
|
|
184
|
+
createUnityInstance(canvas, config, (progress) => {
|
|
185
|
+
progressBarFull.style.width = (100 * progress) + "%";
|
|
186
|
+
}).then((unityInstance) => {
|
|
187
|
+
myGameInstance = unityInstance;
|
|
188
|
+
setTimeout(() => { loadingBar.style.display = "none"; }, 500);
|
|
189
|
+
// Oyun yüklendiğinde tıklama olayını ekle
|
|
190
|
+
canvas.addEventListener('pointerdown', showAdOnClick);
|
|
191
|
+
canvas.addEventListener('touchstart', showAdOnClick);
|
|
192
|
+
}).catch((message) => {
|
|
193
|
+
alert(message);
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
document.body.appendChild(script);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
initializeGame();
|
|
200
|
+
</script>
|
|
201
|
+
</body>
|
|
202
|
+
</html>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<html lang="en-us"><head>
|
|
2
|
+
<base href="https://cdn.jsdelivr.net/gh/gn-math/assets@main/200/">
|
|
3
|
+
<meta charset="utf-8">
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
|
6
|
+
<title>Time Shooter 2</title>
|
|
7
|
+
<link rel="stylesheet" href="TemplateData/style.css">
|
|
8
|
+
<link rel="icon" href="/assets/new%20logo.png">
|
|
9
|
+
|
|
10
|
+
</head>
|
|
11
|
+
|
|
12
|
+
<body class="dark">
|
|
13
|
+
<div id="unity-container" class="unity-desktop">
|
|
14
|
+
<canvas id="unity-canvas" width="1420" height="869" style="background: url("Build/TimeShooter2_GD.jpg") center center / cover; cursor: default;"></canvas>
|
|
15
|
+
</div>
|
|
16
|
+
<div id="loading-cover" style="display: none;">
|
|
17
|
+
<div id="unity-loading-bar">
|
|
18
|
+
<div id="unity-logo"><img src="logo.png"></div>
|
|
19
|
+
<div id="unity-progress-bar-empty" style="">
|
|
20
|
+
<div id="unity-progress-bar-full" style="width: 100%;"></div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="spinner" style="display: none;"></div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div id="unity-fullscreen-button" style="display: none;"></div>
|
|
26
|
+
<script>
|
|
27
|
+
const hideFullScreenButton = "1";
|
|
28
|
+
const buildUrl = "Build";
|
|
29
|
+
const loaderUrl = buildUrl + "/TimeShooter2_GD.loader.js";
|
|
30
|
+
const config = {
|
|
31
|
+
dataUrl: buildUrl + "/TimeShooter2_GD.data.unityweb",
|
|
32
|
+
frameworkUrl: buildUrl + "/TimeShooter2_GD.framework.js.unityweb",
|
|
33
|
+
codeUrl: buildUrl + "/TimeShooter2_GD.wasm.unityweb",
|
|
34
|
+
streamingAssetsUrl: "StreamingAssets",
|
|
35
|
+
companyName: "g80g",
|
|
36
|
+
productName: "Time Shooter 2",
|
|
37
|
+
productVersion: "0.1",
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const container = document.querySelector("#unity-container");
|
|
41
|
+
const canvas = document.querySelector("#unity-canvas");
|
|
42
|
+
const loadingCover = document.querySelector("#loading-cover");
|
|
43
|
+
const progressBarEmpty = document.querySelector("#unity-progress-bar-empty");
|
|
44
|
+
const progressBarFull = document.querySelector("#unity-progress-bar-full");
|
|
45
|
+
const fullscreenButton = document.querySelector("#unity-fullscreen-button");
|
|
46
|
+
const spinner = document.querySelector('.spinner');
|
|
47
|
+
|
|
48
|
+
const canFullscreen = (function() {
|
|
49
|
+
for (const key of [
|
|
50
|
+
'exitFullscreen',
|
|
51
|
+
'webkitExitFullscreen',
|
|
52
|
+
'webkitCancelFullScreen',
|
|
53
|
+
'mozCancelFullScreen',
|
|
54
|
+
'msExitFullscreen',
|
|
55
|
+
]) {
|
|
56
|
+
if (key in document) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}());
|
|
62
|
+
|
|
63
|
+
if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
|
|
64
|
+
container.className = "unity-mobile";
|
|
65
|
+
config.devicePixelRatio = 1;
|
|
66
|
+
}
|
|
67
|
+
canvas.style.background = "url('" + buildUrl + "/TimeShooter2_GD.jpg') center / cover";
|
|
68
|
+
loadingCover.style.display = "";
|
|
69
|
+
|
|
70
|
+
const script = document.createElement("script");
|
|
71
|
+
script.src = loaderUrl;
|
|
72
|
+
script.onload = () => {
|
|
73
|
+
createUnityInstance(canvas, config, (progress) => {
|
|
74
|
+
spinner.style.display = "none";
|
|
75
|
+
progressBarEmpty.style.display = "";
|
|
76
|
+
progressBarFull.style.width = `${100 * progress}%`;
|
|
77
|
+
}).then((unityInstance) => {
|
|
78
|
+
loadingCover.style.display = "none";
|
|
79
|
+
if (canFullscreen) {
|
|
80
|
+
if (!hideFullScreenButton) {
|
|
81
|
+
fullscreenButton.style.display = "";
|
|
82
|
+
}
|
|
83
|
+
fullscreenButton.onclick = () => {
|
|
84
|
+
unityInstance.SetFullscreen(1);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}).catch((message) => {
|
|
88
|
+
alert(message);
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
document.body.appendChild(script);
|
|
92
|
+
</script><script src="Build/TimeShooter2_GD.loader.js"></script>
|
|
93
|
+
|
|
94
|
+
|