PDA

View Full Version : How to Find/Search specific OOTS Stuff? (Jokes, NPC's, Theme, Episodes etc.)



Khaladon
2010-06-24, 10:33 PM
Hey All,

First off, since I've never said it before thanks SO MUCH Rich for such an awesome comic that has brought me So much Amusement, Entertainment and, yes gosh darn it, Joy.

Ok, now that I got that off my chest...

Is there any way to search for specific things from the OOTS comics??

In this particular circumstance I'm looking for the particular instance(s) of Varrsuvius' crow familiar just popping into existence from no where whenever Var happened to remember she had one. (the funniest example will do fine thank you)

But I'd like to know in general as well as there's lots of times I'd like to reference a particular panel or strip.

I know if anyone can answer these impossible questions it's the world's most dedicated fans, the OOTSers. :smallcool:

Leecros
2010-06-24, 10:52 PM
Is there any way to search for specific things from the OOTS comics??

In this particular circumstance I'm looking for the particular instance(s) of Varrsuvius' crow familiar just popping into existence from no where whenever Var happened to remember she had one. (the funniest example will do fine thank you)

But I'd like to know in general as well as there's lots of times I'd like to reference a particular panel or strip.

other than searching through and knowing about where the panel/comic you're looking for? not really...

as for V's crow......
http://www.giantitp.com/comics/oots0003.html
My personal favorite (http://www.giantitp.com/comics/oots0154.html)
http://www.giantitp.com/comics/oots0178.html
http://www.giantitp.com/comics/oots0658.html
http://www.giantitp.com/comics/oots0672.html

there's probably more that i forgot about....






I know if anyone can answer these impossible questions it's the world's most dedicated fans, the OOTSers. :smallcool:

you know that Fan is a shortened version of fanatic? :smallconfused:

The Vorpal Tribble
2010-06-24, 11:20 PM
Try this here (http://www.giantitp.com/forums/showthread.php?t=5444)

FeanorFireHeart
2010-06-24, 11:24 PM
I always wished Rich would install a Random button for OOTS. :smallfrown:

Khaladon
2010-06-24, 11:56 PM
@Leecros: Thanks! and, uh, Ya! Of Course! ;) lol

@The Vorpal Tribble: Muchas Gracias!

@FeanorFireHeart: Funny! I was Just thinking that!

The Giant
2010-06-25, 04:02 AM
Hey All,

First off, since I've never said it before thanks SO MUCH Rich for such an awesome comic that has brought me So much Amusement, Entertainment and, yes gosh darn it, Joy.

Thanks.


I always wished Rich would install a Random button for OOTS. :smallfrown:

It will never happen. Random buttons are only appropriate for comics without any significant plot or causality, like XKCD. I don't want OOTS to be read at random, so there is no reason for me to specifically help users do so.

Capt Spanner
2010-06-25, 05:37 PM
I always wished Rich would install a Random button for OOTS. :smallfrown:

Next best thing?

Write your own!


// C++
#include <iostream>
#include <fstream>
#include <exception>
#include <string>
#include <sstream>
#include <ctime>
#include <iomanip>
#include <cstdlib>
using namespace std;

const string configfilename("randomootsgenerator.txt");

// Gets the last strip from the user.
int UIlaststrip();
int main()
{
cout << "RANDOM ORDER OF THE STICK GENERATOR\n"
<< "Written by Arkady English (Capt. Spanner) 2010\n"
<< "This is not endorsed or authorised by Rich Burlew.\n"
<< "Neither Rich nor Arkady accept any responsibility if this breaks anything.\n"
<< "Distributed as freeware. v.1.0.\n\n";
cout << "Seeding random number generator.\n";
srand(time(NULL));
cout << "Checking for config file. ";
ifstream configfile(configfilename.c_str(),ifstream::in);
char configstatus = configfile.peek();
int last_strip;
if(configstatus >= '0' && configstatus <= '9')
{
// Get number out.
cout << "Config file found.\n";
string input;
getline(configfile,input);
stringstream istream(input);
istream >> last_strip;
configfile.close();
bool valid_input = false;
do
{
cout << "Last strip is: " << last_strip << endl
<< "Is this correct? ";
char userinput = cin.peek();
switch(userinput)
{
case 'y': void;
case 'Y': valid_input = true;
break;
case 'n': void;
case 'N': valid_input = true;
last_strip = UIlaststrip();
break;
default: cout << "Invalid input.\n";
}
} while(!valid_input);
}
else
{
// Get number from user and set new config file.
cout << "Config file either corrupted, or does not exist.\n"
<< "This message always appears the first time you run this.\n"
<< "Don't worry, we'll just make a new one.\n";
last_strip = UIlaststrip();
}
bool keep_going = true;
while(keep_going)
{

cout << "Building output\n";
stringstream output("");
output << "<html>\n"
<< "<head>\n"
<< "<title>Redirect page built by random_oots generator.</title>"
<< "<meta http-equiv=\"REFRESH\" content=\"0;"
<< "http://www.giantitp.com/comics/oots";
cout << "Getting random number.\n";
int random_number = 1+rand()%last_strip;
output << setfill('0') << setw(4) << random_number;
cout << "Finishing output\n";
output << ".html"
<< "\"></head>\n"
<< "<body>\n"
<< "This page was created by the Random Order of the Stick generator v1.0, written by Arkady English (Capt. Spanner)."
<< "</body>"
<< "</html>";
ofstream outfile ("RandomOOTS.html");
outfile << output.str();
outfile.close();
cout << "Generation successful.\n"
<< "Press \'Enter\' to generate another, or type \'q\' to quit. ";
char input;
cin.get(input);
if(input == 'q') keep_going = false;
}
return 0;
}

int UIlaststrip()
{
// Get last strip from user.
bool valid_input = false;
int last_strip;
while(!valid_input)
{
cout << "What was the last strip number? ";
string input;
getline(cin,input);
stringstream instream(input);
if(instream >> last_strip) break;
else cout << "Oops. That wasn't a number. Try again.\n";
}
cout << "Input accepted.\nCreating config file.\n";
ofstream configfile(configfilename.c_str());
configfile << last_strip;
configfile << "\n\nChange the number on the top line to whatever the latest comic number is.";
configfile.close();
return last_strip;
}

EternalMelon
2010-06-25, 08:33 PM
Hey look! Its the Giant!
HI GIANT!

Leecros
2010-06-25, 10:02 PM
// C++
#include <iostream>
#include <fstream>
#include <exception>
#include <string>
#include <sstream>
#include <ctime>
#include <iomanip>
#include <cstdlib>
using namespace std;

const string configfilename("randomootsgenerator.txt");

// Gets the last strip from the user.
int UIlaststrip();
int main()
{
cout << "RANDOM ORDER OF THE STICK GENERATOR\n"
<< "Written by Arkady English (Capt. Spanner) 2010\n"
<< "This is not endorsed or authorised by Rich Burlew.\n"
<< "Neither Rich nor Arkady accept any responsibility if this breaks anything.\n"
<< "Distributed as freeware. v.1.0.\n\n";
cout << "Seeding random number generator.\n";
srand(time(NULL));
cout << "Checking for config file. ";
ifstream configfile(configfilename.c_str(),ifstream::in);
char configstatus = configfile.peek();
int last_strip;
if(configstatus >= '0' && configstatus <= '9')
{
// Get number out.
cout << "Config file found.\n";
string input;
getline(configfile,input);
stringstream istream(input);
istream >> last_strip;
configfile.close();
bool valid_input = false;
do
{
cout << "Last strip is: " << last_strip << endl
<< "Is this correct? ";
char userinput = cin.peek();
switch(userinput)
{
case 'y': void;
case 'Y': valid_input = true;
break;
case 'n': void;
case 'N': valid_input = true;
last_strip = UIlaststrip();
break;
default: cout << "Invalid input.\n";
}
} while(!valid_input);
}
else
{
// Get number from user and set new config file.
cout << "Config file either corrupted, or does not exist.\n"
<< "This message always appears the first time you run this.\n"
<< "Don't worry, we'll just make a new one.\n";
last_strip = UIlaststrip();
}
bool keep_going = true;
while(keep_going)
{

cout << "Building output\n";
stringstream output("");
output << "<html>\n"
<< "<head>\n"
<< "<title>Redirect page built by random_oots generator.</title>"
<< "<meta http-equiv=\"REFRESH\" content=\"0;"
<< "http://www.giantitp.com/comics/oots";
cout << "Getting random number.\n";
int random_number = 1+rand()%last_strip;
output << setfill('0') << setw(4) << random_number;
cout << "Finishing output\n";
output << ".html"
<< "\"></head>\n"
<< "<body>\n"
<< "This page was created by the Random Order of the Stick generator v1.0, written by Arkady English (Capt. Spanner)."
<< "</body>"
<< "</html>";
ofstream outfile ("RandomOOTS.html");
outfile << output.str();
outfile.close();
cout << "Generation successful.\n"
<< "Press \'Enter\' to generate another, or type \'q\' to quit. ";
char input;
cin.get(input);
if(input == 'q') keep_going = false;
}
return 0;
}

int UIlaststrip()
{
// Get last strip from user.
bool valid_input = false;
int last_strip;
while(!valid_input)
{
cout << "What was the last strip number? ";
string input;
getline(cin,input);
stringstream instream(input);
if(instream >> last_strip) break;
else cout << "Oops. That wasn't a number. Try again.\n";
}
cout << "Input accepted.\nCreating config file.\n";
ofstream configfile(configfilename.c_str());
configfile << last_strip;
configfile << "\n\nChange the number on the top line to whatever the latest comic number is.";
configfile.close();
return last_strip;
}


ugh...i just finished a C++ class...and you're going to throw... more C++ at me ??!!
/facedesk

Kranden
2010-06-25, 11:00 PM
I think your best bet would be to just memorize every comic like everybody else here has done :P

Cealocanth
2010-06-25, 11:14 PM
I usually just google it. If I need a apecific picture for an avatar I use the printed books and rapidly flip through the archive.

Onyavar
2010-06-26, 07:29 AM
I think your best bet would be to just memorize every comic like everybody else here has done :P

Yup. It's easy, just remember a three-digit number for each. You even don't need to remember each strip, just the big plot twists and then extrapolate.
The most relevant numbers are (imo): Meeting the linear guild in 045, elans origins in 050, enter xykons lair around 100, finish first book in 120, Bandit arc until around 160, miko shows up in 200, the hotel burns in 250, trial arc after 260, oracle quest till 300, cliffport since 340, return to azure city around 380, beat nale till 400, azure city battle until 486, afterlife quest, scry at the fleet in 500, scry at haley in 510, azure city occupied arc, orc-island-quest and belkars-mark-activated from 550 until around 600, darth V from 620 to 660, enter the desert around 680.

I didn't look up the numbers up in the strip, so there might be minor errors. This catalog can be refined, but all you need to know from this point is the order of events and the storyline. If I want to find "Xykon enters throne room", I will look at the end of that battle arc - 460 should be right.

Edit: Aaaand looked it up: It's 447. I needed to enter the numbers of 460, 450 and 445 to find this one. I know, that's not so good, but please remember I'm only a fan since 2007 and only read through the whole thing for six times since then.

Khaladon
2010-06-26, 12:55 PM
WOW! The Giant Himself showed up in my thread. I am...honoured! (And Canadian, hence the U :smallwink:) If I may dare to contradict you though Mr. Giant Sir, while I agree that, for the uninitiated, your strip is certainly better when read in consecutive order; those of us who already know it well can get enormous enjoyment reading any particular strip in any order.:smallsmile:
(PS This is probably not the proper place to ask, but ,does anyone know if there exists an affiliate program for OOTS? Cuz if there isn't there should be and I would be happy to assist with that)

And wait!....Cealocanth, You Can CAST SPELLS!!??
(cause even if it's just prestidigitation, that's pretty damn cool! lol)

Otherwise, thanks again for all the great suggestions everyone. I am currently looking forward to my next complete read-though of the series. There are Very Few comics in the world that have the ability to literally make me LOL (Calvin & Hobbes quickly comes to mind though) and OOTS is one of them.

EvilElf
2010-06-26, 03:55 PM
How about a nice search feature for the comic over a random button?

DaveMcW
2010-06-26, 08:08 PM
Random Comic (http://davemcw.com/oots/)

Khaladon
2010-06-26, 10:21 PM
Hey! That's a great randomizer Dave!

But EvilElf is on the right track (for me at least) as a Search Feature is really what I had in mind form the beginning. Thanks for saying it better then I did EE :smallwink: