mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-25 06:30:13 -05:00
No more App Engine
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
# Notice: Moved Out of Cloud
|
||||||
|
|
||||||
|
New Live Project At: https://github.com/kaansoral/adventureland_mongodb
|
||||||
|
|
||||||
|
Google Cloud became a joke with constant 500 errors that are not even propagated to the services - likely by design as reporting these issues result in "won't fix" responses. Performance was abysmal, costs were astronomical. The time to free Adventure Land was long overdue. With the switch to MongoDB, Adventure Land is free from any external service, no more random disconnects due to Cloudflare fluctuations or instance restarts either. Just snappy gameplay in an environment that can be managed eternally.
|
||||||
|
|
||||||
|
|
||||||
# Adventure Land - The Open Source CODE MMORPG
|
# Adventure Land - The Open Source CODE MMORPG
|
||||||
|
|
||||||
https://adventure.land
|
https://adventure.land
|
||||||
|
|||||||
@@ -114,22 +114,19 @@ if is_production:
|
|||||||
#maps["desertland"]["key"]="jayson_desertland_copy"
|
#maps["desertland"]["key"]="jayson_desertland_copy"
|
||||||
pass
|
pass
|
||||||
|
|
||||||
game_version=835
|
game_version=837
|
||||||
SALES=4+5+388+5101+125/20 #donation+manual+macos+steam+sales
|
SALES=4+5+388+5101+125/20 #donation+manual+macos+steam+sales
|
||||||
update_notes=[
|
update_notes=[
|
||||||
"Valentine's Day Event!",
|
"Valentine's Day Event!",
|
||||||
"Lunar New Year Event!",
|
"Lunar New Year Event!",
|
||||||
"Last Update [2nd of February]",
|
"Last Update [12th of February]",
|
||||||
"PR: fix monster dimensions #211",
|
|
||||||
"PR: Fix miss so that it uses the value from the attack, instead of the attacker #220",
|
|
||||||
"PR: Update reject_deferred calls to include place for death and disappear events #227",
|
|
||||||
"PR: Update the two scaling healing skills to accurately reflect their output #223",
|
|
||||||
"PR: Add flag for implicit targets, and the implicit targets functionality #225",
|
|
||||||
"PR: Pass the target parameter to consume_mp for more skills #222",
|
|
||||||
]
|
|
||||||
next_notes=[
|
|
||||||
"5X Co-op contribution points for home server characters",
|
"5X Co-op contribution points for home server characters",
|
||||||
"Overdrop logic for co-op events",
|
"Overdrop logic for co-op events",
|
||||||
|
"Smoothed coop contributions",
|
||||||
|
"Event update, new drops!",
|
||||||
|
]
|
||||||
|
next_notes=[
|
||||||
|
|
||||||
]
|
]
|
||||||
ip_to_subdomain={ #IMPORTANT: SPECIAL PAGE RULES ARE NEEDED: https://dash.cloudflare.com/b6f5a13bded5fdd273e4a1cd3777162d/adventure.land/page-rules - uss1 / eus1 was best
|
ip_to_subdomain={ #IMPORTANT: SPECIAL PAGE RULES ARE NEEDED: https://dash.cloudflare.com/b6f5a13bded5fdd273e4a1cd3777162d/adventure.land/page-rules - uss1 / eus1 was best
|
||||||
"35.187.255.184":"asia1",
|
"35.187.255.184":"asia1",
|
||||||
@@ -142,6 +139,7 @@ ip_to_subdomain={ #IMPORTANT: SPECIAL PAGE RULES ARE NEEDED: https://dash.cloudf
|
|||||||
"34.67.187.11":"uspvp",
|
"34.67.187.11":"uspvp",
|
||||||
"195.201.181.245":"eud1",
|
"195.201.181.245":"eud1",
|
||||||
"158.69.23.127":"usd1",
|
"158.69.23.127":"usd1",
|
||||||
|
"195.201.105.60":"euw1",
|
||||||
}
|
}
|
||||||
HTTPS_MODE=True #IMPORTANT: converts server IP's to subdomain urls at create_server_api [17/11/18]
|
HTTPS_MODE=True #IMPORTANT: converts server IP's to subdomain urls at create_server_api [17/11/18]
|
||||||
always_amazon_ses=True
|
always_amazon_ses=True
|
||||||
|
|||||||
@@ -756,6 +756,11 @@ positions={
|
|||||||
|
|
||||||
"greenenvelopev2":["custom",5,3],
|
"greenenvelopev2":["custom",5,3],
|
||||||
|
|
||||||
|
#chinese new year 2026
|
||||||
|
"brownenvelope":["custom",4,6],
|
||||||
|
"horsecapeg":["custom",6,6],
|
||||||
|
"horsecape":["custom",5,6],
|
||||||
|
|
||||||
#valentines
|
#valentines
|
||||||
"solitaire":["",5,16],
|
"solitaire":["",5,16],
|
||||||
|
|
||||||
|
|||||||
@@ -267,6 +267,7 @@ drops={
|
|||||||
],
|
],
|
||||||
"pinkgoblin":[
|
"pinkgoblin":[
|
||||||
[1.0/24000,"bkey"],
|
[1.0/24000,"bkey"],
|
||||||
|
[1.0/10,"horsecape"],
|
||||||
],
|
],
|
||||||
"spider":[[0.001,"spidersilk"],[1.0/5000,"offeringp"],[1.0/10000,"spiderkey"]],
|
"spider":[[0.001,"spidersilk"],[1.0/5000,"offeringp"],[1.0/10000,"spiderkey"]],
|
||||||
"tinyp":[[1.0/1,"offeringp"]],
|
"tinyp":[[1.0/1,"offeringp"]],
|
||||||
@@ -372,6 +373,7 @@ drops={
|
|||||||
[0.5,"lmace"],
|
[0.5,"lmace"],
|
||||||
[2.0/4/1000/1000,"cxjar",1,"hat400"],
|
[2.0/4/1000/1000,"cxjar",1,"hat400"],
|
||||||
[2.0/6/1000/1000,"chrysalis0"],
|
[2.0/6/1000/1000,"chrysalis0"],
|
||||||
|
[1,"horsecapeg"],
|
||||||
],
|
],
|
||||||
"ent":[
|
"ent":[
|
||||||
[1,"essenceofnature"],
|
[1,"essenceofnature"],
|
||||||
@@ -814,6 +816,7 @@ drops={
|
|||||||
[1,"oxhelmet",None,None,"lucky"],
|
[1,"oxhelmet",None,None,"lucky"],
|
||||||
[0.1,"cdragon",None,None,"lucky"],
|
[0.1,"cdragon",None,None,"lucky"],
|
||||||
[0.1,"snakeoil"], #2025
|
[0.1,"snakeoil"], #2025
|
||||||
|
[0.3,"horsecapeg"],
|
||||||
],
|
],
|
||||||
"eastereggs":[
|
"eastereggs":[
|
||||||
[1,"egg0"],
|
[1,"egg0"],
|
||||||
|
|||||||
@@ -84,6 +84,40 @@ items={
|
|||||||
"grades":[0,8],
|
"grades":[0,8],
|
||||||
"g":20000,
|
"g":20000,
|
||||||
},
|
},
|
||||||
|
"horsecape":{
|
||||||
|
"type":"cape",
|
||||||
|
"skin":"horsecape",
|
||||||
|
"armor":10,
|
||||||
|
"stat":5,
|
||||||
|
"speed":1,
|
||||||
|
"name":"Horse Leather Cape",
|
||||||
|
"upgrade":{
|
||||||
|
"armor":2,
|
||||||
|
"resistance":2,
|
||||||
|
"stat":0.10,
|
||||||
|
"speed":0.1,
|
||||||
|
},
|
||||||
|
"grades":[0,5],
|
||||||
|
"g":1600000,
|
||||||
|
},
|
||||||
|
"horsecapeg":{
|
||||||
|
"type":"cape",
|
||||||
|
"skin":"horsecapeg",
|
||||||
|
"armor":10,
|
||||||
|
"gold":3,
|
||||||
|
"stat":5,
|
||||||
|
"speed":1,
|
||||||
|
"name":"Horse Leather Cape",
|
||||||
|
"upgrade":{
|
||||||
|
"armor":2,
|
||||||
|
"resistance":2,
|
||||||
|
"stat":0.10,
|
||||||
|
"speed":0.1,
|
||||||
|
"gold":0.5,
|
||||||
|
},
|
||||||
|
"grades":[0,0],
|
||||||
|
"g":1600000,
|
||||||
|
},
|
||||||
"fcape":{
|
"fcape":{
|
||||||
"type":"cape",
|
"type":"cape",
|
||||||
"skin":"fcape",
|
"skin":"fcape",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
|||||||
<p style='font-size: 32px; color: #216D25; text-decoration: underline dotted #B30B1A'>Lunar New Year on Adventure Land</p>
|
<p style='font-size: 32px; color: #216D25; text-decoration: underline dotted #B30B1A'>Lunar New Year on Adventure Land</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<div style='float:left; margin-right: 10px'><span class='eitem1'></span> Green Envelopes drop globally. You can exchange them from Xyn in Mainland. <br /></div>
|
<div style='float:left; margin-right: 10px'><span class='eitem1'></span> Brown Envelopes drop globally. You can exchange them from Xyn in Mainland. <br /></div>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(".eitem1").html(item_container({skin:G.items.greenenvelope.skin},{name:"greenenvelope",q:0}));
|
$(".eitem1").html(item_container({skin:G.items.greenenvelope.skin},{name:"brownenvelope",q:0}));
|
||||||
$(".spdragold").html(sprite("dragold",{height:80,width:66}));
|
$(".spdragold").html(sprite("dragold",{height:80,width:66}));
|
||||||
$(".sptiger").html(sprite("tiger",{height:50,width:42}));
|
$(".sptiger").html(sprite("tiger",{height:50,width:42}));
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Binary file not shown.
+1
-1
@@ -330,7 +330,7 @@ function render_server()
|
|||||||
if(S.lunarnewyear)
|
if(S.lunarnewyear)
|
||||||
{
|
{
|
||||||
html+=" <div class='gamebutton' style='padding: 6px 8px 6px 8px; font-size: 24px; line-height: 18px' onclick='pcs(event); open_guide(\"event-lunarnewyear\",\"/docs/ref/lunarnewyear\")'>";
|
html+=" <div class='gamebutton' style='padding: 6px 8px 6px 8px; font-size: 24px; line-height: 18px' onclick='pcs(event); open_guide(\"event-lunarnewyear\",\"/docs/ref/lunarnewyear\")'>";
|
||||||
html+="<div style='margin-top: -1px; margin-left: -3px; margin-right: -3px'>"+item_container({skin:"greenenvelope",bcolor:"black"})+"</div>";
|
html+="<div style='margin-top: -1px; margin-left: -3px; margin-right: -3px'>"+item_container({skin:"brownenvelope",bcolor:"black"})+"</div>";
|
||||||
html+="<div style='color:#CFD1D1; margin-top: 1px'>INFO</div>";
|
html+="<div style='color:#CFD1D1; margin-top: 1px'>INFO</div>";
|
||||||
html+="</div>";
|
html+="</div>";
|
||||||
content=true;
|
content=true;
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ eval("" + fs.readFileSync(variables.functions_path));
|
|||||||
eval("" + fs.readFileSync(variables.data_path));
|
eval("" + fs.readFileSync(variables.data_path));
|
||||||
var base_url = variables.base_url;
|
var base_url = variables.base_url;
|
||||||
var server_id = "1";
|
var server_id = "1";
|
||||||
var server_auth = "123456";
|
var server_auth = require("crypto").randomBytes(32).toString("hex");
|
||||||
var server_name = "";
|
var server_name = "";
|
||||||
var players = {};
|
var players = {};
|
||||||
var dc_players = {};
|
var dc_players = {};
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ function sprocess_game_data() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (events.lunarnewyear) {
|
if (events.lunarnewyear) {
|
||||||
D.drops.maps.global.push([0.00005, "greenenvelope"]);
|
D.drops.maps.global.push([0.00005, "brownenvelope"]);
|
||||||
D.drops.maps.global.push([0.000000005, "5bucks"]);
|
D.drops.maps.global.push([0.000000005, "5bucks"]);
|
||||||
}
|
}
|
||||||
if (events.valentines) {
|
if (events.valentines) {
|
||||||
|
|||||||
+15
-9
@@ -1,13 +1,19 @@
|
|||||||
// Mappings: config.py + Cloudflare
|
// Mappings: config.py + Cloudflare
|
||||||
machines={
|
machines={
|
||||||
"eud1":{
|
// "eud1":{
|
||||||
"key":"~/thegame/design/docs/id_rsa.pem",
|
// "key":"~/thegame/design/docs/id_rsa.pem",
|
||||||
"ip":"195.201.181.245",
|
// "ip":"195.201.181.245",
|
||||||
|
// "user":"root",
|
||||||
|
// "map":"eud1",
|
||||||
|
// },
|
||||||
|
"euw1":{
|
||||||
|
"key":"~/server_admin/keys/hetzner_dedicated",
|
||||||
|
"ip":"195.201.105.60",
|
||||||
"user":"root",
|
"user":"root",
|
||||||
"map":"eud1",
|
"map":"euw1",
|
||||||
},
|
},
|
||||||
"usd1":{
|
"usd1":{
|
||||||
"key":"~/thegame/design/docs/id_rsa.pem",
|
"key":"~/server_admin/keys/usd1_dedicated",
|
||||||
"ip":"158.69.23.127",
|
"ip":"158.69.23.127",
|
||||||
"user":"ubuntu",
|
"user":"ubuntu",
|
||||||
"map":"usd1",
|
"map":"usd1",
|
||||||
@@ -68,19 +74,19 @@ servers=[
|
|||||||
"region":"EU",
|
"region":"EU",
|
||||||
"name":"I",
|
"name":"I",
|
||||||
"port":2053,
|
"port":2053,
|
||||||
"machine":"eud1",
|
"machine":"euw1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"region":"EU",
|
"region":"EU",
|
||||||
"name":"II",
|
"name":"II",
|
||||||
"port":2083,
|
"port":2083,
|
||||||
"machine":"eud1",
|
"machine":"euw1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"region":"EU",
|
"region":"EU",
|
||||||
"name":"PVP",
|
"name":"PVP",
|
||||||
"port":2087,
|
"port":2087,
|
||||||
"machine":"eud1",
|
"machine":"euw1",
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// "region":"EU",
|
// "region":"EU",
|
||||||
@@ -92,7 +98,7 @@ servers=[
|
|||||||
"region":"ASIA",
|
"region":"ASIA",
|
||||||
"name":"I",
|
"name":"I",
|
||||||
"port":8443,
|
"port":8443,
|
||||||
"machine":"eud1",
|
"machine":"euw1",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"region":"US",
|
"region":"US",
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ setInterval(function(){
|
|||||||
servers.forEach(function(server){
|
servers.forEach(function(server){
|
||||||
if(server.machine!=id) return;
|
if(server.machine!=id) return;
|
||||||
var name=server.region+" "+server.name+" "+server.port;
|
var name=server.region+" "+server.name+" "+server.port;
|
||||||
if(output.indexOf("node server/server.js "+server.region+" "+server.name+" "+server.port)==-1)
|
if(output.indexOf("node adventureland/server.js "+server.region+" "+server.name+" "+server.port)==-1)
|
||||||
{
|
{
|
||||||
console.log("Server not running: "+name);
|
console.log("Server not running: "+name);
|
||||||
var command="ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"nohup node server/server.js "+server.region+" "+server.name+" "+server.port+" > s"+server.port+".out 2> s"+server.port+".err < /dev/null &\"";
|
var command="ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"nohup node adventureland/server.js "+server.region+" "+server.name+" "+server.port+" > s"+server.port+".out 2> s"+server.port+".err < /dev/null &\"";
|
||||||
console.log(command);
|
console.log(command);
|
||||||
f.execso(command);
|
f.execso(command);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ servers.forEach(function(server){
|
|||||||
console.log(command);
|
console.log(command);
|
||||||
command="["+server.machine+" logs] scp -i "+machine.key+" "+machine.user+"@"+machine.ip+":s"+server.port+".out .";
|
command="["+server.machine+" logs] scp -i "+machine.key+" "+machine.user+"@"+machine.ip+":s"+server.port+".out .";
|
||||||
console.log(command);
|
console.log(command);
|
||||||
command="["+server.machine+" run] ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"nohup node server/server.js "+server.region+" "+server.name+" "+server.port+" > s"+server.port+".out 2> s"+server.port+".err < /dev/null &\"";
|
command="["+server.machine+" run] ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"nohup node adventureland/server.js "+server.region+" "+server.name+" "+server.port+" > s"+server.port+".out 2> s"+server.port+".err < /dev/null &\"";
|
||||||
console.log(command);
|
console.log(command);
|
||||||
});
|
});
|
||||||
@@ -3,7 +3,7 @@ require(process.env.HOME+"/thegame/scripts/data.js");
|
|||||||
|
|
||||||
servers.forEach(function(server){
|
servers.forEach(function(server){
|
||||||
var machine=machines[server.machine];
|
var machine=machines[server.machine];
|
||||||
var command="ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"nohup node server/server.js "+server.region+" "+server.name+" "+server.port+" > s"+server.port+".out 2> s"+server.port+".err < /dev/null &\"";
|
var command="ssh -i "+machine.key+" "+machine.user+"@"+machine.ip+" \"source ~/.nvm/nvm.sh && screen -dm bash -c 'node adventureland/server.js "+server.region+" "+server.name+" "+server.port+" > adventureland/s"+server.port+".out 2> adventureland/s"+server.port+".err'\"";
|
||||||
console.log(command);
|
console.log(command);
|
||||||
f.execso(command);
|
f.execso(command);
|
||||||
});
|
});
|
||||||
@@ -8,7 +8,7 @@ for(var id in machines)
|
|||||||
{
|
{
|
||||||
var machine=machines[id];
|
var machine=machines[id];
|
||||||
// var command="scp -qv -r -i "+machine.key+" ~/deploy/server "+machine.user+"@"+machine.ip+":./ 2>&1 | grep -e 'Sending file modes' -e 'Exit status'";
|
// var command="scp -qv -r -i "+machine.key+" ~/deploy/server "+machine.user+"@"+machine.ip+":./ 2>&1 | grep -e 'Sending file modes' -e 'Exit status'";
|
||||||
var command="rsync -ru --exclude='node_modules/' ~/deploy/server -i "+machine.key+" "+machine.user+"@"+machine.ip+":./";
|
var command="rsync -rui --exclude='node_modules/' --exclude='package-lock.json' -e 'ssh -i "+machine.key+"' ~/deploy/server/ "+machine.user+"@"+machine.ip+":./adventureland/";
|
||||||
//var command="rsync -ru ~/deploy/server -e \"ssh -i "+machine.key+"\" "+machine.user+"@"+machine.ip+":./";
|
//var command="rsync -ru ~/deploy/server -e \"ssh -i "+machine.key+"\" "+machine.user+"@"+machine.ip+":./";
|
||||||
// Spent 50 minutes on perfecting the scp output, bastards didn't provide a non-interactive output argument ... [05/08/18]
|
// Spent 50 minutes on perfecting the scp output, bastards didn't provide a non-interactive output argument ... [05/08/18]
|
||||||
// command+=" > /tmp/scp.log 2>&1";
|
// command+=" > /tmp/scp.log 2>&1";
|
||||||
|
|||||||
Reference in New Issue
Block a user