Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Poent

Pages: [1]
1
Add-Ons / Dedicated Server Watchdog Program
« on: August 25, 2008, 12:37:26 AM »
I've recently been having a dedicated server up and running , allowing my sister and friends to play on the server while I was away. Unfortunately the server intermittently crashes for seemingly unknown reasons, resulting in me having to reload the dedicated.bet file. Getting tired of having to chug downstairs when the server crashes after we've been playing (usually with massive events or on the castle build i've been working on)and seeing a couple posts in the 'Help' section of the forums on the matter of the dedicated server crashing, I decided to create a program to monitor the server for me.

The program is simply named 'Dedicated Server Watchdog Program'. Simply enough, the program checks every 30 seconds to make sure that the server is running, and if it's not, it will reload it and check to make sure it reloaded successfully, then go back to idling.

Because this is built for a very specific purpose it has some specific requirements. First and foremost.. Blockland MUST be installed in: C:\Program Files\Blockland. on my main computer Blockland is installed in C:\Blockland... This will not work!
I will try to address this issue in any later builds of the program, but for now... Have blockland in that folder.

On top of this, DSWP needs to be ran from the same folder in order for Blockland to load accordingly.

Another side note:
You cannot run another instance of blockland at the same time on the same computer because of the way the check works. All other instances of Blockland.exe MUST BE CLOSED if you expect this to relaunch the server for you. Otherwise if the server crashes it will find the handle to the other instance and think that IT is the dedicated server.

Please feel free to ask and questions or give comments, I have included the source code for those of you who wish to learn about how it works. Otherwise, Because of the limitations put onto the forums to prevent uploading certain files, I have uploaded the program to Rapidshare which can be downloaded here:
 
v) 1.0
http://rapidshare.com/files/139901086/DSWP.zip.html


v) 1.1
http://rapidshare.com/files/140959091/DSWP.zip.html

Change Log:
 - Cleaned up the code
 - Added a "Freeze checker"
 - Continued Testing with Ubuntu.

