What's new

[Complete - Full] [D_152423] にーとと天使とえっちな家族 (Neet, Angel and naughty Family)


Status
Not open for further replies.
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
Well, this works partly like it should...

I tried it like this: (;numMessageLayers=3)

message_frame_04_text.png = empty layer to disable textbox color
Code:
*start
[layopt layer="message2" visible="true"]
[position  layer="message2"  left="0"  top="560"  width="1280"  height="160"  page="fore"  frame="message_frame/message_frame_04_text.png"  visible="true"  ]
[cm]
[clearfix]
;
; original:
;[bg storage="black.png" time="500"]
;[movie storage="mov_00_op.webm" skip="true"]
;
; new:
[bgmovie storage="mov_00_op.webm" skip=false]
; Dialogue:
;
; Dialogue: 0,0:00:15.66,0:00:17.12,Rina,,0,0,0,,It's hot.
; 15660
[wait time=15660]
[movieplayback]
[ptext name="chara_name_area" layer="message2" color="0xAE6F71" size=24 x=70 y=580 shadow="0x000000"]
#It's hot.
; 17120-15660=1460
[wait time=1460]
[er]
#
;
; Dialogue: 0,0:00:17.64,0:00:18.92,Rina,,0,0,0,,Hey, Mother.
; 17120-17640=520
;[wait time=520]
[wait time=520]
[ptext name="chara_name_area" layer="message2" color="0xAE6F71" size=24 x=70 y=580 shadow="0x000000"]
#Hey, Mother!
; 18920-17640=1280
[wait time=1280]
[er]
#
;
The thing is, it's a hassle to convert all and to center it manually (i didn't find a proper way to do this yet).
 

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
Yeah, and wait timers were messed up because it waited for the text to appear with user-defined text-speed in config and only then started timeout. So the text speed can be forced to be instant with tag and then timers will be correct.
 
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
Using #test doesn't have delay.

Since i added my own new message2 layer,
only nametext works without further tyrano programming.

Timing looks good, the only thing is to center it.
 

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
edited to make it all more readable

centering (quite rough, but you can get the gist by it):

INI:
; make new name tag:
[clearfix name="chara_name_area"]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=28 color="0xDF3554" shadow="0x000000" bold]
[chara_config ptext="new_name_area"]
; make text centered:
[iscript]
// name:
$(".new_name_area").css({
    "text-align": "center",
    "color": "blue",
    "font-weight": "bold",
    "width": "100%",
    "left": "0",
});

// message:
$('.message_inner').each(function(){
    $(this).data("defaultStyle",$(this).attr("style") || "");
    $(this).css({
        "left": "0",
        "width": "100%",
        "padding": "20px 0",
        "margin": "0",
        "text-align": "center",
    });
});
[endscript]
;

Attached my current op.ks for reference.

Also what do you mean by "using #test"? How?
 

Attachments

Last edited:

Lingfing

Member
Joined
Jun 13, 2018
Messages
33
Reputation score
1
for some reason during the sex scenes the text box just vanishes
 
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
@Lingfing
Not a problem due to the translation.

edited to make it all more readable
Thanks for centering, i've edited it to work like the original op.ks.

No extra buttons, no bg for text layer and skipable movie when using left mouse click anywhere on the screen.

All that's left, is some time shifting and to add the rest of it.
 

Attachments

Last edited:

minhnoopersie

New member
Joined
Mar 24, 2020
Messages
1
Reputation score
0
4. This section is not for game discussion. Use the corresponding H-Games section thread for game discussion.
Does anyone have cheat for the game? I try to use Cheat Engine but it seems doesn't work
 

hopleop

New member
Joined
Mar 24, 2020
Messages
1
Reputation score
0
i'm still waiting for the full update patch everyday. Thank u btw Hoshi (y)
 

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
I was using the Nametag to prevent delay.
Oh? Oh... Neat! Thinking out of the box 🤓

No extra buttons, no bg for text layer and skipable movie when using left mouse click anywhere on the screen.
All that's left, is some time shifting and to add the rest of it.
Wow! Good thinking! Though I don't quite get where from comes [movieplayback] and what it does? Is this some macros? Can't find it's declaration anywhere.
Can help with adding, hopefully will finish it today.

Also the message inner text can't be styled by javascript, but only by means of using deffont:
INI:
[deffont size=26 color="0xF9B4C0" bold=true]
[resetfont]
and then reverting it back when finished intro by setting it to default values from config.tjs:
INI:
[deffont size=24 color="0xFFF" bold=false]
[resetfont]

Edit:
Resolved question: I'm dumb-dumb. Also completed insertion of subs. The timers at the end need to be adjusted? Especially:
Boy: What should I do?
<-- between them pause is negative -->
Archangel: First of all...

Don't know if boy's text (color, and maybe font-style, size?) or even for each of characters should be customized?
Something like inserting before his name this js script to make his name for example white:
INI:
[iscript]
$(".new_name_area").css({ color: "white" });
[endscript]
then making his message font for example also white:
INI:
[font color="white"]
;doesn't need any other thing, cause applies only to one message?
and then after his dialogue reverting a change:
INI:
[iscript]
$(".new_name_area").css({ color: "#DF3554" });
[endscript]
Can't it be done more gracefully?
 

Attachments

Last edited:
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
Can't it be done more gracefully?
I have decided it to do it this way:
Code:
*start
[macro name="centeron"]
; make it centered:
; *****
[iscript]
// name:
$(".new_name_area").css({
    "text-align": "center",
    "font-weight": "bold",
    "width": "100%",
    "left": "0",
});

// message:
$('.message_inner').each(function(){
    $(this).data("defaultStyle",$(this).attr("style") || "");
    $(this).css({
        "left": "0",
        "width": "100%",
        "padding": "40px 0",
        "margin": "0",
        "text-align": "center",
    });
});
[endscript]
; change font of messages:
[endmacro]

[macro name="centeroff"]
; remove css center:
[iscript]
$('.message_inner').each(function(){
    $(this).attr("style", $(this).data("defaultStyle"));
});
[endscript]
[endmacro]

[macro name="rina"]
[centeroff]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=30 color="0xDF3554" shadow="0x000000" bold=true]
[centeron]
[deffont size=26 color="0xFFFFFF" bold=true]
[resetfont]
[endmacro]

[macro name="riko"]
[centeroff]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=30 color="0x6FAE7B" shadow="0x000000" bold=true]
[centeron]
[deffont size=26 color="0xFFFFFF" bold=true]
[resetfont]
[endmacro]

[macro name="shizue"]
[centeroff]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=30 color="0xcd57e6" shadow="0x000000" bold=true]
[centeron]
[deffont size=26 color="0xFFFFFF" bold=true]
[resetfont]
[endmacro]

[macro name="sakurako"]
[centeroff]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=30 color="0xdba32a" shadow="0x000000" bold=true]
[centeron]
[deffont size=26 color="0xFFFFFF" bold=true]
[resetfont]
[endmacro]

[macro name="boy"]
[centeroff]
[ptext name="new_name_area" layer="message0" x="580" y="566" zindex=99 size=30 color="0x5f66ee" shadow="0x000000" bold=true]
[centeron]
[deffont size=26 color="0xFFFFFF" bold=true]
[resetfont]
[endmacro]

That way i can easiely change their colors by using just:

[rina]
[riko]
[shizue]
[sakurako]
[boy]

It would be possible to move it to another .ks to make it always available at will.

Now what's left is to fix the timing...

EDIT:

Ah, some of your calculations were off scale, i'll have to check them all and do a
minimal fix to align the timing to the hardcoded parts.
 
Last edited:

Zero Son

New member
Joined
Mar 24, 2020
Messages
1
Reputation score
0
Bug report:

