[Burichan] [Futaba] [Nice] [Pony]  -  [WT]  [Home] [Manage]
[Catalog View] :: [Archive] :: [Graveyard] :: [Rules] :: [Quests] :: [Wiki]

[Return] [Entire Thread] [Last 50 posts] [Last 100 posts]
Posting mode: Reply
Name (optional)
Email (optional, will be displayed)
Subject    (optional, usually best left blank)
File []
Embed (advanced)   Help
Password  (for deleting posts, automatically generated)
  • How to format text
  • Supported file types are: GIF, JPG, MP3, MP4, PNG, SWF, WEBM, ZIP
  • Maximum file size allowed is 25600 KB.
  • Images greater than 250x250 pixels will be thumbnailed.

File 136125104326.png - (182.55KB , 816x738 , pokerprogress6.png )
67641 No. 67641 ID: 65449b

Whoa what's this?! It's a strip poker executable that isn't terrible! That's right, this baby will run on your machine without any modifications or hassle! And compiling new modules? It's a breeze! You can even customize the GUI and the cards themselves! Amazing!

And it's free, from you to me! It's taken me 4 days of development to get to the point you see in this picture. Now, there is one catch: It's not quite done yet. I need to iron out the bugs, tweak the AI, and whip up a character selection screen before I can release it. The last is the most important, since right now I'm selecting characters from the command line, and that won't work on a compiled .exe.

But, when that's all done, I'll convert the poker .dll's I have into modules for this, package it all up, and release it and the source code. You can expect that probably by Friday, February 22nd at the latest, but I'll try to get it out earlier.

So, this will be a poker .exe you can run easily, with modules that can be easily made and added, and you'll be able to put together GUI and card packs and distribute those freely, and you can take a look at the code and try and debug it for me.

I've got a few goals for this beyond what's going to be in the initial release:
* Up to 4 opponents (that's why there's empty space, and that's what the bar under the image is for).
* Supporting images bigger than 400x400 without resizing.
* Allowing you to resize the window freely.
* Playing as one of the characters.
* Replacing the text fields with images so you can replace that too.
* Total GUI customization, including the colors of the lines, up to complete rearrangement of everything in the game.

I'll continue to work on those after the initial release and I'll also release bugfixes that I find or that people post about in here. I'll try and incorporate any changes other people make if they don't conflict with my code and they make it obvious what they changed.

Feel free to ask any questions you might have about the initial release, but keep in mind the readme's when it's out will probably answer most of your questions. Otherwise, I'll see you then!

Peace out.
Expand all images
No. 67642 ID: 65449b

Whoops, I should clarify: I meant 3 opponents, not 4. Four players, including you.

Also, I left these goals out:
* Different AI types for more customizability.
* A program to generate a module for you if you don't feel like manually putting everything together.
No. 67643 ID: 7003a8

>Whoops, I should clarify: I meant 3 opponents, not 4. Four players, including you.

...How about 4 players excluding you? :3c
No. 67644 ID: 65449b

Haha, that would probably be a bit tedious... but feasible.
No. 67646 ID: 696197

What happened to the one Numbers was making?
No. 67647 ID: 65449b

Dunno! I made this mainly to learn Python.
No. 67657 ID: 65449b
File 136128566074.png - (41.81KB , 416x738 , pokerprogress7.png )

Here's a prototype of the character select screen I just whipped up. It's missing functionality (like the ability to support more than 5 characters), and polish, but hey, that's out of the way and we're one step closer to release.
No. 67658 ID: 67bfa9

a lot of the .dlls are designed to be opponents, would the story behind them work as players?

also all the characters have different amounts of clothing wouldn't that make the game unbalanced?
No. 67659 ID: 007fd1

The current dll's would not work as players, really, no. Ideally people would make versions designed to be playable, and it would work a lot like Lagotrope's poker dll.

As for balance in images, that's not really a concern. Most people don't go into poker with the same amount of clothing, and if you're going to cheat, why play? I suppose you could look at it as difficulty modes.

But all that's a long-term goal, and it would be optional if it happened, so it's not really a concern right now.
No. 67660 ID: 007fd1

Whoops, too used to adding "dll" after "poker." I meant Lagotrope's poker flash.
No. 67662 ID: 67bfa9

making playable versions makes sense to me, that way the original creator has a say in how their .dlls are experienced.

personaly I would/will make .dlls exclusively for players or opponents
No. 67670 ID: 57a559

It'll get weird for the dlls with favors though

I mean, how and when did Kyoas acquire a cock for Moalla to suck?
If Kyoas is the player, that is.
No. 67672 ID: 7ce80a

Well that's sort of the point of making modules designed for that sort of thing.
No. 67674 ID: 65449b
File 136132263924.png - (75.40KB , 816x738 , pokerprogress8.png )

Some of these dlls are gonna have this problem. Bear with me on that, I guess.
No. 67675 ID: 65449b
File 136133482287.png - (86.10KB , 416x718 , pokerprogress9.png )

Well, I'm pretty sure that I've ironed out basically all of the bugs, and I've put together the character selection screen (also customizable). This is how it looks now. I'm probably going to release tomorrow or Thursday, depending on how fast I can get these dll's converted.
No. 67716 ID: 65449b

Okay, here it is! Version 1.00! I'm not entirely confident about the .exe compiling because I had a lot of trouble with it so please let me know if it crashes on you. Pretty much everything in there should be self-explanatory, but here's how to use it:

GAME: http://www.mediafire.com/?f8a80hk0zti8s53
SOURCE: http://www.mediafire.com/?2gaidhvj804ohi2

How do I play?
1. Unzip game file somewhere.
2. Run poker.exe.
3. Enjoy!
4. You can change the starting money and max bet in settings.txt.

How do I add opponents/change the GUI?
Check out the readme in the gui folder and the opponents folder respectively. If you'd like to change the cards, you can just change the images in the cards folder. You can zip any of these changes up and distribute them freely.

Good luck and have fun! I'm going to take a bit of a break, and then start working on some of those other goals now.
No. 67719 ID: 67bfa9

I don't like how the images are just straight up included into the folder structure.

for the source code version I understand.
but for the game version I feel it's just too effortless to cheat
No. 67721 ID: eb4f5f

Frankly, it was pretty effortless to cheat regardless. It takes like 3 minutes tops to extract all the images out of the dll, and you don't even have to do that to look at them. There's no real way to keep someone who wants to from looking at them.

Regardless, I understand what you mean, and I'll try and come up with a better way to store them, and code a compiling executable for it so that it's still easy on the creator. I didn't want to delay the release, though, so I went ahead with what was easiest for me at the time.

Hell, if someone wants to, they could code that for me. That's the beauty of it.
No. 67724 ID: 695191

I agree that it isn't good to leave everything as image files. However easy it may have been to cheat, you still have to put the effort in. The pictures weren't just right there. And when you add new opponents you don't even have to bother to look to see them all it can happen on accident. At least they should be renamed to some other non-recognized file type, if not bundled together.

Also, I can't run the exe at all. It asks me if it's the right one of 32 or 64 bit, and when I diagnose it for comparability problems it only says I "need permissions". And I'm running at as administrator. Using windows 7.
No. 67727 ID: 180a66

Yes, I'm going to look into ways to protect the images, though I don't know how you could accidentally look at them. If you're making an opponent, aren't those your images? And if you mean when you copy a folder as a template, I recommend you just delete and remake the images folder; it's less bother.

As for the exe, it might not work on 32-bit Windows becauseI used a 64-bit compiler, but I was rushing to get it out in the morning. When I get home I'll see about compiling32-bit.
No. 67732 ID: a7d3c0

Having to hit ɴᴇxᴛ to clear the message box to say nothing before being able to do another action is slow and awkward. You should be able to click anywhere on the character's text box to advance the text, buttons should be grayed out when they can't be used, and the text box should never be empty, you should be able to bet/stay/etc on the last message displayed.

Having all the images easily available in just a folder is super uncool, you should take down the download and fix this somehow. Sharing the images like that has been frowned on since the start of the first poker thread, because it basically ruins the point of the images being part of the strip poker game.
People being able to go out of their way to ruin it for themselves doesn't mean you should put it blatantly out in the open to tempt people.
No. 67736 ID: 8f4d9c

Message box: Yes, this was something I noted but felt was not worth the time and effort required to restructure the code to fix it for an initial release. The reason it's like that is because I took a page from Lagotrope's book and had the messages display in a box, and iirc you could not continue until you had cleared the text box because otherwise it would build up a backlog of messages if you ran away with the game without reading them. Also, sometimes it straight up updates the text box without clicking Next (often to avoid having to hit Next on an empty box) and that would get messages all jumbled up if it didn't force you to read them all first. Looking into streamlining the game is in my top priorities for the next release; I'll try and address everything you said here and make the game less awkward and clumsy.
Buttons: I don't know what you mean because they do grey out. The only time they don't is when there's messages in the queue, if you meant that, then yes I'll fix it.
Empty textbox: Getting rid of the empty textboxes is a good idea that would clear a lot of overhead and make things simpler to handle so yes I will do that.
Images: I've stated my views above. I'm going to try and fix it ASAP because I understand how you feel but I'm not going to take it down until an alternate version is available. When I have fixed the issue then I will by all means disable the download and re-release it.
No. 67737 ID: c74c7d


That's why my Pokergame is kind of stalling. Finding a reasonable package for delivery is kind of hard. Also the damn thing breaks because of the strings. I need good planning for this if I ever expect it to be fail-safe and modular.

Okay couple of points:

1) What the hell is up with 10 MB of .dlls? Are most of these even necessary?
2) Can Python just compile every unit into a single file instead having a huge file clutter in the main dir
3) As LD said - unpacked directories are cool but there is no sanity checks on them. Meaning the whole game can be easily broken because one file is broken or corrupted.
4) Don't use BMPs. For fuck's sake... don't use BMPS. Just use PNGs. Zlib is a standard now.
5) Compile everything for 2 targets at the same time. I'm sure your compiler can do that. That will avoid problems with 32-bit systems.
No. 67738 ID: c74c7d



3) As LD said - unpacked directories are uncool and there is no sanity checks on them. Meaning the whole game can be easily broken because one file is broken or corrupted.
No. 67742 ID: 65449b
File 136149417532.png - (202.54KB , 821x834 , pokerprogress10.png )

1) I took the time to reformat every .dll that had been made for tgchan. You can delete them if you don't want them.
2) That was another ease-of-effort thing. Absolutely, but I'd have to figure out how to load them. I don't think clutter in a directory no one should ever be going into except to tweak things or make new things is really that much of a problem.
3) If one file is broken or corrupted then fix it and there is no more problem? Packaging files will not act as a sanity check. The only thing that will act as a sanity check is a sanity check in the code, and it does that by returning an error and quitting if you try and load an opponent that isn't formatted right.
4) Are you kidding me? Did you think I had the original god damn images? I spent hours extracting those from the .dll's themselves, and Open Watcom only saves things in .bmp. Like, seriously? Of all the things you could complain about!
5) I am going to look into the 32-bit problem when I recompile the next version. I'm sure that pyinstaller can compile it for 32-bit systems but I use the 64-bit version of everything (python, pygame, pywin32 and pyinstaller) so I'd have to look up how.

On another note, here's how the game looks when it resizes itself to fit the images. This has the opposite problem: On really big images (cough, Velenor, cough) it gets huge and awkward to hold on the screen. Should I implement some sort of upper limit and resize anything beyond that? I suspect 750x750 or 600x600 might be reasonable.
No. 67744 ID: 2f4b71

>Packaging files will not act as a sanity check.
Not inherently, but it's far easier to check the hash of an archive than to check the hash of every file in a directory.

On another note, here's how the game looks when it resizes itself to fit the images. This has the opposite problem: On really big images (cough, Velenor, cough) it gets huge and awkward to hold on the screen. Should I implement some sort of upper limit and resize anything beyond that?
Only if it can be turned off. If you've got a large monitor, you don't want to be stuck using a small corner of it.
No. 67745 ID: 65449b

I've implemented four settings for it. Never resize, resize above 600x600, resize to between 400x400 and 600x600, and always resize to 400x400. I'm also tweaking the new message handling, it should be more clear when you can't use the buttons.

And wait, are you suggesting that I zip up the images to provide that layer of security against prying eyes? Would... would that seriously satisfy you?
No. 67748 ID: 65449b

Here is a new version:

