What exactly is the purpose of this script? What could it be for?
4 replies, posted
I came across something, it was on my computer, I don't know if I wrote it or if someone else wrote it, I have no idea. What could this be used for, what do you think it's for? It has no comments and no name i'm really curious as to what this is..
[code]
server = {};
server.bootvars = { "SERVER_MAX_SLOTS" };
server.config = {};
server.memory = {};
server.ports = {};
server.online = false;
function server:boot()
for k,v in pairs( self.bootvars ) do
if ( self.config[v] == nil ) then
print("SERVER INSTANCE COULD NOT BE STARTED DUE TO MISSING PARAMETERS ON BOOT.( " .. v .. ").");
return;
end
end
for i=1, self.config["SERVER_MAX_SLOTS"] do
self.ports[i] = {};
self.ports[i].connected = false;
self.ports[i].portnumber = i;
self.ports[i].user = nil;
end
self.online = true;
end
function server:setParameter( parameter, value )
self.config[parameter] = value;
end
function server:getParameter( parameter )
return self.config[parameter] or nil;
end
function server:onUserConnect(player,port)
print( player:SteamID() .. " connected on port " .. port .. " !");
end
function server:openInstance( tbl )
tbl = tbl or { };
setmetatable( tbl, self );
self.__index = self;
return tbl;
end
function server:connectUser(player)
if ( self.online == false ) then return end;
-- find a open port
for port,data in pairs( self.ports ) do
if ( data.connected == false ) then
self.ports[port].connected = true;
self.ports[port].user = player;
self:onUserConnect(player,port);
return;
end
end
end
function server:disconnectUser(player)
if ( self.online == false ) then return end;
for port,data in pairs( self.ports ) do
if ( data.user != nil ) then
if ( data.user == player ) then
self.ports[port].connected = false;
self.ports[port].user = nil;
end
end
end
end
function server:setMemoryCellVar(cell,var,value)
if ( self.memory[cell] == nil ) then
self.memory[cell] = {};
end
self.memory[cell][var] = value;
end
function server:getMemoryCellVar(cell,var)
if ( self.memory[cell] == nil ) then return nil; end;
if ( self.memory[cell][var] == nil ) then return nil; end;
return self.memory[cell][var];
end
// not done
function server:networkVarToPorts(var)
for port,data in pairs( self.ports ) do
if ( data.connected == true ) then
local user = data.user;
umsg.Start("instanceNetworkVar", user );
if ( type(var) == "string" ) then
umsg.String("string");
umsg.String(var);
elseif( type(var) == "number" ) then
umsg.String("number");
umsg.Short( var );
end
umsg.End();
end
end
end
include( "world.lua" );
----
-- test
----
INSTANCE_ONE = server:openInstance();
local instance = INSTANCE_ONE;
instance:setParameter( "SERVER_MAX_SLOTS", 5 );
instance:boot();
[/code]
could it be for having multiple instances of a server running on one server? ( didnt say that properly , i hope you got the idea though )
It's an interesting script though
i looked in the world.lua that is included in there, it renders a grid, i think this was meant to be a 2d game i was making sometime a long time ago.
[url]http://filesmelt.com/dl/grid1.png[/url]
[code]
-----
-- ALPHA!
-----
world = {};
world.grid = {};
function world:generateRandomSize()
return math.random( 100, 500 );
end
function world:generate(numRooms)
if ( numRooms == nil ) then
numRooms = self:generateRandomSize();
end
for tile=1,numRooms do
self.grid[tile] = {};
self.grid[tile].tilenumber = tile;
self.grid[tile].texture = "";
end
end
function world:getTile(tile)
return self.grid[tile] or nil;
end
function world:rendergrid(rowsize)
self.renderGrid = {};
-- The number of how many rows.
local NumRows = #self.grid / rowsize;
local startRow = 1;
local endRow = 1*rowsize;
for row=1, NumRows do
self.renderGrid[row] = {};
for tile=startRow, endRow do
self.renderGrid[row][tile] = self.grid[tile];
if ( tile == endRow ) then
-- do the math the loop is gonna end.
startRow = endRow;
endRow = endRow + rowsize;
end
end
end
end
function world:getRenderGrid()
return self.renderGrid;
end
world:generate(100);
world:rendergrid(10);
[/code]
That is probably the reason I put everything into my TEMP folder and then delete everything in there.
That way I don't find files and ask myself a question "Wtf is this?"
just for the hell of it, look what i done did:
[URL=http://filesmelt.com/][IMG]http://filesmelt.com/dl/grid2.png[/IMG][/URL]
[code]
function GM:HUDPaint()
local GRID_ORIGIN_X = 5;
local GRID_ORIGIN_Y = 5;
local RENDER_GRID = world:getRenderGrid();
local TILE_POSITION_X = GRID_ORIGIN_X;
local TILE_POSITION_Y = GRID_ORIGIN_Y;
for _,row in pairs( RENDER_GRID ) do
for k,v in pairs( row ) do
draw.TexturedQuad({
texture = surface.GetTextureID(v.texture),
color = Color(255, 255, 255, 150),
x = TILE_POSITION_X,
y = TILE_POSITION_Y,
w = 20,
h = 20
});
TILE_POSITION_X = TILE_POSITION_X + 20;
end
TILE_POSITION_Y = TILE_POSITION_Y + 20;
TILE_POSITION_X = GRID_ORIGIN_X;
end
end
[/code]
okay now let this thread die because i feel stupid for forgetting my own work.
Sorry, you need to Log In to post a reply to this thread.