Riko has a new option when entering her room "Sex with uniform on" however all this does is lead to a few pieces of dialog and then to a black screen. My guess is that it tries to go into her first sex scene but since it's already past that point just freezes up.
i have the same issue like this too, when have sex with Riko in her room, I press cum is lead to a few pieces of dialog and then to a black screen :((
 
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
@Zero Son
Please read the solution before posting.

@ Everyone

Before posting problems, read the forum if it was already solved OR add your used game version and exaclty what you did that lead to it!

Plus, check with the LATEST ORIGINAL BUYED version without mods if the same problem stays !!!

IF YOU DON'T HAVE THE LATEST VERSION, GO TO YOUR MYLIBRARY PAGE ON FANZA AND DOWNLOAD IT!
 
Last edited:

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
Was wondering, will you sub other videos inside game as well?
Also don't know if it is helpful, or is just unnecessary distraction, hope it's fun and all,... well either way want to throw into you some ideas about your macro for names/colors:
What if you add a variable to check if name of a person is known, like for instance Sakurako at first can be named as (arch)angel and then as, well, Sakurako, when she tells mc her name. Or maybe drop the use of names in subs all togeteher, since viewer already can separate them by their subs (text) color.
Also don't know if defining [ptext] with same name for each macro-call of [rina], [riko], etc. won't make the game leak memory or whatever? Maybe some code restructuring should be done?
And I think that center(on/off) macro can be called not from inside of macro [rina], [riko], etc. but at the start and end of subtitles track.

Here some code, maybe it will give you some insights:
INI:
;******************************START OF MOVIE ******************************
; rebuilt centeron - insert at start of video
[macro name="subs_start"]
; initial setup:
[cm]
[ct]
[clearfix]
;
; show message box:
[layopt layer="message0" visible="true"]
; make messages backdrop transparent:
[position layer=message0 frame="message_frame/message_frame_04_text.png"]
; force text speed to be instant, so even if player have set custom text speed, it won't mess with timing of talk:
[nowait]
; setup name display area:
[ptext name="new_name_area" layer="message0" x=0 y=566 zindex=99 size=30 shadow="0x000"]
[chara_config ptext="new_name_area"]
;
; make it all centered:
[iscript]
// center name display area:
$(".new_name_area").css({
    "font-weight": "bold",
    "left": "0",
    "text-align": "center",
    "width": "100%",
});

// center message area:
$('.message_inner').each(function(){
    // backup css
    $(this).data("defaultStyle",$(this).attr("style") || "");
    // new css
    $(this).css({
        "left": "0",
        "margin": "0",
        "padding": "40px 0",
        "text-align": "center",
        "width": "100%",
    });
});
[endscript]
;
;
[endmacro]


;*******************************END OF MOVIE *******************************
; rebuilt centeroff
[macro name="subs_end"]
; return message backdrop to default value:
[position layer=message0 frame="message_frame/message_frame_03_text.png"]
;
; remove new name box:
#
[clearfix name="new_name_area"]
[clearfix]
;
; restore old name box:
[ptext name="chara_name_area" layer="message0" color="white" size=24 x=70 y=580 shadow="0x000"]
[chara_config ptext="chara_name_area"]
;
; remove new css:
[iscript]
$('.message_inner').each(function(){
    $(this).attr("style", $(this).data("defaultStyle"));
});
[endscript]
;
; restore font style:
[deffont size=24 color="0xFFF" bold=false]
[resetfont]
;
; stop nowait mode:
[endnowait]
;
; hide message box:
[layopt layer="message0" visible="false"]
[endmacro]
that to work with above individual characters macros:
INI:
; setup if names known:
[eval exp="f.riko_name_known = 0"]
[eval exp="f.rina_name_known = 0"]
[eval exp="f.shizue_name_known = 0"]
[eval exp="f.sakurako_name_known = 0"]


; shared instructions in one macro:
[macro name="talk"]
[iscript]
// ** name:
// check if it is defined, if not - leave empty:
mp.name = mp.name || "";
// check font color, if not defined - set white:
$(".new_name_area").css({
    color: (mp.name_color && mp.name_color.match(/^(0x|#)(\w{3}$|\w{6}$)/)) ? mp.name_color.replace(/^(0x|#)(\w{3}$|\w{6}$)/, '#$2') : "#FFF",
});

// ** message:
// check font color, if not defined - set white:
mp.message_color = mp.message_color || "0xFFF";
//check if screams:
mp.font_size = String(mp.screams).toLowerCase() === 'true' ? 40 : 26;
// should say or remain silent:
mp.message = mp.message || "";
[endscript]

; font setup:
[font size="&mp.font_size" color="&mp.message_color" bold=true]

; ** send it:
#&mp.name
[emb exp="mp.message"]
;
[endmacro]

;****************************** INDIVIDUAL MACRO ******************************
; Rina:
[macro name="rina"]
; check if we already know her name:
[if exp="f.rina_name_known == 0"]
    [eval exp="mp.name='Older    sister'"]
[else]
    [eval exp="mp.name='Rina'"]
[endif]
; say the message:
[talk name="&mp.name" message="&mp.says" name_color="0xDF3554" message_color="0xF9B4C0" screams=%louder|false]
[endmacro]

; Riko:
[macro name="riko"]
; check if we already know her name:
[if exp="f.rina_name_known == 0"]
    [eval exp="mp.name='Younger    sister'"]
[else]
    [eval exp="mp.name='Riko'"]
[endif]
; say the message:
[talk name="&mp.name" message="&mp.says" name_color="0xF9B4C0" message_color="0xDF3554" screams=%louder|false]
[endmacro]

; Shizue:
[macro name="shizue"]
; check if we already know her name:
[if exp="f.shizue_name_known == 0"]
    [eval exp="mp.name='Mother'"]
[else]
    [eval exp="mp.name='Shizue'"]
[endif]
; say the message:
[talk name="&mp.name" message="&mp.says" name_color="0xA53159" message_color="0xFFBCDD" screams=%louder|false]
[endmacro]

; Sakurako:
[macro name="sakurako"]
; check if we already know her name:
[if exp="f.sakurako_name_known == 0"]
    [eval exp="mp.name='Archangel'"]
[else]
    [eval exp="mp.name='Sakurako'"]
[endif]
; say the message:
[talk name="&mp.name" message="&mp.says" name_color="0xA53159" message_color="0xFFBCDD" screams=%louder|false]
[endmacro]

So in code you will call it not as for instance:
INI:
[rina]
#Older sister
So hot!..
but as:
INI:
[rina says="So    hot!.."]
So in op.ks it will look like this:
INI:
*start
[cm]
[clearfix]
[bg storage="black.png" time = 500]
; ***
; movie:
[bgmovie storage="mov_00_op.webm" skip=false]

; ***
; make intro skipabble by clicking on screen:
[locate x=0 y=0]
[clickable width=1280 height=720 target=*skip_intro]
;
; ***
; Dialogue:
[subs_start]
;
; Dialogue: 0,0:00:15.66,0:00:17.12,Mother,,0,0,0,,It's hot.
; 0:00:15.66 = 15660
[wait time=15660]
; rina says her first line
[rina says="So    hot!.." louder=true]
; 17120-15660=1460
[wait time=1460]
;pause:
#
[er]
;
; Dialogue: 0,0:00:17.64,0:00:18.92,Older Sister,,0,0,0,,Hey, Mother.
; 17640-17120=520
[wait time=520]
[rina says="Hey,    Mother!"]
; ...
but it seems such way truncates normal spaces, so it need to be looked further.

edit: removing bugs...
edit: if non-breaking space is used instead of normal one, all good, like:
INI:
;instead of
[rina says="Hey, Mother!"]
; above is normal space between "Hey," and "Mother"
;use:
[rina says="Hey, Mother!"]
; above is nbsp (Alt+0160 on windows)
Edit: here is little helper js function (you can launch it in your browser console) to calculate/check duration of time subtitles should be on screen, or how long should be pause between them according to subtitles file format:
JavaScript:
function getDuration(time){
    // arguments can be either:
    // * two lines - to calculate duration of pause between speeches:
    // getDuration(`
    // Dialogue: 0,0:01:04.21,0:01:06.68,Younger Sister,,0,0,0,,{\fad(0,500)}Sister, are we still not there?
    // Dialogue: 0,0:01:09.89,0:01:18.85,Title 2,,0,0,600,,{\fad(500,500)}NEET, Angel and naughty Family
    // `)
    // = 3210
    //
    // * one line - to calculate length of character talk:
    // getDuration(`
    // Dialogue: 0,0:04:34.66,0:04:37.75,Archangel,,0,0,0,,Human NEET rehabilitation plan!
    // `)
    // = 3090

    // getting time table from string
    var times = time.match(/([\d:.]{10})/g);

    // check if given too much lines
    if(times.length > 4) return false;

    // check if given times for more then hour long video...wait, what?
    if(+times[0][0] > 0) return false;

    // check if given time to calculate for speech, or for pause between speeches
    times = times.length > 2 ? times.slice(1,-1) : times;

    // convert time representation from 0:0n:nn.nn,0:0n:nn.nn to milliseconds
    var start = [];
    var finish= [];
    times[0].replace(/\d{2}/g, function(num){ start.push(Number(num)); });
    times[1].replace(/\d{2}/g, function(num){ finish.push(Number(num));});
    function tomultiseconds(arr){ return ((arr[0]*60+arr[1])*100+arr[2])*10; }
    start = tomultiseconds(start);
    finish= tomultiseconds(finish);

    // set the duration of talk.
    var duration = finish-start;

    return duration;
}

So if you want to calculate duration for example of the next line:
Code:
Dialogue: 0,0:01:34.66,0:14:33.15,Dog,,0,0,0,,Woof! Woof!
you feed it to function:
JavaScript:
// like that:
getDuration("Dialogue: 0,0:01:34.66,0:14:33.15,Dog,,0,0,0,,Woof! Woof!")

// or like that:
getDuration("0:01:34.66,0:14:33.15")
Or if you want to calculate duration of pause between two subtitles like:
Code:
Dialogue: 0,0:01:34.66,0:14:33.15,Dog,,0,0,0,,Woof! Woof!
Dialogue: 0,0:14:44.00,0:15:22.33,Cat,,0,0,0,,Meow! Meow!
you feed it to function:
JavaScript:
// like that:
getDuration(`
Dialogue: 0,0:01:34.66,0:14:33.15,Dog,,0,0,0,,Woof! Woof!
Dialogue: 0,0:14:44.00,0:15:22.33,Cat,,0,0,0,,Meow! Meow!
`) // the game won't understand `` marks though.

// or like that:
getDuration("0,0:01:34.66,0:14:33.15,0,0:14:44.00,0:15:22.33")
// or like:
getDuration("0:14:33.15,0,0:14:44.00")
JSON:
{"talk":"It's hot.","duration":[15660,17120],"pause_after":[17120,17640]},
{"talk":"Hey, Mother.","duration":[17640,18920],"pause_after":[18920,19200]},
{"talk":"Certainly, it should be around here.","duration":[19200,20900],"pause_after":[20900,22090]},
{"talk":"Sister, i'm thirsty.","duration":[22090,24620],"pause_after":[24620,25000]},
{"talk":" I'm thirsty too.","duration":[25000,26160],"pause_after":[26160,26800]},
{"talk":"I'll buy some juice.","duration":[26800,28440],"pause_after":[28440,31040]},
{"talk":"This area changed a lot.","duration":[31040,33120],"pause_after":[33120,34280]},
{"talk":"Mother, i buyed something to drink.","duration":[34280,36600],"pause_after":[36600,36600]},
{"talk":"Check the map.","duration":[36600,38600],"pause_after":[38600,38730]},
{"talk":"","duration":[38730,40200],"pause_after":[40200,41200]},
{"talk":"What are you doing?","duration":[41200,42270],"pause_after":[42270,42360]},
{"talk":"Ahh... moah...","duration":[42360,44690],"pause_after":[44690,45810]},
{"talk":"","duration":[45810,46420],"pause_after":[46420,47200]},
{"talk":"There was a rare monster...","duration":[47200,49590],"pause_after":[49590,51340]},
{"talk":"Ah, there too.","duration":[51340,53470],"pause_after":[53470,54730]},
{"talk":"Moaah... Mother, you can do that later.","duration":[54730,60110],"pause_after":[60110,60580]},
{"talk":"Mother, you are too fast.","duration":[60580,62800],"pause_after":[62800,62880]},
{"talk":"The egg hatched.","duration":[62880,64200],"pause_after":[64200,64210]},
{"talk":"{\fad(0,500)}Sister, are we still not there?","duration":[64210,66680],"pause_after":[66680,69890]},
{"talk":"NEET, Angel and naughty Family","duration":[69890,78850],"pause_after":[78850,103500]},
{"talk":"Oh! That is nice!","duration":[103500,105540],"pause_after":[105540,108830]},
{"talk":"Let's do this.","duration":[108830,110870],"pause_after":[110870,114370]},
{"talk":"Huh, what is this?","duration":[114370,116400],"pause_after":[116400,117570]},
{"talk":"Wa... What ! ?","duration":[117570,119540],"pause_after":[119540,140750]},
{"talk":"Ahahahaha...","duration":[140750,143510],"pause_after":[143510,143890]},
{"talk":"Hey, fearless lower human being.","duration":[143890,146240],"pause_after":[146240,146570]},
{"talk":"I'm the archangel Sakurako.","duration":[146570,149670],"pause_after":[149670,149710]},
{"talk":"Listen carefully with your ears.","duration":[149710,152510],"pause_after":[152510,152740]},
{"talk":"Why does it move?NWoah, look at this!","duration":[152740,155410],"pause_after":[155410,155470]},
{"talk":"This guy... What are you doing!!!","duration":[155470,158450],"pause_after":[158450,159590]},
{"talk":"You lowclass bastard.","duration":[159590,161230],"pause_after":[161230,161480]},
{"talk":"You can't do that to meN just because i'm small.","duration":[161480,163900],"pause_after":[163900,164270]},
{"talk":"If you do that again, i'll kill you.","duration":[164270,167690],"pause_after":[167690,168160]},
{"talk":"I'm sorry......","duration":[168160,170120],"pause_after":[170120,170910]},
{"talk":"So, why is an archangel here?","duration":[170910,173910],"pause_after":[173910,174090]},
{"talk":"You want to know?","duration":[174090,176050],"pause_after":[176050,176330]},
{"talk":"Huuuh, i see i see.","duration":[176330,179990],"pause_after":[179990,180730]},
{"talk":"If you ask me nicely, thenN i can't help it and will tell you.","duration":[180730,185910],"pause_after":[185910,186060]},
{"talk":"The power of angels,N what do you think it is?","duration":[186060,189110],"pause_after":[189110,189820]},
{"talk":"Uhm......NSpiritual power!","duration":[189820,191760],"pause_after":[191760,192370]},
{"talk":"Yes, and the source forNit is the peoples prayer.","duration":[192370,197310],"pause_after":[197310,198410]},
{"talk":"A heart that favors others...","duration":[198410,200700],"pause_after":[200700,201440]},
{"talk":"If good people increase...","duration":[201440,203510],"pause_after":[203510,203750]},
{"talk":"The god's army increases their strenght.","duration":[203750,206570],"pause_after":[206570,207450]},
{"talk":"Vice versa...","duration":[207450,208300],"pause_after":[208300,208570]},
{"talk":"If bad people increase...","duration":[208570,210450],"pause_after":[210450,210800]},
{"talk":"The demon's army willN increase their power.","duration":[210800,213530],"pause_after":[213530,213660]},
{"talk":"But here comes the problem...","duration":[213660,216530],"pause_after":[216530,217300]},
{"talk":"Our spiritual powerN has fallen significantly!","duration":[217300,221260],"pause_after":[221260,221690]},
{"talk":"At first i thought that the powerN of the devil was increasing...","duration":[221690,225660],"pause_after":[225660,225950]},
{"talk":"But our rivals are lackingN spiritual powers too.","duration":[225950,231150],"pause_after":[231150,231410]},
{"talk":"Apparently in this region,N the power is declining.","duration":[231410,235530],"pause_after":[235530,235620]},
{"talk":"So i examined it in variouse ways.","duration":[235620,238290],"pause_after":[238290,238610]},
{"talk":"I finally found out why.","duration":[238610,241340],"pause_after":[241340,241340]},
{"talk":"So... what's the reason?","duration":[241340,243310],"pause_after":[243310,244630]},
{"talk":"It's your fault!","duration":[244630,246300],"pause_after":[246300,247010]},
{"talk":"Huh? .... Why?","duration":[247010,248980],"pause_after":[248980,249180]},
{"talk":"Because NEETS like youNincrease and shut themself in.","duration":[249180,252410],"pause_after":[252410,252550]},
{"talk":"Peoples connection toNeach other becomes thin.","duration":[252550,254950],"pause_after":[254950,255120]},
{"talk":"It causes a decrease in sexual desires!","duration":[255120,258620],"pause_after":[258620,258690]},
{"talk":"Oh... that's the cause for it?","duration":[258690,260690],"pause_after":[260690,260730]},
{"talk":"All because of scum inN the neighberhood like you!","duration":[260730,264990],"pause_after":[264990,265100]},
{"talk":"Oh......","duration":[265100,266670],"pause_after":[266670,266890]},
{"talk":"Therefore, to breakN the current situation...","duration":[266890,268990],"pause_after":[268990,269050]},
{"talk":"We angels came upN with a terrifying plan!","duration":[269050,272290],"pause_after":[272290,272670]},
{"talk":"The name is:","duration":[272670,273870],"pause_after":[273870,274660]},
{"talk":"Human NEET rehabilitation plan!","duration":[274660,277750],"pause_after":[277750,278010]},
{"talk":"If that's how it is...","duration":[278010,279610],"pause_after":[279610,279080]},
{"talk":"Don't fuss about it!","duration":[279080,280260],"pause_after":[280260,281950]},
{"talk":"Anyway...","duration":[281950,283250],"pause_after":[283250,283680]},
{"talk":"I'll make you a model caseN and heal all human NEETS.","duration":[283680,288780],"pause_after":[288780,288890]},
{"talk":"What should i do?","duration":[288890,290490],"pause_after":[290490,289780]},
{"talk":"First of all...","duration":[289780,290490],"pause_after":[290490,290500]},
{"talk":"You will live together with others.","duration":[290500,293160],"pause_after":[293160,293560]},
{"talk":"Huh? That's impossible ! !","duration":[293560,295130],"pause_after":[295130,295140]},
{"talk":"That was already decided!","duration":[295140,297470],"pause_after":[297470,297630]},
{"talk":"What kind of persons?","duration":[297630,299230],"pause_after":[299230,299650]},
{"talk":"I don't know.","duration":[299650,300480],"pause_after":[300480,302580]},
{"talk":"Oh, they are here.","duration":[302580,304170],"pause_after":[304170,304570]},
{"talk":"Hurry up and open the door!","duration":[304570,307030],"pause_after":[307030,307470]},
{"talk":"","duration":[307470,309480],"pause_after":[309480,309480]},
{"talk":"Don't worry!","duration":[309480,310760],"pause_after":[310760,310760]},
{"talk":"They will recognize you asNacquaintance from the past.","duration":[310760,313970],"pause_after":[313970,314010]},
{"talk":"But what is when theyN see you moving around?","duration":[314010,316020],"pause_after":[316020,316020]},
{"talk":"That's ok because no oneN else beside you can see me.","duration":[316020,318980],"pause_after":[318980,324540]},
{"talk":"Thank you for takingN care of us starting today.","duration":[324540,326290],"pause_after":[326290,327730]},
{"talk":"Ah...... Same here......","duration":[327730,329730]}
 
Last edited:
OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
As for tyrano, it's known using too many layers can slow down
the game such as message0, message1, message2 and so on.

There is more to worry about having java calculations or wait
exceeding the videos playtime (video loop breaking game).

"Talk" vs [rina] does in the end the same with the small difference
to use a var in code instead to have a macro for character each.

I would agree if it would be a script reading the .ass file and
do all needed steps itself as long it doesn't slow the game down.
 

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
@Hoshi , your wish is my command. 🤯 Here:
The _convert.ks file attached is file that converts your sub files (.ass) format into game-code.
The script converting ".ass" subs file should be loaded only once by you (no need for user to do this computation, since you can provide him with output).
It should be called somewhere in the code while provided with two argument: file from which read subs (.ass file location relative to game home folder) - f.file_path and file to which print output - f.output_file, like so:
INI:
[eval exp="f.file_path = './data/video/mov_00_op.ass'"]
[eval exp="f.output_file = './data/scenario/_sub.ks'"]
[call storage="_convert.ks" target="*convert"]
It is synchronous so will stop the game for max ~100 ms. Remember to remove it from your code before making your own edits to outputted file, or it will rewrite them on the next game launch!

After it's done (no error-handling provided), it gives you new file (in attached archive it's name is _sub.ks) with formatted lines like:
INI:
[wait time=15660]
[shizue says="It's hot."]
[wait time=1460]
#
[er]
;
[wait time=520]
[rina says="Hey, Mother."]
[wait time=1280]
#
[er]
; ...
Then you launch the dialogue system (based on your modular centeron/centeroff and individual modules for each actor) from file _s.ks and after it attach the new file with formated subs (_subs.ks in this example).
See the attached op.ks for details.

Bugs: clickable area that skipped the movie became unresponsive :( needs further testing.
 

Attachments

OP
Deleted member 406005

Deleted member 406005

Well-known member
Joined
May 9, 2019
Messages
222
Reputation score
422
Thanks, that looks real good.

I had no time to correct the timings manualy (lots of work currently...).

I tested the 1:1 generated timings from .ass that your zip included,
sadly there seems to be an unproportional delay time when using
[wait time=] or [bgmovie...] still making it async.
 

HK51

Member
Joined
Oct 31, 2019
Messages
32
Reputation score
50
@Hoshi , yeah, the movie can and may lag in game built-in video player and there is no way to know when and where - the only failsafe option is to hardsub, as you told from the start.

To fix disappeared clickable area that skips the movie:
Code:
...
[eval exp="f.boy_name_known = 0"]

; initial setup:
[cm] <------------------------ remove this
[ct] <------------------------ remove this
[clearfix]
;
; show message box:
[layopt layer="message0" visible="true"]
...
Code:
...
; clickable should be modified with -> storage="op.ks" <- since we call it from scenario of _sub.ks
[locate x=0 y=0]
[clickable width=1280 height=720 storage="op.ks" target="*skip_intro"]
...
 
Last edited:

Lubuluk

New member
Joined
Oct 26, 2019
Messages
3
Reputation score
0
4. This section is not for game discussion. Use the corresponding H-Games section thread for game discussion.
CAN SOMONE PLS SHARE A FULL SAVE ?!
 

trkmnr

New member
Joined
Oct 19, 2019
Messages
8
Reputation score
7
4. This section is not for game discussion. Use the corresponding H-Games section thread for game discussion.
How do I even progress at this game?
I've played through like 120 days and I'm still literally at 0 progress apart from the wet dreams and the occasional panty flashes. I have no idea what I'm doing wrong. I have a fuckton of money, and have triggered pretty much every meeting event at every location 2-3 times already. I still get rejected by all three of them any time I try to invite them on a date. Can someone point me in the right direction?
 
Status
Not open for further replies.
Top