Open source

This commit is contained in:
Kaan Soral
2023-10-15 13:06:58 +03:00
parent 256ce800e7
commit 553b121f17
2633 changed files with 769945 additions and 454 deletions
BIN
View File
Binary file not shown.
+173
View File
@@ -0,0 +1,173 @@
<table style="width:100%; height: 100%; background-color: black; color: white; font-size: 16px; line-height: 24px; min-height: 400px" border="0" cellpadding="0" cellspacing="0">
<tr style="text-align: center">
<td style="vertical-align: middle; font-family: 'Palatino Linotype', 'Book Antiqua','Palatino','Times New Roman','Times';">
<div style="max-width: 600px; padding: 20px; display: inline-block; text-align: left;">
{% if purpose == "halloween" %}
<p style="color: #E86E2C">Hi Adventurer!</p>
<p>Wizard here, I develop the game, since the game launched, with your feedback, I've added Partying, Trade, Merchanting, PVP, The Bank, Item Abilities, Class Abilities, New Classes: Priest, Rogue, Ranger, and a lot more that I can't remember right now, so basically, the core dynamics of the game improved significantly.</p>
<p>Oragon in game, and Jayson in real life, joined the team to build new maps and improve the content of the game, he has been progressing really well, the new TOWN has been ready for weeks, but we are waiting a bit to re-launch the game with new content, anyway, enough talking.</p>
<p>Onto the subject of this email, the HALLOWEEN ZONE!!!</p>
<p>Check it out, it has some new halloween themed monsters, unique drops that will become really valuable after the zone closes down, and you can get a lot of candy drops from monsters that you can EXCHANGE for a random reward!</p>
<p>Anyway, while we work on the game, spend these couple of weeks in the Halloween zone, in November, I'm guessing the new content should be ready. I know you all want more adventure, I will do my best to give you more excitement.</p>
<p style="color: #E86E2C">
Yours sincerely,<br />
Wizard,<br />
<a style="color: #E86E2C" href="http://adventure.land"><span style="color: #E86E2C">http://adventure.land</span></a>
</p>
Ps. To use the preview ultimate class abilities, press R :]
{% elif purpose == "halloween2" %}
<p style="color: #E86E2C">Hi Adventurer!</p>
<p>What's new? We have a new map called Spooky Town, The crafting system has been brewing for some time, make sure to farm some Hawk's ;) Many of the promised and non-launched features will launch before Xmas.</p>
<p>Be really careful in Spooky Town, unlike our earlier maps and content, Spooky Town can be very hostile!</p>
<p>Our Halloween inspired event starts today and It will last 3 weeks!</p>
<p>Note: You can now play with 2 characters in normal servers and one character in a PVP server freely, going to renovate/ease the dynamics even further soon</p>
<p style="color: #E86E2C">
Yours sincerely,<br />
Wizard,<br />
<a style="color: #E86E2C" href="http://adventure.land"><span style="color: #E86E2C">http://adventure.land</span></a>
</p>
{% elif purpose == "xmas" %}
<p style="color: #C82F17">Hi Adventurer!</p>
<p>The new zone Winterland and the Xmas event is live! Xmas drops are global and you can exchange them in Winterland! This update brings quests, the first orb, actual capes and the first elixir, Eggnog! It's another exciting time for the game.</p>
<p>Additionally, Adventure Land is on Steam Greenlight! Would really appreciate your help: <a style="color: #33BF6D" href="http://steamcommunity.com/sharedfiles/filedetails/?id=821265543"><span style="color: #33BF6D">http://steamcommunity.com/sharedfiles/filedetails/?id=821265543</span></a></p>
<p style="color: #C82F17">
Happy New Year,<br />
Wizard,<br />
<a style="color: #33BF6D" href="http://adventure.land"><span style="color: #33BF6D">http://adventure.land</span></a>
</p>
Ps. Increased the ornament drops<br />
Ps 2. Join us on Discord if you haven't already :]
{% elif purpose == "xmas2" %}
<p style="color: #C82F17">Hi Adventurer!</p>
<p>Our Xmas event is live! Xmas drops are global and you can exchange them in Winterland</p>
<p>There are various new Xmas themed items, Ornament Staff, Candy Cane Sword, Angel Wings to name a few.</p>
<p>Make sure to visit our Xmas Tree outside the Bank to receive your Xmas buff!</p>
<p>We would love to see you among us,</p>
<p style="color: #C82F17">
Happy New Year,<br />
Wizard,<br />
<a style="color: #33BF6D" href="http://adventure.land"><span style="color: #33BF6D">http://adventure.land</span></a>
</p>
Ps. You can freely use 3 characters simultaneously now<br />
Ps 2. We're releasing on Steam before Xmas!<br />
Ps 3. Here's a <a style="color: #33BF6D" href="https://raw.githubusercontent.com/kaansoral/adventureland/master/examples/happy_holidays.js"><span style="color: #33BF6D">CODE</span></a> that automates the Xmas buff
Ps 4. There are some new stuff and new skills too!
<p style="color: gray; font-size: 12px"><a style="color: gray" href="http://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF</a></p>
{% elif purpose == "xmas3" %}
<p style="color: #C82F17">Hi Adventurer!</p>
<p>Our Holiday Season event is live! Holiday Season drops are global and you can exchange them in Winterland</p>
<p>If you haven't visited the game in a long time, a lot has changed, but the game is still the same! You can learn more about the event, Grinch, the Festive achievement, new items from the event information section in the top right corner.</p>
<p>Make sure to visit our Holiday Tree outside the Bank to receive your buff!</p>
<p>We would love to see you among us,</p>
<p style="color: #C82F17">
Happy New Year,<br />
Wizard,<br />
<a style="color: #33BF6D" href="https://adventure.land"><span style="color: #33BF6D">https://adventure.land</span></a>
</p>
<p style="color: gray; font-size: 12px"><a style="color: gray" href="https://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF (You have to login to make changes for the time being)</a></p>
{% elif purpose == "cvalentines" %}
<p style="color: #832212">Hi Adventurer!</p>
<p>Red Envelope's are global drops, they drop a new kind of item, the Dragon Armor.</p>
<p>The Love Goo is back too for the Valentine's Day.</p>
<p style="color: #832212">
Wish you wealth and prosperity,<br />
Wizard,<br />
<a style="color: #832212" href="http://adventure.land"><span style="color: #33BF6D">http://adventure.land</span></a>
</p>
<p style="color: gray; font-size: 12px"><a style="color: gray" href="http://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF</a></p>
{% elif purpose == "easter" %}
<p style="color: #DC6896">Hi Adventurer!</p>
<p>Our Easter Event is live! Chase the Wabbit, hunt eggs, craft them into a basket, get lucky with the golden egg, exchange them for rewards. It's an exciting time on Adventure Land!</p>
<p>Additionally, many players requested access to game's map editor, I decided to add a place called the "Resort" to the game, where players create their own maps for other players to visit, while the Resort is still in development, the public map editor is live! Here's your link: <a style="color: #E86E2C" href="http://adventure.land/map/{{user.k()}}_1"><span style="color: #E86E2C">http://adventure.land/map/{{user.k()}}_1</span></a></p>
<p style="color: #78CFEF">
Yours sincerely,<br />
Wizard,<br />
<a style="color: #78CFEF" href="http://adventure.land"><span style="color: #78CFEF">http://adventure.land</span></a>
</p>
Ps. There is a new NPC near the Goo's :]<br />
Ps 2. Just reply to this email if you have any questions
<p style="color: gray; font-size: 12px"><a style="color: gray" href="http://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF</a></p>
{% elif purpose == "easter2" %}
<p style="color: #DC6896">Hi Adventurer!</p>
<p>Our Easter Event is live! Chase the Wabbit, hunt eggs, craft them into a basket, get lucky with the golden egg, exchange them for rewards. It's an exciting time on Adventure Land!</p>
<p>Defeating the Wabbit grants you +100% Luck for 24 hours. There's a new Easter themed set too!</p>
<p style="color: #78CFEF">
Yours sincerely,<br />
Wizard,<br />
<a style="color: #78CFEF" href="https://adventure.land"><span style="color: #78CFEF">http://adventure.land</span></a>
</p>
Ps. There's a new interface, counts down minutes to the Wabbit spawn, announces Franky/Snowman engagements. Takes you to engagements with smart_move too!
<p style="color: gray; font-size: 12px"><a style="color: gray" href="http://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF</a></p>
{% elif purpose == "anniversary" %}
<p style="color: #41AFDE">Hi Adventurer!</p>
<p>Our Anniversary Event is live! It's a good time to continue playing Adventure Land. Our Anniversary Gifts are global drops. You can start opening (exchanging) the gifts nearing the end of the event.</p>
<p>As another suggestion, Farm Ice Roamer's, Big Pom Pom's, or Arctic Bee's for "Essence of Frost"'s. It's our first crafting material, pretty soon you will be able to craft new weapons with it. As another thing to look forward to, pretty soon, we are going to launch underground tunnels that will house new monsters/bosses with new drops, these tunnels will connect all of Adventure Land together!</p>
<p style="color: #ED2E2B">
Yours sincerely,<br />
Wizard,<br />
<a style="color: #ED2E2B" href="http://adventure.land"><span style="color: #ED2E2B">http://adventure.land</span></a>
</p>
<p style="color: gray; font-size: 12px"><a style="color: gray" href="http://adventure.land?section=email"><span style="color: gray">Turn Emails ON/OFF</a></p>
{% elif purpose == "halloween3" %}
<p style="color: #E86E2C">Hi Adventurer!</p>
<p>What's new? We have a new boss called Franky in Mansion - a cooperative boss, no one has defeated him yet!</p>
<p>There are a lot of small, recent changes, for example a new party system with individual party shares. Phoenix, Mr. Pumpkin, Mr. Green are now cooperative bosses too. So everyone can contribute to taking them down, and get a decent drop!</p>
<p>We're also getting close to a Steam release.</p>
<p style="color: #E86E2C">
Happy Halloween!<br />
Yours sincerely,<br />
Wizard,<br />
<a style="color: #E86E2C" href="http://adventure.land"><span style="color: #E86E2C">http://adventure.land</span></a>
</p>
{% endif %}
</div>
<!--<img src="http://adventure.land/img/therogue.png" />-->
</td>
</tr>
</table>
+34
View File
@@ -0,0 +1,34 @@
<div id="boosterguide" style="display:none">
<!-- <div class="gamebutton gamebutton-small" style="position: absolute; top: 5px; right: 5px">Updated December 16th</div> -->
<div style="font-size: 24px; color: #F4F4F4">
<div class="gamebutton gamebutton-large" style="border-color: #E56369">Boosters</div> <div class="mb5"></div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Activation and Usage</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> After pressing the "ACTIVATE" button. The booster item lasts 30 days. The booster item works from a character's inventory, it is not equipped or consumed. The effect can be observed from the "STATS" interface. The item can be transfered between characters or sold through merchanting.</div>
<!-- <div class="gamebutton gamebutton-small mr5 mt10 mb5">Increased Limits</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> While the free character limit is 1, characters with an active booster item are able to exceed this limit. Even with booster items, the upper limit for multi-characters is 3. So minimally, with 2 stones, you can play the game with a 3-character party.</div> -->
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Optimal Strategy</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Don't loot chests, keep the Booster in XP mode.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> While battling a boss, shift the Booster to Luck mode.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> When there are enough chests around, shift the Booster to Gold mode and loot.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> This way, you can benefit from all 3 bonuses with 1 stone.</div>
<div class="mr5 mt10 mb5" style="border-color: #32A3B0; font-size: 0px">
<span class='bitems'></span>
<span class='bitem1'></span>
<span class='bitem2'></span>
<span class='bitem3'></span>
<span class='bitem4'></span>
<span class='bitem5'></span>
<span class='bitemo'></span>
</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can combine boosters as you combine accessories. The combination succeeds 100%, however, if you use a "Primordial Essence" for the combination, It triggers a proc-chance routine.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You start with a 12% chance, as you succeed, your booster becomes a higher level booster, and the routine internally repeats with half the chance. So you can even receive an +5 booster, instead of an +1!</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5" style="border-color: #32A3B0">CODE</div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> You can use the activate and shift functions in CODE.</div>
<div class="gray mb5"><span class='label'>shift(0,'xpbooster')</span></div>
<div class="gray mb5"><span class='label'>shift(0,'luckbooster')</span></div>
<div class="gray mb5"><span class='label'>shift(0,'goldbooster')</span></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> Above calls be used to shift a booster in 0th inventory slot.</div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> Implementing the optimal strategy is left as an exercise to the reader.</div>
</div>
<div class="oncreate" onclick="booster_modal_logic();"></div>
</div>
+15
View File
@@ -0,0 +1,15 @@
<script>
var slots{{character.name}}={{character.info.slots|to_slots|safe}};
</script>
<div style='width: 600px; height: 216px; border: 5px solid gray; margin-bottom: 10px; margin-top: 10px; background: black'>
<span class='cskin' data-skin="{{character.info.skin}}" data-cx="{{character|get_cx}}" data-rip="{% if character.info.rip%}{{character.info.gravestone or 'gravestone'}}{%endif%}" style='float: left; margin-top: 20px; margin-left: 10px'></span>
<div style='display: inline-block; padding: 10px; text-align: left'>
<div><span style='color:gray'>Name:</span> {{character.info.name}}</div>
<div><span style='color:gray'>Class:</span> {{character.type|title}}</div>
<div><span style='color:gray'>Level:</span> {{character.level}}</div>
{% if character.online %}
<div><span style='color:green'>Online</span></div>
{% endif %}
</div>
<span class='slots' data-name="{{character.name}}" style='float: right'></span>
</div>
+1
View File
@@ -0,0 +1 @@
// Replaced during deployment
+46
View File
@@ -0,0 +1,46 @@
{%if user|is_user_newb %}// Hey there!
// This is CODE, lets you control your character with code.
// If you don't know how to code, don't worry, It's easy.
// Just set attack_mode to true and ENGAGE!
{%endif%}var attack_mode=false
setInterval(function(){
use_hp_or_mp();
loot();
if(!attack_mode || character.rip || is_moving(character)) return;
var target=get_targeted_monster();
if(!target)
{
target=get_nearest_monster({min_xp:100,max_att:120});
if(target) change_target(target);
else
{
set_message("No Monsters");
return;
}
}
if(!is_in_range(target))
{
move(
character.x+(target.x-character.x)/2,
character.y+(target.y-character.y)/2
);
// Walk half the distance
}
else if(can_attack(target))
{
set_message("Attacking");
attack(target);
}
},1000/4); // Loops every 1/4 seconds.
// Learn Javascript: https://www.codecademy.com/learn/introduction-to-javascript
// Write your own CODE: https://github.com/kaansoral/adventureland{% if not domain.electron%}
// NOTE: If the tab isn't focused, browsers slow down the game
// NOTE: Use the performance_trick() function as a workaround{%endif%}
+1
View File
@@ -0,0 +1 @@
// Replaced during deployment
+1
View File
@@ -0,0 +1 @@
// Replaced during deployment
+10
View File
@@ -0,0 +1,10 @@
<p>First of all, I want to thank all the players who played the game, provided feedback, endured, shared the joyous moments, kept pushing the game in the right direction.</p>
<p>I want to thank /r/mmorpg for being an open platform for mmorpg enthusiasts, I posted on /r/mmorpg at the end of 2016, and I've been improving and shaping the game with the small early adopter userbase ever since.</p>
<p>I want to thank Mark Jayson Lacandula, aka Json, I started working on the game in June 2016, launched very early around August 2016, he was one of the very first players who tried the game after seeing my tiny Adsense Ad. I didn't take him too seriously when he wanted to try my in-house map editor, but shared it with him anyway. After a very short time, he shared the first map he made, at that moment I knew I discovered a rare natural talent. He made all our maps, learned pixel art, extended our tilesets and sprites and kept exploring, he was and is always there, through the good times and the bad times. Game development is no easy task, contrary to popular belief, it's not rewarding, you rarely reap the benefits, up to this point, we didn't reap, but he never quit - so thank you Json. I hope after Adventure Land, you keep on working in the game industry. (Reader: If you are a talent hunter, do reach out to him)</p>
<p>I want to thank Ellian, our freelance pixel artist, for being the most professional freelancer I've ever worked with. No one is more reliable than you. Adventure Land started with an off-the-shelf 16x16 icon pack, with Ellian, we created a custom 20x20 iconset, with the community we dreamed, Ellian made. Workload-wise, Adventure Land is a small-fish, but through 2 years, he was always there at a moment's notice. To extend our iconset 5-6 items at a time :) If I could do it all over again, maybe for Adventure Land 2, I'd love to create all the tilesets and sprites from scratch with Ellian.</p>
<p>I want to thank all the developers, artists, composers, whose libraries, assets and work I used in Adventure Land.</p>
<p>And thank you for reading, and hopefully for playing Adventure Land :)</p>
<p>[10/12/18]</p>
<p>I want to also thank Steam for being such an awesome platform, 1+ years now, it has been driving new players in, no advertisements or marketing.</p>
<p>Another thanks to Google Cloud for providing us startup credits, it really eased my financial burdens during this development stage.</p>
<p>[06/03/20]</p>
+102
View File
@@ -0,0 +1,102 @@
<div id="gameguide" style="display:none">
{#<div class="gamebutton gamebutton-small" style="position: absolute; top: 5px; right: 5px">Updated April 27th</div>#}
<div style="font-size: 24px;">
<div class="gamebutton gamebutton-large">Key Mappings</div> <div class="mb5"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Mouse Left Click</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #4AB48E">Move</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #11A3B9">Target</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Mouse Right Click</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #B61B00">Attack</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #D6723D">Interact</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #0B86CB">Equip</div>
<div class="gamebutton gamebutton-small mr5 mt5" style="border-color: #6C2B65">Enter</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard 1</div>
<div class="gamebutton gamebutton-small mr5 mt5">Heal</div>
<div class="gamebutton gamebutton-small mr5 mt5">Use HP Potion</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard 2</div>
<div class="gamebutton gamebutton-small mr5 mt5">Mana</div>
<div class="gamebutton gamebutton-small mr5 mt5">Use MP Potion</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard I</div>
<div class="gamebutton gamebutton-small mr5 mt5">Inventory</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard C</div>
<div class="gamebutton gamebutton-small mr5 mt5">Target Your Character</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard F</div>
<div class="gamebutton gamebutton-small mr5 mt5">Activate Nearest NPC/Door</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard R</div>
<div class="gamebutton gamebutton-small mr5 mt5">Use Main Skill</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard N</div>
<div class="gamebutton gamebutton-small mr5 mt5">Show Names [Toggle]</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard \</div>
<div class="gamebutton gamebutton-small mr5 mt5">Toggle CODE</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-small mr5 mt5">Keyboard ESC</div>
<div class="gamebutton gamebutton-small mr5 mt5">Close</div>
<div class="gamebutton gamebutton-small mr5 mt5">Dismiss</div> <div class="mb2"></div>
<div class="gamebutton gamebutton-large mt15">Items | Inventory</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Right click to equip and un-equip items. You can drag items within your inventory. When a merchant npc is active, right click the item to see the item value / sell.</div>
<div class="gamebutton gamebutton-large mt15">Bank</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> The Bank is for storing items and gold. The Bank is shared across all your characters!</div>
<div class="gamebutton gamebutton-large mt15">Targeting | Top Left Corner</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Left click to target monsters and players. Press the character name between HP and MP bars to target yourself. You can see the properties/items of the targeted entity. You can only target one entity at a time.</div>
<div class="gamebutton gamebutton-large mt15">Upgrades</div> <div class="mb5"></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> Find the NPC that offers upgrades and compounds in New Town, nearby, there is an NPC that sells scrolls. Weapons, Armors start at +0 and go all the way up to +10. +10 is almost impossible. Upgrade items by using upgrade scrolls, there are 3 grades of items, Normal, High and Rare, at first, you will only need the "Upgrade Scroll" that costs 1,000 gold.</div>
<div class="gamebutton gamebutton-large mt15">Compounds</div> <div class="mb5"></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> For accessories, reaching a higher level is more challenging, for an +1 accessory, you need 3x +0 accessories of the same kind, and so on.</div>
<div class="gray mb"><span style="color: #F4F4F4">&gt;</span> You can use "Primordial Shard"s increase the chances of success of both upgrades and compounds, the essence of the shard is absorbed inside the item.</div>
<div class="gamebutton gamebutton-large mt15">Communities | Links</div> <div class="mb5"></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> <a href="https://discord.gg/44yUVeU" class="eexternal" target="_blank" style="color: #469ECF; text-decoration: none">Discord:</a> Discord is our most active community, ideal for questions of all kinds and to provide feedback, suggest new ideas. The coding channels are also quite useful.</div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> <a href="https://github.com/kaansoral/adventureland/blob/master/runner_functions.js" class="eexternal" target="_blank" style="color: #469ECF; text-decoration: none">Github:</a> Our Official Github houses the "runner_functions.js" - which includes all the base CODE functions</div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> <a href="https://www.reddit.com/r/adventureland" class="eexternal" target="_blank" style="color: #469ECF; text-decoration: none">Reddit:</a> You can use Reddit to share things, Discord is more practical for asking quick questions</div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> <a href="https://docs.google.com/document/d/18xG9NaO1mm7cSx7wMIQEtrkGzFHo6WrEE_TZcbeAFnA/edit" class="eexternal" target="_blank" style="color: #469ECF; text-decoration: none">Unofficial Starter Guide</a></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> <a href="https://nexusnull.github.io/adventureland/global.html" class="eexternal" target="_blank" style="color: #469ECF; text-decoration: none">NexusNull's Unofficial But Awesome Documentation</a></div>
<div class="gamebutton gamebutton-large mt15">CODE</div> <div class="mb5"></div>
<div class="gray mb5"><span style="color: #F4F4F4">&gt;</span> You don't have to be a coder to use the CODE, you don't have to use the CODE to play Adventure Land, but CODE is the highlight of our game, so use it, try to learn a bit of coding too, it can be very fun and it's very useful</div>
<div class="gamebutton gamebutton-large mt15">Attributes</div> <div class="mb5"></div>
<div class="gray mb"><span style="color: #F4F4F4">Strength:</span> Increases HP, Armor. <!--Increases the attack of warriors.--></div>
<div class="gray mb"><span style="color: #F4F4F4">Intelligence:</span> Increases MP, Resistance. <!--Increases the attack of mages.--></div>
<div class="gray mb"><span style="color: #F4F4F4">Dexterity:</span> Increases the attack speed, run speed.</div>
<div class="gray mb"><span style="color: #F4F4F4">Vitality:</span> Increases HP proportional to level.</div>
<div class="gray mb"><span style="color: #F4F4F4">Armor:</span> 100 Armor reduces incoming physical damage by 10%.</div>
<div class="gray mb"><span style="color: #F4F4F4">Resistance:</span> 100 Resistance reduces incoming magical damage by 10%.</div>
<div class="gray mb"><span style="color: #F4F4F4">Damage:</span> Proportionally increases the attack.</div>
<div class="gray mb"><span style="color: #F4F4F4">Range:</span> Increases the attack range.</div>
<div class="gray mb"><span style="color: #F4F4F4">Speed:</span> Increases the run speed.</div>
<div class="gray mb"><span style="color: #F4F4F4">Stat:</span> Becomes a main attribute with a scroll.</div>
<div class="gray mb"><span style="color: #F4F4F4">Evasion:</span> Evade physical attacks.</div>
<div class="gray mb"><span style="color: #F4F4F4">Reflection:</span> Reflect magical attacks back.</div>
<div class="gray mb"><span style="color: #F4F4F4">A.Piercing:</span> Pierce through armor.</div>
<div class="gray mb"><span style="color: #F4F4F4">R.Piercing:</span> Pierce through resistance.</div>
<div class="gray mb"><span style="color: #F4F4F4">Damage Return:</span> Returns melee damage.</div>
<div class="gamebutton gamebutton-large mt15">Abilities</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Abilities are currently in development. You can use existing abilities via their hotkeys or through CODE.</div>
<div class="gray mb"><span style="color: #F4F4F4">Mage's Mana Burst:</span> Converts approximately half of the mana to damage.</div>
<div class="gray mb"><span style="color: #F4F4F4">Warrior's Charge:</span> Increases speed for approximately 3 seconds.</div>
<div class="gray mb"><span style="color: #F4F4F4">Warrior's Taunt:</span> Taunts the enemy with a higher range [Q]</div>
<div class="gray mb"><span style="color: #F4F4F4">Rogue's Invis:</span> Goes invisible and deals 1.25X sneak damage</div>
<div class="gray mb"><span style="color: #F4F4F4">Rogue's Poisonous Touch:</span> Poison reduces healing and attack speed</div>
<div class="gray mb"><span style="color: #F4F4F4">Ranger's Supershot:</span> Has an extreme range, deals 1.5X damage</div>
<div class="gray mb"><span style="color: #F4F4F4">Priest's Curse:</span> Slows down the enemy, amplifies damage taken, reduces attack</div>
<div class="gamebutton gamebutton-large mt15">Limits</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can play the game with 3 characters and one merchant simultaneously. These limits are IP based too. So if you are in the same house with multiple players, you'll need to share the allocation. Working on a system to bypass IP limitations for Steam and Mac clients.</div>
<div class="gamebutton gamebutton-large mt15">Servers</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can connect to any server you want. Your character is uniform across all servers. If you suddenly get disconnected, It's likely because the server is updating. You can usually re-connect in 2-3 minutes.</div>
<div class="gamebutton gamebutton-large mt15">Chat Commands</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> /list</div>
<div class="gamebutton gamebutton-large mt15">Rules</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> No swearing, bullying, or offensive nicknames.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Each person is allowed to have a single account.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Abuse of the "Limits" is strictly forbidden.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> It's forbidden to use CODE for violating the game.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> It's forbidden to automate the game with anything other than the CODE.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> It's forbidden to buy or sell items, accounts with real money.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Violation of the above rules might lead to deletion, minimum punishment is jail, usually it's a very temporary ban.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> If anyone is breaking the rules, just email a screenshot of the violation to hello@adventure.land</div>
<div class="gamebutton gamebutton-large mt15">Notes / Tips</div> <div class="mb5"></div>
{#<div class="gray"><span style="color: #F4F4F4">&gt;</span> Adventure Land is best played on Chrome.</div>#}
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Chat isn't global, so stay close during a conversation.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> There are rewards for good suggestions or unknown bugs.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Be careful in PVP, It's not for everyone.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Please, please be kind to each other.</div>
<div class="gamebutton gamebutton-large mt15">About the Game</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> The game is in active development, there are improvements almost every single day. Over time there will be new maps, new dynamics, new challenges, new items, new players. Hopefully it will all be very exciting. Feel free to email me at: hello@adventure.land</div>
</div>
</div>
+30
View File
@@ -0,0 +1,30 @@
<div id="hardcoreguide" style="display:none">
<div class="gamebutton gamebutton-small" style="position: absolute; top: 5px; right: 5px">Updated July 12th</div>
<div style="font-size: 24px; color: #F4F4F4">
<div class="gamebutton gamebutton-large"><span style="color: #C01626">HARDCORE</spam> Mode</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> No Premium Shop</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Pure Skills + Collaboration</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Chaotic, Unbalanced, Untested</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Start From Level 1</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Only 1 Character Per IP/Player</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Server Reset = Progress Lost</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Extreme Gold, Luck, XP</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Warped Drop Rates</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Buy, Sell, Upgrade, Exchange Anywhere!</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVE Death: Lose 1 level</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVP Death: Lose 3 levels to the opponent</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVP Death: Drop a slot item with ~10% chance</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVP Death: Drop an inventory item with ~20% chance</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVP Death: Lose an inventory item with ~5% chance</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> PVP Death: Lose 80% of your gold</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Priest Heal's: Nerfed to 60%</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Trade: Receive 480K Gold Every 64 Seconds in the Beach Office</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Beach Office: Transport to anywhere</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You have to be within 10 levels to engage in PVP</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Tavern: Glitched</div>
<div class="gamebutton gamebutton-large mt15">Take Screenshots</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Hardcore Mode is experimental, there is no long term progress saving yet, no leaderboards, so if you want to save your progress, show off your achievements, do take screenshots!</div>
<div class="gamebutton gamebutton-large mt15">Provide Feedback</div> <div class="mb5"></div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Please send an email to <span style="color: #F4F4F4">hello@adventure.land</span> about your experience in this new mode. I would like to hear about how you view Adventure Land, and whether this new Hardcore mode improves the game for you. When completed, the Hardcore mode will likely be a weekend-only thing. It will start on Friday, end on Sunday. I think there might be a lot of players who find loopholes etc. I've certainly improved some routines to prevent some scenarios. For example, depending on the feedback, I might add an NPC that tells where a certain player is for 10,000,000 gold etc., or, add 1-2 hours of peace time every 3-4 hours.</div>
</div>
</div>
+51
View File
@@ -0,0 +1,51 @@
<div id="keymapguide" style="display:none">
<div style="font-size: 24px; color: #F4F4F4">
<div class="gamebutton gamebutton-large" style="border-color: #32A3B0">Skillbar and Keymap</div> <div class="mb5"></div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Skillbar and Configuration</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Skillbar is the small vertical bar you see on the right side of the screen, above the game logs. You can configure your skillbar through Code. Changes you make are saved and persisted for your Character, on your system locally.</div>
<div class="mr5 mt10 mb5" style="border-color: #32A3B0; font-size: 0px">
<span class='skb1'></span>
<span class='skb2'></span>
<span class='skb3'></span>
<span class='skb4'></span>
<span class='skb5'></span>
<span class='skbX'></span>
<span class='skbY'></span>
</div>
<div class="gray mb5 mt5"><span class='label'>set_skillbar("1","2","3","4","5","X","Y");</span></div>
<div class="gray mb5"><span class='label'>set_skillbar(["1","2","3","4","5","X","Y"]);</span></div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Keymap and Configuration</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Keymap is for mapping keypresses to skills, abilities and actions. Similar to the skillbar, you can change your keymap from Code, and the changes are persisted locally.</div>
<div class="gray mb5 mt10"><span class='label'>map_key("1","use_hp");</span></div>
<div class="gray mb5"><span class='label'>map_key("2","snippet","say('Woohoo')");</span></div>
<div class="gray mb5"><span class='label'>map_key("X","supershot");</span></div>
<div class="gray mb5"><span class='label'>unmap_key("X");</span></div>
<div class="gray mb5"><span class='label clickable' onclick="show_snippet('reset_mappings()')">reset_mappings();</span> &lt;- DEFAULTS THINGS</div>
<div class="gray mb5 mt5 clickable" onclick="show_json(G.skills)"><span class='label'>show_json(G.skills);</span> &lt;- CLICK TO RUN!</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Mappable Keys</div>
<div class="mr5 mt10 mb5 skbkeys">
</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5 clickable" onclick="show_snippet()">Snippets</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Snippets are small code pieces that are either evaluated inside your own Code, or on a blank runner if your Code isn't running.</div>
<div class="gray mb5 mt10 clickable" onclick="show_snippet(snip_wl_code)"><span class='label'>map_key("Q","snippet","smart_move('winterland')");</span> &lt;- CLICK TO TEST!</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Mapping Items</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Items can be mapped manually to keys, or by dragging and dropping an item to a key slot. Pressing that key, activates, uses or equips the item.</div>
<div class="gray mb5 mt10"><span class='label'>map_key("SPACE",{"name":"stand0","type":"item"});</span></div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Map New Keys</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can map to unmapped keys by including the `keycode` argument in your mappings. You can learn keycodes from: <a href="http://keycode.info" class='eexternal' target="_blank" style="color: #469ECF; text-decoration: none">keycode.info</a></div>
<div class="gray mb5 mt10"><span class='label'>map_key("DOT",{"name":"pure_eval","code":"ping()",keycode:190});</span></div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5 clickable" onclick="show_snippet()">Advanced Usages</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can override game's default keymappings, add new functionalities to keypresses using the "pure_eval" skill, unlike "snippet", "pure_eval" runs Javascript code inside the game window, so be careful using "pure_eval". You can change any rendered icon to one of your choosing. Ps. There's a list of icons in: G.skills.snippet.skins</div>
<div class="gray mb5 mt10 clickable" onclick="show_snippet(snip_esc_code)"><span class='label'>//Example code that overrides ESC</span></div>
</div>
<div class="oncreate" onclick="keymap_modal_logic();"></div>
</div>
+155
View File
@@ -0,0 +1,155 @@
<div id="pagewrapper">
<div id="pagewrapped" class="loginorselection hidewithmodals">
{% if domain.purchase_mode and not domain.electron %}
<div id="loginbuttons">
<div class="whiteheader mb4"><a class='cancela' href="https://store.steampowered.com/app/777150/Adventure_Land__The_Code_MMORPG/" target="_blank">&gt; Purchase on Steam <span style='color: #85C76B'>[Live!]</span></a></div>
<div class="whiteheader mb4"><a class='cancela' href="https://itunes.apple.com/app/adventure-land-code-mmorpg/id1442098247?mt=12" target="_blank">&gt; Purchase on Mac App Store <span style='color: #85C76B'>[Live!]</span></a></div>
{% if domain.is_sdk %}
<div class="whiteheader mb4 clickable" onclick="$('#loginbuttons').hide(); $('#edusignup').show(); on_resize()">&gt; Signup <span style='color: #2FA6C8'>[Development Use]</span></div>
{% endif %}
<!--
<div class="whiteheader mb4 clickable" onclick="$('#loginbuttons').hide(); $('#edusignup').show(); on_resize()">&gt; Free Signup <span style='color: #2FA6C8'>[Educational Use]</span></div>
-->
<div class="whiteheader mb4 clickable" onclick="$('#loginbuttons').hide(); $('#loginlogin').show(); on_resize()">&gt; Login to the Game</div>
<div class="whiteheader mb4">Note: <span class='gray'>Signup requires a purchased copy</span></div>
</div>
<div id="edusignup" style="display:none">
<div style='border-bottom: 5px solid gray; margin-left: -10px; margin-right: -10px; font-size: 24px; padding: 16px; text-align: left; margin-bottom: 5px; background-color: #E5E5E5; color: #010805; margin-top: -10px; text-shadow:none'>
<p>Adventure Land aims to generate revenue from digital copy sales, while regular MMORPG's ban automators, we embrace them, and go further to let anyone have 4 characters online, 24/7, freely. We have a lot of costs, so if you can afford it, please consider purchasing the game.</p>
<p>However, if you are going to use the game with the intention of learning how to Code, improve yourself, you can freely signup, and play to your hearts desire, without any restrictions! :]</p>
<p>Have fun - and thank you for joining!</p>
<!--
I really wanted to let anyone play freely, but the realities proved it impossible, even if the condition is to learn coding, it makes the game free to play in the eyes of a regular player, a high percentage of early players expected something extra after they purchased the game, I predicted a larger backlash once the game is fully released, and had to disable this feature [02/01/19]
-->
</div>
<div class="whiteheader mb4">&gt; Email</div>
<input class="selectioninput" id="email1" type="text"></input>
<div class="whiteheader mt5 mb4">&gt; Password</div>
<input class="selectioninput" id="password1" type="password" onkeydown="if(event.keyCode==13) $('.subutton')[0].onclick()"></input>
<div class="textbutton mt5 subutton" onclick="if(bc(this)) return; api_call_l('signup_or_login',{email:$('#email1').val(),password:$('#password1').val(),only_signup:true},{disable:$(this)})">&gt; Signup</div>
<div class="textbutton mt5" onclick="$('#edusignup').hide(); $('#loginbuttons').show(); on_resize()">&lt; Back</div>
</div>
<div id="loginlogin" style="display:none">
<div class="whiteheader mb4">&gt; Email</div>
<input class="selectioninput" id="email2" type="text"></input>
<div class="whiteheader mt5 mb4">&gt; Password</div>
<input class="selectioninput" id="password2" type="password" onkeydown="if(event.keyCode==13) $('.lbutton')[0].onclick()"></input>
<div class="textbutton mt5 lbutton" onclick="if(bc(this)) return; api_call_l('signup_or_login',{email:$('#email2').val(),password:$('#password2').val(),only_login:true},{disable:$(this)})">&gt; Login</div>
<div class="textbutton mt5 passwordui hiddenx" onclick="if(bc(this)) return; api_call_l('password_reminder',{email:$('#email2').val()},{disable:$(this)})">&gt; Forgot My Password</div>
<div class="textbutton mt5" onclick="$('#loginlogin').hide(); $('#loginbuttons').show(); on_resize()">&lt; Back</div>
</div>
{% elif 0 %}
<input type="text" class="input block" id="email" placeholder="Email" />
<input type="text" class="input block" id="password" placeholder="Password" />
<button class="button block" onclick="if(bc(this)) return; api_call_l('signup_or_login',{email:$('#email').val(),password:$('#password').val()},{disable:$(this)})">Start Playing!</button>
{% else %}
<div class="whiteheader mb4">&gt; Email</div>
<input class="selectioninput" id="email" type="text"></input>
<div class="whiteheader mt5 mb4">&gt; Password</div>
<input class="selectioninput" id="password" type="password" onkeydown="if(event.keyCode==13) $('.slbutton')[0].onclick()"></input>
<div class="textbutton mt5 slbutton" onclick="if(bc(this)) return; api_call_l('signup_or_login',{email:$('#email').val(),password:$('#password').val()},{disable:$(this)})">&gt; Signup or Login</div>
<div class="textbutton mt5 passwordui hidden" onclick="if(bc(this)) return; api_call_l('password_reminder',{email:$('#email').val()},{disable:$(this)})">&gt; Forgot My Password</div>
{% endif %}
</div>
</div>
<div class="gamebutton menu" style="position: fixed; top: 0px; right: 80px; z-index: 201; text-align: center; border-color: green">{{total}} Online!</div>
<div id="progressui" class="gamebutton menu loading" style="position: fixed; top: 0px; right: 0px; z-index: 201; width: 40px; text-align: center" onclick='loader_click();'>0%</div>
<div id="topleftcorner" style="z-index: 201">
{% set buttons="essentials"%} {% include "htmls/contents/section_buttons.html" %}
{% set buttons="musts"%} {% include "htmls/contents/section_buttons.html" %}
{% set buttons="music"%} {% include "htmls/contents/section_buttons.html" %}
</div>
{% if domain.electron %}
{% include "htmls/contents/selection_features.html" %}
{% else %}
<div id="features" style="font-size: 24px; max-width: 320px" class="loginfeatures">
<div style='border-bottom: 2px dashed gray; color: #E7E7E7; display: inline-block; margin-bottom: 6px'>About Adventure Land</div>
<div class="infop">
Adventure Land is an experimental Indie <span class='mw'>MMORPG</span>. Anyone can <span class='mw'>CODE</span> up to <span class='mw'>4!</span> characters, let Javascript do the grinding, while you do something productive!
</div>
<div class="infop" style="margin-top: 12px">
Gameplay has many aspects to it. It's <span class='mw'>NON-P2W</span>. You can <span class='mw'>UPGRADE</span> weapons, <span class='mw'>COMBINE</span> accessories, <span class='mw'>EXCHANGE</span> rewards, <span class='mw'>CRAFT</span> items, farm <span class='mw'>GOLD</span>.
</div>
<div class="infop" style="margin-top: 12px">
There are <span class='mw'>PVP</span> maps with increased LUCK, GOLD, XP.
</div>
<div class="infop" style="margin-top: 12px">
The ECONOMY is completely <span class='mw'>PEER-TO-PEER</span>. You can keep your <span class='mw'>MERCHANT</span> open 24/7 to <span class='mw'>SELL</span> or <span class='mw'>BUY</span> stuff.
</div>
<div class="infop" style="margin-top: 12px">
There are a lot of planned features like <span class='mw'>GUILDS</span> and <span class='mw'>DAILY EVENTS</span>, they are entirely shaped by our community and their feedback!
</div>
{#<div class="infop" style="margin-top: 12px">
Ps. If you can't afford to buy the game, you can signup for free
</div>
<div style='border-bottom: 2px dashed gray; color: #E7E7E7; display: inline-block; margin-bottom: 6px'>About Adventure Land</div>
<div class="infot">The Journey</div>
<div class="infop">
I'm an indie developer building the game I've always wanted to build. Really enjoy growing our community, getting feedback, adding things to the game every single day!
</div>
<div class="infot">Gameplay</div>
<div class="infop">
I guess you can call the game a casual mmorpg, just left click to move and right click to attack. Yet there's a lot more to it. You can UPGRADE weapons, COMBINE accessories, CODE your character, TRADE, PARTY, LOOT, PVP!
</div>
<div class="infot">Join Us</div>
<div class="infop">
The game launched in ~August, 2016, and we barely even scratched the surface of possibilities. Please join us and email me at hello<span>@</span>adventure.land if you have any issues/suggestions or just to say hello :]
The game launched in August and we barely even scratched the surface of possibilities. Please join our small community and help shape the game
</div>
<div class="infot">Email, for anything: hello@adventure.land</div>
<div class="infot">No Level Cap</div>
<div class="infop">
Exponential levelling
</div>
<div class="infot">Random Drops, Bosses</div>
<div class="infop">
Full of opportunities
</div>
<div class="infot">Upgradeable Items</div>
<div class="infop">
Weapons, armors can be upgraded, accessories can be combined together to create stronger versions
</div>
<div class="infot">P2P Economy</div>
<div class="infop">
Planned, a vibrant marketplace for people to trade
</div>
<div class="infot">Codeable Characters</div>
<div class="infop">
Code your character to do stuff while you are sleeping or doing something else :)
</div>
<div class="infot">PVP For Bounties</div>
<div class="infop">
Planned, a chaotic PVP Map with lots of opportunities for those who can survive it
</div>
<div class="infot">Always Free to Play</div>
<div class="infop">
The game will be full of opportunities, those who don't have the resources to support the game will always be able to enjoy the game to the fullest with equal opportunuties
</div>
<div class="infot">SUPER Early Access</div>
<div class="infop">
Literally just deployed the game to test how the network fares
</div>
<ul>
<li>No Level Cap</li>
<li>Random Drops</li>
<li>Random Bosses</li>
<li>Upgradeable Items</li>
<li>P2P Economy</li>
<li>Codeable Characters</li>
<li>Endless Possibilities</li>
<li>PVP For Bounties</li>
<li>But Mostly PVE</li>
<!--<li>No Quests'n Shit Tho</li>-->
<li>SUPER Early Access</li>
<li>Still In Development</li>
<li>Always Free to Play</li>
</ul>#}
</div>
{% endif %}
<script>
setTimeout(function(){ $("#features").html($("#features").html()) },0); /* otherwise the list entities overflow [28/07/16] */
setTimeout(function(){ $("#features").html($("#features").html()) },200);
setTimeout(function(){ $("#features").html($("#features").html()) },1000);
setTimeout(function(){ $("#features").html($("#features").html()) },2000);
setTimeout(function(){ $("#features").html($("#features").html()) },3000);
</script>
+24
View File
@@ -0,0 +1,24 @@
<div id="opensourceinfo" style="display:none">
<!-- <div class="gamebutton gamebutton-small" style="position: absolute; top: 5px; right: 5px">Updated December 16th</div> -->
<div style="font-size: 24px; color: #F4F4F4">
<div class="gamebutton gamebutton-large" style="border-color: #60BBD9">Going Open Source</div> <div class="mb5"></div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Why?</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Several reasons. The main reason is to become a boilerplate for prospective game developers to easily test and execute their ideas. To let players see what's behind the hood and learn from the experience.</div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">The Dream</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> If you read /r/MMORPG on Reddit, the discussions have a clear pattern. There are groups of players with different needs and expectations. Due to the hefty time/energy/money requirements of developing an MMORPG, developers usually can't meet their needs. There's no opportunity to just try new things. Most MMORPG's hit once and miss. Smart ones seem to crowdfund.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> By almost eliminating the entry barrier to MMORPG development, I hope to give birth to the PUBG of MMORPG's. Where indie developers start by modifying Adventure Land's Code to implement their ideas, unique dynamics and mechanics. Create a working formula. Get investment, make money, crowdfund, develop their idea from scratch and come up with an MMORPG that works.</div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Some Examples</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Adventure Land has a Hardcore mode, the drops/XP rewards are astronomical, the PVP is brutal. Hardcore servers run only for a day. The resulting gameplay is more engaging, less afk and extremely competitive. I sometimes wonder whether the actual gameplay should be like this too. But, as it is, Adventure Land is at a point of no return too. After a certain point in an MMORPG's life, it's impossible to make such drastic changes.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>As a roguelike enthusiast. I always dream of adding roguelike elements to the game. Maybe a dungeon, or a repeatable quest with randomised steps and outcomes. Considering all the effort thats needed to make it meaningful and balanced, these ideas never develop. But starting from scratch, and investing 2-3 months, it's very possible to actually develop a unique and online roguelike game. For example a roguelike that's played with a party of 4.</div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">The Technology</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>Adventure Land has been developed completely from scratch, even the map editor is a custom in-house one. The backend uses App Engine with Python, it's completely auto scalable. The code is simple and robust. Characters are saved, synced and loaded from the backend. All account operations are on the backend.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>For game servers, Node, Javascript and Socket.io is used. Everything is custom and as simple as possible. Being Javascript, the coding style might not be everyone's cup of tea, yet, anyone with a slight knowledge of Javascript can easily understand what's what and quickly find stuff. For example, the code to buy things is on the `socket.on('buy',function(){})` handler.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>Using Node and Javascript has enormous advantages, since there is no parallelism, coding is easy and there are no loopholes produced from parallel execution scenarios. However, it also caps the size of a single server. With a game like Adventure Land, it can become a feature rather than a bug. As servers can just grow in number such as Europas I, II, III and so on. It would be possible to extend Adventure Land to use multiple servers for a single game world, however, there's no reason to do so, it's best to keep things as simple as possible.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>On the Client side of things, Adventure Land uses PIXI to draw things, no game engine is used and everything is as low level as possible. Animating characters, rendered weapons and attack animations is a dream for Adventure Land 2. However if a group of developers invested 3-4 months onto the current codebase, it would truly enhance the gameplay and make the resulting product much more monetizable.</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>The game clients use Electron and each has unique integrations. I have plans to develop a Hardcore/Short-lived mobile version too. All of these and the documentations around the game clients will be open sourced too.</div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Assets, Data and Licensing</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span>Adventure Land has unique/in-house assets, purchased assets and derivatives. When the game is open sourced, it will also be possible to download and copy all the game data, for example the maps. Developers will also have the opportunity to release the game as a sub-entity of Adventure Land. For example, Adventure Land: The Reckoning. This way, if a developer doesn't have the resources to track/purchase all the assets individually, it will be possible to release the game commercially as it will technically be owned by Adventure Land. However it's best to just start from scratch and create everything in-house if possible. It's something I dreamed of but couldn't achieve.</div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Commercial, Light Licensing</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> While the details aren't set yet, the game will be open sourced with a custom commercial license. It will be free to use for non-commercial usages. For example to create a local instance/server at home. For commercial derivatives, there will be an expectancy to receive 12.5% from gross income. However, if the game succeeds and gets written from scratch (like pubg growing out of arma) the commercial license won't apply to the new entity. I believe 12.5% is a fair % that developers would be willing to pay. I also plan to promote each derivative from the main game. (It's a dream at this point, hoping it becomes a reality)</div>
</div>
</div>
+41
View File
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>{{domain.name}}</title>
<link rel="apple-touch-icon-precomposed" href="/images/favicon.png" /> <!-- 152 -->
<link rel="icon" href="/images/favicon.png" /> <!-- 32 -->
<!--[if IE]><link rel="shortcut icon" href="/images/favicon.png"><![endif]--> <!-- .ico -->
<meta name="msapplication-TileImage" content="/images/favicon.png"> <!-- 144 -->
<script src="/js/jquery/jquery-{{domain.jquery_version}}.min.js"{%if domain.electron%} onload="if(typeof require!=='undefined') window.$=window.jQuery=module.exports;"{%endif%}></script>
<script src="/js/common_functions.js?v={{domain.v}}"></script>
<script src="/js/functions.js?v={{domain.v}}"></script>
<script src="/js/game.js?v={{domain.v}}"></script>
<link href="/css/common.css?v={{domain.v}}" rel="stylesheet" type="text/css"/>
<link href="/css/index.css?v={{domain.v}}" rel="stylesheet" type="text/css"/>
<style>
html{
background: black;
color: white;
font-family: pixel;
font-size: 32px;
}
</style>
<script>
inside="message";
</script>
</head>
<body>
<table width=100% height="100%">
<tr><td align="center">
<div class="whiteheader mb2">&gt; New Password</div>
<input class="selectioninput newpass1" type="password"></input>
<div class="whiteheader mb2">&gt; Repeat New Password</div>
<input class="selectioninput newpass2" type="password"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('reset_password',{id:'{{id}}',key:'{{key}}',newpass1:$('.newpass1').val(),newpass2:$('.newpass2').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Set</div>
<div id="message" style="margin: 10px 10px 10px 10px"></div>
</td></tr>
</table>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
<div style='width: 600px; display: inline-block' class="{%if inside=='payments'%}modal imodal{%endif%}">
<div style="/*margin-top: 5px; */text-align: left">
<div class="inline-block vtop">
<div class="gamebutton block mb5" onclick="$('.pui').hide(); $('.mainpui').show(); set_pamount(10)">$10 <span style='color: gray'>for</span><br />800 <span style='/*color: #6ECF28*/'>SHELLS</span>
</div>
<div class="gamebutton block mb5" onclick="$('.pui').hide(); $('.mainpui').show(); set_pamount(25)">$25 <span style='color: gray'>[<span style='color: #2E6DB4'>+8%</span>]</span><br />2,160 <span style='/*color: #6ECF28*/'>SHELLS</span></div> {# 2000 #}
<div class="gamebutton block mb5" onclick="$('.pui').hide(); $('.mainpui').show(); set_pamount(100)">$100 <span style='color: gray'>[<span style='color: #F3C300'>+16%</span>]</span><br />9,280 <span style='/*color: #6ECF28*/'>SHELLS</span></div> {# 8000 #}
<div class="gamebutton block mb5" onclick="$('.pui').hide(); $('.mainpui').show(); set_pamount(500)">$500 <span style='color: gray'>[<span style='color: #DF0024'>+24%</span>]</span><br />49,600 <span style='/*color: #6ECF28*/'>SHELLS</span></div> {# 40000 #}
<div class="gamebutton block mb5" onclick="$('.pui').hide(); $('.aboutpui').show()" style="color: #5DAC40/*#43C7D1*/">About<br />SHELLS</div>
{#<div class="gamebutton block" onclick="$('.pui').hide(); $('.alternativepui').show()">Alternative<br />Payments</div>#}
{% if 0 and user %}
<div class="gamebutton block" onclick="setTimeout(function(){ if(inside!='payments')hide_modal(); show_sroffers() },20);" style="color: #D1769E">
{#Alternative<br />OPTIONS#}
<span style="color: #009cde">Paypal</span><br />
<span style="color: #E49514">Mobile</span><br />
<span style="color: #52D2E6">Rewards</span><br />
</div>
{% endif %}
</div>
<div class="inline-block vtop" style="width: 392px">
<div style="padding: 20px; background: black; font-size: 32px; border: 4px solid gray; width: 388px" class="pui mainpui">
{#<div>Credit Card</div>#}
<div>Owner: <input type="text" class="ccinput stripe-name" placeholder="Name Surname" style="width: 280px" autocomplete="cc-name"/></div>
<div>Number: <input type="text" class="ccinput stripe-number" placeholder="4444 4444 4444 4444" onchange="$(this).payment('formatCardNumber');" style="width: 270px" autocomplete="cc-number"/></div>
<div>
<div class="inline-block vtop">
Expiry: <input type="text" class="ccinput stripe-month" placeholder="08" style="width: 30px" autocomplete="cc-exp-month"/> {{'/'}} <input type="text" class="ccinput ccsmall stripe-year" placeholder="18" style="width: 30px" autocomplete="cc-exp-year"/>
</div>
<div class="inline-block vtop" style="margin-left: 10px">
CVC: <input type="text" class="ccinput ccsmall2 stripe-cvc" placeholder="123" style="width: 40px" autocomplete="cc-csc"/>
</div>
</div>
<div class="ccpostcode hidden">
Postcode: <input type="text" class="ccinput" placeholder="Optional" style="width: 200px"/>
</div>
{% if not user %}
<div style="border: 4px solid gray; text-align: center; padding: 6px 0px 6px 0px; margin-top: 12px" class="pbutton">
Please Login First!
</div>
{% else %}
<div style="border: 4px solid gray; text-align: center; padding: 6px 0px 6px 0px; margin-top: 12px" class="clickable pbutton" onclick="stripe_pay()">
Pay $25
</div>
{% endif %}
</div>
<div class="pui mainpui" style="border: 4px solid gray; padding: 12px; background: black; font-size: 24px; color: gray; text-align: left; margin-top: 5px; width: 404px">
Adventure Land uses <a href="https://stripe.com/about" target="_blank" style="color: #CFCFCF; text-decoration: none" onclick="stpr(event)">Stripe</a> to handle payments, the leader in payments processing. Your credit card information never touches Adventure Land's servers.
<div id="plog"></div>
</div>
{% if extra_shells %}
<div class="pui mainpui" style="border: 4px solid gray; padding: 12px; background: black; font-size: 36px; color: gray; text-align: left; margin-top: 5px; width: 404px; color: white">
<span style='color: #B2161C'>Holiday Season Bonus:</span> <span style='color: #008E3A'>{{extra_shells}}%</span> Extra Shells with Every Purchase!
{#<span style='color: #7C89A7'>Cyber Days Bonus:</span> <span style='color: #008E3A'>{{extra_shells}}%</span> Extra Shells with Every Purchase!#}
</div>
{% endif %}
<div class="hidden pui aboutpui" style="border: 4px solid gray; padding: 12px; background: black; font-size: 24px; color: white; text-align: left; width: 400px">
<div class="mb5">
SHELLS are Adventure Land's rare, purchasable currency. Unlike many other games, you can find SHELLS in-game too. They drop from gems and monsters. They are rare.
</div>
<div class="mb5">
This creates equal opportunities for all players. You can only purchase non-essentials with SHELLS, like cosmetics and extra bank storage, to ensure the game is not pay-to-win.
</div>
<div style="color: #BDD8B0;">
You can support Adventure Land's development by buying SHELLS and hopefully enjoy the game more, faster, to your hearts desire!
</div>
</div>
<div style="padding: 20px; background: black; font-size: 32px; border: 4px solid gray; width: 388px; text-align: center"
class="pui alternativepui clickable hidden" onclick="show_ppayments()">
Alternative Payments
</div>
<div style="padding: 20px; background: black; font-size: 32px; border: 4px solid gray; width: 388px; margin-top: 5px; text-align: center"
class="pui alternativepui clickable hidden" onclick="show_poffers()">
Offers
</div>
<div class="pui alternativepui hidden"
style="border: 4px solid gray; padding: 12px; background: black; font-size: 24px; color: gray; text-align: left; margin-top: 5px; width: 404px">
Adventure Land uses <a href="https://www.paymentwall.com/en/about-us" target="_blank" style="color: #CFCFCF; text-decoration: none">Paymentwall</a> for alternative payments and offers. There are various localised payment methods, and offers to receive free SHELLS.
</div>
</div>
</div>
</div>
+21
View File
@@ -0,0 +1,21 @@
<p>This privacy policy explains how your data is used and stored by Adventure Land</p>
<p>Adventure Land uses Cookies for authentication and settings, cookies are stored between HTTP and HTTPS</p>
<p>Due to popular demand, and technical challenges, game can be played over both HTTP and HTTPS, over HTTP, if you are on a compromised network, your data will be exposed. If you are playing the game from Steam or Mac App Store, the game uses HTTPS by default</p>
<p>Adventure Land uses Google Analytics for statistics</p>
<p>Adventure Land uses Cloudflare for security and filtering, almost all HTTP/S data goes through Cloudflare, so they potentially access every data you provide</p>
<p>Adventure Land uses your location data to determine which game server is broadly closer to you</p>
<p>Adventure Land stores your encrypted password, characters, character names, data you provide, your IP (used extensively for the character limits logic), character actions and there are various logs and backups of these data, there's currently no system to delete these logs and backups, but as cloud storage is extremely expensive, I personally want to start deleting them in the future, but couldn't find the time yet</p>
<p>Adventure Land doesn't have a reliable way to send emails, so it's a players responsibility to keep themselves up-to-date on this privacy policy, but the main theme will never change, Adventure Land is a game with no intention of misusing a players data</p>
<p>I'm an indie developer doing my best to protect my players and meet their needs, but we live in a chaotic world, If you are a regular player reading this, please be careful, while I do everything to protect you and your data (especially more after everything I've experienced since I launched the game, which made me grow more as a developer and a human, at least I hope), nothing is safe on the Internet, always approach things with this fact in mind</p>
<p>For any questions: hello@adventure.land</p>
<p>Last Edit [04/12/18]</p>
+35
View File
@@ -0,0 +1,35 @@
<!-- <a class="gamebutton" href="/logs" target="_blank">Development Diary</a> -->
{% if buttons=="essentials" %}
<a class="gamebutton" href="/docs" style="border-color: #d6d135" target="_blank">Docs</a>
<a class="gamebutton eexternal" href="https://discord.gg/44yUVeU" target="_blank" style="border-color: #32A3B0">Discord!</a>
{% endif %}
{% if buttons=="musts" %}
{# <div class="gamebutton" onclick="btc(event); show_terms()">Terms</div>
<div class="gamebutton" onclick="btc(event); show_privacy()">Privacy</div>#}
<div class="gamebutton" onclick="btc(event); show_ttp()" style="border-color: #D46E33">Terms+</div>
{% endif %}
{% if buttons=="social" %}
<a class="gamebutton eexternal" href="https://github.com/kaansoral/adventureland" target="_blank">Github</a>
<a class="gamebutton eexternal" href="https://www.reddit.com/r/adventureland" target="_blank">Reddit</a>
{% endif %}
{% if 0 %}
<a class="gamebutton" href="https://www.facebook.com/adventurelandmmo" target="_blank">Facebook</a>
<a class="gamebutton" href="https://twitter.com/CodeMMORPG" target="_blank">Twitter</a>
{% endif %}
{% if buttons=="music" %}
{% if servers %}
<span id='observeui' class='hidden'><div class="gamebutton" onclick="btc(event); show_commander()" style='border-color:#E13758'>Command</div></span>
<div class="gamebutton" onclick="btc(event); show_settings()">Settings</div>
{#
<div class="gamebutton musicoffi {%if domain.music_on %}hidden{% endif %}" onclick="btc(event); sound_on()">Music: <span style='color: gray'>OFF</span></div>
<div class="gamebutton musiconi {%if not domain.music_on %}hidden{% endif %}" onclick="btc(event); sound_off()">Music: <span style='color: #539A3F'>ON</span></div>
<div class="gamebutton sfxoffi {% if domain.sfx_on %}hidden{% endif %}"
onclick="btc(event); sfx_on();">SFX: <span style='color: gray'>OFF</span></div>
<div class="gamebutton sfxoni {% if not domain.sfx_on %}hidden{% endif %}"
onclick="btc(event); sfx_off();">SFX: <span style='color: #539A3F'>ON</span></div>
#}
{% else %}
<a class="gamebutton" href="/" style="border-color: #46B465">Reload</a>
{% endif %}
{% endif %}
+254
View File
@@ -0,0 +1,254 @@
<div id="pagewrapper">
<script>var chartype="",gendertype="",thelooks=0;</script>
<div id="pagewrapped" class="loginorselection hidewithmodals">
<div class="menu">
{% include "htmls/contents/selection_characters.html"%}
</div>
<div class="newcharacter onback-hide hidden">
{#<div class="whiteheader mb4 clickable" onclick="$('.charactername').focus()" style='margin-left: -6px'>&gt; Name</div>#}
<div style='margin-top: 10px'></div>
<input class="selectioninput charactername mb5 mt5" type="text" placeholder='Character Name'></input>
<div style='margin-top: 5px'></div>
{#<div class="whiteheader mt5" style='margin-left: -6px'>&gt; Class</div>#}
<div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='warrior'; load_class_info()" style="color: #F07F2F">Warrior</div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='paladin'; load_class_info()" style="color: #A3B4B9">Paladin</div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='mage'; load_class_info()" style="color: #3E6EED">Mage</div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='priest'; load_class_info()" style="color: #EB4D82">Priest</div>
</div>
<div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='rogue'; load_class_info()" style="color: #44B75C">Rogue</div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='ranger'; load_class_info()" style="color: #8A512B">Ranger</div>
<div class="textbutton chartype" onclick="pcs(); $('.chartype').removeClass('selected'); $(this).addClass('selected'); chartype='merchant'; load_class_info()" style="color: #7F7F7F">Merchant</div>
</div>
{#
<div class="whiteheader mt5" style='margin-left: -6px'>&gt; Gender</div>
<div>
<div class="textbutton gendertype inline-block" onclick="pcs(); $('.gendertype').removeClass('selected'); $(this).addClass('selected'); gendertype='male'; load_class_info()" style="color: #43A1C6">Male</div>
{% if "unknown" in domain.gender_types %}
<div class="textbutton gendertype inline-block" onclick="pcs(); $('.gendertype').removeClass('selected'); $(this).addClass('selected'); gendertype='unknown';">Unknown</div>
{% endif %}
<div class="textbutton gendertype inline-block" onclick="pcs(); $('.gendertype').removeClass('selected'); $(this).addClass('selected'); gendertype='female'; load_class_info()" style="color: #C06C9B">Female</div>
</div>
#}
{#<div class="whiteheader mt5" style='margin-left: -6px'>&gt; Looks</div>#}
<div style='margin-top: 5px'></div>
<div>
<div class="textbutton lookstype inline-block" onclick="pcs(); $('.lookstype').removeClass('selected'); $(this).addClass('selected'); thelooks=0; load_class_info()" style="color: #DF0024"><span style='color: gray'>Opt.</span> A</div>
<div class="textbutton lookstype inline-block" onclick="pcs(); $('.lookstype').removeClass('selected'); $(this).addClass('selected'); thelooks=1; load_class_info()" style="color: #F3C300"><span style='color: gray'>Opt.</span> B</div>
{#<div style='margin-top: -5px'></div>#}
<div class="textbutton lookstype inline-block" onclick="pcs(); $('.lookstype').removeClass('selected'); $(this).addClass('selected'); thelooks=2; load_class_info()" style="color: #00AC9F"><span style='color: gray'>Opt.</span> C</div>
<div class="textbutton lookstype inline-block" onclick="pcs(); $('.lookstype').removeClass('selected'); $(this).addClass('selected'); thelooks=3; load_class_info()" style="color: #2E6DB4"><span style='color: gray'>Opt.</span> D</div>
</div>
<div style='margin-top: 10px'></div>
<div class="gamebutton mt5" style="width: 64px; padding: 5px 25px 5px 25px" onclick="if(bc(this)) return; api_call('create_character',{name:$('.charactername').val(),char:chartype,look:thelooks},{disable:$(this)});">Create</div>
{% if user.info.slots <= user.info.characters|length %}
<div style="color: #5DAC40; margin-top: 4px">[Cost: 200 SHELLS]</div>
<div style="color: gray">You've reached the free limit of 8 characters</div>
{% endif %}
<div style='margin-top: 10px'></div>
</div>
<div class="accountui onback-hide hidden">
<div class="textbutton mt5" style='color:#75B38C'>{{user.info.email}}</div>
{% if not user.info.dont_send_emails %}<div class="textbutton mt5" onclick="if(bc(this)) return; api_call('settings',{setting:'email',value:''})"><span style="color:#50BFE1">@</span> Emails: ON</div>
{%else %}<div class="textbutton mt5" onclick="if(bc(this)) return; api_call('settings',{setting:'email',value:'1'})"><span style="color:#50BFE1">@</span> Emails: OFF</div>
{% endif %}
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.accountui').hide(); $('.passwordui').show(); resize();"><span style="color:#578ADF">&gt;</span> Change Password</div>
<div class="textbutton mt5" onclick="if(bc(this)) return; $('.accountui').hide(); $('.emailcui').show(); resize();"><span style="color:#DF6B81">*</span> {% if not user.info.verified%}Re-Verify Email{%else%}Change Email{% endif %}</div>
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; api_call('logout_everywhere',{},{success:function(){window.location=window.location;},disable:$(this)})"><span style="color:#DE813A">&gt;</span> Logout Everywhere</div>
<div style="color: gray; margin-top: 6px">Ps. You can always email hello@adventure.land for account issues</div>
</div>
<div class="emailcui onback-hide hidden">
<div class="whiteheader mb2">&gt; New Email</div>
<input class="selectioninput nemail" value="{{user.info.email}}"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('change_email',{email:$('.nemail').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Change Email</div>
<div style="color: gray; margin-top: 6px">Ps. Changing the email re-sends the verification email</div>
<div style="color: gray; margin-top: 6px">Ps 2. You can only do this operation once every 18 hours</div>
<div style="color: #C87282; margin-top: 6px">Ps 3. Please check the spam folder and mark them as not spam :]</div>
</div>
<div class="passwordui onback-hide hidden">
<div class="whiteheader mb2">&gt; Existing Password</div>
<input class="selectioninput epass" type="password"></input>
<div class="whiteheader mb2">&gt; New Password</div>
<input class="selectioninput newpass1" type="password"></input>
<div class="whiteheader mb2">&gt; Repeat New Password</div>
<input class="selectioninput newpass2" type="password"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('change_password',{epass:$('.epass').val(),newpass1:$('.newpass1').val(),newpass2:$('.newpass2').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Change</div>
</div>
<div class="sortui onback-hide hidden">
<div class="whiteheader mb2">&gt; List</div>
<textarea class="selectioninput scharacters" style='width: 320px; height: 160px'>{% for c in user.info.characters%}{{c.name}}{%if not loop.last%},{%endif%}{%endfor%}</textarea>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('sort_characters',{characters:$('.scharacters').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Sort Characters</div>
<div style="color: gray; margin-top: 6px">Ps. The name of your first character becomes your player name</div>
</div>
<div class="renameui onback-hide hidden">
<div class="whiteheader mb2">&gt; Character Name</div>
<input class="selectioninput renamen" type="text"></input>
<div class="whiteheader mb2">&gt; New Name</div>
<input class="selectioninput rnnamen" type="text"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('quote_name',{name:$('.renamen').val(),nname:$('.rnnamen').val()},{disable:$(this)});">
<span style="color:green">$</span> Quote</div>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('rename_character',{name:$('.renamen').val(),nname:$('.rnnamen').val()},{disable:$(this)});">
<span style="color:gray">%</span> Rename Character</div>
<div style="color: red; margin-top: 6px">Warning: <span style="color:gray">Use the Quote function to learn about the cost</span></div>
</div>
<div class="transferui onback-hide hidden">
<div class="whiteheader mb2">&gt; Character Name</div>
<input class="selectioninput tcname"></input>
<div class="whiteheader mb2">&gt; Receiver Owner ID</div>
<input class="selectioninput tcowner"></input>
<div class="whiteheader mb2">&gt; Receiver Transfer Auth</div>
<input class="selectioninput tcauth"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('transfer_character',{name:$('.tcname').val(),id:$('.tcowner').val(),auth:$('.tcauth').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Transfer</div>
<div style="color: #5DAC40; margin-top: 4px">[Cost: 500 SHELLS]</div>
<div style="color: gray; margin-top: 6px" class='yesselect'>Owner ID: {{user.k()}}</div>
<div style="color: gray; margin-top: 6px" class='yesselect'>Transfer Auth: {% if user.info.transfer_auth %}{{user.info.transfer_auth}}{%else%}[Sort Once to Receive]{%endif%}</div>
</div>
<div class="editui onback-hide hidden">
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.editui').hide(); $('.freeui').show(); resize();"><span style="color:#47BC75">&amp;</span> Stop Code</div>
<div class="textbutton mt5" onclick="if(bc(this)) return; $('.editui').hide(); $('.sortui').show(); resize();"><span style="color:orange">#</span> Sort Characters{# <span style="color: gray">[Soon]</span>#}</div>
<div class="textbutton mt5" onclick="if(bc(this)) return; $('.editui').hide(); $('.renameui').show(); resize();"><span style="color:#8C8C95">%</span> Rename a Character</div>
<div class="textbutton mt5" onclick="if(bc(this)) return; $('.editui').hide(); $('.transferui').show(); resize();"><span style="color:green">$</span> Transfer a Character</div>
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.editui').hide(); $('.deleteui').show(); resize();"><span style="color:red">X</span> Delete a Character</div>
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.editui').hide(); $('.privacyui').show(); resize();"><span style="color:#63ABE4">*</span> Toggle Privacy</div>
</div>
{% if user.info.map_editor %}
<div class="mapui onback-hide hidden">
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.mapui').hide(); $('.cmapui').show(); resize();"><span style="color:#47BC75">&amp;</span> Copy a Map</div>
<div class="textbutton mt5 mb5" onclick="if(bc(this)) return; $('.mapui').hide(); $('.dmapui').show(); resize();"><span style="color:red">X</span> Delete a Map</div>
</div>
<div class="cmapui onback-hide hidden">
<div class="whiteheader mb2">&gt; From</div>
<input class="selectioninput cmapf" type="text" value="jayson_ALMap2"></input>
<div class="whiteheader mb2">&gt; To</div>
<input class="selectioninput cmapt" type="text" value="test"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('copy_map',{f:$('.cmapf').val(),t:$('.cmapt').val()},{disable:$(this)});">
<span style="color:green">&gt;</span> Copy</div>
</div>
<div class="dmapui onback-hide hidden">
<div class="whiteheader mb2">&gt; Map Name</div>
<input class="selectioninput dmapn" type="text" value="jayson_ALMap2"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('delete_map',{n:$('.dmapn').val()},{disable:$(this)});">
<span style="color:red">&gt;</span> Delete</div>
</div>
{% endif %}
<div class="recruitui onback-hide hidden">
<div style="font-size: 24px; margin-top: 5px">
<div style='/*text-align:left;*/ margin-bottom:10px; padding: 10px'>
<div style='margin-bottom:5px'><span style="color:orange">#</span> When new players sign up after visiting one of your links, they are internally registered as your recruits.</div>
<span style="color:green">$</span> You'll receive 10% from all the SHELLS they find or purchase, and 200 SHELLS when they create their first character!
</div>
<div class="yesselect">
<div style="margin-bottom: 3px; color: #CA645D;"><a href="{{domain.pref_url}}/player/{{user.name}}" target="_blank" class="cancela">{{domain.pref_url}}/player/{{user.name}}</a></div>
{% for c in characters %}
<div style="margin-bottom: 3px; color: #7CD06C;"><a href="{{domain.pref_url}}/character/{{c.info.name}}" target="_blank" class="cancela">{{domain.pref_url}}/character/{{c.info.name}}</a></div>
{% endfor %}
<div style="margin-bottom: 3px; color: #80ADCC;"><a href="{{domain.pref_url}}/r/{{user.k()}}" target="_blank" class="cancela">{{domain.pref_url}}/r/{{user.k()}}</a></div>
<div style="color: gray; font-size: 16px; color: #B7C6D5; width: 240px; margin-top: 10px; margin-bottom: 8px; display: inline-block">Ps. Trackers are both IP and Cookie based. Works when a players visits your link on Web, and Sign Up on Steam or Mac.</div>
</div>
<div style="color: gray">You've recruited {{user.info.referred or 0}} so far.</div>
<div style="color: gray">Received {{user.info.rcash or 0}} SHELLS!</div>
<div class='mt5'><span style="color:#4A8CF5">%</span> If you've invited a friend through word of mouth, you can get the bonus manually by sending an email to hello@adventure.land with your friend's account email and character name within 2 weeks!</div>
</div>
</div>
<div class="privacyui onback-hide hidden">
<div class="whiteheader mb2">&gt; Name</div>
<input class="selectioninput pcharactername" type="text"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; api_call('edit_character',{operation:'toggle_privacy',name:$('.pcharactername').val()},{disable:$(this)});">
<span style="color:#63ABE4">*</span> Toggle</div>
</div>
<div class="deleteui onback-hide hidden">
<div class="whiteheader mb2">&gt; Name</div>
<input class="selectioninput dcharactername" type="text"></input>
<div class="whiteheader mb2">&gt; Repeat</div>
<input class="selectioninput dcharactername2" type="text"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; if($('.dcharactername').val()==$('.dcharactername2').val()) api_call('delete_character',{name:$('.dcharactername').val()},{disable:$(this)});">
<span style="color:red">X</span> Delete</div>
</div>
<div class="freeui onback-hide hidden">
<div class="whiteheader mb2">&gt; Name</div>
<input class="selectioninput fcharactername" type="text"></input>
<div class="textbutton mt5"
onclick="if(bc(this)) return; free_character($('.fcharactername').val());">
<span style="color:red">&amp;</span> Stop Code</div>
<div style="color: gray; font-size: 24px">
Note: If you introduced an infinite loop in your Code, it will freeze your character the moment it runs. This routine just stops a characters code. For more deeper issues, email hello@adventure.land
</div>
</div>
</div>
</div>
<div id="topui" class="menu">
<div class="largeborder" style="padding-left: 15px; padding-right: 15px;">
<div class="textbutton" onclick="pcs(); $('.menu').hide(); $('.accountui').show(); resize()">&gt; Email and Account{% if not user.info.verified%} <span style="color: #E25268">[VRFY]</span>{%endif%}</div>
<!-- {% if domain.recording_mode%}hello@adventure.land{%else%}{{user.info.email}}{%endif%} -->
<div class="mt5 textbutton" onclick="pcs(); $('.menu').hide(); $('.editui').show(); resize()">&gt; Character Ops</div>
{% if user.info.map_editor and not domain.recording_mode %}
<div class="mt5 textbutton" onclick="pcs(); $('.menu').hide(); $('.mapui').show(); resize()">&gt; Edit Maps</div>
{% endif %}
{% if user.info.sales %}
<div class="mt5 textbutton">&gt; Sales Bonus: <span style='color:#37983B'>${{user.info.sales_bonus or 0}}</span></div>
{% endif %}
<div class="mt5 textbutton" onclick="pcs(); $('.menu').hide(); $('.recruitui').show(); resize()">&gt; Share and Recruit <span style="color: gray">[</span>{% if not user.info.referred %}<span style="color: #E25268">0</span>{% else %}<span style="color: #7DC677">{{user.info.referred}}</span>{% endif %}<span style="color: gray">]</span></div> <!-- <span style="color: #FC395C">LIVE!</span> -->
{%if domain.electron %} <!-- user.info.characters|length>1 and -->
<a class="textbutton mt5" style="display: block" href="/" target="_blank">&gt; New Game Window</a>
{% endif %}
{%if domain.electron %}
<div class="mt5 textbutton" onclick="pcs(); electron_dev_tools();">&gt; Open Inspector</div>
{% endif %}
{% if domain.newcomer_ui %}
<div class="mt5 textbutton" onclick="pcs(); $('.menu').hide(); $('.freeui').show(); resize()">&gt; Stop Code</div>
{%endif%}
<div class="mt5 textbutton logout" onclick="if(bc(this)) return; api_call('logout',{},{success:function(){window.location=window.location;},disable:$(this)})">&gt; Logout</div>
</div>
<div class="largeborder" style="padding-left: 15px; padding-right: 15px; margin-top: 8px; font-size: 24px;">
<div style='border-bottom: 2px dashed gray; color: #E7E7E7; display: inline-block; margin-bottom: 6px'>In Game</div>
<div class="enableclicks">&gt; 1st Character: <span class="characterr1">{% if domain|get_online_character(1) %}<span style="color: green">{{(domain|get_online_character(1)).name}}</span>{% else %}<span style="color: orange">Offline</span>{% endif %}</span></div>
<div class="enableclicks">&gt; 2nd Character: <span class="characterr2">{% if domain|get_online_character(2) %}<span style="color: green">{{(domain|get_online_character(2)).name}}</span>{% else %}<span style="color: orange">Offline</span>{% endif %}</span></div>
<div class="enableclicks">&gt; 3rd Character: <span class="characterr3">{% if domain|get_online_character(3) %}<span style="color: green">{{(domain|get_online_character(3)).name}}</span>{% else %}<span style="color: orange">Offline</span>{% endif %}</span></div>
<div class="enableclicks">&gt; Merchant: <span class="characterrmerchant">{% if domain|get_online_character("merchant") %}<span style="color: green">{{(domain|get_online_character("merchant")).name}}</span>{% else %}<span style="color: orange">Offline</span>{% endif %}</span></div>
</div>
</div>
<div class="menu disableclicks" style="position: fixed; top: 0px; right: 0px; z-index: 201"> <!-- .disableclicks as .menu overlays character selection -->
{% set buttons="music"%} {% include "htmls/contents/section_buttons.html" %}
{% set buttons="essentials"%} {% include "htmls/contents/section_buttons.html" %}
{% set buttons="musts"%} {% include "htmls/contents/section_buttons.html" %}
<div id="progressui" class="gamebutton loading" style="width: 40px; text-align: center" onclick='loader_click();'>0%</div>
{% if servers %}
<div style="clear:both"></div>
<div style="border: 5px solid gray; background: black; margin-top: 10px; font-size: 24px; padding: 10px 10px 10px 10px; max-height: 208px; overflow-y: scroll; text-align: left; width: 340px; float: right">
<div style='border-bottom: 2px dashed gray; color: #E7E7E7; display: inline-block; margin-bottom: 6px'>Servers</div>
{% for server in servers %}
<div class="clickable enableclicks" onclick="server_addr='{{domain.https and server.ip or server.actual_ip}}'; server_port='{{server.port}}'; init_socket();">&gt; {{server.region=="EU"and"Europas" or server.region=="US"and"Americas" or "Eastlands"}} {% if server.gameplay!="hardcore" and server.gameplay!="dungeon" %}{{server.name}}{% endif %}{% if server.gameplay=="hardcore" %} <span style='color: #DC3529'>xHARDCORE</span>{% elif server.gameplay=="dungeon" %} <span style='color: #72396E'>DUNGEON</span>{% endif%}{% if server.info.players %} <span style='color:#85C76B'>[{{server.info.players+domain.boost}}]</span>{% endif %}{% if user.admin%} <span style='color: gray'>[{{server.info.observers}}]</span>{%endif%}{% if server.gameplay=="hardcore" %}{% elif server.gameplay=="dungeon" %}{% elif server.info.pvp %} <span style='color: #5DE376'>+LUCK</span> <span style='color: #4B9DDE'>+XP</span> <span style='color: gold'>+GOLD</span>{% endif %}</div>
{% endfor %}
<div class='disconnected hidden' style='color: red'>X Disconnected.</div>
</div>
{% endif %}
</div>
<div id="backbutton" class="hidden newcharacter accountui editui mapui cmapui dmapui recruitui deleteui freeui privacyui passwordui emailcui sortui renameui transferui onback-hide">
<div class="gamebutton onbackbutton" onclick="pcs(); $('.onback-hide').hide(); $('.menu').show(); resize();">&lt; Back</div>
</div>
{% include "htmls/contents/selection_features.html" %}
<script>
// setTimeout(function(){ $("#features").html($("#features").html()) },0); /* just in case */
{% if domain.section=="email" %}
$(function(){
$('.menu').hide(); $('.accountui').show(); resize();
});
{% endif %}
on_load_progress();
inside="selection";
</script>
+54
View File
@@ -0,0 +1,54 @@
{% for c in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] %}
{% if c==0 %}<div class='page1'>{%endif%}{% if c==6 %}<div class='page2 hidden'>{%endif%}{% if c==12 %}<div class='page3 hidden'>{%endif%}
{% if characters[c] %}
<div class="gamebutton mb5" onclick="if(bc(this)) return; if(!observe_character('{{characters[c].info.name}}')) log_in(user_id,'{{characters[c].k()}}',user_auth)" style='text-align: left; width: 160px'>
<span class='cskin' data-skin="{{characters[c].info.skin}}" data-cx='{{characters[c]|get_cx|safe}}' data-rip="{% if characters[c].info.rip%}1{%endif%}" style="float:left; margin-right: 5px; margin-top: -5px; margin-left: -4px; margin-bottom: -7px;"></span>
{{characters[c].info.name|sshorten}}
<span class='characterav{{characters[c].info.name}}'>
{% if characters[c].server %}
<span style="color: #F3A05D">[I]</span>
{% else %}
<span style="color: #A4FA64">[A]</span>
{%endif%}
</span>
<br />
Lv.{{characters[c].level}} <span class="gray" {%if characters[c].private%}style='text-decoration: underline #C7BAFF;'{%endif%}>{{characters[c].type|title}}</span>
</div>
{% else %}
<div class="gamebutton mb5" onclick="if(bc(this)) return; $('.nchb').click()" style='text-align: left; width: 160px'>
<span class='cskin' data-skin="thehelmet" style="float:left; margin-right: 5px; margin-top: -5px; margin-left: -4px; margin-bottom: -5px"></span>
{%if c < user.info.slots %}<span style='color'>Free Slot</span>{%else%}<span style='color:gray'>Available Slot</span>{% endif %}
<br />
<span style='color:gray'>Unused</span>
</div>
{% endif %}
{% if c==5 or c==11 or c==17 %}</div>{%endif%}
{% endfor %}
<div class='mb5'>
<div class="gamebutton pgbt pgbt1" style='width: 62px' onclick="$('.page2').hide(); $('.page3').hide(); $('.page1').show(); $('.pgbt').css('color','gray'); $('.pgbt1').css('color','white');">Page 1</div>
<div class="gamebutton pgbt pgbt2" style='width: 61px; color: gray' onclick="$('.page1').hide(); $('.page3').hide(); $('.page2').show(); $('.pgbt').css('color','gray'); $('.pgbt2').css('color','white');">Page 2</div>
<div class="gamebutton pgbt pgbt3" style='width: 61px; color: gray' onclick="$('.page1').hide(); $('.page2').hide(); $('.page3').show(); $('.pgbt').css('color','gray'); $('.pgbt3').css('color','white');">Page 3</div>
<div class="gamebutton {%if not user.info.characters %}mt5{%endif%} mb5 nchb" style='text-align: center; width: 62px' {% if user.info.character|length < 18 %}onclick="pcs(); $('.menu').hide(); $('.salesui').hide(); $('.newcharacter').show(); load_class_info('rogue','male'); resize(); chartype='',gendertype='';"{% endif %}><span style='{% if user.info.character|length >= 18 %}color:gray{% endif %}'>New</span></div>
</div>
<script>
user_id="{{user and user.k() or ''}}";
user_auth="{{user and user.info.auths[0] or ''}}";
$(".cskin").each(function(){
$(this).html(sprite($(this).data("skin"),{cx:$(this).data("cx"),rip:$(this).data("rip")||0,height:52,overflow:true,scale:2})); /* height: +50 +4 | margin-bottom: -5 -4 [03/10/18] */
/* overflow:true,scale:2 - otherwise female ranger's tattoo can't possible align with natural pixel offsetting [24/04/20] */
});
</script>
{#
{% for c in characters %}
<div class="textbutton mt5" onclick="if(bc(this)) return; log_in('{{user.k()}}','{{c.k()}}','{{user.info.auths[0]}}')">
&gt; Lv.{{c.level}}
<span class="gray">{{c.type|title}}</span>
{{c.info.name}}
</div>
{% endfor %}
<div class="textbutton mt5 {%if not user.info.characters %}mb5{%endif%}" onclick="pcs(); $('.menu').hide(); $('.newcharacter').show(); load_class_info('rogue','male'); resize(); chartype='',gendertype='';">&gt; New Character</div>
#}
+83
View File
@@ -0,0 +1,83 @@
<div style="background: black; padding: 2px; width: 336px; border: 5px solid gray; margin-bottom: -10px; position: fixed; bottom: 276px; left: 0px; z-index: 10"
class="clickable ibshadow enableclicks salesui" onclick="btc(event); show_opensource_info()"><!-- previously margin-bottom: -5px; [16/07/18] -->
<div style="background: #3A968E; width: {{domain|sales_percent}}%; height: 30px" id="ggslider" class='flashp'></div> <!-- red #B12727 green #368C2B -->
<div style="position: absolute; width: 316px; top: 2px; left: 0px; height: 30px; color: white; vertical-align: middle; line-height: 30px; text-align: center; font-size: 30px" id="ggui" class='clickable enableclicks' onclick="btc(event); show_opensource_info()">
{{domain.sales|to_pretty_num}} / 10,000
</div>
</div>
<div id="features" style="font-size: 24px; max-width: 320px; height: 240px; overflow-y: scroll" class="noscroll">
<div style='border-bottom: 2px dashed gray; color: #E7E7E7; display: inline-block; margin-bottom: 6px'>Things to look forward to</div>
<div class="infot" style='color:#33BF6D'>Open Source + New Horizons</div>
<div class="infop">
After 10,000 digital copy sales, going to open source the game. I hope the game will act as a boilerplate for new MMORPG's with unexplored / unique dynamics.
{#Going to release the game on Steam as Early Access around mid-December and after reaching a pre-set goal, the game will be open sourced and a new era will begin! (hopefully :)#}
</div>
{#<div class="infot" style='color:#36B3D3; color:#C82F17'>Tavern</div>
<div class="infop">
Tavern. A place for adventurers to relax, drink, unwind, play games, wager, challenge each other in friendly games.
</div>
<div class="infot" style='color:#D27B50'>Refined Drops and More Items</div>
<div class="infop">
The drop rates are likely going to increase, going to introduce new items over time and thanks to a new "Live Reload" feature, the game and servers update seamlessly.
</div>#}
{#<div class="infot" style='color:#C82F17'>New Town and Quests</div>
<div class="infop">
Our new town is almost ready. It will arrive with new quests, items, accessories, weapons.
</div>#}
{#<div class="infot" style='color:#C82F17'>New Town and Items</div>
<div class="infop">
During December, going to roll out a lot of new content, new quests, new items, new monsters, and hopefully a lot more!
</div>#}
{#
<div class="infot" style='color:#C82F17'>Xmas Event and Items</div>
<div class="infop">
The new map "Winterland" is arriving soon, along with game-wide Xmas drops. During December, new content will arrive frequently, it will be a very dynamic month, brace yourselves
</div>
#}
{#
<div class="infot">Christmas Zone</div>
<div class="infop">
Imagine Adventure Land in December, a land filled with snow, jingles, weeks of Christmas themed grinding, mmm.
</div>
<!--<div class="infot">The Path</div>
<div class="infop">
Thanks to Reddit, our community grew significantly. Received lots and lots of positive and constructive feedback. <div style="margin-bottom: 6px"></div> Until December, planning to shape the game accordingly. Right now my priority is Moderation + Code. You can expect improvements every single day. Please excuse the occasional server updates. I know getting interrupted isn't fun ;]
<div style="margin-bottom: 8px"></div>
</div>-->
<div class="infot">The Plan <span style='color:#C82F17'>MUST READ!</span></div>
<div class="infop">
As you all know, the game is a working prototype. With all your positive feedback and suggestions, I'm now heavily working on the next stage of the game. New monsters, new bosses, new NPC's, new, more beautiful pixel items + More. And most importantly, a finalised Code system with a Tutorial that will show everyone how fun Code'ing can be!
<div style="margin-bottom: 6px"></div>
What does this mean for you?
<div style="margin-bottom: 6px"></div>
Simply put, you have to wait at least 3 weeks for new content to arrive. My hard-deadline is December 10th, soft-deadline is November 20th. In the meantime, enjoy what's already available! :)
<div style="margin-bottom: 8px"></div>
</div>
#}
<!-- <div class="infot">New Maps!{# <span style='color:green'>NEW!</span>#}</div>
<div class="infop">
Working on new maps, zones, caves, dungeons that you can get lost in. Thanks to all the feedback from the early players, the consensus is to add more adventure.
</div>
<div class="infot">Events{# <span style='color:green'>NEW!</span>#}</div>
<div class="infop">
Soon there will be hourly server-wide events. First one of these events will be "Goo Brawl", where everyone is teleported to a small island for 5 minutes to slay these Super Goo's with Super Drops :]
</div>
{#<div class="infot"><strike>Partying</strike> <span style='color:green'>Done!</span></div>
<div class="infop">
The game gets harder and harder, you will be able to team up, slay monsters together without losing significant XP.
</div>
<div class="infot"><strike>Priest Class</strike> <span style='color:green'>Done!</span></div>
<div class="infop">
With though monsters and bosses, every party will need a healer, as pots won't cut it after one point.
</div>#}
{#<div class="infot">A Multi-Level PVP Dungeon</div>
<div class="infop">
Monsters in this dungeon will have exciting drops and things will get interesting based on the PVP dynamics.
</div>#}
<div class="infot">Skills, Abilities, Stats <span style='color:green'>PROGRESS!</span></div>
<div class="infop">
Adventure Land is super early access right now, the aim is to just develop a unique mmorpg experience and extend beyond that. If skills are added, they will extend the class, add something unique to it, balance it against other classes.{# Like MOBA skills, few but useful.#}
</div>
-->
<div class="infot">Email, for anything: <a target="_blank" class="cancela eexternal" href="mailto:hello@adventure.land" style="color: #33BF6D">hello@adventure.land</a></div>
</div>
+128
View File
@@ -0,0 +1,128 @@
<div class='basicsettings'>
{% if domain.electron %}
<div class="blockbutton"
onclick="btc(event); electron_fullscreen()">Toggle Fullscreen</div>
{% endif %}
{#<div class="mt4 blockbutton promode {% if domain.newcomer_ui %}hidden{% endif %}"
onclick="btc(event); Cookies.set('pro_mode','',{ expires:12*365}); pro_mode=false; $('.promode').hide(); $('.newcomermode').show(); $('.gamebutton.newcomermode').css('display','inline-block'); $('.proinfo').show()">
Pro Mode: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton newcomermode {% if not domain.newcomer_ui %}hidden{% endif %}"
onclick="btc(event); Cookies.set('pro_mode','1',{ expires:12*365}); pro_mode=true; $('.newcomermode').hide(); $('.promode').show(); $('.gamebutton.promode').css('display','inline-block'); $('.proinfo').show()">
Pro Mode: <span style='color: #F67D4C'>OFF</span></div>#}
<!--
<div class="mt4 blockbutton fastoff {%if domain.fast_mode %}hidden{% endif %}"
onclick="btc(event); $('.fastoff').hide(); $('.faston').show(); $('.restartneeded').show(); Cookies.set('no_fast_mode','',{ expires:12*365});">Cached/Fast Maps: <span style='color: #F54423'>OFF</span></div>
<div class="mt4 blockbutton faston {%if not domain.fast_mode %}hidden{% endif %}"
onclick="btc(event); $('.faston').hide(); $('.fastoff').show(); $('.restartneeded').show(); Cookies.set('no_fast_mode','1',{ expires:12*365});">Cached/Fast Maps: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton autoon {% if domain.auto_reload=="off" %}hidden{% endif %}"
onclick="btc(event); Cookies.set('manual_reload','1',{ expires:12*365}); $('.autoon').hide(); $('.autooff').show(); auto_reload='off';">Auto Reload on DC: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton autooff {% if domain.auto_reload=="auto" %}hidden{% endif %}"
onclick="btc(event); Cookies.set('manual_reload','',{ expires:12*365}); $('.autooff').hide(); $('.autoon').show(); auto_reload='auto';">Auto Reload on DC: <span style='color: #F54423'>OFF</span></div>
-->
<div class="mt4 blockbutton musicoff {%if domain.music_on %}hidden{% endif %}"
onclick="btc(event); sound_on()">Music: <span style='color: gray'>OFF</span></div>
<div class="mt4 blockbutton musicon {%if not domain.music_on %}hidden{% endif %}"
onclick="btc(event); sound_off()">Music: <span style='color: gray'>ON</span> [Work in Progress]</div>
<div class="mt4 blockbutton sfxoff {% if domain.sfx_on %}hidden{% endif %}"
onclick="btc(event); sfx_on()">SFX: <span style='color: gray'>OFF</span></div>
<div class="mt4 blockbutton sfxon {% if not domain.sfx_on %}hidden{% endif %}"
onclick="btc(event); sfx_off()">SFX: <span style='color: gray'>ON</span> [Work in Progress]</div>
<!--
<div class="mt4 blockbutton dlineson {% if not domain.d_lines %}hidden{% endif %}"
onclick="btc(event); Cookies.set('d_lines_off','1',{ expires:12*365}); $('.dlineson').hide(); $('.dlinesoff').show(); d_lines=0;">Lines: ON</div>
<div class="mt4 blockbutton dlinesoff {% if domain.d_lines %}hidden{% endif %}"
onclick="btc(event); Cookies.set('d_lines_off','',{ expires:12*365}); $('.dlinesoff').hide(); $('.dlineson').show(); d_lines=1;">Lines: OFF</div>
<div class="mt4 blockbutton sdlineson {% if not domain.sd_lines %}hidden{% endif %}"
onclick="btc(event); Cookies.set('sd_lines_off','1',{ expires:12*365}); $('.sdlineson').hide(); $('.sdlinesoff').show(); sd_lines=0;">Green Lines: ON</div>
<div class="mt4 blockbutton sdlinesoff {% if domain.sd_lines %}hidden{% endif %}"
onclick="btc(event); Cookies.set('sd_lines_off','',{ expires:12*365}); $('.sdlinesoff').hide(); $('.sdlineson').show(); sd_lines=1;">Green Lines: OFF</div>
-->
<div class="mt4 blockbutton" onclick="btc(event); show_modal($('.performancesettings').html(),{wrap:false,styles:'width:600px',hideinbackground:true});">Performance Settings</div>
<div class="mt4 blockbutton" onclick="btc(event); show_modal($('.advancedsettings').html(),{wrap:false,styles:'width:600px',hideinbackground:true});">Advanced Settings</div>
{% if domain.electron %}
<div class="mt4 blockbutton promode {% if domain.newcomer_ui %}hidden{% endif %}"
onclick="btc(event); electron_dev_tools()">
Open Game Inspector</div>
<a class="mt4 blockbutton cancela" href="/" onclick='hide_modal(); show_alert("Signing Out")'>Sign Out to Main Menu</a>
{% endif %}
<div class="mt4 blockbutton" style="text-align: left">
Note: Feel free to email <span style="color: #36B2F8">hello@adventure.land</span> for anything, the game is in development, I love to receive emails and feedback
</div>
<div class="mt4 blockbutton restartneeded hidden" style="text-align: left">
You need to refresh the game for changes to be effective.
</div>
{#<div class="mt4 blockbutton proinfo hidden" style="text-align: left">
Pro Mode hides the CHAR/INV/STATS buttons. You can press your character name to open CHAR, press the inventory button to open INV and press the xp-bar to open STATS.
</div>#}
</div>
<div class='performancesettings hidden'>
<div class="mt4 blockbutton naoff {%if domain.new_attacks %}hidden{% endif %}"
onclick="btc(event); $('.naoff').hide(); $('.naon').show(); new_attacks=true; Cookies.set('no_weapons','',{ expires:12*365});">Weapon / Attack Animations: <span style='color: #F54423'>OFF</span></div>
<div class="mt4 blockbutton naon {%if not domain.new_attacks %}hidden{% endif %}"
onclick="btc(event); $('.naon').hide(); $('.naoff').show(); new_attacks=false; Cookies.set('no_weapons','1',{ expires:12*365});">Weapon / Attack Animations: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton fastoff {%if domain.fast_mode %}hidden{% endif %}"
onclick="btc(event); $('.fastoff').hide(); $('.faston').show(); $('.restartneeded').show(); Cookies.set('no_fast_mode','',{ expires:12*365});">Pre-Cached Maps: <span style='color: #F67D4C'>OFF</span></div>
<div class="mt4 blockbutton faston {%if not domain.fast_mode %}hidden{% endif %}"
onclick="btc(event); $('.faston').hide(); $('.fastoff').show(); $('.restartneeded').show(); Cookies.set('no_fast_mode','1',{ expires:12*365});">Pre-Cached Maps: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton" style="text-align: left">
Processes and caches the entire map into memory. Afterwards movement and animations are as smooth as possible. Turn off if your machine has low GPU memory or low processing power.
</div>
<div class="mt4 blockbutton pixelson {% if not domain.perfect_pixels %}hidden{% endif %}"
onclick="btc(event); Cookies.set('perfect_pixels_off','1',{ expires:12*365}); $('.pixelson').hide(); $('.pixelsoff').show(); $('.restartneeded').show()">Perfect Pixels: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton pixelsoff {% if domain.perfect_pixels %}hidden{% endif %}"
onclick="btc(event); Cookies.set('perfect_pixels_off','',{ expires:12*365}); $('.pixelsoff').hide(); $('.pixelson').show(); $('.restartneeded').show()">Perfect Pixels: <span style='color: #F67D4C'>OFF</span></div>
<div class="mt4 blockbutton" style="text-align: left">
Turn off to smooth pixels. More of a preference rather than a performance setting.
</div>
<div class="mt4 blockbutton fcs fcauto {% if domain.engine_mode %}hidden{% endif %}"
onclick="btc(event); Cookies.set('engine_mode','canvas',{ expires:12*365}); $('.fcs').hide(); $('.fccanvas').show(); $('.restartneeded').show()">WebGL: <span style='color: green'>AUTO</span></div>
<div class="mt4 blockbutton fcs fccanvas {% if domain.engine_mode!='canvas' %}hidden{% endif %}"
onclick="btc(event); Cookies.set('engine_mode','webgl',{ expires:12*365}); $('.fcs').hide(); $('.fcwebgl').show(); $('.restartneeded').show()">WebGL: <span style='color: #F54423'>OFF</span></div>
<div class="mt4 blockbutton fcs fcwebgl {% if domain.engine_mode!='webgl' %}hidden{% endif %}"
onclick="btc(event); Cookies.set('engine_mode','',{ expires:12*365}); $('.fcs').hide(); $('.fcauto').show(); $('.restartneeded').show()">WebGL: <span style='color: #F7B32F'>FORCED</span></div>
<div class="mt4 blockbutton" style="text-align: left">
If for some reason WebGL causes issues on your system, you can force the old HTML5 Canvas to be used.
</div>
{#<div class="mt4 blockbutton" onclick="btc(event); $('.performancesettings').hide(); $('.basicsettings').show(); position_modals()">&lt; Back</div>#}
<div class="mt4 blockbutton restartneeded hidden" style="text-align: left">
You need to refresh the game for changes to be effective.
</div>
</div>
<div class='advancedsettings hidden'>
<div class="mt4 blockbutton tutoff {%if domain.tutorial %}hidden{% endif %}"
onclick="btc(event); $('.tutoff').hide(); $('.tuton').show(); tutorial_ui=true; update_tutorial_ui(); Cookies.set('no_tutorial','',{ expires:12*365});">Tutorial: <span style='color: #F54423'>OFF</span></div>
<div class="mt4 blockbutton tuton {%if not domain.tutorial %}hidden{% endif %}"
onclick="btc(event); $('.tuton').hide(); $('.tutoff').show(); tutorial_ui=false; update_tutorial_ui(); Cookies.set('no_tutorial','1',{ expires:12*365});">Tutorial: <span style='color: green'>ON</span></div>
<div class="mt4 blockbutton"
onclick="btc(event); show_confirm('Reset the tutorial?','Yes!','Oh No!',function(){api_call('reset_tutorial')});">Reset Tutorial <span style='color: #F7B32F'>[!]</span></div>
<div class='windowsonly hidden'>
<div class="mt4 blockbutton win7on hidden"
onclick="btc(event); $('.win7on').hide(); $('.win7off').show(); storage_set('win7patch',false); $('.restartneeded').show()">Windows 7/8 Network Patch: <span style='color: orange'>ON</span></div>
<div class="mt4 blockbutton win7off"
onclick="btc(event); $('.win7off').hide(); $('.win7on').show(); storage_set('win7patch',true); $('.restartneeded').show()">Windows 7/8 Network Patch: <span style='color: green'>OFF</span></div>
</div>
{% if domain.electron %}
<div class="mt4 blockbutton httpmodeon"
onclick="btc(event); $('.httpmodeon').hide(); $('.httpmodeoff').show(); electron_http_mode(true); $('.restartneeded').show()">Connections: <span style='color: green'>HTTPS</span></div>
<div class="mt4 blockbutton httpmodeoff hidden"
onclick="btc(event); $('.httpmodeoff').hide(); $('.httpmodeon').show(); electron_http_mode(false); $('.restartneeded').show()">Connections: <span style='color: #F54423'>HTTP</span></div>
{% endif %}
{#<div class="mt4 blockbutton" onclick="btc(event); $('.advancedsettings').hide(); $('.basicsettings').show(); position_modals()">&lt; Back</div>#}
<div class="mt4 blockbutton restartneeded hidden" style="text-align: left">
You need to refresh the game for changes to be effective.
</div>
</div>
+12
View File
@@ -0,0 +1,12 @@
<div id="shellsinfo" style="display:none">
<!-- <div class="gamebutton gamebutton-small" style="position: absolute; top: 5px; right: 5px">Updated December 16th</div> -->
<div style="font-size: 24px; color: #F4F4F4">
<div class="gamebutton gamebutton-large" style="border-color: #5DAC40">SHELLS</div> <div class="mb5"></div>
<div class="gamebutton gamebutton-small mr5 mt5 mb5">Where to Find</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> You can get shells by farming green Goo's, from exchangeable items as rare rewards and through various other hidden and non-hidden ways in-game.</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">Original Plan</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Adventure Land aims to cover operating costs and generate long-term revenue by selling <a href="https://adventure.land/shells" target="_blank">SHELLS</a> as a premium currency. It will be for cosmetic items, possibly extra bank storage and some rare account operations, like character transfers. <span style='color:#D0D0D0'>Keeping the game non-p2w is a top priority</span>, so SHELLS won't affect in-game performance.</div>
<div class="gamebutton gamebutton-small mr5 mt10 mb5">After Steam Early Access</div>
<div class="gray"><span style="color: #F4F4F4">&gt;</span> Adventure Land performs really well on Steam so far, as an indie-developer, one of my biggest concerns was being cash positive. If it continues like this, and I hope it does, it might even be possible to introduce cosmetics through in-game achievements and gold only.</div>
</div>
</div>
+13
View File
@@ -0,0 +1,13 @@
<p>There's one non-breakable main rule, you can't upset, bully, or sadden other players - Adventure Land thrives on being a positive game with a positive community. When you treat other players with love and respect, they'll treat you that way too!</p>
<p>The secondary rule is to not abuse the game, you can do pretty much everything with Code, and the game, we are even exploring allowing non-UI botting, but, please don't DDOS the game, or intentionally abuse bugs you find. We have lucrative bug bounties</p>
<p>Third rule is to respect the character limits, maintaining the game is beyond imagination costly, almost non-feasable, If everyone respects the limits, we won't be needing to add irritating captchas etc. to keep playing. While you might easily use a VPN or server to play with additional characters, please don't (It has been done in the past, at 2+ accounts, it usually gets noticed fast, you'll only force me to divert my time and energy into battling multiple accounts, please don't)</p>
<p>Selling items, gold etc. with real money is forbidden, don't waste your money, but maybe buy 1-2 cosmetic items to support the game :)</p>
<p>Offensive or insensitive nicknames are forbidden</p>
<p>Breaking the rules usually result in temporary bans, don't be afraid to try new things, as long as you mean well, there won't be any consequences</p>
<p>Have fun</p>