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

Pages: [1] 2 3
1
General Discussion / On bad admins and admin gimping:
« on: November 10, 2012, 01:54:18 AM »
This deserves a topic mostly on account of if I don't give it its own topic other ones will eventually be filled with me telling people to loving off themselves so they can't breed.


Why the forget do people keep telling modders not to give admins power? In the discussion of every single large-scale server modification - whether it's CityRPGs, DRPG, trench wars, or anything else - you will see users saying "Don't give admins the ability to do X thing because they will abuse it".

This is nothing to do with the modder. Modders, when developing mods like this, where admins will have some system other than building or being an starfish to manage, should give those admins the tools to do so. Granting money in CityRPG and items in DRPG, instant digging in trench wars - these are important tools to help deal with the everyday bullstuff you bunch of loving handicaps inflict on each other whenever you play these things. If you're running a server, someone, somewhere is going to find some way to forget with the systems in it and ruin someone elses time on the server. It is an admin's responsibility by wont of them being a loving admin to deal with this stuff and try to ensure that the server runs smoothly, and with game servers this includes making sure that people who abuse the system are removed.

Sure, that's reactive, not proactive measures. If the person doesn't have a prior reputation, you will only know they're going to forget with others once they do it. The administrator can then remove them from the server - but systematically they have probably caused damage. If the player is removed, it's only fair to roll back the damage they inflicted. People constantly scream to not give admins the tools to do this, based on the fact that bad admins will abuse it. And note the choice of words there - the fact. They will abuse it.

People are so concerned with bad administrators that they refuse to acknowledge there is also good administrators. Admins who will, if the tools are made available to them, use them to help others when stuff goes foul. And it will go foul, as for every bad administrator there's also a handful or more of bad players who are often every bit as capable as the administrator of ruining your stuff.


You cannot fault a modder for people abusing administrative tools, as that is the fault of the administrators, not the modder. Blaming the creator of a mod for servers using it sucking is blaming entirely the wrong party - because if a server is run by capable people who actually know what they're doing and aren't loving around, people will enjoy it even if it's running something as ungodly loving terrible as Jorgur's RPG.

And if a bad admin wants to forget with you, they'll always be able to kick or ban you. There's no loving point in removing their other tools.


Note that this entire rant is also cross-applicable to Badspot's blocking of access to script functions. There are bad modders who will only break things - intentionally or not. There are troll modders who will deliberately abuse script to forget with others. And there's still modders who just want to make mods, and they're getting punished for the stuff others do.

2
I'd like to see in the spec for defining a gamemode, some way to define that your gamemode is "compatible" with other add-ons, and giving users the option to enable add-ons they have that the gamemode is compatible with (so think of the Custom gamemode as a gamemode that implements no special functionality and is compatible with everything)

It would also be nice to have patterns with that, like "Weapon_*" if you want users to be able to enable any weapons, but for someone who releases their gamemode as modules such as McTwist's old RP Core set, you could simply define that it is compatible with your set of add-ons - rather than writing your entire own settings system for enabling and disabling components and having to include everything, or users having to show their servers as using the Custom gamemode if they use something that isn't identical to the base gamemode.

3
Gallery / Delicious Food Showcase
« on: August 12, 2012, 04:14:56 PM »


If it is not obvious, this is FOOD. There's pizza, giant mutton legs (from giant sheep), creamy mushroom soup, and black forest cherry cake for dessert. As the butler was absent, the chairs could not be withdrawn from the tables, so as you can see Ephialtes was instead seated upon a mutton leg. Eating utensils are not supplied, as plastic hands are easy to clean.


These screenshots are taken on High shader quality, but it does not look significantly different on Minimal. This is because it's entirely enclosed, and uses old style lights which are now delicious due to per-pixel instead of vertex lighting. There is four ambient orange lights in total - originally, the sconces around the walls also had dim lights, but the renderable light limit is still low so they don't show. They were removed for consistency, and as a result it's somewhat dark towards the walls, but still fairly well lit.

4
Let's get this out of the way first:
tl;dr: Get out. If you cannot be bothered to read it, have fun with your apathy but go somewhere else.

