• The site has now migrated to Xenforo 2. If you see any issues with the forum operation, please post them in the feedback thread.
  • Due to issues with external spam filters, QQ is currently unable to send any mail to Microsoft E-mail addresses. This includes any account at live.com, hotmail.com or msn.com. Signing up to the forum with one of these addresses will result in your verification E-mail never arriving. For best results, please use a different E-mail provider for your QQ address.
  • For prospective new members, a word of warning: don't use common names like Dennis, Simon, or Kenny if you decide to create an account. Spammers have used them all before you and gotten those names flagged in the anti-spam databases. Your account registration will be rejected because of it.
  • Since it has happened MULTIPLE times now, I want to be very clear about this. You do not get to abandon an account and create a new one. You do not get to pass an account to someone else and create a new one. If you do so anyway, you will be banned for creating sockpuppets.
  • Due to the actions of particularly persistent spammers and trolls, we will be banning disposable email addresses from today onward.
  • The rules regarding NSFW links have been updated. See here for details.

Vote Thread for Ack's Omake Corner

Okay .... still working on Trump Card, but I can now announce that thanks to the hugely appreciated assistance of Throne3d , I now have an even more efficient vote counting system than I had with QQbot. As such, all prohibitions on quoting votes are lifted.

If you want to know how efficient it now is, let's put it this way. I'm going to be spending more time writing the commentary than counting the votes. It's that fast.

(Back to Trump Card).
 
[X] Recoil - 6
[X] Security! - 5
[X] Alea Iacta Est - 4
[X] Wyvern - 3
[X] I, Panacea - 2
[X] War Games - 1
 
Okay .... still working on Trump Card, but I can now announce that thanks to the hugely appreciated assistance of Throne3d , I now have an even more efficient vote counting system than I had with QQbot. As such, all prohibitions on quoting votes are lifted.

If you want to know how efficient it now is, let's put it this way. I'm going to be spending more time writing the commentary than counting the votes. It's that fast.

(Back to Trump Card).

What did he recommend/do?
 
  • Like
Reactions: Ack
Gave me a javascript code string and showed me how to insert it as a bookmark. Now all I have to do is click it on any page of votes and it gives me a vote count, plus who voted.

Still seems a bit of a hassle honestly... unless it adds up the numbers of course.
 
Gave me a javascript code string and showed me how to insert it as a bookmark. Now all I have to do is click it on any page of votes and it gives me a vote count, plus who voted.
It adds up the numbers for each page, and I can total those easily.
Can it handle someone voting twice (nulling the first vote)? What about pages where the first half of the page is votes for one round, and the second half of the page is votes for the next round; does it total the entire page, or from a start/end point?

And out of sheer curiosity, any chance I could see the javascript code string?
 
Can it handle someone voting twice (nulling the first vote)? What about pages where the first half of the page is votes for one round, and the second half of the page is votes for the next round; does it total the entire page, or from a start/end point?

And out of sheer curiosity, any chance I could see the javascript code string?
Yes, yes and yes.

Code:
javascript:var minVoteWeight = 1; /*Their lowest vote can be 1*/ var maxVoteWeight = 6; /*Their highest vote can be 6*/ var stories = ["Alea Iacta Est", "All Alone", "Bait & Switch", "Confrontation II", "Danny & Taylor", "Hostage Situation", "I, Panacea", "Junior Hero", "Meet the Heberts", "MirrorVerse", "Nemesis", "NSW", "One More Trigger", "Really Bad End", "Recoil", "Security!", "Slippery Slope", "Trump Card", "War Games", "Wyvern"]; /*A list of stories, so it knows which to count*/ var splitter = "Ack"; /*Your username, so it checks for posts from you*/ var splitterContains = "Voting is CLOSED"; /*A post must contain this to mean the end of a vote*/ void($.getScript("https://pastebin.com/raw.php?i=BjSdjs7J"));
 
Can it handle someone voting twice (nulling the first vote)? What about pages where the first half of the page is votes for one round, and the second half of the page is votes for the next round; does it total the entire page, or from a start/end point?

