Ardlan

Newbie
Mar 29, 2018
36
32
what is this number?
How much a plugin increase the value with which the "Mind Barrier" decrease.
It stands for 'Overall/Akika/Yuria/Yuno/Renmu'.
In the case posted above Akika would get a increase of 16, Yuria 10, Yuno, 10 Renmu 16 and all Sub-Heroines 7.
 
  • Like
Reactions: Agnikai

Alexander_J

Newbie
Jul 3, 2024
17
18
It's a bit more complicated than that. I had some time on my hands and I did several tests to see how those numbers correlated with the amount of mind damage inflicted and it seems that heroines and sub-heroines have different formulas.

Quick disclaimer : These are quick tests based on the first in-game week's available heroines. More testing is needed to pin down the exact formula and to test on other heroines/sub-heroiones but so far the results have roughly tracked with my hypotheses.

For heroines, the formula seems to be:

Let Specific Character Value = Overall+Heroine value of a plugin

Mind Damage value = (Total specific character value for all plugins/10).

For sub-heroines, it seems to be simpler. It's Mind Damage value = 20+(total overall plugin value/10).

When you interact with a "heart" event, you subtract this from the Mind Barrier number in the conception planner. The game will display a value rounded to the nearest whole number but I suspect that it keeps track of decimal points. I've had instances where I've been doing 25 points of damage (supposedly) but was left with 1 point after the fourth action when it should have been 0 points. So keep that in mind.

Obviously it needs more testing and I'll refine it as I play the game a few more times. But until then, hope this rough calculations help you guys with playing this confusing game.
 
  • Like
Reactions: Agnikai

Ardlan

Newbie
Mar 29, 2018
36
32
It's a bit more complicated than that. I had some time on my hands and I did several tests to see how those numbers correlated with the amount of mind damage inflicted and it seems that heroines and sub-heroines have different formulas.

Quick disclaimer : These are quick tests based on the first in-game week's available heroines. More testing is needed to pin down the exact formula and to test on other heroines/sub-heroiones but so far the results have roughly tracked with my hypotheses.

For heroines, the formula seems to be:

Let Specific Character Value = Overall+Heroine value of a plugin

Mind Damage value = (Total specific character value for all plugins/10).

For sub-heroines, it seems to be simpler. It's Mind Damage value = 20+(total overall plugin value/10).

When you interact with a "heart" event, you subtract this from the Mind Barrier number in the conception planner. The game will display a value rounded to the nearest whole number but I suspect that it keeps track of decimal points. I've had instances where I've been doing 25 points of damage (supposedly) but was left with 1 point after the fourth action when it should have been 0 points. So keep that in mind.

Obviously it needs more testing and I'll refine it as I play the game a few more times. But until then, hope this rough calculations help you guys with playing this confusing game.
Yes and no. The difference is simply the Number shown and the number used for calculation. The game calculates with a initial value of 1000 while only showing you a 100. The only thing i need to correct in my post would be the addition for the main heroines (the first number is only for the Sub-Heroines) but that's a difference between whats written in the game and the code.

Let's go down the rabbit hole.
For the display of the current status we have the following lines of code (see resources/app/data/scenario/status.ks)

Code:
;深層防壁
[iscript]
    //深層防壁の現在値と最大値を結合
    f.statusSaimin = Math.floor(f.textP_h02/10) + '/100' ;
[endscript]

;深層防壁の現在値が100より大きい場合、表示を100にする
[eval exp="f.statusSaimin = 100 + '/100'" cond="f.textP_h02 > 1000"]

;深層防壁の現在値が0以下の場合、表示を0にする
[eval exp="f.statusSaimin = 0 + '/100'"   cond="f.textP_h02 <= 0"]
The first line with "f.statusSaimin" will give you the current value divided by 10 (as mentioned by you) rounded down (see function).
The following two are for the cases one go over 1000 (through prostitution) or under 0 (every event which can reduce the value).

So now is the question where do we get the value in "f.textP_h02" from?
This value is set in "resources/app/data/scenario/call/call_csvLoad_text.ks" as follows:
Code:
f.textP_h02 = f.textCsv[i][1]  ;    //催眠進行度
Now we have "f.textCsv[1]". "textCsv" represents the content of "resources/app/data/scenario/csv/text.csv", the "i" is the heroine number (line) in the csv and the "1" the second column (count starts at 0). At the start of a new game this value gets set to 1000 (see resources/app/data/scenario/setting/startHensu.ks).

Expect for some places which set that value to a fixed number of 0 or 500 or 1000 (eg. after completing the game to change it at will) it only gets changed at one place "resources/app/data/scenario/macro/macro_parameter.ks".
In this file are basicaly 3 macros to add or substract from that number:

