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

Pages: 1 [2] 3 4 5 6 7 ... 27
16
Off Topic / does anyone here have a pebble time?
« on: May 02, 2016, 12:16:46 AM »
was considering getting one, curious to know if anyone here has one

17
Modification Help / Support_Updater automation
« on: April 28, 2016, 08:29:35 PM »
Only applies to those of you who host your addons on your own servers (so very few I imagine :( )

https://github.com/TheBlackParrot/blockland-support-updater-autorepository

I managed to get practically everything automated down to a file edit ("version" in version.json) and uploading source files. It's all directory-structure based.

Example download: http://blockland.theblackparrot.us/download.php?id=0&channel=default

18
https://blsu.theblackparrot.us/
This lists all add-ons in Support_Updater repositories; updates each hour.

(PM me if you have a repository you want me to add)



Source code: https://github.com/TheBlackParrot/blockland-support-updater-aggregator

19
Modification Help / Click/onActivate a ghost brick?
« on: April 15, 2016, 04:39:41 PM »
/title

Is it possible (in any way) to determine if someone clicks on a ghost brick? Clicking on one seems to go straight through it.

20
I'm wanting to try my hand at a Scrabble gamemode, so of course you need a dictionary of words.
That would be a lot of words. /usr/share/dict for example (on linux systems) has ~250k words, some uploaded databases have even more.

I don't expect TorqueScript to be able to handle it that well (looping through a file that would inevitably create 250k+ variables), but I know Lua can handle it fine as per my own tests (the corpus on that bot currently contains about 50,000 lines on my end, initially loads all lines in about a half second, adding is instant).

I'd like to release this, but I know the community probably doesn't feel great about a DLL injection being required.

what would be used: https://github.com/portify/BlocklandLua

21
Modification Help / Unreleased/unfinished gamemodes
« on: April 03, 2016, 02:50:56 PM »
Some of these are in playable states, but were never able to be bugtested or anything.
Some have unresolveable issues afaik, some are just incomplete.

I figured this would be better than letting them sit there forever, collecting dust.

None of these require Slayer, and most if not all are default-only. If they require addons, they should be included and are exec'd without user intervention.

Blankaball
Throw a snowball out at a target, whoever has the most points after 3 rounds wins.
* Large console spam issue, unsure on how to fix it.
* Targets sometimes spawn irregularly, unsure why.
* Playable, at least.

Bomberman
This was supposed to be a Bomberman clone, but I gave up on it after realizing the scope of the gamemode would be much larger than anticipated.
* Pretty much just a base, very unplayable.

Hide and Seek
Blockland isn't interested in this gamemode from what I can tell. Finished, could not thoroughly bugtest.
Hide and Seek that doesn't involve tagging at all. Seekers have to actively look at a player, hiders will be invisible unless a seeker is closeby.
* Was not tested well enough, but is playable.

Instability
Blockland doesn't seem interested in this either. Finished, but again, could hardly bugtest.
Be the last person standing on a crumbling save.

Miner Teams
Supposed to be a combination of [mining gamemode here] and Splatoon. Speed of the game is driven by loops.
loops/team db file, place these in config/server/MinerTeams
* Very buggy, not all features wanted are implemented.
* Unfinished for the most part.
* Kind of? playable, but not really.

Random Challenge
Supposed to be a randomly generated challenge gamemode, gave up on it as I couldn't understand my own code. Use as a proof-of-concept.

Trivia
Just a trivia gamemode. Pretty much finished, although hardly tested. Gave up on it after realizing how easily the game could be botted.
* Playable, just needs to be tested.

I don't mind anyone picking any of these up and continuing development, just credit me somewhere if it's a largely finished gamemode. If it's just a base, you don't have to unless you want to.

22
they're also ban hungry

 :iceCream: :iceCream:

"oh badspot!! ohhh!!!! pleASE BAN THESE FOOOOLS!!!! oooohhh!"

23
April Fools 2016 / THE SEARCH FEATURE STILL WORKS FINE
« on: April 01, 2016, 03:08:16 AM »
WHY IS THIS

24
I'm seeing easily spammable command add-ons being released and it's incredibly easy to give them a cooldown timer.

$Pref::Server::Addon::CooldownSeconds = 1;

function serverCmdDoThing(%client) {
   if($Sim::Time - %client.lastCommandTime < $Pref::Server::Addon::CooldownSeconds) {
      return;
   }
   %client.lastCommandTime = $Sim::Time;

   // stuff
}


It's just a couple of extra lines :(

25
Modification Help / Pulling a specific part of a tagged string out
« on: March 03, 2016, 10:10:38 PM »
Slayer uses "%1%5%2%3%7: %4" for chat involving team colors, and I get the feeling %5 is a color code. I want to use that alone, but I have no idea how to get just %5.

I'd use word counts and extract it from %fmsg in clientCmdChatMessage, but some servers like to add words to clan tags, and this messes extraction up.
I'd rather not succumb to for loops that check for the presence of a name, in case (for some reason) someone has their name as a clan tag, or their clan tags were modified to contain it somewhere.

EDIT: Looked in Slayer's code, found commandToAll('chatMessage', %client, '', '', %all, %pre, %name, %suf, %msg, %color, %team.name, "<color:ffffff>");
I thought I might be able to just add %color onto the end of the function definition, but %color is just blank?



function clientCmdChatMessage(%a, %b, %c, %fmsg, %clanPrefix, %name, %clanSuffix, %msg, %color) {
   // %color is for slayer
   %soundMode = $Pref::Client::CustomChat::SoundNotificationMode;

   %taggedString = stripMLControlChars(getTaggedString(getWord(%fmsg, 0)));
   switch$(%taggedString) {
      case "%1%2%3: %4" or "%1%2%3%7: %4" or "%1%5%2%3%7: %4" or "%5%1%2%5%3%7: %4" or "[%5%6] %1%2%3%7: %4":
         %isChatMsg = 1;
   }
   if(!%isChatMsg) {
      // isn't a chat message
      return parent::clientCmdChatMessage(%a, %b, %c, %fmsg, %clanPrefix, %name, %clanSuffix, %msg);
   }

   if(%taggedString $= "%1%5%2%3%7: %4") {
      echo(%color); // %color is just blank, even though Slayer must be sending /something/?
      %forcedColor = %color;
      %forceAllowColor = 1;
   }

26
Not talking about the recent one he also didn't release, I'm talking about the one where he used bricks.

1) How did he prevent players getting stuck inside bricks when they're planted?
2) How did he prevent player objects really getting in the way of everything (kinda same as #1)?
3) If the player object was completely removed, how did the player's camera remain operable as if nothing happened?
4) If the player object was completely removed, how did bricks rotate based on the player's rotation?
5) If player objects have to be used, is there any way to prevent collision that does not use a DLL injection?
6) If the player object was completely removed, how was damage applied to bricks controlled by the player?
7) If the player object was completely removed, how could we still move around like normal players?

This is as close as I've gotten

27
Suggestions & Requests / Colorsets, I need as many as possible
« on: February 29, 2016, 03:20:14 AM »
I'm working on an archive of all known colorsets and I need as many colorsets as I can get.

It would help a lot if you could rename colorSet.txt to [Colorset Name Here].txt so that it's a bit easier on me, I don't need any previews or anything, it's all generated dynamically.

I know of RTB archives (search "colorset") and I'm (very slowly) pulling out the files I need, but if someone wants to speed up the process and help, take a specific letter and extract colorSet.txt, renaming it with the proper name.

It's far from done, but this is a tedious part and it's probably better that I get it done as I go on.

this is what the backend serves up if anyone's curious, it too may be publicly available once the archive is public

28
I'm not sure how to do these things, %player.applyDamage only seems to accept a damage argument, and I'm not sure what the arguments are for %player.damage.
How would I properly do what I want to do? (see title)

29
Gallery / Conway's Game of Life
« on: February 21, 2016, 06:21:37 PM »


this was a "can i do this" project
yes i can

https://github.com/TheBlackParrot/blockland-game-of-life

30
Modification Help / Change item image rate of fire on the fly?
« on: February 18, 2016, 06:11:23 AM »
I've spent hours trying to figure this out only to come to the conclusion it's not possible. I've tried the obvious stateTimeoutValue[x] edits in-game, etc.

Right now, what I'm doing, is dynamically creating shapeBaseImageData datablocks when the server starts to use at a later point when they're needed, and modifying HammerItem to use the image I want.
They create themselves fine, but it's tedious and the hammer just hits my face when using the modified images.

I can resort to having a click/activate-only method but I'd rather have an item because it's apparently confusing to Blockland players. It looks less lazy too.

Code: [Select]
function convertTempoToMS(%tempo) {
return 60000/%tempo;
}

function initPickaxes() {
%file = new FileObject();

if(!isFile("config/server/MinerTeams/loops.db")) {
%file.openForRead("config/server/MinerTeams/loops/loops.db");
} else {
warn("NO LOOP DATABASE FOUND.");
%file.delete();
return;
}

%tempScript = new FileObject();

while(!%file.isEOF()) {
%data = %file.readLine();

%tempo = getField(%data, 1);
%tempoMS = convertTempoToMS(%tempo);

%datablock = "PickaxeImage_" @ strReplace(%tempo, ".", "_");

if(!isObject(%datablock)) {
echo("Creating dynamic datablock for tempo of" SPC %tempo @ "BPM...");

%tempScript.openForWrite("config/server/MinerTeams/temp.cs");

// this is just too much to eval fml
// dynamic item images when
%tempScript.writeLine("datablock shapeBaseImageData(" @ %datablock @ " : hammerImage) {");
%tempScript.writeLine("stateTimeoutValue[1] = 0;");
%tempScript.writeLine("stateTimeoutValue[2] = 0.01;");
%tempScript.writeLine("stateTimeoutValue[3] = " @ ((%tempoMS/2)/1000)-0.01 @ ";");
%tempScript.writeLine("stateTimeoutValue[4] = 0;");
%tempScript.writeLine("stateTimeoutValue[5] = " @ ((%tempoMS/2)/1000)-0.01 @ ";");
%tempScript.writeLine("stateTimeoutValue[6] = 0;");
%tempScript.writeLine("rotation = eulerToMatrix(\"0 0 0\");");
%tempScript.writeLine("mountPoint = 0;");
%tempScript.writeLine("offset = \"0 0 0\";");
%tempScript.writeLine("emap = true;");
%tempScript.writeLine("eyeOffset = \"0 0 0\";");
%tempScript.writeLine("};");
%tempScript.writeLine("function " @ %datablock @ "::onHitObject(%this, %obj, %slot, %col, %d, %e, %f) {");
%tempScript.writeLine("hitObject(%this, %obj, %slot, %col, %d, %e, %f);");
%tempScript.writeLine("}");

%tempScript.close();

exec("config/server/MinerTeams/temp.cs");
}
}

%tempScript.delete();
%file.close();
%file.delete();
}

You still have to go out of the way to remove the old hammer from everyone's inventory, then add it back.

Is there a better way to do this or does TGE suck this bad?

Pages: 1 [2] 3 4 5 6 7 ... 27