Author Topic: General Discussion  (Read 3821677 times)

0 Members and 35 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4605 on: April 20, 2015, 02:11:48 AM »
Gismo, I have a simple idea. Pytfall letters should burn. Like here, but better  :)

Logo options are quite good as they are now btw. There are examples without the Disney-like castle thingy.

What do you mean?

I mean do not change status of unique girls from outside of the JSON files. I wasted an hour thinking there was a bug in my new code somewhere and girls were randomly overwritten for slavetraining.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4606 on: April 20, 2015, 02:21:36 AM »
In schools we use lines like "imageTags": ["beauty"] to show tagged images. However, now beauty tag = pd. Should I change tags to "imageTags": ["pd"] ?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4607 on: April 20, 2015, 02:33:30 AM »
We also have some old basic logic when girl agrees or refuses to take a certain course depending on her occupation. I suppose it should be deleted now? Because there could be dozens of class traits instead.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4608 on: April 20, 2015, 03:04:52 AM »
You are supposed to use ingame tags, not the once from filenames. That does not look like an ingame tag.

Once new class-traits/occupation system is ready, we'll ask Thewlis to update schools.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4609 on: April 20, 2015, 03:37:08 AM »
For some similar courses it makes sense to use the same image. It is possible with Thewlis system when you just set one image, but not with yours when course name = folder name. So either we use one picture everywhere like Thewlis wanted, or you raise your ass and recode your part of schools after all  :)

I'm perfectly fine with 1 picture per course though.
 
« Last Edit: April 20, 2015, 03:57:42 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4610 on: April 20, 2015, 05:33:29 AM »
I doubt that there is still "my part of schools" left. I must have told that to you a dozen times by now and it shouldn't be too hard to use a specific image if specified and fall back to rnc from a folder if there isn't one.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4611 on: April 20, 2015, 06:03:48 AM »
Yeah-yeah. I guess Thewlis just forgot to mention in his well commented example this little "school name = folder name" thing which he coded by himself without a doubt.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4612 on: April 20, 2015, 06:20:31 AM »
You are supposed to use ingame tags, not the once from filenames.
So I should use these strings instead?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4613 on: April 20, 2015, 06:26:40 AM »
Yeah-yeah. I guess Thewlis just forgot to mention in his well commented example this little "school name = folder name" thing which he coded by himself without a doubt.

So he did, you want to sue him or something?

This is the part that is responsible for the image loading I think:

Code: [Select]
        def get_lesson_image(self):
            """
            Returns an image for the lesson.
            """
            if self.image is not None: return self.image
            else:
                images = list()
                if self.type in os.listdir(content_path("schools")):
                    for file in os.listdir(content_path("schools/%s"%self.type)):
                        images.append("schools/%s/%s"%(self.type, file))
               
                if len(images) > 0: self.image = choice(images)
                else: self.image = "gfx/interface/images/no_image.png"
               
                return self.image

It already works like I suggested:

1) It checks is there is a single image assigned to schools.
2) If not found, it will try to find a folder with the name of a lesson and select a random pic from there.
3) If that fails as well, it will use a no image found picture as last resort.

==
*So I think you an add "image": "path/image.jpg" to json and it will overwrite the folder or you can create a folder with just one image in it.
**This was definitely not coded by me and I created original schools before Matt joined the team and told us about JSON and how it is more convenient to structure data for Python than XML we were using.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4614 on: April 20, 2015, 06:31:35 AM »
So I should use these strings instead?

Yeap, this is generated from the game directly (so there are no errors, but I think that dict from your quote was generated in the same way):

Quote
init python:
    tags_dict = {
    # Main Tags:
    'nn': 'sfw',
    'nd': 'nude', # Nude Main Tag (Used to be subtag)
    'nn': 'naturalnude',
    'sx': 'sex',
    'bs': 'battle_sprite',
    'po': 'portrait',
    'qs': 'vnsprite', # Used to be quest
   
    # Nude/SFW Subtags:
    'pr': 'profile',
    'pa': 'girlmeets',
    'pb': 'battle',
    'pc': 'rest',
    'pd': 'beauty',   
    'pf': 'etiquette',
   
    # Locations:
    'l1': 'no bg',
    'l2': 'simple bg',
    'l3': 'outdoors',
    'l4': 'indoors',
    'l5': 'beach',
    'l6': 'onsen',
    'l7': 'pool',
    'l8': 'stage',
    'l9': 'urban',
    'la': 'wildness',
    'lb': 'suburb',
    'lc': 'nature',
    'ld': 'dungeon',
    'le': 'living',
    'lf': 'public',
   
    # Emotions:
    'e1': 'angry',
    'e2': 'confident',
    'e3': 'defiant',
    'e4': 'ecstatic',
    'e5': 'happy',
    'e7': 'in pain',
    'e6': 'indifferent',
    'e9': 'sad',
    'e8': 'insane',   
    'ea': 'scared',
    'ec': 'suggestive',
    'eb': 'shy',
    'ed': 'tired',
    'ee': 'uncertain',
   
    # Clothes:
    'c9': 'lingerie',
    'c8': 'no clothes',
    'c3': 'indoor',
    'c2': 'formal',
    'c1': 'everyday',
    'c7': 'transformed',
    'c6': 'cosplay',
    'c5': 'ripped',
    'c4': 'revealing',
    'ca': 'armor',
    'ck': 'cow',
    'cj': 'cat',
    'ci': 'bunny',
    'ch': 'yukata',
    'cm': 'ninja',
    'cl': 'dog',
    'cc': 'maid',
    'cb': 'swimsuit',
    'cg': 'sportswear',
    'cf': 'schoolgirl',
    'ce': 'nurse',
    'cd': 'miko',
   
    # Actions:
    'a1': 'stripping',
    'a3': 'cleaning',
    'a2': 'bathing',
    'a5': 'dancing',
    'a4': 'cooking',
    'a7': 'exercising',
    'a6': 'eating',
    'a9': 'gambling',
    'a8': 'fighting',
    'aa': 'healing',
    'ac': 'musician',
    'ab': 'magic',
    'ae': 'sleeping',
    'ad': 'reading',
    'ag': 'singing',
    'af': 'shopping',
    'ai': 'studying',
    'ah': 'sport',
    'aj': 'waitress',
   
    # Sex Actions:
    # Masturbation:
    'ma': 'masturbation',
    'm5': 'hand',
    'm4': 'othertoy',
    'm7': 'titsvibrator',
    'm2': 'analplug',
    'm1': 'analbeads',
    'm3': 'dildo',
    'm6': 'vibrator',
    'm8': 'forced',
   
    # Cumcovered:
    'cu': 'after sex',
   
    # Group:
    'gr': 'group',
    'gg': 'ass',
    'gf': 'group restrained',
    'ge': 'group rape',
    'gd': 'othersmast',
    'gc': 'notmain',
    'gb': 'bukkake',
    'ga': 'girlhidden',
    'gl': 'tits',
    'gk': 'feet',
    'gj': 'hands',
    'gi': 'mouth',
    'gh': 'pussy',
    'g7': 'threegirls',
    'g6': 'twogirls',
    'g5': 'onegirl',
    'g4': 'moreguys',
    'g3': 'threeguys',
    'g2': 'twoguys',
    'g1': 'oneguy',
    'g9': 'guyhidden',
    'g8': 'moregirls',
   
    # BDSM:
    'bc': 'cumcovered',
    'bd': 'bdsm',
    'b4': 'suspended',
    'b5': 'whipped',
    'b6': 'tortured',
    'b7': 'alone',
    'b1': 'leashed',
    'b2': 'bdsm restrained',
    'b3': 'spanked',
    'b8': 'girl',
    'b9': 'hiddengirl',
    'be': 'dominatrix',
    'ba': 'guy',
    'bb': 'hiddenguy',
   
    # "Normal" Sex:
    'ns': 'normalsex',
    'p2': 'straight',
    'p3': 'partnerhidden',
    'p1': 'gay', # Former "les"
   
    # poses:
    's9': 'standing',
    's8': 'spooning',
    's3': 'missionary',
    's2': 'doggy',
    's1': '69',
    's6': 'scissors',
    's5': 'ontop',
    's4': 'onside',
    's7': 'sitting',
    'sb': 'restrained',
    'sa': 'rape',
   
    # Sex to character: (startswith 2c *To Character of the image)
    'sl': '2c hug',
    'sc': '2c analfingering',
    'se': '2c lickanus',
    'sg': '2c analtoy',
    'sf': '2c lickpussy',
    'sh': '2c vaginaltoy',
    'si': '2c anal',
    'sj': '2c vaginal',
    'sk': '2c kiss',
    'sm': '2c caresstits',
    'sd': '2c vaginalfingering',
   
    # Sex done by character: (startswith bc *To Character of the image)
    'sz': 'bc vaginalfootjob',
    'sy': 'bc analfootjob',
    'ss': 'bc hug',
    'sr': 'bc handjob',
    'sp': 'bc footjob',
    'sw': 'bc vaginalhandjob',
    'sv': 'bc analhandjob',
    'su': 'bc titsjob',
    'st': 'bc kiss',
    'so': 'bc deepthroat',
    'sn': 'bc blowjob',
    't6': 'bc toypussy',
    't7': 'bc caresstits',
    't4': 'bc vaginal',
    't5': 'bc toyanal',
    't2': 'bc lickpussy',
    't3': 'bc anal',
    't1': 'bc lickanus',

    # Time/Season:
    'z1': 'evening',
    'z4': 'winter',
    'z2': 'night',
    'z3': 'autumn'
    }


