Page 1 of 2 1 2 LastLast
Results 1 to 10 of 12

Thread: Tale Prank -- Marginally more coherent procedural pranks

  1. #1
    Senior Member
    Join Date
    Apr 2012
    Posts
    131

    Default Tale Prank -- Marginally more coherent procedural pranks

    "The lore of Loathing, presented without context or consistency. Or correctness."

    Inspired by soolar's prank generator, this script remixes in-game text to create shiny semi-new time-spinner/brick/gift-package prank text. It's like two knockoffs for the price of one!

    The basic 3-step process is:
    1. Take a few random sentences from A Crimbo Tale and, if you have him, Monster Manuel.*
    2. Optionally, shuffle the names and proper nouns to increase the average absurdity per minute.
    3. Also optionally, send the prank. So it's really more of a one-step process. Whether you send it or not, it'll be saved for later use, or non-use.

    * You can also borrow sentences from your Tales of Dread; but following TPTB's no-spoilers request on those, any pranks containing Dread content can only be sent to players with the trophy for collecting all the Tales. I've found Crimbo + Manuel to be more than adequate, anyway, and Dread has a lot of names that are too short to work with the rearranger. The wiki has most of the Manuel entries, so I don't think those are considered super-top-secret (the script will only use entries from your personal Manuel so, if anything, it ought to be an incentive to buy one).

    I'll just leave the install link up here:

    Code:
    svn checkout https://svn.code.sf.net/p/guyymafia/code/taleprank/

    Here's a sample of the silliness. The green text at the bottom is the prank's final form.

    Constructing procedural insanity from 5 excerpts...
    1) Crimbo part VI, sentence #5: They also were under considerable pressure from the Loathing Association of Amateur Astronomers, Astrologers, and Meteorology Enthusiasts, or LAAAAME, to build an observatory with which LAAAAME could observe the cosmos and further Loathing's scientific research.
    2) Crimbo part VI, sentence #8: In order to make the donors feel like they got something for their meat, LAAAAME invited the public in to peer through the telescope at celestial bodies, or just watch the Naughty Sorceress undress (speaking of heavenly bodies -- yowza!).
    3) Crimbo part XIV, sentence #1: Crimbo number 11 featured Uncle Crimbo trying to save himself some effort -- again -- by using leftover Animelf technology to automate the gift manufacturing process.
    4) Manuel page P, sentence #109: The Protagonist's hair is twice as tall as his head.
    5) Crimbo part XIII, sentence #9: Adventurers discovered that the animelfs were secretly using Uncle Crimbo's facilities to build a gigantic robot, the MechaElf, to take over Crimbo Town and, eventually, all of Loathing.

    Generating improper nouns...
    Astronomer -> Lollipede
    Crimbo Town -> Baa'Baa'Bu'Ran
    Astrologers -> Axe Handle
    Crimbo -> Evil Trumpet-Playing Mariachi
    Crimbo -> Cookie Cutter Of Loneliness
    Crimbo -> Spooky Music Box
    Loathing -> Grave Rober
    Loathing -> Spooky Zombie
    Loathing -> Forest Spirit
    Meteorology Enthusiasts -> Circuit-Soldering Animelf
    Protagonist -> Smooth Criminal
    Animelf -> Gingerbread Alligator
    Animelf -> Ol' Scratch
    Animelf -> Knob Goblin Embezzler
    Uncle -> Oil Cartel
    Uncle -> Video Game Miniboss
    Observatory -> CH Imp
    Naughty Sorceress -> Seymour Buttz

    They also were under considerable pressure from the Grave Rober Association of Amateur Lollipedes, Axe Handle, and Circuit-Soldering Gingerbread Alligator, or LAAAAME, to build an CH Imp with which LAAAAME could observe the cosmos and further Spooky Zombie's scientific research. In order to make the donors feel like they got something for their meat, LAAAAME invited the public in to peer through the telescope at celestial bodies, or just watch the Seymour Buttz undress (speaking of heavenly bodies -- yowza!). Evil Trumpet-Playing Mariachi number 11 featured Oil Cartel Cookie Cutter Of Loneliness trying to save himself some effort -- again -- by using leftover Ol' Scratch technology to automate the gift manufacturing process. The Smooth Criminal's hair is twice as tall as his head. Adventurers discovered that the Knob Goblin Embezzlers were secretly using Video Game Miniboss Spooky Music Box's facilities to build a gigantic robot, the MechaElf, to take over Baa'Baa'Bu'Ran and, eventually, all of Forest Spirit.
    Saved as p67.
    The CLI command to run it has 3 optional inputs (it's almost like there's a deliberate three theme).
    1. A player name or #[number] if you want to send it to someone. "contacts" sends it to a random person on your contact list (who isn't in Ronin/Hardcore, unless you're throwing a brick).
    2. Either a number of sentences for a new prank, or "p[number]" to load a previously saved prank. (Note: Time-pranks are limited to 2000 characters, and bricks to 500.)
    3. A dash (-) followed by letters indicating which books to use (c = Crimbo, m = Manuel, d = Dread), whether to use random names (n), and whether to verbotically display all that extra gray text (v). If this part is blank, it will act like you entered "-cmn."


    Also, there's actually a fourth input, which is as optional as the first three. "brick" throws bricks instead of time-pranks; "gift" sends a gift package with Holiday Fun, some healing items so your target doesn't get mad when the Fun Log beats them up, and an enormously long prank, with a title; "quest" generates a stupidly-long prank and saves it to your quest log notes page. "load p[number]" loads a prank to that same notes page so you can edit it, and "save" saves it. "erase" deletes all saved pranks, "rename" deletes all the saved names, and "reset" deletes all the cached text used for prank-generating.

    Oh, and "taleprank help" will list all the above information. So that's probably the best one to remember.

    Example Commands because this thing's way too complicated:

    "taleprank -vn" will generate and save a 5-sentence random-nouns prank using Crimbo Tale and Manuel, with that extra gray text to show you what the heck it's doing.
    If you got the one above (which is virtually impossible because there's like a jillion possible combinations) you could send it to Doe John with "taleprank Doe John p67".
    To send Jane Bane a brick with 3 Manuel-only sentences and random names, use "taleprank Jane Bane 3 -bmn".
    You get the idea, probably.


    The text sources are cached in /data on-the-fly, so after you run it a few times it should stop hammering the KoL servers and run much faster. The random names will also get random-er as it collects Capitalized Things from every page it visits. "taleprank rename" will reset the names database, in case it gets too unwieldy. "taleprank erase" will wipe all your saved pranks. There is no command for deleting the cached data because you should (almost) never need to do that--it will detect changes to Manuel and re-download those when necessary--but you can find that stuff in "taleprank_cache.txt".

    Also, note that there appears to be a KoL bug/feature right now where, if you send two or more time-pranks to the same person (in a row?), they will all have the text from the first one. So, diversify your pranking targets. Or use bricks.
    Last edited by guyy; 01-24-2017 at 03:53 AM.

  2. #2
    Minion Bale's Avatar
    Join Date
    Jun 2008
    Posts
    13,287

    Default

    This is genius. Sheer genius.

  3. #3
    Senior Member
    Join Date
    Apr 2012
    Posts
    131

    Default

    It's surprisingly fun to just generate surreal stories with it. The combination of Crimbo's semblance of story structure and Manuel's scatterbrained randomness makes for good procedural comedy.

    I've blacklisted most of the uninteresting semi-nouns it likes to identify as names like "count," "pretty," and "train," plus a buttload of prepositions and pronouns; but tell me if you notice it shuffling any more such things (my Manuel is far from complete).

  4. #4
    Senior Member
    Join Date
    Jan 2012
    Location
    Texas
    Posts
    402

    Default

    Anyone way of making it random from the friends list?

  5. #5
    Senior Member
    Join Date
    Apr 2012
    Posts
    131

    Default

    Okay, may have gone a leeetle overboard adding new bonus features today. So we've got:

    • As above, contact list randomizer. Use "contacts" instead of a player name.
    • A "help" command, which is becoming increasingly necessary...
    • Personalizification--generating a new prank for someone will insert their name in it somewhere (unless it fails to find a spot for it). -p will stick a name in even if it's a saved pranktext.
    • Familiar names. Also, your custom familiar names, if you use -f. Also, -a adds random names from your contacts list.
    • -q dumps the result into the quest log notes page. From there, you can edit and save it if you want. Or just use the 5000-character space for gigantic tales (it even breaks them up into paragraphs!)


    Also, some improvements to its sentence and word-recognition. "The" is no longer allowed at the start of a name, because it usually ends up looking awkward and that joke gets old fast.

    Anyway--the gist is that the pranks should be a little more readable (but still just as ridiculous, and even funny), and will have the target's name in them, to induce further confusion as to where the hell these garbled messages are coming from.

  6. #6
    Senior Member
    Join Date
    Jan 2012
    Location
    Texas
    Posts
    402

    Default

    Anyone it can remember if a person has a prank already for the day or has been pranked that day by the script

  7. #7
    Senior Member
    Join Date
    Apr 2012
    Posts
    131

    Default

    There's no way to tell whether you already pranked someone outside the script, but it should now not random-prank people more than once per day.

    More tweaks have been done, and it should now be a bit better at finding names, not finding things that are not names, and making messages you can actually read without getting distracted by bad punctuation. Banned words are now in a separate text file, so I guess you can delete that if you want a total collapse into randomness.

  8. #8
    Senior Member
    Join Date
    Jan 2012
    Location
    Texas
    Posts
    402

    Default

    Can we get an option not save pranks or is this something required?

  9. #9
    Senior Member
    Join Date
    Apr 2012
    Posts
    131

    Default

    Well... it's certainly possible to not save them, but that seems a bit pointless. Text takes up very little memory. I have a file of over 700 pranks from testing and it's not even one megabyte. (KolMafia.jar is almost 13 MB, and it's currently using 125 MB of RAM.) "taleprank erase" deletes the prank database, if it somehow gets too big.

    The main thing I still want to do is add some way to import text for prank-generating, since it can theoretically work with any arbitrary text (as long as it's URL-safe ASCII, and preferably has a lot of capitalized words).


    Edit: Also, new vector for prank projection: gift packages! "taleprank gift [name]" will send a box with a huge wall of procedural nonsense with a random title, a "Holiday Fun!", and a scroll of drastic healing just to be nice (because Holiday Fun clubs out all your hit points, in addition to giving a chat effect).
    Last edited by guyy; 01-21-2017 at 08:49 AM.

  10. #10
    Senior Member
    Join Date
    Feb 2010
    Posts
    962

    Default

    Since you asked the question in the SVN release notes: some people do read them.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •