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 - BobAndRob

Pages: [1] 2 3 4 5
Is it just me, or is this totally inspired by Blockland?

It may pretend to be Tetris.... but the studs! They're unmistakable!

Off Topic / Please help me find a "This image has been removed" post
« on: December 01, 2011, 07:24:30 PM »
You all know what I'm talking about. Sometimes, you're reading a thread, and then its like:

And this is what my cool awesome thing looks like:

[Sorry, this image is no longer available - sincerely, the image hosting service]

I think it happens with imageshack, flickr, and photobucket, I'm just trying to find an example and cant, care to help me out?

I was scripting something where I needed to inform a user that their brick was misplaced by X amount, and realized I had no units for that amount.

With regard to Lego bricks, we all know

as a stud.

Except for you clearly-not-lego-enthusiasts who call them "bumps".

But, in Blockland, I'm at a loss for words as to what to call

I did some searching around, and it seems different people call it different things, but there is no definitive name.

So... care to help me out in establishing ONE name that it shall be called from now on?

Post below with what you think it should be called, and I'll create a poll from the most popular options so we can finally establish a standard for this.

EDIT: It'd be nice it Badspot popped in here and gave us his official take on it.

General Discussion / TGE Telnet Debugger Remnants
« on: October 14, 2011, 11:10:44 PM »
Dear Badspot,

What's the story behind the old TGE debugger (where you could telnet into a given port and provide a password and get console access).

Did you remove the functionality? If so...
Code: [Select]
 -dbgPort <port>            Set debug port (default = 28040)
  -dbgPassword <pass>    Set debug password (default = password)
  -dbgEnable                    Start game in debug mode
then why are the options still listed when you pass -help?

Also, telnetSetParameters(port, consoleInputOutputPassword, consoleOutputOnlyPassword) exists, but does not act as the TGE documentation would suggest. (Blockland doesn't (as far as I can tell) attempt to bind to the specified port.)

Also, just curious, why doesn't stdin (on mac) pass input to the console... that would make things so much easier.

I wanted to have remote console access, so after exploring all of the (supposedly) pre-existing options, I ended up just implementing my own via tcpObjects and eval().

On a somewhat related note, what is the proper way to stop a dedicated v20 server on mac. I need to either force-quit the application (the 2nd one that starts, because exits as soon as the server starts), or do
$ killall Blockland

How does the value of overflowImage of a GuiBitmapCtrl change how the image is rendered.
Common sense would lead me to believe that if I were to leave wrap off, and the size of the image is greater than the extent of my GuiBitmapCtrl, the image would extend past the bounds of the gui element, however this is not the case.
I can't find any relevant documentation, and so far I see no difference when experimenting.

Also, GuiBitmapCtrl::setActive() appears to have no effect...  but then why would it exist?

I also want to be able to maintain an image's original size (1 pixel in the image file is 1 pixel rendered on screen, no antialiasing) and so far it appears the only way to really ensure that is to use GuiBitmapCtrl.wrap=1, but I really want to avoid wrapping the image.

Also, GuiBitmapCtrl.setValue() allows you to specify an offset (from the bottom left corner?) of the image to place at the bottom left corner of the GuiBitmapCtrl, however I want to be able to do the inverse (have the image start with the bottom left pixel of the image at an offset from the bottom left pixel of the guibitmapctrl). As you can see in the screenshots provided, simply specifying a negative offset doesn't solve this problem. (NOTE: the reason i want to avoid wrapping the image as stated above is because I want to be able to have an offset such that part of the guibitmapctrl is transparent, instead of viewing the other edge of the image.) The only way I can really think of doing this is setting the extent of the guibitmapctrl equal to the size of the bitmap, and then putting the guibitmapctrl inside another gui element (i tested it with a GuiControll) and that seems to work, although this leaves the problem of determining the proper extents and positions. (The position needs to be based off of the extent, which needs to be based off of the dimensions of the bitmap (as not to scale it) and I don't have a reliable way of getting that.)

Finally, GuiBitmapCtrl::getPixelColor() return values that do not reflect the actual color being displayed, is this a bug?

I think the GG forums may be the place to go for these questions, however overflowImage appears to be specific to blockland, so I'm starting here.

Off Topic / Any mouse recommendations?
« on: March 22, 2010, 10:22:39 PM »
I am looking to buy a new mouse, and was wondering if anybody had any suggestions of what is good/what to stay away from etc.

I was looking at razer mice as a friend of mine got one last year and it was pretty nice. This one in particular.

I'm mainly looking for something that's comfortable to use, is reasonably responsive, and doesn't need proprietary drivers so I can use it in any OS, but I've never bought a good mouse before, so I don't really know what else to look for.

I would really appreciate any suggestions you might have.
Edit: Okay, maybe not if they're like skip's.

Modification Help / Ammo = " "?
« on: March 12, 2010, 11:49:55 AM »
In every weapon image datablock, there's an ammo field. In each case I've seen it, it's been like so:

Code: [Select]
datablock ShapeBaseImageData(gunImage)
   ammo = " ";

Allways set to space.

Does anybody know what this is used for?

Modification Help / Mounting a vehicle on another vehicle
« on: January 19, 2010, 10:16:36 PM »
Is there a way I can mount a vehicle on another vehicle, or can I only mount players on vehicles?

Suggestions & Requests / User specifiable fields for BLS fields
« on: January 14, 2010, 08:55:36 PM »
I want the ability to add fields of bricks to be saved when bricks are saved.

