News:

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

Former www.henthighschool.com

Kenshuck's Mods Revival

Started by kenshuck, Sep 26, 2022, 05:41 PM

Previous topic - Next topic

Wich are the best/more accurate  stat checks?

Normal Student: 0-25 corruption; 75-100 inhibition / Med corruption student: 25-50 corruption; 50-75 inhibition /High corruption student: 50-100 corruption; 0-50 inhibition  (Current check)
Normal Student: 0-35 corruption; 65-100 inhibition / Med corruption student: 35-70 corruption; 30-65 inhibition / High corruption student: 60-100 corruption; 0-40 inhibition
Other (please comment wich ranks of stats)

kenshuckTopic starter

So I resently came back from the dead  8) , and found out about the new forum and game version, so I'm going to start updating my old mods (yay! the mediafire carpet didn't die with me  ;D ).

First of all thanks to Fen_Going_To_School for updating most of my mods to 10.0.1, here is the link to his post

Fixed those events (broken locations, broken operations,etc) and compressed the images (it went down from almost 300mb to 50). I'm in the process of uploading them individually, for anyone that don't want all of them.
Event Compilation Download link

So, let's get to work, here is a list of my current mods updated to 10.3.2
* School Assembly:

Since I'm apparently a masochist and like to f**k with my mental health I started with this one:
It gives you the chance to run an assembly the last friday of every month,IT'S STILL PRETTY MUCH A WIP, AND PROBABLY WILL BREAK SAVES ON UPDATES!
Features:
A school rule to to decide if you held the assembly or not
The ability to give an speech to influence diferent school/students/staff stats
An student speech that gives a general idea of how well the school is going, or how far the corruption is.
A time check: 7:00 - 7:15 principal speech, 7:15 -30 Students speech
Spoiler
(you're a little late, minor loyalty penalty)
[close]
7:30 - XX
Spoiler
(you missed it!! mayor loyalty penalty)
[close]
A calendar note that tells you of the next assembly

TO-DO:
Spoiler
*Link pregnancy references when its added to the game (or do a patch to work with bartekke mod)
*Add some more school related events/parts (maybe a science fair?)
*Re-balance stats changes
*Add some pta/staff meetings triggers
*Add some more history based content
*Re check everything for the 10000 time  ::)
[close]

Changelog:

Spoiler
0.2 (07/10):
  • Changed the version name to better reflect the WIP status.
  • Updated to 10.3.2 game version
  • Modified the schedule metod to use the new cron expressions
  • Deleted the TriggerIntro, since it was un-necesary (was my own stupidity while testing, that bringed it up)
  • Moved the schedule and the calendar to a FunctionEvent
  • Fixed wrong color tag on intro event (thanks to shilo)
  • Some typos
  • Changed the way it sets the different speeches bools (basically added a check for a lower corruption student to do X speech if their lust is high enough)
  • Probably some other things I don't remeber (yeah, I need to start documenting everything)
0.1b (27/09):
Added a new trigger in your bedroom for SchoolAssemblyIntro (you just need to enter it anytime, should run only one and then kill itself), now hopefully it wont repeat itself after an update
Added a holiday check, now it shouldn't run on holidays
Fixed eventschedule, now should work as intended (tested on new game for 4 months and it scheduled the event to the last friday)
Fixed the respective rule, now it shouldn't show before the intro, and dissapear after it (That was a Mandinga work I tell you :P )

0 .1a(26/09):
First release
[close]

Download link

my mediafire carpet with all my mods

kenshuckTopic starter

my mediafire carpet with all my mods

fubalnut

Download link is set to private

kenshuckTopic starter

Quote from: fubalnut on Sep 27, 2022, 07:56 AMDownload link is set to private
Should be fixed now! Thanks for the warning :D
my mediafire carpet with all my mods

kenshuckTopic starter

I made a poll to see if I should change the students stats checks for the speechs, please make 1 vote in each category (normal, med and high)
These are used for:
Normal: no sex, secret masturbation/stripping, forced nudity/bondage, mind control sex
Med: low intensity sex, masturbation, reluctant stripping, reluctant nudity, semi-reluctant bondage
High: all the hardcore parts of the mod (gangbang, public humillitaion, nudity, bondage, basically all of the above, but fully embraced by the girl)
my mediafire carpet with all my mods

