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.


Messages - Tendon

Pages: [1] 2 3 4 5 6 ... 52
1
Add-Ons / Re: [Server] No Chain Kills
« on: August 14, 2023, 10:52:48 PM »
minor bug, undoing a duplicated bot hole doesnt remove the bot though th server im on has like 500 trillion other addons so take it with a grain of salt
Checked it out.  When .delete(); is used instead of .killBrick() to destroy a bot hole, the bot will persist for a short time.

2
Add-Ons / [Server] No Chain Kills
« on: August 14, 2023, 05:35:05 PM »
chainkills: When you destroy a brick, and all of the unsupported bricks connected to it are also destroyed.

Add-ons such as the Floating Bricks add-on allow you to place bricks in mid-air, but don't give support to all connected bricks.
This may lead to situations where a stray hit of "Ctrl+Z" causes your entire building to be destroyed.

This add-ons modifies the Hammer, New Duplicator Undo, and Default Undo command to destroy bricks without causing chainkills.
The wand and destructo wand are unaffected, as causing chainkills is their primary purpose.

Download: https://leopard.hosting.pecon.us/dl/nylxy/Server_noChainKills.zip




v1.01
   + Fixed bug with undo stack head not moving if no trust on undo brick.
   + Added trust check when undoing duplications, to account for possible brick ownership changes.
v1.02
   + Optimized New Dup undo to use normal killbrick() when appropriate
   + Added case to delete bots faster upon brick removal

3
Modification Help / Re: Bricks and rain collision.
« on: June 30, 2022, 09:16:46 PM »
Oh.  Fairly complex mod there. That'll happen.

I remember there being a bug related to the length of animation or node names causing packets to occasionally be too large.  But that was most commonly an issue with custom playertypes and a few vehicles that use support_garage.

4
Modification Help / Re: Bricks and rain collision.
« on: June 29, 2022, 08:10:02 PM »
Never had that one before.  But I don't usually go heavy on the mods.

Does this happen even in default Blockland?

5
Modification Help / Re: Bricks and rain collision.
« on: June 27, 2022, 09:34:13 PM »
Not a bad idea.  The rain effect is already a clientsided box centered on the player's POV.

I cant remember the specific nature of the lag from rain blockers.  But I do remember about the lag from static shapes and how I dealt with that.  I believe it is likely a similar problem.



Static Shapes do not lag a server.  They lag a client.  You could throw 10000 static shapes on a dedicated server and it would not care.  But the moment you send information on the existence of those shapes to a client, the client is going to have some serious problems.  Even if the static shapes have basically no information attached to them.

So to fix this I used a SelectiveGhosting DLL to just- not send far away shapes to the client.

It used a system that arranged shapes in different areas into different groups, then trigger ghosting on/off on the different groups depending on the position of the player.
The shapes were grouped based on their position.  In a kind of big set of 3D zones.  The client would only recieve shapes from the nearest 18 zones.

I specifically didn't use container searches or raycasts, as Im told those kinds of searches lag when used en masse.  Just positional data and big groups that could be updated when shapes are created or destroyed.

Anyway, a system like that would require a DLL on the server, but might fix the performance issues related to lots of physics zones used as rain blockers.


Because Im talking about ghosting, that reminds me of a glitch you can use without a DLL to prevent an object from being sent to new clients who join a server.  Intangible walls and surprise hidden vehicles and such uwu.

6
Modification Help / Re: Possible for cars to go faster than 200 BPS?
« on: June 27, 2022, 08:54:21 PM »
Lowering the strength of the springs would be a good first step.  Thats what makes the jeep go all hippity hoppity when you lower its mass to 10.

The tires might have some relevant settings too.

The center of mass has a lot to do with keeping your vehicle upright.



If you want the vehicle to slide around or have trouble with hills, turn kinetic friction down on the tires.  You can also turn power off on various tires to make the vehicle front or rear wheel drive.  I believe its vehicleinstance.setWheelPower ed(wheelnumber[int], powered[bool]);

Ill often name the vehicle spawn something like "veh" then spawn a vehicle and turn the rear wheels off using _veh.vehicle.setWheelPowered(2,0);_veh.vehicle.setWheelPowered(3,0); to get a front wheel drive jeep.

7
Modification Help / Re: Bricks and rain collision.
« on: June 27, 2022, 02:19:30 AM »
I once made a mod to improve collision on ModTer bricks.  It used static shapes, so a neat side effect was that it blocked rain accurately.
https://blocklandglass.com/addons/addon.php?id=813

But then again, once you start throwing large numbers of special objects into a server it will impact performance.


Someone could probably make a mod that lets you define various areas you want covered, and places a thin resized/rotated static shape to block the rain. 
Maybe save the positional info as a special event so it gets saved/loaded with the rest of the build.

Not exactly an automatic system, but for set-pieces and pretty pictures it could work pretty nicely.

8
Modification Help / Re: Possible for cars to go faster than 200 BPS?
« on: June 27, 2022, 01:47:34 AM »
Tested a bit.  Seems the limit is 200 TUPS (400 BPS).
Took the jeep, raised the maxwheelspeed to 1000, then messed around with the mass.

300 mass caps me at 100 TUPS.
200 mass caps me at 150 TUPS.
150 mass caps me at 200 TUPS.

Lowering the mass further didn't make it any faster than 200 TUPS, just makes it more unstable.  The wheels keep breaking.
If you go too low, the jeep starts bouncing around because of the spring force.

This is the bottomprint loop im using to test the speed, prints out in torque units.
Code: [Select]
function speedloop(%c){cancel(%c.sl);%c.sl = schedule(40,%c,"speedloop",%c);if(isObject(%p=%c.player)){if(isObject(%v=%p.getObjectMount())){%c.bottomprint(mFloor(vectorDist("0 0 0",%v.getVelocity())),1,0);}}}
speedloop(ClientGroup.getObject(0)); //(or you could do speedloop(findclientbyname("Blah")); or whatever)


btw did you know one of the fields for tires is misspelled? longitudinalforce only has an effect if its spelled logitudinalforce cause the devs misspelled it and never fixed it.

9
General Discussion / Re: the stagnation of blockland
« on: February 09, 2022, 12:29:12 PM »
Hosting a server in this game is time-consuming and labor intensive.  And then once a server is hosted the guests are not exactly... nice, to the host.

10
This city map is fun to drift around in.  I like the layout of the streets.

11
General Discussion / Re: Contact for Dglider
« on: May 06, 2020, 09:51:49 AM »
Confusing, right?

My Dglider account got banned for trying to say goodbye in an awkward way when I was feeling like stuff and wanted to leave this game.

12
General Discussion / Re: Contact for Dglider
« on: May 05, 2020, 10:35:11 PM »
!

13
Suggestions & Requests / Re: Event_SaveLocation
« on: April 10, 2020, 11:20:56 AM »
I've kept nothing secret, I just said nothing of what you said would impact the event or saved config from it. The data would save after death, just like Item Saving which is why I said earlier it should be exactly like it except for location. It's pretty stand up and straight to the point.

If it saves beyond death, it should not store your location on your Player object, as that will get deleted.
If it saves through a rejoin, it should not store your location on your GameConnection object, as that will get deleted.
Of it saves through a server restart, it needs to store your location in a file on your hard drive, instead of just... in memory.

Anyway...  I have no way of testing this right now and I'm working off of memory here but-
Code: (server.cs) [Select]
registerOutputEvent("Player","saveTransform");
function Player::saveTransform(%this){if(isObject(%this.client)){%this.client.savedTransform = %this.getTransform();}}
registerOutputEvent("Player","loadTransform");
function Player::loadTransform(%this){if(isObject(%this.client)){if(%this.client.savedTransform !$= ""){%this.setTransform(%this.client.savedTransform);}}}

I sure hope that works.

14
I am reposting this because all of the images broke.  And someone is interested in it.

Please note, Blender has had a major update since I created this script.  I am told it will not work in the latest version of blender.



LegoPepper wanted to know how to use export.py from my recent project of porting Kitchen to v21.

About export.py