For example, when a brick is saved, a +-Owner fiels is saved, I would like to be able to force save files to include my own fields. I wrote an event that allows any brick to be turned into a water brick with a given current. When I save and load these bricks, I need to know which bricks were water bricks (my script dynamically creates physicalZones, and does not create new datablocks, so uiNames are out of the question). Currently I am doing this by checking if the brick had fxWater as its shapeFX, however there is no way to know what the current of the water was. I would like to be able to tell saves to be saved with a +-Current field that, when loaded would set brick.current (or whatever) to be the value it had when it was saved.

Modification Help / Crash in recursive projectile explosions
« on: January 11, 2010, 02:48:08 PM »
I wanted to write a system that lets projectiles spawn other projectiles when they explode.
Here's what I got:
Code: [Select]
//part of a package with tons of other stuff in it too.
function projectileData::onExplode(%this, %obj, %pos) {
if(isObject(%this.subProjectile)) {
%inheritVel = vectorScale(%obj.getVelocity(), %this.subProjectile.velInheritFactor);
if(%this.subProjectileCount $= "")
%this.subProjectileCount = 1;
for(%i = 0; %i < %this.subProjectileCount; %i++) {
%vel = mCos(mDegToRad(getRandom(0, 359))) SPC mSin(mDegToRad(getRandom(0, 359))) SPC mCos(mDegToRad(getRandom(0, 179)));
%vel = vectorNormalize(%vel);
%vel = vectorScale(%vel, %this.subProjectile.muzzleVelocity);
%vel = vectorAdd(%vel, %inheritVel);
%vel = vectorClampF(%vel, 0, 200);
%p = new projectile() {
dataBlock = %this.subProjectile.getID();
initialPosition = %pos;
initialVelocity = %vel;
sourceObject = %obj.sourceObject;
sourceSlot = %obj.sourceSlot;
client = %obj.client;
parent::onExplode(%this, %obj, %pos);

You can add projectileData.subProjectileC ount and projectileData.subProjectile and it works quite well.

When I have projectile1 explode to projectile2, and projectile2 explode to projectile1, the engine crashes. As far as I can tell, it's not just some simple infinite loop grabbing a ton of memory problem as it might seem at first.

So far it hasn't crashed the first time a projectile in the loop explodes though.

Traces show nothing odd, dumping the projectiles shows nothing odd, I really don't have any clue why the engine crashes.

Oh, and here's the vectorClampF() I wrote for limiting the projectile velocity to 200.
Code: [Select]
function vectorClampF(%vector, %min, %max) {
return vectorScale(vectorNormalize(%vector), mClampF(vectorLen(%vector), %min, %max));

Modification Help / [SOLVED] Player Trail Emitter
« on: January 09, 2010, 12:22:26 PM »
How might I make a player constantly emit a given emitter?

I looked around for an add-ons that does this as a reference to figure out how, however it appears it has never been done.

I accidentally discovered a solution while inspecting the admin camera.

You create a shapeBaseImageData which emits whatever emitter you want, and mount it to whatever you want. In my case, a player.

The reason I couldn't figure this out was because I was looking for some way of directly having a player act as an emitterNode, however that is not possible (as far as I can tell).

Modification Help / Crash due to projectile bounce in ::onCollision()
« on: January 08, 2010, 10:24:23 PM »
There should be a 25% change someProjectile will bounce when it hits something, otherwise it will stick there until the end of its lifetime, then explode.
Code: [Select]
function someProjectile::onCollision(%this, %obj, %col, %a, %b, %c, %d) {
if(!getRandom(0, 3))
parent::onCollision(%this, %obj, %col, %a, %b, %c, %d);
For some reason, the engine crashes when this function is called.

I suspect this is a stupidly simple problem with my use of ::bounce(), however I am unable to find out exactly what the problem is.

Could somebody please put me on the right track to fixing this.

You can change what tool a client is using just as if they had selected it themselves via calling serverCmdUseTool(), however the client still does not change what tool is shown as being selected in the tool gui.

For example, say I have the wrench selected, and I press my "Inventory Up" remap, I get the following:

But if I have the wrench selected and I call serverCmdUseTool(myClient, 0) I get the following (item selected in the gui not matching the mounted image):

Is there any way to tell the client to update the tool selected in the gui?


I have a projectile with custom model (and that's where the problem is) and the model is only shown if you are really close to the projectile. "Really close" being within about a one torque unit (whatever they're called) radius.

When I change projectileShapeName to bullet.dts, it works as expected with no visibility issues.


Don't try to do anything fancy with empties named shape or detailX or whatnot, your exporter takes care of that. Just export it normally with the default settings.
I removed all the empties, and let the blender dts exporter "set up the hierarchy automatically" and the projectile was visible at any distance.

Thank you Amade.

Scaling all particles in an explosion without creating un-necessary datablocks
December 26, 2009, 10:50:43 PM    
I have a bomb (vehicle), and in the interest of saving datablocks, I'm using the standard vehicleFinalExplosionEmitters, and I only changed the projectile/explosion for a different damage type/amount/radius.

Is a way to uniformly increase the particle sizes without creating any new emitter/particle datablocks? If so, could somebody please point me on the right track to finding this as I'm stumped right now.

I tried researching this first, and the only thing I could find was to scale the projectile, however this doesn't appear to change the size of the explosion particles, only the damage that is done, and the physical projectile shape (although in this case there is none, its lifetime is 0).
Creating new emitter's isn't the end of the world, I just like to optimize everything as much as I possibly can.

Pages: [1] 2 3 4 5