So I've been having a discussion with Jimmg, Fob and now Marcem about modding as it stands now for Blockland. I see it as horribly limited in a number of ways, and Badspot's never been particularly intent on fixing this, but Fob did remind me of when Warground and Stulle were talking about the 128k brick limit and after Stulle posted about it and the community got together about it, that did get changed, so hey, let's give this stuff a try.


What is abusable?

EVERYTHING. Anything useful can be abused. Nothing is "just good", and locking features that are "abusable" is stupid - because they will always have legitimate uses aside from the abusable ones. Locking out starfish skiddies also locks out legitimate people who want to make nice things for people to play with.

So in the past, Azerath and Truce made some scripts to impersonate other players. It changed their player's appearance to the target player, and their shapename. Because the shapename basically identifies you as a player, normal people couldn't really tell the difference. This is a particularly extreme example (actually it's only one of two, but it is the worse example) - after this happened, the ability to set shapenames on players or even AIplayers and the ability to even create an AIconnection with a static name - all removed, to prevent people impersonating other players.

But was this really a problem? This was an administrator on the server being able to abuse some feature to annoy someone else - not any player on any server. This would effect you on a server that was actually running this abusable script. ONE SERVER. When did "if the server's bad, don't play on it" stop being applicable? As I see, people still say it all the time. Moreover, by the logic that this removal was justified by, you shouldn't be able to kick or ban either, because what if the player doesn't deserve it? That's abuse! Quick, remove administrative functions! Oh, but they have legitimate uses, you say?

The removal of this feature also prevented us from, say, creating bots that mimic the actions of players and look like other players in the game. Not necessarily impersonating someone, but simply a bot who is capably the same as a player. Or an NPC in some gay RPG looking like an actual normal player entity, which allows you to feel that you're actually part of the world rather than being explicitly different, or a monster being identifiable by a name or showing health above its head.


The second example is player tracking. This is more abusable - allowing any client to track any player they have ghosted - since it allows a client to have an aimbot and thus ruin others experience on any deathmatch server they're on (though they're not explicitly unkillable). However, the locking of this feature also prevents the compass mod from tracking players the server tells it to - like your teammates or players you have line of sight to - so coordination via an in-game radar isn't possible, thus making team games kind of suck since you've gotta rely on an agreed upon plan that might forget up any moment, or typing to coordinate, or these people being people you're comfortable with voicechatting with via an external client. I can sort of understand this one being shut down since it does actually allow a player to cheat on any server, but a complete lockout is a stuff way of doing it.


In both of these cases, it's mostly modders being gimped. There were better solutions - like automatically adding a tag to one shapename if another shapename of the same exists, or locking down player positions clientside until the server tells you that ghost object is allowed to be tracked via a clientcmd - but ultimately modders lost access to both of these things for them being "potentially abusable" and then being abused by a few bad eggs. Sure, 'smart' locking them is more work - but I wouldn't think it would be a great deal more.



The limitations

Modding Blockland has a lot of limitations. They're mostly pretty minor individually, and I certainly couldn't list them all - they're things you run into that prevent you from doing something when you actually try, which is frustrating. They're not things you expect. Some are issues with the engine, and I accept that there are legitimate technical reasons these cannot feasibly be fixed. Some are simply issues with things Badspot's added in, however. Sure, I'm grateful that the things that are there, are there - but if you do not criticize nothing will improve. "I love breathing, but I'd also really like to eat."