GAME: http://www.mediafire.com/?7c4s7pghq64y713
SOURCE: http://www.mediafire.com/?b5wifyz1xff990q

The old download link is disabled.

1) Resizing now uses smooth scaling.
2) By default, nothing at or below 600x600 is resized; instead, the window changes to fit.
3) In settings.txt, you can change how this is handled.
4) Fixed a bug relating to staying the pot when you're the dealer.
5) The buttons should toggle appropriately according to whether or not you can actually use them, for the most part.
6) I went ahead and replaced Alice Two's portrait with the original Alice module's. The former was mangled to being unrecognizable. This module has a lot of problems anyway but I'm reluctant to just delete it.
7) Images are now stored in .zip files rather than in a folder. Hopefully this will satisfy some of the people complaining about images. In the future I'll try to look into either passworded zips or dlls, and create a compiler that can put them together.
8) All images have been converted to png by LawyerDog. Thanks, LawyerDog!
9) I tried to adjust the clunkiness by making it so that the box doesn't have to be clear for you to continue; the queue just has to be empty. Hope that helps a little.
10) The game should be 32bit compatible now.
No. 67749 ID: 4b07ba

Why don't you publish it in
It's probably a lot easier to publish and update the game than some filehoster...
No. 67757 ID: 65449b

Not significantly. It's more convenient this way for other people I think. If enough people bother me I could add it on there.
No. 67760 ID: 4a20fa

Sourceforge isn't what it used to be, and what it now is kind of smothered in ads. All the cool kids seem to have moved to Google Code or Github by now.
No. 68121 ID: 65449b

Well, I sure am glad this is an open source project. My external hard drive crashed, and could have taken all this code with it! I think I'm gonna look into Google Code...
No. 70367 ID: 65449b

Planning on tackling some of those features I promised before moving on to any new projects. Expect a release in the next few weeks.
No. 70449 ID: f2c20c

I just tried this.

Please make it so that the total vertical window size is not greater than 900, because I cannot see the bottom third of my cards or the size of the pot if there's a 600x600 image being displayed.
No. 70450 ID: f2c20c

Okay, the gameplay isn't quite right here. The computer just prevented me from betting after the draw by calling. A call is only a valid move if someone else has bet!

I also seem to be unable to call before the draw. Instead, I effectively call by staying...? After the draw, it is impossible to stay!

This isn't really poker.
No. 70451 ID: f2c20c

And finally, I tried to bet when my opponent had 0, and it just said "Your opponent cannot afford that" instead of them stripping to make up for it. Before that, she had 40 and I bet 50.

After the hand concluded (and it seemed to skip a line of dialogue when the picture changed-specifically, the line saying what my hand was) she removed an article of clothing and got some money out of it, but I think the money she got wasn't calculated correctly. The total cash in the game no longer adds up to what I'd expect.
No. 70452 ID: f2c20c

Aaaand now the opponent bet when they had 0 already.
No. 70453 ID: f2c20c

Oh the line that gets skipped is actually the line that describes the opponent's hand.
No. 70454 ID: f2c20c

One final, MAJOR bug.

I beat my opponent on the final hand, yet after she ran out of money she didn't actually strip any further, and remained at 0 dollars. So, neither of us could bet. The ante somehow didn't trigger whatever handles stripping, so this would gradually force me to lose.

Eventually I tried folding instead of staying, and suddenly she has 540 dollars?!
No. 70455 ID: f2c20c

I got her money down to 0 again, she still didn't strip, then bet 20 somehow on the next hand.

I won that next hand, and the program closed.

is this a joke
No. 70461 ID: 65449b

You know, you could have collected all of those bugs and posted them at once instead of spamming the thread with them.
No. 70462 ID: 65449b

Ok, I looked over the code:

1) Not A Bug. Please access the settings file if you wish to change how the images resize so that it doesn't go that high and cut off your view of your cards.
2) I suspect this is a bug, but I am going to try and replicate it in the original DOS poker game. Even if I change it, if it's there, that's why it's like that.
3) The "stay" button is used in the initial betting stage and the "call" button is used in the final stage. If you think that this is inaccurate with poker terms, I might put it on the list of things to change, but it's hardly high priority.
4) Not A Bug. That's just, like, your opinion, man.
5) Not A Bug. Being unable to force your opponent past their betting limit is intentional. They are able to bid over the amount they have to match your bid; this money is subtracted from the money they get if they lose that hand. This is so that you can't force your opponent past multiple scenes in a row by bidding high and pushing a winning hand on them. If you think that violates poker rules (I could see why, I suppose), I will change it so that you can and it just adds to their debt.
6) The line-skipping is an unfortunate side effect of the way messages are handled. The win/loss messages have to be crammed in to make sure that the game doesn't try to continue before their loss is registered, and so it tries to shuffle everything around, but sometimes things get lost. It sounds like it's triggering too early if it ate their hand.
7) This sounds like a bug I thought I'd nixed earlier on. I'll look into it, but it would be a great help if you were able to replicate it.
8) This should be fixed; apparently it didn't check if they didn't have any money. I'll probably make it also consider how much money they have in how brazen they are in betting.
9) I'll try and replicate this and you should too.
10) A crashing bug is very serious. Please start the game from the Command Prompt so it will save the error message if it crashes unexpectedly. I tested winning several times against some of Lagotrope's dll's and never ran into any bugs with it, but I'll take another look.
No. 70465 ID: 65449b

Traceback (most recent call last):
File "C:\Users\Pangloss\Desktop\pokergame\poker.py", line 1764, in <module>
resizeToFit = int(lineBits[1])
File "C:\Users\Pangloss\Desktop\pokergame\poker.py", line 1762, in main
setMax = 400
File "C:\Users\Pangloss\Desktop\pokergame\poker.py", line 1618, in __init__
me.owed = 0
IndexError: list index out of range

Well, that's... a weird crash error. I have no idea why it's doing that, so I'll just fix the bug that lets you run into it and call it a day.

Game: http://www.mediafire.com/?i4ww24cwbl4s5wo
Source: http://www.mediafire.com/?k6zl9k37wt3up7r
Changelog v1.30:
-Fixed bugs on resizeToFit settings '1' and '2'.
-Added limits on the max bet and starting money.
-You are now able to bet when your opponent stays just after the shuffle.
-A reveal message of "{0}." will now be properly capitalized.
-Opponents won't try and raise when they have no money anymore.
-You can now set a 'brashness' variable in AI.txt for opponents.
-Betting over the max bet will now inform you what the max bet is.
-The pot now adds to what the opponent owes if they have no money, rather than drawing money from the ether.
-Fixed a bug where if your opponent has no money, you can't proceed because they can only stay.
-Calling in the final betting stage will properly subtract money from you.
-The money owing system is now consistent.
-You can now actually beat an opponent and get the final image.
-You can now bet even when your opponent has no money. It will be added to what they owe.
-Shuffle/win/loss messages and such should work correctly now.
No. 70468 ID: b3897c

So have you made it easier to make .dlls or are people still using the old method?
No. 70469 ID: 400dc8

It's hella easy to make them now, although theyre not dlls anymore
No. 70471 ID: 34cbef

this is pretty cool, for a poker game i'm tickled impressed
No. 70472 ID: f2c20c

When you bet and the opponent has no money, do they strip right then, or afterwards? If they wait until the hand is over, what happens if the pot gets big enough to make them strip twice at once?
No. 70473 ID: 65449b

You basically just make a folder full of text files and put the images in a .zip file. It's massively easier, that was one of my main goals when I started this project.

Thanks! I'm not done adding things to it yet, though!

I've never seen it happen before, but theoretically, it's probable that you'd have to win the next round to get them to strip again immediately.
No. 70511 ID: 400dc8

Deputy Nessandra Squires throws her hat/underwear into the poker thunderdome:


If there's any bugs or whatever let me know on IRC
No. 70515 ID: aef453

Not sure if it's intended or not, but I can't seem to call after I've stayed and the opponent bets. Only option to stay in the hand is to bet on top of it and raise. Bets of exactly 200 also seem to crash the game for me every time, though I've changed the start money value to 200 so maybe that has to do with it?
No. 70520 ID: 65449b

I pulled the build because Brom decided to release his new module WITHOUT TELLING ME so I could make sure it worked. Here is a new build.

GAME: http://www.mediafire.com/?k41g0041il2iwvj
SOURCE: http://www.mediafire.com/?20xvt34rv2y6i5o

Changelog v1.31:
-The limits work properly now.
-Fixed a bug related to the new brashness variable; it's sanity-checked now so it can't happen again.
-Flipped a brashness check so that it works properly now and doesn't make them LESS likely to bet.
-The game will now generate an error log when it crashes.

If you hit an error, please copy the traceback from stderr.log into the thread and allow 3-5 business days for me to cry and bang my head on the table.

Also, you don't have to download Nessie separately, I included her in this.

(P.S. this time for realsies)
No. 70536 ID: f2c20c

Hey, should the backs of cards match the suits? That seems unfair to the computer- you can tell when they may have a flush.
No. 70552 ID: 65449b

It's the same as it would be in real life, and quite unreliable. If you don't like it, use the neumono cardset in the /cards directory. Or make your own! Or, heck, just make both backs blue or red.
No. 70555 ID: f2c20c

Er, really? I thought decks always had the same color backs. If you're using multiple decks then they could have different colors...
No. 70557 ID: 65449b

Well that's the deck I found online anyway u.u
No. 70606 ID: 1d5849

I can't seem to be able to play this. At some point all buttons go gray, the text box is empty, and the only thing I can do is to press the numbers to change the betting number - which doesn't do anything either because I can't in any way confirm it.
No. 70607 ID: 67bfa9

the current version of the game is unplayable now for me

if she's clicked stay, and I clicked stay all the buttons grey out and nothing is clickable, the only thing I seem to be able to do is exit the game and restart
No. 70608 ID: 2bcc2f

I'm like 99% sure this is not a bug and you just didn't try to click the text box to go into card choosing mode.
No. 70609 ID: 67bfa9

nope!after I exhaustively tried every single button(including dialogue box) I extensively clicked on ever spot on the screen, nothing.

on further examination this problems seems exclusive to nessie, I even tried nessie on the old version but this time it had a new problem where it crashed whenever I tried to place a bet. all the other oppenents seemed to work fine
No. 70610 ID: 67bfa9

also these situations accured when we both stayed with no bet, so logically it shouldn't have gone to card choosing even then, also the check box was grayed out like every other button and had no effect when I click on it.

I've repeated this error multiple times
No. 70612 ID: 524925

