mirror of
https://github.com/2009scape/2009scape.github.io.git
synced 2024-11-19 17:32:34 +01:00
4eda43f39b
* Fix broken links in update posts They were using relative links still which became invalid by moving directories. It's better to link stuff absolutely anyway. * Remove unused 'secure' registration and login pages * Remove obsolete parse.py * Use templates better to remove a ton of code duplication Where it made sense I converted HTML pages to Markdown to ease writing and discourage custom styling as much as possible. These pages can still use custom HTML when necessary, and some do, but they are easier to read and understand now.
681 lines
31 KiB
HTML
681 lines
31 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html lang="en" xmlns:IE>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
<meta http-equiv="Content-Language" content="en" />
|
|
<meta http-equiv="imagetoolbar" content="no" />
|
|
<meta http-equiv="PRAGMA" content="NO-CACHE" />
|
|
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
|
|
<meta
|
|
name="keywords"
|
|
content="Play Free Online Games, puzzle games, platform games, arcade games, shooter games, action games, java games, casual games, racing games, word games, retro games, classic games, browser games, strategy games, multiplayer games, arcanists, Jagex"
|
|
/>
|
|
<meta
|
|
name="description"
|
|
content="2009scape Funorb, free online browser-based Flash games ported to Javascript via Ruffle!"
|
|
/>
|
|
<meta
|
|
name="title"
|
|
content="FunOrb - Flash Games List - Bringing back Flash Games to Browsers with 2009scape and RuffleQ"
|
|
/>
|
|
<meta name="Author" content="2009scape.org" />
|
|
<meta name="Copyright" content="Copyright 2009scape.org" />
|
|
<meta name="ROBOTS" content="INDEX, FOLLOW" />
|
|
<meta name="classification" content="GENERAL" />
|
|
<meta name="rating" content="General" />
|
|
<meta name="Distribution" content="global" />
|
|
<meta name="Identifier-URL" content="https://2009scape.org" />
|
|
<link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico" />
|
|
<link rel="SHORTCUT ICON" href="/favicon.ico" />
|
|
<title>2009scape Funorb - Legacy Flash Archive</title>
|
|
<style type="text/css" media="screen">
|
|
/*\*/
|
|
@import url(./css/global-44.css);
|
|
/**/
|
|
</style>
|
|
<script
|
|
type="text/javascript"
|
|
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"
|
|
></script>
|
|
|
|
<style type="text/css" media="screen">
|
|
/*\*/
|
|
@import url("./css/gamelist-3.css");
|
|
/**/
|
|
</style>
|
|
<script type="text/javascript">
|
|
function ajax_debug(text) {
|
|
if (document.getElementById("javascript-debug-pane"))
|
|
document.getElementById("javascript-debug-pane").value += text + "\n";
|
|
}
|
|
function httpRequest() {
|
|
// Create the requestHandler
|
|
try {
|
|
this.requestHandler = new ActiveXObject("Msxml2.XMLHTTP");
|
|
} catch (e1) {
|
|
try {
|
|
this.requestHandler = new ActiveXObject("Microsoft.XMLHTTP");
|
|
} catch (e2) {
|
|
this.requestHandler = false;
|
|
}
|
|
}
|
|
if (!this.requestHandler && window.createRequest) {
|
|
try {
|
|
this.requestHandler = window.createRequest();
|
|
} catch (e) {
|
|
this.requestHandler = false;
|
|
}
|
|
}
|
|
if (!this.requestHandler && typeof XMLHttpRequest != "undefined") {
|
|
try {
|
|
this.requestHandler = new XMLHttpRequest();
|
|
} catch (e) {
|
|
this.requestHandler = false;
|
|
}
|
|
}
|
|
ajax_debug("New httpRequest created");
|
|
}
|
|
httpRequest.prototype.handleChange = function () {
|
|
//ajax_debug("ReadyState changed to " + this.requestHandler.readyState);
|
|
if (this.requestHandler.readyState == 4 && this.callback)
|
|
this.callback(this.requestHandler.responseText);
|
|
};
|
|
httpRequest.prototype.get = function (url, callback) {
|
|
ajax_debug(
|
|
"GET " +
|
|
url +
|
|
(callback == null ? " (no callback)" : " (with callback)")
|
|
);
|
|
var copy = this;
|
|
this.requestHandler.onreadystatechange = function () {
|
|
copy.handleChange();
|
|
};
|
|
if (callback) this.callback = callback;
|
|
else this.callback = null;
|
|
this.requestHandler.open("GET", url, true);
|
|
this.requestHandler.send(null);
|
|
};
|
|
function ajax_describe(what) {
|
|
a = "";
|
|
for (part in what)
|
|
try {
|
|
a += part + "=" + what[part] + "\n";
|
|
} catch (e) {}
|
|
return a;
|
|
}
|
|
function throwaway_request(url) {
|
|
var req = new httpRequest();
|
|
req.get(url);
|
|
}
|
|
function callback_request(url, callback) {
|
|
var req = new httpRequest();
|
|
req.get(url, callback);
|
|
}
|
|
</script>
|
|
<script type="text/javascript">
|
|
var current_game;
|
|
|
|
function getElementsByClass(tagName, tagClass) {
|
|
// get all elements of type tagName with class tagClass
|
|
var elements = document.getElementsByTagName(tagName);
|
|
var returnElements = [];
|
|
for (var i = 0; i < elements.length; i++) {
|
|
if (elements[i].classList.contains(tagClass)) {
|
|
returnElements.push(elements[i]);
|
|
}
|
|
}
|
|
return returnElements;
|
|
}
|
|
|
|
function updateFilters() {
|
|
var gameboxes = getElementsByClass("div", "gamelistentry");
|
|
var playerMode = document.getElementById("playerBox").value;
|
|
var genreMode = document.getElementById("genreBox").value;
|
|
var nogames = true;
|
|
for (i = 0; i < gameboxes.length; i++) {
|
|
if (
|
|
(playerMode == 1 &&
|
|
!gameboxes[i].classList.contains("singleplayer")) ||
|
|
(playerMode == 2 && !gameboxes[i].classList.contains("multiplayer"))
|
|
) {
|
|
gameboxes[i].style.display = "none";
|
|
} else if (genreMode == 0) {
|
|
// no genre selected
|
|
gameboxes[i].style.display = "inline";
|
|
nogames = false;
|
|
} else {
|
|
// check if gameboxes[i].classList.contains(genreMode)
|
|
if (gameboxes[i].classList.contains(genreMode)) {
|
|
gameboxes[i].style.display = "inline";
|
|
nogames = false;
|
|
} else {
|
|
gameboxes[i].style.display = "none";
|
|
}
|
|
}
|
|
}
|
|
var guide = document.getElementById("guide");
|
|
if (nogames) {
|
|
guide.innerHTML =
|
|
"Sorry, no games matched your search! Please try again to find a game.";
|
|
guide.style.color = "#f00";
|
|
} else {
|
|
guide.innerHTML =
|
|
"Please use the dropdown menus to select the type of game you would like to play.";
|
|
guide.style.color = "#DAD6D5";
|
|
}
|
|
}
|
|
|
|
function initList() {
|
|
document.getElementById("playerBox").value = 0;
|
|
document.getElementById("genreBox").value = 0;
|
|
}
|
|
|
|
window.onload = initList;
|
|
</script>
|
|
</head>
|
|
|
|
<body id="navGames">
|
|
<a name="top"></a>
|
|
<table id="wrapper">
|
|
<tbody>
|
|
<tr>
|
|
<td class="center bodyTheme">
|
|
<div class="bodyBackground">
|
|
<div class="bodyTheme">
|
|
<div id="container">
|
|
<div id="header">
|
|
<div id="navigation">
|
|
<div class="lft"></div>
|
|
<div class="rght"></div>
|
|
<div class="container">
|
|
<a id="logo" href="index.html"
|
|
><b>
|
|
<img
|
|
src="img/images/layout/logo_voidhunters.jpg"
|
|
alt="FunOrb"
|
|
/> </b
|
|
></a>
|
|
|
|
<div id="shell">
|
|
<div class="lft"></div>
|
|
<div class="rght"></div>
|
|
<div id="teleText">
|
|
<h1 id="welcomeText">
|
|
Welcome to FunOrb - The Best in Free Online Games
|
|
</h1>
|
|
<span id="teletext_inner">
|
|
While this website is a recreation of FunOrb, the
|
|
games hosted on it are old Flash archives. We hope
|
|
you enjoy your time here!</span
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="clear"></div>
|
|
|
|
<!-- Start of Menu -->
|
|
|
|
<ul class="menu">
|
|
<li class="top p1">
|
|
<a href="index.html" id="home" class="top_link"
|
|
><span>Home</span></a
|
|
>
|
|
</li>
|
|
<li class="top p2">
|
|
<a id="games" class="top_link" href="gamelist.html"
|
|
><span>Games</span><!--[if IE 7]><!--></a
|
|
><!--<![endif]-->
|
|
<!--[if lte IE 6]><table><tr><td><![endif]-->
|
|
|
|
<ul class="sub">
|
|
<li>
|
|
<a href="gamelist.html" class="fly">All Games</a>
|
|
</li>
|
|
<li>
|
|
<a href="gamelist.html" class="fly"
|
|
>Single-Player Games</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="gamelist.html" class="fly last"
|
|
>Multiplayer Games</a
|
|
>
|
|
</li>
|
|
</ul>
|
|
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
|
|
</li>
|
|
<li class="top p3">
|
|
<a id="account" class="top_link" href="/index.html"
|
|
><span>RuneScape</span><!--[if IE 7]><!--></a
|
|
><!--<![endif]-->
|
|
<!--[if lte IE 6]><table><tr><td><![endif]-->
|
|
|
|
<ul class="sub">
|
|
<li>
|
|
<a href="https://rsc.vet/" class="fly"
|
|
>2001Scape (OpenRSC)</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://rsc.vet/" class="fly"
|
|
>2003Scape (OpenRSC)</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://2004scape.org/" class="fly"
|
|
>2004Scape (Not yet released)</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://2006scape.org/" class="fly"
|
|
>2006Scape</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://2009scape.org/" class="fly"
|
|
>2009Scape</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://2011scape.com/" class="fly"
|
|
>2011Scape</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://darkan.org/" class="fly last"
|
|
>2012Scape (Darkan)</a
|
|
>
|
|
</li>
|
|
</ul>
|
|
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
|
|
</li>
|
|
<li class="top p4">
|
|
<a
|
|
id="forums"
|
|
class="top_link"
|
|
href="https://forum.2009scape.org/index.php"
|
|
><span>Community</span><!--[if IE 7]><!--></a
|
|
><!--<![endif]-->
|
|
<!--[if lte IE 6]><table><tr><td><![endif]-->
|
|
|
|
<ul class="sub">
|
|
<li>
|
|
<a
|
|
href="https://forum.2009scape.org/viewforum.php?f=26-website-games"
|
|
class="fly"
|
|
>Webgame Subforum</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a
|
|
href="https://forum.2009scape.org/viewtopic.php?t=472-post-your-game-requests-here-v2"
|
|
class="fly"
|
|
>Suggest a Game</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a
|
|
href="https://www.reddit.com/r/Funorb/"
|
|
class="fly"
|
|
>Funorb Reddit</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a
|
|
href="https://www.reddit.com/r/2009scape/"
|
|
class="fly"
|
|
>2009scape Reddit</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://gitlab.com/2009scape" class="fly"
|
|
>2009scape Github</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a href="https://gitlab.com/2009scape" class="fly"
|
|
>2009scape Gitlab</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a
|
|
href="https://discord.gg/YY7WSttN7H"
|
|
class="fly last"
|
|
>Discord</a
|
|
>
|
|
</li>
|
|
</ul>
|
|
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
|
|
</li>
|
|
<li class="top p5">
|
|
<a
|
|
id="help"
|
|
class="top_link"
|
|
href="https://forum.2009scape.org/viewforum.php?f=8-support"
|
|
><span>Help</span><!--[if IE 7]><!--></a
|
|
><!--<![endif]-->
|
|
<!--[if lte IE 6]><table><tr><td><![endif]-->
|
|
|
|
<ul class="sub">
|
|
<li>
|
|
<a
|
|
href="https://forum.2009scape.org/viewforum.php?f=8-support"
|
|
class="fly"
|
|
>Ask on the Forums</a
|
|
>
|
|
</li>
|
|
<li>
|
|
<a
|
|
href="https://github.com/2009scape/2009scape.github.io/issues"
|
|
class="fly last"
|
|
>Submit A Bug Report</a
|
|
>
|
|
</li>
|
|
</ul>
|
|
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
|
|
</li>
|
|
<li class="top p11">
|
|
<a id="empty" class="top_link"><span> </span></a>
|
|
</li>
|
|
<li class="top p10">
|
|
<a id="empty" class="top_link"><span> </span></a>
|
|
</li>
|
|
<li class="top p8">
|
|
<a
|
|
href="https://github.com/2009scape/2009scape.github.io"
|
|
id="signIn"
|
|
class="top_link"
|
|
><span>Source Code</span></a
|
|
>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- End of Menu -->
|
|
</div>
|
|
<br class="clear" />
|
|
</div>
|
|
<div id="page_content">
|
|
<a name="common_section"></a>
|
|
<div class="section" id="common_section">
|
|
<div class="sectionHeader">
|
|
<div class="sectionHeaderRight">
|
|
<div class="sectionTitle">Game List</div>
|
|
</div>
|
|
</div>
|
|
<div class="sectionBorder">
|
|
<div class="sectionBackground">
|
|
<div class="sectionContent">
|
|
<div class="sectionContainerContent">
|
|
<a name="gamelist"></a>
|
|
<div class="subsection" id="gamelist" style="">
|
|
<div class="subsectionHeader">
|
|
<div class="subsectionTitle">
|
|
<div id="guide">
|
|
Please use the dropdown menus to select
|
|
the type of game you would like to play.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="subsectionContent">
|
|
<form id="filterform" action="gamelist.html">
|
|
<label for="playerBox">Players:</label>
|
|
<select
|
|
onchange="updateFilters()"
|
|
name="playerBox"
|
|
id="playerBox"
|
|
>
|
|
<option value="0">All</option>
|
|
|
|
<option value="1">Single-Player</option>
|
|
|
|
<option value="2">Multiplayer</option>
|
|
</select>
|
|
<label for="genreBox">Genre:</label>
|
|
<select
|
|
onchange="updateFilters()"
|
|
name="genreBox"
|
|
id="genreBox"
|
|
>
|
|
<option value="0" selected="selected">
|
|
All
|
|
</option>
|
|
|
|
<option value="action">Action</option>
|
|
|
|
<option value="puzzle">Puzzle</option>
|
|
|
|
<option value="shooter">Shooters</option>
|
|
|
|
<option value="sport">Sport</option>
|
|
|
|
<option value="strategy">Strategy</option>
|
|
|
|
<option value="mmo">MMO</option>
|
|
|
|
<option value="other">Other</option>
|
|
</select>
|
|
<input
|
|
class="button"
|
|
id="filtersumbit"
|
|
type="submit"
|
|
value="Submit filters"
|
|
/>
|
|
<script type="text/javascript">
|
|
document.getElementById(
|
|
"filtersumbit"
|
|
).style.display = "none";
|
|
</script>
|
|
<span id="multigenre"
|
|
>Some games may belong to more than one
|
|
genre.</span
|
|
>
|
|
</form>
|
|
<div id="gamesBegin"></div>
|
|
<script>
|
|
fetch("data.json").then(
|
|
async (response) => {
|
|
const data = await response.json();
|
|
for (key in data) {
|
|
const gameData = data[key];
|
|
const gameListEntry =
|
|
document.createElement("div");
|
|
gameListEntry.classList.add(
|
|
"gamelistentry"
|
|
);
|
|
for (genre in gameData.genres) {
|
|
gameListEntry.classList.add(
|
|
gameData.genres[genre]
|
|
);
|
|
}
|
|
if (gameData.multiplayer) {
|
|
gameListEntry.classList.add(
|
|
"multiplayer"
|
|
);
|
|
} else {
|
|
gameListEntry.classList.add(
|
|
"singleplayer"
|
|
);
|
|
}
|
|
const gameImage =
|
|
document.createElement("div");
|
|
gameImage.classList.add("gameimage");
|
|
const gameImageLink =
|
|
document.createElement("a");
|
|
gameImageLink.href = `./games/${gameData.id}`;
|
|
const gameImageImg =
|
|
document.createElement("img");
|
|
gameImageImg.src = gameData.image;
|
|
gameImageImg.alt = `${gameData.name} image`;
|
|
gameImageLink.appendChild(
|
|
gameImageImg
|
|
);
|
|
gameImage.appendChild(gameImageLink);
|
|
gameListEntry.appendChild(gameImage);
|
|
const gameText =
|
|
document.createElement("div");
|
|
gameText.classList.add("gametext");
|
|
const gameTitle =
|
|
document.createElement("div");
|
|
gameTitle.classList.add("gametitle");
|
|
const gameTitleLink =
|
|
document.createElement("a");
|
|
gameTitleLink.href = `./games/${gameData.id}`;
|
|
gameTitleLink.innerText =
|
|
gameData.name;
|
|
gameTitle.appendChild(gameTitleLink);
|
|
gameText.appendChild(gameTitle);
|
|
const gameDesc =
|
|
document.createElement("div");
|
|
gameDesc.classList.add("gamedesc");
|
|
gameDesc.innerText =
|
|
gameData.description;
|
|
gameText.appendChild(gameDesc);
|
|
const gameGenre =
|
|
document.createElement("div");
|
|
gameGenre.classList.add("genre");
|
|
const gameGenreDiv =
|
|
document.createElement("div");
|
|
const gameGenreLink =
|
|
document.createElement("a");
|
|
gameGenreLink.href = "gamelist.html";
|
|
gameGenreLink.style.textTransform =
|
|
"capitalize";
|
|
gameGenreLink.innerText =
|
|
gameData.genres[0];
|
|
gameGenreDiv.appendChild(
|
|
gameGenreLink
|
|
);
|
|
gameGenre.appendChild(gameGenreDiv);
|
|
gameText.appendChild(gameGenre);
|
|
const gameLinks =
|
|
document.createElement("div");
|
|
gameLinks.classList.add("links");
|
|
const gameInfo =
|
|
document.createElement("a");
|
|
gameInfo.classList.add("buttonInfo");
|
|
gameInfo.href = "info.html";
|
|
gameLinks.appendChild(gameInfo);
|
|
const gamePlay =
|
|
document.createElement("a");
|
|
gamePlay.classList.add(
|
|
"buttonPlaySmall"
|
|
);
|
|
gamePlay.href = `./games/${gameData.id}`;
|
|
gamePlay.innerText = "Play";
|
|
gameLinks.appendChild(gamePlay);
|
|
gameText.appendChild(gameLinks);
|
|
gameListEntry.appendChild(gameText);
|
|
document
|
|
.getElementById("gamesBegin")
|
|
.appendChild(gameListEntry);
|
|
}
|
|
}
|
|
);
|
|
</script>
|
|
<!-- Example of what it looked like in pure HTML
|
|
<div class="gamelistentry">
|
|
<div class="gameimage">
|
|
<a onclick="suffixize(this)" href="arcanistsmulti/play.html">
|
|
<img src="img/images/game/arcanistsmulti/small.jpg" alt="" />
|
|
</a>
|
|
</div>
|
|
<div class="gametext">
|
|
<div class="gametitle">
|
|
<a onclick="suffixize(this)" href="arcanistsmulti/play.html">Arcanists</a>
|
|
</div>
|
|
<div class="gamedesc">
|
|
Magic and mayhem-filled multiplayer
|
|
matches.
|
|
</div>
|
|
<div class="genre">
|
|
<div>
|
|
<a href="gamelist.html">Strategy</a>
|
|
</div>
|
|
</div>
|
|
<div class="links">
|
|
<a class="buttonInfo" href="info.html"></a>
|
|
<a onclick="suffixize(this)" class="buttonPlaySmall"
|
|
href="arcanistsmulti/play.html">Play</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-->
|
|
<br class="clear" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sectionFooter">
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="copyRight">
|
|
<div id="languagefooter">
|
|
Quick Links:
|
|
<a href="https://forum.2009scape.org/"
|
|
><img
|
|
alt="Forums"
|
|
src="img/forum/icons/suggestions_comments.gif"
|
|
/>Forums</a
|
|
>
|
|
<a href="https://discord.gg/YY7WSttN7H"
|
|
><img
|
|
alt="Discord"
|
|
src="img/forum/icons/forum_recent_updates.gif"
|
|
/>Discord</a
|
|
>
|
|
<a href="https://2009scape.org/"
|
|
><img
|
|
alt="2009scape.org"
|
|
src="img/forum/icons/forum_jmod_clans.gif"
|
|
/>2009scape</a
|
|
>
|
|
<a href="./index.html"
|
|
><img
|
|
alt="Funorb home"
|
|
src="img/forum/icons/platform.gif"
|
|
/>Funorb</a
|
|
>
|
|
</div>
|
|
<div class="cr">
|
|
<p>
|
|
Copyright © 2023 under AGPL.
|
|
<strong
|
|
>2009Scape is not affiliated with RuneScape or Jagex
|
|
Ltd.</strong
|
|
><br />
|
|
</p>
|
|
<p>
|
|
Use of our Game's source code is subject to our
|
|
<a href="/site/terms"
|
|
>Terms & Conditions</a
|
|
>
|
|
and
|
|
<a href="/site/privacy">Privacy Policy</a
|
|
>.<br />
|
|
</p>
|
|
</div>
|
|
<div id="jagex">
|
|
<a href="/" target="_blank">
|
|
<img
|
|
src="/site/2009scape-resources/img/branding/logo-footer-dark.webp"
|
|
width="110"
|
|
height="33"
|
|
alt="2009Scape Logo"
|
|
/>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</body>
|
|
</html>
|