To actually give examples, a few things I've found that I can't do, that would probably be reasonably simple fixes:

  • You cannot raycast on the client. This stopped me from adding clientside replication of the agile player's movement, allowing players with higher ping to use it - as the client knows nothing about how to move with the agile player code, you will be jerking all over the place as the server  bombards you with "no that's the wrong position". I'm not exactly talking about 2000 ping here - 100+ makes it difficult and 200+ is practically impossible since every fifth of a second you go back in time. And I average 300 ping to most servers due to living in Australia - I can't even play with my own mod. Not like it was ever really popular though, since it didn't shoot bullets.

  • You cannot push the events dialog to a client. This I could fix with a mod - but then there's the issue of people not having that mod, so it's broken for them. Incompatibility sucks. Additionally, the events system is, on the back end, built to support classes other than bricks. You can add input events to any class, but the events dialog is as far as I can see hardcoded to use bricks, and there's no way to open it aside from via the wrench dialog. What about objects you can't hit with a wrench or that aren't bricks? What about eventing minigames to make them interactive?

    And don't say "Oh but we have minigame events" - we have brick events that minigames call on bricks. It's not the same thing. It's a hack workaround. If you could event a minigame directly - or any other object - you could build an interactive system of actual components, allowing eventing to become more than just a toy and actually become a powerful system for creating content, open to ordinary players.

    I'd also love to see input lists filtered by datablock properties, but that would probably actually be a fair bit of work. (I'm talking about being able to set an 'isJVS' property on JVS bricks and only have the content events show for those bricks, since no other brick can use them. Would make the lists much tidier.)

  • With the player persistence script you can't unregister saving of player positions or tools. These are saved and loaded directly in the functions, with no regard for the list. What if your mod wants to use persistence, but you don't want to restore player positions? What if you want to save player score for your deathmatch, but you don't want them to spawn where they left? Well, you're just going to have to package over the spawn and deliberately push them back to a normal spawn point. Or edit the script - but that is just ignoring the benefit of having a default, always-available interface for this.

That brings me to the third point:



Why I hate the launcher

While I completely respect Badspot's right to update his game whenever he likes, and believe the launcher is a good gateway to this, I cannot stress enough how much I hate its implementation. It always overrides every base file - even if they haven't been changed. Even if it's a configuration file packaged by default that's missing - like if you want to have nothing in your brick defaults. This wastes time (the launcher takes a good five to six seconds to finish running and open the game - and if I want Blockland pinned to my taskbar I have the game open as another icon which is annoying) and actually inconveniences you, the end user. But how, you ask? A number of files are perfectly safe to modify. Like brick textures, GUI bitmaps and the like. In fact, a lot of people dislike the default brick textures. And sure, we have a hack workaround. But I don't see why people who don't break their game should have to be treated as idiots. So once again, an issue is met with a blunt, simple solution - it works but it could work a lot better with a bit of polish.

Moreover, the launcher was made to facilitate more common pushing of smaller updates. And what did that achieve? A pumpkin brick. Teledoors. Small mods that anyone else could have made, rather than actual game changes that are not exactly a responsibility but are Badspot's essential sole domain. Small mods to make common players happy. And that's fine! I like the pumpkin. I have some back-of-the-mind issue with Teledoors, but I can't remember what it is so it's nothing. There's no big glaring issue with these little fun things - but the actual promise made when the launcher was created is still sitting there, touched on but ultimately unfulfilled. Little fixes to the game to make the people who are vocally dissatisfied calm down shouldn't be a big issue with the launcher - and while I am writing a lot, I'm not asking for much. I'd be happy with at least an explanation of why these things are apparently totally loving impossible. Well, I'd be less annoyed, anyway.



And that, ladies and gentlemen, is the story of how my experience with Blockland ultimately turned me into a bitter man. I love the game. I've never been able to quit, and I've tried many a time. Blockland is where I learned about coding. It's where I've drawn inspiration from, and where I've come to make things. It's my goddamn comfort zone, and while a lot of people have been around longer than me, I've got a bunch of good memories from this game. And I'd really loving love to see it become more popular. GMod's probably sold more copies than Blockland to people who only want to play TTT, and I'd love to see that kind of opportunity come up for us here. More than that, opening more doors for intelligent people might get more intelligent people in, and enhance the overall quality of the community. Or it could make more money. However you want to look at it, it's not gonna be a huge amount of work in the short term and there's really no way it can make things worse.

If nothing else, I want to actually get a serious response from Badspot about this, rather than some dismissive piece of stuff half-answer. I want to at the very least know why my views are invalid if they're going to be treated as such.

