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 8 9 ... 27
46
Gallery / an attempt at a rhythm game
« on: December 23, 2015, 05:53:19 AM »
they just plain Do Not Work, even when you code one
i was under the assumption events would cause desync issues, but apparently blockland itself can

https://www.youtube.com/watch?v=caHX92y3UJs

https://github.com/TheBlackParrot/blockland-rhythm-game
code for reference

47
Modification Help / [SOLVED] Attach/move a camera to a projectile?
« on: December 18, 2015, 11:28:26 PM »
None of the default functions seem to be able to attach to a projectile object, they all still focus on the player.

48
Off Topic / [offline] playing duke 3d fast
« on: December 13, 2015, 03:03:10 AM »
http://twitch.tv/theblackparrot

trying to de-rust as well, been a while

49
Game Modes / Pictionary [v1.0.3-6] [new colorset!]
« on: December 12, 2015, 05:42:33 PM »
PICTIONARY
One player is selected per round to draw out a given word, the rest of the server has to guess the word based on what the selected player draws.






https://blocklandglass.com/addon.php?id=236



Custom wordlists are found at config/server/Pictionary/wordlist.txt, a sample one is provided in the Gamemode .zip.

50
So I have a script group, maybe 6 script objects inside it
I add to it normally, e.g. %group.add(%object).
I delete object 0 via %group.getObject(0).delete().
The last object in the group is now object 0.

???????

51
General Discussion / Pictionary: gamemode being released later!
« on: December 04, 2015, 09:19:24 PM »
the amount of obscene drawings i'm seeing is a little over the top. anyone who draws genitalia will be permanently banned from drawing.

PICTIONARY
One player is selected per round to draw out a given word, the rest of the server has to guess the word based on what the selected player draws.




screenshots








join



*Note that download times and ghosting will be slower here. r1973 was crashing every so often, and I'm running on r1967 until the related issue is fixed.

52
Modification Help / Freeze the day cycle?
« on: December 04, 2015, 05:56:48 PM »
Is there some method to freeze the day cycle?
Setting the DayLength to -1 only reverts it back to 300.

53
Modification Help / Prevent specific bricks from being chainkilled
« on: November 20, 2015, 08:22:27 PM »
Because Ghost's Terrain Generator is privatized (sigh), I can't use it for reference, tracing isn't giving enough back either.

I would assume
Code: [Select]
function fxDTSBrick::killBrick(%this) {
if(!%this.isMineable) {
parent::killBrick(%this);
}
}
would be enough to prevent specific bricks from being killed, but in things like the wand, destructo wand, and undoing bricks, the bricks floating underneath it are still killed.

What's the correct way to go about preventing specific floating bricks from being killed?

54
I'm noticing on servers with a heavy amount of cubescape (e.g. Reverie Fortwars and something I'm working on for a freebuild), the game will lag to stuff while the larger cubes ghost.
Creating them through a new fxDTSBrick object manually too is also quite slow, especially in terrain generation.

Why are they so much slower?

55
Modification Help / Force an addon to execute on all gamemodes
« on: November 11, 2015, 03:29:09 AM »
So I'm trying to set up a dedicated server script for someone, and I need an addon to execute when the server starts, regardless of the gamemode loaded.

I'm trying Greek2me's preload script with no success, and I'm assuming -mod is not a valid command line argument when starting the game

I don't want to overwrite config/{client,server}/prefs.cs, the addon list, or the music list files as those can be overwritten, and I'm not 100% sure doing
Code: [Select]
echo 'exec("Add-Ons/Support_RemoteScriptHandler/server.cs");' >> "$BL_DIR/config/server/musicList.cs"every server startup would be the best idea

I mean it might work, but I'd rather have something reliable in case that's overwritten.

Is that my best option?

56
Modification Help / Considering starting on a general enhancement suite
« on: October 25, 2015, 03:05:52 AM »
I'm just going to copy-paste the notes I was taking on potential things to add. I haven't decided on a name, "BLES" is just there to be a thing (Blockland Enhancement Suite is what it stands for).

This wouldn't be another Blota or w/e the older heavy theme rewrites are, it'll look very default and just add on to currently existing things.

EDIT 10/28: Preference backend has been detached from the enhancement suite idea into its own project. I will however create a frontend for it in the suite, and as an example frontend for reference purposes.
EDIT: 10/29: https://github.com/TheBlackParrot/blockland-preferences and https://github.com/TheBlackParrot/blockland-preferences-client



- prefs manager
   - be compatible with RTB, oRBs, etc.
      - make my own system too??
      - wrap RTB and oRBs into my system??
      - just take things from RTB?? (pls no)
   - give everything their own section
      - e.g., for categories:
         - General
         - Duplicator
         - Fillcan
         - Slayer (does it have RTB prefs? idk, 2lazy)
      - each addon registering a pref gets their own section