First prostitution:
Code:
;【ey】風俗落ち
[macro name="parameter_ey"]
    ;所持金(加算)
    [eval exp="f.buyPoint_all += 500" ]

    ;深層防壁(加算)
    [eval exp="f.textCsv[f.charaNo][1] += 1" ]

    ;レイプ目フラグチェック(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][11] = 1" ]

    ;風俗堕ちフラグ(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][12] = 1" ]

[endmacro]
In this case you get +1 to the value basically increasing the barrier (remeber no matter how much you get over the 1000 you will never see somthing over 100 in the status screen).

The second is for the main heroines:
Code:
;【ev】エロ
[macro name="parameter_ev"]
    [iscript]
        //変数の初期化
        f.ev_saimin_01 = 0 ;    //深層防壁_01
        f.ev_saimin_02 = 0 ;    //深層防壁_02
        f.ev_saimin_03 = 0 ;    //深層防壁_03
        f.ev_saimin_04 = 0 ;    //深層防壁_04

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_01 += Number(f.shopCsv[i][5]) ;
                f.ev_saimin_02 += Number(f.shopCsv[i][6]) ;
                f.ev_saimin_03 += Number(f.shopCsv[i][7]) ;
                f.ev_saimin_04 += Number(f.shopCsv[i][8]) ;
            }
        }
    [endscript]

    ;メインヒロインの深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_01)" cond="f.charaNo == 1"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_02)" cond="f.charaNo == 2"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_03)" cond="f.charaNo == 3"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_04)" cond="f.charaNo == 4"]

[endmacro]
"ev_saimin_01-4" represents for each main heroines the number which will be substracted later.
In the "for-loop" the game loops over every item in the shop (shopCsv -> resources/app/data/scenario/csv/shopItem.csv) and in case it was bought adds the number for each heroine (column in the csv). After thats done the number gets substracted from the heroine the event effects.


The third would be the sub heroines:
Code:
;【ex】家族を増やす
[macro name="parameter_ex"]
    [iscript]
        //変数の初期化
        f.ev_saimin_sub = 0 ;    //深層防壁:サブヒロイン

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_sub += Number(f.shopCsv[i][4]) ;
            }
        }
    [endscript]

    ;深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= (f.ev_saimin_sub + 200)" ]

[endmacro]
The preparations for the calculation are basicaly the same as for the main heroines so lets jump the calculation.
Here you get an addition of 200 which would be end up as a 20 shown on screen.


There is also a case in this file where it get set to a fixed value of 1 under a certain condition.
Consdering the comments it's realated to NTR.


Now to your observation .
If we asume a plugin value of 5 for a sub heroine you would get a 25 substracted from 100 equalling in 75 while the game actually substracts a 205 from 1000 equalling in 795 and showing you a 79.
For a main heroine it would be a 5 substracted from 100 equalling in 95 while the game actually substracts a 5 from 1000 equalling in 995 and showing you a 99.
 

Whotfisthis

Well-Known Member
May 30, 2021
1,170
998
Yes and no. The difference is simply the Number shown and the number used for calculation. The game calculates with a initial value of 1000 while only showing you a 100. The only thing i need to correct in my post would be the addition for the main heroines (the first number is only for the Sub-Heroines) but that's a difference between whats written in the game and the code.

Let's go down the rabbit hole.
For the display of the current status we have the following lines of code (see resources/app/data/scenario/status.ks)

Code:
;深層防壁
[iscript]
    //深層防壁の現在値と最大値を結合
    f.statusSaimin = Math.floor(f.textP_h02/10) + '/100' ;
[endscript]

;深層防壁の現在値が100より大きい場合、表示を100にする
[eval exp="f.statusSaimin = 100 + '/100'" cond="f.textP_h02 > 1000"]

;深層防壁の現在値が0以下の場合、表示を0にする
[eval exp="f.statusSaimin = 0 + '/100'"   cond="f.textP_h02 <= 0"]
The first line with "f.statusSaimin" will give you the current value divided by 10 (as mentioned by you) rounded down (see function).
The following two are for the cases one go over 1000 (through prostitution) or under 0 (every event which can reduce the value).

So now is the question where do we get the value in "f.textP_h02" from?
This value is set in "resources/app/data/scenario/call/call_csvLoad_text.ks" as follows:
Code:
f.textP_h02 = f.textCsv[i][1]  ;    //催眠進行度
Now we have "f.textCsv[1]". "textCsv" represents the content of "resources/app/data/scenario/csv/text.csv", the "i" is the heroine number (line) in the csv and the "1" the second column (count starts at 0). At the start of a new game this value gets set to 1000 (see resources/app/data/scenario/setting/startHensu.ks).