5
Add-Ons / Dice and Coins - Try your luck
« on: March 24, 2012, 06:21:53 AM »
This is a simple mod. So simple that I literally cannot be forgeted to upload it to RTB and wait thirty to fifty times the length of time it took to make for it to be made available.

Script_Dice.zip

This adds three commands:
/roll AdB[ħbonus] [comparison] - Roll A B-sided dice, such as '2d6' for two six-sided dice. Up to 1-15 dice of 3-100 sides by default. Samples:
  • /roll 1d6 - One six-sided dice.
  • /roll 1d6+2 - One six-sided dice with 2 added onto the result.
  • /roll 1d6-1 - One six-sided dice with 1 subtracted from the result.
  • /roll 1d6+2>5 - One six-sided dice with 2 added onto the result, with a success message if the result is over 5.
/proll AdB[ħbonus] [comparison] - As with /roll except only you will see the result.
/flip - Flip a coin for heads or tails.

This now also adds an event:
Brick -> rollDice [ Input, Sub Data ] - Input is the same format as /roll and /proll. Sub Data is the same format as VCE sub data for ifValue/ifVariable - If a comparison is present in the input, it will process onVariableTrue/onVariableFalse the same way VCE does. If no comparison is present, this value is ignored.
The input supports variable replacers, though if the result is erroneous a message will be printed to the client who activated it.

There's some prefs (not added to RTB's pref manager) at the top of server.cs if you want to change them.
A note: With $Dice::HardErrors set to 0, if someone tries to roll more dice than $Dice::MaxCount or with more sides than $Dice::MaxSides, the values will be modified and no error will be thrown.

6
Suggestions & Requests / Minor feature requests
« on: February 07, 2012, 04:42:51 AM »
Okay, in light of kompressor's resurfacing (again), I'm making this topic (probably again) to request some minor features be made default. Not 'bring back terrain' or anything like that. Things that are sort of needed, able to be implemented assumedly in a relatively short time. Mostly relating to modding, not to gameplay.

If words hurt your brain, best proceed with caution.