Up-coming:
 - Dynamic File location
 - Crash log
 - Crash date stamps
 - GUI
 - Binary edition (Possibly *nix)
 - Mac edition (don't hold your breath)

Updated Source:
Code: [Select]
#include <windows.h>  // these are our preprocessors. Our API is defined here
#include <iostream>

using namespace std; //include the namespace lib. includes c functions (cout, cin)

STARTUPINFO          si = { sizeof(si) };   //This is a pointer to our "Start Up info" typedef
PROCESS_INFORMATION  pi;                    //This is a pointer to our process information (this is where we can grab the pid)
char                 szExe[] = "C:\\Program Files\\Blockland\\dedicated.bat";
HWND hwnd;
HANDLE phandle; //This is a typedef for the OpenProcess function
DWORD pid;   //this will store the PID of blockland.
DWORD result;
void info(); // Just moving the jibberish out of the way

int main(){
info(); //spits out our info and waits for the user
hwnd=FindWindow(0,"C:\\Program Files\\Blockland\\Blockland.exe");
if(hwnd){
GetWindowThreadProcessId(hwnd, &pid);
cout << endl << "the dedicated server is running under the PID:" << pid << endl;
cout << "Running Back checks..." << endl;
}
while(TRUE){
cout << "\nChecking if the server is up..." << endl;
hwnd=FindWindow(0,"C:\\Program Files\\Blockland\\Blockland.exe");
SendMessageTimeout(hwnd,WM_NULL,0,0,SMTO_BLOCK | SMTO_ABORTIFHUNG, 5000, &result);
if(!hwnd){
cout << "It appears that Blockland isn't up. Re-Launching...";
///*
CreateProcess(0, szExe, 0, 0, TRUE, 0, 0, 0, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE);
Sleep(2500);
hwnd=FindWindow(0,"C:\\Program Files\\Blockland\\Blockland.exe");
if(!hwnd){
MessageBox(0,"Unable to Re-Launch your dedicated server. Please make sure that you put this file into your BLOCKLAND folder",0,MB_OK);
break;
}
}
cout << endl << "Making sure it's not frozen..." << endl;
if(result){
cout << "It appears that Blockland is frozen running. Re-Launching...";
///*
CreateProcess(0, szExe, 0, 0, TRUE, 0, 0, 0, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE);
Sleep(2500);
hwnd=FindWindow(0,"C:\\Program Files\\Blockland\\Blockland.exe");
if(!hwnd){
MessageBox(0,"Unable to Re-Launch your dedicated server. Please make sure that you put this file into your BLOCKLAND folder",0,MB_OK);
break;
}
else{
GetWindowThreadProcessId(hwnd, &pid);
phandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
cout << "\n your dedicated server has been succefully relaunched." << endl;
}
}
else{
cout << endl << "Check passed, everything is fine" << endl;
cout << "Currently the PID of the hooked blockland server is:" << pid << endl;
//*/

}
Sleep(30000);
}
CloseHandle(phandle);
return 0;
}

void info(){
cout << "Dedicated Server Watchdog Program" << endl;
cout << " Created for Blockland V9" << endl;
cout << " 8/24/08 - Version 1.0 " << endl;
cout << "By: Poent" << endl;
cout << "\n\nThis launcher was designed to work with Blockland stored in:\n C:\\Program Files\\Blockland" << endl;
cout << "You will be able to change this is later versions, \nbut until then... leave it there." << endl;
cout << "\n\n By default, this program will check every 30 seconds \nto make sure that blockland is running." << endl;
cout << "If for any reason the dedicated server is \nnot found, it will relaunch 'dedicated.bat' and verify \nthat it successfully relaunched." << endl;
cout << "\n\n The watchdog program is now ready to launch. \nOnce you're ready to begin, Simply hit 'Enter'..." << endl;
cin.get();
}



The program seems to work great for me. While crashes dont happen too often, when they do happen it has been very useful to have this guy running. It works well and loads the server.

known issues:
Under windows vista, Computer that require Blockland to run under "administrative mode" must disable UAC, the program cannot continue and will fail if UAC is enabled.

The program will not load saved maps or bricks. unless there is a switch in Blockland that will allow the dedicated server to load a specified map, i don't know any way of allowing it to do so either.

2
Help / Other people saving my bricks?
« on: August 21, 2008, 11:18:28 PM »
I've recently been hosting a castle server as some of you have seen under "castle?". I just got a rather rude entrance by Bl xao B claiming that I MUST have stolen this build, and that it's simply too complex for someone in the 5000's to create.

While i do know that this build is my own, it seems pretty terrible that it's as simple as saving the build to steal it from someone. In the intrest of protecting myself, is there a way to prevent others from saving the map?

When speaking with BL Xao B he seemed to "get his proof" of it not belonging to me by trying to save it. He said that if it was mine I should get a save request. I have NEVER gotten one of these requests before on this castle and i Know that others have tried to save it, Why is this? and how can i fix it so that this build can once again belong to me?

Thanks for your help
~Poent

3
Help / server crashes
« on: August 21, 2008, 07:18:19 PM »
I've recently been hosting the "castle?" server creating a rather large scale castle in the bedroom. Because of the size of the castle, i really want to avoid having players build in it. so usually, before i save, i'll go into the admin menu and highlight all the bricks and decide if i want to save them or not. when i'm highlighting these bricks, the server will randomly crash. And it will not do it all the time. Ive gotten no error messages and the console log shows nothing.

Are there any solutions to this?

Thanks in advance.
~Poent

4
General Discussion / Lego Universe
« on: July 29, 2008, 02:38:26 PM »
Apparently lego liked badspots idea but didn't want to pay him for it.

Lego universe sounds almost identical to blockland with a little less user input.

Read the whole thing here.
http://gizmodo.com/5030426/exclusive-lego-universe-video-offers-games-first-glimpse?autoplay=true

5
General Discussion / block recovery
« on: June 22, 2008, 02:30:00 AM »
I just saved over a file that i spent many eons creating. It was saved over with a blank map, is there anything I can do to recover it?

All help is much appreciated.
~Poent

6
Suggestions & Requests / Brick counter
« on: June 21, 2008, 06:36:58 PM »
Would it be possible to create some kind of individual brick counter? There are a couple builds that I want to order parts for me to build in real life but I really don't want to count out how many of each individual piece i used.

even if it took some kind of save file brown townyzer rather than doing it in game it would be much appreciated.

thanks
~Poent

7
Modification Help / Custom Brick collision Problem
« on: June 14, 2008, 04:21:14 PM »
Some of you may have noticed my other post on creating custom bricks, first and foremost thats for the help. I was able to modify a 2x2x3 round brick to 2x2x6, and to get it to load successfully into the game using Badspots "Brick Add-On Example". There is one problem though...

The object has no collision. I can walk through it, and I cannot paint it or destroy it (nothing for the hammer or paint to hit).

The file attached includes a custom 2x2x3 round brick, that has 4 faces on the top and bottom, and 12 sides to round it out. Only dimensional changes were made. Just for the record, when placing the 2x2x3 brick script into the addon the same thing happens.

Here is the blb file...

Code: [Select]
2 2 6
SPECIAL

uu
XX
xx
xx
xx
dd

uu
xx
xx
xx
XX
dd

0
COVERAGE: //TBNESW
0 : 4
0 : 4
0 : 4
0 : 12
0 : 12
0 : 12
----------------- Top quads:
6

TEX:TOP
POSITION:
0    0    3
0    1    3
0.50 0.86 3
0.86 0.50 3
UV COORDS:
-1.0  1.0
-1.0  2.0
-1.5  1.86
-1.86 1.5
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:TOP
POSITION:
0     0    3
0.86  0.50 3
1.0   0    3
0.86 -0.50 3
UV COORDS:
-1.0  1.0
-1.86 1.5
-2.0  1.0
-1.86 0.5
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:TOP
POSITION:
0     0    3
0.86 -0.50 3
0.50 -0.86 3
0    -1.0  3
UV COORDS:
-1.0   1.0   
-1.86  0.5
-1.5  0.14
-1.0   0 
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:TOP
POSITION:
-0.86 0.50 3
-0.50 0.86 3
-0    1    3
-0    0    3
UV COORDS:
1.86 1.5
1.5  1.86
1.0  2.0
1.0  1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:TOP
POSITION:
-0.86 -0.50 3
-1.0   0    3
-0.86  0.50 3
-0     0    3
UV COORDS:
1.86 0.5
2.0  1.0
1.86 1.5
1.0  1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:TOP
POSITION:
-0    -1.0  3
-0.50 -0.86 3
-0.86 -0.50 3
-0     0    3
UV COORDS:
1.0   0 
1.5  0.14
1.86  0.5
1.0   1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1
----------------- Bottom quads:
6

TEX:BOTTOMLOOP
POSITION:
0.86 0.50 -3
0.50 0.86 -3
0    1    -3
0    0    -3
UV COORDS:
-1.86 1.5
-1.5  1.86
-1.0  2.0
-1.0  1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:BOTTOMLOOP
POSITION:
0.86 -0.50 -3
1.0   0    -3
0.86  0.50 -3
0     0    -3
UV COORDS:
-1.86 0.5
-2.0  1.0
-1.86 1.5
-1.0  1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:BOTTOMLOOP
POSITION:
0    -1.0  -3
0.50 -0.86 -3
0.86 -0.50 -3
0     0    -3
UV COORDS:
-1.0   0 
-1.5  0.14
-1.86  0.5
-1.0   1.0
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:BOTTOMLOOP
POSITION:
-0    0    -3
-0    1    -3
-0.50 0.86 -3
-0.86 0.50 -3
UV COORDS:
1.0  1.0
1.0  2.0
1.5  1.86
1.86 1.5
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:BOTTOMLOOP
POSITION:
-0     0    -3
-0.86  0.50 -3
-1.0   0    -3
-0.86 -0.50 -3
UV COORDS:
1.0  1.0
1.86 1.5
2.0  1.0
1.86 0.5
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1

TEX:BOTTOMLOOP
POSITION:
-0     0    -3
-0.86 -0.50 -3
-0.50 -0.86 -3
-0    -1.0  -3
UV COORDS:
1.0   1.0
1.86  0.5
1.5  0.14
1.0   0 
NORMALS:
0 0 1
0 0 1
0 0 1
0 0 1
----------------- North quads:
0
----------------- East quads:
0
----------------- South quads:
0
----------------- West quads:
0
----------------- Omni quads:
12

TEX:SIDE
POSITION:
0.50 0.86  3
0.00 1.00  3
0.00 1.00 -3
0.50 0.86 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
0.50 0.86 0
0.00 1.00 0
0.00 1.00 0
0.50 0.86 0

TEX:SIDE
POSITION:
0.86 0.50  3
0.50 0.86  3
0.50 0.86 -3
0.86 0.50 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
0.86 0.50 0
0.50 0.86 0
0.50 0.86 0
0.86 0.50 0

TEX:SIDE
POSITION:
1.00 0.00  3
0.86 0.50  3
0.86 0.50 -3
1.00 0.00 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
1.00 0.00 0
0.86 0.50 0
0.86 0.50 0
1.00 0.00 0

TEX:SIDE
POSITION:
0.86 -0.50  3
1.00  0.00  3
1.00  0.00 -3
0.86 -0.50 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
0.86 -0.50 0
1.00  0.00 0
1.00  0.00 0
0.86 -0.50 0

TEX:SIDE
POSITION:
0.50 -0.86  3
0.86 -0.50  3
0.86 -0.50 -3
0.50 -0.86 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
0.50 -0.86 0
0.86 -0.50 0
0.86 -0.50 0
0.50 -0.86 0

TEX:SIDE
POSITION:
0.00 -1.00  3
0.50 -0.86  3
0.50 -0.86 -3
0.00 -1.00 -3
UV COORDS:
0.2 0
0.8 0
0.8 1
0.2 1
NORMALS:
0.00 -1.00 0
0.50 -0.86 0
0.50 -0.86 0
0.00 -1.00 0
////////////// x minus
TEX:SIDE
POSITION:
-0.50 0.86 -3
-0.00 1.00 -3
-0.00 1.00  3
-0.50 0.86  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-0.50 0.86 0
-0.00 1.00 0
-0.00 1.00 0
-0.50 0.86 0

TEX:SIDE
POSITION:
-0.86 0.50 -3
-0.50 0.86 -3
-0.50 0.86  3
-0.86 0.50  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-0.86 0.50 0
-0.50 0.86 0
-0.50 0.86 0
-0.86 0.50 0

TEX:SIDE
POSITION:
-1.00 0.00 -3
-0.86 0.50 -3
-0.86 0.50  3
-1.00 0.00  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-1.00 0.00 0
-0.86 0.50 0
-0.86 0.50 0
-1.00 0.00 0

TEX:SIDE
POSITION:
-0.86 -0.50 -3
-1.00  0.00 -3
-1.00  0.00  3
-0.86 -0.50  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-0.86 -0.50 0
-1.00  0.00 0
-1.00  0.00 0
-0.86 -0.50 0

TEX:SIDE
POSITION:
-0.50 -0.86 -3
-0.86 -0.50 -3
-0.86 -0.50  3
-0.50 -0.86  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-0.50 -0.86 0
-0.86 -0.50 0
-0.86 -0.50 0
-0.50 -0.86 0

TEX:SIDE
POSITION:
-0.00 -1.00 -3
-0.50 -0.86 -3
-0.50 -0.86  3
-0.00 -1.00  3
UV COORDS:
0.2 1
0.8 1
0.8 0
0.2 0
NORMALS:
-0.00 -1.00 0
-0.50 -0.86 0
-0.50 -0.86 0
-0.00 -1.00 0
I believe that this:
Code: [Select]
0
COVERAGE: //TBNESW
0 : 4
0 : 4
0 : 4
0 : 12
0 : 12
0 : 12
is what would control the collision, but I havn't been able to identify how exactly it works.

It seems to me that the first 0 is the enable/disable trigger. 0 for off 1 for on. When enabled i can land ontop of what seems to be a 2x2x3 brick, but all modifications i make to "coverage" dont seem to effect the collision.

When reviewing some other .blb files I noticed that rather than a coverage section, there was simple a xyz collision field. for example it would be:

Code: [Select]
1

0 0 0
2 2 6

for a rectangular collision. because this is a special brick, I don't believe the game knows how to set up the collision files automatically, so it has to be scripted. 

any and all help with this would be much appreciated. with getting this to work, i'll keep playing around.
 ~poent

8
General Discussion / IRC?
« on: June 12, 2008, 04:19:55 PM »
Is there an IRC server for blockland? I've been having lots of small questions that take needlessly long amounts of time to find the answer too.


I remember way back when that there was an irc build into something like rtb. But thats sense died as far as I know. and if we dont currently have an IRC, then we need one. All homebrew sandbox games deserve an IRC.

9
Modification Help / .blb?
« on: June 12, 2008, 04:12:30 PM »
Over the past few years of my life I've been messing around with 3d modeling and the likes. I use cinema 4d and have found my nitch in making models with it. While wondering the forums, with the interest of learning about creating add ons and custom bricks, I spotted badspots Example add on brick.

I downloaded milkshape and spent a few hours messing with it and can crate some simple objects with it, but I like the flow and power of Cinema4d significantly more. The general shape management seems easier to control (and it's what I'm use too).

So far, I've been exporting the models from cinema 4d as .3ds and then importing them into MS3D. Then exporting them immediately as dts (because i cant figure out how to export as blb).

So far I've gotten everything to work except for any model created in cinema4d. The model is invisible when set down. and has no collision points of any kind. The model specifically i'm trying to load into the game is saved as a .dts, which is what i assume the problem is.

How can I export to blb? or how can i make dts work correctly for these custom bricks.

 because of the filetype limitations practiced by the forum I decided to not upload the files I've created. If someone wants to get a little more hands on with helping me just ask and i'll upload several models created with c4d.

Any and all help is much appreciated.
thanks,
~Poent

P.S.
If anyone here is interested in viewing some of my 3d art work head over to poent.deviantart.com

There is a mix of both 3d and 2d creations, just hit gallery and it'll show you what I've got uploaded.

10
Suggestions & Requests / Clone trooper Helm
« on: May 23, 2008, 03:13:47 AM »
Hey guys, As some of you may have noticed in one of my first posts here I mentioned that for the past 3 or 4 years i've carried around a small lego figurine in my pocket which just so happens to be a Clone trooper With a letter Z sharpied onto his back, named Zorf.

Zorf is a constructive little fellow, and I would very much like to introduce him into the world of blockland. however, being a clone trooper.. he has no face...



In light of this fact, it would be rude of me to have Zorf roam about the world of blockland without a helmet! which is where the request part of this topic comes in. Would someone please create a Clone trooper Helmet for my dear old friend? any and all help would be appreciated. 

Also, on note with suggestions rather than requests...  I really thing that there should be a dedicated tutorial part of the forums. A collaborative  place to put together tutorials for both modeling, scripting, and importing them into the game. I find that the way the forums are currently kind of mushed together into larger categories makes it hard to sift through.  And while I know there are tutorials around relating to things like importing weapons and sounds, they arn't a quick search away - as they should be. Making a dedicated section to learning and creating tutorials would also making learning for the newer modders a much smaller task.

Thanks guys.
~Poent
 
&

  ~Zorf

p.s.
I can provide some nice detailed pics of the helm if needed, just ask.

11
General Discussion / Whats up blockland?
« on: May 16, 2008, 05:50:42 AM »
Hello everyone,

first and foremost it's wonderful to see the blockland community still up and running after massive changes have been made and after such a long time of being online.

I played blockland when it was first mentioned in a PC gamer Magazine about a year and a half ago, and quit just before the release of retail and, rather than spending hours searching through hundreds of threads I thought I might as well ask my questions in a more compiled sort of way!

Before I quit playing, as mentioned, i had just heard of the release for retail blockland. Lego had turned down offers from badspot to officially license blockland under the lego name and in light of pushing forward he released blockland retail with some amazing changes to previous versions. The UI had changed the menus had all been reworked the blocks rebuilt and countless other things i cant even begin to list in terms of game engine modifications... The biggest change however.. or at least.. the most noticeable change was the conversion away from the copyrighted lego trademark. This is where my questions begin:

Understanding that, for various reasons, badspot really had to remove the lego design from basically the entire game. Under the circumstances that is completely understandable. But from what i've seen blockland is a very open game and has been moddified extensively by users all over the world, so...

 why has there not been a mod created to replace the ugly armless/legless figurine that retail comes with?

 Even if this mod is client side only, it would add so much more to the game if we could get that lego feeling again. Is there something preventing modders from making this change?

as for my next few questions their pretty straight forward...

first, has there been an official AiO or RTB mod released for retail? I see servers and threads dedicated to how cool rtb is yet i see no where to either test, beta, or download this mod. I used RTB because it allowed me to change so many aspects of the game, which brings me to my next questions.

Is there a way to turn off the restrictions placed on the character? through a mod or otherwise?
EG: turn off fall damage, turn on floating bricks, turn on build through bricks, or dynamically adjust flight power?

As in RTB or AiO, you could control various features under admin controls. this was what really made blockland for me. a full mod to remove the restrictions of real life lego building. and without it, its just not as fun.

and finally, what does compatability with vista currently look like? While I can get the game up and running under my 32-bit vista, if i switch the active window away from blockland, when i re-enter or re-engage the game, it crashes out. Is there a fix for this?



Pages: [1]