The bug itself is with the behaviour of the conditions in the slaver shop ( which is a resident building/squad from several towns, like Heft or Eyesocket) and results in infinite money and broken slaver dialogue (which is broken in 1.0.55, so needs fixing)
How to reproduce:
1- Have a Squad with a bunch of dudes.
2- Shackle one dude effectively enslaving him.
3- Pick him up.
4-Talk to the Slaver master and ignore the "selling him for 400cats" dialogue.
5- Select instead the line that " I'm looking to sell some slaves" dialogue option and select your carried dude.
6- Sell the dude and accept. And repeat. And keep selling the dude and accepting.
7- Infinite money.
This also happens when your own dude gets into a cage by his own will and has shackles/gets shackled. He can keep on being sold forever by a target player that can talk to the slaver.
SOLUTION (or at least, some context):
1- Inside the Slaver Shop, the "dialogue leader" called "slaver shop trader" has the line for selling slaves ("I'm looking to sell some slaves") selected with the effect "CHOOSE SLAVES SELLING" . This seems right. But we already have a problem. This window doesn't allow for any following statement and it doesn't limit the times the same slave is sold by days to avoid exploits.
2-So the next line, "Good! But come back in a few minutes..." is broken because in the conditions we have a hardcoded tag (-1) from the condition T_ME_CARRYING_SOMEONE_TO_ENSLAVE == 1 that cannot be fixed by me, because the moment y try to change T_ME to T_TARGET as it should be, it loses the tag that tells it to check for other conditions (becoming NONE).
The correct conditions should look like this I think:
T_TARGET_CARRYING SOMEONE TO ENSLAVE == 1 tag -1
T_ME_CARRYING SOMEONE TO ENSLAVE == 0 tag -1
And the effect right within the same dialogue line would be to DA_ENSLAVE_TARGETS_CARRIED_PERSON.
I tried to force the conditions without tag, which should work, but the real problem surfaced pretty quickly: CHOOSE SLAVES SELLING doesn't allow for a T_ME right after without overlap, neither does it really do anything more than calculate your squad's mates' value based on skills and just "GIVE MONEY" to the player. So infinite money everytime we chose to sell the guy.
What it should really do (effect CHOOSE SLAVES SELLING ), is just calculate the money and only give the money from the squad mate's enslaving to the player once (per person), like a bounty. It could reset after 100 days or so, but if not, it doesn't really matter. Once sold into slavery once you can be sold again, but for free until some time passes, dammit.
3- This should solve the biggest problem (infinite money), but we have another 2: Carrying the enslaved squad mate or having an enslaved mate inside a cage also allows you to keep selling them and reselling them.
The solution would be for the slaver to account for player squadmates that are already inside the cage and ones that are enslaved and being carried and keep them out the list once they are bought once.
As I said, maybe the -1 tag has something to do with it, but I guess this problem is a logic one and migh not be very hard to solve with actual access to the code.
Warning: This bug may also affect Slaver Platform sales or any form of slave trading that allows the player to sell his squad mates (I believe there's only platform sales and slaver shop that have dialogue with CHOOSE SLAVES SELLING).
Making CHOOSE SLAVES SELLING a complete package that accounts for squad prisoners, AND selling only once per guy AND also check for carried squad mates enslaved or not should help to fix the whole package with a single effect, but I believe life doesn't work like that.
Bounty hunting works better that way.
Cheers.
[1.0.55] Selling while carrying or after autoimprisoning your own enslaved mates allows for infinite loop selling
-
- Information
-
Who is online
Users browsing this forum: No registered users and 10 guests