Clientcmd for pushing the events dialog
Something like commandToClient(%client,'pushEventsDlg',%classname) would be ideal. (Actually, something like %client.pushEventsDlg(%classname) would be even more ideal, but it'd just be doing the first one.)
Being able to supply an arbitrary class name would allow for some extra functionality - drawing the input event list from this class name should be a fairly minor effort, and would allow such fun features as modding in minigame eventing, or eventing direct to vehicles or bots instead of clogging up the fxDTSbrick input list with things relating to other functions.
I've nearly gotten such a thing to work by basically rewriting all of the functions that generate the event lists, but it makes the GUI somewhat erratic and if not everyone had it, it wouldn't be much use. It'd just be splitting the community.


Support for ghosting object positions to clients
I don't mean the server constantly telling clients where something is - we can do that. But obviously the engine is aware of where an object is, the script engine simply isn't made aware of this, for players at any rate. This is to prevent aimbots which ruin deathmatch servers to some extent. What I'd like to see is an engine function that allows the server to tell a client it's safe to make scripts aware of this object's position, so that clientside compass mods (okay, yeah, I work on one of these, ulterior motives and whatnot) can track these objects. Specifically and only if the server allows it. That's what I'm asking for. Ideally, this would also call a script callback on the client when an object is made trackable or untrackable, so that we don't have to search for objects we can now track constantly.
%client.setObjectPositionsEnabled(%obj,%bool)


Default API to register required client mods
This is sort of a complex one. If you're familiar with the big old screamfest over the DRPG client breaking the CityRPG client, I'm asking for something that will allow us to circumvent this problem via a default API that will send certain versions to the server in the connect request. These would then be parsed immediately into values on the client object.
To explain exactly what I mean:
You would register a code for your mod, and its version, in the clientside part. registerClientModule("RTB",4)
When you connect to a server, this, and all other versions are jammed into a string. Would it be a problem if this bloated the request? Restrict the code to four characters, I suppose. Anyway, the server gets these in your GameConnection::onConnectRequest, in one argument - tab-delimited, like 'RTB 4\tDRPG 1.3\tCRP 0.2'.
These are immediately and by default parsed into values on the client. %client.version_RTB = 4, %client.version_DRPG = 1.3, %client.version_CRP = 0.2.
Then, a callback is called - GameConnnection::preConnect, for instance. The announcement that the client has joined still hasn't gone out on the server, so deleting the client at this stage would circumvent the message, allowing for assumedly safe and silent rejection if the client lacks something they need to play. It's down to the mod creator to issue a helpful message, obviously.

The reason I ask for this to be default is that such a system's usefulness is limited (in fact, near to nothing) if not everyone has it. Same for the clientCmd for pushing the events dialog.


API for registering brick values to be saved
Much like the persistence API but for bricks, values to be saved into BLS save files. Default systems to save and load bricks serverside directly would also be quite handy. The general idea is that you simply registerBrickValue("nodeName","") to register the value %brick.nodeName with a default value of "". If the value on the brick is not the default value, it sends this value to the client when saving events and other serverside brick data, and it would appear in the BLS as +-CnodeName hello_world among the other fields (+-VEHICLE).
This would allow us to save world-specific data in the file with the world itself, tidying things for makers of mods of this nature immensely. When I wanted to store a health value for bricks, I ended up circumventing the entire saving system and simply using MainBrickGroup.save() and exec() followed by a loop to manually call the planting functions on all bricks that were created, because it was too tedious to write a proper system to save this based on brick positions and reapply it on loading. This would tie in well, I think, with the 'build everything' theme that's coming along.


Fix for guiBitmapCtrl::getPixelColor(%x,%y)
This has been broken for as long as I've known about its existence. Using a guiBitmapCtrl placed on the main menu at 800,0 with an image of a solid color, it seems to return a result for 1,1 that changes as the image changes. Using 800,1 it returns the same color every time, but not the color that is in the bitmap. I have no idea what it's actually doing, but it's certainly not what anyone would expect. Loading heightmaps would be a lot easier if we could just load bitmap versions into a control and look at the pixels, so I guess this calls for a fix? Or at least a clarification of how it's supposed to act - no documentation seems to exist for this method.


Anyone else got anything to add? I'm insecure and every time I go to write this I freak the forget out and forget what I even want. Stupid brain.

7
Modification Help / Code Resources - Free Use
« on: November 26, 2011, 04:10:30 AM »
These are a couple of little resources I've created for helping to do certain things. I'll include a little bit of documentation here for each one, including the new functions they add and sample usage for these functions.

libstr.cs - String manipulation helper functions
Note: A list of functions and descriptions of them is also available in the comment block at the top of the file. Aside from this the code is by and large uncommented and may or may not be a clusterforget.
Quote
striReplace(%string,%replace,%with[,%startindex])
The default strReplace() function, but case-insensitive; for some reason this is missing by default.

getSubStrR(%string,%start,%end)
The default getSubStr() function, but instead of being based on a start index and length, this uses a start index and an end index.

setSubStr(%string,%start,%count,%insert)
Insert a string at a specified point in another string, replacing a given number of characters.

setSubStrR(%string,%start,%end,%insert)
Insert a string replacing a given range of another string (see getSubStr/getSubStrR).

strRev(%string)
Reverse a string. Who knows if you'll ever need it?

getStrBetween(%string,%prefix,%suffix,%index)
Get the %indexth instance of any strings occurring between a given prefix and suffix within the supplied string. (getStrBetween("[0][1][2][3]","[","]",1))

getLineCount(%string)
Returns the number of lines (separated by \n) in the given string.

getLine(%string,%index)
Returns the %indexth line of the given string.

strMatch(%string,%pattern)
Returns true if the given string matches the pattern. Patterns can contain wildcards (*) which match anything (including nothing).

striMatch(%string,%pattern)
strMatch, but case-insensitive.

typeOf(%variable[,%boolean])
Returns "float" if %variable is a number with decimal places, "integer" if %variable is a number with no decimal, or "string" if %variable does not appear to be a number. Good for validating user input.

LoopHandler.cs - Looping event handler (for "ticks")
Note: A brief reference is available in the comment block at the top of the file, and the code is commented with comments of dubious helpfulness.
Quote
The LoopHandler is an object, and thus can be instantiated using new ScriptObject(LoopHandler) or new ScriptObject(AnyName) { class=LoopHandler; }. Any number of LoopHandlers can exist separately from one another, though this shouldn't realistically be necessary for a single project.

Methods:
.addEvent(%id,%callback,%delay[,%initcallback])
Add a looping event. Every %delayms, %callback will be called with one argument. This argument is an object which is unique to this loop and handler, and can be used as a sort of 'memory' for loop states and the like. If a function named %initcallback exists, that function will be called before the loop is begun, with the memory object as the first and only argument.

.cancelEvent(%id)
Cancel a looping event, identified by the given ID string (used when registering the event). Its memory object will be deleted and all data pertaining to it removed from the loop handler.

.pause(%id) and .unpause(%id)
Pause or resume a given looping event. When it is resumed it will be resumed with the elapsed time since the last call accounted for; ie, pausing it halfway through its tick delay and then unpausing it later will only require it to complete the remaining half of its delay.

If the loop handler is deleted, all memory objects for its loops will be deleted with it, and all schedules canceled. The functions you supply for looping events must be console functions, not Class::Methods.

When you're using these resources, feel free to just drop them into your add-on as-is and use them. I don't require attribution, just do not claim you made them.


Thread note: This is in Coding Help instead of Modification Discussion as these are made to help other coders, and also because they are not stand-alone add-ons for use, thus discussion of them is in fact not discussion of a modification.

8
Creativity / Weird interlocking-neon-line crap
« on: November 20, 2011, 07:33:05 AM »
HOW DO I EVEN DESCRIBE WHAT THIS IS


THAT WORKS OKAY

1920x1200 Dual Screen

1680x1050 Dual Screen
1680x1050 Left Only
1680x1050 Right Only


New background and dropshadow (current PDN):
1680x1050: Dual MonitorsLeftRight
1920x1200: Dual MonitorsLeftRight

YEAH HAVE FUN WITH THAT


the idea is that the left monitor (for me this is my secondary monitor and is used only for busy work) is more chilled/less of a giant clusterforget so it's not a distraction

though right now i don't even have the secondary monitor set up because i have nowhere to put it but still this was fun to make

made in Paint.NET, took like 45 minutes or so

if you're a Paint.NET user there's a PDN for it here. It has only three layers: the background, all lines, and the hexagon-bullstuff line overlay if you want to replace that. Go nuts

9
General Discussion / Events Replacement - How would you prefer?
« on: November 19, 2011, 01:48:22 PM »
Okay, it's hard to explain what I'm on about with such limited space as the topic title, so I apologize for the ambiguity there.

I've been thinking recently (as have several other people) about making a replacement system for Wrench Events, at least clientside (though it would probably be much easier to replace the whole serverside system as well rather than try to make a different system generate compatible output).


So I'm pitching a question to you, the eventers around: How would you prefer a replacement system to work? Something like the current system but with extra features such as integrated logic and variables? A more free-form, textual editor (this would be basically requiring you to learn to script, in some ways)? Flowgraphs? (This third option is ludicrously unworkable GUI-wise. The system of each element plugging into another wouldn't be too hard, but making it look good would be hrrlbrblr.)

It's just that the dropdowns, once you get a fair few items in them, can take quite a while to navigate. That and the system is quite non-extensible; there's a perfectly serviceable clientside GUI that could support us without needing any extra code, but serverside we can't tell clients when to use it, so we can't do anything with it. (for instance pushing the events dialog to show inputs for Minigames; brick hack workarounds to use minigame events are a stuff way to do it and they clutter the dropdowns even further)


Another thought, for you modders out there, who may have published an event or two in the past; would you move over to a new system? Compatibility between the two would be nice, but it's often a lot of work to give an inferior experience to stubborn or uninformed cretins as opposed to simply ordering them out the door like any well-to-do establishment should. But a new system having support from more modders is basically a must; if it has no content, it will also have no users.


Badspot, if you read this; would you ever consider accepting a community-made events GUI replacement that adds value to the current arrangement? Or at the very least adding a clientCmd to push the events dialog with inputs for whatever class name? Rejiggering it to do what you want without remaking the entire thing is a load of work when you could basically do it in five minutes, notably with the new revision system.
Ideally, we'd be able to quite simply push the events dialog to a client with a given classname and automatically send the events from an object (passing a string for the classname or an object, which would then use its class for the input list and send its events over - after all, the event system is pretty much universally available)


So I pose these questions to you all, hoping for coherent answers. Somehow I feel already disappointed, for my question isn't all that coherent itself. I should probably sleep or something. Wabbajack.