And out of sheer curiosity, any chance I could see the javascript code string?

If you look at the code Ack posted, it actually retrieves most of the code from a separate pastebin paste that I made. If you want to actually see how it works, you'll probably want to see it on pastebin.
It handles people voting twice on the same page (and counts the later vote), and then lists who has voted on that page. If someone votes twice over two separate pages, it won't discount the first, but it allows Ack to easily discount them manually by clicking an "×" button next to the person's name on the first vote page, or he could just subtract it from the total (it puts a neat breakdown next to each vote tally).

If there's an end (or even many vote ends) to a vote on one page, it'll separate the tallying into distinct groups, and list who voted in each vote (each person is separated by a comma, each vote is separated by a semi-colon, or if you're looking at the tallies it stores it in an HTML table, allowing the data to be easily copied over to an excel document). It detects vote endings by "Vote is CLOSED", so in theory it'll count votes between that and the "Voting is OPEN" part as counting to the next vote instead. Maybe I should change that, but then it'd just be discounting extra votes. I'm not sure it actually matters that much.

Yes, yes and yes.

Code:
javascript:var minVoteWeight = 1; /*Their lowest vote can be 1*/ var maxVoteWeight = 6; /*Their highest vote can be 6*/ var stories = ["Alea Iacta Est", "All Alone", "Bait & Switch", "Confrontation II", "Danny & Taylor", "Hostage Situation", "I, Panacea", "Junior Hero", "Meet the Heberts", "MirrorVerse", "Nemesis", "NSW", "One More Trigger", "Really Bad End", "Recoil", "Security!", "Slippery Slope", "Trump Card", "War Games", "Wyvern"]; /*A list of stories, so it knows which to count*/ var splitter = "Ack"; /*Your username, so it checks for posts from you*/ var splitterContains = "Voting is CLOSED"; /*A post must contain this to mean the end of a vote*/ void($.getScript("https://pastebin.com/raw.php?i=BjSdjs7J"));

It should, in theory, work for a variety of different vote threads, provided it includes a vote in the following format:
Code:
[X] Vote Title - #
If the "Vote Title" is stored within the "stories" array (defaults to Ack's current one if it's not specified before the script is loaded), or a if version of the title is present instead (i.e. one with punctuation stripped, & changed to an "and", and capitalisation ignored (i.e. "security" matches "Security!" and vice-versa)), it'll add the number (provided it's between "minVoteWeight" and "maxVoteWeight") to the totals and list who voted for which story, and how much weight they put into it. People can't use the same vote count for multiple stories (i.e. "[X] Security! - 1" and "[X] One More Trigger - 1" in the same vote will end up rejecting the "One More Trigger" vote as a duplicate) nor multiple vote counts for a single story (i.e. "[X] Security! - 5" and "[X] Security! - 4" in the same vote will reject the 4). It will reject vote titles which don't fit that pattern (such as "[X] Aftermath" without a vote count, or "[X] Aftermath 5", seeing as there isn't a "-" there), but should work even if all spacing is gone (e.g. "[X]security-1" should still match), and also if the font is different. When you run it, it automatically removes all quotes and code blocks from the DOM to prevent it from counting any text within there (I probably could've done this in a neater way, but you can just reload to have them reappear), and it only counts votes that have "[X]" at the start of the line (ignoring spaces). If you write " [X] Security - 1", it'll still count it, but it shouldn't count "t[X] Security - 1".

There might be a couple of mistakes? I don't think so, seeing as I tested it on a couple of pages of votes already and it got the same totals as he got separately, and I've already tested it on weird votes (e.g. "[X]security-1"), so... Hopefully that'll be fine?

So... if you have sub-votes (like I think QQBot supported? "-[X]" being treated as a sub-vote?), it won't count them, I'm afraid. You could, however, just put a "1" in the title of the vote or something (i.e. "[X] Vote - 5" and "[X] 1Subvote - 4") if you want them to be sorted differently. For it to work properly on other vote threads, it might require a bit of a rework or extra settings, and I've currently only tested it on this thread, not others, nor other websites (such as SpaceBattles).