***Correct Link:
http://www.pinkpetal.org/index.php?topic=3510.msg31356#msg31356

You've quoted old dict.
« Last Edit: April 20, 2015, 06:35:09 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4615 on: April 20, 2015, 06:38:11 AM »
1) It checks is there is a single image assigned to schools.
2) If not found, it will try to find a folder with the name of a lesson and select a random pic from there.
3) If that fails as well, it will use a no image found picture as last resort.
It makes no sense. You cannot freely set a folder for random pics, like XXX folder for any sex courses. It must be XXX course only.  That's why I suspect it was made only to provide backward compatibility with old system.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4616 on: April 20, 2015, 06:50:03 AM »
It makes no sense. You cannot freely set a folder for random pics, like XXX folder for any sex courses. It must be XXX course only.  That's why I suspect it was made only to provide backward compatibility with old system.

I expect that it was, it would not be hard to add a

"random_images": [1, 2, n...]
or
"folder": "path"

to it if needs be.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4617 on: April 20, 2015, 06:52:15 AM »
Hm. How can I set image tags like "confident"+"SFW" for schools? Or you can't do it in json without moar coding?

We used fields like "imageTags": ["maid", "cleaning", "cooking", "bunny", "waitress"]. I suspect it means any of these tags, even with nudity.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #4618 on: April 20, 2015, 07:00:42 AM »
Hm. How can I set image tags like "confident"+"SFW" for schools? Or you can't do it in json without moar coding?

We used fields like "imageTags": ["maid", "cleaning", "cooking", "bunny", "waitress"]. I suspect it means any of these tags, even with nudity.

I believe (looks like it should work according to code) that you can add:

Code: [Select]
"noImageTags": ["sex"] to exclude tags you do not want.
and
Code: [Select]
"imageMode": "normal" for lookup mode, options are:

Code: [Select]
                types:
                     - normal = normal search behavior, try all tags first, then first tag + one of each tags taken from the end of taglist
                     - any = will try to find an image with any of the tags chosen at random
                     - first_default = will use first tag as a default instead of a profile and only than switch to profile

Basically mode should be any if you want for the course to randomly pick one option from the list or "normal" if you want to look for an image with all tags you provided, and than try first tag (considered to be most important) + one of other tags (which is default behavior always).
« Last Edit: April 20, 2015, 07:05:42 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #4619 on: April 20, 2015, 10:19:11 AM »
Xela, there is school_pyt in you db. It's alpha of new schools that refuses to work, most likely because I used fields for images tags as you advised.
Since Thewlis never mentioned them, I figured tags are your part after all.
« Last Edit: April 20, 2015, 10:21:03 AM by DarkTl »