In that case, I'll take a look at it, but I tested Nessie numerous times to make sure her module was ending properly (which is how I spotted that Brom had not inserted the correct number of image dialogues). If you could write up a list of steps that reliably reproduce the problem, I will be able to find any bug related to it very easily, or determine whether it's a problem on your end.
No. 70637 ID: b9a386
File 136859057051.png - (90.63KB , 800x800 , ket\'al it begins.png )

No. 70646 ID: a8081f

I am also encountering this bug.
I stay, Demesi stays, then we stay staring at each other until I quit.
No. 70647 ID: a8081f

At this point I'm fairly confident that I can replicate this bug on LW's behalf.

I bet 200, she stays.
I select my cards, I call. I have a pair, she has a pair, mine's better.
After the shuffle, she stays. If I click stay here... "you stay." followed by nothing, and now nothing can be done.
I would rate this as a critical error.
No. 70648 ID: 1d5849

Yeah, after further experimenting, this is how my freeze always comes up too. Both staying always freezes the game.

Another thing the program could use would be quick keys. Playing with just a mouse is slow and painful.
No. 70649 ID: 1d5849

Also, another thing: about half the time I'm not allowed to bet any more money after getting the new hand. Instead, the game just skips that step and has us show to see who wins.

This is really annoying if I start with a lousy hand, tentatively make a small bet in order to keep in the game, and then end up with like a full house or something, that would have wanted me to max out the bets to max out the winnings but never got the chance.
No. 70650 ID: f2c20c

I'll note here that in this situation the old poker game caused both players to start over with new hands (and the pot stayed). I don't think this is proper, and it should probably just reveal both hands to see who wins, if nobody wants to bet during the second betting round.
No. 70651 ID: a8081f

Another thing that just happened.
I was up against Katrina and I got her down to 0 while betting, and I hit "bet" again and then the program closed.
No. 70652 ID: a8081f

Possibly related though, she doesn't appear to have any text after the first line in imagesMessages.txt. I was on her second frame when it happened.
No. 70654 ID: 1d5849

I agree with this, but what if they stayed during the first round?
No. 70655 ID: 0750a3

It may be failing to insert the shuffle message. I was going to look at it last night but got caught up in real life stuff. I'll try and nix all the bugs tonight.

I believe I can implement that.

That is because it is your opponent's turn to open the betting and they chose to call. I'm pretty sure that's how it works.

That's how it works here (when it works). How is it improper?

Yes, that is definitely the problem. It may have been lost in translation.
No. 70658 ID: a8081f

Such efficiency.
On a scale of gr1 to gr7, I would rate you as gr8.
No. 70660 ID: 0750a3

Anon, you're making me blush.
No. 70661 ID: b2d7ab

>I'm pretty sure that's how it works.
It's not.
No. 70662 ID: 909f0d

Do tell.
No. 70665 ID: b2d7ab

The betting after the draw is just like the betting before the draw. Both players get an opportunity to do something, even if the first person checks.
No. 70689 ID: 65449b

Ahh, dammit... there's the problem. Fix one bug, break another. The game was ending itself before it was actually ended, so it never triggered the shuffle. Two-line fix. Anyway, I thoroughly tested this build (beat Aggeia), so it should, at least, be playable:

GAME: http://www.mediafire.com/?k42kqipscvqdqkw
SOURCE: http://www.mediafire.com/?r5qs69229n4gn7i

Changelog v1.35:
-Fixed a bug when the pot stays.
-The AI will now occasionally bluff.
-The AI will be more likely to pursue hands to their conclusion the higher the pot is.
-You can now only stay when no one has bet, otherwise it is calling.
-You can now bet even when your opponent stays after the draw.
-Added keyboard shortcuts for the buttons.
-You may now use hotkeys to play the game. See "key layout.txt".
No. 70690 ID: 65449b

Derp, I just realized those last two are the same thing.
No. 70700 ID: 1d5849

The program now keeps shutting itself whenever I try to bet the second round.
No. 70702 ID: a8081f

I've managed to replicate this, though not reliably. It seems to happen after getting the second round of cards, yep.
What's the deal with their hands not being shown sometimes? Even when I win, I don't get to see what they had.
What's the deal with hands sometimes getting redealt while keeping the old pot? It only seems to happen when I either call or stay (I'm not paying that much attention). Is this some rule of poker I don't know about?
No. 70704 ID: 65449b

In the old version, when you both stayed, the pot stayed and you redrew your cards. I kept that in.

Oh dear. If you manage to replicate it, remember that the crash log will be in stderr.log. If you post that in here it should be easy for me to fix. But I can bet in the second round just fine...
No. 70705 ID: a8081f

here's my latest crash:

Traceback (most recent call last):
File "<string>", line 1851, in <module>
File "<string>", line 1849, in main
File "<string>", line 1431, in __init__
File "C:\Users\Pangloss\Downloads\pyinstaller-2.0\poker\build\pyi.win32\poker\out00-PYZ.pyz\random", line 241, in randint
File "C:\Users\Pangloss\Downloads\pyinstaller-2.0\poker\build\pyi.win32\poker\out00-PYZ.pyz\random", line 217, in randrange
ValueError: empty range for randrange() (2,2, 0)
No. 70709 ID: 65449b

Hm... I *think* I know what's causing that, but I'm going to have to try and test it out a bunch to make sure. Can you replicate it reliably?
No. 70712 ID: a8081f

Nope. I did it again though, eventually. Lots of bets and calls and stays that game.

New error log, the only thing different is the last line:
Traceback (most recent call last):
File "<string>", line 1851, in <module>
File "<string>", line 1849, in main
File "<string>", line 1431, in __init__
File "C:\Users\Pangloss\Downloads\pyinstaller-2.0\poker\build\pyi.win32\poker\out00-PYZ.pyz\random", line 241, in randint
File "C:\Users\Pangloss\Downloads\pyinstaller-2.0\poker\build\pyi.win32\poker\out00-PYZ.pyz\random", line 217, in randrange
ValueError: empty range for randrange() (2,1, -1)
No. 70720 ID: 1d5849

For me the crash seems to come more if there are a lot of bets on the second round, and especially if the bets are big.

Don't you think it might be a bad idea to allow the players to bet a lot more money than they're actually carrying? I don't remember this having been the case in the original game, and it doesn't make much sense either.
No. 70730 ID: 840aa5

Oh yes. I was down to dick all, had a three of a kind, kept betting 200 (and they kept calling) up until they had 0 left too, then I won. That was a good game.

I'd also like to suggest perhaps having an introductory conversational line? You know, just before the first shuffle. Might be cool, yes?
No. 70732 ID: f2c20c

Ummm... if they call after you bet, you're not supposed to be able to bet anymore. Basically calling is the same as matching the current bet, and if at any end of a betting cycle everyone has folded or bet the same amount, betting is supposed to end.
No. 70733 ID: 65449b

It is the only way to make sense when you can force the AI to bet over its limit (the AI now does it too). Since, unlike the original game, you cannot lose multiple articles of clothing at once or at all before you lose a hand, it's not as unbalancing as it would have been in the original; for that matter, it's impossible in the original, and thus sort of already implemented, if that makes sense. If not:

In this game you can bet them into debt. In the DOS game they would just get more money. The effect is functionally identical, except the former ups the difficulty by making it so you can't roll them with one good hand.

Yes, but none of the existing modules have them... Maybe I could use the lines that used to be below their portraits?

I assume he means that they kept matching his bets.
No. 70734 ID: f2c20c

Matching someone's raise is exactly the same thing as calling, and if there are two players no more betting can be done after one player calls as there are no more players that can raise, so the betting round is considered to be over. Only if the raise is 0 is it considered to be a 'check' or a 'stay'.

Is the current behavior to just go "okay I matched that bet" if the opponent is in debt, and allow you to continue raising against them? It should only let you continue to raise if the opposing player also raises.
No. 70737 ID: 840aa5
File 136889290975.png - (2.10KB , 120x120 , portrait.png )

Is it not as easy as making it read "introLine.txt" before the first shuffle, or something?

Anyway, here it is, my gift to you all. A game with a beautiful dame, Dirkette!

I am assuming it works the whole way through, the bet-too-large bug stopped me from getting that far.

No. 70738 ID: 0eef61

i cam bukits
No. 70741 ID: 65449b

The bet-too-large bug?
No. 70742 ID: 65449b

No. You can either bet or call; calling ends the round, betting raises the stakes. Previously the AI would not bet if they had no money. I decided to remove it because, well, you can. But I suppose this, combined with the fact that having more money in the pot makes them more likely to commit to a hand, may unbalance things, so I'll tweak the AI a bit.
No. 70749 ID: 840aa5

the aforementioned bug, the hard to replicate one, which might be due to betting high multiple times on the second draw.
No. 70759 ID: 65449b

I see. Hrm...

Anyway, it is that easy, but the problem is that the current modules don't have anything to put in that. So then what?
No. 70765 ID: 67bfa9

the game is crashing for me some of the time as well, it seems to be avoidable if I keep the bets low, but that may just be coincedence
No. 73096 ID: 67bfa9

I think some of the images aren't properly resized, a couple of the characters [Zane and punyglocks] appear distorted
No. 73103 ID: a01b62

Oh? I'll take a look at it in a bit. I think I weeded out that crash bug, but it needs more testing to make sure.
No. 73114 ID: 67e689

Just a small thing I've noticed: After you win a game, or lose one, you have to restart the program to play another game. Not that important, but meh.
No. 73127 ID: 1d5849

It's a remnant of the original game, and I guess nobody was ever bothered with it enough to ask it removed.
No. 73130 ID: a01b62

I could probably restructure the code a bit to loop it around, and might do so anyway, but my main improvement there was to have the window stick around as long as you wanted after you won, rather than closing immediately after the last message.
No. 73131 ID: a01b62

Oh, and I just remembered: You can set the resizing settings in the settings file.
No. 73157 ID: a01b62

You can now find the downloads, code, and changelog on Sourceforge here:

However, I will continue to post about the updates here. Like so:

Changelog v1.38:
-Probably fixed the crash bug.
-Fixed the image resizing and optimized the way it was doing it.
-Moved onto Sourceforge.
-Compiled version no longer defaults to most stringent resizing method.
-Made some of the text more clear.
No. 73337 ID: 67bfa9

I still can't get Zane.dll playable
Resizing still doesn't work for me, options 1,2 and 3 look awful and distorted,option 0 makes the image to huge for the game to be playable
No. 73349 ID: 2cf815
File 137327021654.png - (210.45KB , 816x738 , newzane.png )

I did a quickie codefix for you and set up a new graphics option so that modules like Zane's are still playable at lower resolutions. This one resizes everything to at most 400x400*, but keeps the original dimensions. Here's how it looks.

You can download this version on the SourceForge, and I committed the changes to the SVN.

*You can do the same with 600x600 by using the third setting now. This is for people who can't play at those dimensions.
No. 73351 ID: 2cf815
File 137327034147.png - (291.18KB , 816x891 , newzane2.png )

Sorry, I meant on the second setting. Here's what she looks like now there.
No. 73360 ID: 67e689

Did a few tests, the bug for crashing due to overbetting was not fixed. I played against multiple opponents, and bet 200 on each bet. After a few rounds the game crashed on me each time.
No. 73513 ID: 0eef61



its a dude
u asked 4 it
No. 73557 ID: 5337ed

Hot tip: This is missing an AI.txt and cannot be played without one.
No. 73560 ID: 86d6c9

No. 73566 ID: 0eef61


No. 73568 ID: a01b62

Free facts: Brom never fucking tells me before he releases these things. I put out a version which I am all but 100% positive will fix the original crashing bug as well as one I introduced in the last version (on image transition).

No. 73578 ID: 67bfa9

I noticed you removed Dirkette, was there a reason for that?
No. 73581 ID: a01b62

I never actually put him in the opponents folder.

And I'm not inclined to release another version for it. Sorry Carbon4! I'll try and get h(er) in the next one when it comes out. I'm just happy this one works to completion.
No. 75497 ID: e97f9d
File 137723189369.png - (129.52KB , 816x738 , multiplayer.png )

Sneak peek of the next version's major new features: Being able to play against multiple characters, and being able to play as a character. You can use this to make FFA's or the normal 1v1 except both you and your opponent are a quest character, or whatever.

It's not really close to done, but I should be able to have it working in a day or two, and I'll bugtest it until it's ready.
No. 75499 ID: 34cbef

the way it's going soon we'll have an actual plot added
No. 75500 ID: e97f9d

You could do that in this version! Just make the player a character, and tie it into your quest somehow, linking to a download post in this thread directly, and then reference it in the module's dialogue. Bam! Plot. You could even tie it into the quest by having the suggesters post who won the first time they tried it.
No. 75501 ID: 34cbef

oh god, poker quest... callin it now
No. 75538 ID: e97f9d

The new system works just fine with the normal modules, but I'm still having some trouble with the AI on ones with more than 2 players. I might have it in releasable condition tomorrow; but before I do that I'd like to have it bugtested. PM me on IRC (Squeegy) if you're interested.
No. 75755 ID: 8aedac
File 137793050321.png - (1.23KB , 120x120 , portrait.png )


No. 75764 ID: bd48c5

>Download this file with our downloader!

No. 75767 ID: 8aedac


No. 75798 ID: bd48c5


No. 75817 ID: e97f9d

And it's out! This version has been thoroughly bugtested so it should work perfectly fine, but if it doesn't, you know where to go.

-You can now have up to 4 characters in a game! The game autocompletes up to the card reveal if you're out, though. If you're making a character, make sure to check the updated readme.txt.
-Thus, you can now look between them with the display, as intended.
-Look at the Neumono module for an example.
-You can set the module name to something different than the character's name. See: Aggie.
-Fixed a very minor bug with dialogue display.
-When losing an article of clothing, the image will no longer change until you get the loss dialogue.
-Increased likelihood that the AI will bet initially.
-Added keyboard shortcuts for the little buttons below the image.
-And for the arrows on the module selection screen.
-Revamped the way money is handled. Should be airtight now.
-AI may be less likely to stay because of archaic code removed.
-AI's brashness now affects how likely they are to bet significant amounts of money.
-Added extensive debugging text to 'stdout.log'. This should help me diagnose errors in the future.
-You can now use {0} in the message when an opponent loses.