export.py from kitchen is the second version of the second rewrite of a mass exporter script for exporting collision shapes from blender.
It was made specifically for this project, to get around the limitations presented by Blockland's collision system.
Because of that, it should not be considered a general purpose tool.
I highly recommend modifying it, or taking pieces from it, to serve your own purposes.

Here is a commented picture outlining the various sections of the code and what they do.


You can download export.py here: https://leopard.hosting.pecon.us/download.php?f=cxinn

Using export.py

Requires Blender 2.78 and port's dts exporter.
Create a blender project with some visual shapes, and some collision shapes.

start blender


delete beginning cube


save as


create a new folder in blockland addons


name it


name and save file


copy export.py


into our new folder


there it is


Don't forget to create the shapes folder!

create a folder


name it shapes


let make a cube


there it is


rescale to 4. (S, move mouse, 4, return)


duplicate the shape (shift+D, hold middle mouse+movemouse, 0, return)


there it is


rescaling using the object properties (on the right, click, 2, tab, tab, 2, return)


let's make this easier to see


some more rescaling (click, 5, return)


now to use a modifier, we want to take cube.001 out of cube to leave cube with a hollowed out middle


selecting boolean


selected Difference, and Cube.001


apply the changes


delete the cutting object


there she be.  now we have to do collision


hit tab to enter edit mode.  it looks like some of the faces use more than four points, which blockland can't handle
the easiest way to deal with that is to triangulate the faces



done.  now we want to separate pieces of it off to use for collision.  the pieces we select will be turned into convex shapes.
selected a chunk of it



duplicate the selected piece (shift+d, hold middle mouse+move mouse, 0, return)


see how our selection isn't connected to the rest of the shape?
now we separate by selection (P, click)



i did the same for the other four sides, note the object list on the right
now we need to make these into convex collision shapes



delete edges and faces (A, A, delete, click)


they're all gone


now we fill in some new faces with the convex hull tool (Ctrl+V, click)


der we go


now we center the object on it's geometry so that the object bounds isn't all funky when we export (Ctrl+Shift+Alt+C, click)


I select bounds center for consistency, but median center will work too


i did the same process for the other three shapes



Now we have our shapes.



Name the collision shapes beginning with "col" so that Blockland doesn't freak out every time it tries to load them.
Name the visual shapes however you want.
Do not use dashes or other special characters in your object names.  Blockland uses these names to create datablocks.
You can use periods if you want.  export.py will automatically turn those "." into "DOT" when writing the script files.



Put the collision objects in a group.  You can use Ctrl+G to create a new group.  You can also use this button here:



Name the group "Collision-1".
I believe the name must be exact.




You can add objects to an already existing group by clicking here:


i did this for the other three collision shapes



Put the visual objects into another group.
Name this group "detail32"



Change your view to "Scripting" mode.




Load export.py





Modify the last line to reflect the location of your project.




Save the modified export.py



Save your project in case something get's messed up.



Click "Run Script"



View the changes in your project folder.
our script files


our shape files



Start Blockland, and test out your automatically generated map.
ho boy, my favorite game


.....


ahoi!


new game


custom


select your map
if it's one of my maps, you can only run one at a time



addons submit!


lan mode so we don't disrupt


loading


loading


loading


there it is!


it's in the ground because it was centered on 0,0,0
we could move it up in blender and reexport



but let's at least look at the bottom part


advanced


for


translucence


there it be


ow


it's a little stuck between the invisible ground and the object, but at least it didn't go through




If you run into problems, Blender has a console you can view by going to Window > Toggle System Console, and the source code for export.py is right up there ^.  While writing this tutorial, I forgot to make a shapes folder.  So blender screamed at me there was an error, and left a DETTEMPSHAPE in the object list.  That's just how things go sometimes.
:panda:

15
Add-Ons / Re: New Duplicator 1.6.2 + Minor Bugfix
« on: January 06, 2020, 02:36:36 PM »
Restrict fillbricks for any game in Blockland where the areas people are be allowed to build in, or the bricks people are allowed to use to build, should be limited.

Like in a CityRPG, or a Building Contest, or Fortwars.

Pages: [1] 2 3 4 5 6 ... 52