10
Drama / skill4lif e is a ponycigarette!! (evidence inside!)!
« on: June 08, 2011, 11:20:46 PM »
yeah he is!! look

User was banned for this post

11
IT'S QUARTER TO ONE ON 1/01/2011 HERE.

THERE'S FLYING CARS AND stuff.
WELL ACTUALLY, I JUST TIED A MATCHBOX CAR TO A FIREWORK BUT THAT COUNTS, RIGHT?

ALSO CAPSLOCK. EVERYBODY WILL LOVE CAPSLOCK THIS YEAR. I KNOW THIS FOR I AM A WIZARD.

forget. YEAH.

12
Off Topic / My fun as hell day! (WIHBSMAABYAPWATAC)
« on: December 23, 2010, 07:19:13 AM »
aka 'Why I Have Been Spending My Afternoon Alternating Between Yelling At People Who Aren't There And Crying'.

So the day started out fine. I'm doing a Diploma in Business Management right now through a small training office downtown (it's properly certified and all, and very casual) and got there on time, got right into the work we had to do, everyone was focused and we got a lot done (two sessions of work in half a session). My trainer remarked that I seemed to be very focused, and had a good idea of what work I had to get done and the course syllabus, that he was surprised I'd read the case study we had to do, etc. Generally just that he was very happy with how I'd been doing and to keep it up. This made me feel great because the REASON I'm doing so well is because I'm paranoid about loving this up, and I obsessively read anything sent my way several times over.

So yeah. Day started great! Compliments and pats on the back all round, right? So then we finish up and I start walking back to the train station. I'm crossing the road perfectly legally, got ZE LEETLE GREEN MAAN and all, and I'm halfway across when the third car in line pulls out into the wrong lane and runs the light, almost hitting me in the process. I got out of the way and I'm not hurt and all but who the forget pulls into the wrong lane to run a red loving light when there is someone crossing the road? I'm more inclined to think that someone tried to loving murder me. And I didn't get his license plate either, or I would have been banging on the nearest house door to call the loving cops. (as my mobile phone was hidden somewhere in the first drawer of my bedside table, flat.)

So anyway. I sit down at the bus stop for a few minutes until I stopped shaking, then keep walking, feeling more than just a bit forgeted over. I got to the train station ten minutes later than I expected and I'd missed my train, so I had to wait an hour on the train station, where someone pulled transit police off a train to talk to me because they thought I was on drugs (sitting away from everyone, shaking and almost crying? MUST BE CRACK RIGHT). The transits approached me WITH BATONS OUT and honestly I was feeling a bit insecure at this point and was a bit freaked at this, anyhow after a brief talk with them they told me what had happened and I told them, blah blah they jumped on the next train through which was the last one before mine.

I pulled into my station, the train ride was okay, I was still a bit shaky but feeling better by this point. I walk up to the mall and head upstairs to pick up a copy of Halo Reach, because one of my friends has been bugging me to buy it since he doesn't have a 360 and wants to play it with me and stuff, and I could use the company. Grabbed that, back down, get a cab home. Get home, call my friend, and he instead decides to go and see this girl who friendslammed him something like... six loving times this year? Jesus christ, man. I call you and ask for you to come and be a bro because someone tried to loving kill me and you go off on the ultimate goddamn betrayal quest. Nice job. Some loving friend you turned out to be.

And now here I am, I have to be up in like six hours and I can't goddamn sleep. Just to put some tasty loving icing on the giant S-bend salvage stuffcake.

[/rant]So how was your day

Appendix: Title is pronounced 'wib-smay-bee-app-wah-tack'

13
Off Topic / Van Canto - A capella metal goodness
« on: November 15, 2010, 11:29:20 PM »
Van Canto is a metal band consisting of one drummer and five vocalists. Yes, you heard me right. This stuff is awesome.

Now before you come in here to inevitably durp it up with the metal hate, I'll make a quick note: This band will probably appeal to you. If not as awesome music (they are) then as being loving hilarious.

Just for the people for whom the above statement applies, I'll open with by far the funniest track:

Lost Forever - With such classics as "ROLLIN THA RUN DUN DUN DO, DA DUN DUN DUN ROLLIN' THA RUN DUN DUN WHAAAAAAT"

Next up is the most impressive track - a cover of Metallica's Master of Puppets. I don't need to explain this one to you, do I? There's also Battery if that's more your thing. Battary, battary!

There's also Wishmaster by Nightwish, and another original track by the title of I Stand Alone which isn't heavy but it's certainly nice to listen to, and even Magic Taborea which is based on, of all things, Runes of Magic (thus further proving that all metalheads are nerds).

tl;dr: This band is awesome. Listen to them, or I will RAMADANANADANANADANADANADANADANA your dog.

14
Modification Help / Specialty Mining - Shades of Minecraft
« on: April 18, 2010, 09:16:03 PM »
Okay, it's another infinite mining mod. Big deal, right? Indeed. If it's not your cup of tea, or coffee if you'd prefer, no need to come in here and yell about it.

Specialty Mining
Working title.

So I am currently very sleep deprived, and I've actually started working on something! That doesn't happen, I don't work on things. Well, it does and I am now. The current features list is as follows:
  • Dwarf Fortress-esque layered ground

Ground is layered in one thick, person-height layer, followed by a thinner layer and repeating this pattern ad infinitum (on the Z axis).

  • Strata Layering

I don't remember if 'strata' is the word for this, but as you go to higher layers, you begin to dig into sand. As you go lower, you begin to dig into stone. Sand is weak, stone is strong and dirt is in the middle, but the ores also differ between layers.

  • Carving

Another steal from Dwarf Fortress, the ability to carve a block of the area into stairs, and to carve other shapes as well. No, there is no plans to accommodate those of you who are prone to fey moods.

  • Level & Pick system

As you mine, you gain experience. As you gain experience, you level up. However your potential is limited by how well-repaired your pick is.

  • Randomized Ore System

Rather than finding bricks of ores, you find small chunks of them inside other bricks.[/list]

Planned features:
  • Extended Ores

When you find ores, there will be a small chance for a pocket to be generated. This pocket basically gives several bricks in the surrounding area much higher-quality ores of that type, which are valuable for more than just selling.

  • Building System

Collecting stone allows you to build with stone - or dirt, if that's your thing. You can also trade with the 'Surface World' for Wood, which will be a very cheap alternative (there is a fairly low chance of extracting a usable chunk of stone). You also need to claim areas to build on them, and claimed areas cannot be mined out unless declaimed.

  • Trading System

As well as trading with the surface world for building materials, it will also have a demand system in place. Stone may be in demand and trading it could net you a pretty penny. Gems are generally always in demand if you can get sizeable ones.[/list]

Thoughts? Ideas? Naysaying?
As for you 'pix' people, it's rather simple as it resembles bricks on any other server! Fancy that. I'm currently using the RPG Pickaxe model (linked directly from the RPG Tools zip, not copied over) and I must credit Kalphiter's infinite mining mod as a reference. This isn't an edit of it, but it uses all the same techniques. Although I actually call .plant() so you can build inside mine :cookieMonster:

15
With the new portforwarding fix, there is going to be a hell of a lot more servers than before at any given time.

In light of this change, I suggest that a subforum (possibly of the Gallery) be made, for threads pertaining to servers. This would help to keep General Discussion and the Gallery itself clear of threads about servers rather than Blockland and its builds.

I do not feel that further elaboration is necessary.

Pages: [1] 2 3