========================

- client sided chat logger
   - ez
   - pay attention to newChatSO::addLine for special things??

e.g., in config/client/BLES/chat/10.25.15.log:
==== CONNECTED TO TheBlackParrot's Falling Platforms ====
23:14:27   18701   TheBlackParrot   hi
23:14:29   173214   Blockhead173215   hi
23:14:48   173214   Blockhead173215   gotta go cya
!! Blockhead 173215 (173214) DISCONNECTED !!
23:14:52   18701   TheBlackParrot   ok b- oh

========================

- ID tracker
   - keep track of previous aliases
   - last seen (and where)

e.g., in config/client/BLES/whois/18701.log:
NAME         LAST SEEN      WHERE
TheBlackParrot      10/25/15 02:33:35   Cavik's CityRPG
TheWhiteParrot      04/01/15 14:57:23   TheBlackParrot's Falling Platforms

========================

- server playtime tracker
   - IP/port based
   - split into server name in files
   - take out words that start with "(" or "[" or etc.???
   - when clicking a server in the list, display total playtime somewhere

e.g., in config/client/BLES/playtime/127.0.0.1_28000.log:
TITLE               TIME (seconds)
TheBlackParrot's Falling Platforms   3742
TheBlackParrot's Brickochet      1243
TOTAL               4985

========================

etc. stuff:
- additional option to the saving menu to only save your bricks
   - ...is this even possible? (probably another server sided thing i bet)
- additional buttons to the regular admin menu to admin/deadmin players
   - and mute
- combine Client_CustomChat with this too?

========================

server-sided stuff:
- (maybe) find some way to get a player list on the server chooser?
   - ofc you'd have to have the system enabled/running on the server, so
   - maybe something similar to how RTB saw whether a server had RTB?
- mute commands
- moderator ranks
   - kick/mute only
- bring the colorset chooser back
- load a save on a custom gamemode