Expect for some places which set that value to a fixed number of 0 or 500 or 1000 (eg. after completing the game to change it at will) it only gets changed at one place "resources/app/data/scenario/macro/macro_parameter.ks".
In this file are basicaly 3 macros to add or substract from that number:

First prostitution:
Code:
;【ey】風俗落ち
[macro name="parameter_ey"]
    ;所持金(加算)
    [eval exp="f.buyPoint_all += 500" ]

    ;深層防壁(加算)
    [eval exp="f.textCsv[f.charaNo][1] += 1" ]

    ;レイプ目フラグチェック(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][11] = 1" ]

    ;風俗堕ちフラグ(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][12] = 1" ]

[endmacro]
In this case you get +1 to the value basically increasing the barrier (remeber no matter how much you get over the 1000 you will never see somthing over 100 in the status screen).

The second is for the main heroines:
Code:
;【ev】エロ
[macro name="parameter_ev"]
    [iscript]
        //変数の初期化
        f.ev_saimin_01 = 0 ;    //深層防壁_01
        f.ev_saimin_02 = 0 ;    //深層防壁_02
        f.ev_saimin_03 = 0 ;    //深層防壁_03
        f.ev_saimin_04 = 0 ;    //深層防壁_04

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_01 += Number(f.shopCsv[i][5]) ;
                f.ev_saimin_02 += Number(f.shopCsv[i][6]) ;
                f.ev_saimin_03 += Number(f.shopCsv[i][7]) ;
                f.ev_saimin_04 += Number(f.shopCsv[i][8]) ;
            }
        }
    [endscript]

    ;メインヒロインの深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_01)" cond="f.charaNo == 1"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_02)" cond="f.charaNo == 2"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_03)" cond="f.charaNo == 3"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_04)" cond="f.charaNo == 4"]

[endmacro]
"ev_saimin_01-4" represents for each main heroines the number which will be substracted later.
In the "for-loop" the game loops over every item in the shop (shopCsv -> resources/app/data/scenario/csv/shopItem.csv) and in case it was bought adds the number for each heroine (column in the csv). After thats done the number gets substracted from the heroine the event effects.


The third would be the sub heroines:
Code:
;【ex】家族を増やす
[macro name="parameter_ex"]
    [iscript]
        //変数の初期化
        f.ev_saimin_sub = 0 ;    //深層防壁:サブヒロイン

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_sub += Number(f.shopCsv[i][4]) ;
            }
        }
    [endscript]

    ;深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= (f.ev_saimin_sub + 200)" ]

[endmacro]
The preparations for the calculation are basicaly the same as for the main heroines so lets jump the calculation.
Here you get an addition of 200 which would be end up as a 20 shown on screen.


There is also a case in this file where it get set to a fixed value of 1 under a certain condition.
Consdering the comments it's realated to NTR.


Now to your observation .
If we asume a plugin value of 5 for a sub heroine you would get a 25 substracted from 100 equalling in 75 while the game actually substracts a 205 from 1000 equalling in 795 and showing you a 79.
For a main heroine it would be a 5 substracted from 100 equalling in 95 while the game actually substracts a 5 from 1000 equalling in 995 and showing you a 99.
I've never seen a more effort-ful post in a thread for a game with this kinda rating lmao, even more funny when it's one of coding-deep-dive posts
 

Ardlan

Newbie
Mar 29, 2018
36
32
I've never seen a more effort-ful post in a thread for a game with this kinda rating lmao, even more funny when it's one of coding-deep-dive posts
tbh I seldom care about the rating since it's usually somewhere between on point and total bullshit. So if it looks interesting I try it esp. if it doesn't hurt my wallet ;)

And for the coding-deep-dive my curiosity took over and why not post it.
Even thought writing it down took longer than doing the dive x)
 
  • Haha
Reactions: Whotfisthis

Alexander_J

Newbie
Jul 3, 2024
17
18
Great read! I have no idea how to look into the code itself but I do like math and a good puzzle so I enjoyed just observing the numbers and reasoning out how it worked and your post just made it even more fun to read.

I had the idea that the game was counting the mind barrier as 1000 and showing it as 100. The reason why I had the plugin numbers divided by 10 before subtracting it from the mind barrier was because I wanted to keep to the 100 and reasoned out that the game kept decimals. To find out that it's actually tracked in the hundreds (no decimals needed) was interesting.

And it makes sense why my calculations didn't tally even though they were in the ballpark. That's one less thing bugging me when I got to sleep later tonight.
 

Agnikai

Newbie
May 18, 2021
48
40
Just skip the in game tutorial. Read the Guide provided on first page instead.
---

I tried this game for awhile. While the idea is great, there is no actual act of hypnotizing. And the art is so bad like it's half done sketches. Plus it's censored. bah.
 

Ardlan

Newbie
Mar 29, 2018
36
32
I'm loving this game.

