Nah. It's down right now. Just need to wait some timeYou guys can access/enter the Hentaihighschool web site?
add_dialogue("exhausted", "generic", "Sorry Master, I am still exhausted and need more rest. I will go back to work as a {b}[girl.job]{/b} after I recover.")
resting_text += "\n{color=[c_emerald]}她现在已经完全康复,可以回去" + girl_related_dict[self.job] + "继续工作了。{/color}"
log.add_report(girl.fullname + "今天的工作是" + girl_related_dict[girl.job] + "。")
Goldo did an update Wednesday. Latest patch is always here:Is there a more recent version than 220228?
Good question.I'd like to ask a rather silly question.
I am working on the Chinese translation.
How does [girl.job] in this translate to it?Code:add_dialogue("exhausted", "generic", "Sorry Master, I am still exhausted and need more rest. I will go back to work as a {b}[girl.job]{/b} after I recover.")
This is the way I have translated it elsewhere. Use 'girl_related_dict[]' to translate it.
Maybe that's a silly question.Code:resting_text += "\n{color=[c_emerald]}她现在已经完全康复,可以回去" + girl_related_dict[self.job] + "继续工作了。{/color}" log.add_report(girl.fullname + "今天的工作是" + girl_related_dict[girl.job] + "。")
if job == "whore" or (job in all_jobs and self.work_whore):
and_tags += perform_job_dict[girl.job + "_tags"]
Thank you~Good question.
One way is probably to translate it when it is stored into girl.job (self.job when used in Girl class operations, like def set_job() ).
Then the substitution/interpolation of [girl.job] should happen when it is used in a Ren'Py "say" statement. It needs to be a simple use of a variable or object attribute/property, so using your created dict like [girl_related_dict[girl.job]] will not work.
This does mean that compare operations like the following will have to be changed to compare to the translated value:
(in set_job(), and
But, since this string is also used as a key in other code, likeCode:if job == "whore" or (job in all_jobs and self.work_whore):
BKfunctions.rpy
maybe a better way is to add a field like girl.job_tr for the translated value, and use it in the strings for the say statements. Make sure it is set to a zero-length string in the Girl class __init__() process.Code:and_tags += perform_job_dict[girl.job + "_tags"]
if isinstance(char, Girl):
$ char.job_cn = girl_related_dict[char.job]
I don't know where you are using this code to be needing "isinstance(char, Girl)". I would set girl.job_cn after any line that sets girl.job. Using girl_related_dict should work.Thank you~
After I posted this question earlier, I went and asked Never Crash, who was working with me on the translation.
The solution he proposes is this:
Then change all the girl.jobs to girl.jobs_cn.Code:if isinstance(char, Girl): $ char.job_cn = girl_related_dict[char.job]
I think it should be fine for now.
Thanks~I don't know where you are using this code to be needing "isinstance(char, Girl)". I would set girl.job_cn after any line that sets girl.job. Using girl_related_dict should work.
As mentioned, be sure to set the default in Girls class __init__() with
self.job_cn = ""
You should look at the parts of code that uses girl.job as a key value, and see if you want to change or leave untranslated as girl.job the parts not visible to the user (the "behind the scenes" like filming a movie).
An example is perform_job_dict in BKfunctions.rpy, where the key/index could be translated or not, but the dict values for tags should remain unchanged to match the tags in existing girl pack filenames.
You should be OK changing all [girl.job] in quotes that will be said by girls, to [girl.job_cn]. The following would not change unless you separately translate the related variables:
BKendday.rpy
for act in [girl.job] + all_sex_acts:
BKhelp.rpy
girl_stats[girl][day][girl.job] += 1
BKfunctions.rpy
text1 = "{size=18}A horny customer started undressing in the middle of the " + job_room_dict[girl.job] + ". He dared %s to do the same." % girl.name
BKscreens.rpy
$ text_col = job_color[girl.job]
$ col = job_color[girl.job]
$ job_customers[girl.job] += 1
So I'll give it until the end of April. Then I'll have to start looking for an alternative home for BK. Sucks that a lot of content would get lost that way (especially the looong explanation I did on the lore and events - I foolishly didn't back it up).No. I just posted my pessimistic opinion.
We'll have to create a list of things to (attempt to) recover if it comes to that. I recently searched through google's cache to list a few important links.So I'll give it until the end of April. Then I'll have to start looking for an alternative home for BK. Sucks that a lot of content would get lost that way (especially the looong explanation I did on the lore and events - I foolishly didn't back it up).
Would you happen to have a link to the Community dialogue project spreadsheet by any chance?We'll have to create a list of things to (attempt to) recover if it comes to that. I recently searched through google's cache to list a few important links.
As for the lore, you're in luck:You must be registered to see the links.
Is there a changelog ?Latest update: apr 6, 2022 -You must be registered to see the links
There is, if you're willing to get your hands a bit dirty and edit the code.Hi, is there a way to make all the girls in the slave market spawn on Rank C and Level 1, even when you are in the later stages of the game ?
def update_slaves():
nb = dice(6)+5
slavemarket.girls = [] # Empties slavemarket to get another chance at generating an original girl
slavemarket.girls = get_girls(nb)
def update_slaves():
nb = dice(6)+5
slavemarket.girls = [] # Empties slavemarket to get another chance at generating an original girl
slavemarket.girls = get_girls(nb, level_range=[1, 1])
Do you also have the link to the remade base girl pack?Unfortunately the HHS website has mysteriously disappeared and no one can get in contact with the host. For now there's not much we can do but wait. We're hoping that things return to normal around April 23rd at the latest (that's when the registrar will send the host an automatic reminder to renew the domain)
I've gathered some links below.
Brothel King:
You must be registered to see the links+You must be registered to see the links
Useful links:
You must be registered to see the links
You must be registered to see the links
Mods:
You must be registered to see the links
You must be registered to see the links
For modders & pack creators:
You must be registered to see the links
You must be registered to see the links+You must be registered to see the links
You must be registered to see the links
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/BKmain.rpy", line 1121, in script
$ result = ui.interact()
File "game/BKmain.rpy", line 1121, in <module>
$ result = ui.interact()
File "game/BKscreens.rpy", line 4555, in execute
screen tool(x, y, w, h, bg = True):
File "game/BKscreens.rpy", line 4555, in execute
screen tool(x, y, w, h, bg = True):
File "game/BKscreens.rpy", line 4569, in execute
if text1:
File "game/BKscreens.rpy", line 4570, in execute
frame:
File "game/BKscreens.rpy", line 4601, in execute
text text1 yalign 0.0 size s justify True
AttributeError: 'NoneType' object has no attribute 'fullname'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/BKmain.rpy", line 1121, in script
$ result = ui.interact()
File "renpy/ast.py", line 928, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "renpy/python.py", line 2245, in py_exec_bytecode
exec(bytecode, globals, locals)
File "game/BKmain.rpy", line 1121, in <module>
$ result = ui.interact()
File "renpy/ui.py", line 298, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "renpy/display/core.py", line 3325, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
File "renpy/display/core.py", line 3737, in interact_core
root_widget.visit_all(lambda i : i.per_interact())
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/screen.py", line 436, in visit_all
callback(self)
File "renpy/display/core.py", line 3737, in <lambda>
root_widget.visit_all(lambda i : i.per_interact())
File "renpy/display/screen.py", line 447, in per_interact
self.update()
File "renpy/display/screen.py", line 637, in update
self.screen.function(**self.scope)
File "game/BKscreens.rpy", line 4555, in execute
screen tool(x, y, w, h, bg = True):
File "game/BKscreens.rpy", line 4555, in execute
screen tool(x, y, w, h, bg = True):
File "game/BKscreens.rpy", line 4569, in execute
if text1:
File "game/BKscreens.rpy", line 4570, in execute
frame:
File "game/BKscreens.rpy", line 4601, in execute
text text1 yalign 0.0 size s justify True
File "renpy/text/text.py", line 1574, in __init__
self.set_text(text, scope, substitute)
File "renpy/text/text.py", line 1693, in set_text
i, did_sub = renpy.substitutions.substitute(i, scope, substitute)
File "renpy/substitutions.py", line 270, in substitute
s = formatter.vformat(s, (), kwargs)
File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 563, in vformat
File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 585, in _vformat
File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 652, in get_field
AttributeError: 'NoneType' object has no attribute 'fullname'
Windows-10-10.0.19041
Ren'Py 7.4.11.2266
Brothel King 0.2 v220407
Thu Apr 14 13:15:31 2022