News:

Please request registration email again and then check your "Spam" folder

Former www.henthighschool.com

[Resources] Chris' Job Mod Turbo

Started by Jman, Jul 08, 2024, 09:03 PM

Previous topic - Next topic

JmanTopic starter

I took my onetime changes to Chris' Job Mod (i.e. the Bonanza version of it), along with a few extras, and packaged them into a 'Job Mod Turbo'.

Download:

2.3:
Mediafire

2.1 (without the job stat check):
Mediafire
PixelDrain



This is for BK 0.3, although I think it should also work for 0.2. If it does not, tell me.

Features:
Basically, everything that can vary about jobs and different sex acts can vary much, much more. There is a sort of tier structure where waitress/service are at the bottom and geisha/fetish are at the top. Otherwise, the Job Mod comparison document still sort of holds: waiting tables is easy, dancers entertain crowds, masseuses squeeze single customers, being a geisha is efficient but difficult.
And with strange aeons even death may die...

JmanTopic starter

Of course, since Bonanza was much more comprehensive and BK has moved on in the meantime, I have no idea how well this thing works. Probably not very. :'(

So consider this a beta at the moment. If there's interest and feedback, the mod can change and grow. If not, well, maybe someone can use it for inspiration.
And with strange aeons even death may die...

DarkFire

Avast doesn't let me download it, but the Headhunter mod gives no problem.

JmanTopic starter

Well, IDK what Mediafire is up to now, but have a mirror.
And with strange aeons even death may die...

DarkFire

Got this error while saving with the mod:

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00gamemenu.rpy", line 170, in script
    $ ui.interact()
  File "renpy/common/00gamemenu.rpy", line 170, in <module>
    $ ui.interact()
  File "renpy/common/00action_file.rpy", line 397, in __call__
    renpy.save(fn, extra_info=save_name)
PicklingError: Can't pickle <function will_do_new at 0x000000000ed97820>: it's not the same object as store.will_do_new

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/00gamemenu.rpy", line 170, in script
    $ ui.interact()
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\ast.py", line 1138, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\python.py", line 1122, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/00gamemenu.rpy", line 170, in <module>
    $ ui.interact()
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\core.py", line 3579, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\core.py", line 4540, in interact_core
    rv = root_widget.event(ev, x, y, 0)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\screen.py", line 770, in event
    rv = self.child.event(ev, x, y, st)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1401, in event
    rv = super(Window, self).event(ev, x, y, st)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 279, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\layout.py", line 1177, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\behavior.py", line 1138, in event
    return handle_click(self.clicked)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\behavior.py", line 1071, in handle_click
    rv = run(action)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\behavior.py", line 368, in run
    new_rv = run(i, *args, **kwargs)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\display\behavior.py", line 375, in run
    return action(*args, **kwargs)
  File "renpy/common/00action_file.rpy", line 397, in __call__
    renpy.save(fn, extra_info=save_name)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\loadsave.py", line 427, in save
    reraise(t, e, tb)
  File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python3.9/site-packages/future/utils/__init__.py", line 444, in raise_
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\loadsave.py", line 413, in save
    dump((roots, renpy.game.log), logf)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\compat\pickle.py", line 103, in dump
    pickle.dump(o, f, pickle.HIGHEST_PROTOCOL if highest else PROTOCOL)
PicklingError: Can't pickle <function will_do_new at 0x000000000ed97820>: it's not the same object as store.will_do_new

Windows-10-10.0.19045 AMD64
Ren'Py 8.1.1.23060707
Brothel King 0.3t v230923
Tue Jul  9 00:34:45 2024

DarkFire

Also does the stats check even when the mod is deactivated;

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/BKmain.rpy", line 1173, in script
    $ girl.set_job(r)
  File "game/BKmain.rpy", line 1173, in <module>
    $ girl.set_job(r)
  File "game/BKgirlclass.rpy", line 1777, in set_job
    if self.will_do(job):
  File "game/Mods/ChrisJobMod/ChrisJobMod.rpy", line 199, in will_do_new
    if self.get_stat("obedience") + self.get_stat("charm") >= (waitress_test / cheat_modifier["stats"]):
NameError: name 'waitress_test' is not defined

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/BKmain.rpy", line 1173, in script
    $ girl.set_job(r)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\ast.py", line 1138, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Users\Dani\Desktop\Juegos\Brothel_King-0.3t\Brothel_King-pc\renpy\python.py", line 1122, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/BKmain.rpy", line 1173, in <module>
    $ girl.set_job(r)
  File "game/BKgirlclass.rpy", line 1777, in set_job
    if self.will_do(job):
  File "game/Mods/ChrisJobMod/ChrisJobMod.rpy", line 199, in will_do_new
    if self.get_stat("obedience") + self.get_stat("charm") >= (waitress_test / cheat_modifier["stats"]):
NameError: name 'waitress_test' is not defined

Windows-10-10.0.19045 AMD64
Ren'Py 8.1.1.23060707
Brothel King 0.3t v230923
Tue Jul  9 00:43:42 2024