I hope I've explained this well enough? I might have missed some bits though, so if you need clarification, feel free to ask.
 
[X] I, Panacea - 6
[X] Security! - 5
[X] Hostage Situation - 4
[X] Wyvern - 3
[X] Recoil - 2
[X] One More Trigger - 1
 
...you realize you swapped the position of Nemesis and NSW in the list, right? Up until now NSW came before Nemesis, not the other way around. Threw me off at first; I was keying in just looking at the numbers and didn't realize it at first until I noticed they both somehow gained 200+ votes in one round.
Yeah, sorry. Manual counting puts them in one order, automated counting puts them in the other order. I'll be putting them back again from now on; NSW will be going before Nemesis.
 
Yes, yes and yes.

Code:
javascript:var minVoteWeight = 1; /*Their lowest vote can be 1*/ var maxVoteWeight = 6; /*Their highest vote can be 6*/ var stories = ["Alea Iacta Est", "All Alone", "Bait & Switch", "Confrontation II", "Danny & Taylor", "Hostage Situation", "I, Panacea", "Junior Hero", "Meet the Heberts", "MirrorVerse", "Nemesis", "NSW", "One More Trigger", "Really Bad End", "Recoil", "Security!", "Slippery Slope", "Trump Card", "War Games", "Wyvern"]; /*A list of stories, so it knows which to count*/ var splitter = "Ack"; /*Your username, so it checks for posts from you*/ var splitterContains = "Voting is CLOSED"; /*A post must contain this to mean the end of a vote*/ void($.getScript("https://pastebin.com/raw.php?i=BjSdjs7J"));
Ah, whelp, that's all those questions answered, lol.
If you look at the code Ack posted, it actually retrieves most of the code from a separate pastebin paste that I made. If you want to actually see how it works, you'll probably want to see it on pastebin.
I actually had already started skimming over the code on pastebin before seeing your post :D.

Honestly, my skills in programming amount to 2 or 3 programming classes in highschool/college. NONE of them taught a compiling language (something I was quite mad about, especially for the college one), and the most complex thing I had to do for any of them was program a calculator (they asked for a basic one, I got roughly 1/2 the functions of a scientific calculator into mine... they weren't very good teachers...); but I am very good with the logic of programming (probably better than I am with the logic of life..). So even if I can't write in a language, I can typically figure out what's happening when I look at code.

This code is actually the first bit of javascript I've seen that's simple enough for me to actually follow (probably because it's the first time it's all been on one page/in one file), so it's pretty interesting studying it.
If the "Vote Title" is stored within the "stories" array (defaults to Ack's current one if it's not specified before the script is loaded), or a if version of the title is present instead (i.e. one with punctuation stripped, & changed to an "and", and capitalisation ignored (i.e. "security" matches "Security!" and vice-versa)), it'll add the number (provided it's between "minVoteWeight" and "maxVoteWeight") to the totals and list who voted for which story, and how much weight they put into it.
So if I'm reading right:
[X] Security! - 1
[X] security! - 1
or
[X] MirrorVerse - 1
[X] Mirrorverse - 1
would both count for the proper story automatically, as opposed to mucking things up like before?

Also:
[X] Brian & Aisha - 1
[X] Brian and Aisha - 1
Would these read correctly or separately?

and:
[X] Security! - 1
[X] Security - 1
How would that effect the vote?

So we know what to look for when correcting people... and my curiosity, heh.
 
Ah, whelp, that's all those questions answered, lol.I actually had already started skimming over the code on pastebin before seeing your post :D.

Honestly, my skills in programming amount to 2 or 3 programming classes in highschool/college. NONE of them taught a compiling language (something I was quite mad about, especially for the college one), and the most complex thing I had to do for any of them was program a calculator (they asked for a basic one, I got roughly 1/2 the functions of a scientific calculator into mine... they weren't very good teachers...); but I am very good with the logic of programming (probably better than I am with the logic of life..). So even if I can't write in a language, I can typically figure out what's happening when I look at code.

This code is actually the first bit of javascript I've seen that's simple enough for me to actually follow (probably because it's the first time it's all been on one page/in one file), so it's pretty interesting studying it.So if I'm reading right:would both count for the proper story automatically, as opposed to mucking things up like before?

Also:
Would these read correctly or separately?

and:How would that effect the vote?

So we know what to look for when correcting people... and my curiosity, heh.
They should definitely count for the same thing (they'll either count for the same thing or won't count at all), and since they count for the same thing, that story gets listed as used (in an array titled votesUsed; checked for on line 90 and added on line 108). When the next vote is read and a story that it matches is found, it should then check whether the corrected name is present within votesUsed. In theory, there should be no difference in how it parses "[X]security-1" and "[X] Security! - 1" past line 80 (and mostly no difference prior to that), which is where it finds the "correct" version of the name.

It should read it correctly. In a single vote post, the first valid vote will take priority over any subsequent votes (i.e. "[X] Security! - 5" will take priority over a later "[X] One More Trigger - 5" or a "[X] Security! - 4"), but if there are multiple vote posts on a single page, it'll take the second post as the only valid vote post (ignoring any votes they made in the first post). If you make multiple posts, but only one of them includes any votes, it will count that vote post as your vote, and ignore your other posts that lack votes.

Oh, and by the way, later on in the code (starting about line 138) is when I create the window to show the vote tally results. Some of the code in there has some really weird logic, which works and totally made sense when I wrote it, but I think it'd take me a while to understand it again if I had to make changes. Don't worry if you don't get parts of it - it's a bit weird, though not as weird as it was at some points during its creation.
 
What about Alea lacta Est vs. Alea Iacta Est?
That's a whole different letter, so it'd parse different... Although it would probably only be one or two lines of code to get it to count them together; something like (and this isn't an actual language, more of a logic map):
Code:
If var exists = "Alea lacta Est"
Then "Alea lacta Est" = "Alea Iacta Est"
Else Continue
Can get tedious trying to manually code in fixes for every typo though, but that is a common enough one to perhaps be worth it.
 
That's a whole different letter, so it'd parse different... Although it would probably only be one or two lines of code to get it to count them together; something like (and this isn't an actual language, more of a logic map):
Code:
If var exists = "Alea lacta Est"
Then "Alea lacta Est" = "Alea Iacta Est"
Else Continue
Can get tedious trying to manually code in fixes for every typo though, but that is a common enough one to perhaps be worth it.
I've just added in a "common mistakes" array, so you can decide what things to change (by default, "Lacta" is in there, changing it to "iacta"). Should make it easier.

New code:
Code:
javascript:var minVoteWeight = 1; /*Their lowest vote can be 1*/var maxVoteWeight = 6; /*Their highest vote can be 6*/var stories = ["Alea Iacta Est", "All Alone", "Bait & Switch", "Confrontation II", "Danny & Taylor", "Hostage Situation", "I, Panacea", "Junior Hero", "Meet the Heberts", "MirrorVerse", "Nemesis", "NSW", "One More Trigger", "Really Bad End", "Recoil", "Security!", "Slippery Slope", "Trump Card", "War Games", "Wyvern"]; /*A list of stories, so it knows which to count*/var splitter = "Ack"; /*Your username, so it checks for posts from you*/var splitterContains = "Voting is CLOSED"; /*A post must contain this to mean the end of a vote*/var commonChanges = [["lacta", "iacta"],["&", "and"]]; /*Changes to make to vote names for better recognition*/void($.getScript("https://pastebin.com/raw.php?i=BjSdjs7J"));
 
Vote 72: Alea Iacta Est
Thanks, as always, for voting.

Voting points this round: 1219

Announcement
Due to a new vote counting technique, it's permitted to quote votes from here on in. I will pull people up for egregious errors, but they aren't as critical as they once were.

On to the main event.

Alea Iacta Est 0 (1017)
All Alone 98
Bait & Switch 466
Confrontation II 767
Danny & Taylor 429
Hostage Situation 687
I, Panacea 980
Junior Hero 685
Meet the Heberts 984
MirrorVerse 499
NSW 265
Nemesis 402
One More Trigger 754
Really Bad End 778
Recoil 590
Security! 220
Slippery Slope 739
Trump Card 103
War Games 366
Wyvern 550

[If you want to know which of these stories is NSFW, check the first post of the thread..]

After that, I'm thinking I, Panacea and then Meet the Heberts.

Check out Jim Starluck 's spreadsheet for a reasonable prediction.

Note also that the vote counting script given to me by Throne3d was of huge assistance.

Anyway, thanks again for voting, and I hope you enjoy reading the stories as much as I enjoy writing them.


For anyone who hasn't voted on this thread before, the voting rules go as follows:

1) UP TO six votes. I will not count anything extra, and a write-in will likely be ignored (if I want to write a different story, I will, but at my own discretion). Suggestions are welcome, but I am under no obligation to carry them out. And just remember, the more stories I am writing, the longer it will take for your favourites to roll back around.
2) First vote is worth six points, second is worth five, and so on.
3) You can't vote twice on the same story. The voting code will count the last vote and ignore previous ones.
4) If I say "Voting is CLOSED", then this post comes up, with "Voting is OPEN" at the bottom, then you can vote again.
5) If I say "Voting will continue", it's still the same voting period. Voting has not restarted. You can not vote a second time.

Vote format looks like this:

[X] Alea Iacta Est - 6
[X] I, Panacea - 5
[X] Security! - 4
[X] Recoil - 3
[X] Trump Card - 2
[X] NSW - 1

Specifically: SQUARE brackets around an X, one space, and please spell at least the first word of the name of the story properly. Number of voting points comes last. Please try to format your vote properly, so as not to confuse the vote counter.

Thank you.

Voting is OPEN.
 
Last edited:
[X] Security! - 6
[X] I, Panacea - 5
[X] One More Trigger - 4
[X] Trump Card - 3
[X] War Games - 2
[X] Wyvern - 1
 
[X] All Alone - 6
[X] Confrontation II - 5
[X] Wyvern - 4
[X] Trump Card - 3
[X] Alea Iacta Est - 2
[X] One More Trigger - 1
 
[X] I, Panacea - 6
[X] Wyvern - 5
[X] One More Trigger - 4
[X] Meet the Heberts - 3
[X] Alea Iacta Est - 2
[X] Hostage Situation - 1
 
[X] Recoil - 6
[X] Security! - 5
[X] I, Panacea - 4
[X] Alea Iacta Est - 3
[X] Trump Card - 2
[X] Junior Hero - 1
 
Note that you are allowed to quote votes from here on in.
 
[X] War Games - 6
[X] Recoil - 5
[X] I, Panacea - 4
[X] All Alone - 2
[X] Security! - 1

Locked:
Swapped for War Games with Angush
[X] Confrontation II - 3
 
Last edited:
[X] One More Trigger - 6
[X] I, Panacea - 5
[X] War Games - 4
[X] Wyvern - 3
[X] Security! - 2
[X] Trump Card - 1
 
[X] I, Panacea - 6
[X] Hostage Situation - 5
[X] Wyvern - 4
[X] Meet the Heberts - 3
[X] Alea Iacta Est - 2
[X] Danny & Taylor - 1
 
[X] Alea Iacta Est - 6
[X] Wyvern - 5
[X] Nemesis - 4
[X] Hostage Situation - 3
[X] Trump Card - 2
[X] Security! - 1
 
[X] Slippery Slope - 6
[X] Nemesis - 5
[X] Trump Card - 4
[X] Alea Iacta Est - 3
[X] War Games - 2
[X] Wyvern - 1
 
[X] I, Panacea - 6
[X] Slippery Slope - 5
[X] Confrontation II - 4
[X] Security! - 3
[X] Hostage Situation - 2
[X] Alea Iacta Est - 1

Confrontation II/Slippery Slope -> Angush
OK - my policy from this point is that I will copy top eligible vote of somebody who gives "I, Panacea" 6 points and quotes this post
 

Users who are viewing this thread

Back
Top