A bit of a retrospective: When I posted this thread, these were my stretch goals:
* Up to 4 opponents (that's why there's empty space, and that's what the bar under the image is for).
* Supporting images bigger than 400x400 without resizing.
* Allowing you to resize the window freely.
* Playing as one of the characters.
* Replacing the text fields with images so you can replace that too.
* Total GUI customization, including the colors of the lines, up to complete rearrangement of everything in the game.

Here's the ones I've completed so far:
* Up to 4 opponents (that's why there's empty space, and that's what the bar under the image is for).
* Supporting images bigger than 400x400 without resizing.
* Playing as one of the characters.

Which just leaves these:
* Allowing you to resize the window freely.
* Replacing the text fields with images so you can replace that too.
* Total GUI customization, including the colors of the lines, up to complete rearrangement of everything in the game.

Halfway there! Not bad, eh? The rest seems pretty trivial!
No. 75835 ID: da4ec6

Aggie crashes the moment I select it.
No. 75836 ID: e97f9d

Not so for me, friend. Post your stderr.log.
No. 75837 ID: e97f9d

Ok, it appears I didn't update the opponent folder on the compiled version completely. You can fix this bug yourself, by going to /opponents/Aggie/settings.txt, and changing the first line from:



playerCharacter: None

Or anything you want, really, as long as there's a name there and it isn't 'Aggeia'.
No. 75849 ID: aef453

How hard would it be to implement an "X-Ray Glasses" function, for debugging/cheating purposes? That is to say, making the opponent's cards visible to the player throughout the hand.
No. 75850 ID: e97f9d

Not remotely, but LawyerDog would probably yell at me.
No. 75871 ID: aef453

I didn't know Strip Poker was something you could speedrun.
No. 75890 ID: e97f9d

Having playtested it thoroughly, I can assure you that you can.
No. 75900 ID: fcd483

Does the AI still fold most of the time if you start off with max bet?
No. 75902 ID: e0c719

No, not anymore. I've changed the tests around so much that I don't really remember how they were originally, but when you play a normal AI they'll only fold occasionally if they don't have much and you max bet. This changes with brashness; high brashness opponents (like Rokoa) will almost never fold and get into bidding wars even when they don't have a very good hand, even making some all-ins of their own, and low brashness opponents (like Pilon) will quite frequently fold when you max bet unless they have a pretty good hand.
No. 76043 ID: e97f9d

I just made a terribly silly thing:

No. 76044 ID: d38f67

Another series of small-sized character modules with Clamp, Matron, Hilt, Grasswind and Shabin.

About half of the characters also have been either tweaked or redesigned, and will probably look the way they do if I ever go back to Clamp Quest.

Since PyPoker can only handle 4 characters at once, there are a couple steps needed outlined in the SETUP!!.txt file within the first folder in the .rar.

No. 76053 ID: 2219d0

Now if only it'd stop crashing...
No. 76057 ID: eacb1f

I have no reported crash bugs. If you are experiencing crashes, update to the latest version and make sure there is no solution posted in the thread. If that does not work, paste your stderr.log in the thread after one of said crashes. Otherwise I cannot help you.
No. 76062 ID: cf16c8

A+ Hilt is top tier.
No. 76069 ID: 67bfa9

Grasswind > Hilt
grasswind, best gnoll

I got a crash but I don't know what an stderr.log iso
therwise though I like how the multiple characters thing is handled
No. 76070 ID: 6c2132

My log is empty.

And I guess the correct word would be freeze. The game does so very often - I'm lucky if I manage to play a whole round without it - and nothing whatsoever gets it to move again save closing the whole thing.
No. 76073 ID: e97f9d

Sounds like a problem on your end, then. Try 'stdout.log,' although it probably won't yield anything useful, it should say what it was doing when you froze, and if you can verify it freezes at the same place, I can try and figure out what the problem is.

It's a text file in the same directory as the game that it keeps all its crash information in. It's wiped every time you start the game, though.
No. 76086 ID: 96c896

Perhaps you should keep multiple error logs instead of one? Like, three of them?
No. 76088 ID: e0c719

Why? Are you saying I should rename the old log instead of deleting it? Hopefully you'd be able to reproduce the bug anyway.
No. 76159 ID: 4ef19e

Crash occurs when player's debt is more than <article of clothing value> below 0; e.g. if the startMoney is set to 400, getting to 0 then betting 400 will cause the client to close.

stderr.log output:
Traceback (most recent call last):
File "<string>", line 2246, in <module>
File "<string>", line 2242, in main
File "<string>", line 2027, in __init__
IndexError: list index out of range
No. 76160 ID: e97f9d

The line that refers to is thus:

Therefore I must assume that it is an error in the module, rather than in the code. This error could be triggered when the opponent folds upon you making such a large bet, thus triggering the image swap code, but not having an appropriate message to go with the image. In short, imageMessages.txt is too short.

Which module are you playing, and does it work on other modules?
No. 76161 ID: 4ef19e

Had similar repro with a hang in Gnoll Camp, but that had a different effect (No text in text box, no options active, no way to progress).

Pastebin for stdout.log, but no stderr.log contents existed. Player was Matron.
No. 76162 ID: 4ef19e

Crash in >>76159 reproduced on:
* Aggeia
* Alice
* Amiel

Repro steps I'm following:
1. In settings.txt, set both "maxbet" and "startMoney" values to 400.
2. Open poker.exe and click on a module.
3. Press space to advance text once.
4. Type 400 in bet window and press enter, then space to advance past the "I call" dialog.
5. Try to set up a bad hand; throw away any cards that make a pair. (Using QWERT and D hotkeys)
6. Press Space again to advance past dialog.
7. Keep 400 in the Bet form and press Enter again.
8. Press Space to advance.
9. Press Space again to advance past showdown.

The crash occurs about a quarter of a second after the "Opponent won" text is shown.
No. 76163 ID: 96c896

Yes. Rename the old log, up to one or two old logs. It'll help for bug reporting.
No. 76167 ID: e97f9d

Ok, I implemented it with an iteration loop up to 5 logs, with room to change it later, or possibly add it to the settings.txt file.

Ok, this crash occurs whenever you lose a hand that results in a loss, because when I was changing the code I forgot to include a check that makes sure you're a character before you go through the character loss procedure. I never lost enough to have to strip as a non-character, so I never found the bug. It's fixed now, thanks for your report.
No. 76194 ID: e97f9d

As usual, download it here: http://tgchanpoker.sourceforge.net/

Changelog v1.51:
-Fixed a crash bug or two.
-The error and output logs now back themselves up to some extent.
-There are now nametags on the cards. Meant to do this before, but forgot.

I also removed nextbutton.png from the GUI files, since it's no longer used, and added a nametemplate.png for the nametags. GUI customization is still a thing you can do!
No. 77059 ID: 3c70d1

It's kind of creepy that neither of the new strip poker threads have been updated since the exact same day...
No. 77470 ID: 53548a
File 138388042727.png - (23.63KB , 641x228 , betterway.png )

So I'm sure some/many/all of you have looked at how I handle the opponent modules and thought to yourself, "There's got to be a better way!"

Bam! You just got better way'd. Attached is an image of what the module folders will look like in the next version. I've done away entirely with the text files, replacing them with Python files that are dynamically imported by the game. I've also shifted all of the code that handles the AI into a standard character file, which the individual character files import themselves.

This means that you can create your own custom behaviors, including cheating, characters talking to each other, specific messages on specific events... pretty much anything your heart desires. And if you don't want to deal with that... just ignore everything below the dotted line! Setting up a new character module will still be just as easy as before; perhaps easier, in fact, since you don't have to open a bunch of text files.

I'll need to finish actually coding this, and then convert every existing module into the new format (again) (ugh). This could take several weeks, but when it's done, I'll release the new version. I will probably expand functionality as requested, if people want to code specific behaviors that the game doesn't give you enough information to do.
No. 77510 ID: 3c70d1

So is there a way to have a visual representation of the player character and have different dialogue for each of their strips too?
No. 77749 ID: 53548a

Absolutely; that's already in this version. Just look at Neumono and Gnoll Camp for how to do it.
No. 77787 ID: 2e624b

i seem to be getting a crash whenever a characters money runs out and their image should change.

the stderr output is:
Traceback (most recent call last): File "<string>", line 2309, in <module> File "<string>", line 2305, in main File "<string>", line 1982, in __init__ TypeError: update() takes exactly 3 arguments (1 given)

looks like the wrong classes update function is being called
No. 77788 ID: 53548a

Oh, yeah; that's just mishandling a call to update the name tags. I'll release a bugfix later today.
No. 77791 ID: 90595d

Fixed both that and another strange crash.

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.52:
-Fixed a crash bug on image transition.
-Fixed a crash bug when all parties fold.
No. 77800 ID: 0dc069

Good news: I've basically finished all of the code for the new version and all that remains is bugtesting and conversion.

Bad news: I can't upload v1.52 from here so you'll have to wait until I get home or use the source version (which requires you to rename settings.ini to settings.txt)
No. 77823 ID: 30df25
File 138496236702.jpg - (18.40KB , 283x320 , Isaac-Washington.jpg )

whoa Whoa whoa

Do you have all the data from the old strip poker game? Wait, you said you already have that.

I will find a way to contribute.
No. 77825 ID: 6b9b92

Draw more strip poker modules! That's the best way to contribute.
No. 77882 ID: 30df25
File 138506682366.png - (64.72KB , 244x366 , every_bitmap_700.png )

> I'd also like to suggest perhaps having an introductory conversational line?
> Yes, but none of the existing modules have them...
The original winsp.exe *.dll files did. It was string resource #999.

It looks like you set 'Brashness:0' for all the opponents. Maybe string resource #900 was the aggressiveness in the original winSP files? Either that or it was gender (1=female 2=male?). I know string resource #902 was the opponent's age (thank you for not including that).

I do have some homestuck *.dll files someone made for winsp.exe. Would that be an 'opponent module' since it's multiple character with a single theme? Or are 'opponent moudules' for making AI opponents play against each other? I'm not sure how that works, what with multiple opponents but they all share one portrait.png.
No. 77885 ID: 30df25
File 138507842125.png - (34.04KB , 350x445 , karkat_703.png )

Okay, converted the six homestuck *.dll files. I noticed there's no place to put string resource #999 (before starting the match) nor string resource #932 (player reveals %s in their hand)(oppRevealMessages.txt ???)

Where do I send this stuff?
No. 77889 ID: 53548a

I didn't include #999; I replaced it with instructions on how to play. I could easily add it in if people wanted it, but at this point there's quite a few modules without it. Not that that would be a barrier to implementing it, it just lowers the priority somewhat.

Brashness is something I made specifically for this version; it had no place in the original that I'm aware of. There was some speculation over the significance of various numbers but without cracking open the program there was no way to tell.

Gender and age were both sort of irrelevant, they were both removed from the character cards along with the short blurb that accompanied the portraits on the selection screen. I also didn't include the option for the players to change the currency, though artists can now set a custom one for their module.

Multi-character modules have a single portrait and consist of up to four characters (player included) playing against each other in a single game. The game doesn't end if you lose all your money in this case; it continues being played until one player remains. You'll want to make each character its own module.

You're free to release your own Homestuck modules and even post them here I suppose, but I won't be including them in the download, as it is for tgchan, not MSPA. However the poker game itself could support any community, so you're welcome to remove all the opponents included in the download, substitute your own, and post it elsewhere on the Internet so long as you give me credit for making it and include a link to where you put it in this thread (so I can see if anyone there finds any bugs and so on).
No. 77890 ID: 53548a

Oh, and the card reveal is revealMessages.txt.
No. 77891 ID: 30df25

> revealMessages.txt
There's two types of reveal messages in the old format:
#932 - "I see you have %s."
#933 - "Behold! My cards are %s."

revealMessages.txt looks like it's for #993, but not #932. I'm guessing you have a generic message hardcoded for announcing what the player's cards are.
No. 77892 ID: 53548a

#932 was converted into the player's reveal message. If the module has a player character, then their message will be used; if not, then it's "You have %s." Currently the latter is hardcoded but not in the unreleased version.
No. 79046 ID: 53548a

I've almost completed converting the modules. The new code is all but done. Unfortunately it's introduced a few new bugs I need to sort out. I give it a day or two.
No. 79268 ID: 53548a

Ran into more trouble than I expected. I maaaay have to rewrite all of this from scratch.
No. 83516 ID: 53548a

Six months later, I finally got around to actually doing that. It took about four hours. All the new code is done. I just have to bugtest it until it actually works. That could take days.
No. 83543 ID: 53548a
File 140515229807.png - (163.03KB , 830x791 , poker16.png )

It has finally arrived, chosen disciples! Go, and wear clothes no more!

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.60:
-Completely reconfigured the filesystem to be more modular.
-Condensed all the text files into a single .py file.
-You can now edit advanced AI behavior through that .py file.
-Replaced the settings.txt file with an __init__.py file that is requisite for all characters.
-Generally cleaned up the organization of the code. Text files are essentially nonexistent now.
-The faceless player character is an actual character now. I'll probably export more of the player text there in the future so you can customize the default player. Currently you can put your name in if you want.
-You can even create your own AI templates now!
-Characters that lose the game will no longer continue to have cards.
-During my playtesting, I discovered that when you're out in a game with more than 2 players, leaving it on an opponent's shuffle message will cause the game to loop its effects until you hit Space, leading to chaos.
-Added a bunch of debugging messages to stdout.
-Probably more minor things I forgot.
-And then I completely rewrote the entire poker part of the game in an evening. It is considerably shorter and neater. The game's mechanics should be more solid and reliable now.
-Included in this rewrite is a completely new handling system for messages.
-With the new message system, the game will now pause while you read dialogue, so that it does not jump ahead of where you are reading.
-Moved a bunch of stuff into basicutils.py and StandardCharacter.py.
-There is now a bet cap per round. It's adjustable in the settings, but it has a maximum of startMoney times two. It prevents the pot from going over a certain amount per person. This is because the first round now does not end until everyone stays, so it prevents you from skyrocketing the bet on a good hand; on the other hand, you can't keep the AI from raising the pot without folding. Second round after the draw still works the same. Also, it's on top of the existing pot, so if you have leftovers in the pot, they won't be counted towards the bet cap. Either way, no more spamming bets to win.
-Seriously, it was a huge update. Why are you still reading this? Go check it out.
No. 83547 ID: d8a627

...Is it legit poker rules that if both players stay before bets are made, you lose? That doesn't sound legit.
No. 83548 ID: 0ee153

Yes, it is. If no one opens the betting but all players pass/check, normally the cards are thrown in and the turn to deal passes to the left. Not so much "you lose" as "fine, you don't want to play the hand, next one." You lose the ante because you didn't win the hand.
No. 83549 ID: 2fd516

Um, normally the pot is supposed to be left alone if both players stay. Then new cards are drawn and both players ante up again. So the pot keeps growing until someone makes a bet.
No. 83553 ID: 53548a

"You lose"? No. Pot stays and a new hand begins? Yes.
No. 83554 ID: 53548a

Figured out the problem; it wasn't resetting the winner after each match, so if you tied, the winner was just whoever won last round. It'll be fixed in the next version.
No. 83584 ID: 9dd1ee

is anyone else working on more opponents? I was working on one but got about half way before I kept loosing motivation.

these thing get so much less feed back when released than quests do, it's sometimes hard to tell if people even care
No. 83586 ID: 53548a

I'm working on a joint effort with MrQ to make a module.
No. 83588 ID: d8a627

Maybe most people don't want to show themselves as enjoying strip poker, especially given that a lot of the characters apparently enter sex as you go far enough into the match (Gotta admit, not what I was expecting... But not exactly a bad thing).

Would it be massively difficult to allow the Numpad to input bet amounts? It's far easier for me to use the alphanumeric numbers, but if the numpad is too difficult to implement, don't worry.
No. 83591 ID: 53548a

>(Gotta admit, not what I was expecting... But not exactly a bad thing)
The author decides what goes into the module. I think Lucid Dakou was the first one to pioneer sexual favors in place of stripping when clothes ran out. Technically, it doesn't have to contain stripping at all.

>Would it be massively difficult to allow the Numpad to input bet amounts? It's far easier for me to use the alphanumeric numbers, but if the numpad is too difficult to implement, don't worry.
Never thought of that; I just added it to the next version as well as a few other numpad shortcuts.
No. 83596 ID: 4a20fa

The way I solved the "might not want to play a character" thing in JSPoker was to provide a "Nobody" character who doesn't appear or speak except when absolutely necessary.
No. 83600 ID: 53548a

That's not what they were saying and a default player character has existed in the game since the first version! They were saying that people might not want to provide feedback on strip poker because it is pornographic and doesn't mesh with some people's sensibilities.
No. 83609 ID: a32d59

I'm glad to see this back under active development. I do have a couple questions, though.

How much can individual modules be customized? I've admittedly always been kind of disappointed with how little can be done with changing character behavior on different stages. Can you, for instance, change dialogue and AI to conform to level of clothing loss?

I think it would be kinda neat to be able to change out dialogue "sets" as characters get more angry/embarrassed/flirty at clothing loss, with corresponding AI changes. Is this possible? If it isn't, any plans on adding it?

I might do so. I'll probably gauge interest by asking about it, first though. I wouldn't want to spend a large amount of time and effort making a new module just to find that nobody is interested in playing it.

The explosion of comments after this announcement would seem to suggest, to me at least, that there is still a lot of interest in this. Honestly, I feel that the main reason for the perceived lack of interest right now that there's no new content.
No. 83610 ID: bf9168

Been getting a bug, which has been repeating thus far, where after running out of money for the first time, the maximum bet halves itself every turn, until it's about impossible to play because the max bet is 1.
No. 83611 ID: 53548a

>Can you, for instance, change dialogue and AI to conform to level of clothing loss?
Currently, no, because some of the dialogue calls (and onTry) are in the main code, but I will definitely move it into the character .py for the next version so you can do stuff like that. Like I said in the changelog, customizability will increase mainly as people ask me to be able to do new stuff.
No. 83612 ID: bf9168

Might be important, I did edit the settings slightly, to set the maximum pot to 1000.
No. 83613 ID: 53548a

Hmm, that's odd, thought I fixed that. I just verified it, so I'll fix it before the next version, but in the meantime, uh... try not to lose?
No. 83614 ID: 53548a

It appears that the player losing was queueing a shuffle message twice, and that was causing the bet cap bug. Fixed now.
No. 83617 ID: bf9168

Another bug, everyone from Penelope through to Zane seems to be unplayable, as the program closes as soon as I hit a button and the cards are shuffled.
No. 83618 ID: d8a627

During Aggeias, there are two opponents, and two screens to cycle through, but only one of their hands gets revealed to you.
Strange, I didn't encounter that.

By the way, is there a quick way to boot yourself from the game back to the character select, or do you have to full on relaunch?
No. 83619 ID: 53548a

Ah bollocks, I forgot to update their inherited functions. Just go to one of the modules that works and copy-paste-replace everything from below the dotted line into one that doesn't work.

There are not two opponents in Aggeias. You are one of the Aggeias.

And not yet, but it's on the to-do list.
No. 83622 ID: 7fd5be

>There are not two opponents in Aggeias. You are one of the Aggeias.

So if I win as the first Aggeia, does this mean I magically turn into some guy just in time to whip Aggie?
No. 83629 ID: 53548a

You seem to have mistaken it for something remotely serious. I just put it together to demonstrate how you could play as a character.
No. 83642 ID: d8a627

It does make me wonder, though, how hard is it to add other players?

Making the characters interact with eachother based on losses, of course, would be absurdly difficult, so perhaps it's for the best that it remains as is for now.
No. 83660 ID: 53548a

It is extremely easy to add other players, as I specifically designed for it to be. If anyone trying to do it runs into any problems, they may post here for help or contact me on IRC as Squeegy.

Even making characters say lines to specific people would not be terribly difficult, though more complex situations would probably require some finagling in the main code. I'll need to do some research and see if there's a better way to do it.
No. 83666 ID: d8a627

What I meant was coding their images to work together.
I suppose an easy way of doing that is that once they both hit a certain image or beyond, it starts looking through another batch of images, but even still, it can easily throw off the sync.
Keeping the sync would involve jumping into different portions of the joint file(s) based on where the further one is, but, again, I think it sounds difficult to implement (Although given how frequently I'm told I'm wrong, I suppose I'll have hopes up for being wrong here too).

It is nice to know that it's possible to have multiple opponents as is, though. It would be neat to play at a table of five. Plus, even if you (the player) are bad at it all, you could still get to see the others strip as long as one of the players lucks/tacts out and wins enough times more than the others.
No. 83668 ID: 53548a

Um... I'm not sure I know what you mean by "add other players," unless you're talking about interacting as in as part of the images. In which case, that also would not be particularly difficult, though it would require some new code. I would simply call a function in each character that notified them of another character's loss, which would allow them to change their image package accordingly. It would require a lot more art, though.
No. 83669 ID: 53548a

Also, different AI can definitely make a difference in who wins more often than not. In the Neumono module, Pilon has negative brashness and Rokoa has significantly positive, so Pilon folds frequently unless he has a good hand, and Rokoa will bet everything on a high. It makes Pilon difficult to beat, and Rokoa difficult to read. When you fold and let them fight each other, Pilon will usually win, but Rokoa sometimes comes in with a good hand and cleans up a sizeable pot. Since Pilon has fewer images, he usually loses between them, though if he builds up a large enough bank Rokoa will usually lose because she can't overcome his momentum.
No. 83670 ID: 53548a

I think it would be interesting if people coded their own AI instead of using the default I provided, because then different characters would actually approach the game in different ways.
No. 83686 ID: 7fd5be

Why don't you team up to make the ultimate Poker game and later fight evil?
No. 83696 ID: d8a627

Hahah, see, everything I think that would be difficult, isn't. I'll probably shut up and check out all the existing files, but that's not to say I won't reply to things.
No. 84241 ID: 57022d

Hmm, Gnoll Camp doesn't seem to be working for me. Stderror says the module doesn't exist.
No. 84242 ID: ea5f60

That's because Gnoll Camp is a Do-It-Yourself module, and also I didn't update it to the new version.
No. 85266 ID: 53548a

I was going to hold off on releasing this until someone else released a new poker module, but I've finished everything on my to-do list and still no one has, so enjoy.

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.61:
-Removed unnecessary debug messages in stdout.
-Fixed a bug in modules with more than two players where you could bet over the bet cap if somebody was out. Also made it handled much more simply. That's what happens when you code at midnight.
-Cards now properly disappear for players who have lost the game on the start of a new round.
-Fixed a crash bug during showdown when you're not the last one out of a game with more than two players.
-Fixed a bug that would declare a winner on a tie.
-When you call, you will now have a chance to fold instead of automatically accepting further bets when playing with more than two players.
-Added keypad support for shortcuts.
-Losing as a non-character player will no longer queue two shuffle messages, thus slowly halving the bet cap every time you lose.
-Fixed Penelope through Zane not having the right inherited functions, making them unplayable.
-Folding now properly calls other characters' opponent-folds messages.
-Removed some extraneous variables.
-Added some general methods for parsing and outputting characters' dialogue, making it more modular. This comes with a new tag list on each message, and the respondToMsg() method is called every time a message is displayed, allowing a character to react to anything.
-Pressing Escape during a game will now take you back to the character selection screen.
-Losing is now handled internally by the character file so that you can add custom reactions to certain images or what have you.
-Updated the readme in /opponents.
-Fixed the bet button not graying out when you're capped.
-The bet cap properly includes the ante.
-Amusing debug text of the day: "10 is over the bet cap, reducing. Aggeia bets 100 instead."
No. 85270 ID: 40af90

Love updates thanks, although two bugs so far.

Penelope through Zane look like they're still borked, looks like they still have the same inherited functions as before.

Additionally a not so important bug, but selecting any character followed by returning to the main screen and selecting Aggeias crashes the game with

IOError: [Errno 2] No such file or directory: 'opponents\\Aggeias\\images.zip'

Doing things the other way round also crashes the game (eg with selecting Alice after)

IOError: [Errno 2] No such file or directory: 'opponents\\Alice\\agg1.zip'

Probably has something to do with attempting to use the name of of the image zip file belonging to the previous selected character but I haven't looked at the code.
No. 85278 ID: 53548a

All the characters definitely have been updated, I recommend you delete and replace your 'opponents' folder instead of overwriting it, that may be the problem.

Good eye on the image bug, the problem was that I wasn't emptying the list of characters whenever you went back. Not sure why it manifested in that specific way but I fixed it.
No. 85284 ID: 53548a
File 141051025153.png - (218.16KB , 815x826 , pokerintro.png )

With the new tag system, we are now capable of re-adding the messages that 30df25 mentioned:
It now requires you to do some coding. Here's how:

1. Add these lines to the top of the character .py file, beneath the StandardCharacter import:
from random import randint from ..basicutils import Message

2. Add a new class of message underneath the others. You can call it anything. Example:
startMessages = ["Let's do this.", "It's go time.", "You're gonna lose."]

3. Replace respondToMsg and handleMsg with this:
def respondToMsg(self,name,tags): msgs = [] for tag in tags: if tag == "start": #The tag for the instructions at the start of a game. msgs.append(self.handleMsg("start_response")) return msgs+super(Opponent,self).respondToMsg(name,tags) #Sends back our message + any other messages it may have triggered. def handleMsg(self,type,format=[''],extraTags=[],s_vars={}): typeMsg = self.startMessages tags = [type]+extraTags assoc_action = [] if type == "start_response": #Our custom response and introductory line. return Message(self.name,typeMsg[randint(0,len(typeMsg)-1)].format(*format),assoc_action,s_vars,type,tags) #This is a custom message so we don't need to check any of the other message responses. return super(Opponent,self).handleMsg(type,format,extraTags,s_vars)

Unfortunately, I didn't actually test doing this before I released it, so response messages aren't actually added to the message queue in the current version. I'm not sure that's worth releasing a new version over, either. But here's what it looks like in the image.

But, if you program your characters to do this in advance, then they will be forwards-compatible with the next version.
No. 85340 ID: 53548a

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.62:
-Fixed the crash bug on trying to switch from a multiple character module to a single character one.
-Made response messages actually add to the queue. They cut to the front to respond directly to the message the player is seeing.
-This time I remembered to update the hotkey layout file.
-Also added some more instructional comments to SampleCharacter.py.
-Fixed the duplicate "opponent folds" message.
-New version of reveal variable that doesn't include "a/an," for when the cards are prefaced with "my" or some such.
No. 85350 ID: a32d59

Awesome, new version. Admittedly, I can barely read python code at all, so I have to ask: Is it possible to modify AI and Dialogue based on stage of undress yet? I'm sure I'll be able to figure out how to if it's possible, but I don't want to try to scrape around for something that might not even be possible.

Also, this isn't really even a feature request as much as it's just something I think would be cool, but how hard would it be to make it so modules can display multiple images or lines of dialogue in sequence to create "scenes", or change out images from a list (possibly even based on in-game conditions) during play? For example having separate images for characters removing items of clothing and actually playing, or pulling different images from a list to make characters "idle" during play, looking at their hands, changing body language, ect. Basically just stuff to give the actual experience of playing against specific characters more flavor. If that's not something that's possible or palatable for you to do, that's fine. I just think it'd be neat.
No. 85408 ID: 53548a

>Is it possible to modify AI and Dialogue based on stage of undress yet? I'm sure I'll be able to figure out how to if it's possible, but I don't want to try to scrape around for something that might not even be possible.
Yes, absolutely. Just create a variable that changes when checkImage() advances to the next stage.

>I'm sure I'll be able to figure out how to if it's possible, but I don't want to try to scrape around for something that might not even be possible.
I'll help you out and describe how it's done. First, create a new variable that will only be referenced internally:
onStage = 0
Then, set that variable to change with onTry in checkImage():
onTry += 1 onStage = onTry

Then, override handleMsg() like I show you how to above to create an introductory line, and make it look at what onStage is set to, and pull from a different list accordingly.

See? Easy.

>Also, this isn't really even a feature request as much as it's just something I think would be cool, but how hard would it be to make it so modules can display multiple images or lines of dialogue in sequence to create "scenes", or change out images from a list (possibly even based on in-game conditions) during play?
It's perfectly possible but I couldn't tell you how to do it unless you described exactly what you hoped to accomplish.

>For example having separate images for characters removing items of clothing and actually playing, or pulling different images from a list to make characters "idle" during play, looking at their hands, changing body language, ect. Basically just stuff to give the actual experience of playing against specific characters more flavor.
This would likely involve hijacking checkImage() to create a non-linear progression through the list of images. checkImage() is referenced every time a round ends, so you could at most change the image once per round. You could use the onStage method I mentioned above to keep track of how close the character is to losing, and then have a variety of images it's set to every time checkImage() is called that progress through the stages of undress.

>If that's not something that's possible or palatable for you to do, that's fine. I just think it'd be neat.
I am happy to add any features requested, but it has been a long time since anyone created a new poker module, so I'm doubtful of whether or not it would go to good use. I'll certainly put anything you want me to add on my to-do list, but I may have higher priorities.
No. 87331 ID: 64f780

Would people be interested in an executable that assembles modules for them? That way you won't have to muck around with files and such (unless you want to). You can throw together a module by just typing in the requisite strings and attaching the pictures. It could also weed out errors that stem from things like not attaching enough images for the number of strip lines you have. It probably wouldn't be terribly difficult to throw together in Visual Basic.
No. 87334 ID: a32d59

Yes, Absolutely. Won't help much if you want to extensively customize, (like I do) but I feel like a lot of the disinterest in making modules (aside from the lack of enthusiasm from both users and artists) is simply because they're kind of a huge pain to put together. I feel that having a program to compile them would certainly be a huge boost in terms of accessibility for this program.

If there's enough interest in the program later, having various popular customizations built into the assembler as options would be kind of a neat feature, but I'd bet that'd be a bit harder, so I can understand not wanting to do it.

On an unrelated note, I've got a module underway, and I'm hoping to post some preview images within the next month, and have it completed by the end of the following, so that's pretty nice.
No. 87339 ID: 723e6c

Alright, I'll put one together and release it separately. Let me know if you need any help with your module.
No. 87371 ID: 3b84dd
File 141763644218.png - (31.29KB , 880x363 , pokerassembler.png )

Okay, here's what it looks like. Should be out today.
No. 87376 ID: 64f780

Alright, here you go. Another goal crossed off the list in the OP.


It will do everything necessary except place the images in the folder for you. You'll also have to zip them yourself. But that might change in a future version.
No. 87431 ID: a32d59

>Alright, here you go. Another goal crossed off the list in the OP.

Awesome. I'll try it out once I've gotten all of the images sketched out.

>Let me know if you need any help with your module.

Alright, I might need a little help. I've sketched out most of the module, and I have at least one extra frame that I want to include, without actually including it as a "stage" of undress. Put simply, the character in my module removes an item of clothing while saying a line of dialogue, then sits back down and says another. I want both of these to play before gameplay resumes. Is there any way I could make this happen?

I also want her to deliver her dialogue differently depending on stage of undress, but you've already posted on how to do that. I'll ask for more information if I find that I need more help with that. Since I have basically no idea what I'm doing, I probably will.

I really need to learn how to code.
No. 87441 ID: 3c70d1

I a little confused on what some of the categories mean. What's the difference between "opponent losing" and "winning" for instance. Also, can this have a personalized message for each article of player clothing and can it have pictures for the player as well?
No. 87444 ID: 64f780

"Opponent Losing" should actually be "Opponent Stripping."

And yes, it can do that, you just need to set the player in the module settings to one of the characters you create for the module.
No. 87445 ID: 64f780

The way you would accomplish that is by making the character strip twice when they reach that stage. Let's say that there are 7 states of undress, and therefore 8 images (including the sitting down image), and therefore 9 lines of stripping dialogue (8+1 for the victory line). If they sit down after taking off an article of clothing for the 3rd time, that would be when the onTry variable is set to 3 (it starts at 0).

imageMessages would look like this:

imageMessages = ["1st article","2nd","3rd","sitting down now","4th","5th","6th","7th","you win"]

And you would replace checkImage() with this:

def checkImage(self,isChar,onTry,tries,winner,playerName,setMoney): msgs = False if self.money <= 0 and winner != -1: onTry += 1 if isChar or self.name != playerName: msgs = [Message(self.name,self.imageMessages[onTry-1],["strip"],{},"strip",["strip"])] if onTry == 3: msgs.append(Message(self.name,self.imageMessages[onTry-1],["strip"],{},"strip",["strip"])) else: msgs = "player" if onTry == tries: if isChar or self.name != playerName: msgs.append(Message(self.name,self.imageMessages[onTry],["game_over"],{},"game_over",["game_over"])) print(self.name+" lost. PROMOTIONS!") else: self.money = setMoney+self.owed print(self.name+" defaulted and had to take out a loan. "+str(setMoney)+"-"+str(math.fabs(self.owed))+"="+str(self.money)) self.owed = 0 return msgs

However, you'll have to change __init__.py to set maxTries to 7, otherwise the player will get 8 chances, and the character will only get 7, because one of them is skipped.

No worries about breaking the bank -- the game will only lend them money once even though they're technically losing twice, because it's tied purely to how much money they have and not what image they're on.

You can do this as many times as you like, just so long as you reference the right number for onTry. Remember that after they sit down, they'll be on try #5, rather than #4, even though they were on #3 before they lost.
No. 87446 ID: 64f780

My bad-- the second message should be [onTry], rather than [onTry-1], otherwise the game will show the same message for the two different images. You'll also need to put this at the top:

from .. import basicutils import math Message = basicutils.Message

Otherwise, I just tested it, that works. It's pretty simple, you only have to import a few things and add two lines to the original code.
No. 89149 ID: 64f780

So, short of replacing the placeholder interface with something more professional and modular, I've hit every stretch goal I set for myself when I made this thread. Any ideas on where I souls take it from here?
No. 89150 ID: 9dd1ee

this is not really a suggestion, but the source forge doesn't work for me anymore, is the site still up?
No. 89151 ID: 64f780

Works perfectly fine for me. Try a different browser?
No. 89158 ID: 9dd1ee

I tried on of the earlier sourceforge links, and it worked fine
No. 89161 ID: 64f780

That's pretty weird. They are all exactly identical.
No. 89178 ID: 3c70d1

I just wish we saw more modules for it.

Though I guess you could try to pimp it to places outside of tgchan to get them to make strip poker stuff for the things they make and like.
No. 89186 ID: a32d59

>I just wish we saw more modules for it.

>Though I guess you could try to pimp it to places outside of tgchan to get them to make strip poker stuff for the things they make and like.

Seconding this. Hopefully I'll be able to complete my module in the next couple months, but pretty much everything has kind of slowed down in the last month or two, for various reasons I might get into later in my own thread.

Anyhow, If I actually manage to get to a point where people outside tgchan are actually looking at my work, I might see about promoting it myself if that's okay with you. I really like this thing and I'm sad it hasn't taken off, and has lost momentum on tgchan. I miss people actually making modules.
No. 89187 ID: 9dd1ee

I would also love to see more moduals . . .
and also have one on the go that I never seem to be able to make time for . . .
No. 89188 ID: 3c70d1

Back in the day, I linked the original thread (of the old, crappy sp game) to the two main Homestuck chans at the time and got SOME hits.

Are there any other places like that that might latch on to a game like this and start making content? It would have be a community that has a group of dedicated artists at least.

I just don't know enough to speculate.
No. 89190 ID: 64f780

As I said earlier, you may spread and use the software anywhere you like as long as you link the thread here so that I can view the feedback and bug reports there. I also won't include any non-tgchan modules in the official download.

I would quite like to see new modules myself, but I understand that the days of fanart and strip poker on tgchan are waning. It's just unfortunate that these improvements on the original program couldn't have been made when the fad was at its prime.
No. 89200 ID: 9dd1ee

found a couple glitches

Alice2: when ever Alice runs out of money, the UI elements all shift in size location and dimension, making it impossible to play further.

Punylocks: if I click "stay" as my first button click the game auto closes
No. 89269 ID: 9dd1ee

Tested some more moduels

Nan: character image doesn't show up when moduel loads

Katrina: same problem as Alice2, window size screws up when she loses clothing

Bangles: crashes when you win, you never see the final pic, a couple of the clothing lose dialogues are mismatched (perhaps this is related?)
No. 89270 ID: 76dd2a

There shouldn't be any module-specific problems. All of those modules are identical except for text and images. It sounds like Bangles has messed up image progression, though. I'll take a look at all of those next time I'm at my computer.
No. 89272 ID: 3c550e

Also, whenever you hit a bug you should pastebin the contents of stderr.log and stdout.log to help me reproduce it.
No. 89276 ID: d958ad

IIRC the Alice modules have really weird/big image sizes. Could be a problem there.
No. 89282 ID: 9dd1ee

Ah okay, I'll put that in future reports

more testing done

Janet crashes on startup, looks like her brashness isn't

Telwis crashes after I place my first bet

both tested multiple times to same effect
No. 89316 ID: f8b4f5

Okay, confirmed the bug on Alice and Katrina. I'll do some more testing and fix it in the next version. I can only guess that their problems stem from the same bug in the image sizing as Nan's.

Bangles's crash is due to the fact that she has 14 images and only 12 lines, when she should have 15. I opened the old .DLL file and fixed it with the original lines. Now she should work properly. I sure hope I wasn't the one that fucked her up.

Looks like my automatic converter didn't set Janet's brashness. Easy fix.

Telwis just didn't have updated functions. Also an easy fix.

Thanks, LW!
No. 89459 ID: f8b4f5

Alright, here's a bugfix version to tide you guys over until people start making modules for this again so I can justify continuing to improve it.

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.63:
-Module assembly program now comes packaged with the game. Only 48KB, after all.
-Fixed a bug where the Bet button wouldn't gray out when you hit the max bet.
-Fixed a bug where, when resizeToFit = 2, and one dimension of a picture was smaller than 400px and than the other dimension, its size would be rounded to zero.
-Fixed resizeToFit setting 4.
-Fixed a bug relating to how the game window resized to fit images that were different sizes from previous ones.
No. 89552 ID: 4ce660

It's kind of soon for another version, but I made some changes that kept me from waiting. People who complained about the images being too accessible before will be pleased by the changes.

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.64:
-Improved the code's organization so that the source code version can be run on non-Windows computers.
-Changed the way image files are handled. The game now accepts .dat files, and comes packaged with a "convert" app that will automatically convert your .zip files to .dat files. This should please people who wanted better security on the images. I've removed the opponents folder from all previous downloadable versions. The game will still accept plain .zip files, but there's no real reason to use them.
-Brought the Gnoll Camp module up to date and packaged a default version in the opponents folder. Hilt and Shabin are in a 'benched' folder, so you can swap them in and out freely.
-Updated Poker Module Assembler to account for the changes in how images are handled.
No. 89567 ID: 9dd1ee

Katrina seems to crash when she jumps to third image
No. 89584 ID: 3c550e

Yeah, she's missing most of her image lines. Not sure why that happened to her and Bangles. It's possible the auto converter messed up somehow.
No. 89595 ID: 9dd1ee

did more testing

Punylocks crashes when I "stay"
No. 89598 ID: 9dd1ee

penelope same deal as punylocks

No. 89622 ID: 9dd1ee

tested Gnollflakes
crashed on losing


tested Zane
crashed on first "stay" like penelope and punylocks

No. 89654 ID: f8b4f5

I believe the errors for all the modules besides Gnollflakes are due to not having up-to-date methods. Any error related to processResponse() not having enough arguments is that same crash bug. I'll fix it but the user can also fix it by replacing the method at the bottom of the character .py file.

The Gnollflakes bug is pretty bizarre. It's saying that her Player class has no "name" attribute. But her name is properly defined in her module, and the code that throws the error doesn't reference her name except in the module. I'll have to test it out and try to get to the bottom if it later.
No. 89710 ID: d51579

I've been having one odd issue with the game: the game crashes after a few moments if i click on a different page. I don't know if this is an issue with the game or whatever, but i'm deleting and re-downloading this just to make sure.

Also you guys should add an option to play with custom cards (if possible).
No. 89793 ID: aa355f

Please be sure to include stderr.log if you can reproduce the error on the latest version.

You can already use custom cards. Simply replace the card images in the cards folder. The next version will come with the ability for modules to come bundled with their own cards, without modifying the base deck.
No. 89804 ID: 5b7083

Thanks. Didn't knew that you could change the cards either. I'll try to make the error and post the stderr.log text here later.
No. 92000 ID: 0a1420
File 143447765434.png - (188.47KB , 1280x720 , SP.png )

After a bit of a hiatus, I'm going to start updating my quest again some time next week. Before I do that, I wouldn't mind getting some drawing practice in, to bump my "art" back up to sub-par again. I realize I'm about six years late to the party but if anybody out there still gives a fuck about this strip poker thing, I wouldn't mind making another module for it.

Since there's a good chance you're not one of the roughly two or so readers I've got, I've labelled the girls for your convenience. If you want to see one of them naked, tell me which one. If there's absolutely no interest for this outdated fad, I won't bother.
No. 92002 ID: 5d4fc9

Lady Baroness clearly
No. 92003 ID: dbe554

>AAE as an option

I am choosing the robotic one just because combined with how she was in the quest is just rather hilarious.
No. 92011 ID: 6cb413

My vote goes to Seshe.
No. 92012 ID: bd8b82

vicki, main character for life.
No. 92020 ID: f68a09

Ava + Guest
No. 92040 ID: 0a1420

So one vote for everybody. I suppose it's my choice then, unless there's a tie breaker.

Or I could do one for everyone, but that'd take awhile.
No. 92266 ID: 5d4fc9
File 143518580122.png - (150.66KB , 534x640 , RubabuPoker1.png )

Created a brand new strip poker module
this time staring Rubabu from my quest "Saiyans"

if you'd like to play it, it can be found here

special thanks to Beakie,
who this is ultimately a gift for.
No. 92267 ID: f8b4f5

Didn't realize 4shared had a mandatory account system; people had used it in the thread before. Here's a Mediafire link:

No. 92270 ID: eb5c78

<Huckebein> You are literally locked into betting as much as the CPU wants before switching cards =V
<Huckebein> Because stay doesn't properly call
<Huckebein> which basically forces you to just stay/fold until you have a strong enough starting hand because you can't bet a moderate amount
<Huckebein> ~500 or nothing
<Huckebein> also you can click the opponent's hand right now to see their starting cards
<Huckebein> (whoops)

By 'stay doesn't properly call' I mean that if you stay before switching cards the computer can just keep raising until they hit the cap and there's nothing you can do about it =V

And the clicking cards thing doesn't always work, it seems to just be random
No. 92272 ID: f8b4f5

Staying isn't a call, only calling is a call. Staying only works if all the players decide to stay; otherwise, the other players can continue to raise. This works in your favor as well; you can force the CPU to go all in on a hand or fold.

However the degree to which you can bluff is limited because most players (myself included) like to just bet as much as they can on every hand they think they can win with, and if the AI were very likely to fold when you did that, then it would be rather frustrating and slower to play.

Anyway, not a bug. You have to bet as much as the CPU wants you to in the first round and vice versa for you and the CPU. That's just part of the game and since your hand isn't final at that point it's risk and reward. However the card-clicking is a bug and has been fixed; it results from the part of the code that allows you to flip cards that you want to swap out for new ones, however it's not configured properly so it allows you to flip any card you want. I'll be releasing a new version soon, but I have to update the Module Assembler first.
No. 92274 ID: 353cab

Is there any way to resize the game screen? i'm trying to play in a shitty laptop and the screen is too long and my cards are left offscreen.
No. 92275 ID: e114bc

Well if we want to talk about poker rules, there is no "stay" in poker. You either check, call, raise, or fold. Checking is betting 0, and can only be done if nobody else bet before you in that betting round. Calling is accepting a Raise. Raising is, obviously, deciding to bet more than the current bet. All other players must react to a Raise, but NOT the player that just raised. After everyone has either called, raised, or folded, the betting round is supposed to end.

This means that if there are only two players, these are some of the ways it can go, assuming neither player folds:
1st player checks.
2nd player checks. Pot stays, new hands are dealt.

1st player checks.
2nd player raises.
1st player calls. End of betting.

1st player checks.
2nd player raises.
1st player raises.(this can go back and forth)
2nd player calls. End of betting.

1st player raises.
2nd player calls. End of betting.

As you can see, the betting ends immediately if either player calls.

If there were three or more players, then each player would have to respond to every raise, but in any case, so long as nobody responds to a raise with another raise, the player that raised first cannot raise again. They don't have the opportunity to call their own raise.
No. 92277 ID: f8b4f5

You can change how the game resizes images in settings.ini by changing resizeToFit. Unfortunately more precise resizing isn't possible with the current GUI implementation but you can set it to 4 to keep the game as small as possible.

I'm afraid that a screen resolution of at least 800x700 is, for now, a system requirement.

>Well if we want to talk about poker rules
We don't.

In essence, the stay is you matching their raise and there is no way to call in the first round. This is intentional and thus not a bug; if it bothers people enough I will look into allowing you to modify the game rules at some point in the future.
No. 92278 ID: f8b4f5

As usual, I keep the progress I've made under my belt until another module rouses interest in the program once more.

Download: http://tgchanpoker.sourceforge.net/

Changelog v1.65:
-Fixed a bug when opening a module that has smaller images, after escape-quitting a module with larger images.
-Changed font to DejaVu Sans Mono to prevent formatting errors in dialogue.
-Added new "cards" option to __init__.py to allow modules to load in their own custom, module-specific cards. Reminder that they will always be resized to 71x96.
-Fixed a bug that allowed you to freely flip opponents' cards after the second round began.
-Updated Ven's methods from nonfunctional legacy.
-Updated Gnoll Camp to give you 5 attempts.
-Fixed the Poker Module Assembler not including the portrait file name in the resulting module and not properly formatting __init__.py. Added support for custom playing cards.
-Barring improvements made by request from individual module makers, all that's really left to do is overhaul the GUI.

When reporting bugs, please include the stderr.log and stdout.log in a pastebin or something similar to help me identify and reproduce the bug.
No. 92281 ID: e114bc

Uh... why is it intentional though? You don't want to use poker rules?
No. 92287 ID: f8b4f5

That is how it was in the original MSDOS poker game, IIRC. Either way it allows you to bet for more so it's generally beneficial to the player. Just fold if you don't have a good hand.
No. 92294 ID: f331e3

I'll try that out, thanks. I tried changing one of the settings (in one of the text files), but i think i didn't modify the correct one.
No. 92295 ID: e114bc

It's not how it was in the original dosbox/windows3.1 poker. In that one, calling stops betting.

It's generally *not* advantageous to the player, because there's a cap to how much you can bet: 250. You can also bet up to 200 at once. So you can already hit the max bet by betting once. You can always bet once, so if you want to hit max bet, you can regardless of whether Call stops betting or not. However, the AI tends to approach the bet cap in small increments, so if you want to bet conservatively you *can't* if the AI decides it wants to bet more.

I don't see how it being advantageous to the player is even a good reason for *breaking the rules of poker*.
No. 92296 ID: f331e3

I don't know whats happening, but the Rubabu module isn't working. Whenever i try to select her the game just closes.

The sderr just says:
Traceback (most recent call last):
File "<string>", line 1891, in <module>
File "<string>", line 1845, in main
AttributeError: class Init has no attribute 'cards'

I'll redownload the module just to make sure.
No. 92297 ID: f331e3

I'm using version 1.65 by the way.
No. 92299 ID: 5d4fc9

weird 1.65 works fine for me
No. 92309 ID: f8b4f5

Did you upgrade to 1.65 or just copy in the files? Your version of Rubaba's __init__.py doesn't have the "cards" variable that the version in the release's opponents folder has. You're meant to completely replace everything with a new version.
No. 92310 ID: 051ae6

I think this was the issue, i copied the old folder to the new version's opponents folder and it didn't work.

Now i re-downloaded the whole thing and its working normally.
No. 92366 ID: 0a1420
File 143543829965.png - (18.71KB , 160x160 , LBportrait.png )

When I'm finished with all of them, I might toss together a group package like with gnoll camp. But in the meantime, the first two modules;

Lady Baroness


I'd recommend going into settings.ini and changing resizetofit to 0, since it looks a little bit shit shrunken down, especially Vicki's.

If there are any errors, tell me and I'll try to fix it.
No. 92368 ID: 5d4fc9

I'm getting a "list index out of range error on both modules"
No. 92372 ID: f8b4f5

The only error I could reproduce on Lady Baroness is that she's got a messed up variable in her raiseMessages:
>"${0}! ${0!}",
Should be
>"${0}! ${0}!",

Likewise, in Vicki, there's this:
Should be this:
No. 92373 ID: f8b4f5

Oh yeah, and it seems that in Python format arguments cannot be directly adjacent, so you'll probably want to replace the latter with just
No. 92375 ID: 0a1420

I thought there might be a bug on both of their raise statements but I couldn't find it, thank you.

The mediafire links are updated with a fix but mega doesn't seem to want to let me replace, so,
LB: https://mega.nz/#!7Zx2jQzb!3mq-wcZ0Sq3qV49N9rpDENsjTYRubvsQlBUWJd0x8Z8
V: https://mega.nz/#!PRQFCJDA!COcd6zfLiO8WQgwBOSuNxx8hjS-tTKaOKwGTdRHK06M

I can't reproduce that by using older versions or on two different computers, using both versions of the download. Maybe try redownloading the poker program and the module?
No. 92377 ID: 5d4fc9

don't worry I got it to work

Rad moduels by the way! look foreward to seeing the rest!
No. 93112 ID: 5d4fc9

got an error on Ria module

Traceback (most recent call last):
File "<string>", line 1891, in <module>
File "<string>", line 1887, in main
File "<string>", line 1445, in play
TypeError: processResponse() takes exactly 17 arguments (10 given)
No. 93154 ID: fbf5f7

Hmm, there seems to be a problem in the Gnoll Camp module. At some point, no matter what I get, the same person will always win. (i.e. after a random amount of hands, if a character wins, they'll automatically win all subsequent times, even if the hand is them a king high, and you a 3 of a kind.)

I can't seem to figure out what triggers it.
No. 93595 ID: 5d4fc9
File 143810573248.png - (326.68KB , 980x743 , EkiaPoker1.png )

I created a bonus Commander Ekia strip poker moduel
don't worry, Kirska is on the way!

You can download Ekia here!
No. 93642 ID: a32d59

Since it seems nobody's actually dropped any meaningful feedback, I figured I may as well say something.

I see you finished that Ekia module you were talking about. I think it's pretty neat. Thought it was pretty clever that you had her assistants do the undressing.

Also, glad to see somebody keeping this strip poker stuff alive. Kinda wish there was more interest in this.

Pretty hyped for the Kirska module, too.
No. 93656 ID: e0c514

Ekia and Mook are just great.
No. 93693 ID: f8b4f5

Fuckin' sweet, a Kirska module? I'm hype for that.

Also comfy bat is good, I'm gonna go beat it now. The module I mean.
No. 93694 ID: f8b4f5

Welp, finished it. That was great. Good job LW, this was a bad week so this was a nice diversion.
No. 94568 ID: fe06ff
File 144103892194.png - (247.95KB , 760x730 , kirskaPromo.png )

Here's a moduel for Kirska Gemtail from my quest "Gnoll's Bane"

for those not in the know, Kirska is a female Draco-Kobold knight and friend/team mate to Bangles (Also available as a strip poker characters)

you can download Kirska here!
No. 94569 ID: fe06ff


Thank you everyone for all the excellent feedback! it's really nice to know people enjoy my things!
I know a lot of authors put a ton of work into all these thing so be sure to let them know what you think of their modules as well.

And I hope you all enjoy the Kirska module!
No. 94576 ID: bfb318

The new modules are neato, it's cool to see people making them again.

I'm not sure of the purpose of clicking to clear the text boxes, I think just leaving it on the last piece of text would be better than it going blank.
Having a Max Bet button or having you automatically bet the maximum if you try to bet over the maximum would expedite gameplay a lot, and be more suited to one-handed gameplay. The way the limits work is pretty goofy and I think a limit for number of raises instead of cash limit per round would be better, or if not that at least a higher per round cash limit.
Sometimes when calling a bet the opponent will fold even though they have no current obligation to put more money in.
Stay should really be Check.
When calling your first bet the opponent states they are staying, when they should be calling, and when they call the betting round should end.
When you stay before getting new cards and your opponent raises your available option is "Stay" instead of "Call", and after selecting "Stay" the opponent is able to bet again, leaving you again with the option to "Stay". Your option should be Call and the betting round should end at that point.
The betting behavior acts correctly in the second betting round.
When both players stay after getting new cards both hands are discarded and the pot moves to the next hand, but this should only happen with the first betting round.
No. 94582 ID: 0a1420
File 144106892777.png - (60.36KB , 1487x893 , WIP.png )

I have no idea if it is possible or feasible, or if it can be custom coded into the bottom section of a module- I'm not good enough at computer to have any idea how to begin with that. But it would be neat to be able to switch to a completely new script at set points- say, after 1 or 2 losses a cocky type could get more cautious, and after another 2 losses could get downright panicky. Or vice versa with getting more excited, if the character's a little kinky. I'm finishing up a module where my character's got a buffer to make up for her usual lack of clothing- it'd be nice if I could have her be uncaring and amused as long as losing just strips her 'friend' down, but become more serious and play harder when she actually has to play for herself.
No. 94583 ID: f8b4f5

Yes, it's possible, and not particularly difficult. You would just add a hook to handleMsg that changed the dialogue variables depending on what image number the character is on.
No. 94590 ID: a32d59

Really digged the module. Poses and expressions were both hella, and the lighting was really well-done tpp. Also, it contained Kirska, which is always a plus.

Also, quick feature request: would it be possible to, potentially in a later version, unlock the ability to extract a module's images after winning? I love all of the more recent modules, but I also miss the ability to look at them outside the context of the game after I beat the modules. I like to see all of the images lined up after the fact, because it's neat to see how they all go together. I think this might be a good compromise between forcing people to play the games every time they want to see the art, and allowing cheating on the modules.
No. 94633 ID: 0a1420
File 144139771452.png - (26.27KB , 160x160 , Aportrait.png )

I've finally gotten off my ass and finished another module. Next in line is Ava, servant of the pleasure/chaos god. Since Ava has a thing for showing off her body and doesn't like to wear much in the way of clothes to begin with, she's dragged one of her Lord's many concubines along for some extra support. Don't worry, she's probably into it. Maybe.


Next up (when I get around to it in five years) is A.A.E., machine goddess of order and duty. So that'll be interesting. I'll have to think up a proper way to do it.
No. 94636 ID: e114bc

Dat exposed circuitry.
No. 94731 ID: fe06ff

nicely done! I always like it when characters find interesting ways to hold off further stripping
No. 94773 ID: dab7d1

I get a "File already exists but should not" -error when I try to run the program. It does run fine, but then closes to desktop as soon as I choose an opponent.
No. 94780 ID: dab7d1

>Ace, 2, 3, 4, 5
>Straight, bet everything
>"You have ace high"

This miserable machine knows fuck-all. This needs to be changed ASAP.

Also, some button to bet the maximum amount available would be great because always writing it, and having to rewrite it because someone already bet a little bit, is a hassle.
No. 94781 ID: dcd644

According to most people, that'd be an ace high. Aces in poker are usually seen as being above kings, but not below twos.
No. 94789 ID: dab7d1

The way I learned it, Ace is either 14 or 1, whichever's the most convenient to your hand.
No. 94791 ID: e114bc

There's a special term for a straight that begins with an Ace. It's called a "wheel", and is the lowest possible straight.

This is true in every version of poker, afaik.
No. 94794 ID: 7e5a25

Thiiiiis. The whole stay/call thing is annoying as hell. They get to keep unfairly raising the bet and it sucks.
No. 94797 ID: 395c02

An ace can be high (10-J-Q-K-A) or low (A-2-3-4-5) for the purposes of a straight, just not both at the same time (so Q-K-A-2-3 doesn't work, for example).
No. 95341 ID: f8b4f5

But so do you when you have the advantage. If you don't want to check then fold.

That's an error in the code, yeah (aces are given the value of 14, so it wouldn't see that as a straight). Easy fix, I'll add it to the next version.
No. 95342 ID: f8b4f5

Oh, in the meantime, you can add these two lines to StandardCharacter.py after line 236:

elif cardOne.value == 14 and cardTwo.value == 2 and cardThree.value == cardFour.value-1 and cardFour.value == cardFive.value-1:
return ["wheel",6,cardFive.value,cardFive.name]

Should work fine.
No. 95343 ID: f8b4f5

Whoops, no it won't; mixed up the order there. Been a while since I touched this code.

elif cardOne.value == cardTwo.value-1 and cardTwo.value == cardThree.value-1 and cardThree.value == cardFour.value-1 and cardFour.value == 5 and cardFive.value == 14:
return ["wheel",6,cardFive.value,cardFive.name]
No. 95365 ID: 7e5a25

>But so do you when you have the advantage. If you don't want to check then fold.

That's not an advantage. It's a flawed system. I have never heard of a single ruleset of poker that allows this. Bets are supposed to either be called or raised from. There isn't a poker player alive who would stand for a "you called? psyche! I raise again!" rule. Because it's unfair and stupid and ruins the psychological element of the game.
No. 95367 ID: f8b4f5

Good thing there's no psychological element of playing against an AI, then.
No. 95368 ID: 5ad4a7

You realize that humans are playing against the AI, right? What you just said only works if it's AI vs AI.
No. 95384 ID: f8b4f5

So I guess there's a psychological element in wall tennis too, then.
No. 95397 ID: 7e5a25

Then the system is double meaningless, since it just means the computer is cheating. Yet another reason to ditch it.
No. 95398 ID: 5ad4a7

Why don't you just make it like poker instead of insisting your gameplay is somehow superior via increasingly ridiculous arguments?

No. 95403 ID: 87a8e1

Yeah, well, it'd still be unfair and stupid.
No. 95415 ID: f8b4f5

>Why don't you just make it like poker instead of insisting your gameplay is somehow superior via increasingly ridiculous arguments?
>I will look into allowing you to modify the game rules at some point in the future.

Calm your tits. It's a game, the point is getting characters naked, not playing casino-accurate poker. If you're having any trouble doing that with the current rules you aren't playing right.
No. 95751 ID: f0ebef
File 144564056275.png - (101.90KB , 746x717 , You're Fat.png )

Any way to view the images directly? I noticed that only the portraits are easily viewable (.png) and I'm presuming that the rest are in the .dat file, but I'm not quite sure what to open it with.
No. 95777 ID: 0a1420

The .dat is basically an encrypted .zip file. The whole point of it is so that you can't easily look through the images.

Also there's a new thread,
No. 95778 ID: 32fa26

Unless it's been updated since I last checked the files, it's not even encrypted, merely obfuscated, and so easy to deobfuscate for someone with a bit of programming experience that posting any more about it would be spoilers.
No. 95788 ID: f8b4f5

Yeah, come to think of it, even saying how it's "obfuscated" would give it away. But it was never meant to be more than a rudimentary obstacle to decompiling, much like the .dlls of old. Originally all the images were just in folders.

Clearly it works well enough.
No. 95789 ID: f0ebef
File 144582997213.gif - (1.95MB , 328x328 , Anton OK.gif )

I mean, no shit explaining how it's hidden would give it away. That's pretty much the whole idea.

Anyway I'll just google around.
No. 96113 ID: b7f27c

Don't suppose you still have those, do you? Remembered this existed after a year or so, apparently my copies of those DLLs got left on my other computer, and the MEGA link in the other thread no longer works.

Thanks in advance!
No. 96158 ID: 7e5a25

Here you are, such as they were. All that came of my little project.

No. 96168 ID: 05d1ef

I was a bit surprised to find 16-bit DLLs in this archive. The images are easy enough to extract, but the string tables less so (Visual 2005 gives me mojibake), and the order of strings in it is a bit weird, especially when I don't know how to access the string tables' resource IDs with my hex editor.

...I know what could help me: Does anyone have a link to the documentation that says which string ID is supposed to mean what?
No. 96169 ID: 05d1ef

Whoops no wait, I found it on the old app's thread ( >>/questdis/5059 )
No. 96195 ID: 477b7d

You can just play them natively here with no issues.

For getting the strings out with a hex editor, it's good to note that the strings are packed in groups of 16, and the index of the block id is 1/16th of the string id.
No. 96197 ID: 05d1ef

I know they're packed in groups of 16, the part that confused me was that the last two "stripping" quotes (936 & 937) are apart from the others.
(plus the fact the string bundles are stored in reverse order)

But now that I got the list of string IDs and what they mean, all became clear.
No. 96199 ID: 1d8a7b

I feel like, just to avoid confusion, I should point out that this thread is out of date.

A new thread was made for a new version, over at >>95526
[Return] [Entire Thread] [Last 50 posts] [Last 100 posts]

Delete post []
Report post