I haven't started on this at all, I'm still brainstorming. This is something I definitely want to do though, and I figured I could get feedback on ideas, and maybe get some ideas from you guys (as long as they're possible, that is).

Or I can just leave this up as a list in case BLG or oRBs need ideas, but I'm rather certain I want to go through with this.

57
Off Topic / I want to make a trivia gamemode, and I need questions
« on: October 17, 2015, 01:29:07 AM »
I can only come up with so many, and I'd like to have as many trivia questions as possible spanning across a whole slew of topics.
All I ask is for
  • a question
  • an answer (or answers)
    • true / false
    • multiple choice (up to 16 choices, i can randomly select wrong ones)
  • a source for your answer
    • Wikipedia counts, I know where/how to find sources on entries
  • a category
    • e.g. gaming, movies, arts, world history, space, blockland, technology, etc.

EDIT: it'll be easier to just create a google form, one second
Submit them here so they remain hidden: https://docs.google.com/forms/d/1LOWghDAJfvWngLvLLOviNnYIEGLAYz_BGaeAxi0CSmA/viewform?usp=send_form

59
Modification Help / [WIP] Build Logger
« on: October 14, 2015, 05:29:12 AM »
I wanted to make a thread for this idea I had where everything possible building-wise is logged. I had the idea from witnessing some gore spam on a friend's server, and said person left the server and removed everything before they left.



So far it's rather basic (i think?) and could use some plugins for building tools (like the duplicator, wand, fill can, etc.)
Building/planting and removing are logged to one file, property changes to another, and events to another. Filenames are determined upon a player joining a server, and will remain the same until they leave.

https://github.com/TheBlackParrot/blockland-build-logger

Feel free to throw ideas at me, or things I should change
really anything

60
Code: [Select]
if(!isObject(MarkovList)) {
new GuiTextListCtrl(MarkovList);
}

if(!isObject(MarkovWordIndexes)) {
new GuiTextListCtrl(MarkovWordIndexes);
}

function getMarkovWordIndex(%word) {
for(%i=0;%i<MarkovWordIndexes.rowCount();%i++) {
%potential = MarkovWordIndexes.getRowText(%i);
if(%potential $= %word) {
return %i;
}
}

return -1;
}


function determineMarkovCandidates() {
%pattern = "Add-Ons/Server_Markov/texts/*.txt";
%filename = findFirstFile(%pattern);

%file = new FileObject();

%files = 0;
%words = 0;

%start = getRealTime();

while(isFile(%filename)) {
%file.openForRead(%filename);
%files++;

echo("Reading" SPC %filename);
talk("Reading" SPC %filename);

while(!%file.isEOF()) {
%line = %file.readLine();
echo("Line :: " SPC %line);

for(%i=0;%i<getWordCount(%line);%i++) {
%current_word = getWord(%line, %i);
if(%current_word $= "" || %current_word $= " ") {
continue;
}
%next_word = "";

%word_index = getMarkovWordIndex(%current_word);

if(%word_index == -1) {
%word_index = MarkovWordIndexes.addRow(MarkovWordIndexes.rowCount(), %current_word, MarkovWordIndexes.rowCount());
}

echo(%current_word SPC MarkovList.rowCount() SPC %word_index SPC getFieldCount(MarkovList.getRowText(%word_index)));

%words++;

if(%i < getWordCount(%line)) {
%next_word = getWord(%line, %i+1);
}

%row = MarkovList.getRowTextByID(%word_index);
%num = MarkovList.getRowNumByID(%word_index);

%found_piece = -1;
%new = "";

if(%row $= "") {
if(%next_word $= "") {
%text = "";
} else {
%text = %next_word SPC 1;
}

MarkovList.setRowByID(%word_index, %text);
echo("NEW WORD:" SPC %current_word);
continue;
} else {
if(%next_word $= "") {
continue;
}

for(%j=0;%j<getFieldCount(%row);%j++) {
%piece[%j] = getField(%row, %j);
%piece_word = getWord(%piece[%j], 0);

if(%piece_word $= %next_word) {
%found_piece = %j;
%piece[%j] = %piece_word SPC (getWord(%piece[%j], 1) + 1);
break;
}
}

if(%found_piece != -1) {
for(%j=0;%j<getFieldCount(%row);%j++) {
if(%j == %found_piece) {
%new = trim(%new TAB %piece[%j]);
} else {
%new = trim(%new TAB getField(%row, %j));
}
}
} else {
%new = %row TAB %next_word SPC 1;
}

MarkovList.setRowByID(%word_index, %new);

//echo(MarkovList.getRowText(%word_index));
//echo(MarkovList.getRowText(%word_index));
}
}
}

%file.close();

%filename = findNextFile(%pattern);
}

talk("Chained\c3" SPC %words SPC "words \c6from\c3" SPC %files SPC "files \c6in\c2" SPC getTimeString((getRealTime() - %start)/1000) @ ".");
}

function doMarkov() {
%word_index = getRandom(0, MarkovWordIndexes.rowCount());
%phrase = MarkovWordIndexes.getRowText(%word_index);
%last_char = getSubStr(%phrase, strLen(%phrase)-1, 1);

%iterations = 0;
while(%last_char !$= ".") {
%iterations++;
if(%iterations > 30) {
break;
}

%candidates = MarkovList.getRowText(%word_index);
//%next_word = getWord(getField(%candidates, getRandom(0, getFieldCount(%candidates)-1)), 0);

%total = 0;
//echo(getFieldCount(%candidates) SPC "candidates from" SPC MarkovWordIndexes.getRowText(%word_index) SPC "[" @ %word_index @ "]");
for(%i=0;%i<getFieldCount(%candidates);%i++) {
//echo("Getting candidate" SPC %i);
%row = getField(%candidates, %i);
%candidate[%i] = %total SPC getWord(%row, 0);
%total += getWord(%row, 1);
}

%chosen = getRandom(0, %total);
//echo("Chose" SPC %chosen SPC "from" SPC %total);
for(%i=getFieldCount(%candidates)-1;%i>=0;%i--) {
//echo(%i);
%min = getWord(%candidate[%i], 0);
if(getFieldCount(%candidates) == 1) {
%next_word = getWord(%candidate[%i], 1);
echo("Only 1 candidate, next word:" SPC %next_word);
break;
}

%max = getWord(%candidate[%i+1], 0)+1;

//echo("Min/Max:" SPC %min SPC %max);

if(%chosen >= %min && %chosen <= %max) {
%next_word = getWord(%candidate[%i], 1);
echo("Next word:" SPC %next_word);
break;
}
}

%word_index = getMarkovWordIndex(%next_word);
//echo(%next_word SPC %word_index);

if(%word_index == -1) {
echo("ERROR: %word_index returned -1 in generation:" SPC %next_word);
break;
}

%phrase = trim(%phrase SPC %next_word);
%last_char = getSubStr(%phrase, strLen(%phrase)-1, 1);
}

echo(%phrase);
talk(%phrase);
}

function reloadMarkov() {
if(isObject(MarkovList)) {
MarkovList.delete();
new GuiTextListCtrl(MarkovList);
}

if(isObject(MarkovWordIndexes)) {
MarkovWordIndexes.delete();
new GuiTextListCtrl(MarkovWordIndexes);
}

talk("GENERATING MARKOV CANDIDATES.");
schedule(200,0,determineMarkovCandidates);
}

I assumed Markov chains are just things that can happen in succession based off of things that have already happened in succession, e.g.:

"this is a test and this test is a great test"
this could branch out to either is or test
is can only branch out to a
test can branch out to and and is

and so on

am i correct? I'm getting off the wall things like these, yet I'm feeding almost 30,000 words into it.

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