mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-26 22:40:14 -05:00
Autofix all files for the game server
This commit is contained in:
+1
-1
@@ -10,6 +10,7 @@
|
|||||||
"rules": {
|
"rules": {
|
||||||
"no-constant-condition": "off",
|
"no-constant-condition": "off",
|
||||||
"no-dupe-else-if": "off",
|
"no-dupe-else-if": "off",
|
||||||
|
"indent": "off",
|
||||||
"no-empty": "warn",
|
"no-empty": "warn",
|
||||||
"no-inner-declarations": "warn",
|
"no-inner-declarations": "warn",
|
||||||
"no-unreachable": "warn",
|
"no-unreachable": "warn",
|
||||||
@@ -17,7 +18,6 @@
|
|||||||
"no-unused-vars": "warn",
|
"no-unused-vars": "warn",
|
||||||
"no-redeclare": "warn",
|
"no-redeclare": "warn",
|
||||||
"curly": "error",
|
"curly": "error",
|
||||||
"indent": ["error", 2],
|
|
||||||
"prettier/prettier": "error",
|
"prettier/prettier": "error",
|
||||||
"one-var": ["error", "never"],
|
"one-var": ["error", "never"],
|
||||||
"no-sequences": "error"
|
"no-sequences": "error"
|
||||||
|
|||||||
+32
-24
@@ -1,27 +1,35 @@
|
|||||||
var is_game=0,is_server=0,is_code=0;
|
var is_game = 0;
|
||||||
var variables=require('./variables');
|
var is_server = 0;
|
||||||
var is_sdk=variables.is_sdk;
|
var is_code = 0;
|
||||||
var fs=require('fs');
|
var variables = require("./variables");
|
||||||
var precomputed=null;
|
var is_sdk = variables.is_sdk;
|
||||||
eval(""+fs.readFileSync(variables.cfunctions_path));
|
var fs = require("fs");
|
||||||
eval(""+fs.readFileSync(variables.functions_path));
|
var precomputed = null;
|
||||||
var mode={},server_id='precompute',server_auth="123456",base_url=variables.base_url;
|
eval("" + fs.readFileSync(variables.cfunctions_path));
|
||||||
|
eval("" + fs.readFileSync(variables.functions_path));
|
||||||
|
var mode = {};
|
||||||
|
var server_id = "precompute";
|
||||||
|
var server_auth = "123456";
|
||||||
|
var base_url = variables.base_url;
|
||||||
|
|
||||||
appengine_call("reload_server",{keyword:variables.keyword},function(result){
|
appengine_call("reload_server", { keyword: variables.keyword }, function (result) {
|
||||||
if(result.failed) return;
|
if (result.failed) {
|
||||||
G=result.game;
|
return;
|
||||||
var start=new Date();
|
|
||||||
for(var mname in G.maps)
|
|
||||||
{
|
|
||||||
if(G.maps[mname].ignore) continue;
|
|
||||||
var cstart=new Date();
|
|
||||||
server_bfs(mname);
|
|
||||||
console.log("Precomputed: "+mname+" in "+mssince(cstart)+"ms");
|
|
||||||
}
|
}
|
||||||
console.log("Done: "+mssince(start)+"ms");
|
G = result.game;
|
||||||
var precomputed={};
|
var start = new Date();
|
||||||
precomputed.version=G.version;
|
for (var mname in G.maps) {
|
||||||
precomputed.amap_data=amap_data;
|
if (G.maps[mname].ignore) {
|
||||||
precomputed.smap_data=smap_data;
|
continue;
|
||||||
fs.writeFileSync(variables.data_path,'var precomputed='+JSON.stringify(precomputed)+';');
|
}
|
||||||
|
var cstart = new Date();
|
||||||
|
server_bfs(mname);
|
||||||
|
console.log("Precomputed: " + mname + " in " + mssince(cstart) + "ms");
|
||||||
|
}
|
||||||
|
console.log("Done: " + mssince(start) + "ms");
|
||||||
|
var precomputed = {};
|
||||||
|
precomputed.version = G.version;
|
||||||
|
precomputed.amap_data = amap_data;
|
||||||
|
precomputed.smap_data = smap_data;
|
||||||
|
fs.writeFileSync(variables.data_path, "var precomputed=" + JSON.stringify(precomputed) + ";");
|
||||||
});
|
});
|
||||||
+11801
-7463
File diff suppressed because it is too large
Load Diff
+4202
-2747
File diff suppressed because it is too large
Load Diff
+22
-17
@@ -1,23 +1,28 @@
|
|||||||
var is_game=0,is_server=1,is_code=0;
|
var is_game = 0;
|
||||||
var variables=require('./variables');
|
var is_server = 1;
|
||||||
var is_sdk=variables.is_sdk;
|
var is_code = 0;
|
||||||
var fs=require('fs');
|
var variables = require("./variables");
|
||||||
eval(""+fs.readFileSync(variables.cfunctions_path));
|
var is_sdk = variables.is_sdk;
|
||||||
eval(""+fs.readFileSync(variables.functions_path));
|
var fs = require("fs");
|
||||||
var {workerData,parentPort}=require('worker_threads');
|
eval("" + fs.readFileSync(variables.cfunctions_path));
|
||||||
var G=workerData.G,smap_data=workerData.smap_data,amap_data=workerData.amap_data;
|
eval("" + fs.readFileSync(variables.functions_path));
|
||||||
|
var { workerData, parentPort } = require("worker_threads");
|
||||||
|
var G = workerData.G;
|
||||||
|
var smap_data = workerData.smap_data;
|
||||||
|
var amap_data = workerData.amap_data;
|
||||||
|
|
||||||
parentPort.on("message",function(data){
|
parentPort.on("message", function (data) {
|
||||||
try{
|
try {
|
||||||
//console.log(data);
|
//console.log(data);
|
||||||
if(data.type=="fast_astar")
|
if (data.type == "fast_astar") {
|
||||||
parentPort.postMessage({type:"monster_move",move:fast_astar(data),id:data.id,in:data.in});
|
parentPort.postMessage({ type: "monster_move", move: fast_astar(data), id: data.id, in: data.in });
|
||||||
if(data.type=="exit") process.exit();
|
}
|
||||||
}catch(e){
|
if (data.type == "exit") {
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setInterval(function(){
|
setInterval(function () {}, 10);
|
||||||
|
|
||||||
},10);
|
|
||||||
|
|||||||
+49
-23
@@ -1,13 +1,14 @@
|
|||||||
var crypto=require('crypto');
|
var crypto = require("crypto");
|
||||||
var protobuf=require('protobufjs'),ByteBuffer=require('bytebuffer');
|
var protobuf = require("protobufjs");
|
||||||
|
var ByteBuffer = require("bytebuffer");
|
||||||
|
|
||||||
function symmetricDecrypt(input, key, checkHmac) {
|
function symmetricDecrypt(input, key, checkHmac) {
|
||||||
var aesIv = crypto.createDecipheriv('aes-256-ecb', key, '');
|
var aesIv = crypto.createDecipheriv("aes-256-ecb", key, "");
|
||||||
aesIv.setAutoPadding(false);
|
aesIv.setAutoPadding(false);
|
||||||
aesIv.end(input.slice(0, 16));
|
aesIv.end(input.slice(0, 16));
|
||||||
var iv = aesIv.read();
|
var iv = aesIv.read();
|
||||||
|
|
||||||
var aesData = crypto.createDecipheriv('aes-256-cbc', key, iv);
|
var aesData = crypto.createDecipheriv("aes-256-cbc", key, iv);
|
||||||
aesData.end(input.slice(16));
|
aesData.end(input.slice(16));
|
||||||
var plaintext = aesData.read();
|
var plaintext = aesData.read();
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ function symmetricDecrypt(input, key, checkHmac) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return plaintext;
|
return plaintext;
|
||||||
};
|
}
|
||||||
|
|
||||||
function parseAppTicket(ticket) {
|
function parseAppTicket(ticket) {
|
||||||
// https://github.com/SteamRE/SteamKit/blob/master/Resources/Structs/steam3_appticket.hsl
|
// https://github.com/SteamRE/SteamKit/blob/master/Resources/Structs/steam3_appticket.hsl
|
||||||
@@ -70,11 +71,16 @@ function parseAppTicket(ticket) {
|
|||||||
// Start reading the ownership ticket
|
// Start reading the ownership ticket
|
||||||
let ownershipTicketOffset = ticket.offset;
|
let ownershipTicketOffset = ticket.offset;
|
||||||
let ownershipTicketLength = ticket.readUint32(); // including itself, for some reason
|
let ownershipTicketLength = ticket.readUint32(); // including itself, for some reason
|
||||||
if (ownershipTicketOffset + ownershipTicketLength != ticket.limit && ownershipTicketOffset + ownershipTicketLength + 128 != ticket.limit) {
|
if (
|
||||||
|
ownershipTicketOffset + ownershipTicketLength != ticket.limit &&
|
||||||
|
ownershipTicketOffset + ownershipTicketLength + 128 != ticket.limit
|
||||||
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
let i, j, dlc;
|
let i;
|
||||||
|
let j;
|
||||||
|
let dlc;
|
||||||
|
|
||||||
details.version = ticket.readUint32();
|
details.version = ticket.readUint32();
|
||||||
details.steamID = ticket.readUint64().toString();
|
details.steamID = ticket.readUint64().toString();
|
||||||
@@ -117,34 +123,54 @@ function parseAppTicket(ticket) {
|
|||||||
|
|
||||||
let date = new Date();
|
let date = new Date();
|
||||||
details.isExpired = details.ownershipTicketExpires < date;
|
details.isExpired = details.ownershipTicketExpires < date;
|
||||||
details.hasValidSignature = !!details.signature && SteamCrypto.verifySignature(ticket.slice(ownershipTicketOffset, ownershipTicketOffset + ownershipTicketLength).toBuffer(), details.signature);
|
details.hasValidSignature =
|
||||||
|
!!details.signature &&
|
||||||
|
SteamCrypto.verifySignature(
|
||||||
|
ticket.slice(ownershipTicketOffset, ownershipTicketOffset + ownershipTicketLength).toBuffer(),
|
||||||
|
details.signature,
|
||||||
|
);
|
||||||
details.isValid = !details.isExpired && (!details.signature || details.hasValidSignature);
|
details.isValid = !details.isExpired && (!details.signature || details.hasValidSignature);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
console.log("parseAppTicket: "+ex);
|
console.log("parseAppTicket: " + ex);
|
||||||
return details;
|
return details;
|
||||||
return null; // not a valid ticket
|
return null; // not a valid ticket
|
||||||
}
|
}
|
||||||
|
|
||||||
return details;
|
return details;
|
||||||
|
}
|
||||||
|
|
||||||
|
var proto = {
|
||||||
|
nested: {
|
||||||
|
EncryptedAppTicket: {
|
||||||
|
fields: {
|
||||||
|
ticketVersionNo: { type: "uint32", id: 1 },
|
||||||
|
crcEncryptedticket: { type: "uint32", id: 2 },
|
||||||
|
cbEncrypteduserdata: { type: "uint32", id: 3 },
|
||||||
|
cbEncryptedAppownershipticket: { type: "uint32", id: 4 },
|
||||||
|
encryptedTicket: { type: "bytes", id: 5 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
var proto_root = protobuf.Root.fromJSON(proto);
|
||||||
|
var EncryptedAppTicket = proto_root.lookupType("EncryptedAppTicket");
|
||||||
|
|
||||||
var proto={ "nested": {EncryptedAppTicket: { fields:
|
var outer = EncryptedAppTicket.decode(
|
||||||
{ ticketVersionNo: { type: 'uint32', id: 1 },
|
new Buffer(
|
||||||
crcEncryptedticket: { type: 'uint32', id: 2 },
|
"080110a7e59890031815204f2a80014527ad8cccd8cd9b7d3260529556004ddf0454a1c2e8543495b1eb72b3dff44d9d67555798ef44b7e3f97cf86d3bf1bc3f84a91de415c382b0d96033c8e5398f2b775bcb004f5487c651d81ef410d7d2917cbb407713397d2c29a455b6852eac7db1a0e52248585bd5440ef07de54b7519f67eefbad5420d97b77ef7e35450af",
|
||||||
cbEncrypteduserdata: { type: 'uint32', id: 3 },
|
"hex",
|
||||||
cbEncryptedAppownershipticket: { type: 'uint32', id: 4 },
|
),
|
||||||
encryptedTicket: { type: 'bytes', id: 5 } } }}};
|
);
|
||||||
var proto_root=protobuf.Root.fromJSON(proto);
|
var decrypted = symmetricDecrypt(
|
||||||
var EncryptedAppTicket=proto_root.lookupType("EncryptedAppTicket");
|
outer.encryptedTicket,
|
||||||
|
new Buffer("8af5c487af6c7709ef1a4e6e2275fcc0a90f57ae4319de793fca3d7ed8655520", "hex"),
|
||||||
|
);
|
||||||
var outer=EncryptedAppTicket.decode(new Buffer("080110a7e59890031815204f2a80014527ad8cccd8cd9b7d3260529556004ddf0454a1c2e8543495b1eb72b3dff44d9d67555798ef44b7e3f97cf86d3bf1bc3f84a91de415c382b0d96033c8e5398f2b775bcb004f5487c651d81ef410d7d2917cbb407713397d2c29a455b6852eac7db1a0e52248585bd5440ef07de54b7519f67eefbad5420d97b77ef7e35450af","hex"));
|
|
||||||
var decrypted=symmetricDecrypt(outer.encryptedTicket,new Buffer("8af5c487af6c7709ef1a4e6e2275fcc0a90f57ae4319de793fca3d7ed8655520","hex"));
|
|
||||||
let userData = decrypted.slice(0, outer.cbEncrypteduserdata);
|
let userData = decrypted.slice(0, outer.cbEncrypteduserdata);
|
||||||
let ownershipTicketLength = decrypted.readUInt32LE(outer.cbEncrypteduserdata);
|
let ownershipTicketLength = decrypted.readUInt32LE(outer.cbEncrypteduserdata);
|
||||||
let ownershipTicket = parseAppTicket(decrypted.slice(outer.cbEncrypteduserdata, outer.cbEncrypteduserdata + ownershipTicketLength));
|
let ownershipTicket = parseAppTicket(
|
||||||
|
decrypted.slice(outer.cbEncrypteduserdata, outer.cbEncrypteduserdata + ownershipTicketLength),
|
||||||
|
);
|
||||||
if (ownershipTicket) {
|
if (ownershipTicket) {
|
||||||
ownershipTicket.userData = userData.toString();
|
ownershipTicket.userData = userData.toString();
|
||||||
}
|
}
|
||||||
console.log(ownershipTicket);
|
console.log(ownershipTicket);
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
module.exports={
|
module.exports = {
|
||||||
"cfunctions_path":"./server/common_functions.js",
|
cfunctions_path: "./server/common_functions.js",
|
||||||
"functions_path":"./server/server_functions.js",
|
functions_path: "./server/server_functions.js",
|
||||||
"worker_path":"./server/server_worker.js",
|
worker_path: "./server/server_worker.js",
|
||||||
"data_path":"./server/data.js",
|
data_path: "./server/data.js",
|
||||||
"base_url":"https://yourappspoturldontincludedashes.appspot.com",
|
base_url: "https://yourappspoturldontincludedashes.appspot.com",
|
||||||
"keyword":"123",
|
keyword: "123",
|
||||||
"access_master":"123",
|
access_master: "123",
|
||||||
"bot_key":"123",
|
bot_key: "123",
|
||||||
"discord_token":"NDXXXXXXXXXXX...",
|
discord_token: "NDXXXXXXXXXXX...",
|
||||||
"apple_token":"acXXXXXXXX...",
|
apple_token: "acXXXXXXXX...",
|
||||||
"steam_key":"8aXXXXXXXXX...",
|
steam_key: "8aXXXXXXXXX...",
|
||||||
"steam_web_key":"B4XXXXXXX...",
|
steam_web_key: "B4XXXXXXX...",
|
||||||
"steam_partner_key":"F9XXXXXXX...",
|
steam_partner_key: "F9XXXXXXX...",
|
||||||
"close_timeout":24000,
|
close_timeout: 24000,
|
||||||
"ip_limit":3,
|
ip_limit: 3,
|
||||||
"character_limit":3,
|
character_limit: 3,
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
const path = require("node:path")
|
const path = require("node:path");
|
||||||
|
|
||||||
module.exports={
|
module.exports = {
|
||||||
"cfunctions_path":path.resolve(__dirname, "../js/common_functions.js"),
|
cfunctions_path: path.resolve(__dirname, "../js/common_functions.js"),
|
||||||
"functions_path":path.resolve(__dirname, "server_functions.js"),
|
functions_path: path.resolve(__dirname, "server_functions.js"),
|
||||||
"worker_path":path.resolve(__dirname, "server_worker.js"),
|
worker_path: path.resolve(__dirname, "server_worker.js"),
|
||||||
"data_path":path.resolve(__dirname, "data.js"),
|
data_path: path.resolve(__dirname, "data.js"),
|
||||||
"base_url":"http://thegame.com",
|
base_url: "http://thegame.com",
|
||||||
"keyword":"123",
|
keyword: "123",
|
||||||
"access_master":"123",
|
access_master: "123",
|
||||||
"bot_key":"123",
|
bot_key: "123",
|
||||||
"discord_token":"NDXXXXXXXXXXX...",
|
discord_token: "NDXXXXXXXXXXX...",
|
||||||
"apple_token":"acXXXXXXXX...",
|
apple_token: "acXXXXXXXX...",
|
||||||
"steam_key":"8aXXXXXXXXX...",
|
steam_key: "8aXXXXXXXXX...",
|
||||||
"steam_web_key":"B4XXXXXXX...",
|
steam_web_key: "B4XXXXXXX...",
|
||||||
"steam_partner_key":"F9XXXXXXX...",
|
steam_partner_key: "F9XXXXXXX...",
|
||||||
"is_sdk":1,
|
is_sdk: 1,
|
||||||
"close_timeout":4000,
|
close_timeout: 4000,
|
||||||
"ip_limit":3,
|
ip_limit: 3,
|
||||||
"character_limit":3,
|
character_limit: 3,
|
||||||
"fast_sdk":0,
|
fast_sdk: 0,
|
||||||
}
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user