JmanTopic starter

#6
Yeah, it looks like I can't change functions dynamically like that. For the time being, it seems this will be something that can't be done without some extra code from Goldo.



Edit: Uploaded a 2.1 version without enforced job minimums.

I also see that Goldo's mod activation and deactivation system works as flawlessly as always. :'(



Edit2: Perhaps found a way to bypass the pickling issue. Left 2.1 up for people who don't care for that check. Tell me how it works now.

Also, since mod deactivation seems FUBAR, you can do it manually via consoling 'call chris_jobmod_revert()'.
And with strange aeons even death may die...

DarkFire

You'll need to lower the limit for whoring for the Papa storyline:


JmanTopic starter

#8
Do I? What are her sex skills?



Edit: Honestly, I think I need to raise the limits, since vanilla BK starts with rank C girls who have 50 max stat value, whereas Bonanza started with rank F girls who had 25. So the progression is 50 -> 100 -> Papa Freak, whereas previously it was 25 -> 50 (100 for rank D, who were very pricy to buy and could not be ranked up to in chapter 2, only bought).

I wonder if 500 is too much for whores? You can get 400 from maxing Libido, Obedience and all four sex stats, and some amount from food and items. Not sure how much, since the food stacking exploit was fixed.
And with strange aeons even death may die...

DarkFire

Quote from: Jman on Jul 10, 2024, 03:50 AMDo I? What are her sex skills?



Edit: Honestly, I think I need to raise the limits, since vanilla BK starts with rank C girls who have 50 max stat value, whereas Bonanza started with rank F girls who had 25. So the progression is 50 -> 100 -> Papa Freak, whereas previously it was 25 -> 50 (100 for rank D, who were very pricy to buy and could not be ranked up to in chapter 2, only bought).

I wonder if 500 is too much for whores? You can get 400 from maxing Libido, Obedience and all four sex stats, and some amount from food and items. Not sure how much, since the food stacking exploit was fixed.

Okay, let's see if i understand the math.
Libido and Obidence is 220 in total.
Sex skills is 43.
Total stats are 263. And need total 500 stats to advance to the next part of the story?
Imo the grinding is going to be long, also the text just says "libido/obidience too low" making no reference to sex skills.


JmanTopic starter

Doesn't it say "Libido/Obedience/Sex skills too low"? Granted, Goldo's new notifications flash past pretty quickly.

Also, remember, this came from Bonanza, where everything was more complex than it needed to be. ;D  It's not just Libido + Obedience + all sex skills, oh no. It's Libido + Obedience + [average of the four sex skills] + [maximum of the four sex skills].

So you can get a cool 400 from maxing these 6. Some 20-30 more from strategically picked traits, as in your image. 30+10 from higher-end dress&panties. Another 25-30 from libido and obedience food. And finally +5 or +10 from a ring. So, possible if you squeeze everything to the max, but no bueno otherwise.

Perhaps 450 would be more reasonable?
And with strange aeons even death may die...

DarkFire

I actually played Bonanza so i understand.

Quote from: Jman on Jul 10, 2024, 03:57 PMDoesn't it say "Libido/Obedience/Sex skills too low"?



Quote from: Jman on Jul 10, 2024, 03:57 PMAlso, remember, this came from Bonanza, where everything was more complex than it needed to be. ;D  It's not just Libido + Obedience + all sex skills, oh no. It's Libido + Obedience + [average of the four sex skills] + [maximum of the four sex skills].

Okay, so the actual math is 110+110+10,75+¿20?= 250,75. That or I don't understand "[maximum of the four sex skills]"
So yes, maybe lower it a bit would be helpful.

JmanTopic starter

#12
Quote from: DarkFire on Jul 10, 2024, 04:20 PMI actually played Bonanza so i understand.
;D



If you're seeing that, the mod hasn't activated correctly. Console 'call chris_jobmod_init()' to make sure.

Your numbers seem right. But she kinda sucks as a whore. If I were Papa Freak, I wouldn't take her. :P
And with strange aeons even death may die...

DarkFire

#13
Console call it and was allowed to whore, tried to another and included the sex skills missing.

Edit: Each time i open the game i need to update the mod to make it work correctly.

Goldo

Quote from: Jman on Jul 08, 2024, 11:07 PMYeah, it looks like I can't change functions dynamically like that. For the time being, it seems this will be something that can't be done without some extra code from Goldo.



Edit: Uploaded a 2.1 version without enforced job minimums.

I also see that Goldo's mod activation and deactivation system works as flawlessly as always. :'(



Edit2: Perhaps found a way to bypass the pickling issue. Left 2.1 up for people who don't care for that check. Tell me how it works now.

Also, since mod deactivation seems FUBAR, you can do it manually via consoling 'call chris_jobmod_revert()'.

Do you know what's causing problems with mod activation and deactivation? When I implemented that, I had no mods to serve as templates, so I couldn't really test it extensively. I also know more about loading games now so maybe I can improve things.
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!