News:

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

Former www.henthighschool.com

Stupid questions thread

Started by ElPresidenete, Sep 04, 2023, 07:42 AM

Previous topic - Next topic

ElPresideneteTopic starter

Silly question - I'm trying to filter/split my list into a list of students and adults.... not sure how.

I've seen one script do it by filtering jobs and using Student as a string input/variable, I've also seen ListFilter: Persons List used, but I 'm not 100% sure how that one works... If I understand this correctly, ALL persons matching the filters will be placed in the Per1 linked object... and if I add more persons in the fliter, then it will be filtered further into Per2?

Anyway, best way to do this filter? This is what I?m doing ATM:




https://ibb.co/m5SmZDt





shpungout

#1
If you double click on the block "List Filter: Person List", you can select the filter settings. Moreover, you can make several output sets at once (for example, Per1 - male, Per2 - female, Per3 - futa).

Separating students from adults is easier, probably, by the trait "Student" (operation "List Filter: Trait").
Translated into English by Google.

ElPresideneteTopic starter

Quote from: shpungout on Sep 04, 2023, 04:43 PMIf you double click on the block "List Filter: Person List", you can select the filter settings. Moreover, you can make several output sets at once (for example, Per1 - male, Per2 - female, Per3 - futa).

Separating students from adults is easier, probably, by the trait "Student" (operation "List Filter: Trait").

Figured that one out.

Gettin adults is harder. ATM I am using age of 20+ as a filter.
Can I filter by NOT having a Student job?

I know students can be split into their own list, removing them from the pool, but I kinda want the option to go back and change search parmeters. I can think of a few ways around that tough. Have to add more filters.

TBBle

#3
The "Student" trait (not job) is how FunctionLibrary\Person\IsStudent checks, so I'd suggest using that trait to stay consistent, in case other things change in the future.

It's a boolean check, so if they don't have the trait, they're an Adult. So List: Filter Trait will split students into the All output, and adults into the No output.

From your original screenshot, you could use Get Person List set to AllStudents rather than getting the entire population and filtering it, but I don't see an equivalent for "All adults", so you'd still need to get the list for AllCharacters and use List: Filter Trait against Student to get your list of every adult in the game.

If you want more complex filters than just List Filter: Trait, have a look at how FunctionLibrary\GeneralEvents\GetCandidates filters at the start using List Filter: Person List. In particular, you can see "Filter to non-students" which has Person 1 filtering for the Student trait with minimum 0, into a list that's never used, and then Person 2 accepts anything with minimum 1, and hence gets the remaining persons, i.e. the adults. It's a shame List Filter: Person can't explicitly filter for !Student trait or something. (In this event, those three List Filter: Person uses could all be replaced with List Filter: Trait, so I suspect they predate the latter's introduction. It's just a handy case that demonstrates multi-stage multi-criteria filtering in a single VEE node.)

ElPresideneteTopic starter

#4
If I set FilterList: Person list
Input is AllPersonsList
Person 1 is all checked, but also student
Person 2 is all checked.

If I understand right, output Per1 will make a list of all students and what left will go to output Per2, correct? I should be able to split the list like that.


EDIT: Tried your approach too. This?


TBBle

#5
Yeah, both versions look to me like they should work. I would go with the first one since you have a decision in the middle, and List Filter: Person is the hardest filter to inspect and reason about, as it's the most-generic.

If the decision point wasn't there, I'd probably do one filter call into six buckets: Student+Male, Student+Female, Student (should only see futa students now), Male, Female, All (again only futas left).

Note, I haven't tested these, it was just from looking at existing examples which do this.

Is it not working for you?

Also, I'd suggest preferring a String Constant rather than a String as the Trait(s) input for List Filter: Traits, just for future readers.

ElPresideneteTopic starter

Seems my 3rd approach works flawlessly :9
Also ya, should change to constant

ElPresideneteTopic starter

What do you do when you accidently moved a block or variable outside of the actual visible area in VEE?

I can't delete it, select it or move it

ElPresideneteTopic starter

another question, amd I dong this right (to add something to the hypno options):


Do I have ot keep the same file name? (10_GiveOrderMain.ve)


ElPresideneteTopic starter

Hm...how would I go around finding mother-daughter pairs on a location? Seems to convoluted and that making special characters is the way to go.

Or perhaps, can I ensure only mother-daughter pairs visit a location at a certain time?

TBBle

#10
Off hand, you could List Filter: Trait people in the current location with the Parent trait (and any other criteria you want, then for each person, Get Children of Person and use Object List Intersection against the people in the current location (or some subset thereof) to find any present children, and if that's non-empty, you have a match.

However, that might prefer alphabetically-first pairs (I'm not sure) so you may want to accumulate all matches, and pick one at random.

Controlling movement is harder. If it's a public location, schedule handlers will happily use it. I'm not sure off-hand how other movement works, but I suspect that apart from homes and the school, NPCs are assumed to be able to wander wherever.

ElPresideneteTopic starter

Check this:
https://ufile.io/2ypoagdj


This is an event for finding several parents and their kids and putting them in the gym over the weekend. Can someone look it over. Is this fine?

ElPresideneteTopic starter

So I was thinking of using a random person for a part of a quest chain instead of a pre-made character, but the issue is how to pass that person to the next event? Only a global string variable comes to mind. Any other ways, or do I just make a character?

TBBle

If they're going to be around for the quest chain for multiple stages and get involved, I'd make a character to avoid surprises. Particularly if the player needs to interact with them, they will need to be easily and repeatably identifiable, both in-game, and for when people ask quest questions in the forums. ^_^

If you just need them for a step or two, there's an example you can look at in the Carmen Smith quest where two "Gossip girls" are chosen, marked HasQuest, used in the event, and then used again and de-HasQuest'd in the next stage (a few weeks later). It uses save-persistent string variables to the names, and looks up the Person object each time. As I recall, the first event is their Rooftop meeting, and the second event is something related to "rumours" in Downtime; I don't have the exact event names/paths at hand, but they're both location-based events.

ElPresideneteTopic starter

Ok, so I did a few things but want ot check what is planned so I don't mess with future plans.

A small mini-mod that does the following:
- adds swimming on beach
- after buying school basement for Keller, visiting the basement starts bringing in some cash (Keller must still be hired)
- on weekends (evening/nights) if you visit the school basement you will find Keller dominating a random NPC that has a matching fetish (masochist, bondange, etc..)

Was thinking of adding some events for visits.