Anyone knows if another tanedukeitinengo game has been translated?
Well we have the following 4 translation request threads:

https://f95zone.to/threads/translat...n-masturbator-gakuen-for-our-students.153810/
-> a MTool translation file and the game in jap is downloadable

https://f95zone.to/threads/translat...ity-academy-hypnotic-brainwash-project.26381/
-> game file in jap downloadable and someone tried to tl it but gave up

https://f95zone.to/threads/st-maternity-academy-30-day-hypnotized-cumdump.51838/
-> no game dl or translation so far

https://f95zone.to/threads/translat...ter-enrollment-in-conceived-toilet-ke.105252/
-> dl for translated game but down and no reaction for reupload since jul 2022


You can throw at least the games of the first and second link against MTool (maybe also the other two but without the game it's not testable) but you will only get a mtl.
 
  • Like
Reactions: Lgn332

Wataterp

Member
Jan 27, 2019
160
68
I tried following a guide on how to extract files from a tyrano game using arc unpacker to get a CG rip. There was no extra_data file from what I extracted and that's where the game's files are apparently stored. I'm lost, does anyone know more about tyrano and get a CG rip from this game?

I just want to goon, I don't have time to learn the convoluted game mechanics from this game.
 

Ardlan

Newbie
Mar 29, 2018
36
32
I tried following a guide on how to extract files from a tyrano game using arc unpacker to get a CG rip. There was no extra_data file from what I extracted and that's where the game's files are apparently stored. I'm lost, does anyone know more about tyrano and get a CG rip from this game?

I just want to goon, I don't have time to learn the convoluted game mechanics from this game.
For this game you can get the CG from "resources/app/data/fgimage/cg/" but be aware that you would need to combine the files there.
You don't have permission to view the spoiler content. Log in or register now.
 

Zorg119

New Member
Mar 21, 2022
10
4
Game is interesting, but some mechanics are broken.
e.g Money is very hard to get in beginning duo limited amount of AP, but mid-late MC has donations from unlocked sub-char and hypno-work is not required anymore, with give more AP > more apps > more unlocked heroines
Sadly, events only reduce hypno-barrier they basically has same value, even one-time events with star. There is no flags for some secret scenes or ending


Good thing is game is easy to mod: not only events, but even adding new characters is possibly (But required ton of images), propably even new mechanics

Here is poor modification with give free AP for unlocked character during normal mode. (propably, still required tuning for app cost and "errands" cost)

[isScript] - for normal JavaScript insert
control_parameter.ks
Code:
;行動カウントを減算(-1)。行動回数を行動選択画面に表示する関係で3からカウントダウンする。
[iscript]
    const isUnlocked = Math.floor(f.textCsv[f.num][1]/10) <=0;
    if (f.actionFlg == 1 && f.extraGame == 0 && !isUnlocked) f.actionCount -= 1
[endscript]
;[eval exp="f.actionCount -= 1" cond="f.actionFlg == 1 && f.extraGame == 0"]
 
  • Like
Reactions: tyr@nT and Lgn332

Lgn332

Member
May 23, 2018
111
154
I have also made some modifications.

------------------------------------------------------------------------------------------------
Money: monthEnd.ks
------------------------------------------------------------------------------------------------
I have changed file monthEnd.ks to avoid hassle with jobs.
buyPoint_all is your current money.
seikyuPoint is your current deb
Original: f.buyPoint_all -= f.seikyuPoint ;
Modified: f.buyPoint_all -= 0 ;


------------------------------------------------------------------------------------------------
AP: call_parameter_weekStart.ks + control_parameter.ks
------------------------------------------------------------------------------------------------
This to increase the action points is too crude, neesd tweeking, it gives you negative points, but works.

call_parameter_weekStart.ks
[eval exp="f.actionCount = 9"]

control_parameter.ks
;上記以外のイベントは行動選択画面に遷移
;行動回数が1~3
[jump storage="actSelect.ks" cond="f.actionCount == 3 || f.actionCount == 2 || f.actionCount == 1 "]

------------------------------------------------------------------------------------------------
Moral: actSelect.ks
------------------------------------------------------------------------------------------------

Always moral 100%
[eval exp="f.moralsPoint=100" cond="f.moralsPoint < 100"]

Always moral 1% (if you want to see NTR)
[eval exp="f.moralsPoint=1" cond="f.moralsPoint < 9999"]
 
  • Like
Reactions: Tampan02 and tyr@nT

Lgn332

Member
May 23, 2018
111
154
Also, it's easy to change the name of the MC and rest of the cast.
If you use windows check a program called grepWin
You can see how here:

You don't have permission to view the spoiler content. Log in or register now.
 
  • Like
Reactions: tyr@nT
2.70 star(s) 23 Votes