Shilo

#5
I am wondering what the use of the initial trigger event is.

It can run from the first day on and then simply schedules the follow-up event in your office (and disables the new rule, but it probably shouldn't be enabled in the first place at this point). As soon as that event has run, the first one can never run again. So what's the difference to just having the office event trigger immediately?

And in your assembly intro event, you basically have two execution branches based on whether Lydia Swan or Susan Hooter is working for you right now. But all the text is exactly the same, so there's actually no reason to duplicate it. You can just assign "P1" to be either Lydia Swan or Susan Hooter, depending on which of the two was chosen. There is no need to make one of them explicitly "P2".

During the student speech, you have a text where the teacher is first called "April Raymunds" and shortly thereafter in the same text "Beth".

But on a more positive note, the next release of the game happens to include a couple new and modified VEE operations to find follow-up datetime variables based on a given Cron expression, which can probably help you clean up your date logic a lot.
You could for example pass the operation a string like "30 7 * * 5L" and it would give you a Date variable that corresponds to "7:30 AM on the last Friday of the month". (The "last X of the month" is non-standard for Cron, but the library we are using includes it.)
And date variables (which also include time values) can also be used to schedule events now.

kenshuckTopic starter

#6
Quote from: Shilo on Sep 29, 2022, 03:59 PMI am wondering what the use of the initial trigger event is.

It can run from the first day on and then simply schedules the follow-up event in your office (and disables the new rule, but it probably shouldn't be enabled in the first place at this point). As soon as that event has run, the first one can never run again. So what's the difference to just having the office event trigger immediately?

That is 'cause I was having a problem when I re-loaded the events for testing, the intro triggered every-time (even if you already saw it) and the rule keep reaparing/disapearing before/after seeing the intro so I moved it to a trigger event. I'm thinking to just move it to an initial event, and then move the rule/scheedule part to just a chat option with Lydia/Susan (something like the pta scheedule), but in the mean-time I assigned the calendar/scheedule/trigger events to individual FunctionLibrary events, just to try and make it more easy and manageable for me to edit. Altough this breaks saves, if u already have scheeduled the assembly it wont run after reloading events, and if u had the mod but didn't see the intro it won't trigger, I don't know what the hell it's happening, im going to just put a New Game required warning when I upload the next version, and wait a little before trying to make this save-compatible between updates

QuoteAnd in your assembly intro event, you basically have two execution branches.

That part I actually didn't modify it, so i dont remember why its set like that, probably just stupidity or a problem when changing the names or the colors

QuoteDuring the student speech, you have a text where the teacher is first called "April Raymunds" and shortly thereafter in the same text "Beth".

Yeah, the speech part needs a lot of cleaning/correction, specially since I changed a lot of the variables without checking the texts (i.e.: that was probably set to run with just Beth)

QuoteBut on a more positive note, the next release of the game happens to include a couple new and modified VEE operations to find follow-up datetime variables based on a given Cron expression, which can probably help you clean up your date logic a lot.
You could for example pass the operation a string like "30 7 * * 5L" and it would give you a Date variable that corresponds to "7:30 AM on the last Friday of the month". (The "last X of the month" is non-standard for Cron, but the library we are using includes it.)
And date variables (which also include time values) can also be used to schedule events now.

That's great!!, that part was a real headeche, I actually made like 4 or 5 infinite loops accidentally, and then almost slammed the pc on the floor cause it didn't run  😂😂. Didn't think about using the date like that, good to know, should save some steps on calculating schedules for future events :D
my mediafire carpet with all my mods

barteke22

Regular Event Reload will keep scheduling, and try to grab data for existing variables marked as 'Survives Reload' by ID matching  (if in old Legacy mode, it'll try to guess what variables are important, but it might not be accurate).

So if the event is meant to keep such data, it should work fine on reload (keep specified variables & scheduling).

If everything about the event is meant to reset on reload (event must be designed to not break upon data loss), you can add @FullReload to its Edit > Event Properties > Description start.

For testing purposes you can either add @FullReload and remember to remove it later, or hold CTRL+Shift before clicking reload event (the button will change) to reset the events.

kenshuckTopic starter

#8
So, i'm stuck and this is giving me a fucking headache:
For some reason it's giving an error:
Spoiler
FunctionLibrary\SchoolAssembly\CalendarNotes [EXEC] caused an exception at operation SeqAct_SetCalendarNoteStatus (ID: 42).
    called by FunctionLibrary\SchoolAssembly\SchoolAssemblySchedule at SeqActLat_RemoteEvent (ID: 159)
    called by Location\School\Gym\SchoolAssemblyWIP at SeqActLat_RemoteEvent (ID: 1874)
Object reference not set to an instance of an object.
[close]
And if i'm understanding the report right, it means that the SetcalendarNoteStatus is linked to a note that  doesn't exist.... but it does...
Edit: thougth that it was cause I moved it to it's own special event, so tried to put the setstatus on the main event, but nop, it keeps giving that error.....

QuoteRegular Event Reload will keep scheduling, and try to grab data for existing variables marked as 'Survives Reload' by ID matching  (if in old Legacy mode, it'll try to guess what variables are important, but it might not be accurate).
I'm not sure I'm understanding it right, if it's marked as survives reload, it should keep the day scheedule right? or it will try to reeschedule with the valor I assigned (in this case, a result of a math operation) cause it isn't keeping it (if I change the scheeduleevent and reload the event doesn't fires  ???

Attaching the files just in case...
my mediafire carpet with all my mods

barteke22

I'm guessing you're trying to keep the note object for later?  Basically Object, Object List, Struct variables (if they contain either of those) should be considered dead the moment the event ends - because they're too complex to save for later.

So you want to save the noteID (mark it as Survives) and get the note from that instead.  All other variable types can survive saving and loading.  Additionally they can be marked as 'Survives Reload' to also attempt to keep their data when reloading events (debug).

Scheduling is a property, not a variable, so a separate thing from Survives Reload, it keeps its current value on reload by default.
- Unless the event is marked as @FullReload (designed to always fully reset when reloaded in debug).
- Or you Ctrl+Shift+Click the reload button instead (for testing) to fully reset the event.
- Or you can open the event in the debugger and change its scheduling there.

kenshuckTopic starter

#10
Quote from: barteke22 on Oct 01, 2022, 10:25 AMI'm guessing you're trying to keep the note object for later?  Basically Object, Object List, Struct variables (if they contain either of those) should be considered dead the moment the event ends - because they're too complex to save for later.

So you want to save the noteID (mark it as Survives) and get the note from that instead.  All other variable types can survive saving and loading.  Additionally they can be marked as 'Survives Reload' to also attempt to keep their data when reloading events (debug).

I'm just trying to set the note (in SetCalendarNote.ve) as done, but it gives that error, I didn't do any reload so it should work, right (tried to put the setstatus in the same event the note is created, and in the SchoolAssembly event)? or even in that case i should save the noteID? Edit: tried to mark it as survives, but the object and object list don't have that option ???

QuoteScheduling is a property, not a variable, so a separate thing from Survives Reload, it keeps its current value on reload by default.
- Unless the event is marked as @FullReload (designed to always fully reset when reloaded in debug).
- Or you Ctrl+Shift+Click the reload button instead (for testing) to fully reset the event.
- Or you can open the event in the debugger and change its scheduling there.

Yeah, so i don't know what the heck is happening, it doesn´t keep it, it's scheduled to run on 26march (in this case) and on reload it doesn't run (isn't marked as fullreload either). I don't know maybe i'm banging my head against the walll and it's just how i did the tryphase and the schedule?
Edit: added schedule and the try phase, maybe someone can discover whats happenning and give my head a hard bang so it starts working again 🤣🤣

🤦�♂️🤦�♂️Edit: temporary stupidity * 100000000 found the problem with the schedule, had a check to see if the day you enter the gym (i.e. the day you now it0s scheduled) its equal to the day the game knows its scheduled, and didn't put the survive on that date 🤦�♂️🤦�♂️🤦�♂️🤦�♂️, gonna put some ice on my face, my own facepalm hurts a lot, still can't figure what the problem is with the calendar
my mediafire carpet with all my mods

barteke22

#11
Ah, for the Ops, the NoteID is called Name. There's functions in the Smartphone category that provide a different system for CalendarNotes that call it NoteID.

But like I said, Object and Object List are dead after event execution (Object survives a bit longer than Object List, but consider it dead when the event ends), and therefore they can't survive reload either.

So you need to save the Name string (make it Survive so mod updates don't reset it), and use 'Get Calendar Note by Name' to get the note next time you run the event.

kenshuckTopic starter

Quote from: barteke22 on Oct 01, 2022, 10:26 PMAh, for the Ops, the NoteID is called Name. There's functions in the Smartphone category that provide a different system for CalendarNotes that call it NoteID.

But like I said, Object and Object List are dead after event execution (Object survives a bit longer than Object List, but consider it dead when the event ends), and therefore they can't survive reload either.

So you need to save the Name string (make it Survive so mod updates don't reset it), and use 'Get Calendar Note by Name' to get the note next time you run the event.
Lol, thanks, I didn't think of using that option (get note by name), but now that you say it,it makes a lot of sense :D
my mediafire carpet with all my mods

Shilo

I think the Assembly Intro path is broken when you only have Susan Hooter and not Lydia Swan. It will take the bottom path where the tags start with "P2_", but one of the texts there uses a "P1_" instead and then breaks the event because the text color is not being properly resolved.

[ERROR 2022-10-06 19:50:39 - (1)] Location\School\Principal Office\SchoolAssemblyIntro [EXEC] caused an exception at operation SeqActLat_ShowText (ID: 50). origin:hhs_.EventRunner
System.ArgumentException: Token is not valid. - '{P1_Color}' is not a valid color name! ---> System.FormatException: Token is not valid.
   at MS.Internal.Parsers.ParseColor(String color, IFormatProvider formatProvider, ITypeDescriptorContext context)
   at System.Windows.Media.ColorConverter.ConvertFromString(String value)
   at hhs_.EventTextBlockParser.GetColorFromString(String col) in D:\Torrents\DONE\dun\hhs-source\hhs+\_Modules\Util\EventTextBlockParser.cs:line 217
   --- End of inner exception stack trace ---
   at hhs_.EventTextBlockParser.GetColorFromString(String col) in D:\Torrents\DONE\dun\hhs-source\hhs+\_Modules\Util\EventTextBlockParser.cs:line 221
   at hhs_.EventTextBlockParser.ParsePage(IEnumerable`1 tokens) in D:\Torrents\DONE\dun\hhs-source\hhs+\_Modules\Util\EventTextBlockParser.cs:line 117
   at hhs_.EventTextBlockParser.<ParseText>d__6.MoveNext() in D:\Torrents\DONE\dun\hhs-source\hhs+\_Modules\Util\EventTextBlockParser.cs:line 77
   at hhs_.SeqActLat_ShowText.<ActivatedAsync>d__6.MoveNext() in D:\Torrents\DONE\dun\hhs-source\hhs+\_Editor\_EventModules\_EventActions\_EventActions_UI\_EventActions_UIControls\SeqActLat_ShowText.cs:line 61
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at hhs_.EventRunner.<ExecuteAsync>d__109.MoveNext() in D:\Torrents\DONE\dun\hhs-source\hhs+\_Editor\_EventModules\EventRunner.cs:line 1249

kenshuckTopic starter

#14
Quote from: Shilo on Oct 06, 2022, 05:57 PMI think the Assembly Intro path is broken when you only have Susan Hooter and not Lydia Swan. It will take the bottom path where the tags start with "P2_", but one of the texts there uses a "P1_" instead and then breaks the event because the text color is not being properly resolved.

Fixed! I always hire both of them so it completly scaped me, thanks!

And since im looking at it, and by accident now i understood this:
QuoteAnd in your assembly intro event, you basically have two execution branches based on whether Lydia Swan or Susan Hooter is working for you right now. But all the text is exactly the same, so there's actually no reason to duplicate it. You can just assign "P1" to be either Lydia Swan or Susan Hooter, depending on which of the two was chosen. There is no need to make one of them explicitly "P2".

Yeah, never tried to double click on replace text (person) so didn't know it could be linked to more than one person object.
Edit: nop, I still fail to see how i can do that  ???
my mediafire carpet with all my mods