# # Подпрограммы # Тестирование сцен label lb_test_scnes: $ print (len(var_dict['npces'])) call lb_test_scene1(var_dict['npces'][0]) from _call_lb_test_scene1 call lb_test_scene1(var_dict['npces'][1]) from _call_lb_test_scene1_1 call lb_test_scene1(var_dict['npces'][2]) from _call_lb_test_scene1_2 call lb_test_scene1(var_dict['npces'][3]) from _call_lb_test_scene1_3 call lb_test_scene1(var_dict['npces'][4]) from _call_lb_test_scene1_4 call lb_test_scene1(var_dict['npces'][5]) from _call_lb_test_scene1_5 call lb_test_scene1(var_dict['npces'][6]) from _call_lb_test_scene1_6 call lb_test_scene1(var_dict['npces'][7]) from _call_lb_test_scene1_7 call lb_test_scene1(var_dict['npces'][8]) from _call_lb_test_scene1_8 call lb_test_scene1(var_dict['npces'][9]) from _call_lb_test_scene1_9 call lb_test_scene1(var_dict['npces'][10]) from _call_lb_test_scene1_10 call lb_test_scene1(var_dict['npces'][11]) from _call_lb_test_scene1_11 call lb_test_scene1(var_dict['npces'][12]) from _call_lb_test_scene1_12 call lb_test_scene1(var_dict['npces'][13]) from _call_lb_test_scene1_13 call lb_test_scene1(var_dict['npces'][14]) from _call_lb_test_scene1_14 call lb_test_scene1(var_dict['npces'][15]) from _call_lb_test_scene1_15 call lb_test_scene1(var_dict['npces'][16]) from _call_lb_test_scene1_16 call lb_test_scene1(var_dict['npces'][17]) from _call_lb_test_scene1_17 call lb_test_scene1(var_dict['npces'][18]) from _call_lb_test_scene1_18 call lb_test_scene1(var_dict['npces'][19]) from _call_lb_test_scene1_19 call lb_test_scene1(var_dict['npces'][20]) from _call_lb_test_scene1_20 call lb_test_scene1(var_dict['npces'][21]) from _call_lb_test_scene1_21 call lb_test_scene1(var_dict['npces'][22]) from _call_lb_test_scene1_22 call lb_test_scene1(var_dict['npces'][23]) from _call_lb_test_scene1_23 call lb_test_scene1(var_dict['npces'][24]) from _call_lb_test_scene1_24 call lb_test_scene1(var_dict['npces'][25]) from _call_lb_test_scene1_25 # $ strip_set = def_return_set_NPC('Strip club', var_dict['npces'][14]) # $ var_dict['clothe_setting_in_scene'] = strip_set[1].images[1] # call lb_test_scene1(var_dict['npces'][14]) # $ strip_set = def_return_set_NPC('Strip club', var_dict['npces'][17]) # $ var_dict['clothe_setting_in_scene'] = strip_set[1].images[1] # call lb_test_scene1(var_dict['npces'][17]) # # $ var_dict['clothe_setting_in_scene'] = [] # $ npc = var_dict['npces'][4] # call lb_show_npc2(npc) from _call_lb_show_npc2_16 # '[npc.body.ID]' # call lb_test_scene1(var_dict['npces'][4]) from _call_lb_test_scene1 # $ npc = var_dict['npces'][5] # call lb_show_npc2(npc) from _call_lb_show_npc2_17 # '[npc.body.ID]' # call lb_test_scene1(var_dict['npces'][5]) from _call_lb_test_scene1_1 # # $ npc = var_dict['npces'][7] # call lb_show_npc2(npc) from _call_lb_show_npc2_18 # '[npc.body.ID]' # call lb_test_scene1(var_dict['npces'][7]) from _call_lb_test_scene1_2 # # $ npc = var_dict['npces'][15] # call lb_show_npc2(npc) from _call_lb_show_npc2_19 # '[npc.body.ID]' # call lb_test_scene1(var_dict['npces'][15]) from _call_lb_test_scene1_3 # # $ npc = var_dict['npces'][16] # call lb_show_npc2(npc) from _call_lb_show_npc2_20 # '[npc.body.ID]' # call lb_test_scene1(var_dict['npces'][16]) from _call_lb_test_scene1_4 hide screen show_scn return label lb_test_scene1(npc): call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=[], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.3) from _call_lb_images2 # call show_scene(npc, s_Show_4_2) # '[npc.name] - [s_Show_4_2.name]' # call show_scene(npc, s_Handjob_1) # '[npc.name] - [s_Handjob_1.name]' # call show_scene(npc, s_Handjob_2) # '[npc.name] - [s_Handjob_2.name]' # call show_scene(npc, s_Handjob_3) # '[npc.name] - [s_Handjob_3.name]' # call show_scene(npc, s_Lick_ear_1) # '[npc.name] - [s_Lick_ear_1.name]' # call show_scene(npc, s_Lick_ear_2) # '[npc.name] - [s_Lick_ear_2.name]' # call show_scene(npc, s_Lick_ear_3) # '[npc.name] - [s_Lick_ear_3.name]' # call show_scene(npc, s_Pole_strip_1) # '[npc.name] - [s_Pole_strip_1.name]' # call show_scene(npc, s_Pole_strip_1_topless) # '[npc.name] - [s_Pole_strip_1_topless.name]' # call show_scene(npc, s_Pole_strip_1_bare) # '[npc.name] - [s_Pole_strip_1_bare.name]' # call show_scene(npc, s_Pole_strip_1_nude) # '[npc.name] - [s_Pole_strip_1_nude.name]' # # call show_scene(npc, s_Pole_strip_2) # '[npc.name] - [s_Pole_strip_2.name]' # call show_scene(npc, s_Pole_strip_2_topless) # '[npc.name] - [s_Pole_strip_2_topless.name]' # call show_scene(npc, s_Pole_strip_2_bare) # '[npc.name] - [s_Pole_strip_2_bare.name]' # call show_scene(npc, s_Pole_strip_2_nude) # '[npc.name] - [s_Pole_strip_2_nude.name]' # # call show_scene(npc, s_Pole_strip_3) # '[npc.name] - [s_Pole_strip_3.name]' # call show_scene(npc, s_Pole_strip_3_topless) # '[npc.name] - [s_Pole_strip_3_topless.name]' # call show_scene(npc, s_Pole_strip_3_bare) # '[npc.name] - [s_Pole_strip_3_bare.name]' # call show_scene(npc, s_Pole_strip_3_nude) # '[npc.name] - [s_Pole_strip_3_nude.name]' # # call show_scene(npc, s_Pole_strip_4) # '[npc.name] - [s_Pole_strip_4.name]' # call show_scene(npc, s_Pole_strip_4_topless) # '[npc.name] - [s_Pole_strip_4_topless.name]' # call show_scene(npc, s_Pole_strip_4_bare) # '[npc.name] - [s_Pole_strip_4_bare.name]' # call show_scene(npc, s_Pole_strip_4_nude) # '[npc.name] - [s_Pole_strip_4_nude.name]' # call show_scene(npc, s_Pole_strip_4) # '[npc.name]' # call show_scene(npc, s_Pole_strip_4, 0.5, True) # '[npc.name]' # call show_scene(npc, s_Strip_2) # '[npc.name]' # call show_scene(npc, s_Strip_2_1) # '[npc.name]' # call show_scene(npc, s_Strip_2_2) # '[npc.name]' # call show_scene(npc, s_Strip_3) # '[npc.name]' # call show_scene(npc, s_Strip_4) # '[npc.name]' # call show_scene(npc, s_Strip_5) # '[npc.name]' # call show_scene(npc, s_Show_3) # '[npc.name]' # call show_scene(npc, s_Lap_dance_1_1) # '[npc.name]' # call show_scene(npc, s_Lap_dance_1_2) # '[npc.name]' # call show_scene(npc, s_Other_2) # '[npc.name]' # call show_scene(npc, s_Show_5) # '[npc.name]' # call show_scene(npc, s_Show_6) # '[npc.name]' # call show_scene(npc, s_Whip_5_red) # '[npc.name]' # call show_scene(npc, s_Whip_5) # '[npc.name]' # call show_scene(npc, s_Dance) # '[npc.name]' # call show_scene(npc, s_Beach_sunbathes) # '[npc.name]' # call show_scene(npc, s_Paw_man) # '[npc.name]' # call show_scene(npc, s_Beach_paw_breast) # '[npc.name]' # call show_scene(npc, s_Masturbation_5) # '[npc.name]' # call show_scene(npc, s_lesbo_kiss) # '[npc.name]' # call show_scene(npc, s_lesbo_lick) # '[npc.name]' # call show_scene(npc, s_lesbo_69) # '[npc.name]' # call show_scene(npc, s_threesome_handjob) # '[npc.name]' # call show_scene(npc, s_threesome_blowjob) # '[npc.name]' # call show_scene(npc, s_kiss_lake) # '[npc.name]' # call show_scene(npc, s_Hand_TV_watch) # call show_scene(npc, s_spank_yardstick_top) # pause 0.5 # call show_scene(npc, s_spank_yardstick_bottom) # pause 0.8 # call show_scene(npc, s_spank_yardstick_top) # pause 0.5 # call show_scene(npc, s_spank_yardstick_bottom) # 'spank_yardstick' # call show_scene(npc, s_Hand_sit) # call show_scene(npc, s_Missionary_new_top) # call show_scene(npc, s_Missionary_new_bottom) # call show_scene(npc, s_bar_scene) # call show_scene(npc, s_shame) # call show_scene(npc, s_Liza_cuni) # pause 1 # '1' # call show_scene(npc, s_Blowjob_1, mirror=True) # pause 1 # '2' call show_scene(npc, s_anal_fingering) from _call_show_scene_321 '[npc.name]' #call play_animation(npc, a_spank, 4) #call play_animation(npc, a_lap_dance_1, 4) #call play_animation(npc, a_lap_dance_2, 4) from _call_play_animation_53 #call play_animation(npc, a_Lick_ear, 3) #call play_animation(npc, a_Handjob_1, 3) # call play_animation(npc, a_spank_tit, 3) # call play_animation(npc, a_spank_tit_moan, 3) # call play_animation(npc, a_spank_tit_scream, 3) # call play_animation(npc, a_Masturbation_4_scream, 2) # call play_animation(npc, a_Masturbation_4_soft_moan, 2) # call play_animation(npc, a_Masturbation_4_moan, 2) # call play_animation(npc, a_Cunnilingus_1, 3) # call play_animation(npc, a_blowjob_tempo, 3) # call play_animation(npc, a_spank_scream, 3) # call play_animation(npc, a_whip_scream, 2) # call play_animation(npc, a_missionary, 2) # call play_animation(npc, a_doggy_two, 2) # call play_animation(npc, a_lesbo_69, 2) # call play_animation(npc, a_Dick_face, 3) # call play_animation(npc, a_threesome_cowgirl_tempo, 3) # '[npc.name]' # call play_animation(npc, a_Missionary_new, 3) # '[npc.name]' # call play_animation(npc, a_Missionary_new_tempo, 3) # '[npc.name]' # call play_animation(npc, a_whip, 1) # call play_animation(npc, a_blowjob_3, 3) return # Вывод sss диалогов label sss_dialogue(file, npc='', currentNode = "000"): $ checkFantasyStory = False if 'list_acts_node' not in locals(): $ list_acts_node = [] $ dict_sss = load_dictDict_from_file(file) # Цикл while currentNode: $ dictNode = dict_sss[currentNode] # Fantasy if dictNode["type"] == "fantasy": $ checkFantasyStory = True $ player_name = dictNode["fantasyPlayerName"] if player_name == "": $ player_name = "[GG.name]" $ name_char = dictNode["fantasyNPCName"] $ npc = '' else: if npc != '': $ name_char = npc.name # Animation if dictNode["type"] == "animation": hide screen show_in_senter with Dissolve(0.3) $ count_anim = int(dictNode["animation_iterations"]) # Цикл while count_anim > 0: # 0 - 1-я картинка call lb_images(img_1=[dictNode["img_1"]], dis=0.5) from _call_lb_images_35 # 1 - 1-ый звук $ adressMusic = dictNode["adressMusic_1"] if adressMusic in var_dict['sounds']: # Составные звуки if 'cs_' in adressMusic: call rnd_composite_sound(var_dict['sounds'][adressMusic]) from _call_rnd_composite_sound_14 else: # Случайные звуки call rnd_sound(var_dict['sounds'][adressMusic]) from _call_rnd_sound_174 else: if adressMusic != '': play sound adressMusic # 2 - 1-я пауза $ pause_a = float(dictNode["pause_1"]) pause pause_a # 3 - 2-я картинка call lb_images(img_1=[dictNode["img_2"]], dis=0.5) from _call_lb_images_36 # 4 - 3-ый звук $ adressMusic = dictNode["adressMusic_2"] if adressMusic in var_dict['sounds']: # Составные звуки if 'cs_' in adressMusic: call rnd_composite_sound(var_dict['sounds'][adressMusic]) from _call_rnd_composite_sound_15 else: # Случайные звуки call rnd_sound(var_dict['sounds'][adressMusic]) from _call_rnd_sound_175 else: play sound adressMusic # 5 - 2-я пауза $ pause_a = float(dictNode["pause_2"]) pause pause_a $ count_anim -= 1 # image if dictNode["type"] == "image": hide screen show_in_senter with Dissolve(0.3) $ loc_x='none' $ npc_x=npc $ loc_blur_x=0 $ img_1_x=[] $ npc_show_x=0 $ ava_x=0 $ img_2_x=[] if isinstance(npc, unicode): $ emotion_x = "_norm" else: $ emotion_x=copy.copy(npc.emotion) $ decals_x=[] $ scr_x=0 $ dis_x=0.3 if dictNode["location"] == "0": $ loc_x='curr' $ loc_blur_x = 1 else: $ loc_blur_x = 0 if dictNode["img_1"] != "Image 1": $ img_1_x = [dictNode["img_1"]] if dictNode["npc_show"] == "True": $ npc_show_x = 1 if dictNode["emotion"] == "0": if isinstance(npc, unicode): pass else: $ emotion_x = copy.copy(npc.emotion) elif dictNode["emotion"] == "1": $ emotion_x = "_norm" elif dictNode["emotion"] == "2": $ emotion_x = "_angry" elif dictNode["emotion"] == "3": $ emotion_x = "_smile" elif dictNode["emotion"] == "4": $ emotion_x = "_sad" if dictNode["decals"] == "0": $ decals_x = [] elif dictNode["decals"] == "1": $ decals_x = ["blush"] elif dictNode["decals"] == "2": $ decals_x = ["cry"] elif dictNode["decals"] == "3": $ decals_x = ["cum_face"] elif dictNode["decals"] == "4": $ decals_x = ["tears"] elif dictNode["decals"] == "5": $ decals_x = ["cum_mouth"] elif dictNode["decals"] == "6": $ decals_x = ["cum_hips"] if dictNode["img_2"] != "Image 2": $ img_2_x = [dictNode["img_2"]] if dictNode["ava_show"] == "True": $ ava_x = 1 $ scr_x = 1 $ loc_x='none' $ loc_blur_x=0 $ img_1_x=[] $ npc_show_x=0 $ img_2_x=[] $ dis_x = float(dictNode["dis"]) call lb_images2(loc=loc_x, npc=npc_x, loc_blur=loc_blur_x, img_1=img_1_x, npc_show=npc_show_x, ava=ava_x, img_2=img_2_x, emotion=emotion_x, decals=decals_x, scr=scr_x, dis=dis_x) from _call_lb_images2_1 if isinstance(npc, unicode): pass else: $ npc.emotion = copy.copy(emotion_x) # speech if dictNode["type"] == "speech": $ txt = dictNode["text"] $ txt = txt.replace('[GG.name]', GG.name) if npc != '': $ txt = txt.replace('[npc.name]', npc.name) # Переменные $ txt = variables_in_text(txt) # Персонаж if dictNode["character"] == "0": if (checkFantasyStory): char_player "[txt]" else: char_GG "[txt]" elif dictNode["character"] == "1": char_npc "[txt]" elif dictNode["character"] == "2": talker "[txt]" # # hide (скрытие картинки) # if dictNode["type"] == "hide": # # Время на анимацию # $ time_animation = 0.3 # if dictNode["animationTime"] != "": # $ time_animation = float(dictNode["animationTime"]) # # Первая картинка # if dictNode["screen1"] == "True": # hide screen show_image_1 # with Dissolve(time_animation) # # Вторая картинка # if dictNode["screen2"] == "True": # hide screen show_image_2 # with Dissolve(time_animation) # # Третья картинка # if dictNode["screen3"] == "True": # hide screen show_image_3 # with Dissolve(time_animation) # music if dictNode["type"] == "music": $ adressMusic = dictNode["adressMusic"] if adressMusic == "": if dictNode["audioSourse"] == "0": stop music if dictNode["audioSourse"] == "1": stop music2 if dictNode["audioSourse"] == "2": stop sound if dictNode["audioSourse"] == "3": stop sound2 else: if dictNode["audioSourse"] == "0": play music adressMusic if dictNode["audioSourse"] == "1": play music2 adressMusic if dictNode["audioSourse"] == "2": if adressMusic in var_dict['sounds']: # Составные звуки if 'cs_' in adressMusic: call rnd_composite_sound(var_dict['sounds'][adressMusic]) from _call_rnd_composite_sound_16 else: # Случайные звуки call rnd_sound(var_dict['sounds'][adressMusic]) from _call_rnd_sound_176 else: play sound adressMusic if dictNode["audioSourse"] == "3": if adressMusic in var_dict['sounds']: # Составные звуки if 'cs_' in adressMusic: call rnd_composite_sound(var_dict['sounds'][adressMusic]) from _call_rnd_composite_sound_17 else: # Случайные звуки call rnd_sound(var_dict['sounds'][adressMusic]) from _call_rnd_sound_177 else: play sound2 adressMusic # pause if dictNode["type"] == "pause": if dictNode["pause"] != "": $ time_pause = float(dictNode["pause"]) pause time_pause # Action if dictNode["type"] == "action": # Обнажение NPC if dictNode["action"] == "0": $ npc.clothes = ['Nude'] # Закрыть экран с изображениями if dictNode["action"] == "1": hide screen show_image_fix_size with Dissolve(0.5) # Приближение NPC if dictNode["action"] == "2": $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size hide screen show_scn with Dissolve(1.0) # Остановка музыки if dictNode["action"] == "3": stop music fadeout 1.0 # Остановка музыки 2 if dictNode["action"] == "4": stop music2 fadeout 1.0 # Женский оргазм if dictNode["action"] == "5": call female_orgasm from _call_female_orgasm_13 # Мужской оргазм if dictNode["action"] == "6": call male_orgasm from _call_male_orgasm_16 # Поцелуй if dictNode["action"] == "7": $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size hide screen show_scn with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_178 # Ниже if dictNode["action"] == "8": $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) show screen show_image_in_position_2(img_list=[[img_loc, 0, 0], [img_npc, 585, 500]]) hide screen show_image_fix_size with Dissolve(1.0) # Удалить декали if dictNode["action"] == "9": $ def_reset_periodic_decals() # if dictNode["action"] == "10": pass # Раздевание принуждение if dictNode["action"] == "11": char_GG '- Undress!{p=0} I ordered.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_6 call lb_show_npc(npc) from _call_lb_show_npc_13 $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] char_GG "- Take off your [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.0) from _call_lb_images2_2 $ count -= 1 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_7 # Раздевание NPC if dictNode["action"] == "12": $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "[npc.name] takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) hide screen show_image_fix_size call lb_show_npc(npc, 1.5) from _call_lb_show_npc_14 $ count -= 1 # Пощёчина игроку if dictNode["action"] == "13": call slap_NPC from _call_slap_NPC_1 # if dictNode["action"] == "14": pass # Шлепок по попке if dictNode["action"] == "15": call lb_spank(npc) from _call_lb_spank # Локация if dictNode["action"] == "16": $ var_dict['location'] = eval(dictNode["input"]) # Call if dictNode["action"] == "17": $ renpy.call(dictNode["input"], npc=npc) # Погладить по голове if dictNode["action"] == "18": call touching_act(npc, 'pat on the head', emo='none') from _call_touching_act_24 # Положить руку на плечо if dictNode["action"] == "19": call touching_act(npc, 'put a hand on the shoulder', emo='none') from _call_touching_act_25 # Положить руку на талию if dictNode["action"] == "20": call touching_act(npc, 'put a hand on the waist', emo='none') from _call_touching_act_26 # Лапать бедро if dictNode["action"] == "21": call touching_act(npc, 'paw thigh', emo='none') from _call_touching_act_27 # Лапать зад if dictNode["action"] == "22": call touching_act(npc, 'paw butt', emo='none') from _call_touching_act_28 # Лапать грудь if dictNode["action"] == "23": call touching_act(npc, 'paw breast', emo='none') from _call_touching_act_29 # Засунуть палец в рот if dictNode["action"] == "24": call touching_act(npc, 'put a finger in the mouth', emo='none') from _call_touching_act_30 # Гладить щёку, трогать губы if dictNode["action"] == "25": call touching_act(npc, 'stroke cheek, touch lips', emo='none') from _call_touching_act_31 # Рука на щеке if dictNode["action"] == "26": call touching_act(npc, 'hand on the cheek', emo='none') from _call_touching_act_32 # # actInAct # if dictNode["type"] == "actInAct": # $ list_acts_node.append([adress_script, dictNode["Out 1"].replace("\n\r", "")]) # call playScript(dictNode["adressAct"]) from _call_playScript_1 # $ currentNode = False # # # variable # if dictNode["type"] == "variable": # $ key_1 = dictNode["variable_1"] # $ old_value = dict_Variables[key_1]["value"] # $ new_value = dictNode["value"] # $ key_2 = dictNode["variable_2"] # # Другая переменная # if new_value == "": # if key_2 in dict_Variables: # $ new_value = dict_Variables[key_2]["value"] # else: # $ new_value = "1" # # Операции # if "operation" not in dictNode: # $ dict_Variables[key_1]["value"] = new_value # elif dictNode["operation"] == "0": # $ dict_Variables[key_1]["value"] = new_value # elif dictNode["operation"] == "1": # $ dict_Variables[key_1]["value"] = str(int(old_value) + int(new_value)) # elif dictNode["operation"] == "2": # $ dict_Variables[key_1]["value"] = str(int(old_value) - int(new_value)) # elif dictNode["operation"] == "3": # $ dict_Variables[key_1]["value"] = str(int(old_value) * int(new_value)) # elif dictNode["operation"] == "4": # $ dict_Variables[key_1]["value"] = str(int(old_value) / int(new_value)) # elif dictNode["operation"] == "5": # $ dict_Variables[key_1]["value"] = str(randrange(int(new_value))) # Следующая нода $ currentNode = dictNode["Out 1"].replace("\n\r", "") # choose if dictNode["type"] == "choose": $ count_choice = 1 $ dictNode["Out 1 text"] = dictNode["Out 1 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 1 text"] = dictNode["Out 1 text"].replace('[npc.name]', npc.name) if "Out 2" in dictNode: $ count_choice = 2 $ dictNode["Out 2 text"] = dictNode["Out 2 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 2 text"] = dictNode["Out 2 text"].replace('[npc.name]', npc.name) if "Out 3" in dictNode: $ count_choice = 3 $ dictNode["Out 3 text"] = dictNode["Out 3 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 3 text"] = dictNode["Out 3 text"].replace('[npc.name]', npc.name) if "Out 4" in dictNode: $ count_choice = 4 $ dictNode["Out 4 text"] = dictNode["Out 4 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 4 text"] = dictNode["Out 4 text"].replace('[npc.name]', npc.name) if "Out 5" in dictNode: $ count_choice = 5 $ dictNode["Out 5 text"] = dictNode["Out 5 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 5 text"] = dictNode["Out 5 text"].replace('[npc.name]', npc.name) if "Out 6" in dictNode: $ count_choice = 6 $ dictNode["Out 6 text"] = dictNode["Out 6 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 6 text"] = dictNode["Out 6 text"].replace('[npc.name]', npc.name) if "Out 7" in dictNode: $ count_choice = 7 $ dictNode["Out 7 text"] = dictNode["Out 7 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 7 text"] = dictNode["Out 7 text"].replace('[npc.name]', npc.name) if "Out 8" in dictNode: $ count_choice = 8 $ dictNode["Out 8 text"] = dictNode["Out 8 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 8 text"] = dictNode["Out 8 text"].replace('[npc.name]', npc.name) if "Out 9" in dictNode: $ count_choice = 9 $ dictNode["Out 9 text"] = dictNode["Out 9 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 9 text"] = dictNode["Out 9 text"].replace('[npc.name]', npc.name) if "Out 10" in dictNode: $ count_choice = 10 $ dictNode["Out 10 text"] = dictNode["Out 10 text"].replace('[GG.name]', GG.name) if npc != '': $ dictNode["Out 10 text"] = dictNode["Out 10 text"].replace('[npc.name]', npc.name) # 1 if count_choice == 1: $ text_1 = variables_in_text(dictNode["Out 1 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] # 2 if count_choice == 2: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] # 3 if count_choice == 3: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] # 4 if count_choice == 4: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] # 5 if count_choice == 5: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] # 6 if count_choice == 6: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) $ text_6 = variables_in_text(dictNode["Out 6 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] "[text_6]": $ currentNode = dictNode["Out 6"] # 7 if count_choice == 7: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) $ text_6 = variables_in_text(dictNode["Out 6 text"]) $ text_7 = variables_in_text(dictNode["Out 7 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] "[text_6]": $ currentNode = dictNode["Out 6"] "[text_7]": $ currentNode = dictNode["Out 7"] # 8 if count_choice == 8: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) $ text_6 = variables_in_text(dictNode["Out 6 text"]) $ text_7 = variables_in_text(dictNode["Out 7 text"]) $ text_8 = variables_in_text(dictNode["Out 8 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] "[text_6]": $ currentNode = dictNode["Out 6"] "[text_7]": $ currentNode = dictNode["Out 7"] "[text_8]": $ currentNode = dictNode["Out 8"] # 9 if count_choice == 9: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) $ text_6 = variables_in_text(dictNode["Out 6 text"]) $ text_7 = variables_in_text(dictNode["Out 7 text"]) $ text_8 = variables_in_text(dictNode["Out 8 text"]) $ text_9 = variables_in_text(dictNode["Out 9 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] "[text_6]": $ currentNode = dictNode["Out 6"] "[text_7]": $ currentNode = dictNode["Out 7"] "[text_8]": $ currentNode = dictNode["Out 8"] "[text_9]": $ currentNode = dictNode["Out 9"] # 10 if count_choice == 10: $ text_1 = variables_in_text(dictNode["Out 1 text"]) $ text_2 = variables_in_text(dictNode["Out 2 text"]) $ text_3 = variables_in_text(dictNode["Out 3 text"]) $ text_4 = variables_in_text(dictNode["Out 4 text"]) $ text_5 = variables_in_text(dictNode["Out 5 text"]) $ text_6 = variables_in_text(dictNode["Out 6 text"]) $ text_7 = variables_in_text(dictNode["Out 7 text"]) $ text_8 = variables_in_text(dictNode["Out 8 text"]) $ text_9 = variables_in_text(dictNode["Out 9 text"]) $ text_10 = variables_in_text(dictNode["Out 10 text"]) menu: "[text_1]": $ currentNode = dictNode["Out 1"] "[text_2]": $ currentNode = dictNode["Out 2"] "[text_3]": $ currentNode = dictNode["Out 3"] "[text_4]": $ currentNode = dictNode["Out 4"] "[text_5]": $ currentNode = dictNode["Out 5"] "[text_6]": $ currentNode = dictNode["Out 6"] "[text_7]": $ currentNode = dictNode["Out 7"] "[text_8]": $ currentNode = dictNode["Out 8"] "[text_9]": $ currentNode = dictNode["Out 9"] "[text_10]": $ currentNode = dictNode["Out 10"] # Сцена и анимация if dictNode["type"] == "scene": # Сцена if dictNode["scene"].startswith("s_"): hide screen show_in_senter with Dissolve(0.3) if dictNode["mirror_show"] == "False": call show_scene(npc, eval(dictNode["scene"])) from _call_show_scene_616 else: call show_scene(npc, eval(dictNode["scene"]), mirror=True) from _call_show_scene_617 # Анимация if dictNode["scene"].startswith("a_"): hide screen show_in_senter with Dissolve(0.3) $ iteration = 3 if dictNode["animation_iterations"] != '': $ iteration = int(dictNode["animation_iterations"]) if dictNode["mirror_show"] == "False": call play_animation(npc, eval(dictNode["scene"]), iteration) from _call_play_animation_81 else: call play_animation_mirror(npc, eval(dictNode["scene"]), iteration) from _call_play_animation_mirror # Аватарка if npc != '': $ curr_emotion = copy.copy(npc.emotion) if dictNode["scene"] != 's_black' : call lb_images2(npc=npc, npc_show=0, ava=1, emotion=curr_emotion) from _call_lb_images2_3 $ npc.emotion = copy.copy(curr_emotion) # # if # if dictNode["type"] == "if": # $ value_1 = dict_Variables[dictNode["variable_1"]]["value"] # $ value_2 = "0" # if dictNode["toggle"] == "False": # $ value_2 = dictNode["ifValue"] # else: # $ value_2 = dict_Variables[dictNode["variable_2"]]["value"] # $ checkIf = False # # $ print(int(value_1)) # $ print(int(value_2)) # # # Условия # # = # if dictNode["dropDownValue"] == "0": # if value_1 == value_2: # $ checkIf = True # # > # if dictNode["dropDownValue"] == "1": # if int(value_1) > int(value_2): # $ checkIf = True # # < # if dictNode["dropDownValue"] == "2": # if int(value_1) < int(value_2): # $ checkIf = True # # >= # if dictNode["dropDownValue"] == "3": # if int(value_1) >= int(value_2): # $ checkIf = True # # <= # if dictNode["dropDownValue"] == "4": # if int(value_1) <= int(value_2): # $ checkIf = True # # # Переход # if checkIf: # $ currentNode = dictNode["Out 1"] # else: # $ currentNode = dictNode["Out 2"] # # link # if dictNode["type"] == "link": # $ print("link") # Конец скрипта if currentNode == "": $ currentNode = False # # Act in act # if list_acts_node != []: # $ adress_file = list_acts_node[-1][0] # $ id_nide = list_acts_node[-1][1] # $ del list_acts_node[-1] # call playScript(adress_script=adress_file, currentNode=id_nide) from _call_playScript_2 # Сброс всех временных декалей $ def_reset_periodic_decals() call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_8 hide screen show_in_senter hide screen show_image_fix_size hide screen show_image_in_position_2 hide screen show_scn with Dissolve(0.3) return # Вывод фентези диалогов label fantasy_dialogue(file): $ file_name = '_dialogues/' + file +'.json' python: with open(file_name, "r") as read_file: data = json.load(read_file) current_node_name = 'START' nodes = data[0]['nodes'] # Назначение переменных $ player_name = data[0]['variables']['player_name']['value'] # Вывод диалогов while current_node_name: # Получение текущей ноды по её имени python: for node_x in nodes: if node_x['node_name'] == current_node_name: node = node_x # Вывод реплики и картинки if node['node_type'] == 'show_message' and 'choices' not in node: $ txt = node['text']['ENG'] if node['character'][0] == 'Player': char_player"[txt]" if node['character'][0] == 'talker': talker"[txt]" # Анимация if node['character'][0] == 'animation': # Убираем пробелы $ txt = txt.replace(' ', '') $ temp_list = txt.split('||||') # Количество повторов анимации $ count_anim = int(temp_list[len(temp_list) - 1]) # Цикл while count_anim > 0: # 0 - 1-я картинка if 'random_events' in temp_list[0]: $ img = temp_list[0] else: $ img = 'fantasy_stories/' + file + '/' + temp_list[0] call lb_images(img_1=[img], dis=0.5) from _call_lb_images_37 # 1 - 1-ый звук $ sound_a = temp_list[1] if sound_a in var_dict['sounds']: # Составные звуки if 'cs_' in sound_a: call rnd_composite_sound(var_dict['sounds'][sound_a]) from _call_rnd_composite_sound_18 else: # Случайные звуки call rnd_sound(var_dict['sounds'][sound_a]) from _call_rnd_sound_179 else: play sound sound_a # 2 - 1-я пауза $ pause_a = float(temp_list[2]) pause pause_a # 3 - 2-я картинка if 'random_events' in temp_list[3]: $ img = temp_list[3] else: $ img = 'fantasy_stories/' + file + '/' + temp_list[3] call lb_images(img_1=[img], dis=0.5) from _call_lb_images_38 # 4 - 2-ой звук $ sound_a = temp_list[4] if sound_a in var_dict['sounds']: # Составные звуки if 'cs_' in sound_a: call rnd_composite_sound(var_dict['sounds'][sound_a]) from _call_rnd_composite_sound_19 else: # Случайные звуки call rnd_sound(var_dict['sounds'][sound_a]) from _call_rnd_sound_180 else: play sound sound_a # 5 - 2-я пауза $ pause_a = float(temp_list[5]) pause pause_a $ count_anim -= 1 # Вывод нескольких картинок (разделитель ', ') if node['character'][0] == 'img': python: temp_list = txt.split(', ') list_images = [] for img in temp_list: if 'random_events' in img: img1 = img else: img1 = 'fantasy_stories/' + file + '/' + img list_images.append(img1) call lb_images(img_1=list_images, dis=0.5) from _call_lb_images_39 # Звук if node['character'][0] == 'sound': if txt in var_dict['sounds']: # Составные звуки if 'cs_' in txt: call rnd_composite_sound(var_dict['sounds'][txt]) from _call_rnd_composite_sound_20 else: # Случайные звуки call rnd_sound(var_dict['sounds'][txt]) from _call_rnd_sound_181 else: play sound txt # Звук 2 if node['character'][0] == 'sound_2': if txt in var_dict['sounds']: # Составные звуки if 'cs_' in txt: call rnd_composite_sound(var_dict['sounds'][txt]) from _call_rnd_composite_sound_21 else: # Случайные звуки call rnd_sound(var_dict['sounds'][txt]) from _call_rnd_sound_182 else: play sound2 txt # Музыка if node['character'][0] == 'music': play music txt fadein 1.0 # Музыка 2 if node['character'][0] == 'music_2': play music2 txt fadein 1.0 # Разное if node['character'][0] == 'call': # Остановка музыки if txt == 'stop_music': stop music fadeout 1.0 # Остановка музыки 2 if txt == 'stop_music_2': stop music2 fadeout 1.0 # Мужской оргазм if txt == 'male_orgasm': pause 0.5 call rnd_sound(sl_male_orgasm) from _call_rnd_sound_183 show screen show_image_above("images/other/bgd_wite.png") pause 0.2 call rnd_sound2(sl_cum) from _call_rnd_sound2_23 with Dissolve(0.3) hide screen show_image_above with Dissolve(1) pause 0.3 pause 1 # Женский оргазм if txt == 'female_orgasm': call rnd_sound(sl_orgasm) from _call_rnd_sound_184 pause 3.5 show screen show_image_above("images/other/bgd_wite.png") with Dissolve(0.3) hide screen show_image_above with Dissolve(1) pause 1 # Вывод картинки if node['character'][0] == 'image': call lb_images(loc=var_dict['location'], loc_blur=1, img_1=[txt]) from _call_lb_images_40 # Вывод реплики НПС - нет npc if node['character'][0] not in ['Player', 'talker', 'img', 'sound', 'music', 'music_2', 'call', 'animation', 'image', 'sound_2']: $ name_char = node['character'][0] char_npc"[txt]" # Досрочный выход из диалога if node['node_type'] == 'execute' and node['text'] == 'return': hide screen show_image_fix_size hide screen scr with Dissolve(0.3) jump main_cicle # Меню выбора if 'choices' in node: if 1 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] if 2 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_2_text = node['choices'][1]['text']['ENG'] menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] '[choices_2_text]': # Переход к следующей ноде $ current_node_name = node['choices'][1]['next'] if 3 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_1_text = choices_1_text.replace('[GG.name]', GG.name) if npc != '': $ choices_1_text = choices_1_text.replace('[npc.name]', npc.name) $ choices_2_text = node['choices'][1]['text']['ENG'] $ choices_2_text = choices_2_text.replace('[GG.name]', GG.name) if npc != '': $ choices_2_text = choices_2_text.replace('[npc.name]', npc.name) $ choices_3_text = node['choices'][2]['text']['ENG'] $ choices_3_text = choices_3_text.replace('[GG.name]', GG.name) if npc != '': $ choices_3_text = choices_3_text.replace('[npc.name]', npc.name) menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] '[choices_2_text]': # Переход к следующей ноде $ current_node_name = node['choices'][1]['next'] '[choices_3_text]': # Переход к следующей ноде $ current_node_name = node['choices'][2]['next'] # Пауза if node['node_type'] == 'wait': $ time_x = node['time'] pause time_x # Переход к следующей ноде if 'choices' not in node: $ current_node_name = node['next'] stop music stop music2 hide screen show_image_fix_size hide screen show_image_in_position_2 hide screen show_scn with Dissolve(0.3) return # Вывод диалогов label dialogue(file, npc): # Если диалог в sss формате if file.endswith(".sss"): $ file = "SSScripts/" + file call sss_dialogue(file, npc) from _call_sss_dialogue return python: with open(file, "r") as read_file: data = json.load(read_file) current_node_name = 'START' nodes = data[0]['nodes'] # Вывод диалогов while current_node_name: # Получение текущей ноды по её имени python: for node_x in nodes: if node_x['node_name'] == current_node_name: node = node_x # Вывод реплики и картинки if node['node_type'] == 'show_message' and 'choices' not in node: $ txt = node['text']['ENG'] $ txt = txt.replace('[GG.name]', GG.name) if npc != '': $ txt = txt.replace('[npc.name]', npc.name) if node['character'][0] == 'npc': char_npc"[txt]" if node['character'][0] == 'Player': char_GG"[txt]" if node['character'][0] == 'talker': talker"[txt]" # Вывод картинки if node['character'][0] == 'image': call lb_images(loc=var_dict['location'], loc_blur=1, img_1=[txt]) from _call_lb_images_41 # Вывод картинок if node['character'][0] == 'images': $ loc_x='none' $ npc_x='none' $ loc_blur_x=0 $ img_1_x=[] $ npc_show_x=0 $ ava_x=0 $ img_2_x=[] $ emotion_x=copy.copy(npc.emotion) $ decals_x=[] $ scr_x=1 $ dis_x=0.3 if 'loc=' in txt: $ x1 = txt.find('loc=') + len('loc=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ loc_x = txt[x1:x2] if 'npc=' in txt: $ x1 = txt.find('npc=') + len('npc=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ npc_x = txt[x1:x2] if npc_x != 'none': $ npc_x = npc $ npc_show_x = 1 if 'loc_blur=' in txt: $ x1 = txt.find('loc_blur=') + len('loc_blur=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ loc_blur_x = int(txt[x1:x2]) if 'img_1=' in txt: $ x1 = txt.find('img_1=') + len('img_1=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ img_1_x = [txt[x1:x2]] if 'ava=' in txt: $ x1 = txt.find('ava_x=') + len('ava_x=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) if txt[x1:x2] == '1': $ npc_x = npc $ ava_x = 1 if 'emotion=' in txt: $ npc_x = npc $ x1 = txt.find('emotion=') + len('emotion=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ emotion_x = txt[x1:x2] if 'decals=' in txt: $ npc_x = npc $ x1 = txt.find('decals=') + len('decals=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) if '|' in txt[x1:x2]: $ decals_x = txt[x1:x2].split('|') else: $ decals_x = [txt[x1:x2]] if 'scr=' in txt: $ x1 = txt.find('scr=') + len('scr=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) if txt[x1:x2] == '0': $ scr_x = 0 if 'dis=' in txt: $ x1 = txt.find('dis=') + len('dis=') $ x2 = -1 $ x2 = txt.find(', ', x1) if x2 == -1: $ x2 = txt.find(')', x1) $ dis_x = float(txt[x1:x2]) call lb_images2(loc=loc_x, npc=npc_x, loc_blur=loc_blur_x, img_1=img_1_x, npc_show=npc_show_x, ava=ava_x, img_2=img_2_x, emotion=emotion_x, decals=decals_x, scr=scr_x, dis=dis_x) from _call_lb_images2_4 $ npc.emotion = copy.copy(emotion_x) # # Вывод нескольких картинок (разделитель ', ') # if node['character'][0] == 'img': # $ list_images = txt.split(', ') # call lb_images(img_1=list_images) # Звук if node['character'][0] == 'sound': if txt in var_dict['sounds']: # Составные звуки if 'cs_' in txt: call rnd_composite_sound(var_dict['sounds'][txt]) from _call_rnd_composite_sound_22 else: # Случайные звуки call rnd_sound(var_dict['sounds'][txt]) from _call_rnd_sound_185 else: play sound txt # Музыка if node['character'][0] == 'music': play music txt fadein 1.0 # Музыка if node['character'][0] == 'music_2': play music2 txt fadein 1.0 # Сцены if node['character'][0] == 'scene': $ curr_emotion = copy.copy(npc.emotion) call show_scene(npc, var_dict['scenes'][txt]) from _call_show_scene_618 if txt != 's_black': call lb_images2(npc=npc, npc_show=0, ava=1, emotion=curr_emotion) from _call_lb_images2_5 $ npc.emotion = copy.copy(curr_emotion) # Сцены отражёные if node['character'][0] == 'scene_mir': $ curr_emotion = copy.copy(npc.emotion) call show_scene(npc, var_dict['scenes'][txt], mirror=True) from _call_show_scene_619 if txt != 's_black': call lb_images2(npc=npc, npc_show=0, ava=1, emotion=curr_emotion) from _call_lb_images2_6 $ npc.emotion = copy.copy(curr_emotion) # Анимации if node['character'][0] == 'animation': $ curr_emotion = copy.copy(npc.emotion) if ', ' in txt: $ list_txt = txt.split(', ') call play_animation(npc, var_dict['animations'][list_txt[0]], int(list_txt[1])) from _call_play_animation_82 else: call play_animation(npc, var_dict['animations'][txt], 5) from _call_play_animation_83 $ npc.emotion = copy.copy(curr_emotion) # Анимации отражённые if node['character'][0] == 'animation_mir': $ curr_emotion = copy.copy(npc.emotion) if ', ' in txt: $ list_txt = txt.split(', ') call play_animation_mirror(npc, var_dict['animations'][list_txt[0]], int(list_txt[1])) from _call_play_animation_mirror_1 else: call play_animation_mirror(npc, var_dict['animations'][txt], 5) from _call_play_animation_mirror_2 $ npc.emotion = copy.copy(curr_emotion) # Разное if node['character'][0] == 'call': # Закрыть экран с изображениями if txt == 'close_images': hide screen show_image_fix_size with Dissolve(0.5) # Обнажение NPC if txt == 'nude': $ npc.clothes = ['Nude'] # Приближение NPC if txt == 'near': $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size hide screen show_scn with Dissolve(1.0) # Остановка музыки if txt == 'stop_music': stop music fadeout 1.0 # Остановка музыки 2 if txt == 'stop_music_2': stop music2 fadeout 1.0 # Женский оргазм if txt == 'female_orgasm': call female_orgasm from _call_female_orgasm_14 # Мужской оргазм if txt == 'male_orgasm': call male_orgasm from _call_male_orgasm_17 # Раздевание принуждение if txt == 'undress_submission': char_GG '- Undress!{p=0} I ordered.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_130 call lb_show_npc(npc) from _call_lb_show_npc_15 $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] char_GG "- Take off your [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.0) from _call_lb_images2_7 $ count -= 1 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_131 # Поцелуй if txt == 'kiss': $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size hide screen show_scn with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_186 # Ниже if txt == 'down': $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) show screen show_image_in_position_2(img_list=[[img_loc, 0, 0], [img_npc, 585, 500]]) hide screen show_image_fix_size with Dissolve(1.0) # Удалить декали if txt == 'clear_decales': $ def_reset_periodic_decals() # Переодевание if txt == 'dressing_up': python: npc.clothes = [] for clothe in var_dict['dressing_up']: x=0 body_ID = npc.body.ID if var_dict['var_npc_fantasy'] != '': body_ID = def_ID_return(var_dict['npc']) for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', body_ID) clothe.images[x][0] = img[0].replace('B2', body_ID) clothe.images[x][0] = img[0].replace('B3', body_ID) clothe.images[x][0] = img[0].replace('B4', body_ID) clothe.images[x][0] = img[0].replace('B5', body_ID) x=x+1 npc.clothes.append(copy.deepcopy(clothe)) # Переодевание 2 if txt == 'dressing_up_2': python: npc.clothes = [] for clothe in var_dict['dressing_up_2']: x=0 body_ID = npc.body.ID if var_dict['var_npc_fantasy'] != '': body_ID = def_ID_return(var_dict['npc']) for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', body_ID) clothe.images[x][0] = img[0].replace('B2', body_ID) clothe.images[x][0] = img[0].replace('B3', body_ID) clothe.images[x][0] = img[0].replace('B4', body_ID) clothe.images[x][0] = img[0].replace('B5', body_ID) x=x+1 npc.clothes.append(copy.deepcopy(clothe)) # Переодевание 3 if txt == 'dressing_up_3': python: npc.clothes = [] for clothe in var_dict['dressing_up_3']: x=0 body_ID = npc.body.ID if var_dict['var_npc_fantasy'] != '': body_ID = def_ID_return(var_dict['npc']) for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', body_ID) clothe.images[x][0] = img[0].replace('B2', body_ID) clothe.images[x][0] = img[0].replace('B3', body_ID) clothe.images[x][0] = img[0].replace('B4', body_ID) clothe.images[x][0] = img[0].replace('B5', body_ID) x=x+1 npc.clothes.append(copy.deepcopy(clothe)) # Изменение локации if 'location=' in txt: $ id_loc = txt.replace('location=', '') if id_loc in var_dict['locations']: $ var_dict['location'] = var_dict['locations'][id_loc] else: $ var_dict['location'] = locals()[id_loc] # Раздевание Love if txt == 'undress_love': $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "[npc.name] takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_show_npc(npc, 1.5) from _call_lb_show_npc_116 $ count -= 1 # Шлепок по попке if txt == 'spank': call lb_spank(npc) from _call_lb_spank_1 # Вывод реплики НПС - нет npc if node['character'][0] not in ['npc', 'Player', 'talker', 'image', 'images', 'sound', 'music', 'music_2', 'scene', 'scene_mir', 'animation', 'animation_mir', 'call']: $ name_char = node['character'][0] char_npc"[txt]" # Досрочный выход из диалога if node['node_type'] == 'execute' and node['text'] == 'return': hide screen show_image_fix_size hide screen scr with Dissolve(0.3) jump main_cicle # Меню выбора if 'choices' in node: if 1 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_1_text = choices_1_text.replace('[GG.name]', GG.name) if npc != '': $ choices_1_text = choices_1_text.replace('[npc.name]', npc.name) menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] if 2 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_1_text = choices_1_text.replace('[GG.name]', GG.name) if npc != '': $ choices_1_text = choices_1_text.replace('[npc.name]', npc.name) $ choices_2_text = node['choices'][1]['text']['ENG'] $ choices_2_text = choices_2_text.replace('[GG.name]', GG.name) if npc != '': $ choices_2_text = choices_2_text.replace('[npc.name]', npc.name) menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] '[choices_2_text]': # Переход к следующей ноде $ current_node_name = node['choices'][1]['next'] if 3 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_1_text = choices_1_text.replace('[GG.name]', GG.name) if npc != '': $ choices_1_text = choices_1_text.replace('[npc.name]', npc.name) $ choices_2_text = node['choices'][1]['text']['ENG'] $ choices_2_text = choices_2_text.replace('[GG.name]', GG.name) if npc != '': $ choices_2_text = choices_2_text.replace('[npc.name]', npc.name) $ choices_3_text = node['choices'][2]['text']['ENG'] $ choices_3_text = choices_3_text.replace('[GG.name]', GG.name) if npc != '': $ choices_3_text = choices_3_text.replace('[npc.name]', npc.name) menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] '[choices_2_text]': # Переход к следующей ноде $ current_node_name = node['choices'][1]['next'] '[choices_3_text]': # Переход к следующей ноде $ current_node_name = node['choices'][2]['next'] if 4 == len(node['choices']): $ choices_1_text = node['choices'][0]['text']['ENG'] $ choices_1_text = choices_1_text.replace('[GG.name]', GG.name) if npc != '': $ choices_1_text = choices_1_text.replace('[npc.name]', npc.name) $ choices_2_text = node['choices'][1]['text']['ENG'] $ choices_2_text = choices_2_text.replace('[GG.name]', GG.name) if npc != '': $ choices_2_text = choices_2_text.replace('[npc.name]', npc.name) $ choices_3_text = node['choices'][2]['text']['ENG'] $ choices_3_text = choices_3_text.replace('[GG.name]', GG.name) if npc != '': $ choices_3_text = choices_3_text.replace('[npc.name]', npc.name) $ choices_4_text = node['choices'][3]['text']['ENG'] $ choices_4_text = choices_4_text.replace('[GG.name]', GG.name) if npc != '': $ choices_4_text = choices_4_text.replace('[npc.name]', npc.name) menu: '[choices_1_text]': # Переход к следующей ноде $ current_node_name = node['choices'][0]['next'] '[choices_2_text]': # Переход к следующей ноде $ current_node_name = node['choices'][1]['next'] '[choices_3_text]': # Переход к следующей ноде $ current_node_name = node['choices'][2]['next'] '[choices_4_text]': # Переход к следующей ноде $ current_node_name = node['choices'][3]['next'] # Пауза if node['node_type'] == 'wait': $ time_x = node['time'] pause time_x # Переход к следующей ноде if 'choices' not in node: $ current_node_name = node['next'] # Сброс всех временных декалей $ def_reset_periodic_decals() call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_132 hide screen show_image_fix_size hide screen show_image_in_position_2 hide screen show_scn with Dissolve(0.3) return # Вывод диалогов в квесте label lb_dialogue(quest): $ npc = quest.npc if npc != '': $ name_char = npc.name python: adress_file = '_dialogues/' + quest.dict[quest.level]['call'] +'.json' # Определение типа ветки if npc != '': if quest.dict[quest.level]['Love'] > 0.0 or quest.dict[quest.level]['Submission'] > 0.0: type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission'] and quest.dict[quest.level]['Submission'] != '': type_x = 'Submission' if type_x == 'Love': adress_file = adress_file = '_dialogues/' + quest.dict[quest.level]['call'] + '_love' +'.json' if type_x == 'Submission': adress_file = '_dialogues/' + quest.dict[quest.level]['call'] + '_submission' +'.json' with open(adress_file, "r") as read_file: data = json.load(read_file) call dialogue(adress_file, npc) from _call_dialogue_3 return # Вывод картинок в действиях 2 label lb_images2(loc='none', npc='none', loc_blur=0, img_1=[], npc_show=0, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.3): $ images = [] # Локация if loc != 'none': # Если Текущая локация if loc == 'curr': $ loc = var_dict['location'] $ img = loc.image # Если заблуренно if loc_blur == 1: $ img = im.Blur(img, 3.5) $ images.append(img) # Картинки 1 python: for img in img_1: images.append(img) # НПС if npc != 'none': # Эмоции if emotion != 'none': call lb_cange_emotion(npc, emotion) from _call_lb_cange_emotion_133 # Декали if decals != []: # Новые декали $ len_x = 0 while len_x < len(decals): $ decal = decals[len_x] call lb_cange_npc_features(npc=npc, feature=decal) from _call_lb_cange_npc_features_124 $ len_x += 1 # Картинка нпс-а if npc_show == 1: if npc.type == 'NPC': $ img_npc = npc_image(npc) else: $ img_npc = simply_npc_image(npc) $ images.append(img_npc) # Аватар if ava == 1: call show_ava_for_scenes2(npc, 1) from _call_show_ava_for_scenes2 if ava == 0: hide screen show_image_in_position_2 # Картинки 2 python: for img in img_2: images.append(img) # Вывод картинок if scr == 1: show screen show_image_fix_size(img_list=images) #hide screen show_scn hide screen show_image_in_position hide screen show_image hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location hide screen peep_telescope_screen with Dissolve(dis) elif scr == 0: show screen show_image_fix_size(img_list=images) hide screen show_scn hide screen show_image_in_position hide screen show_image hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location hide screen peep_telescope_screen with Dissolve(dis) # # Отмена декалей # if decals != []: # $ len_x = 0 # while len_x < len(decals): # $ decal = decals[len_x] # call lb_cange_npc_features(npc=npc, feature=decal) # $ len_x += 1 return # Анимация label play_animation_mirror(npc, anim_obj, count=7, dis=0.5): while count > 0: $ index_scene = 0 $ count_scene = len(anim_obj.sceness) while count_scene > 0: call show_scene(npc, anim_obj.sceness[index_scene], dis, mirror=True) from _call_show_scene_620 if anim_obj.sounds[index_scene] != 'none': call rnd_sound(anim_obj.sounds[index_scene]) from _call_rnd_sound_187 pause anim_obj.pauses[index_scene] $ count_scene -= 1 $ index_scene += 1 $ count -= 1 return # Playroom "Captive". BDSM club label lb_bdsm_playroom_1: "lb_bdsm_playroom_1" return # Переместить ключ на брелок label lb_key_to_keychain(obj): # Добавить ключ на брелок $ var_dict['keychain'].append(obj.features[0]) $ var_dict['keychain'].append(obj.name) # Удалить объект из инвентаря $ del_obj(obj=obj, inv=var_dict['inventary']) hide screen info call minuts(1) from _call_minuts_72 return # Нашёл деньги label find_cash(npc): menu: "You found some cash.": $ volue_find_money = 5 # 50 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 50 else: # 100 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 100 else: # 200 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 200 else: # 500 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 500 else: # 1000 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 1000 else: # 2000 $ rnd = random.random() if 0.5 >= rnd: $ volue_find_money = 2000 menu: "Wow! [volue_find_money] cash.": $ GG.money = GG.money + volue_find_money return # Квест 10 - Jogging with Desire. label lb_qw_10_0_start(npc='', quest=''): menu: 'With whom to start the quest "The Loyalist’s Dilemma."?': pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_10_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_10_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_10): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_10.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 6.0 and npc.dict_skill['Submission'] < 6.0: play sound "sounds/error.mp3" 'To start the quest you need 6.0 Love or 6.0 Submission.' jump main_cicle # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry # *** Скрипт диалога (в зависимости от ветки) *** if npc.dict_skill['Love'] >= npc.dict_skill['Submission']: call dialogue('lb_qw_10_0_start_1_love.sss', npc) from _call_dialogue_4 else: call dialogue('lb_qw_10_0_start_1_submission.sss', npc) from _call_dialogue_5 # Создание копии квеста $ quest = copy_obj(qw_10) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1' call minuts(30) from _call_minuts_73 return # Переодевание label lb_qw_10_clothe(npc=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_top_8 = copy.deepcopy(top_8) $ quest_top_8.images[1][3] = -55 $ quest_top_8.images[1][8] = 0.8 call lb_add_clothe_npc(npc=npc, clothe=quest_top_8) from _call_lb_add_clothe_npc_67 $ quest_bottom_10 = copy.deepcopy(bottom_10) $ quest_bottom_10.images[1][4] = 0.05 $ quest_bottom_10.images[1][5] = -0.18 $ quest_bottom_10.images[1][6] = 1.24 call lb_add_clothe_npc(npc=npc, clothe=quest_bottom_10) from _call_lb_add_clothe_npc_68 return # Первый разговор после измены ГГ label lb_qw_10_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_10_2.sss', npc) from _call_dialogue_6 play sound "sounds/level_UP.mp3" $ quest.level = '3' call minuts(15) from _call_minuts_74 return # Месть Виктора label lb_qw_10_3(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_10_3.sss', npc) from _call_dialogue_7 play sound "sounds/level_UP.mp3" $ quest.level = '4' # Открыть lesbo_sex_2 if 'open_lesbo_sex_2_action' not in var_dict: $ var_dict['open_lesbo_sex_2_action'] = [] $ var_dict['open_lesbo_sex_2_action'].append(npc) talker "Now you can watch lesbian sex between [npc.name] and Lisa." call minuts(45) from _call_minuts_75 return # Разговр после лесбо секса и минета label lb_qw_10_4(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_10_4.sss', npc) from _call_dialogue_8 play sound "sounds/level_UP.mp3" $ quest.level = '4_2' call minuts(15) from _call_minuts_76 return # Виктор идёт в секс-шоп, чтобы купить хлыст label lb_qw_10_4_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_10_4_2.sss', npc) from _call_dialogue_9 play sound "sounds/level_UP.mp3" $ quest.level = '5' call minuts(15) from _call_minuts_77 return # Воспитание хлыстом label lb_qw_10_5(npc='', quest=''): # Переместить нпс в комнату ГГ $ npc.location = room_GG_loc # *** Скрипт диалога *** call dialogue('lb_qw_10_5.sss', npc) from _call_dialogue_10 play sound "sounds/level_UP.mp3" $ quest.level = '5_1' call minuts(60) from _call_minuts_78 return # Лиза в БДСМ-клубе label lb_qw_10_6(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_10_6.sss', npc) from _call_dialogue_11 play sound "sounds/level_UP.mp3" $ quest.level = '6_1' # Открытие возможности в БДСМ-клубе "Наказать Лизу". if 'open_Lisa_bdsm_club_action' not in var_dict: talker "Now you can \"punish Lisa\" in the BDSM club." $ var_dict['open_Lisa_bdsm_club_action'] = "" call minuts(120) from _call_minuts_79 return # НПС в БДСМ-клубе label lb_qw_10_7(npc='', quest=''): # Переместить нпс $ npc.location = bdsm # *** Скрипт *** call dialogue('lb_qw_10_7.sss', npc) from _call_dialogue_12 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' # Открыть bdsm-club visit if 'open_BDSM_3_action' not in var_dict: $ var_dict['open_BDSM_3_action'] = [] $ var_dict['open_BDSM_3_action'].append(npc) talker "Quest completed. Now you can invite [npc.name] to the BDSM-club." call minuts(120) from _call_minuts_80 return # Надевание ошейника и маски label lb_qw_10_7_clothe(npc='', quest=''): # (переодевание девушки в соответствующую одежду) # $ npc.clothes = ['Quest'] $ quest_blindfold_280 = copy.deepcopy(blindfold_280) call lb_add_clothe_npc(npc=npc, clothe=quest_blindfold_280) from _call_lb_add_clothe_npc_69 $ quest_collar_280 = copy.deepcopy(collar_280) call lb_add_clothe_npc(npc=npc, clothe=quest_collar_280) from _call_lb_add_clothe_npc_70 return # Пробежка в парке label lb_jogging(npc=''): if npc != '': # Пригласить девушку menu: "Invite [npc.name] for a jog in the park": pass "Not": return # Проверка на повторную пробежку if 'sex_jogging_list' not in var_dict: $ var_dict['sex_jogging_list'] = [] if npc in var_dict['sex_jogging_list']: play sound "sounds/error.mp3" menu: "We already jogged with her today.": return # Проверка квеста if 'open_invite_jogging' not in var_dict: $ var_dict['open_invite_jogging'] = [] if npc not in var_dict['open_invite_jogging']: play sound "sounds/error.mp3" menu: "You need to complete the quest: \"Jogging with Desire\"": return # Проверка Love if def_check_if_npc_skill(npc=npc, skill='Love', vol=6.0) == False: return # Диалоги call dialogue('lb_qw_9_love_8_1.sss', npc) from _call_dialogue_13 $ var_dict['location'] = sunsity_map play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#5fe624}Love: +100 Friend: +100{/color}' $ var_dict['sex_jogging_list'].append(npc) call minuts(120) from _call_minuts_81 return # Журнал 1 label lb_magazine_1(): call sss_dialogue('SSScripts/lb_magazine_1.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_1 return # Журнал 2 label lb_magazine_2(): call sss_dialogue('SSScripts/lb_magazine_2.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_2 return # Журнал 3 label lb_magazine_3(): call sss_dialogue('SSScripts/lb_magazine_3.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_3 return # Журнал 4 label lb_magazine_4(): call sss_dialogue('SSScripts/lb_magazine_4.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_4 return # Журнал 5 label lb_magazine_5(): call sss_dialogue('SSScripts/lb_magazine_5.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_5 return # Журнал 6 label lb_magazine_6(): call sss_dialogue('SSScripts/lb_magazine_6.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_6 return # Журнал 7 label lb_magazine_7(): call sss_dialogue('SSScripts/lb_magazine_7.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_7 return # Журнал 8 label lb_magazine_8(): call sss_dialogue('SSScripts/lb_magazine_8.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_8 return # Журнал 9 label lb_magazine_9(): call sss_dialogue('SSScripts/lb_magazine_9.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_9 return # Журнал 10 label lb_magazine_10(): call sss_dialogue('SSScripts/lb_magazine_10.sss', npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_10 return # Тест SSS скрипта label lb_test_sss_0(): # Ввод имени файла $ filename = renpy.input("File name (can be partial).") $ filename = filename.strip() # Получить список SSS скриптов python: file_list = [] temp_file_list = renpy.list_files('SSScripts') for temp_file in temp_file_list: if temp_file.endswith(".sss") and filename in temp_file: file_list.append(temp_file) show screen choose_string_from_list(list_str=file_list, str_call='lb_test_sss_1') return label lb_test_sss_1(string): if string == "": return $ file_name = string.replace("SSScripts/", "") $ name_char = var_dict['npces'][0].name call dialogue(file_name, npc=var_dict['npces'][0]) from _call_dialogue_14 return # Будильник label lb_Alarm(): call lb_off_smartphone_GG from _call_lb_off_smartphone_GG menu: "Turn off alarm": $ var_dict['alarm'] = 0 "04:00": $ var_dict['alarm'] = 4 "05:00": $ var_dict['alarm'] = 5 "06:00": $ var_dict['alarm'] = 6 "07:00": $ var_dict['alarm'] = 7 "08:00": $ var_dict['alarm'] = 8 "09:00": $ var_dict['alarm'] = 9 "10:00": $ var_dict['alarm'] = 10 "11:00": $ var_dict['alarm'] = 11 "12:00": $ var_dict['alarm'] = 12 play sound "sounds/click_button.mp3" return # Квест 9 - Jogging with Desire. label lb_qw_9_love_0_start(npc='', quest=''): menu: 'With whom to start the quest "Jogging with Desire"?': pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_9_love_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_9_love_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_9_love): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_9_love.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" 'To start the quest you need 3.0 Love' jump main_cicle # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_1 # *** Скрипт диалога *** call dialogue('lb_qw_9_love_0_start_1.sss', npc) from _call_dialogue_15 # Создание копии квеста $ quest = copy_obj(qw_9_love) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1' call minuts(30) from _call_minuts_82 return label lb_qw_9_love_1(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_1.sss', npc) from _call_dialogue_16 play sound "sounds/level_UP.mp3" $ quest.level = '2_0' $ var_dict['location'] = sunsity_map call minuts(15) from _call_minuts_83 return label lb_qw_9_love_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_2.sss', npc) from _call_dialogue_17 play sound "sounds/level_UP.mp3" $ quest.level = '2_1' call minuts(60) from _call_minuts_84 return # Переодевание 1 (спортивная одежда) label lb_qw_9_love_2_clothe_1(npc='', quest=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_panty_4 = copy.deepcopy(panty_4) call lb_add_clothe_npc(npc=npc, clothe=quest_panty_4) from _call_lb_add_clothe_npc_71 $ quest_bra_4 = copy.deepcopy(bra_4) call lb_add_clothe_npc(npc=npc, clothe=quest_bra_4) from _call_lb_add_clothe_npc_72 $ quest_pants_190_1 = copy.deepcopy(pants_190_1) call lb_add_clothe_npc(npc=npc, clothe=quest_pants_190_1) from _call_lb_add_clothe_npc_73 $ quest_top_190_1 = copy.deepcopy(top_190_1) call lb_add_clothe_npc(npc=npc, clothe=quest_top_190_1) from _call_lb_add_clothe_npc_74 return # Переодевание 2 (спортивная одежда без топа) label lb_qw_9_love_2_clothe_2(npc='', quest=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_panty_4 = copy.deepcopy(panty_4) call lb_add_clothe_npc(npc=npc, clothe=quest_panty_4) from _call_lb_add_clothe_npc_75 $ quest_bra_4 = copy.deepcopy(bra_4) call lb_add_clothe_npc(npc=npc, clothe=quest_bra_4) from _call_lb_add_clothe_npc_76 $ quest_pants_190_1 = copy.deepcopy(pants_190_1) call lb_add_clothe_npc(npc=npc, clothe=quest_pants_190_1) from _call_lb_add_clothe_npc_77 return label lb_qw_9_love_3(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_3.sss', npc) from _call_dialogue_18 play sound "sounds/level_UP.mp3" $ quest.level = '3_1' call minuts(5) from _call_minuts_85 return label lb_qw_9_love_4(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_4.sss', npc) from _call_dialogue_19 play sound "sounds/level_UP.mp3" $ quest.level = '5_0' call minuts(5) from _call_minuts_86 return label lb_qw_9_love_5(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_5.sss', npc) from _call_dialogue_20 play sound "sounds/level_UP.mp3" $ quest.level = '5_1' call minuts(5) from _call_minuts_87 return # Переодевание 3 (нижнее бельё) label lb_qw_9_love_5_clothe_1(npc='', quest=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_panty_4 = copy.deepcopy(panty_4) call lb_add_clothe_npc(npc=npc, clothe=quest_panty_4) from _call_lb_add_clothe_npc_78 $ quest_pants_190_1 = copy.deepcopy(pants_190_1) call lb_add_clothe_npc(npc=npc, clothe=quest_pants_190_1) from _call_lb_add_clothe_npc_79 return # Разговор после фингеринга в Парке label lb_qw_9_love_5_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_5_2.sss', npc) from _call_dialogue_21 play sound "sounds/level_UP.mp3" $ quest.level = '6_0' call minuts(15) from _call_minuts_88 return # Минет в парке label lb_qw_9_love_6_0(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_6_0.sss', npc) from _call_dialogue_22 play sound "sounds/level_UP.mp3" $ quest.level = '6_1' call minuts(60) from _call_minuts_89 return # Разговор после минета в парке label lb_qw_9_love_6_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_6_2.sss', npc) from _call_dialogue_23 play sound "sounds/level_UP.mp3" $ quest.level = '7_0' call minuts(15) from _call_minuts_90 return # Секс в парке label lb_qw_9_love_7_0(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_7_0.sss', npc) from _call_dialogue_24 play sound "sounds/level_UP.mp3" $ quest.level = '7_1' call minuts(60) from _call_minuts_91 return # Пробежка по парку в откровенном наряде label lb_qw_9_love_7_2(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_7_2.sss', npc) from _call_dialogue_25 play sound "sounds/level_UP.mp3" $ quest.level = '7_3' call minuts(60) from _call_minuts_92 return # Переодевание 4 (откровенная одежда) label lb_qw_9_love_7_2_clothe_1(npc='', quest=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_bikini = copy.deepcopy(bikini) call lb_add_clothe_npc(npc=npc, clothe=quest_bikini) from _call_lb_add_clothe_npc_80 $ quest_bottom_1 = copy.deepcopy(bottom_1) call lb_add_clothe_npc(npc=npc, clothe=quest_bottom_1) from _call_lb_add_clothe_npc_81 return # Разговор после грубого траха в Парке label lb_qw_9_love_7_4(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_7_4.sss', npc) from _call_dialogue_26 play sound "sounds/level_UP.mp3" $ quest.level = '7_5' call minuts(15) from _call_minuts_93 return # ГГ пополняет запасы секс-капель в секс-шопе label lb_qw_9_love_7_5(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_7_5.sss', npc) from _call_dialogue_27 play sound "sounds/level_UP.mp3" $ quest.level = '7_6' call minuts(5) from _call_minuts_94 return # ГГ Ломка Марины label lb_qw_9_love_7_7(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_7_7.sss', npc) from _call_dialogue_28 play sound "sounds/level_UP.mp3" $ quest.level = '7_8' call minuts(60) from _call_minuts_95 return # Разговор после ломки label lb_qw_9_love_8_0(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_8_0.sss', npc) from _call_dialogue_29 play sound "sounds/level_UP.mp3" $ quest.level = '8_1' call minuts(15) from _call_minuts_96 return # Финальный трах в парке label lb_qw_9_love_8_1(npc='', quest=''): # *** Скрипт диалога *** call dialogue('lb_qw_9_love_8_1.sss', npc) from _call_dialogue_30 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' $ var_dict['open_invite_jogging'].append(npc) talker "Quest completed. Now you can invite [npc.name] to the park for a jog." call minuts(60) from _call_minuts_97 return # Переодевание 5 (топлесс) label lb_qw_9_love_8_1_clothe_1(npc='', quest=''): # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_bottom_1 = copy.deepcopy(bottom_1) call lb_add_clothe_npc(npc=npc, clothe=quest_bottom_1) from _call_lb_add_clothe_npc_82 return # НПС выбран label lb_radar_choosed(npc): if npc!= '': menu: "[npc.name] is in the [npc.location.name].": pass return # Трекер label lb_tracker(npc=npc): # На НПС уже установлен трекер if npc.id in var_dict['npcs_tracker']: menu: "A tracker has already been installed on the [npc.name].": return # Нет трекера с собой $ list_treckers = list_obj_feature(inv_GG, "трекер") if list_treckers == []: play sound "sounds/error.mp3" menu: "You don't have a tracker with you. Buy it at an electrical supply store.": return else: # Установка трекера $ var_dict['npcs_tracker'].append(npc.id) # Удалить трекер из инвентаря $ del_obj(list_treckers[0], inv_GG) play sound "sounds/level_UP.mp3" menu: "Tracker installed!": pass return # Radar label lb_radar(): # Жучки не установленны if var_dict['npcs_tracker'] == []: menu: "You haven't installed any trackers yet.": return python: list_trecker_npces = [] for temp_id in var_dict['npcs_tracker']: list_trecker_npces.append(def_return_NPC_for_ID(temp_id)) # Выбор НПС с трекером show screen choose_NPC_from_list(list_npces=list_trecker_npces, str_call='lb_radar_choosed', mark='Tracked NPC:') with Dissolve(0.3) return # Сон на выбор label lb_selection_dream_start(): if "выбор_персонажа_сна" in GG.features: # Alex # Daenerys # Diana # Hermione # Katniss # Lara # Natalie # Natasha # Priyanka # Sansa # Emma # Carol # Buffy # Megan # Alexandra menu: "Alex": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Alex_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alex_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alex_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alex_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alex_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Daenerys": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Daenerys_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Daenerys_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Daenerys_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Daenerys_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Daenerys_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Diana": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Diana_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Diana_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Diana_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Diana_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Diana_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Hermione": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Hermione_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Hermione_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Hermione_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Hermione_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Hermione_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Katniss": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Katniss_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Katniss_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Katniss_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Katniss_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Katniss_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Lara": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Lara_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Lara_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Lara_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Lara_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Lara_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Natalie": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Natalie_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natalie_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natalie_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natalie_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natalie_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Natasha": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Natasha_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natasha_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natasha_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natasha_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Natasha_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Priyanka": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Priyanka_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Priyanka_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Priyanka_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Priyanka_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Priyanka_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Sansa": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Sansa_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Sansa_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Sansa_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Sansa_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Sansa_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Next": menu: "Emma": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Emma_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Emma_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Emma_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Emma_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Emma_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Carol": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Carol_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Carol_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Carol_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Carol_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Carol_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Buffy": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Buffy_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Buffy_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Buffy_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Buffy_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Buffy_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Megan": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Megan_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Megan_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Megan_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Megan_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Megan_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Alexandra": # 1-ый уровень сна $ img_adress = 'act_obj/dream_fantasy_Alexandra_1.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alexandra_2.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ой уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alexandra_3.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alexandra_4.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ой уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = 'act_obj/dream_fantasy_Alexandra_5.jpg' show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 "Previous": jump lb_selection_dream_start else: play sound "sounds/error.mp3" menu: "You need to learn the required skill (check the bookstore).": return menu: "You had an interesting dream.": call lb_dreams_start from _call_lb_dreams_start return # Случайный сон label lb_random_dream(): # Сбор всех картинок снов в списки по уровню $ var_dict['random_dream_1'] = var_dict['abstract_dream_1'] + var_dict['fantasy_dream_1'] $ var_dict['random_dream_2'] = var_dict['abstract_dream_2'] + var_dict['fantasy_dream_2'] $ var_dict['random_dream_3'] = var_dict['abstract_dream_3'] + var_dict['fantasy_dream_3'] $ var_dict['random_dream_4'] = var_dict['abstract_dream_4'] $ var_dict['random_dream_5'] = var_dict['abstract_dream_5'] # 1-ый уровень сна $ img_adress = random.choice(var_dict['random_dream_1']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['random_dream_2']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ий уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['random_dream_3']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ий уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['random_dream_4']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ий уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['random_dream_5']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 menu: "You had an interesting dream.": call lb_dreams_start from _call_lb_dreams_start_1 return # Фентези сны старт label lb_fantasy_dream_start(): call lb_random_fantasy_dream from _call_lb_random_fantasy_dream return # Случайные фентези сны label lb_random_fantasy_dream(): # # python: # for img in var_dict['abstract_dream_1']: # renpy.show_screen("show_image_fix_size", img_list=[img]) # renpy.pause(1.0) # 1-ый уровень сна $ img_adress = random.choice(var_dict['fantasy_dream_1']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['fantasy_dream_2']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ий уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['fantasy_dream_3']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ий уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['fantasy_dream_4']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ий уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['fantasy_dream_5']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 menu: "You had an interesting dream.": call lb_dreams_start from _call_lb_dreams_start_2 return # Абстрактные сны label lb_abstract_dream(): # 1-ый уровень сна $ img_adress = random.choice(var_dict['abstract_dream_1']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 2-ой уровень сна if "глубокий_сон_1" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['abstract_dream_2']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 3-ий уровень сна if "глубокий_сон_2" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['abstract_dream_3']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 4-ой уровень сна if "глубокий_сон_3" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['abstract_dream_4']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 # 5-ий уровень сна if "глубокий_сон_4" in GG.features: menu: "Continue to sleep": $ img_adress = random.choice(var_dict['abstract_dream_5']) show screen show_image_fix_size([img_adress]) hide screen interaction with Dissolve(1.5) pause 100 menu: "You had an interesting dream.": call lb_dreams_start from _call_lb_dreams_start_3 return # Сон со сновидениями проверка и старт выбора 0 label lb_dreams_start_0(): # Сновидения menu: "Sleep with dreams": call lb_dreams_start from _call_lb_dreams_start_4 "Sleep without dreams": call lb_sleep from _call_lb_sleep_1 return # Сон со сновидениями проверка и старт выбора label lb_dreams_start(): if var_dict['количество_снов'] > 0: $ deep_sleep = 1 $ quality_sleep = var_dict['количество_снов'] if "глубокий_сон_1" in GG.features: $ deep_sleep = 2 if "глубокий_сон_2" in GG.features: $ deep_sleep = 3 if "глубокий_сон_3" in GG.features: $ deep_sleep = 4 if "глубокий_сон_4" in GG.features: $ deep_sleep = 5 $ var_dict['количество_снов'] = var_dict['количество_снов'] - 1 menu: "Depth of sleep [deep_sleep]. Number of dreams [quality_sleep].": pass play sound "sounds/dream.mp3" show screen interaction(dreams) hide screen show_image_fix_size with Dissolve(1.5) else: call minuts(60) from _call_minuts_98 call lb_sleep from _call_lb_sleep_2 return label lb_dreams_check(): $ var_dict['количество_снов'] = 1; if "количество_снов_2" in GG.features: $ var_dict['количество_снов'] = 2; if GG.pep > 1: menu: "You are not tired enough during the day to dream." "Use sleeping pills": # Проверка есть ли снотворное $ list_sleep_pills = list_obj_feature(inv_GG, "снотворное") # Есть снотворное if len(list_sleep_pills) > 0: pause 0.7 play sound "sounds/drugs.mp3" pause 2.5 # Удаление таблетки и пустого бутылька python: for feat in list_sleep_pills[0].features: if isinstance(feat, list): if feat[0] == 'spend': feat[1] -= 1 # Удаление объекта if feat[1] <= 0: inv = var_dict['inventary'] # текущий инвентарь inv.cells.remove(list_sleep_pills[0]) call lb_dreams_start_0 from _call_lb_dreams_start_0 # Нет снотвороного else: menu: "You don't have sleeping pills": return "Not": return else: call lb_dreams_start_0 from _call_lb_dreams_start_0_1 return # Сон без сновидений label lb_sleep(): show screen show_image_above("images/other/bgd_black.png") hide screen show_image_fix_size with Dissolve(1.0) pause 1.0 play music "sounds/snoring.mp3" # Будильник if 'alarm' in var_dict: if var_dict['alarm'] != 0: $ continue_sleep = "sleep" while continue_sleep == "sleep": $ GG.features.append('rest') call minuts(10) from _call_minuts_99 $ print (str(var_dict['Hour']) + " - " + str(var_dict['alarm'])) if int(var_dict['Hour']) == var_dict['alarm']: $ continue_sleep = "end" $ var_dict['Minute'] = "00" stop music fadeout 0.7 hide screen show_image_above hide screen show_image_modal with Dissolve(1.5) play sound "sounds/morning.mp3" pause 1.0 'You slept well.' return # Спать пока не восстановиться стамина while GG.pep < 100: $ GG.features.append('rest') call minuts(10) from _call_minuts_18 # Спать пока ночь while var_dict['Hour'] < 6: $ GG.features.append('rest') call minuts(10) from _call_minuts_19 stop music fadeout 0.7 hide screen show_image_above hide screen show_image_modal with Dissolve(1.5) play sound "sounds/morning.mp3" pause 1.0 'You slept well.' return # Подсматривание в телескоп label lb_peep_telescope_chosed(list_npc_telescope, npc_telescope): # Если НПС ещё не открыт if isinstance(npc_telescope, unicode): $ list_npc_for_search = [] # Составить список НПС для выбора python: for temp_npc in var_dict['npces']: if temp_npc.id != "npc1" and temp_npc.id != "npc2" and temp_npc not in list_npc_telescope: list_npc_for_search.append(temp_npc) # Выбор случайной НПС из составленного списка и замена в списке rndNPC = random.choice(list_npc_for_search) # Замена в списке for i in range(len(list_npc_telescope)): if list_npc_telescope[i] == npc_telescope: list_npc_telescope[i] = rndNPC call minuts(10) from _call_minuts_100 else: menu: "Start observing her (may take a long time)?": pass "Not": return # Скопировать нпс $ new_npc_casual = copy_obj(npc_telescope) # Переодевание в казуальную одежду $ def_change_clothe_set(new_npc_casual, 'asual') # 3 последних предмета одежды $ new_npc_3_items = copy_obj(new_npc_casual) # Удалить одежду python: # Украшения for temp_clothe in new_npc_3_items.clothes: if (not isinstance(temp_clothe, unicode)): if temp_clothe.name == "Decoration": new_npc_3_items.clothes.remove(temp_clothe) # Одежда while len(new_npc_3_items.clothes) >= 5: new_npc_3_items.clothes.pop() # 2 последних предмета одежды $ new_npc_2_items = copy_obj(new_npc_3_items) $ new_npc_2_items.clothes.pop() # 1 последний предмет одежды $ new_npc_1_items = copy_obj(new_npc_2_items) $ new_npc_1_items.clothes.pop() # Голая $ new_npc_nude = copy_obj(new_npc_1_items) $ new_npc_nude.clothes = ['Nude'] # Показать #call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.3) call lb_images2(npc=new_npc_casual, img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_8 pause 5 "Peep further." show screen show_image_fix_size(["other/bgd_black.png"]) with Dissolve(0.7) menu: "Wait until something interesting happens.": pass # 1 (80%) if def_random_event(probability=0.80): call lb_images2(npc=new_npc_3_items, img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_9 pause 5 "Something new, but not enough yet." show screen show_image_fix_size(["other/bgd_black.png"]) with Dissolve(0.7) menu: "Wait until something interesting happens.": pass # 1 (75%) if def_random_event(probability=0.75): call lb_images2(npc=new_npc_2_items, img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_10 pause 5 "It's already much hotter." show screen show_image_fix_size(["other/bgd_black.png"]) with Dissolve(0.7) menu: "Wait until something interesting happens.": pass # 1 (75%) if def_random_event(probability=0.75): call lb_images2(npc=new_npc_1_items, img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_11 pause 5 "Come on baby, I want to see everything." show screen show_image_fix_size(["other/bgd_black.png"]) with Dissolve(0.7) menu: "Wait until something interesting happens.": pass # 1 (65%) if def_random_event(probability=0.65): call lb_images2(npc=new_npc_nude, img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_12 pause 5 "Oh yes, I would like to fuck this bitch." hide screen show_image_fix_size with Dissolve(0.7) $ new_npc_casual = "" $ new_npc_3_items = "" $ new_npc_2_items = "" $ new_npc_1_items = "" $ new_npc_nude = "" call minuts(60) from _call_minuts_101 return call lb_images2(img_1=['quests/livingroom_com_blur.jpg'], npc_show=1, img_2=['quests/windows_blur.png', 'quests/telescope.png'], emotion='none', dis=0.3) from _call_lb_images2_13 "Looks like she's gone." hide screen show_image_fix_size with Dissolve(0.7) $ new_npc_casual = "" $ new_npc_3_items = "" $ new_npc_2_items = "" $ new_npc_1_items = "" $ new_npc_nude = "" call minuts(60) from _call_minuts_102 return label lb_peep_telescope_leave: hide screen interaction hide screen peep_telescope_screen with Dissolve(0.7) return # Проверка есть ли необходимые просвечиващие очки и переход к просматриванию label lb_check_hot_glasses(npc, level): if level == 1: $ glasses = list_obj_feature(inv_GG, 'hot_glasses_1') if glasses != []: call lb_hot_glasses(npc, level) from _call_lb_hot_glasses else: menu: "You need to buy a Hotglasses I in the store and place it in the inventory.": pass if level == 2: $ glasses = list_obj_feature(inv_GG, 'hot_glasses_2') if glasses != []: call lb_hot_glasses(npc, level) from _call_lb_hot_glasses_1 else: menu: "You need to buy a Hotglasses II in the store and place it in the inventory.": pass return # Шлепок по попке label lb_spank(npc=npc): # нпс, занесена рука сзади call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.3) from _call_lb_images2_14 # рука опускается pause 0.2 call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=[], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.1) from _call_lb_images2_15 # звук шлепка call rnd_sound(var_dict['sounds']['sl_spank']) from _call_rnd_sound_188 pause 0.1 # красная вспышка call lb_images2(img_1=['other/bgd_red.png'], dis=0.15) from _call_lb_images2_16 # небольшая пауза pause 0.1 # красная вспышка гаснет call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=[], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.5) from _call_lb_images2_17 pause 0.1 # Рука исчезает, НПС немного приближается #call lb_images2(loc='curr', loc_blur=1, img_1=[], ava=0, img_2=[img_npc_zoom], emotion='none', decals=[], scr=1, dis=0.2) # Женский вскирк call rnd_sound(var_dict['sounds']['sl_moan_soft']) from _call_rnd_sound_189 pause 0.3 call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=[], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.3) from _call_lb_images2_18 # пауза pause 1 return # Квест 8 – The inevitable ending label lb_qw_8_love_0_start(npc='', quest=''): menu: 'With whom to start the quest "The inevitable ending"?': pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_8_love_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_8_love_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_8_love): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_8_love.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 2.0: play sound "sounds/error.mp3" 'To start the quest you need 2.0 Love' jump main_cicle # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_2 # Переодевание в халат $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=dress_8) from _call_lb_add_clothe_npc_83 # *** Скрипт диалога *** call dialogue('_dialogues/lb_qw_8_love_0_start.json', npc) from _call_dialogue_31 # Создание копии квеста $ quest = copy_obj(qw_8_love) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '0_start_1' $ var_dict['location'] = sunsity_map call minuts(30) from _call_minuts_103 return label lb_qw_8_love_1(npc='', quest=''): # Проверка на то что ГГ и НПС находятся жилой комнате if var_dict['location'].id == "livingroom_GG_loc" or var_dict['location'].id == "apartment_livingroom": pass else: menu: 'Find your lover in a livingroom': jump main_cicle # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_bra_090 = copy.deepcopy(bra_090) $ quest_bra_090.images[1][4] = 0.05 $ quest_bra_090.images[1][5] = -0.03 $ quest_bra_090.images[1][6] = 1.44 call lb_add_clothe_npc(npc=npc, clothe=quest_bra_090) from _call_lb_add_clothe_npc_84 $ quest_panty_2 = copy.deepcopy(panty_2) $ quest_panty_2.images[1][4] = 0.05 $ quest_panty_2.images[1][5] = -0.03 $ quest_panty_2.images[1][6] = 1.4 call lb_add_clothe_npc(npc=npc, clothe=quest_panty_2) from _call_lb_add_clothe_npc_85 $ quest_top_8 = copy.deepcopy(top_8) $ quest_top_8.images[1][3] = -55 $ quest_top_8.images[1][8] = 0.8 call lb_add_clothe_npc(npc=npc, clothe=quest_top_8) from _call_lb_add_clothe_npc_86 $ quest_bottom_10 = copy.deepcopy(bottom_10) $ quest_bottom_10.images[1][4] = 0.05 $ quest_bottom_10.images[1][5] = -0.18 $ quest_bottom_10.images[1][6] = 1.24 call lb_add_clothe_npc(npc=npc, clothe=quest_bottom_10) from _call_lb_add_clothe_npc_87 $ quest_collar_200 = copy.deepcopy(collar_200) $ quest_collar_200.images[1][5] = -0.12 $ quest_collar_200.images[1][6] = 1.08 call lb_add_clothe_npc(npc=npc, clothe=collar_200) from _call_lb_add_clothe_npc_88 # Скрипт call lb_dialogue(quest) from _call_lb_dialogue play sound "sounds/level_UP.mp3" $ quest.level='1_1' call minuts(180) from _call_minuts_104 return label lb_qw_8_love_2_0(npc='', quest=''): # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_1 play sound "sounds/level_UP.mp3" $ quest.level='2_1' call minuts(30) from _call_minuts_105 return label lb_qw_8_love_2_1(npc='', quest=''): # Проверка на то что ГГ и НПС находятся жилой комнате if var_dict['location'].id == "livingroom_GG_loc" or var_dict['location'].id == "apartment_livingroom": pass else: menu: 'Watching TV together in a livingroom.': jump main_cicle # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_2 play sound "sounds/level_UP.mp3" $ quest.level='3' call minuts(30) from _call_minuts_106 return label lb_qw_8_love_3_0(npc='', quest=''): # Проверка на то что ГГ и НПС находятся на кухне if var_dict['location'].id == "kitchen_GG_loc" or var_dict['location'].id == "apartment_kitchen": pass else: menu: 'Talk to her in the kitchen.': jump main_cicle # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_3 play sound "sounds/level_UP.mp3" $ quest.level='3_1' call minuts(15) from _call_minuts_107 return label lb_qw_8_love_3_1(npc='', quest=''): call lb_images2(loc='curr', loc_blur=1) from _call_lb_images2_19 talker "I glanced through the shelves. I caught a few interesting devices, but pulled myself together." talker "I'm here for a specific purpose." talker "Yep, that's what I was looking for." call lb_images2(loc='curr', loc_blur=1, img_1=['quests/slutty_schoolgirl_outfit.jpg']) from _call_lb_images2_20 pause 1.5 menu: "Buy for 999": if GG.money < 999: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image_fix_size with Dissolve(0.3) return play sound "sounds/money.mp3" talker "Now we need to give it to her in a private place." play sound "sounds/level_UP.mp3" $ quest.level='3_2' "Not": pass hide screen show_image_fix_size with Dissolve(0.3) return label lb_qw_8_love_3_2(npc='', quest=''): # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_4 play sound "sounds/level_UP.mp3" $ quest.level='3_3' # Открыть spank_schoolgirl if 'open_spank_schoolgirl_action' not in var_dict: $ var_dict['open_spank_schoolgirl_action'] = [] $ var_dict['open_spank_schoolgirl_action'].append(npc) talker "Now you can spank [npc.name] in the schoolgirl uniform." call minuts(30) from _call_minuts_108 return label lb_qw_8_love_4_0(npc='', quest=''): # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_5 play sound "sounds/level_UP.mp3" $ quest.level='4_1' call minuts(30) from _call_minuts_109 return label lb_qw_8_love_5_0(npc='', quest=''): call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=0.3) from _call_lb_images2_21 char_GG "- How do you feel about going to a restaurant?" char_npc "- Extremely positive." call lb_images2(img_1=['quests/black.png'], dis=1.5) from _call_lb_images2_22 menu: "After some time": pass # (переодевание девушки в соответствующую одежду) $ npc.clothes = ['Quest'] $ quest_bra_090 = copy.deepcopy(bra_090) $ quest_bra_090.images[1][4] = 0.05 $ quest_bra_090.images[1][5] = -0.03 $ quest_bra_090.images[1][6] = 1.44 call lb_add_clothe_npc(npc=npc, clothe=quest_bra_090) from _call_lb_add_clothe_npc_89 $ quest_panty_2 = copy.deepcopy(panty_2) $ quest_panty_2.images[1][4] = 0.05 $ quest_panty_2.images[1][5] = -0.03 $ quest_panty_2.images[1][6] = 1.4 call lb_add_clothe_npc(npc=npc, clothe=quest_panty_2) from _call_lb_add_clothe_npc_90 $ quest_top_8 = copy.deepcopy(top_8) $ quest_top_8.images[1][3] = -55 $ quest_top_8.images[1][8] = 0.8 call lb_add_clothe_npc(npc=npc, clothe=quest_top_8) from _call_lb_add_clothe_npc_91 $ quest_bottom_10 = copy.deepcopy(bottom_10) $ quest_bottom_10.images[1][4] = 0.05 $ quest_bottom_10.images[1][5] = -0.18 $ quest_bottom_10.images[1][6] = 1.24 call lb_add_clothe_npc(npc=npc, clothe=quest_bottom_10) from _call_lb_add_clothe_npc_92 $ quest_collar_200 = copy.deepcopy(collar_200) $ quest_collar_200.images[1][5] = -0.12 $ quest_collar_200.images[1][6] = 1.08 call lb_add_clothe_npc(npc=npc, clothe=collar_200) from _call_lb_add_clothe_npc_93 # Скрипт call lb_dialogue(quest) from _call_lb_dialogue_6 play sound "sounds/level_UP.mp3" $ quest.level='5_1' call minuts(30) from _call_minuts_110 return label lb_qw_8_love_6_0(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_7 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' # Открыть Missionary_new if 'open_Missionary_new_action' not in var_dict: $ var_dict['open_Missionary_new_action'] = [] $ var_dict['open_Missionary_new_action'].append(npc) talker "A new missionary pose for [npc.name] has been unlocked." talker "Quest completed." call minuts(30) from _call_minuts_111 return # Подсматривание в парке label lb_peep_park_girl_1(): menu: "Spy on the girl (30 min).": show screen show_image_modal(img="random_events/peep_park_girl_1-0.jpg") with Dissolve(0.5) pause 100 # 1 (60%) if def_random_event(probability=0.55): menu: "Not much interesting yet": show screen show_image_modal(img="random_events/peep_park_girl_1-1.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_1-1-zoom.jpg") with Dissolve(0.5) pause 100 # 2 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_1-2.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_1-2-zoom.jpg") with Dissolve(0.5) pause 100 # 3 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_1-3-0.jpg") with Dissolve(0.5) pause 100 menu: "Follow her": show screen show_image_modal(img="random_events/peep_park_girl_1-3-1.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_1-3-1-zoom-1.jpg") with Dissolve(0.5) pause 100 menu: "Look down": show screen show_image_modal(img="random_events/peep_park_girl_1-3-1-zoom-2.jpg") with Dissolve(0.5) pause 100 menu: "End of showing": call minuts(30) from _call_minuts_112 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You haven't seen anything interesting.": pass call minuts(30) from _call_minuts_113 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_park_girl_2(): menu: "Spy on the girl (30 min).": show screen show_image_modal(img="random_events/peep_park_girl_2-1.jpg") with Dissolve(0.5) pause 100 # 1 (60%) if def_random_event(probability=0.55): menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_2-1-zoom.jpg") with Dissolve(0.5) pause 100 # 2 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_2-2.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_2-2-zoom.jpg") with Dissolve(0.5) pause 100 # 3 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_2-3.jpg") with Dissolve(0.5) pause 100 menu: "Follow her": show screen show_image_modal(img="random_events/peep_park_girl_2-4.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_2-4-zoom.jpg") with Dissolve(0.5) pause 100 menu: "End of showing": call minuts(30) from _call_minuts_114 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You haven't seen anything interesting.": pass call minuts(30) from _call_minuts_115 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_park_girl_3(): menu: "Spy on the girl (30 min).": show screen show_image_modal(img="random_events/peep_park_girl_3-1.jpg") with Dissolve(0.5) pause 100 # 1 (60%) if def_random_event(probability=0.55): menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_3-1-zoom.jpg") with Dissolve(0.5) pause 100 # 2 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_3-2-1.jpg") with Dissolve(0.5) pause 100 menu: "Funny": show screen show_image_modal(img="random_events/peep_park_girl_3-2-2.jpg") with Dissolve(0.5) pause 100 # 3 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_3-3-1.jpg") with Dissolve(0.5) pause 100 menu: "Mistake": show screen show_image_modal(img="random_events/peep_park_girl_3-4.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_3-4-zoom.jpg") with Dissolve(0.5) pause 100 menu: "End of showing": call minuts(30) from _call_minuts_116 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You haven't seen anything interesting.": pass call minuts(30) from _call_minuts_117 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_park_girl_4(): menu: "Spy on the girl (30 min).": show screen show_image_modal(img="random_events/peep_park_girl_4-1.jpg") with Dissolve(0.5) pause 100 # 1 (60%) if def_random_event(probability=0.55): menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_4-1-zoom.jpg") with Dissolve(0.5) pause 100 # 2 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_4-2.jpg") with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img="random_events/peep_park_girl_4-2-zoom.jpg") with Dissolve(0.5) pause 100 # 3 (60%) if def_random_event(probability=0.55): menu: "Continue": show screen show_image_modal(img="random_events/peep_park_girl_4-3-1.jpg") with Dissolve(0.5) pause 100 menu: "Follow her": show screen show_image_modal(img="random_events/peep_park_girl_4-3-2.jpg") with Dissolve(0.5) pause 100 menu: "End of showing": call minuts(30) from _call_minuts_118 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You haven't seen anything interesting.": pass call minuts(30) from _call_minuts_119 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_park_return(): hide screen show_image_modal hide screen interaction with Dissolve(0.3) return # Ждать label lb_wait(): call minuts(15) from _call_minuts_120 return # Взаимодействие с маской label lb_mask(): $ list_NPCs = npc_location_list(var_dict['location']) # Нельзя при перемещении с НПС if var_dict['go_npc'] != []: menu: "It does not make sense. She will guess it's me.": return # Дома нельзя if var_dict['location'].id in ["room_GG_loc", "bathroom_GG_loc", "kitchen_GG_loc", "livingroom_GG_loc", "parents_room_GG_loc", "sister_room_GG_loc", "hall_GG_loc"]: menu: "Doing this at home is dangerous, they might recognize me.": return # В апртаментах нельзя if var_dict['location'].id in ["apartment_livingroom", "apartment_bedroom", "apartment_kitchen", "apartment_bathroom"]: menu: "Doing it here is dangerous, I might be recognized.": return # Нет никого if len(list_NPCs) == 0: menu: "Nobody's here.": return # Больше 2-х if len(list_NPCs) > 1: menu: "It's too crowded here.": return # Простой персонаж if len(list_NPCs) == 1 and list_NPCs[0].type == "simply_NPC": menu: "This character is not going to be fun at all.": return # НПС - файл диалога $ npc = list_NPCs[0] call lb_show_npc(npc) from _call_lb_show_npc_117 pause 1 char_npc "- Who are you?" # Попытка 1 play sound "sounds/heart.mp3" menu: "Attack her (10\%)": if "Приставал сегодня" in npc.dict_marks: if npc.dict_marks["Приставал сегодня"] > 0: play sound "sounds/error.mp3" menu: "I already molested her today": hide screen show_image with Dissolve(0.3) return "No": hide screen show_image with Dissolve(0.3) return # Приближение $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(0.3) play sound "sounds/hhe.wav" if def_random_event(probability=0.1): $ file = '_dialogues/mask/' + 'lb_mask_start' + '.json' call dialogue(file, npc) from _call_dialogue_32 call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_134 call lb_show_npc(npc) from _call_lb_show_npc_118 menu: "Be rude": call lb_mask_2(npc, "sub") from _call_lb_mask_2 "No need for cruelty": call lb_mask_2(npc, "lov") from _call_lb_mask_2_1 return else: char_npc "- Back off!" play sound "sounds/hit_soft.mp3" call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_135 call lb_show_npc(npc) from _call_lb_show_npc_119 # Попытка 2 play sound "sounds/heart.mp3" menu: "Attack her (20\%)": pass # Приближение $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(0.3) play sound "sounds/hhe.wav" if def_random_event(probability=0.2): $ file = '_dialogues/mask/' + 'lb_mask_start' + '.json' call dialogue(file, npc) from _call_dialogue_33 call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_136 call lb_show_npc(npc) from _call_lb_show_npc_120 menu: "Be rude": call lb_mask_2(npc, "sub") from _call_lb_mask_2_2 "No need for cruelty": call lb_mask_2(npc, "lov") from _call_lb_mask_2_3 return else: char_npc "- Back off!" play sound "sounds/hit_soft.mp3" call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_137 call lb_show_npc(npc) from _call_lb_show_npc_121 # Попытка 3 play sound "sounds/heart.mp3" menu: "Attack her (40\%)": pass # Приближение $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(0.3) play sound "sounds/hhe.wav" if def_random_event(probability=0.4): $ file = '_dialogues/mask/' + 'lb_mask_start' + '.json' call dialogue(file, npc) from _call_dialogue_34 call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_138 call lb_show_npc(npc) from _call_lb_show_npc_122 menu: "Be rude": call lb_mask_2(npc, "sub") from _call_lb_mask_2_4 "No need for cruelty": call lb_mask_2(npc, "lov") from _call_lb_mask_2_5 return else: char_npc "- Back off!" play sound "sounds/hit_soft.mp3" call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_139 call lb_show_npc(npc) from _call_lb_show_npc_123 play sound "sounds/error.mp3" menu: "Looks like I made a lot of noise. Need to leave.": $ var_dict['location'] = sunsity_map hide screen show_image with Dissolve(0.3) $ add_time(15) return label lb_mask_2(npc, mark): call lb_show_npc(npc) from _call_lb_show_npc_124 $ npc.dict_marks["Приставал сегодня"] = 1 if npc in var_dict['mask_stage_4']: call lb_mask_stage_4(npc, mark) from _call_lb_mask_stage_4 else: if npc in var_dict['mask_stage_3']: call lb_mask_stage_3(npc, mark) from _call_lb_mask_stage_3 else: if npc in var_dict['mask_stage_2']: call lb_mask_stage_2(npc, mark) from _call_lb_mask_stage_2 else: if npc in var_dict['mask_stage_1']: call lb_mask_stage_1(npc, mark) from _call_lb_mask_stage_1 else: call lb_mask_stage_0(npc, mark) from _call_lb_mask_stage_0 hide screen show_image with Dissolve(0.3) $ add_time(60) return label lb_mask_stage_0(npc, mark): if mark == "lov": call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_140 else: call lb_cange_emotion(npc=npc, emotion='_sad') from _call_lb_cange_emotion_141 call lb_show_npc(npc) from _call_lb_show_npc_125 pause 1 menu: "- Kiss Me!": $ sc = "kiss" "Rub her chest": $ sc = "rub_chest" if mark == "lov": char_GG "- Can I touch your chest?" char_npc "- Absolutely not!" char_GG "- I don't really care what you think. I asked just out of courtesy." talker "The girl tried to retreat." char_GG "- Stay where you are!" call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_33 pause 0.3 char_GG "- You have soft breasts." char_npc "- Just like any other breast." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_34 pause 0.3 char_GG "- No, yours is especially soft." char_npc "- As you wish, I don't care." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_35 pause 0.3 else: char_GG "- You have nice boobs." char_npc "- Tha-a-ank" char_GG "- I want to paw." talker "The girl tried to retreat." char_GG "- Stay where you are, bitch!" call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_36 pause 0.3 char_GG "- Natural?" char_npc "- Y-yes." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_37 pause 0.3 char_GG "- Not bad." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_38 pause 0.3 "Rub her ass": $ sc = "rub_ass" if mark == "lov": char_GG "- I think it would be nice to stroke a bottom like yours." char_npc "- Dreaming." char_GG "- You know, I usually make my dreams come true." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_39 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_40 pause 0.3 char_GG "- You see, baby, I'm used to taking what I want." char_npc "- Jerk." play sound "sounds/male_chuckle_short.mp3" char_GG "- I'll take that as a compliment." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_41 pause 0.3 else: char_GG "- I've always been attracted to asses like yours." char_npc "- I don't even know what to say to that." char_GG "- Fool, it's a compliment, you can just say thank you." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_42 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_43 pause 0.3 char_GG "- Don't twitch bitch, otherwise I'll spoil your face." char_npc "- I won't." play sound "sounds/male_chuckle_short.mp3" char_GG "- That's right, be obedient." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_44 pause 0.3 "Let go girl": jump lb_end_mask hide screen show_in_senter with Dissolve(0.3) call lb_mask_3(npc, mark, sc, return_call="lb_mask_stage_0") from _call_lb_mask_3 $ var_dict['mask_stage_1'].append(npc) return label lb_mask_stage_1(npc, mark): if mark == "lov": call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_142 else: call lb_cange_emotion(npc=npc, emotion='_sad') from _call_lb_cange_emotion_143 call lb_show_npc(npc) from _call_lb_show_npc_126 pause 1 menu: "- Kiss Me!": $ sc = "kiss" "Rub her chest": $ sc = "rub_chest" if mark == "lov": char_GG "- Can I touch your chest?" char_npc "- Absolutely not!" char_GG "- I don't really care what you think. I asked just out of courtesy." talker "The girl tried to retreat." char_GG "- Stay where you are!" call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_45 pause 0.3 char_GG "- You have soft breasts." char_npc "- Just like any other breast." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_46 pause 0.3 char_GG "- No, yours is especially soft." char_npc "- As you wish, I don't care." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_47 pause 0.3 else: char_GG "- You have nice boobs." char_npc "- Tha-a-ank" char_GG "- I want to paw." talker "The girl tried to retreat." char_GG "- Stay where you are, bitch!" call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_48 pause 0.3 char_GG "- Natural?" char_npc "- Y-yes." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_49 pause 0.3 char_GG "- Not bad." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_50 pause 0.3 "Rub her ass": $ sc = "rub_ass" if mark == "lov": char_GG "- I think it would be nice to stroke a bottom like yours." char_npc "- Dreaming." char_GG "- You know, I usually make my dreams come true." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_51 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_52 pause 0.3 char_GG "- You see, baby, I'm used to taking what I want." char_npc "- Jerk." play sound "sounds/male_chuckle_short.mp3" char_GG "- I'll take that as a compliment." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_53 pause 0.3 else: char_GG "- I've always been attracted to asses like yours." char_npc "- I don't even know what to say to that." char_GG "- Fool, it's a compliment, you can just say thank you." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_54 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_55 pause 0.3 char_GG "- Don't twitch bitch, otherwise I'll spoil your face." char_npc "- I won't." play sound "sounds/male_chuckle_short.mp3" char_GG "- That's right, be obedient." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_56 pause 0.3 "- Get undressed!": $ sc = "undress" "- Show your bare chest!": $ sc = "show_chest" "- Get on all fours!": $ sc = "all_fours" "Let go girl": jump lb_end_mask hide screen show_in_senter with Dissolve(0.3) call lb_mask_3(npc, mark, sc, return_call="lb_mask_stage_1") from _call_lb_mask_3_1 $ var_dict['mask_stage_2'].append(npc) return label lb_mask_stage_2(npc, mark): if mark == "lov": call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_144 else: call lb_cange_emotion(npc=npc, emotion='_sad') from _call_lb_cange_emotion_145 call lb_show_npc(npc) from _call_lb_show_npc_127 pause 1 menu: "- Kiss Me!": $ sc = "kiss" "Rub her chest": $ sc = "rub_chest" if mark == "lov": char_GG "- Can I touch your chest?" char_npc "- Absolutely not!" char_GG "- I don't really care what you think. I asked just out of courtesy." talker "The girl tried to retreat." char_GG "- Stay where you are!" call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_57 pause 0.3 char_GG "- You have soft breasts." char_npc "- Just like any other breast." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_58 pause 0.3 char_GG "- No, yours is especially soft." char_npc "- As you wish, I don't care." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_59 pause 0.3 else: char_GG "- You have nice boobs." char_npc "- Tha-a-ank" char_GG "- I want to paw." talker "The girl tried to retreat." char_GG "- Stay where you are, bitch!" call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_60 pause 0.3 char_GG "- Natural?" char_npc "- Y-yes." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_61 pause 0.3 char_GG "- Not bad." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_62 pause 0.3 "Rub her ass": $ sc = "rub_ass" if mark == "lov": char_GG "- I think it would be nice to stroke a bottom like yours." char_npc "- Dreaming." char_GG "- You know, I usually make my dreams come true." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_63 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_64 pause 0.3 char_GG "- You see, baby, I'm used to taking what I want." char_npc "- Jerk." play sound "sounds/male_chuckle_short.mp3" char_GG "- I'll take that as a compliment." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_65 pause 0.3 else: char_GG "- I've always been attracted to asses like yours." char_npc "- I don't even know what to say to that." char_GG "- Fool, it's a compliment, you can just say thank you." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_66 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_67 pause 0.3 char_GG "- Don't twitch bitch, otherwise I'll spoil your face." char_npc "- I won't." play sound "sounds/male_chuckle_short.mp3" char_GG "- That's right, be obedient." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_68 pause 0.3 "- Get undressed!": $ sc = "undress" "- Show your bare chest!": $ sc = "show_chest" "- Get on all fours!": $ sc = "all_fours" "Rub her bare chest.": $ sc = "rub_bare_chest" "Grope between legs.": $ sc = "grope_between_legs" "- Masturbate for me!": $ sc = "masturbate" "Let go girl": jump lb_end_mask hide screen show_in_senter with Dissolve(0.3) call lb_mask_3(npc, mark, sc, return_call="lb_mask_stage_2") from _call_lb_mask_3_2 $ var_dict['mask_stage_3'].append(npc) return label lb_mask_stage_3(npc, mark): if mark == "lov": call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_146 else: call lb_cange_emotion(npc=npc, emotion='_sad') from _call_lb_cange_emotion_147 call lb_show_npc(npc) from _call_lb_show_npc_128 pause 1 menu: "- Kiss Me!": $ sc = "kiss" "Rub her chest": $ sc = "rub_chest" if mark == "lov": char_GG "- Can I touch your chest?" char_npc "- Absolutely not!" char_GG "- I don't really care what you think. I asked just out of courtesy." talker "The girl tried to retreat." char_GG "- Stay where you are!" call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_69 pause 0.3 char_GG "- You have soft breasts." char_npc "- Just like any other breast." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_70 pause 0.3 char_GG "- No, yours is especially soft." char_npc "- As you wish, I don't care." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_71 pause 0.3 else: char_GG "- You have nice boobs." char_npc "- Tha-a-ank" char_GG "- I want to paw." talker "The girl tried to retreat." char_GG "- Stay where you are, bitch!" call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_72 pause 0.3 char_GG "- Natural?" char_npc "- Y-yes." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_73 pause 0.3 char_GG "- Not bad." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_74 pause 0.3 "Rub her ass": $ sc = "rub_ass" if mark == "lov": char_GG "- I think it would be nice to stroke a bottom like yours." char_npc "- Dreaming." char_GG "- You know, I usually make my dreams come true." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_75 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_76 pause 0.3 char_GG "- You see, baby, I'm used to taking what I want." char_npc "- Jerk." play sound "sounds/male_chuckle_short.mp3" char_GG "- I'll take that as a compliment." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_77 pause 0.3 else: char_GG "- I've always been attracted to asses like yours." char_npc "- I don't even know what to say to that." char_GG "- Fool, it's a compliment, you can just say thank you." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_78 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_79 pause 0.3 char_GG "- Don't twitch bitch, otherwise I'll spoil your face." char_npc "- I won't." play sound "sounds/male_chuckle_short.mp3" char_GG "- That's right, be obedient." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_80 pause 0.3 "- Get undressed!": $ sc = "undress" "- Show your bare chest!": $ sc = "show_chest" "- Get on all fours!": $ sc = "all_fours" "Rub her bare chest.": $ sc = "rub_bare_chest" "Grope between legs.": $ sc = "grope_between_legs" "- Masturbate for me!": $ sc = "masturbate" "Handjob": $ sc = "handjob" "Blowjob": $ sc = "blowjob" "Let go girl": jump lb_end_mask hide screen show_in_senter with Dissolve(0.3) call lb_mask_3(npc, mark, sc, return_call="lb_mask_stage_3") from _call_lb_mask_3_3 $ var_dict['mask_stage_4'].append(npc) return label lb_mask_stage_4(npc, mark): if mark == "lov": call lb_cange_emotion(npc=npc, emotion='_angry') from _call_lb_cange_emotion_148 else: call lb_cange_emotion(npc=npc, emotion='_sad') from _call_lb_cange_emotion_149 call lb_show_npc(npc) from _call_lb_show_npc_129 pause 1 menu: "- Kiss Me!": $ sc = "kiss" "Rub her chest": $ sc = "rub_chest" if mark == "lov": char_GG "- Can I touch your chest?" char_npc "- Absolutely not!" char_GG "- I don't really care what you think. I asked just out of courtesy." talker "The girl tried to retreat." char_GG "- Stay where you are!" call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_81 pause 0.3 char_GG "- You have soft breasts." char_npc "- Just like any other breast." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_82 pause 0.3 char_GG "- No, yours is especially soft." char_npc "- As you wish, I don't care." call touching_act(npc, "paw breast", emo='_angry') from _call_touching_act_83 pause 0.3 else: char_GG "- You have nice boobs." char_npc "- Tha-a-ank" char_GG "- I want to paw." talker "The girl tried to retreat." char_GG "- Stay where you are, bitch!" call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_84 pause 0.3 char_GG "- Natural?" char_npc "- Y-yes." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_85 pause 0.3 char_GG "- Not bad." call touching_act(npc, "paw breast", emo='_sad') from _call_touching_act_86 pause 0.3 "Rub her ass": $ sc = "rub_ass" if mark == "lov": char_GG "- I think it would be nice to stroke a bottom like yours." char_npc "- Dreaming." char_GG "- You know, I usually make my dreams come true." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_87 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_88 pause 0.3 char_GG "- You see, baby, I'm used to taking what I want." char_npc "- Jerk." play sound "sounds/male_chuckle_short.mp3" char_GG "- I'll take that as a compliment." call touching_act(npc, "paw butt", emo='_angry') from _call_touching_act_89 pause 0.3 else: char_GG "- I've always been attracted to asses like yours." char_npc "- I don't even know what to say to that." char_GG "- Fool, it's a compliment, you can just say thank you." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_90 pause 0.3 talker "My hand rested on the curve of her body. The girl flinched but stopped." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_91 pause 0.3 char_GG "- Don't twitch bitch, otherwise I'll spoil your face." char_npc "- I won't." play sound "sounds/male_chuckle_short.mp3" char_GG "- That's right, be obedient." call touching_act(npc, "paw butt", emo='_sad') from _call_touching_act_92 pause 0.3 "- Get undressed!": $ sc = "undress" "- Show your bare chest!": $ sc = "show_chest" "- Get on all fours!": $ sc = "all_fours" "Rub her bare chest.": $ sc = "rub_bare_chest" "Grope between legs.": $ sc = "grope_between_legs" "- Masturbate for me!": $ sc = "masturbate" "Handjob": $ sc = "handjob" "Blowjob": $ sc = "blowjob" "Fuck her.": $ sc = "fuck" "- Jump on my dick!": $ sc = "cow_fuck" "Fuck her in the ass": $ sc = "ass_fuck" "Let go girl": jump lb_end_mask hide screen show_in_senter with Dissolve(0.3) call lb_mask_3(npc, mark, sc, return_call="lb_mask_stage_4") from _call_lb_mask_3_4 return label lb_mask_3(npc, mark, sc, return_call): if sc == "rub_chest" or sc == "rub_ass": pass else: $ file = '_dialogues/mask/' + 'lb_mask_' + sc + "_" + mark +'.json' call dialogue(file, npc) from _call_dialogue_35 $ renpy.call(return_call, npc=npc, mark=mark) return label lb_end_mask(): talker "I think I made a lot of noise. I need to cover my tracks." $ var_dict['location'] = sunsity_map hide screen show_image with Dissolve(0.3) return # Подглядывание в спортзале - peep gym label lb_peep_gym_girl_1(): menu: "Spy on the girl (15 min).": # (75%) if def_random_event(probability=0.75): show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][0]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][1]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][2]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][3]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][4]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][5]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][6]) with Dissolve(0.5) pause 100 # ЧАСТЬ II # Проверка установлена ли камера if hasattr(college_locker_room, 'features') and 'spycam_on' in college_locker_room.features: # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][7]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][8]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][9]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl1_list'][10]) with Dissolve(0.5) pause 100 call minuts(15) from _call_minuts_121 menu: "End of showing": play sound "sounds/level_UP.mp3" hide screen show_image_modal hide screen interaction with Dissolve(0.3) return else: menu: "To see what happens next you need to install a camera in the locker room.": call minuts(15) from _call_minuts_122 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You won't see anything else this time.": pass call minuts(15) from _call_minuts_123 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_gym_girl_2(): menu: "Spy on the girl (15 min).": # (75%) if def_random_event(probability=0.75): show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][0]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][1]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][2]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][3]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][4]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][5]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][6]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][7]) with Dissolve(0.5) pause 100 # ЧАСТЬ II # Проверка установлена ли камера if hasattr(college_locker_room, 'features') and 'spycam_on' in college_locker_room.features: # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][8]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][9]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][10]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl2_list'][11]) with Dissolve(0.5) pause 100 call minuts(15) from _call_minuts_124 menu: "End of showing": play sound "sounds/level_UP.mp3" hide screen show_image_modal hide screen interaction with Dissolve(0.3) return else: menu: "To see what happens next you need to install a camera in the locker room.": call minuts(15) from _call_minuts_125 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You won't see anything else this time.": pass call minuts(15) from _call_minuts_126 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_gym_girl_3(): menu: "Spy on the girl (15 min).": # (75%) if def_random_event(probability=0.75): show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][0]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][1]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][2]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][3]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][4]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][5]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][6]) with Dissolve(0.5) pause 100 # ЧАСТЬ II # Проверка установлена ли камера if hasattr(college_locker_room, 'features') and 'spycam_on' in college_locker_room.features: # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][7]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][8]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][9]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl3_list'][10]) with Dissolve(0.5) pause 100 call minuts(15) from _call_minuts_127 menu: "End of showing": play sound "sounds/level_UP.mp3" hide screen show_image_modal hide screen interaction with Dissolve(0.3) return else: menu: "To see what happens next you need to install a camera in the locker room.": call minuts(15) from _call_minuts_128 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You won't see anything else this time.": pass call minuts(15) from _call_minuts_129 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_gym_girl_4(): menu: "Spy on the girl (15 min).": # (75%) if def_random_event(probability=0.75): show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][0]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][1]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][2]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][3]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][4]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][5]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][6]) with Dissolve(0.5) pause 100 menu: "Look closer": show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][7]) with Dissolve(0.5) pause 100 # ЧАСТЬ II # Проверка установлена ли камера if hasattr(college_locker_room, 'features') and 'spycam_on' in college_locker_room.features: # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][8]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][9]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][10]) with Dissolve(0.5) pause 100 # (75%) if def_random_event(probability=0.75): menu: "Continue": pass show screen show_image_modal(img=var_dict['peep_gym_girl4_list'][11]) with Dissolve(0.5) pause 100 call minuts(15) from _call_minuts_130 menu: "End of showing": play sound "sounds/level_UP.mp3" hide screen show_image_modal hide screen interaction with Dissolve(0.3) return else: menu: "To see what happens next you need to install a camera in the locker room.": call minuts(15) from _call_minuts_131 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return menu: "You won't see anything else this time.": pass call minuts(15) from _call_minuts_132 hide screen show_image_modal hide screen interaction with Dissolve(0.3) return label lb_peep_gym_return(): hide screen show_image_modal hide screen interaction with Dissolve(0.3) return # Квест о пользе контрольных. label lb_qw_7_lesbo_0_start(npc='', quest=''): # Назначить училку npc $ npc = def_return_NPC_for_ID("Abigail-131300342524266449864013883073006093449") $ name_char = npc.name call dialogue('_dialogues/lb_qw_7_lesbo_0_start.json', npc) from _call_dialogue_36 #(открыть лесбогёрл) $ var_dict['lesbogirl_open'] = "yes" $ qw_7_lesbo.level='1' #(Добавить время) call minuts(50) from _call_minuts_133 return label lb_qw_7_lesbo_1(npc='', quest=''): show screen show_image_fix_size(['act_obj/lesbogirl_act.jpg']) hide screen show_image_modal with Dissolve(0) call dialogue('_dialogues/lb_qw_7_lesbo_1.json', npc) from _call_dialogue_37 play sound "sounds/level_UP.mp3" $ qw_7_lesbo.level='2' call minuts(5) from _call_minuts_134 return label lb_qw_7_lesbo_2(npc='', quest=''): # Покупка журнала call dialogue('_dialogues/lb_qw_7_lesbo_2.json', npc) from _call_dialogue_38 menu: "Buy for 149": pass "Not": jump main_cicle # Проверка на свободное место $ check = def_check_free_space_inventary(inv_GG) if check == False: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") return # Проверка на наличие денег if GG.money < 149: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image_fix_size with Dissolve(0.3) return play sound "sounds/money.mp3" $ GG.money -= 149 # Создание копии квеста и привязка его к объекту $ temp_quest = copy_obj(qw_7_lesbo) $ temp_quest.level = '3' $ temp_obj = copy_obj(qw_lesbo_magazine) $ temp_obj.features.append(copy_obj(temp_quest)) $ inv_GG.cells.append(copy_obj(temp_obj)) talker 'Now we need to give it to her in a private place.' play sound "sounds/level_UP.mp3" hide screen show_image_fix_size play sound "sounds/level_UP.mp3" jump main_cicle label lb_qw_7_lesbo_3(npc='', quest=''): # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) call lb_dialogue(quest) from _call_lb_dialogue_8 play sound "sounds/level_UP.mp3" $ quest.level='3w' call minuts(15) from _call_minuts_135 return label lb_qw_7_lesbo_4(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_9 play sound "sounds/level_UP.mp3" $ quest.level='4w' call minuts(15) from _call_minuts_136 return label lb_qw_7_lesbo_5(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_10 # Открыть watch_masturbate if 'open_watch_masturbate_1_action' not in var_dict: $ var_dict['open_watch_masturbate_1_action'] = [] $ var_dict['open_watch_masturbate_1_action'].append(npc) play sound "sounds/level_UP.mp3" $ quest.level='5w' talker "Now you can watch [npc.name] masturbate for you." call minuts(15) from _call_minuts_137 return label lb_qw_7_lesbo_6(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_11 play sound "sounds/level_UP.mp3" $ quest.level='7' call minuts(15) from _call_minuts_138 return label lb_qw_7_lesbo_7(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_12 play sound "sounds/level_UP.mp3" $ quest.level='7w' call minuts(15) from _call_minuts_139 return label lb_qw_7_lesbo_8(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_13 play sound "sounds/level_UP.mp3" $ quest.level='90' # Открыть lesbo_sex if 'open_lesbo_sex_1_action' not in var_dict: $ var_dict['open_lesbo_sex_1_action'] = [] $ var_dict['open_lesbo_sex_1_action'].append(npc) talker "Now you can watch lesbian sex with [npc.name]." call minuts(15) from _call_minuts_140 return label lb_qw_7_lesbo_90(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_14 play sound "sounds/level_UP.mp3" $ quest.level='90w' call minuts(15) from _call_minuts_141 return label lb_qw_7_lesbo_91(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_15 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' # Открыть threesome_lesbo if 'open_threesome_lesbo_action' not in var_dict: $ var_dict['open_threesome_lesbo_action'] = [] $ var_dict['open_threesome_lesbo_action'].append(npc) talker "Now you can participate in a threesome with a Lesbogirl and [npc.name]." talker "Quest completed." call minuts(15) from _call_minuts_142 return # Действия внутри апартаментов при взломе label lb_use_lockpick_appartment_action(loc, owner, doing): # Холодильник необследован if check_food == "false": menu: # Снотворное "Add sleeping pills": # Проверка добавлено ли уже снотворное if "Пила снотворное" not in owner.dict_marks: $ owner.dict_marks["Пила снотворное"] = 0 # Уже под действием снотворного if owner.dict_marks["Пила снотворное"] > 0: menu: "Already under the influence of sleeping pills": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action return # Проверка есть ли снотворное $ list_sleep_pills = list_obj_feature(inv_GG, "снотворное") # Есть снотворное if len(list_sleep_pills) > 0: pass # Нет снотвороного else: menu: "I have no sleeping pills": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_1 return play sound "sounds/creak_floorboard.mp3" pause 0.3 show screen show_image(img="images/locations/apartment_kitchen.jpg") with Dissolve(0.7) pause 0.7 play sound "sounds/drugs.mp3" pause 2 # Добавление свойства "Пила снотворное" к npc $ owner.dict_marks["Пила снотворное"] = 1 menu: "Sleeping pills has been successfully applied": pass # Удаление таблетки и пустого бутылька python: for feat in list_sleep_pills[0].features: if isinstance(feat, list): if feat[0] == 'spend': feat[1] -= 1 # Удаление объекта if feat[1] <= 0: inv_GG.cells.remove(list_sleep_pills[0]) play sound "sounds/creak_floorboard.mp3" pause 0.3 show screen show_image(img="images/locations/livingroom_com.jpg") with Dissolve(0.7) call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_2 return # Установить камеру "Install spy camera": # Проверка на наличие камеры в инвентаре $ list_spy_cameras = list_obj_feature(inv_GG, 'spycam') # Есть камера if len(list_spy_cameras) > 0: pass # Нет камеры else: menu: "I don't have a spy camera.": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_3 return # Куда устанавливать камеру? menu: "Where to install the camera?" "Livingroom": $ location_install_spy = apartment_livingroom "Bedroom": $ location_install_spy = apartment_bedroom "Kitchen": $ location_install_spy = apartment_kitchen "Bathroom": $ location_install_spy = apartment_bathroom "Not": $ location_install_spy = "Not" # Текущие апартаменты $ current_apprtment_id = def_return_apart_NPC(owner).id if current_apprtment_id not in var_dict['apartment_spy']: $ var_dict['apartment_spy'][current_apprtment_id] = [] # Проверка установлена ли камера уже if location_install_spy in var_dict['apartment_spy'][current_apprtment_id]: menu: "The camera is already installed there.": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_4 return play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 # Удаление камеры из инветаря $ inv = var_dict['inventary'] # текущий инвентарь $ del_obj(list_spy_cameras[0], inv_GG) # Запись об установленной камере $ var_dict['apartment_spy'][current_apprtment_id].append(location_install_spy) play sound "sounds/level_UP.mp3" call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_5 return # Обследовать холодильник "Inspect the fridge": $ rnd_food_name = rnd_food.name menu: "Take [rnd_food_name]": play sound "sounds/whip.mp3" $ obj_in_inv(rnd_food, inv_GG) $ check_food = "true" "Not": pass call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_6 return # Уйти "Leave": pass # Холодильник обследован else: menu: # Снотворное "Add sleeping pills": # Проверка добавлено ли уже снотворное if "Пила снотворное" not in owner.dict_marks: $ owner.dict_marks["Пила снотворное"] = 0 # Уже под действием снотворного if owner.dict_marks["Пила снотворное"] > 0: menu: "Already under the influence of sleeping pills": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_7 return # Проверка есть ли снотворное $ list_sleep_pills = list_obj_feature(inv_GG, "снотворное") # Есть снотворное if len(list_sleep_pills) > 0: pass # Нет снотвороного else: menu: "I have no sleeping pills": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_8 return play sound "sounds/creak_floorboard.mp3" pause 0.3 show screen show_image(img="images/locations/apartment_kitchen.jpg") with Dissolve(0.7) pause 0.7 play sound "sounds/drugs.mp3" pause 2 # Добавление свойства "Пила снотворное" к npc $ owner.dict_marks["Пила снотворное"] = 1 menu: "Sleeping pills has been successfully applied": pass # Удаление таблетки и пустого бутылька python: for feat in list_sleep_pills[0].features: if isinstance(feat, list): if feat[0] == 'spend': feat[1] -= 1 # Удаление объекта if feat[1] <= 0: inv = var_dict['inventary'] # текущий инвентарь inv.cells.remove(list_sleep_pills[0]) play sound "sounds/creak_floorboard.mp3" pause 0.3 show screen show_image(img="images/locations/livingroom_com.jpg") with Dissolve(0.7) call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_9 return # Установить камеру "Install spy camera": # Проверка на наличие камеры в инвентаре $ list_spy_cameras = list_obj_feature(inv_GG, 'spycam') # Есть камера if len(list_spy_cameras) > 0: pass # Нет камеры else: menu: "I don't have a spy camera.": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_10 return # Куда устанавливать камеру? menu: "Where to install the camera?" "Livingroom": $ location_install_spy = apartment_livingroom "Bedroom": $ location_install_spy = apartment_bedroom "Kitchen": $ location_install_spy = apartment_kitchen "Bathroom": $ location_install_spy = apartment_bathroom "Not": $ location_install_spy = "Not" # Текущие апартаменты $ current_apprtment_id = def_return_apart_NPC(owner).id if current_apprtment_id not in var_dict['apartment_spy']: $ var_dict['apartment_spy'][current_apprtment_id] = [] # Проверка установлена ли камера уже if location_install_spy in var_dict['apartment_spy'][current_apprtment_id]: menu: "The camera is already installed there.": call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_11 return play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 # Удаление камеры из инветаря $ inv = var_dict['inventary'] # текущий инвентарь $ del_obj(list_spy_cameras[0], inv_GG) # Запись об установленной камере $ var_dict['apartment_spy'][current_apprtment_id].append(location_install_spy) play sound "sounds/level_UP.mp3" call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_12 return # Уйти "Leave": pass return # Использование отмычки в апратаментах label lb_use_lockpick_appartment(loc, owner, doing): # Отмычка $ list_lockpicks = list_obj_feature(inv_GG, "отмычка") # Есть отмычка if len(list_lockpicks) > 0: pass # Нет отмычки else: play sound "sounds/door_locked.mp3" menu: "I don't have a lockpick (I think I can talk to the dealer in the park about this)": return play sound "sounds/lockpick.mp3" pause 3 # Присутствие дома $ NPC_list = npc_location_list(loc) # Не дома if NPC_list == []: pass # Дома else: # Под действием снотворного if "Пила снотворное" not in owner.dict_marks: $ owner.dict_marks["Пила снотворное"] = 0 if owner.dict_marks["Пила снотворное"] > 0: menu: "The owner is under the influence of sleeping pills. Go to the bedroom?": $ var_dict['previous_sleep_location'] = var_dict['location'] call lb_sleep_sex(owner) from _call_lb_sleep_sex return "Not": pass else: # Не под действием снотворного play sound "sounds/who.mp3" pause 1.5 menu: "Damn, it looks like someone's in home! I must get out.": return # Внутри play sound "sounds/door_squeak.mp3" pause 0.5 show screen show_image(img="images/locations/livingroom_com.jpg") with Dissolve(0.7) pause 1 # Отнять отмычку $ del_obj(list_lockpicks[0], inv_GG) # Действия внутри $ check_food = "false" # Получить случайный объект из магазина еды не дороже 500 $ check_while = "continue" while check_while == "continue": $ rnd_food = copy_obj(random.choice(shop_food_mall.cells)) if rnd_food.money < 298: $ check_while = "stop" call lb_use_lockpick_appartment_action(loc, owner, doing) from _call_lb_use_lockpick_appartment_action_13 # Конец play sound "sounds/door_close_hard.mp3" hide screen show_image with Dissolve(0.5) call minuts(15) from _call_minuts_143 return # Чуть не утонул пойдя плавать пьяным label lb_drunk_swim: play sound "sounds/swimming.mp3" pause 1.5 show screen show_image_above(img='other/drowning.jpg') with Dissolve(0.7) stop music fadeout 0.7 play sound "sounds/drowning.mp3" pause 10 play sound 'sounds/heart.mp3' show screen show_image("images/other/bgd_black.png") hide screen show_image_above hide screen show_image_modal hide screen inventary hide screen interaction hide screen info with Dissolve(1.5) menu: 'It must have been a bad idea to go swimming drunk.': pass $ var_dict['location'] = hospital_room menu: 'Lucky I survived.': pass hide screen show_image with Dissolve(0.5) $ GG.food = 25.0 $ GG.water = 50.0 call minuts(0) from _call_minuts_144 return # Секс во сне label lb_sleep_sex(npc): if npc.dict_marks["Пила снотворное"] == 0: pass else: show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) call show_scene(npc, s_Under_cover) from _call_show_scene_621 pause 0.5 talker "I hope I haven’t come in too early. I need to wait until [npc.name]’s in a deep sleep." talker "Hmm… She doesn’t seem to have moved since I opened the door." play sound "sounds/hmm_man.mp3" pause 0.5 talker "I listened." pause 2 talker "Ok, she really seems to be asleep." talker "I reached for the light switch." play sound "sounds/switch.mp3" pause 0.1 hide screen show_image_above pause 0.5 menu: "Pull off the covers and undress the girl": pass play sound "sounds/clothe.mp3" call show_scene(npc, s_Nude_bed, dis=2.3) from _call_show_scene_622 $ npc.clothes = ['Nude'] pause 3 # Стадия 1 if npc not in var_dict['sleep_sex_stage_2'] and npc not in var_dict['sleep_sex_stage_3']: menu: "Paw": call lb_sleep_sex_stage_1(npc) from _call_lb_sleep_sex_stage_1 "Go away": pass # Стадия 2 elif npc in var_dict['sleep_sex_stage_2'] and npc not in var_dict['sleep_sex_stage_3']: menu: "Paw": call lb_sleep_sex_stage_1(npc) from _call_lb_sleep_sex_stage_1_1 "Mouth": call lb_sleep_sex_stage_2(npc) from _call_lb_sleep_sex_stage_2 "Go away": pass # Стадия 3 elif npc in var_dict['sleep_sex_stage_3']: menu: "Paw": call lb_sleep_sex_stage_1(npc) from _call_lb_sleep_sex_stage_1_2 "Mouth": call lb_sleep_sex_stage_2(npc) from _call_lb_sleep_sex_stage_2_1 "Fuck": call lb_sleep_sex_stage_3(npc) from _call_lb_sleep_sex_stage_3 "Go away": pass $ var_dict['location'] = var_dict['previous_sleep_location'] call minuts(5) from _call_minuts_145 play sound "sounds/switch.mp3" hide screen show_scn with Dissolve(1) pause 0.7 play sound "sounds/door_squeak.mp3" return # Стадия 1 label lb_sleep_sex_stage_1(npc): call dialogue("_dialogues/lb_sleep_sex_stage_1.json", npc) from _call_dialogue_39 $ var_dict['sleep_sex_stage_2'].append(npc) $ npc.dict_marks["Пила снотворное"] = 0; call lb_sleep_sex(npc) from _call_lb_sleep_sex_1 return # Стадия 2 label lb_sleep_sex_stage_2(npc): call dialogue("_dialogues/lb_sleep_sex_stage_2.json", npc) from _call_dialogue_40 $ var_dict['sleep_sex_stage_3'].append(npc) $ npc.dict_marks["Пила снотворное"] = 0; call lb_sleep_sex(npc) from _call_lb_sleep_sex_2 return # Стадия 3 label lb_sleep_sex_stage_3(npc): call dialogue("_dialogues/lb_sleep_sex_stage_3.json", npc) from _call_dialogue_41 $ npc.dict_marks["Пила снотворное"] = 0; call lb_sleep_sex(npc) from _call_lb_sleep_sex_3 return # Квест Пляжный сезон label lb_qw_6_beach_season_0_start(npc='', quest=''): show screen show_image_fix_size(img_list=['act_obj/beach_blur.jpg']) with Dissolve(0.5) talker 'Nice weather. Many beautiful half-naked girls. What else do I need to be happy?' play sound 'sounds/male_chuckle_short.mp3' talker 'Something. More precisely, someone.' menu: "Who do I need here?": pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_6_beach_season_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_6_beach_season_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_6_beach_season): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_6_beach_season.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста call lb_check_quest_start(npc=npc, quest=qw_6_beach_season) from _call_lb_check_quest_start hide screen show_image_fix_size with Dissolve(0.5) return label lb_qw_6_beach_season_1(npc='', quest=''): $ var_dict['dressing_up'] = [qw6_bikini_bottom_155, qw6_bikini_top_155] call lb_dialogue(quest) from _call_lb_dialogue_16 # # Пляж # $ var_dict['location'] = beach play sound "sounds/level_UP.mp3" $ quest.level = '2' call minuts(60) from _call_minuts_146 return label lb_qw_6_beach_season_3(npc='', quest=''): menu: "Go to the beach with [npc.name].": $ var_dict['dressing_up'] = [qw6_bikini_bottom_155, qw6_bikini_top_155] call lb_dialogue(quest) from _call_lb_dialogue_17 play sound "sounds/level_UP.mp3" $ quest.level = '4' $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#d53232}Friend/Anger: +100{/color}{p=0}' call minuts(60) from _call_minuts_147 "Not this time.": pass return label lb_qw_6_beach_season_4(npc='', quest=''): menu: "Talk about what happened on the beach.": call lb_dialogue(quest) from _call_lb_dialogue_18 play sound "sounds/level_UP.mp3" $ quest.level = '5' "Not this time.": pass return label lb_qw_6_beach_season_5(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_19 menu: "Buy micro bikini (600).": # Проверка на наличие денег if GG.money < 600: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image_fix_size with Dissolve(0.3) return play sound "sounds/money.mp3" $ GG.money -= 600 talker 'I\'ll give it to her.' play sound "sounds/level_UP.mp3" $ quest.level = '6' "Not.": pass hide screen show_image_fix_size with Dissolve(0.5) jump main_cicle return label lb_qw_6_beach_season_7(npc='', quest=''): menu: "Go to the beach with [npc.name].": $ var_dict['dressing_up'] = [qw6_bikini_bottom_155, qw6_bikini_top_155] $ var_dict['dressing_up_2'] = [qw6_bikini_bottom_155] $ var_dict['dressing_up_3'] = [bikini] call lb_dialogue(quest) from _call_lb_dialogue_20 play sound "sounds/level_UP.mp3" $ quest.level = '8' call minuts(60) from _call_minuts_148 "Not this time.": pass return label lb_qw_6_beach_season_8(npc='', quest=''): menu: "Asking why she ran away from the beach so suddenly?": call lb_dialogue(quest) from _call_lb_dialogue_21 play sound "sounds/level_UP.mp3" $ quest.level = '9' call minuts(10) from _call_minuts_149 "Not now.": pass return label lb_qw_6_beach_season_10(npc='', quest=''): $ var_dict['dressing_up'] = [bikini] $ var_dict['dressing_up_2'] = [] call lb_dialogue(quest) from _call_lb_dialogue_22 play sound "sounds/level_UP.mp3" $ quest.level = '92' call minuts(60) from _call_minuts_150 return label lb_qw_6_beach_season_12(npc='', quest=''): $ var_dict['dressing_up'] = [bikini] $ var_dict['dressing_up_2'] = [] call lb_dialogue(quest) from _call_lb_dialogue_23 play sound "sounds/level_UP.mp3" $ quest.level = '94' call minuts(60) from _call_minuts_151 return label lb_qw_6_beach_season_14(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_24 # Открыть тройничок if 'open_threesome_1_action' not in var_dict: $ var_dict['open_threesome_1_action'] = [] $ var_dict['open_threesome_1_action'].append(npc) $ npc.dict_skill['Friend/Anger'] -= 1.0 talker '{color=#d53232}Friend/Anger: -1.0{/color}{p=0}' talker "Now you can go threesome with [npc.name]." play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' call minuts(60) from _call_minuts_152 return # Проверка на условия старта квеста label lb_check_quest_start(npc='', quest=''): $ check = True $ temp_dict = quest.dict['0_start'] # Проверка на условие Love и Submission и Angry if npc != '': # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: play sound "sounds/error.mp3" menu: '[npc.name] is angry with me.': return $ love_quest = quest.dict['0_start']['Love'] $ submission_quest = quest.dict['0_start']['Submission'] # Проверка не нужна if love_quest == '' and submission_quest == '': pass # Проверка нужна else: # Определение типа прохождения if love_quest == '': $ type_flow = 'Submission' if submission_quest == '': $ type_flow = 'Love' if love_quest != '' and submission_quest != '': $ type_flow = 'Love' if npc.dict_skill['Submission'] > npc.dict_skill['Love']: $ type_flow = 'Submission' # Условие if type_flow == 'Love': if npc.dict_skill['Love'] < love_quest: $ check = False if type_flow == 'Submission': if npc.dict_skill['Submission'] < submission_quest: $ check = False # Проверка пройдена if check: pass # Проверка не пройдена else: play sound "sounds/error.mp3" if love_quest != '' and submission_quest != '': menu: 'Need: [love_quest] Love or [submission_quest] Submission.': return if type_flow == 'Love': menu: 'Need: [love_quest] Love.': return if type_flow == 'Submission': menu: 'Need: [submission_quest] Submission.': return return # # Проверка на приватность при необходимости # if temp_dict['loc'] == 'private': # # Локация # $ loc = var_dict['location'] # if 'private' not in loc.features: # play sound "sounds/error.mp3" # menu: # 'You need a private location to continue the quest.': # $ check = False # return # # Свидетели # $ npc_list = npc_location_list(loc) # if len(npc_list) > 1: # play sound "sounds/error.mp3" # menu: # 'Too many extra eyes (privacy is needed to continue quests).': # $ check = False # return # Старт квеста if check: # Создание копии квеста $ quest = copy_obj(quest) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1' menu: '[quest.name] quest has started.': pass return # Приглашение девушки в отель label lb_hotel(npc=''): if npc != '': # Пригласить девушку menu: "Invite [npc.name] to the hotel.": pass "Not": return # Проверка квеста if 'open_invite_hotel' not in var_dict: $ var_dict['open_invite_hotel'] = [] if npc not in var_dict['open_invite_hotel']: play sound "sounds/error.mp3" menu: "You need to complete the quest: \"A piece of heaven\"": return # Проверка Love if def_check_if_npc_skill(npc=npc, skill='Love', vol=6.0) == False: return # Проверка на наличие денег if GG.money < 1500: play sound "sounds/error.mp3" menu: 'Not enough money (need 1500).': pass return #--------------------- Отельный секс ---------------------------------------------------- $ name_char = npc.name $ GG.money -= 1500 # Комната в комнате отеля show screen show_image_fix_size(img_list=["quests/hotel_room.jpg"]) with Dissolve(0.3) pause 0.3 $ var_dict['location'] = hotel_room # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_94 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_95 hide screen NPC_show hide screen NPC_other_action with Dissolve(0.5) # Диалоги call dialogue(file="_dialogues/lb_qw_5_a_piece_of_heaven_4_love.json", npc=npc) from _call_dialogue_42 $ var_dict['location'] = sunsity_map play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#5fe624}Love: +100 Friend: +100{/color}' call minuts(50) from _call_minuts_153 return # Окончание квеста 5 - 0 'A piece of heaven' label lb_qw_5_a_piece_of_heaven_4(npc='', quest=''): $ npc = quest.npc pause 1 play sound "sounds/cellphone.mp3" pause 3 call lb_images(loc=var_dict['location'], loc_blur=1, img_1=['quests/cellfone.png']) from _call_lb_images_42 char_GG '- Hello' char_npc '- I\'m waiting for you.' menu: "Go on a date": pass "Refuse": hide screen show_image_fix_size with Dissolve(0.5) return # Комната в комнате отеля $ var_dict['location'] = hotel_room # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_96 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_97 # Диалоги call lb_dialogue(quest) from _call_lb_dialogue_25 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' if 'open_invite_hotel' not in var_dict: $ var_dict['open_invite_hotel'] = [] $ var_dict['open_invite_hotel'].append(npc) talker 'Now you can invite [npc.name] to the hotel.' talker 'End of the quest.' $ var_dict['location'] = sunsity_map call minuts(30) from _call_minuts_154 return # Запуск случайного события label lb_location_random_event(rnd_event): $ file = var_dict["random_events"][rnd_event]["file"] $ sss_file = 'SSScripts/' + file + '.sss' if renpy.exists(sss_file): # Новый тип файла call sss_dialogue(sss_file, npc='', currentNode = "000") from _call_sss_dialogue_11 else: # Старый тип файла call fantasy_dialogue(file) from _call_fantasy_dialogue $ var_dict["current_random_event"].remove(rnd_event) play sound "sounds/level_UP.mp3" return # Офлайн игра в покер label lb_poker_offline: show screen interaction(porky_stars) with Dissolve(0.3) return # Закрыть покер label lb_off_porky_stars: show screen interaction(comp_GG) with Dissolve(0.3) return # Играть на 10 label lb_porky_stars_10: call lb_calck_rezult(10) from _call_lb_calck_rezult return # Играть на 50 label lb_porky_stars_50: call lb_calck_rezult(50) from _call_lb_calck_rezult_1 return # Играть на 100 label lb_porky_stars_100: call lb_calck_rezult(100) from _call_lb_calck_rezult_2 return # Играть на 250 label lb_porky_stars_250: call lb_calck_rezult(250) from _call_lb_calck_rezult_3 return # Играть на 500 label lb_porky_stars_500: call lb_calck_rezult(500) from _call_lb_calck_rezult_4 return # Играть на 1000 label lb_porky_stars_1000: call lb_calck_rezult(1000) from _call_lb_calck_rezult_5 return # Играть на 2000 label lb_porky_stars_2000: call lb_calck_rezult(2000) from _call_lb_calck_rezult_6 return # Расчёт проигрыш/выигрыш label lb_calck_rezult(sum): # Время одного игрового раунда $ time_x = 45 show screen show_image_above_modal(img="act_obj/porky_stars_fon.png") with Dissolve(0.3) # Очень сильное похмелье if 'мертвецкое_похмелье' in GG.features: play sound "sounds/error.mp3" menu: 'I have a terrible headache and nausea. I don\'t want to play poker.': hide screen show_image_above_modal with Dissolve(0.3) return # Депрессия if 'депрессия' in GG.features: play sound "sounds/error.mp3" menu: 'I am depressed. I don\'t want to play poker.': hide screen show_image_above_modal with Dissolve(0.3) return # Устал if 'усталость_2' in GG.features: play sound "sounds/error.mp3" menu: 'I\'m tired. I don\'t want to play poker.': hide screen show_image_above_modal with Dissolve(0.3) return # Грипп if 'грипп' in GG.features: play sound "sounds/error.mp3" menu: 'I am seriously ill. I can\'t play poker.': hide screen show_image_above_modal with Dissolve(0.3) return # Жажда if 'жажда_3' in GG.features: play sound "sounds/error.mp3" menu: 'I am very thirsty. I can\'t play poker.': hide screen show_image_above_modal with Dissolve(0.3) return # Проверка на наличие денег if GG.money < sum: play sound "sounds/error.mp3" menu: 'Not enough money': hide screen show_image_above_modal with Dissolve(0.3) return # Отнять ставку из денег игрока $ GG.money -= sum # Коэфициент выиграша $ delta = 0.05 + round(0.05 * GG.dict_skill['Intelligence'], 2) # Результат игры $ rez_min = round((sum - sum*0.4 + delta*sum), 0) $ rez_max = round((sum + sum*0.4 + delta*sum), 0) $ rezultat = random.randint(rez_min, rez_max) $ GG.money += rezultat $ rezultat2 = rezultat - sum # Проигрыш if rezultat2 < 0: play sound "sounds/casino_lose.mp3" menu: "You lose [rezultat2]": pass # Выигрыш и ничья else: play sound "sounds/casino_win.mp3" menu: "You won [rezultat2]": pass hide screen show_image_above_modal with Dissolve(0.3) $ GG.pep -= 0.12 * time_x # Усталость $ GG.joy -= 0.012 * time_x # Радость call minuts(time_x) from _call_minuts_155 return # NPC Angry label lb_NPC_angry(npc): play sound "sounds/error.mp3" menu: '[npc.name] is angry with me.': jump main_cicle return # Сходить за покупками с девушкой label lb_shopping_girl(npc): # Проверка квеста if 'open_shop_sex' not in var_dict: $ var_dict['open_shop_sex'] = [] if npc not in var_dict['open_shop_sex']: play sound "sounds/error.mp3" menu: "You need to complete the quest \"Passionate dates\"": hide screen show_image_above with Dissolve(0.3) return # Проверка Love if def_check_if_npc_skill(npc=npc, skill='Love', vol=5.0) == False: hide screen show_image_above with Dissolve(0.3) return # Проверка на наличие денег if GG.money < 1500: play sound "sounds/error.mp3" menu: 'Not enough money (need 1500).': pass return #--------------------- Магазинный секс ---------------------------------------------------- $ name_char = npc.name $ GG.money -= 1500 hide screen NPC_show hide screen NPC_other_action show screen show_image_above('scenes/black.png') with Dissolve(0.5) # Переодевание в казуальную одежду $ def_change_clothe_set(npc, 'asual') # Магазин одежды $ var_dict['location'] = mall_clotheshop_loc stop music fadeout 0.7 pause 0.5 hide screen show_image_above with Dissolve(0.5) talker 'We walked to the dress shop which looked quite nice but was having an end of season sale. Still the prices were high in my estimation. ' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=0.5) from _call_lb_images_43 char_npc '- I\'m just looking anyway and don\'t plan on buying anything.' talker 'We went in and browsed around. [npc.name] picked up two very pretty dresses and one bikini that was on a very good sale. ' talker 'Then she went to the dressing rooms. I hung back assuming I couldn\'t go in. ' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_44 talker 'She came back to me and grabbed my hand and said...' call approach_npc(npc) from _call_approach_npc_14 call rnd_sound(sl_giggle) from _call_rnd_sound_190 char_npc '- Come on, silly!{p=0}and giggled.' # Примерочная play sound "sounds/close_door.mp3" $ var_dict['location'] = mall_clotheshop_dressing_room call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_norm') from _call_lb_images_45 talker 'I followed her into the dressing room and she locked the door.' char_npc '- OK, buster strip' talker 'She began to remove her clothes. I followed instructions.' char_npc '- Get the phone.' talker 'I did.' # Раздевание $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "The [npc.name] takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_46 $ count -= 1 #Приближение с поцелуем $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size with Dissolve(1.0) play sound "sounds/kiss.mp3" talker "When we were both naked, she came to me and put her arms around me and kissed me, rubbing her breasts on my chest and her vulva on my cock. It responded quite quickly. " call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_47 talker 'Then she got up and put on one of the dresses. ' play sound "sounds/clothe.mp3" call lb_add_clothe_npc(npc=npc, clothe=copy_obj(dress_flower)) from _call_lb_add_clothe_npc_98 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_48 talker 'It was a very pretty flowered pattern that hugged her body and flared into a wide skirt. ' show screen show_image_above('scenes/black.png') with Dissolve(0.1) play sound "sounds/photo.mp3" hide screen show_image_above with Dissolve(0.7) talker 'I took a photo but the room was not big enough for a full length. She gathered the skirt up and put her hand under it and let it fall around it as if she was fingering her pussy, which maybe she was given the devilish look on her face. ' char_npc '- You want to fuck me?' char_GG '- Or eat you.' char_npc '- Not yet, we have two more things to model.' play sound "sounds/clothe.mp3" $ npc.clothes = [] call lb_add_clothe_npc(npc=npc, clothe=copy_obj(dress_5_transparent)) from _call_lb_add_clothe_npc_99 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_49 talker 'I doubted she would wear it in public without a bra underneath. It was made of a transparent material that allowed her to clearly see her breasts, which she continued to show me while posing.' char_npc '- What do you think, [GG.name]? You think I should buy this and wear it tonight. ' char_GG '- I dare you doubly!' talker 'She looked at the tag and frowned. ' char_npc '- Over $ 50 on sale. I guess I won\'t buy it.' show screen show_image_above('scenes/black.png') with Dissolve(0.1) play sound "sounds/photo.mp3" hide screen show_image_above with Dissolve(0.7) talker 'I took a few photos of her in it. ' $ npc.clothes = [] play sound "sounds/clothe.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_50 talker 'She stripped once more, this time trying to be more provocative.' char_npc '- Down, boy.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_51 call rnd_sound(sl_giggle) from _call_rnd_sound_191 talker 'I barked and she giggled.' char_npc '- Now for the final act,{p=0}she said as picked up the bikini. There wasn\'t much to it. Just enough for the images.' play sound "sounds/clothe.mp3" call lb_add_clothe_npc(npc=npc, clothe=copy_obj(bikini)) from _call_lb_add_clothe_npc_100 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_52 char_npc 'She looked at my cock and said,{p=0}- So you like it?' char_GG '- Absolutely, but I\'ve been liking everything.' talker 'She came over and took my cock in her hand and began stroking it.' call show_scene(npc, s_Handjob_2) from _call_show_scene_623 call lb_images(npc=npc, ava=1) from _call_lb_images_53 call play_animation(npc, a_Handjob_1) from _call_play_animation_84 char_npc '- Put your fingers in my pussy and make me cum, big boy.' play sound "sounds/clothe.mp3" $ npc.clothes = [] call lb_images(npc=npc, ava=1) from _call_lb_images_54 call show_scene(npc, s_Petting_3_1) from _call_show_scene_624 talker 'I did as instructed. She was already super turned on. Her G-spot was already engorged and her cervix pushing down for attention. ' call play_animation(npc, a_fingering) from _call_play_animation_85 talker 'She thrust against the heel of my hand to stimulate her clit and I stroked her G-Spot and cervix alternately. She was getting quite close and began squirming.' char_npc '- Oh, my God, I\'m cumming.' call female_orgasm from _call_female_orgasm_15 talker 'But she let out indiscernible grunts and groans. Anyone in the store would have heard her and known what we were up to.' talker 'Which brought my attention back to the fact that I was about as close to cumming as I could get before I did. ' char_GG '- I\'m going to cum, [npc.name].' call show_scene(npc, s_Blowjob_3) from _call_show_scene_625 call rnd_sound(sl_slurp) from _call_rnd_sound_192 talker 'She immediately pulled off my hand and turned to engulf my cock. She took it immediately down her throat and I came with my first shot. I was surprised how strong it felt, and she responded with a sort of grunt. ' call play_animation(npc, a_blowjob) from _call_play_animation_86 menu: 'Cum': call male_orgasm from _call_male_orgasm_18 call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_23 talker 'She pulled off a bit and took the next shots in her mouth swallowing between each one. ' show screen show_image_above('scenes/black.png') with Dissolve(1.0) call show_scene(npc, s_Other_1) from _call_show_scene_626 hide screen show_image_above with Dissolve(1.0) char_npc '- Oh, [GG.name], thank you, thank you, thank you. That was so good. You are such a great lover.' char_GG '- My love, you make me the greatest,{p=0}I said smiling broadly.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) play sound "sounds/clothe.mp3" $ var_dict['location'] = mall_loc play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#5fe624}Love: +100 Friend: +100{/color}' hide screen show_image_above hide screen show_image_in_position_2 hide screen show_scn hide screen show_image_fix_size show screen my_GUI show screen location hide screen show_image with Dissolve(1.0) #----------------------------------------------------------------------------------------------- call minuts(55) from _call_minuts_156 return # Квест 5 - 0 'A piece of heaven' label lb_qw_5_a_piece_of_heaven_0_start(npc='', quest=''): menu: 'With whom to start the quest "A piece of heaven"?': pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_5_a_piece_of_heaven_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_5_a_piece_of_heaven_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_5_a_piece_of_heaven): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_5_a_piece_of_heaven.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" 'To start the quest you need 6.0 Love' jump main_cicle # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_3 # Старт квеста - звонок от подруги $ name_char = npc.name call dialogue('_dialogues/lb_qw_5_a_piece_of_heaven_0_start_1.json', npc) from _call_dialogue_43 menu: "Go on a date": pass "Refuse": hide screen show_image_above with Dissolve(0.5) return # Комната в комнате отеля $ var_dict['location'] = hotel_room # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_101 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_102 # Первое свидание $ name_char = npc.name call dialogue('_dialogues/lb_qw_5_a_piece_of_heaven_0_start_2.json', npc) from _call_dialogue_44 # Создание копии квеста $ quest = copy_obj(qw_5_a_piece_of_heaven) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1' $ var_dict['location'] = sunsity_map call minuts(30) from _call_minuts_157 return label lb_qw_5_a_piece_of_heaven_2(npc='', quest=''): $ npc = quest.npc pause 1 play sound "sounds/cellphone.mp3" pause 3 call lb_images(loc=var_dict['location'], loc_blur=1, img_1=['quests/cellfone.png']) from _call_lb_images_55 char_GG '- Hello' char_npc '- I\'m waiting for you.' menu: "Go on a date": pass "Refuse": hide screen show_image_fix_size with Dissolve(0.5) return # Комната в комнате отеля $ var_dict['location'] = hotel_room # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_103 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_104 # Диалоги call lb_dialogue(quest) from _call_lb_dialogue_26 play sound "sounds/level_UP.mp3" $ quest.level = '3' $ var_dict['location'] = sunsity_map call minuts(30) from _call_minuts_158 return # Фентези истории label lb_fantasy_story_1(f_npc): $ var_dict['fantasy_store_npc'] = f_npc # Истории $ temp_dict = var_dict['fantasy_stories'][f_npc] $ list_str = list(temp_dict.keys()) # Сортировка историй по алфавиту $ list_str = sorted(list_str) show screen choose_string_from_list(list_str=list_str, str_call='lb_fantasy_story_2', mark='Stories:') show screen show_image(img='other/fantasy_bgd.png') hide screen show_image_above hide screen NPC_show with Dissolve(0.5) return label lb_fantasy_story_2(string): $ f_story = string # Сцены if f_story != '': $ f_npc = var_dict['fantasy_store_npc'] $ list_scenes = var_dict['fantasy_stories'][f_npc][f_story] $ index_current_scene = 0 while index_current_scene < len(list_scenes): # Вывод сцены $ file = list_scenes[index_current_scene] if (file.endswith('.sss')): $ var_dict["фентези_файл"] = "да" call sss_dialogue('/SSScripts/' + file, npc=var_dict['npces'][0], currentNode = "000") from _call_sss_dialogue_12 $ var_dict["фентези_файл"] = "нет" else: call fantasy_dialogue(file=file) from _call_fantasy_dialogue_1 $ index_current_scene = index_current_scene + 1 play sound "sounds/level_UP.mp3" hide screen show_image with Dissolve(0.5) return # Квест 03 - Воспитание чувст - Education of the feelings - Окончание label lb_qw_3_education_feelings_2_buy_whip(npc='', quest=''): $ npc = quest.npc call lb_images2 (loc=var_dict['location'], loc_blur=1) from _call_lb_images2_23 char_GG '- So, so what we have here.' call lb_images(loc=var_dict['location'], loc_blur=1, img_1=['quests/whip.png']) from _call_lb_images_56 pause 1.5 char_GG '- Oh, yes, I think [npc.name] are ready for this.' menu: 'Buy (777)': # Проверка на наличие денег if GG.money < 777: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image_fix_size with Dissolve(0.3) return $ GG.money -= 777 play sound "sounds/level_UP.mp3" $ quest.level = '4' 'Not': pass hide screen show_image_fix_size with Dissolve(0.3) return label lb_qw_3_education_feelings_2_kiss_whip(npc='', quest=''): $ npc = quest.npc call lb_dialogue(quest) from _call_lb_dialogue_27 play sound "sounds/level_UP.mp3" $ quest.level = '5' if 'open_BDSM_1_action' not in var_dict: $ var_dict['open_BDSM_1_action'] = [] $ var_dict['open_BDSM_1_action'].append(npc) talker 'Now [npc.name] will kiss your whip whenever you want.' call minuts(15) from _call_minuts_159 hide screen show_image_in_position with Dissolve(0.3) return label lb_qw_3_education_feelings_2_spank_whip(npc='', quest=''): $ npc = quest.npc call lb_dialogue(quest) from _call_lb_dialogue_28 play sound "sounds/level_UP.mp3" $ quest.level = '7' call minuts(15) from _call_minuts_160 return label lb_qw_3_education_feelings_2_end_whip(npc='', quest=''): $ npc = quest.npc call lb_dialogue(quest) from _call_lb_dialogue_29 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' if 'open_BDSM_2_action' not in var_dict: $ var_dict['open_BDSM_2_action'] = [] $ var_dict['open_BDSM_2_action'].append(npc) talker 'Now you can whip [npc.name] with a whip.' talker 'End of the quest.' call minuts(15) from _call_minuts_161 return # Заказы в ресторане # Стейк из сёмги label lb_restaurant_order_salmon_steak: call lb_cafe_order(name='Salmon steak', water=0.0, pep=0.0, food=50.0, joy=15.0, money=225) from _call_lb_cafe_order_5 return # Бутерброды с красной икрой label lb_restaurant_order_sandwich_red_caviar: call lb_cafe_order(name='Sandwich red caviar', water=0.0, pep=0.0, food=50.0, joy=20.0, money=349) from _call_lb_cafe_order_6 return # Руккола с сёмгой label lb_restaurant_order_arugula_with_salmon: call lb_cafe_order(name='Arugula with salmon', water=0.0, pep=0.0, food=50.0, joy=25.0, money=499) from _call_lb_cafe_order_7 return # Лангусты на гриле label lb_restaurant_order_grilled_lobsters: call lb_cafe_order(name='Grilled lobsters', water=0.0, pep=0.0, food=50.0, joy=30.0, money=675) from _call_lb_cafe_order_8 return # Каре из баранины label lb_restaurant_order_rack_of_lamb: call lb_cafe_order(name='Rack of lamb', water=0.0, pep=0.0, food=50.0, joy=30.0, money=875) from _call_lb_cafe_order_9 return # Секс в ресторане label lb_date_restaurant_sex(npc): # Проверка квеста if 'open_restaurant_sex' not in var_dict: $ var_dict['open_restaurant_sex'] = [] if npc not in var_dict['open_restaurant_sex']: play sound "sounds/error.mp3" menu: "You need to complete the quest \"Passionate dates\"": hide screen show_image_above with Dissolve(0.3) call lb_date_restaurant3(npc) from _call_lb_date_restaurant3 return # Проверка Love if def_check_if_npc_skill(npc=npc, skill='Love', vol=5.0) == False: hide screen show_image_above with Dissolve(0.3) return #--------------------- Ресторанный секс ---------------------------------------------------- $ name_char = npc.name # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_105 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_106 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_57 hide screen show_image_above with Dissolve(0.3) pause 1.0 talker 'The hottest cocktail dress I had ever seen. It was loose and flirty around the thighs and just long enough to cover her butt. Her shoes matched the red color of the dress, finger nail polish, and lipstick. ' talker 'The heels were high enough to accentuate the curves of her well-toned calves and butt. Hugging her hips, the sheer fabric followed her curves inward to her waist, then back out again for her chest. ' talker 'The neckline was more like a breast-line. The low cut put the top of her breasts on proud display. I remember tying to pick out exactly how far beneath the edge of the fabric lay her nipples. ' talker 'Not far, I decided.' talker 'Her breasts were perfectly rounded in that dress, and although I had gotten to play with them earlier in the day, I now had to suppress my drooling instinct.' talker 'I understood very well the effect of a woman leaving something to the imagination, while simultaneously letting everyone in the room know what lay beneath. And indeed, everyone in the room seemed to notice [npc.name]. Heads turned, both male and female. ' talker 'She was not bikini-model thin, nor did she have porn-star unrealistic proportions. She had good muscle tone from her shoulders to her legs. She was real. She was perfect.' play sound "sounds/wow.mp3" char_GG '- Wh--...Wow, Wh-ha...{p=0}- You look gorgeous.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_58 char_npc '- Thank you! You\'re not so bad yourself.{p=0}She surreptitiously smacked my butt. She noticed me drinking her in, but didn\'t notice anyone else. She didn\'t have to. She knew exactly what she was doing.' talker 'I lifted her hand in the air to spin her around. ' call lb_images(loc='curr', loc_blur=1) from _call_lb_images_59 talker '[npc.name] obliged, the flirty bottom of her skirt rising briefly to a tantalizing height. ' talker 'I immediately wondered what she was wearing underneath, if anything. The dress was nearly backless, revealing skin down to where many women have a lower-back tattoo. But she did not have one. Nothing scarred the beauty of her skin.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_60 char_GG '- Do you always dress outfits for dating?' char_npc '- You never know who you\'re going to meet{p=0}she said coyly.' talker 'I was a little self-conscious at first, having such a gorgeous babe with me. I have rarely been seen in such company.' talker 'I began to relax after a few minutes. Ironically, it was the reaction of everyone around us that made me more comfortable. Actually, it was making me more confident. ' talker 'I caught a number of guys catching some not-so-subtle glimpses of [npc.name]. Even some women were eyeing us, perhaps figuring that there must be a reason why this beautiful blonde was with me.' talker 'Were they thinking I was a billionaire? Were they thinking I had a massive cock?' talker 'She was sexy enough in her current condition to start an erection at the mere thought of her nude body. ' talker 'And although I could stare at her face all day, if I looked for it I could see the minutely subtle effects of stress. None of that made her any less attractive to me or anyone else in the restaurant.' char_GG '- I\'m sure you\'ve heard this before, but you look younger.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, decals=['blush']) from _call_lb_images_61 char_npc '- Thank you.{p=0}Her head was cocked down, and her eyelashes flipped up as she looked up at me.{p=0}- Say it again.' char_GG '- You could pass for XX.{p=0}- I\'m serious.' call rnd_sound(sl_giggle) from _call_rnd_sound_193 char_npc '- You are going to get sooo lucky tonight.' char_npc '- I have a confession to make.' char_GG '- You came here in a DeLorean and you have to go back to the year 2185?' play sound "sounds/female_laugh.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_62 char_npc '- No.' char_GG '- You\'re Lindsey Vonn\'s evil step-sister who didn\'t get into the Olympics, and now you want revenge?' play sound "sounds/female_laugh.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_63 char_npc '- No!' char_GG '- Ran away from the Fundamentalist LDS cult?' char_npc '- Will you stop being a retard and let me talk?!' char_GG '- OK, go ahead.' talker 'She leaned forward and motioned for me to do the same.' call approach_npc(npc) from _call_approach_npc_15 talker 'I thought she just wanted to kiss me, but she turned her lips toward my ear. ' char_npc '- Well,{p=0}she whispered, and paused.{p=0}- I really want to hump your brains out. Right. Now.' talker 'The words felt like an avalanche, filling my ear with her hot breath and sexual desire. I had never had anyone say that to me before. This was certainly something I was not used to.' talker 'I backed up a few inches from her face and mouthed the word Now?' talker 'This one wanted action! Who was I to deny her?' char_npc 'Sitting back in her seat again, [npc.name] said out loud,{p=0}- Will you excuse me please, [GG.name]? I need to powder my nose.' call lb_images(loc='curr', loc_blur=1, dis=1.0) from _call_lb_images_64 talker 'I was still too shocked to reply. She disappeared toward the back of the restaurant. I watched her hips sway from side to side. ' talker 'The bottom of her dress swished in response and flirted with revealing her well-toned butt, and yet it was obvious that there was no risk of it ever rising quite that high on its own. ' talker 'God, I just wanted to lift up that thin piece of fabric and bury my face in those big globes.' talker 'I finally got up and headed for the men\'s room. ' talker 'I didn\'t know exactly what she had in mind, or how she intended to implement her plan. Where would we do this? How would we not get caught? Would the maitre\'d call the police? ' talker 'I only started thinking about these practicalities as I reached the back of the restaurant.' talker 'Just then, the door to the ladies\' room opened a crack, and I could see a sliver of [npc.name]\'s smiling face. ' play sound "sounds/close_door.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) pause 0.9 $ var_dict['location'] = restaurant_toilet play sound "sounds/close_lock.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_65 hide screen show_image_above with Dissolve(0.3) talker 'She quickly opened the door just wide enough to grab me and pull me inside. She locked the door behind me...' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_194 talker "...and before I knew it we were locked in a hand-groping, body melding, lip-wrestling embrace that did nothing to hide the lust we had for each other." call rnd_sound(sl_kiss) from _call_rnd_sound_195 talker 'For a couple minutes I couldn\'t notice my surroundings, and all those fearful questions from just a few seconds ago went out the window. All that remained was lust. Sheer, unbridled lust.' play sound "sounds/clothe.mp3" talker 'My hand quickly found the bottom of her dress and went inside of it. I grabbed her ass, feeling nothing but skin. No panties! ' call rnd_sound(sl_moan) from _call_rnd_sound_196 talker 'As my lips kneaded her lips, my hands kneaded her butt cheek. She moaned in response. ' talker 'She has already unbuttoned three buttons on my shirt, and we quickly undressed.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" char_npc '- I haven\'t stopped thinking about this afternoon. It\'s made me so horny!' $ npc.clothes = ['Nude'] call lb_images(npc=npc, ava=1) from _call_lb_images_66 call show_scene(npc, s_Petting_1) from _call_show_scene_627 hide screen show_image_above with Dissolve(0.3) call rnd_sound(sl_scream) from _call_rnd_sound_197 talker 'Her tone of voice escalating as my hand found her breast. I must have been a little too excited, because I didn\'t just cup it gently: I grabbed it forcefully. [npc.name] squealed so loudly that it startled both of us.' talker 'We stopped moving instantly, and the small room became quiet.' talker 'It was then that we first realized how loud our groping was: Fabric rubbing upon fabric, skin on skin, feet shifting on the floor, and all the heavy breathing that goes along with a high-powered make-out session.' call rnd_sound(sl_giggle) from _call_rnd_sound_198 pause 0.3 play sound2 "sounds/male_chuckle_short.mp3" talker 'Both of us whispered a giggle.' call lb_images(loc='curr', dis=0.7) from _call_lb_images_67 talker 'I quickly looked around. One toilet, one sink, one trash can. It was meant for just one person, hence the lock on the door. ' talker 'This was a nice restaurant, so as far as public restrooms go, this one was very nicely decorated, and exceptionally clean. Not a bad place to get some clandestine action, I thought, if you\'re going to do it in a public place. ' talker 'We both knew, however, that someone could walk by the door at any time and hear us.' call lb_images(npc=npc, ava=1, dis=0.5) from _call_lb_images_68 call show_scene(npc, s_Petting_1) from _call_show_scene_628 talker 'So we continued our groping more quietly. She caressed my chest with both hands. My lips departed from hers and left a trail of kisses across her cheek and down her neck.' talker 'My hands reached her chest so quickly that there wasn\'t any time for her to feel naked. They were elegantly soft, but firm enough for me to knead them forcefully. ' call rnd_sound(sl_moan) from _call_rnd_sound_199 talker '[npc.name] almost squealed again, but just barely stifled by biting her lower lip.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_629 talker '[npc.name] squatted down so that she was looking right at the big cock that she just freed. It bounded out of my black briefs, and almost instantly completed its growth and pointing nearly straight up. ' talker 'I have rarely seen my cock point higher or felt it harder. It could have bounced a bullet. ' talker '[npc.name] lightly caressed the engorged tip with her fingertips. My cock jumped as she did. She rubbed the tip gently, then, even more gently, licked the underside of the head with the tip of her tongue.' talker 'My cock jumped again and I thought I could have cum right then and there. She flicked the same spot a few times with her tongue as I strained to stay silent. ' play music "sounds/deep_breath_man.mp3" talker 'I could hear my heavy breathing echoing off the tile floor and walls. After a minute of licking my cockhead and making it so sensitive that I could have felt a speck of dust land on it, she took it into her mouth: just the head. ' call show_scene(npc, s_Blowjob_1) from _call_show_scene_630 talker 'She moved her mouth back and forth slightly, so that only the edge of my head slid past her lips. Her tongue flicked the very tip of my cock as she did this.' call play_animation(npc, a_blowjob) from _call_play_animation_87 char_GG '- Holy shit!{p=0}I whispered between breaths.{p=0}- Holy fuck! [npc.name]!"' talker 'Damn, was she good at this! The assault on the leading half of my cock was smooth and wet, and her tongue lashing at the bottom of my head made me break out in a cold sweat.' talker 'Her right hand started to lightly massage the other half, daring it to summon up a load of semen.' call play_animation(npc, a_blowjob, 2) from _call_play_animation_88 talker 'She was so good at this that she didn\'t need to take any more of me into her mouth. After another minute I felt the leading edge of my orgasm start to well up at the base of my cock. ' call play_animation(npc, a_blowjob, 2) from _call_play_animation_89 char_GG '- I can feel it coming on!{p=0}[npc.name] continued to massage the end of my dick, and the orgasm began to develop in earnest.' char_GG '- Oh my God, [npc.name]! I\'m gonna cum!{p=0}I warned her, trembling. I was amazed. Nobody had made me cum that fast from a blow job. I had never had anyone who knew just how to massage my dick and get me off that fast.' call play_animation(npc, a_blowjob, 2) from _call_play_animation_90 char_GG '- Ahh fuck! I\'m gonna cum!{p=0}I whisper-yelled. But she didn\'t stop. With the last glimmer of rational thought, I wondered if she would have to walk back into the restaurant with the smell of cum on her mouth, or her lipstick smeared from cleaning it off.' call show_scene(npc, s_Blowjob_2) from _call_show_scene_631 call male_orgasm from _call_male_orgasm_19 stop music talker 'But that concern was vaporized by the orgasm that enveloped me, took hold of me, consumed me. My knees started shaking and I almost collapsed. ' talker 'My cock and balls responded as a team to the sensations that [npc.name] was giving me, and the first spurt of cum shot out the tip of my dick. ' call show_scene(npc, s_Blowjob_2) from _call_show_scene_632 call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_24 talker 'It was a big one--I could feel it. I could clearly feel every subsequent spurt and hear every one of the groans that I couldn\'t hold back. It was an incredible sensation to feel my semen leaving me so quickly. ' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_25 talker 'It must have shot right down [npc.name]\'s throat. My butt clenched with every squirt, and [npc.name] didn\'t stop her massage until I was totally spent and her mouth totally full.' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_26 pause 1.5 play sound "sounds/knock_door.mp3" talker 'Just then there was a knock at the door. We stopped, stunned.' talker '- Is everything alright in there?{p=0}an elderly female voice asked. I couldn\'t believe it! I had barely finished cumming!' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, decals=['cum_mouth']) from _call_lb_images_69 talker '[npc.name] quickly stood up.' char_npc '- Just fine,{p=0}she said with a trembling voice.' char_npc '- Be out in a minute.' call lb_images(loc='curr', loc_blur=1, dis=0.5) from _call_lb_images_70 play sound "sounds/bathroom_toilet_flushing.mp3" pause 2.0 talker 'A shock of adrenaline shot through me. We\'re caught for sure! I thought. I dared not speak.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" talker 'We got dressed quickly.' talker 'My dick was still so hard that I found it difficult to fit back in my briefs. The tip poked out the top and I could barely fasten my pants. My belt buckle was jingling the entire time as I fumbled around. ' # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_107 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_108 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_71 hide screen show_image_above with Dissolve(0.3) talker 'That woman out there had to know what was going on.' char_GG '- What do we do?' talker 'She shrugged and took hold of the door handle. I begged her silently not to open it. But I knew that she had to.' call lb_images(loc='curr', loc_blur=1) from _call_lb_images_72 pause 0.5 play sound "sounds/close_lock.mp3" pause 0.5 play sound "sounds/open_door.mp3" talker 'I hid behind the door as [npc.name] exited and apologized to the lady for taking so long.' play sound "sounds/close_door.mp3" talker '- Oh, not to worry, dear.' play sound "sounds/open_door.mp3" talker 'The lady opened the door and entered the restroom as I tried to make myself as thin as possible behind the door. ' talker 'I knew it was of little use, but I wanted to postpone the inevitable for as long as possible. The lady passed the door and headed for the toilet. Her head was turned just far enough for me to try to make a quick turn around the door and out into the hall.' $ var_dict['location'] = restaurant call lb_images(loc='curr', loc_blur=1) from _call_lb_images_73 talker 'Success. Ha! I\'m a ninja! I thought. As I walked away basking in my triumph.' talker 'I thought I heard a voice coming from inside the restroom saying,{p=0}- Good job, young man!' # play sound "sounds/level_UP.mp3" # # if 'open_restaurant_sex' not in var_dict: # $ var_dict['open_restaurant_sex'] = [] # $ var_dict['open_restaurant_sex'].append(npc) # # $ quest.level = 'end_quest' hide screen show_image_fix_size call minuts(30) from _call_minuts_162 jump main_cicle #--------------------------------------------------------- hide screen show_image_above with Dissolve(0.3) return # Свидание в ресторане label lb_date_restaurant(npc): # Проверка на поторяющиеся действие if 'date_restaurant' in npc.dict_marks: if npc.dict_marks['date_restaurant'] > 0: talker 'You already went on a date with [npc.name] today.' return # Проверка на условия # Exploration 1.0 if def_check_if_npc_skill(npc=npc, skill='Exploration', vol=1.0) == False: return # Love if def_check_if_npc_skill(npc=npc, skill='Love', vol=1.0) == False: return else: call lb_date_restaurant2(npc) from _call_lb_date_restaurant2 return label lb_date_restaurant2(npc): $ var_dict['npc2'] = npc call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images2_24 char_GG '- How about a date at a restaurant?' call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images2_25 char_npc 'With joy!' call lb_date_restaurant3(npc) from _call_lb_date_restaurant3_1 return label lb_date_restaurant3(npc): hide screen show_image_fix_size hide screen interaction show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.3) $ var_dict['location'] = restaurant call lb_cange_emotion (npc=npc, emotion='_norm') from _call_lb_cange_emotion_150 menu: 'Have dinner together.': show screen interaction(restaurant_order_2) hide screen show_image_above with Dissolve(1.2) return 'Have fun.': call lb_date_restaurant_sex(npc) from _call_lb_date_restaurant_sex return 'Go home.': hide screen show_image_above with Dissolve(0.3) return return label lb_restaurant_order_2_salmon_steak: call lb_cafe_order2(name='Salmon steak', food=50.0, joy=15.0, money=345) from _call_lb_cafe_order2_5 return label lb_restaurant_order_2_sandwich_red_caviar: call lb_cafe_order2(name='Sandwich red caviar', food=50.0, joy=20.0, money=535) from _call_lb_cafe_order2_6 return label lb_restaurant_order_2_arugula_with_salmon: call lb_cafe_order2(name='Arugula with salmon', food=50.0, joy=25.0, money=765) from _call_lb_cafe_order2_7 return label lb_restaurant_order_2_grilled_lobsters: call lb_cafe_order2(name='Grilled lobsters', food=50.0, joy=30.0, money=999) from _call_lb_cafe_order2_8 return label lb_restaurant_order_2_rack_of_lamb: call lb_cafe_order2(name='Rack of lamb', food=50.0, joy=35.0, money=1395) from _call_lb_cafe_order2_9 return # Заказ в кафе и ресторане на двоих label lb_cafe_order2(name='', water=0.0, pep=0.0, food=0.0, joy=0.0, money=0): $ npc = var_dict['npc2'] menu: 'Order [name] for [npc.name] and me.': # Проверка на наличие денег if GG.money < money: play sound "sounds/error.mp3" menu: 'Not enough money.': pass else: # Статы ГГ - изменение if water > 0: $ GG.water = water $ GG.pep += pep if food > 0: $ GG.food = food $ GG.joy += joy $ GG.money -= money show screen show_image_above_modal("images/other/bgd_black.png") hide screen interaction with Dissolve(0.3) # Звук питья чая if water > 0: # Статы НПС - изменение $ add_friend = 0.001 * float(money) $ npc.dict_skill['Friend/Anger'] += add_friend $ npc.dict_marks['tear_cafe'] += 1 play sound "sounds/drinking_coffee.mp3" $ var_dict['location'] = cafe # Звук еды в ресторане elif food > 0: # Статы НПС - изменение $ add_friend = 0.0015 * float(money) $ add_love = 0.00033333 * float(money) $ npc.dict_skill['Friend/Anger'] += add_friend $ npc.dict_skill['Love'] += add_love $ npc.dict_marks['date_restaurant'] = 1 play sound "sounds/eat_restaurant.mp3" $ var_dict['location'] = restaurant pause 3.7 hide screen show_image_above_modal with Dissolve(0.7) play sound "sounds/level_UP.mp3" hide screen interaction with Dissolve(0.3) call minuts(30) from _call_minuts_163 'No': pass return # Заказ в кафе и ресторане label lb_cafe_order(name='', water=0.0, pep=0.0, food=0.0, joy=0.0, money=0): menu: 'Order [name]': # Проверка на наличие денег if GG.money < money: play sound "sounds/error.mp3" menu: 'Not enough money.': pass else: if water > 0: if GG.water < 0: $ GG.water = 0 $ GG.water += water $ GG.pep += pep if food > 0: if GG.food < 0: $ GG.food = 0 $ GG.food += food $ GG.joy += joy $ GG.money -= money show screen show_image_above_modal("images/other/bgd_black.png") with Dissolve(0.3) # Звук питья чая if water > 0: play sound "sounds/drinking_coffee.mp3" # Звук еды в ресторане elif food > 0: play sound "sounds/eat_restaurant.mp3" pause 3.7 call minuts(15) from _call_minuts_24 hide screen show_image_above_modal hide screen interaction with Dissolve(0.7) hide screen interaction with Dissolve(0.3) 'No': pass return # Вывод аватарки для сцен 2 label show_ava_for_scenes2(npc, mark): call lb_cange_emotion(npc, emotion=copy.copy(npc.emotion)) from _call_lb_cange_emotion_151 $ x_img_npc = npc_image(npc) $ img_ava = npc_ava(npc, mark) show screen show_image_in_position_2([[img_ava, 1550, 55]]) with Dissolve(0.3) return # Вывод картинок в действиях label lb_images(loc='none', npc='none', loc_blur=0, img_1=[], npc_show=0, ava=0, img_2=[], emotion='_norm', decals=[], dis=0.3): $ images = [] # Локация if loc != 'none': # Если Текущая локация if loc == 'curr': $ loc = var_dict['location'] $ img = loc.image # Если заблуренно if loc_blur == 1: $ img = im.Blur(img, 3.5) $ images.append(img) # Картинки 1 python: for img in img_1: images.append(img) # НПС if npc != 'none': # Эмоции call lb_cange_emotion(npc, emotion) from _call_lb_cange_emotion_90 # Декали if decals != []: python: for decal in decals: renpy.call('lb_cange_npc_features', npc=npc, feature=decal) # Картинка нпс-а if npc_show == 1: if npc.type == 'NPC': $ img_npc = npc_image(npc) else: $ img_npc = simply_npc_image(npc) $ images.append(img_npc) # Аватар if ava == 1: call show_ava_for_scenes(npc, 1, emotion) from _call_show_ava_for_scenes_79 if ava == 0: hide screen show_image_in_position_2 # Картинки 2 python: for img in img_2: images.append(img) # Вывод картинок show screen show_image_fix_size(img_list=images) hide screen show_scn hide screen show_image_in_position hide screen show_image hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location with Dissolve(dis) # Отмена декалей if decals != []: python: for decal in decals: renpy.call('lb_cange_npc_features', npc=npc, feature=decal) return # Квест 04 - 0 label lb_qw_4_passionate_dates2_0_start(npc='', quest=''): menu: 'With whom to start the quest "Passionate dates II"?': pass $ list_npc = def_list_explore_NPC() show screen choose_NPC_from_list(list_npces=list_npc, str_call='lb_qw_4_passionate_dates2_0_start_1', mark='NPCs:') with Dissolve(0.3) return label lb_qw_4_passionate_dates2_0_start_1(npc=''): if npc != '': # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_4_passionate_dates2): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_4_passionate_dates2.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 2.0: play sound "sounds/error.mp3" 'To start the quest you need 2.0 Love' jump main_cicle # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_4 # Создание копии квеста $ quest = copy_obj(qw_4_passionate_dates2) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1' 'The quest has begun.' return # Квест 04 - 1 label lb_qw_4_passionate_dates2_1(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name call dialogue('_dialogues/lb_qw_4_passionate_dates2_1.json', npc) from _call_dialogue_45 play sound "sounds/level_UP.mp3" $ quest.level = '2' call minuts(5) from _call_minuts_164 return # Квест 04 - 3 label lb_qw_4_passionate_dates2_3(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name call dialogue('_dialogues/lb_qw_4_passionate_dates2_3.json', npc) from _call_dialogue_46 play sound "sounds/level_UP.mp3" $ quest.level = '4' call minuts(25) from _call_minuts_165 return # Квест 04 - 5 label lb_qw_4_passionate_dates2_5(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name call dialogue('_dialogues/lb_qw_4_passionate_dates2_5.json', npc) from _call_dialogue_47 play sound "sounds/level_UP.mp3" $ quest.level = '6' call minuts(25) from _call_minuts_166 return # Квест 04 - 7 label lb_qw_4_passionate_dates2_7(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name call dialogue('_dialogues/lb_qw_4_passionate_dates2_7.json', npc) from _call_dialogue_48 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' call minuts(25) from _call_minuts_167 return # Продожение квеста в локации label lb_location_quest_continue(npc, quest, call_x): call lb_check_quest_continue(npc=npc, quest=quest) from _call_lb_check_quest_continue if check: $ renpy.call(call_x, npc, quest) return # Проверка на условия продолжения квеста label lb_check_quest_continue(npc='', quest=''): $ check = True $ temp_dict = quest.dict[quest.level] $ npc = quest.npc # Проверка на условие Love и Submission и Angry if npc != '': # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_5 $ love_quest = quest.dict[quest.level]['Love'] $ submission_quest = quest.dict[quest.level]['Submission'] # Проверка не нужна if love_quest == '' and submission_quest == '': pass # Проверка нужна else: # Определение типа прохождения if love_quest == '': $ type_flow = 'Submission' if submission_quest == '': $ type_flow = 'Love' if love_quest != '' and submission_quest != '': $ type_flow = 'Love' if npc.dict_skill['Submission'] > npc.dict_skill['Love']: $ type_flow = 'Submission' # Условие if type_flow == 'Love': if npc.dict_skill['Love'] < love_quest: $ check = False if type_flow == 'Submission': if npc.dict_skill['Submission'] < submission_quest: $ check = False # Проверка пройдена if check: pass # Проверка не пройдена else: play sound "sounds/error.mp3" if love_quest != '' and submission_quest != '': menu: 'Need: [love_quest] Love or [submission_quest] Submission.': return if type_flow == 'Love': menu: 'Need: [love_quest] Love.': return if type_flow == 'Submission': menu: 'Need: [submission_quest] Submission.': return return # Проверка на приватность при необходимости if temp_dict['loc'] == 'private': # Локация $ loc = var_dict['location'] if 'private' not in loc.features: play sound "sounds/error.mp3" menu: 'You need a private location to continue the quest.': $ check = False return # Свидетели $ npc_list = npc_location_list(loc) if len(npc_list) > 1: play sound "sounds/error.mp3" menu: 'Too many extra eyes (privacy is needed to continue quests).': $ check = False return # Проверка на публичность при необходимости if temp_dict['loc'] == 'public': # Локация $ loc = var_dict['location'] if 'public' not in loc.features: play sound "sounds/error.mp3" menu: 'You need a public location to continue the quest.': $ check = False return return check # Квест 03 - Воспитание чувст - Education of the feelings # Покупка дилдо label lb_qw_3_education_feelings_0_start(npc='', quest=''): call lb_dialogue(quest) from _call_lb_dialogue_30 # Проверка на свободное место $ check = def_check_free_space_inventary(inv_GG) if check == False: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") hide screen show_image_fix_size with Dissolve(0.3) return # Проверка на наличие денег if GG.money < 777: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image_fix_size with Dissolve(0.3) return play sound "sounds/money.mp3" $ GG.money -= 777 # Создание копии квеста и привязка его к объекту $ temp_quest = copy_obj(qw_3_education_feelings) $ temp_quest.level = '1' $ temp_obj = copy_obj(qw_dildo) $ temp_obj.features.append(copy_obj(temp_quest)) $ inv_GG.cells.append(copy_obj(temp_obj)) talker 'I\'ll give it to her.' play sound "sounds/level_UP.mp3" hide screen show_image_fix_size jump main_cicle return # передеча дилдо девушке label lb_qw_3_education_feelings_1_dildo(npc='', quest=''): $ name_char = npc.name # Добавление квеста в список квестов $ var_dict['quests'].append(quest) # Привязка квеста к нпс $ quest.npc = npc $ npc.features.append(quest) call lb_dialogue(quest) from _call_lb_dialogue_31 play sound "sounds/level_UP.mp3" if 'open_masturbation_1_action' not in var_dict: $ var_dict['open_masturbation_1_action'] = [] $ var_dict['open_masturbation_1_action'].append(npc) $ quest.level = '2' talker 'To be continued.' call minuts(25) from _call_minuts_168 return # Продолжение label lb_qw_3_education_feelings_2(npc='', quest=''): talker 'To be continued.' return # Удалить файл label delete_file(file): python: os.remove(file) return # Галерея фотографий в смартфоне - выбор папки label lb_smartphone_GG_Gallery: python: dict_gallery = {} # Получение списка скринов #0************************************************************** list_screenshots = os.listdir('game/images/screenshots') # Разбивка списка на папки НПС-ов for npc in var_dict['npces']: key1 = npc.id dict_gallery[key1] = [] for file_name in list_screenshots: if key1 in file_name: dict_gallery[key1].append(file_name) # Папка Other for key1 in dict_gallery: for file_name in dict_gallery[key1]: list_screenshots.remove(file_name) dict_gallery['Other'] = list_screenshots # Удаление пустых папок for key1 in list(dict_gallery): if dict_gallery[key1] == []: del dict_gallery[key1] show screen choose_folder_gallery with Dissolve(0.3) return # Галерея фотографий в смартфоне - выбор картинки label lb_smartphone_GG_Gallery_1(folder_name): $ list_x = copy_obj(dict_gallery[folder_name]) # Конвертация списка python: for x in list_x: index_x = list_x.index(x) #0*********************************** adress_img = 'images/screenshots/' + x list_x[index_x] = [adress_img, 'lb_smartphone_GG_Gallery_2', adress_img] show screen choose_img_gallery(list=list_x, name_list='Select a photo:') with Dissolve(0.3) return # Галерея фотографий в смартфоне - вывод картинки label lb_smartphone_GG_Gallery_2(img): show screen show_image_above_modal(img=img, mode='delete_button_smartphone') with Dissolve(0.3) pause 10 hide screen show_image_above_modal with Dissolve(0.3) return # Галерея фотографий в смартфоне - удаление картинки label lb_smartphone_GG_Gallery_3(img): menu: 'Delete photo': hide screen choose_img_gallery hide screen choose_folder_gallery with Dissolve(0.3) play sound "sounds/whip.mp3" #0 $ img = 'game/' + img call delete_file(file=img) from _call_delete_file 'Not': pass return # Проверка на возможность сделать скриншот label lb_screenshot_0: $ list_x = list_obj_feature(inv_GG, 'фотокамера') # Камера в инвентаре if len(list_x) > 0: call lb_screenshot from _call_lb_screenshot # в инвентаре нет камеры else: play sound "sounds/error.mp3" show screen mesage('You don\'t have a photo camera.') with Dissolve(0.3) return # Сделать снимок экрана label lb_screenshot(name = ''): $ date = str(datetime.datetime.now()) $ date = date.replace(":", "-") $ date = date.replace(".", "-") if name == '': if npc != '': $ name = npc.id else: $ name = 'photo' #0************************************************************** $ name = 'game/images/screenshots/' + date + '_' + name + '.jpg' $ renpy.hide_screen("say", layer=None) pause 0.1 $ renpy.screenshot(name) show screen show_image_above('scenes/black.png') with Dissolve(0.1) play sound "sounds/photo.mp3" hide screen show_image_above with Dissolve(0.7) return # Вывод картинки с заблуреной локацией label lb_show_img(img_list=[], dis=0.3): hide screen show_in_senter $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_list = [img_loc] + img_list show screen show_image_fix_size(img_list) hide screen show_scn hide screen show_image_in_position hide screen show_image hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location with Dissolve(dis) return # Квест 2 - старт звонок label lb_qw_2_passionate_dates_0_start(npc='', quest=''): call lb_images(loc='curr', loc_blur=1, dis=0.5) from _call_lb_images talker 'Observing openly dressed girls running in the park led me to quite definite thoughts. And I wanted to call someone.' call lb_images(loc='curr', loc_blur=1, img_1=['act_obj/smartphone_GG_call_fon.png'], dis=0.5) from _call_lb_images_1 show screen choose_NPC_from_list(list_npces=var_dict['contacts'], str_call='lb_qw_2_passionate_dates_0_start_1', mark='Call to...') with Dissolve(0.5) return # Квест 2 - старт - разговор по телефону label lb_qw_2_passionate_dates_0_start_1(npc=''): # Закончить звонок if npc == '': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на повторное взятие квеста if def_check_duble_quest(npc, qw_2_passionate_dates): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[qw_2_passionate_dates.name]" quest': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка на условия старта квеста - Love if npc.dict_skill['Love'] < 5.0: play sound "sounds/error.mp3" 'To start the quest you need 5.0 Love' hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle # Проверка пройдена $ char_npc = npc.name call lb_show_img(img_list=['act_obj/smartphone_GG_call_fon.png'], dis=0.5) from _call_lb_show_img # Звонок # Деньги за звонок if GG.money < cost_call: play sound "sounds/error.mp3" menu: 'Not enough money.': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle play music2 "sounds/cellphone_call_out.mp3" pause 5 stop music2 # Проверка на рассерженность if npc.emotion == '_angry': menu: '[npc.name] doesn\'t pick up the phone. She\'s probably mad at me.': hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle $ GG.money -= cost_call play sound "sounds/female_hello_call.mp3" pause 1.2 char_GG '- Hi [npc.name], how are you?' # Проверка на занятость НПС if npc.doing == 'working': char_npc '- Very busy.' char_GG '- Okay, then I\'ll call another time.' call lb_show_img(img_list=[], dis=0.5) from _call_lb_show_img_1 talker 'I\'ll have to call [npc.name] when she\'s not working.' hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle char_npc '- It\'s okay.' char_GG '- I\'m in the park now. Let\'s hang out here?' char_npc '- I have a better offer. Let\'s meet at the mall.' # Создание копии квеста $ quest = copy_obj(qw_2_passionate_dates) # Добавление квеста в список квестов $ var_dict['quests'].append(quest) # Привязка квеста к нпс $ quest.npc = npc $ quest.npc.features.append(quest) play sound "sounds/level_UP.mp3" $ quest.level = '1_mall' hide screen show_image_fix_size with Dissolve(0.3) jump main_cicle return # Квест 2 - встреча в моле label lb_qw_2_passionate_dates_1_mall(npc='', quest=''): $ npc = quest.npc # Переодевание в казуальную одежду $ def_change_clothe_set(npc, 'asual') call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_2 char_npc '- Hi' char_GG '- I didn\'t know we were planning on shopping.' char_npc '- We aren\'t. I plan on doing something else.' call lb_images(loc='curr', loc_blur=1) from _call_lb_images_3 talker 'We walked through the mall.' char_GG '- So what is your devious plan for our shopping trip?' char_npc '- I\'m not telling. It\'s a surprise.' # Магазин одежды $ var_dict['location'] = mall_clotheshop_loc stop music fadeout 0.7 talker 'We walked to the dress shop which looked quite nice but was having an end of season sale. Still the prices were high in my estimation. ' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_4 char_npc '- I\'m just looking anyway and don\'t plan on buying anything.' talker 'We went in and browsed around. [npc.name] picked up two very pretty dresses and one bikini that was on a very good sale. ' talker 'Then she went to the dressing rooms. I hung back assuming I couldn\'t go in. ' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_5 talker 'She came back to me and grabbed my hand and said...' call approach_npc(npc) from _call_approach_npc_11 call rnd_sound(sl_giggle) from _call_rnd_sound_150 char_npc '- Come on, silly!{p=0}and giggled.' # Примерочная play sound "sounds/close_door.mp3" $ var_dict['location'] = mall_clotheshop_dressing_room call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_norm') from _call_lb_images_6 talker 'I followed her into the dressing room and she locked the door.' char_npc '- OK, buster strip' talker 'She began to remove her clothes. I followed instructions.' char_npc '- Get the phone.' talker 'I did.' # Раздевание $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "The [npc.name] takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_7 $ count -= 1 #Приближение с поцелуем $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size with Dissolve(1.0) play sound "sounds/kiss.mp3" talker "When we were both naked, she came to me and put her arms around me and kissed me, rubbing her breasts on my chest and her vulva on my cock. It responded quite quickly. " call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_8 talker 'Then she got up and put on one of the dresses. ' play sound "sounds/clothe.mp3" call lb_add_clothe_npc(npc=npc, clothe=copy_obj(dress_flower)) from _call_lb_add_clothe_npc_32 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_9 talker 'It was a very pretty flowered pattern that hugged her body and flared into a wide skirt. ' call lb_screenshot from _call_lb_screenshot_1 talker 'I took a photo but the room was not big enough for a full length. She gathered the skirt up and put her hand under it and let it fall around it as if she was fingering her pussy, which maybe she was given the devilish look on her face. ' char_npc '- You want to fuck me?' char_GG '- Or eat you.' char_npc '- Not yet, we have two more things to model.' play sound "sounds/clothe.mp3" $ npc.clothes = [] call lb_add_clothe_npc(npc=npc, clothe=copy_obj(dress_5_transparent)) from _call_lb_add_clothe_npc_33 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_10 talker 'I doubted she would wear it in public without a bra underneath. It was made of a transparent material that allowed her to clearly see her breasts, which she continued to show me while posing.' char_npc '- What do you think, [GG.name]? You think I should buy this and wear it tonight. ' char_GG '- I dare you doubly!' talker 'She looked at the tag and frowned. ' char_npc '- Over $ 50 on sale. I guess I won\'t buy it.' call lb_screenshot from _call_lb_screenshot_2 show screen show_image_above('scenes/black.png') with Dissolve(0.1) play sound "sounds/photo.mp3" hide screen show_image_above with Dissolve(0.7) talker 'I took a few photos of her in it. ' $ npc.clothes = [] play sound "sounds/clothe.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_11 talker 'She stripped once more, this time trying to be more provocative.' char_npc '- Down, boy.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_12 call rnd_sound(sl_giggle) from _call_rnd_sound_151 talker 'I barked and she giggled.' char_npc '- Now for the final act,{p=0}she said as picked up the bikini. There wasn\'t much to it. Just enough for the images.' play sound "sounds/clothe.mp3" call lb_add_clothe_npc(npc=npc, clothe=copy_obj(bikini)) from _call_lb_add_clothe_npc_34 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, dis=1.5) from _call_lb_images_13 char_npc 'She looked at my cock and said,{p=0}- So you like it?' char_GG '- Absolutely, but I\'ve been liking everything.' talker 'She came over and took my cock in her hand and began stroking it.' call show_scene(npc, s_Handjob_2) from _call_show_scene_322 call lb_images(npc=npc, ava=1) from _call_lb_images_14 call play_animation(npc, a_Handjob_1) from _call_play_animation_53 char_npc '- Put your fingers in my pussy and make me cum, big boy.' play sound "sounds/clothe.mp3" $ npc.clothes = [] call lb_images(npc=npc, ava=1) from _call_lb_images_15 call show_scene(npc, s_Petting_3_1) from _call_show_scene_323 talker 'I did as instructed. She was already super turned on. Her G-spot was already engorged and her cervix pushing down for attention. ' call play_animation(npc, a_fingering) from _call_play_animation_69 talker 'She thrust against the heel of my hand to stimulate her clit and I stroked her G-Spot and cervix alternately. She was getting quite close and began squirming.' char_npc '- Oh, my God, I\'m cumming.' call female_orgasm from _call_female_orgasm_11 talker 'But she let out indiscernible grunts and groans. Anyone in the store would have heard her and known what we were up to.' talker 'Which brought my attention back to the fact that I was about as close to cumming as I could get before I did. ' char_GG '- I\'m going to cum, [npc.name].' call show_scene(npc, s_Blowjob_3) from _call_show_scene_324 call rnd_sound(sl_slurp) from _call_rnd_sound_152 talker 'She immediately pulled off my hand and turned to engulf my cock. She took it immediately down her throat and I came with my first shot. I was surprised how strong it felt, and she responded with a sort of grunt. ' call play_animation(npc, a_blowjob) from _call_play_animation_70 menu: 'Cum': call male_orgasm from _call_male_orgasm_13 call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_10 talker 'She pulled off a bit and took the next shots in her mouth swallowing between each one. ' show screen show_image_above('scenes/black.png') with Dissolve(1.0) call show_scene(npc, s_Other_1) from _call_show_scene_325 hide screen show_image_above with Dissolve(1.0) char_npc '- Oh, [GG.name], thank you, thank you, thank you. That was so good. You are such a great lover.' char_GG '- My love, you make me the greatest,{p=0}I said smiling broadly.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) play sound "sounds/clothe.mp3" $ var_dict['location'] = mall_loc play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker '{color=#5fe624}Love: +100{/color}' if 'open_shop_sex' not in var_dict: $ var_dict['open_shop_sex'] = [] $ var_dict['open_shop_sex'].append(npc) $ quest.level = '2_wait' talker 'Now you can invite [npc.name] to the store for "shopping."' hide screen show_image_above hide screen show_image_in_position_2 hide screen show_scn hide screen show_image_fix_size show screen my_GUI show screen location hide screen show_image with Dissolve(1.0) call minuts(15) from _call_minuts_50 return # Квест 2 - ждать 1 день # Квест 2 - звонок девушке из мола label lb_qw_2_passionate_dates_3_mall(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name call lb_images(loc='curr', loc_blur=1) from _call_lb_images_16 menu: 'Call [npc.name]': pass 'Not': hide screen show_image_fix_size jump main_cicle # Звонок # Деньги за звонок if GG.money < cost_call: play sound "sounds/error.mp3" menu: 'Not enough money.': hide screen show_image_fix_size jump main_cicle call lb_images(loc='curr', loc_blur=1, img_1=['act_obj/smartphone_GG_call_fon.png'], dis=0.5) from _call_lb_images_17 play music2 "sounds/cellphone_call_out.mp3" pause 5 stop music2 # Проверка на рассерженность if npc.emotion == '_angry': menu: '[npc.name] doesn\'t pick up the phone. She\'s probably mad at me.': hide screen show_image_fix_size jump main_cicle $ GG.money -= cost_call play sound "sounds/female_hello_call.mp3" pause 1.4 char_GG '- Hello [npc.name]. Meet me at the Mall?' play sound "sounds/female_laugh.mp3" pause 1.5 char_npc '- I have another idea.' char_GG '- ???' char_npc '- I\'ll meet you at the restaurant.' play sound "sounds/level_UP.mp3" $ quest.level = '4_restaurant' hide screen show_image_fix_size jump main_cicle return # Квест 2 - встреча в ресторане label lb_qw_2_passionate_dates_4_restaurant(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_63 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_64 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_18 pause 1.0 talker 'The hottest cocktail dress I had ever seen. It was loose and flirty around the thighs and just long enough to cover her butt. Her shoes matched the red color of the dress, finger nail polish, and lipstick. ' talker 'The heels were high enough to accentuate the curves of her well-toned calves and butt. Hugging her hips, the sheer fabric followed her curves inward to her waist, then back out again for her chest. ' talker 'The neckline was more like a breast-line. The low cut put the top of her breasts on proud display. I remember tying to pick out exactly how far beneath the edge of the fabric lay her nipples. ' talker 'Not far, I decided.' talker 'Her breasts were perfectly rounded in that dress, and although I had gotten to play with them earlier in the day, I now had to suppress my drooling instinct.' talker 'I understood very well the effect of a woman leaving something to the imagination, while simultaneously letting everyone in the room know what lay beneath. And indeed, everyone in the room seemed to notice [npc.name]. Heads turned, both male and female. ' talker 'She was not bikini-model thin, nor did she have porn-star unrealistic proportions. She had good muscle tone from her shoulders to her legs. She was real. She was perfect.' play sound "sounds/wow.mp3" char_GG '- Wh--...Wow, Wh-ha...{p=0}- You look gorgeous.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_19 char_npc '- Thank you! You\'re not so bad yourself.{p=0}She surreptitiously smacked my butt. She noticed me drinking her in, but didn\'t notice anyone else. She didn\'t have to. She knew exactly what she was doing.' talker 'I lifted her hand in the air to spin her around. ' call lb_images(loc='curr', loc_blur=1) from _call_lb_images_20 talker '[npc.name] obliged, the flirty bottom of her skirt rising briefly to a tantalizing height. ' talker 'I immediately wondered what she was wearing underneath, if anything. The dress was nearly backless, revealing skin down to where many women have a lower-back tattoo. But she did not have one. Nothing scarred the beauty of her skin.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_21 char_GG '- Do you always dress outfits for dating?' char_npc '- You never know who you\'re going to meet{p=0}she said coyly.' talker 'I was a little self-conscious at first, having such a gorgeous babe with me. I have rarely been seen in such company.' talker 'I began to relax after a few minutes. Ironically, it was the reaction of everyone around us that made me more comfortable. Actually, it was making me more confident. ' talker 'I caught a number of guys catching some not-so-subtle glimpses of [npc.name]. Even some women were eyeing us, perhaps figuring that there must be a reason why this beautiful blonde was with me.' talker 'Were they thinking I was a billionaire? Were they thinking I had a massive cock?' talker 'She was sexy enough in her current condition to start an erection at the mere thought of her nude body. ' talker 'And although I could stare at her face all day, if I looked for it I could see the minutely subtle effects of stress. None of that made her any less attractive to me or anyone else in the restaurant.' char_GG '- I\'m sure you\'ve heard this before, but you look younger.' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, decals=['blush']) from _call_lb_images_22 char_npc '- Thank you.{p=0}Her head was cocked down, and her eyelashes flipped up as she looked up at me.{p=0}- Say it again.' char_GG '- You could pass for XX.{p=0}- I\'m serious.' call rnd_sound(sl_giggle) from _call_rnd_sound_160 char_npc '- You are going to get sooo lucky tonight.' char_npc '- I have a confession to make.' char_GG '- You came here in a DeLorean and you have to go back to the year 2185?' play sound "sounds/female_laugh.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_23 char_npc '- No.' char_GG '- You\'re Lindsey Vonn\'s evil step-sister who didn\'t get into the Olympics, and now you want revenge?' play sound "sounds/female_laugh.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images_24 char_npc '- No!' char_GG '- Ran away from the Fundamentalist LDS cult?' char_npc '- Will you stop being a retard and let me talk?!' char_GG '- OK, go ahead.' talker 'She leaned forward and motioned for me to do the same.' call approach_npc(npc) from _call_approach_npc_13 talker 'I thought she just wanted to kiss me, but she turned her lips toward my ear. ' char_npc '- Well,{p=0}she whispered, and paused.{p=0}- I really want to hump your brains out. Right. Now.' talker 'The words felt like an avalanche, filling my ear with her hot breath and sexual desire. I had never had anyone say that to me before. This was certainly something I was not used to.' talker 'I backed up a few inches from her face and mouthed the word Now?' talker 'This one wanted action! Who was I to deny her?' char_npc 'Sitting back in her seat again, [npc.name] said out loud,{p=0}- Will you excuse me please, [GG.name]? I need to powder my nose.' call lb_images(loc='curr', loc_blur=1, dis=1.0) from _call_lb_images_25 talker 'I was still too shocked to reply. She disappeared toward the back of the restaurant. I watched her hips sway from side to side. ' talker 'The bottom of her dress swished in response and flirted with revealing her well-toned butt, and yet it was obvious that there was no risk of it ever rising quite that high on its own. ' talker 'God, I just wanted to lift up that thin piece of fabric and bury my face in those big globes.' talker 'I finally got up and headed for the men\'s room. ' talker 'I didn\'t know exactly what she had in mind, or how she intended to implement her plan. Where would we do this? How would we not get caught? Would the maitre\'d call the police? ' talker 'I only started thinking about these practicalities as I reached the back of the restaurant.' talker 'Just then, the door to the ladies\' room opened a crack, and I could see a sliver of [npc.name]\'s smiling face. ' play sound "sounds/close_door.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) pause 0.9 $ var_dict['location'] = restaurant_toilet play sound "sounds/close_lock.mp3" call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_26 hide screen show_image_above with Dissolve(0.3) talker 'She quickly opened the door just wide enough to grab me and pull me inside. She locked the door behind me...' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_161 talker "...and before I knew it we were locked in a hand-groping, body melding, lip-wrestling embrace that did nothing to hide the lust we had for each other." call rnd_sound(sl_kiss) from _call_rnd_sound_162 talker 'For a couple minutes I couldn\'t notice my surroundings, and all those fearful questions from just a few seconds ago went out the window. All that remained was lust. Sheer, unbridled lust.' play sound "sounds/clothe.mp3" talker 'My hand quickly found the bottom of her dress and went inside of it. I grabbed her ass, feeling nothing but skin. No panties! ' call rnd_sound(sl_moan) from _call_rnd_sound_163 talker 'As my lips kneaded her lips, my hands kneaded her butt cheek. She moaned in response. ' talker 'She has already unbuttoned three buttons on my shirt, and we quickly undressed.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" char_npc '- I haven\'t stopped thinking about this afternoon. It\'s made me so horny!' $ npc.clothes = ['Nude'] call lb_images(npc=npc, ava=1) from _call_lb_images_27 call show_scene(npc, s_Petting_1) from _call_show_scene_610 hide screen show_image_above with Dissolve(0.3) call rnd_sound(sl_scream) from _call_rnd_sound_164 talker 'Her tone of voice escalating as my hand found her breast. I must have been a little too excited, because I didn\'t just cup it gently: I grabbed it forcefully. [npc.name] squealed so loudly that it startled both of us.' talker 'We stopped moving instantly, and the small room became quiet.' talker 'It was then that we first realized how loud our groping was: Fabric rubbing upon fabric, skin on skin, feet shifting on the floor, and all the heavy breathing that goes along with a high-powered make-out session.' call rnd_sound(sl_giggle) from _call_rnd_sound_165 pause 0.3 play sound2 "sounds/male_chuckle_short.mp3" talker 'Both of us whispered a giggle.' call lb_images(loc='curr', dis=0.7) from _call_lb_images_28 talker 'I quickly looked around. One toilet, one sink, one trash can. It was meant for just one person, hence the lock on the door. ' talker 'This was a nice restaurant, so as far as public restrooms go, this one was very nicely decorated, and exceptionally clean. Not a bad place to get some clandestine action, I thought, if you\'re going to do it in a public place. ' talker 'We both knew, however, that someone could walk by the door at any time and hear us.' call lb_images(npc=npc, ava=1, dis=0.5) from _call_lb_images_29 call show_scene(npc, s_Petting_1) from _call_show_scene_611 talker 'So we continued our groping more quietly. She caressed my chest with both hands. My lips departed from hers and left a trail of kisses across her cheek and down her neck.' talker 'My hands reached her chest so quickly that there wasn\'t any time for her to feel naked. They were elegantly soft, but firm enough for me to knead them forcefully. ' call rnd_sound(sl_moan) from _call_rnd_sound_166 talker '[npc.name] almost squealed again, but just barely stifled by biting her lower lip.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_612 talker '[npc.name] squatted down so that she was looking right at the big cock that she just freed. It bounded out of my black briefs, and almost instantly completed its growth and pointing nearly straight up. ' talker 'I have rarely seen my cock point higher or felt it harder. It could have bounced a bullet. ' talker '[npc.name] lightly caressed the engorged tip with her fingertips. My cock jumped as she did. She rubbed the tip gently, then, even more gently, licked the underside of the head with the tip of her tongue.' talker 'My cock jumped again and I thought I could have cum right then and there. She flicked the same spot a few times with her tongue as I strained to stay silent. ' play music "sounds/deep_breath_man.mp3" talker 'I could hear my heavy breathing echoing off the tile floor and walls. After a minute of licking my cockhead and making it so sensitive that I could have felt a speck of dust land on it, she took it into her mouth: just the head. ' call show_scene(npc, s_Blowjob_1) from _call_show_scene_613 talker 'She moved her mouth back and forth slightly, so that only the edge of my head slid past her lips. Her tongue flicked the very tip of my cock as she did this.' call play_animation(npc, a_blowjob) from _call_play_animation_77 char_GG '- Holy shit!{p=0}I whispered between breaths.{p=0}- Holy fuck! [npc.name]!"' talker 'Damn, was she good at this! The assault on the leading half of my cock was smooth and wet, and her tongue lashing at the bottom of my head made me break out in a cold sweat.' talker 'Her right hand started to lightly massage the other half, daring it to summon up a load of semen.' call play_animation(npc, a_blowjob, 2) from _call_play_animation_78 talker 'She was so good at this that she didn\'t need to take any more of me into her mouth. After another minute I felt the leading edge of my orgasm start to well up at the base of my cock. ' call play_animation(npc, a_blowjob, 2) from _call_play_animation_79 char_GG '- I can feel it coming on!{p=0}[npc.name] continued to massage the end of my dick, and the orgasm began to develop in earnest.' char_GG '- Oh my God, [npc.name]! I\'m gonna cum!{p=0}I warned her, trembling. I was amazed. Nobody had made me cum that fast from a blow job. I had never had anyone who knew just how to massage my dick and get me off that fast.' call play_animation(npc, a_blowjob, 2) from _call_play_animation_80 char_GG '- Ahh fuck! I\'m gonna cum!{p=0}I whisper-yelled. But she didn\'t stop. With the last glimmer of rational thought, I wondered if she would have to walk back into the restaurant with the smell of cum on her mouth, or her lipstick smeared from cleaning it off.' call show_scene(npc, s_Blowjob_2) from _call_show_scene_614 call male_orgasm from _call_male_orgasm_15 stop music talker 'But that concern was vaporized by the orgasm that enveloped me, took hold of me, consumed me. My knees started shaking and I almost collapsed. ' talker 'My cock and balls responded as a team to the sensations that [npc.name] was giving me, and the first spurt of cum shot out the tip of my dick. ' call show_scene(npc, s_Blowjob_2) from _call_show_scene_615 call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_11 talker 'It was a big one--I could feel it. I could clearly feel every subsequent spurt and hear every one of the groans that I couldn\'t hold back. It was an incredible sensation to feel my semen leaving me so quickly. ' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_12 talker 'It must have shot right down [npc.name]\'s throat. My butt clenched with every squirt, and [npc.name] didn\'t stop her massage until I was totally spent and her mouth totally full.' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_13 pause 1.5 play sound "sounds/knock_door.mp3" talker 'Just then there was a knock at the door. We stopped, stunned.' talker '- Is everything alright in there?{p=0}an elderly female voice asked. I couldn\'t believe it! I had barely finished cumming!' call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1, decals=['cum_mouth']) from _call_lb_images_30 talker '[npc.name] quickly stood up.' char_npc '- Just fine,{p=0}she said with a trembling voice.' char_npc '- Be out in a minute.' call lb_images(loc='curr', loc_blur=1, dis=0.5) from _call_lb_images_31 play sound "sounds/bathroom_toilet_flushing.mp3" pause 2.0 talker 'A shock of adrenaline shot through me. We\'re caught for sure! I thought. I dared not speak.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" talker 'We got dressed quickly.' talker 'My dick was still so hard that I found it difficult to fit back in my briefs. The tip poked out the top and I could barely fasten my pants. My belt buckle was jingling the entire time as I fumbled around. ' # Переодевание в коктельное платье $ npc.clothes = ['Quest'] call lb_add_clothe_npc(npc=npc, clothe=cocktail_dress) from _call_lb_add_clothe_npc_65 call lb_add_clothe_npc(npc=npc, clothe=decoration_1) from _call_lb_add_clothe_npc_66 call lb_images(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images_32 hide screen show_image_above with Dissolve(0.3) talker 'That woman out there had to know what was going on.' char_GG '- What do we do?' talker 'She shrugged and took hold of the door handle. I begged her silently not to open it. But I knew that she had to.' call lb_images(loc='curr', loc_blur=1) from _call_lb_images_33 pause 0.5 play sound "sounds/close_lock.mp3" pause 0.5 play sound "sounds/open_door.mp3" talker 'I hid behind the door as [npc.name] exited and apologized to the lady for taking so long.' play sound "sounds/close_door.mp3" talker '- Oh, not to worry, dear.' play sound "sounds/open_door.mp3" talker 'The lady opened the door and entered the restroom as I tried to make myself as thin as possible behind the door. ' talker 'I knew it was of little use, but I wanted to postpone the inevitable for as long as possible. The lady passed the door and headed for the toilet. Her head was turned just far enough for me to try to make a quick turn around the door and out into the hall.' $ var_dict['location'] = restaurant call lb_images(loc='curr', loc_blur=1) from _call_lb_images_34 talker 'Success. Ha! I\'m a ninja! I thought. As I walked away basking in my triumph.' talker 'I thought I heard a voice coming from inside the restroom saying,{p=0}- Good job, young man!' play sound "sounds/level_UP.mp3" if 'open_restaurant_sex' not in var_dict: $ var_dict['open_restaurant_sex'] = [] $ var_dict['open_restaurant_sex'].append(npc) $ quest.level = 'end_quest' hide screen show_image_fix_size call minuts(30) from _call_minuts_169 jump main_cicle return # Переход к редактированию НПС-а label lb_open_editor_NPC(npc): menu: '{a=https://www.patreon.com/posts/40204057}About Editor{/a}': pass return # Уменьшение размера файла НПС label lb_reduce_NPC_file: python: for npc in var_dict['npces']: # Стирание current_image npc.cur_image = '' # Замена в расписании локаций на их ID for table_line in npc.table: location = table_line[5] table_line[5] = def_return_loc_by_id(location.id) # Сохранение with open('npc/' + npc.id + '.pkl', 'wb') as output: pickle.dump(npc, output, pickle.HIGHEST_PROTOCOL) return # Статья о фентези одежде label lb_fantasy_set_clothes_stop(): hide screen popup_image menu: '{a=https://www.patreon.com/posts/44684023}Fantasy set of clothes{/a}': pass return # Статья о фентези внешнем виде label lb_fantasy_aperanse_stop(): hide screen popup_image menu: '{a=https://www.patreon.com/posts/44141181}Transfer of fantasy appearance{/a}': pass return # Приминение препарата на НПС label lb_use_drug_NPC(npc): hide screen info with Dissolve(0.3) $ drug = var_dict['use_drug_NPC'] if npc != '': menu: 'Apply the drug at the [npc.name]': # Проверка находится ли НПС уже под действием какого-нибудь препарата if def_check_drug_NPC(npc) != False: play sound "sounds/error.mp3" menu: '[npc.name] is already under the influence of another drug.': pass else: # Применение play sound "sounds/drugs.mp3" $ drug.dict['NPC'] = npc $ npc.dict_skill[drug.dict['skill']] += drug.dict['value'] $ var_dict['действующие на НПС перпараты'].append(copy_obj(drug)) # Удалить из инвентаря ГГ $ inv_GG.cells.remove(drug) 'Not': pass return # Подождать дилера - покупка препаратов и отмычек label lb_wait_diler: $ name_char = 'Dealer' menu: char_npc 'What do you need?' 'Buy drug': $ var_dict['inventary'] = dealer_shop show screen inventary with Dissolve(0.5) "Buy something special": $ var_dict['inventary'] = special_shop show screen inventary with Dissolve(0.5) 'Do not need anything': pass call minuts(15) from _call_minuts_51 return # Разговор по телефону label lb_talk_smartphone(npc, topic=''): hide screen interaction hide screen NPC_talk_smartphone hide screen popup_text with Dissolve(0.3) $ name_char = npc.name # Проверка на количество шуток if topic == 'joke': if npc.dict_marks['talk_joke'] > 1: talker 'Stop joking for today. I do not want to turn into a clown.' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) return # Проверка на подходят ли темы. Writing, Programming, Intelligence if topic == 'Writing' or topic == 'Programming' or topic == 'Intelligence': if npc.dict_skill_0[topic] == 0.0: talker '[npc.name] knows nothing about this and she is not interested.' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) return if GG.dict_skill[topic] < 0.5: talker 'You do not have enough knowledge to talk about this topic.' talker 'Need 0.5 [topic].' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) return # Проверка на дружбу if topic == 'friendship': if npc.dict_skill['Friend/Anger'] < 1.0: talker 'You are not friendly enough with [npc.name] to conduct such conversations.' talker 'Need 1.0 Friend.' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) return $ npc.dict_marks['talk'] = npc.dict_marks['talk'] + 1 # Проверка на количество уже состоявшихся разговоров if npc.dict_marks['talk'] > 5: talker '[npc.name] says we have already talked a lot today.' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) return # Увеличение характеристик # Навык общения увеличение $ GG.dict_skill['Talk'] = GG.dict_skill['Talk'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 # Исследованность нпс увеличивается $ npc.dict_skill['Exploration'] = npc.dict_skill['Exploration'] + 100 # Погода - Weather if topic == 'weather': char_GG '- Nice weather?' char_npc '- Yes, but yesterday was better.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +0.10 {p=0}Exploration: + 0.02{/color}' # Шутка - joke if topic == 'joke': $ npc.dict_marks['talk_joke'] = npc.dict_marks['talk_joke'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 talker 'You told a funny joke' play sound "sounds/female_laugh.mp3" pause 2.5 char_npc '- Thanks it was very funny.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Разговоры на профессиональные тематики Writing, Programming, Intelligence if topic == 'Writing' or topic == 'Programming' or topic == 'Intelligence': # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 talker 'You talked to [npc.name] about [topic].' char_npc '- Thank you for talking. It was very interesting.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Дружеский разговор if topic == 'friendship': # Навык общения увеличение $ GG.dict_skill['Talk'] = GG.dict_skill['Talk'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 # Исследованность нпс увеличивается $ npc.dict_skill['Exploration'] = npc.dict_skill['Exploration'] + 100 char_GG '- What is up.' char_npc '- OK.' talker 'A little friendly conversation is always good.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Любовный разговор if topic == 'romantic': # Любовь к ГГ увеличение $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker 'You had a nice romantic conversation.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Love: + 100{/color}' show screen interaction(smartphone_GG_call) show screen NPC_talk_smartphone(npc) with Dissolve(0.3) call minuts(15) from _call_minuts_52 return # Обмен телефонами label lb_exchange_phone_numbers(npc): # Проверка на вхождение в список контактов if def_check_NPC_list_ID(list=var_dict['contacts'], ID=npc.id): menu: 'We already know each other\'s phone numbers.': play sound "sounds/click_button.mp3" return call lb_show_npc(npc) from _call_lb_show_npc_115 $ name_char = npc.name char_GG 'Maybe we should exchange phone numbers?' # Недостаточно знакомы if npc.dict_skill['Exploration'] < 1.0: play sound "sounds/error.mp3" char_npc 'We are not familiar enough for this.' # Обмен телефонами else: char_npc 'Sure.' $ var_dict['contacts'].append(npc) play sound "sounds/level_UP.mp3" talker '[npc.name]\'s number has been added to your smartphone.' hide screen show_image return # Смартфон - прекращение звонка label lb_off_smartphone_GG_call: stop music2 show screen interaction(smartphone_GG) with Dissolve(0.3) return # Смартфон - контакты, выбор label lb_smartphone_GG_Contacts: show screen choose_NPC_from_list(list_npces=var_dict['contacts'], str_call='lb_smartphone_GG_Contacts_2', mark='Call to...') with Dissolve(0.5) return # Смартфон - контакты, звонок label lb_smartphone_GG_Contacts_2(npc): if npc != '': # Деньги за звонок if GG.money < cost_call: play sound "sounds/error.mp3" menu: 'Not enough money.': pass call lb_off_smartphone_GG_call from _call_lb_off_smartphone_GG_call return $ var_dict['calling_NPC'] = npc show screen interaction(smartphone_GG_call) with Dissolve(0.5) play music2 "sounds/cellphone_call_out.mp3" pause 5 stop music2 # Проверка на рассерженность if npc.emotion == '_angry': menu: '[npc.name] doesn\'t pick up the phone. She\'s probably mad at me.': jump lb_off_smartphone_GG_call $ GG.money -= cost_call play sound "sounds/female_hello_call.mp3" pause 0.5 call lb_smartphone_GG_Contacts_3(npc) from _call_lb_smartphone_GG_Contacts_3 return # Смартфон - контакты, звонок label lb_smartphone_GG_Contacts_3(npc): hide screen NPC_talk_smartphone with Dissolve(0.3) $ name_char = npc.name # Звонок НПСу menu: 'Small talk': show screen NPC_talk_smartphone(npc) with Dissolve(0.3) 'Invite her': hide screen interaction with Dissolve(0.3) char_GG '- Hey. Let\'s meet.' char_npc '- I am busy right now.' # Определение типа Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': char_npc '- But you can come to me.' menu: 'Where are you now?': $ name_location = npc.location.name char_npc 'I\'m in [name_location].' return 'Then next time.': show screen interaction(smartphone_GG_call) with Dissolve(0.5) call lb_smartphone_GG_Contacts_3(npc) from _call_lb_smartphone_GG_Contacts_3_1 # Ветка подчинения if type_x == 'Submission': menu: '- Do not care! Quickly to me!': # Проверка на количество вызовов if 'invite' not in npc.dict_marks: $ npc.dict_marks['invite'] = 0 # Слишком часто вызывал сегодня if npc.dict_marks['invite'] >= 2: char_npc 'I really can\'t right now.' menu: 'Does not care!': play sound "sounds/error.mp3" char_npc '- Fuck you!' talker 'Looks like he overdid it (you can invite a girl no more than twice a day).' $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#d53232}Friend/Anger: +100{/color}{p=0}' 'Ok then next time.': pass call lb_off_smartphone_GG_call from _call_lb_off_smartphone_GG_call_1 jump main_cicle # Проверка на подчинение if npc.dict_skill['Submission'] < 3.0: play sound "sounds/error.mp3" char_npc '- Fuck you!' talker 'Need Submission 3.0' $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Submission'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#d53232} Love: +100{/color}{p=0} {color=#d53232}Friend/Anger: +100{/color}{p=0} {color=#5fe624}Submission: +100{/color}' else: # Появление НПС $ npc.dict_marks['invite'] += 1 char_npc '.' char_npc '..' char_npc '...' char_npc '- I\'m coming.{p=0} Meekly said [npc.name].' show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.7) menu: 'Over time.': call minuts(15) from _call_minuts_53 # Переодевание $ def_change_clothe_set(var_dict['calling_NPC'], 'asual') $ time_stat = var_dict['calling_NPC'].dict_skill['Submission'] $ time_stat = int(time_stat * 5.0) $ var_dict['go_npc'] = [ var_dict['calling_NPC'], time_stat] hide screen show_image_above with Dissolve(0.5) return 'Then next time.': pass 'Disconnected the call': call lb_off_smartphone_GG_call from _call_lb_off_smartphone_GG_call_2 call lb_off_smartphone_GG_call from _call_lb_off_smartphone_GG_call_3 return # Смартфон - информация об игроке label lb_smartphone_GG_Player_info: show screen GG_info with Dissolve(0.5) return # Смартфон - играть label lb_smartphone_GG_Games: show screen interaction(smartphone_GG_game) with Dissolve(0.5) play music "sounds/smartphone_game.mp3" fadein 1.0 menu: 'Play 1h | Joy +-': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(45) from _call_minuts_54 call minuts(15) from _call_minuts_55 'Play 2h | Joy +': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(90) from _call_minuts_56 call minuts(30) from _call_minuts_57 'Play 3h | Joy ++': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(120) from _call_minuts_58 call minuts(60) from _call_minuts_59 'Not': pass show screen interaction(smartphone_GG) hide screen show_image_modal with Dissolve(0.3) stop music fadeout 0.2 return # Смартфон - частный сыщик label lb_smartphone_GG_PI: show screen qwestion('Order an investigation from a private detective (increases Exploration).', 'lb_smartphone_GG_PI_2') with Dissolve(0.3) return # Смартфон - частный сыщик 2 label lb_smartphone_GG_PI_2: hide screen qwestion hide screen interaction hide screen my_GUI hide screen location show screen show_image(img='locations/PI.jpg') with Dissolve(0.3) # Если ссыщик занят if var_dict['PI_order'] != []: talker 'Sorry, but the detective is busy right now.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) jump main_cicle show screen choose_NPC('lb_smartphone_GG_PI_3') talker 'Select NPCs to investigate.' return # Смартфон - частный сыщик 3 label lb_smartphone_GG_PI_3: if var_dict['npc'] != '': $ npc = var_dict['npc'] $ exploration = npc.dict_skill['Exploration'] $ var_exp = 0.0 $ var_money = 0 $ var_days = 0 menu: 'Raise [npc.name]\'s Exploration from [exploration] to 1.0 (2000 р)' if exploration < 1.0: $ var_exp = 1.0 $ var_money = 2000 $ var_days = 1 'Raise [npc.name]\'s Exploration from [exploration] to 2.0 (5000 р)' if exploration >= 1.0 and exploration < 2.0: $ var_exp = 2.0 $ var_money = 5000 $ var_days = 2 'Raise [npc.name]\'s Exploration from [exploration] to 3.0 (9000 р)' if exploration >= 2.0 and exploration < 3.0: $ var_exp = 3.0 $ var_money = 9000 $ var_days = 3 'Raise [npc.name]\'s Exploration from [exploration] to 4.0 (15000 р)' if exploration >= 3.0 and exploration < 4.0: $ var_exp = 4.0 $ var_money = 15000 $ var_days = 4 'Close': pass if var_money > GG.money: play sound "sounds/error.mp3" talker 'Not enough money.' elif var_money != 0: $ GG.money -= var_money $ var_dict['PI_order'] = [npc, var_days, var_exp] play sound "sounds/money.mp3" talker 'The order has been placed. The result will be in [var_days] days.' show screen my_GUI show screen location show screen interaction(smartphone_GG) hide screen show_image with Dissolve(0.3) return # Смартфон - информация о девушке label lb_Girls_info_smartphone_GG_2: if var_dict['npc'] != '': show screen NPC_info(var_dict['npc']) with Dissolve(0.3) return # Смартфон - выбор из известных девушек для информации label lb_Girls_info_smartphone_GG: show screen choose_NPC(str_call='lb_Girls_info_smartphone_GG_2') with Dissolve(0.3) return # Смартфон - выключение label lb_off_smartphone_GG: hide screen interaction with Dissolve(0.3) return # Проверка на достижение скиллов ГГ label lb_GG_skill_reach: if 'current_GG_skill' not in var_dict: $ var_dict['current_GG_skill'] = copy_obj(GG.dict_skill) $ check_change = False python: for skill in var_dict['current_GG_skill']: if isinstance(var_dict['current_GG_skill'][skill], float): var_prev = int(var_dict['current_GG_skill'][skill]) var_cur = int(GG.dict_skill[skill]) # Проверка произошло ли изменение if var_prev != var_cur: check_change = True # # Исключение состояний влияющих на состояния # if 'лёгкое_опьянение' not in GG.features and 'сильное_опьянение' not in GG.features: # check_change = True break # Если изменение произошло if check_change: # Увеличение показателя if var_cur > var_prev: play sound "sounds/level_UP.mp3" # Уменьшение показателяъ if var_cur < var_prev: play sound "sounds/error.mp3" menu: 'Your [skill] has changed from [var_prev] to [var_cur]': pass $ var_dict['current_GG_skill'] = copy_obj(GG.dict_skill) return # Удаление активного квеста label lb_quest_delete(npc, quest): menu: 'Delete quest - [quest.name].': # Удаление квеста из списка квестов $ var_dict['quests'].remove(quest) # Отвязка квеста от нпс $ npc.features.remove(quest) play sound "sounds/whip.mp3" 'Not': pass return # Взаимодействие со стриптизёршами в стрип-клубе label lb_stripper_actions(npc): $ name_char = npc.name call lb_show_npc2(npc) from _call_lb_show_npc2_21 # Если стриптизёрша знакомая if npc.dict_skill['Exploration'] > 0.0: # Определение типа отношений Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Love if type_x == 'Love': call rnd_sound(sl_giggle) from _call_rnd_sound_153 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_91 call lb_show_npc2(npc) from _call_lb_show_npc2_22 char_npc 'Hi, I have not seen you for a while.' char_npc 'What brings you here?' # Submission if type_x == 'Submission': call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_92 call lb_show_npc2(npc) from _call_lb_show_npc2_23 char_npc 'Won\'t you leave me alone even at work?' char_npc 'What do you want now?' menu: 'Dance (200)': # Проверка на наличие денег if GG.money < 200: play sound "sounds/error.mp3" talker 'Not enough money.' else: play sound "sounds/money.mp3" $ GG.money -= 200 call lb_stripper_actions_dance(npc) from _call_lb_stripper_actions_dance 'Lap dance (500)': # Проверка на наличие денег if GG.money < 500: play sound "sounds/error.mp3" talker 'Not enough money.' else: play sound "sounds/money.mp3" $ GG.money -= 500 call lb_stripper_actions_lap_dance(npc) from _call_lb_stripper_actions_lap_dance 'Nothing': pass $ var_dict['location'] = strip_club hide screen show_image hide screen show_in_senter_down hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.5) call minuts(15) from _call_minuts_60 jump main_cicle return # Заказанный стриптиз label lb_stripper_actions_dance(npc): $ strip_set = def_return_set_NPC('Strip club', npc) $ var_dict['clothe_setting_in_scene'] = strip_set[1].images[1] talker '-200' # Переодевание Беллы if npc.id == "Bella-282109604657618173649596799967708213523": python: npc.clothes = [] for set_line in npc.clothe_sets: if set_line[0] == 'Strip club': for clothe in set_line: npc.clothes.append(clothe) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above hide screen show_image with Dissolve(1.0) pause 1.5 play sound "sounds/cheer_crowd.mp3" talker 'The stripper approached the pole.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_80 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_326 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5) from _call_show_scene_327 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5, True) from _call_show_scene_328 pause 1.0 call show_scene(npc, s_Pole_strip_3, 0.5, True) from _call_show_scene_329 pause 1.0 call show_scene(npc, s_Pole_strip_4, 0.5, True) from _call_show_scene_330 pause 1.0 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_331 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'With a few light movements, the stripper freed herself from the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'And she continued the dance.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_81 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_332 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_333 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_334 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_335 pause 1.0 call show_scene(npc, s_Pole_strip_1_topless, 0.5) from _call_show_scene_336 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'The panties followed the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" pause 1.0 talker 'And the dance continued.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_82 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_337 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_338 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_339 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_340 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare) from _call_show_scene_341 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5, True) from _call_show_scene_342 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5) from _call_show_scene_343 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5) from _call_show_scene_344 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5, True) from _call_show_scene_345 pause 1.0 call show_scene(npc, s_Pole_strip_4_bare, 0.5) from _call_show_scene_346 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(2.5) hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) hide screen show_image_above with Dissolve(0.5) talker 'The stripper looked down from the stage.' # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) talker 'And left the stage.' # image - Пустая сцена show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0]]) with Dissolve(1.5) pause 2.0 $ var_dict['clothe_setting_in_scene'] = [] return # Заказанный Lad dance label lb_stripper_actions_lap_dance(npc): '-500' $ name_char = npc.name $ var_dict['location'] = VIP_dance call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_93 call lb_show_npc2(npc) from _call_lb_show_npc2_24 talker 'We went to a private place.' # Раздевание $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "The stripper takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_show_npc2(npc, 1.5) from _call_lb_show_npc2_25 $ count -= 1 # Приватный танец char_GG '- Come, honey, do me a lap dance.' talker 'The stripper looked at me and smiled slightly.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_83 call show_scene(npc, s_Show_3, dis=0.7) from _call_show_scene_347 talker 'Then, moving her hips seductively, she turned around.' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_154 hide screen show_image_above with Dissolve(1) talker 'The stripper cried out, looking back at me with surprise.' call rnd_sound(sl_moan) from _call_rnd_sound_155 char_npc '- Ouch!' call show_scene(npc, s_Lap_dance_1_2, dis=0.7) from _call_show_scene_348 $ renpy.music.set_volume(0.2, delay=2.5, channel='music') play music2 "sounds/deep_breath.mp3" fadein 1.5 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_84 talker 'The stripper breathed excitedly as she sat down on my lap.' call play_animation(npc, a_lap_dance_1) from _call_play_animation_71 talker 'The stripper began to wiggle her ass on my lap.' call show_scene(npc, s_Petting_1) from _call_show_scene_349 talker 'I began groping her, caressing her tits...' call show_scene(npc, s_Petting_8) from _call_show_scene_350 talker '...and squeezing her nipples. ' call rnd_sound(sl_moan) from _call_rnd_sound_156 talker 'The stripper\'s entire body stiffened, and she cried out in quietly and I could feel her nipples begin to harden. ' call show_scene(npc, s_Lap_dance_2_1) from _call_show_scene_351 talker 'I slowly moved one of my hands down her side onto her thigh.' char_GG '- Do you want me to play with your clit?{p=0} Talk I while my hand moved slowly closer to her pussy.' talker 'Last step.' char_npc '- ye... yes, please!' talker 'Most Strip clubs don\'t allow pussy play. Oh well, most are not all.' talker 'I put my hand between her legs and began to rub the stripper\'s clit.' call rnd_sound(sl_penetration) from _call_rnd_sound_157 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_352 talker 'The stripper began to breathe faster, eventually letting out a moan as I worked her pussy faster.' stop music2 fadeout 1.5 call play_animation(npc, a_lap_dance_2) from _call_play_animation_72 talker 'The stripper enjoyed it, and every few seconds a moan escaped her lips.' call rnd_sound(sl_moan) from _call_rnd_sound_158 char_npc '- Plea...please, I need it.' call play_animation(npc, a_lap_dance_2_tempo) from _call_play_animation_73 call rnd_sound(sl_penetration) from _call_rnd_sound_159 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_353 'The stripper trembled.' call female_orgasm from _call_female_orgasm_12 'And had an orgasm, or well imitated it.' $ renpy.music.set_volume(0.5, delay=2.5, channel='music') return # Отработка НПС в стриптиз клубе label lb_working_off_strip_club: # Проверка - есть ли прошедшие квест "Лёгкие деньги" if 'end_quest_Easy_Money' not in var_dict: play sound "sounds/error.mp3" menu: 'There are no girls for this ("Easy Money" quest).': $ var_dict['end_quest_Easy_Money'] = [] return if var_dict['end_quest_Easy_Money'] == []: play sound "sounds/error.mp3" menu: 'There are no girls for this ("Easy Money" quest).': $ var_dict['end_quest_Easy_Money'] = [] return # Выбор НПС show screen choose_NPC_from_list(list_npces=var_dict['end_quest_Easy_Money'], str_call='lb_working_off_strip_club2', mark='Choose a girl:') with Dissolve(0.3) return label lb_working_off_strip_club2(npc): # Close if npc == '': return $ name_char = npc.name # Проверка на рассерженность if npc.dict_skill['Friend/Anger'] < 0: talker 'I called [npc.name].' play sound "sounds/cellphone_call_out.mp3" pause 3.0 play sound "sounds/cellphone_call_out.mp3" pause 3.0 play sound "sounds/cellphone_call_out.mp3" pause 3.0 talker 'It looks like [npc.name] is still mad at me.' hide screen show_image with Dissolve(0.5) return # Проверка на повторное шоу if npc in var_dict['working_off_strip_club']: play sound "sounds/error.mp3" menu: "[npc.name] has already participated in the show today.": return # Проверка на уровень if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] < 5.0: play sound "sounds/error.mp3" menu: 'Need: 5.0 Love or 5.0 Submission.': return # Определение типа отработки Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) show screen show_image(img_list=[img_loc]) with Dissolve(0.5) menu: 'Watch the performance': talker 'I called [npc.name].' play sound "sounds/cellphone_call_out.mp3" pause 3.0 char_npc '- Yes?' # Ветка любви if type_x == 'Love': char_GG '- Do you want to perform at the strip club again?' talker 'The phone was silent.' char_npc '- Positively.{p=0}After a short pause, [npc.name] answered.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) menu: 'Over time': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 # Переодевание в стриптиз наряд $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=stockings_090) from _call_lb_add_clothe_npc_35 call lb_add_clothe_npc(npc=npc, clothe=panty_090) from _call_lb_add_clothe_npc_36 call lb_add_clothe_npc(npc=npc, clothe=bra_090) from _call_lb_add_clothe_npc_37 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above hide screen show_image with Dissolve(1.0) pause 1.5 play sound "sounds/cheer_crowd.mp3" talker 'The appearance of my girlfriend was greeted with a joyful hum.' talker '[npc.name] approached the pole.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_85 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_354 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5) from _call_show_scene_355 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5, True) from _call_show_scene_356 pause 1.0 call show_scene(npc, s_Pole_strip_3, 0.5, True) from _call_show_scene_357 pause 1.0 call show_scene(npc, s_Pole_strip_4, 0.5, True) from _call_show_scene_358 pause 1.0 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_359 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_107 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'With a few light movements, [npc.name] freed herself from the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'And she continued the dance.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_86 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_360 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_361 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_362 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_363 pause 1.0 call show_scene(npc, s_Pole_strip_1_topless, 0.5) from _call_show_scene_364 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'The panties followed the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" pause 1.0 talker 'Perhaps [npc.name]\'s dance lacked technique, but the movements were more or less professional. And where did the recent stiffness go.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_87 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_365 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_366 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_367 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_368 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare) from _call_show_scene_369 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5, True) from _call_show_scene_370 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5) from _call_show_scene_371 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5) from _call_show_scene_372 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5, True) from _call_show_scene_373 pause 1.0 call show_scene(npc, s_Pole_strip_4_bare, 0.5) from _call_show_scene_374 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(2.5) stop music fadeout 2.5 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] ran her eyes over the faces of the audience. ' call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_94 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) talker 'She was satisfied with the effect and smiled triumphantly.' # image - Пустая сцена show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0]]) with Dissolve(1.5) pause 2.0 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_95 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_108 # Ветка подчинения if type_x == 'Submission': char_GG '- I\'m in the strip club. Come quickly here. Make some money.' talker 'The phone was silent.' char_npc '- I will do it.{p=0}[npc.name] answered without much joy.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) menu: 'Over time': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 # Переодевание в стриптиз наряд $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=stockings_090) from _call_lb_add_clothe_npc_38 call lb_add_clothe_npc(npc=npc, clothe=panty_090) from _call_lb_add_clothe_npc_39 call lb_add_clothe_npc(npc=npc, clothe=bra_090) from _call_lb_add_clothe_npc_40 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above hide screen show_image with Dissolve(1.0) pause 1.5 play sound "sounds/cheer_crowd.mp3" talker 'The appearance of my obedient slut was greeted with a joyful hum.' talker '[npc.name] approached the pole.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_88 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_375 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5) from _call_show_scene_376 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5, True) from _call_show_scene_377 pause 1.0 call show_scene(npc, s_Pole_strip_3, 0.5, True) from _call_show_scene_378 pause 1.0 call show_scene(npc, s_Pole_strip_4, 0.5, True) from _call_show_scene_379 pause 1.0 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_380 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_96 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] was still not happy with the idea of undressing on stage.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'But the training was not in vain.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_89 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_381 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_382 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_383 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_384 pause 1.0 call show_scene(npc, s_Pole_strip_1_topless, 0.5) from _call_show_scene_385 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_97 $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'The panties followed the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_98 $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" pause 1.0 talker 'Perhaps [npc.name]\'s dance lacked technique, but the movements were more or less professional. And where did the recent stiffness go.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_90 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_386 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_387 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_388 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_389 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare) from _call_show_scene_390 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5, True) from _call_show_scene_391 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5) from _call_show_scene_392 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5) from _call_show_scene_393 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5, True) from _call_show_scene_394 pause 1.0 call show_scene(npc, s_Pole_strip_4_bare, 0.5) from _call_show_scene_395 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(2.5) stop music fadeout 2.5 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_99 $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] found me with her eyes. She received a condescending nod from me and sighed with relief.' # image - Пустая сцена show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0]]) with Dissolve(1.5) pause 2.0 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_100 'Not': pass # Деньги за выступление # Ветка любви if type_x == 'Love': talker 'The show ended.' menu: 'Talk to the girl about money': $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2_26 char_GG '- You were great.' # Поцелуй $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) play sound "sounds/kiss.mp3" talker "I praised [npc.name], hugging her to me." call lb_show_npc2(npc) from _call_lb_show_npc2_27 char_GG '- How much did you earn?' # Расчёт суммы заработанной девушкой $summa = int(round(random.uniform(1000, 2000), 0)) char_npc '- Not much, [summa].' char_npc '- How many do you want?' $ summa_4 = summa/4 $ summa_2 = summa/2 menu: '- I\'ll take 25\% (+[summa_4])': play sound "sounds/money_add.mp3" $ GG.money += summa_4 talker 'She handed over the money.' '- I\'ll take half (+[summa_2] +Angry)': play sound "sounds/money_add.mp3" $ GG.money += summa_2 $ npc.dict_skill['Friend/Anger'] -= 0.1 talker 'She handed over the money, pursing her lips in displeasure.' '- I\'ll take everything (+[summa] +++Angry)': play sound "sounds/money_add.mp3" $ GG.money += summa $ npc.dict_skill['Friend/Anger'] -= 1.0 talker 'She made a displeased grimace.' char_npc '- Why then should I do this?' char_GG '- I think you like the process itself.' 'Not': pass # Ветка подчинения if type_x == 'Submission': talker 'The show ended.' menu: 'Talk to the girl about money': $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2_28 char_GG '- It was good.' # Поцелуй $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) play sound "sounds/kiss.mp3" talker "I praised [npc.name], hugging her to me." call lb_show_npc2(npc) from _call_lb_show_npc2_29 char_GG '- How much did you earn?' # Расчёт суммы заработанной девушкой $summa = int(round(random.uniform(1000, 2000), 0)) char_npc '- Sorry, but not much, [summa].' char_npc '- How much can you keep yourself?' $ summa_4 = summa/4 $ summa_2 = summa/2 menu: '- You did a great job, you can keep yourself 75\% of the money (+[summa_4])': play sound "sounds/money_add.mp3" $ GG.money += summa_4 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_101 call lb_show_npc2(npc) from _call_lb_show_npc2_30 talker 'She happily kissed me on the cheek.' '- You did a good job, you can keep half the money for yourself (+[summa_2] +Angry)': play sound "sounds/money_add.mp3" $ GG.money += summa_2 $ npc.dict_skill['Friend/Anger'] -= 0.1 talker 'She obediently dropped her eyes.' 'You are a useless whore. I\'ll take everything (+[summa] +++Angry)': play sound "sounds/money_add.mp3" $ GG.money += summa $ npc.dict_skill['Friend/Anger'] -= 1.0 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_109 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_102 call lb_show_npc2(npc) from _call_lb_show_npc2_31 talker 'She made a displeased grimace.' char_npc '- Why do you humiliate me so master? I really tried.' char_GG '- Next time try better!' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_110 'Not': pass $ var_dict['working_off_strip_club'].append(npc) call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_103 play music "sounds/sex_shop_theme.mp3" fadein 1.0 hide screen show_image hide screen show_in_senter_down with Dissolve(0.5) return # Замена дефолтного сета label lb_change_default_clothe_set(npc, default_set): pause 0.5 show screen show_image_above('scenes/black.png') hide screen clothe_editor hide screen popup_image with Dissolve(0.5) play sound "sounds/magic.mp3" $ set = var_dict['current_set'] $ index_set = npc.clothe_sets.index(set) $ default_set = copy_obj(default_set) $ default_set.pop(0) $ default_set.pop(0) $ default_set.insert(0, set[0]) $ new_set = default_set # Подстройка одежды под тело python: body_ID = npc.body.ID for clothe in new_set: x=0 if isinstance(clothe, Clothe): # Подстройка одежды for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', body_ID) clothe.images[x][0] = img[0].replace('B2', body_ID) clothe.images[x][0] = img[0].replace('B3', body_ID) clothe.images[x][0] = img[0].replace('B4', body_ID) clothe.images[x][0] = img[0].replace('B5', body_ID) x=x+1 # Подстройка декалей new_decales = [] for decal_list in clothe.decales: # Определение имени декали decal_name = decal_list[0].replace('clothes/', '') decal_name = decal_name.replace('.png', '') decal = def_return_decal_name(decal_name) new_decales.append(decal.images[body_ID]) clothe.decales = copy_obj(new_decales) $ npc.clothe_sets[index_set] = new_set $ npc.clothes = new_set call lb_save_NPC(npc) from _call_lb_save_NPC_9 $ var_dict['action'] = 'choose_set_for_edit' show screen clothe_editor(npc) hide screen show_image_above with Dissolve(0.3) return # Замена фентези сета label lb_change_fantasy_clothe_set(npc, fantsy_set): pause 0.5 show screen show_image_above('scenes/black.png') hide screen clothe_editor hide screen popup_image with Dissolve(0.5) play sound "sounds/magic.mp3" $ set = var_dict['current_set'] $ index_set = npc.clothe_sets.index(set) $ fantsy_set = copy_obj(fantsy_set) $ fantsy_set.pop(0) $ fantsy_set.pop(0) $ fantsy_set.insert(0, set[0]) $ new_set = fantsy_set $ npc.clothe_sets[index_set] = new_set $ npc.clothes = new_set call lb_save_NPC(npc) from _call_lb_save_NPC_10 $ var_dict['action'] = 'choose_set_for_edit' show screen clothe_editor(npc) hide screen show_image_above with Dissolve(0.3) return # Вывод нпс с замыленной локацией без проверки наличия НПС в локации label lb_show_npc2(npc, dis=0.3): hide screen show_image $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) # Картинка нпс-а if npc.type == 'NPC': $ img_npc = npc_image(npc) else: $ img_npc = simply_npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) hide screen show_scn hide screen show_image_in_position hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location with Dissolve(dis) return # Мертвецки пьяный label lb_dead_drunk: show screen show_image_above('scenes/black.png') with Dissolve(1.0) pause 0.5 play sound "sounds/fail.mp3" pause 2.0 menu: 'You are dead drunk.': $ del var_dict['current_temporary_features_GG']['сильное_опьянение'] $ GG.pep = -101 $ GG.water = -250.0 $ var_dict['location'] = room_GG_loc # Спать пока не восстановиться стамина while GG.pep < 100: $ GG.features.append('rest') call minuts(10) from _call_minuts_36 # Спать пока ночь while var_dict['Hour'] < 6: $ GG.features.append('rest') call minuts(10) from _call_minuts_37 stop music fadeout 0.7 # Очень сильное похмелье $ var_dict['current_temporary_features_GG']['мертвецкое_похмелье'] = copy_obj(var_dict['temporary_features']['мертвецкое_похмелье']) hide screen show_image_above hide screen show_image_modal hide screen inventary with Dissolve(1.5) play sound "sounds/morning.mp3" pause 1.0 call minuts(10) from _call_minuts_38 'You don\'t even remember how you got home.' 'And this wild headache! You can\'t get drunk like that.' jump main_cicle return # Добавить внешний вид label lb_Add_appearance: menu: 'Добавить внешний вид': pass python: # Тело ADD npc_ADD = NPC() npc_ADD.name='Priyanka' npc_ADD.body=body_1 npc_ADD.clothe_sets = [['Nude']] npc_ADD.clothes = ['Nude'] npc_ADD.images=[['bodies/Hair_5_back_priyanka_B1.png', 0, 0, 10, 0.4, -0.195, 1.42, 'yes', 1.0], ['bodies/B1.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/B1_public_hair_3.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/B1M_priyanka_norm.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/B1E_priyanka_norm.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/B1N_priyanka_norm.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/Hair_5_shadow_priyanka_B1.png', 0, 0, 0, 1.0, 0.0, 1.0, 'yes', 1.0], ['bodies/Hair_5_front_priyanka_B1.png', 0, 0, 10, 0.4, -0.195, 1.42, 'yes', 1.0, 'revers'] ] npc_ADD.decales=[['bodies/cry.png', 373, 166, 0, 1.0, 0.0, 1.0, 'none', 1.0], ['bodies/cum_face.png', 343, 74, 0, 1.0, 0.0, 1.0, 'none', 1.0], ['bodies/blush.png', 340, 149, 0, 1.0, 0.0, 1.0, 'none', 0.93], ['bodies/tears.png', 373, 155, 0, 1.0, 0.0, 1.0, 'none', 1.0], ['bodies/cum_mouth.png', 393, 236, 0, 1.0, 0.0, 1.0, 'none', 1.0], ['bodies/cum_hips.png', 340, 881, 0, 1.0, 0.0, 1.0, 'none', 1.0] ] var_dict['action'] = 'add_appearance' # Создание уникального ID $ id_x = uuid.uuid1() $ npc_ADD.id = str(id_x.int) show screen body_editor(npc_ADD) return # Сохранить внешний вид label lb_Add_appearance_save(npc): call lb_save_NPC(npc) from _call_lb_save_NPC_5 return # Кончить на лицо label lb_cum_face(npc): call show_scene(npc, s_Blowjob_1) from _call_show_scene_93 talker 'I tightened my grip, gave my shaft a few hard pumps, and felt my balls contract as I shot my first rope of sticky cum.' call male_orgasm from _call_male_orgasm_12 talker 'Time slowed down as my cum flew through the air, eventually landing on the right side of [npc.name]\'s face. ' talker 'She jumped slightly as my semen came into contact with her skin, voiced a short, quiet whimper, and then closed her eyes.' show screen show_image_above("images/other/bgd_wite.png") pause 0.2 call rnd_sound2(sl_cum) from _call_rnd_sound2_15 with Dissolve(0.3) hide screen show_image_above with Dissolve(1) pause 1 talker 'Another glob of hot white cum leave my swollen head. It hit her right in the middle of her face. She now had a pool of cum between her eyes, and some spatter on the bridge of her nose.' call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_66 hide screen show_image_in_position_2 with Dissolve(0.5) call lb_show_npc(npc) from _call_lb_show_npc_51 call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_67 return # Продолжение квеста label lb_quest_continue(npc='', quest=''): call lb_check_quest_continue(npc=npc, quest=quest) from _call_lb_check_quest_continue_1 if check: $ var_dict['var_npc_quests'] = False $ call_x = temp_dict['call'] $ npc = quest.npc $ renpy.call(call_x, npc=npc, quest=quest) return # Отображение списка активных для НПС-а квестов label lb_npc_quests: if var_dict['var_npc_quests']: $ var_dict['var_npc_quests'] = False else: $ var_dict['var_npc_quests'] = True return # Квест 1 # Этап 0 - Стартовый label lb_qw_1_easy_money_0_start(npc='', quest=''): menu: "Look at sex outfits": pass "Not": return call lb_image_location_blur('other/strip_dress_sexshop.png') from _call_lb_image_location_blur char_GG 'Great outfit.' char_GG 'My imagination started working immediately.' show screen show_image(img='quests/qw_1_easy_money_dream_1.png') with Dissolve(0.5) pause 1.7 show screen show_image(img='quests/qw_1_easy_money_dream_2.png') with Dissolve(0.5) pause 1.7 show screen show_image(img='quests/qw_1_easy_money_dream_3.png') with Dissolve(0.5) pause 2.7 char_GG 'This thing is equally suitable for a beloved girl and a submissive bitch.' char_GG 'I just have to buy it.' menu: 'Buy the outfit (990)': pass 'Not': hide screen show_image with Dissolve(0.3) return # Проверка на свободное место $ check = def_check_free_space_inventary(inv_GG) if check == False: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") hide screen show_image with Dissolve(0.3) return # Проверка на наличие денег if GG.money < 990: play sound "sounds/error.mp3" talker 'Not enough money.' hide screen show_image with Dissolve(0.3) return play sound "sounds/money.mp3" $ GG.money -= 990 # Создание копии квеста и привязка его к объекту $ temp_quest = copy_obj(qw_1_easy_money) $ temp_quest.level = '1_amateur_strip' $ temp_obj = copy_obj(qw_strip_outfit) $ temp_obj.features.append(copy_obj(temp_quest)) $ inv_GG.cells.append(copy_obj(temp_obj)) hide screen show_image with Dissolve(0.3) return # Этап 1 - Стриптз перед GG label lb_qw_1_easy_money_1_amateur_strip(npc='', quest=''): $ name_char = npc.name # Добавление квеста в список квестов $ var_dict['quests'].append(quest) # Привязка квеста к нпс $ quest.npc = npc $ npc.features.append(quest) # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' call lb_show_npc(npc) from _call_lb_show_npc_52 char_GG '- Look what I have for you.' play sound "sounds/clothe.mp3" call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_68 call lb_show_npc(npc) from _call_lb_show_npc_53 char_npc '[npc.name] blushed.{p=0}- This is a very revealing dress.' play sound "sounds/male_chuckle_short.mp3" char_GG '- Exactly.' char_npc '- Do you want me to wear it?' char_GG '- No "wear".' char_npc '- What then?' # Ветка любви if type_x == 'Love': char_GG '- This outfit is just for dancing! Just imagine how sexy you will look.' char_npc '- It\'s difficult to imagine.' char_GG '- Then don\'t. Just put it on.' char_npc '- What\'s right here !?' play sound "sounds/clothe.mp3" talker 'I silently handed her the outfit.' talker '[npc.name] hesitated a little but took it.' # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_1 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_2 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_3 pause 1.0 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_37 call lb_show_npc(npc) from _call_lb_show_npc_54 hide screen show_image_above with Dissolve(0.5) char_npc '- How naughty you are.' play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 'I turned on music on my smartphone.' # Стрпитиз char_npc '- I hope my dance excites you. One song is not so little.' char_GG '- Can not wait.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) '[npc.name] began to sway a bit awkwardly. It was obvious she had barely danced to any modern music, much less stripped to it.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_38 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_41 call show_scene(npc, s_Strip_1) from _call_show_scene_94 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_95 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_96 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_129 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_130 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_131 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_132 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_133 pause 1.0 char_GG '- Striptease involves undressing?' call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_42 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_39 call lb_show_npc(npc) from _call_lb_show_npc_55 char_npc '- How impatient you are, - [npc.name] purred.' 'She began to unbutton her collar, her hands trembling with excitement as it fell away from her.' play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_43 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_40 call lb_show_npc(npc) from _call_lb_show_npc_56 hide screen show_image_above char_npc '- purr, purr' $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_44 call lb_show_npc(npc) from _call_lb_show_npc_57 'The uncomfortable look on her face and her stiff posture told my she didn\'t spend much time naked, much less in front of man.' 'God this is perfect.' $ npc.clothes.pop() play sound "sounds/clothe.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_45 call lb_show_npc(npc) from _call_lb_show_npc_58 menu: 'Continue': pass show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_46 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_134 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_135 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_136 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_137 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_138 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_139 pause 2.0 char_npc '- Time for the main course!' 'I looked with all my eyes.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" '[npc.name] took off her panties, revealing her tits and pussy.' call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_140 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_141 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_142 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_143 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_144 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_145 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_146 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_147 pause 2.0 show screen show_image_above('scenes/black.png') hide screen show_image_in_position_2 with Dissolve(0.5) stop music fadeout 1.0 play music2 "sounds/deep_breath.mp3" $ npc.clothes = ['Nude'] call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_41 call lb_show_npc(npc) from _call_lb_show_npc_59 hide screen show_image_above with Dissolve(0.5) '[npc.name] was breathing hard, standing in front of me completely naked and fighting her own arousal.' char_GG '- You\'re idial.' call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_42 call lb_show_npc(npc) from _call_lb_show_npc_60 char_npc '- Thanks.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_43 call lb_show_npc(npc) from _call_lb_show_npc_61 '[npc.name] hesitated, feeling uncomfortable with what he apparently wanted to do.' 'I smiled encouragingly.' char_npc '- I haven\'t shown everything yet.' stop music2 fadeout 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call show_scene(npc, s_Strip_5) from _call_show_scene_148 hide screen show_image_above with Dissolve(0.5) char_GG '- Awesome! You have to put this in your performance.' call lb_show_npc(npc, dis=1.0) from _call_lb_show_npc_62 char_npc '- Performance?' char_GG '- Later.' char_npc '-?' 'I hugged and kissed [npc.name] to stop the proliferation.' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_94 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_95 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_96 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_97 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_98 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_99 pause 1.0 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_69 # Ветка подчинения if type_x == 'Submission': char_GG '-In such outfits, obedient whores dance for their masters.' call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_44 call lb_show_npc(npc) from _call_lb_show_npc_63 char_npc '- I\'m not a stripper!' char_GG '- No, of course not.' char_GG '- You are a thing; a toy, whose sole purpose is to bring me pleasure. Say it; you are my toy.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_45 call lb_show_npc(npc) from _call_lb_show_npc_64 char_npc 'I...I am...y-your...toy.' char_GG '- Ok, dress it up! - I threw her dress.' # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_70 play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_4 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_5 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_6 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_7 pause 1.0 call lb_show_npc(npc) from _call_lb_show_npc_65 hide screen show_image_above with Dissolve(0.5) char_GG '- You know what to do.' play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" 'I turned on music on my smartphone.' # Стриптиз char_GG '- Remember [npc.name], your only goal is to make my dick hard. You have until the end of this song to do it. ' char_GG '- Go!' show screen show_image_above('scenes/black.png') with Dissolve(1.0) '[npc.name] began to sway a bit awkwardly. It was obvious she had barely danced to any modern music, much less stripped to it.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_46 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_47 call show_scene(npc, s_Strip_1) from _call_show_scene_149 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_150 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_151 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_152 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_153 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_154 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_155 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_156 pause 1.0 char_GG '- Take off your clothes already!' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_47 call lb_show_npc(npc) from _call_lb_show_npc_66 'She began to unbutton her collar, her hands trembling with excitement as it fell away from her.' play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_71 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_48 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_48 call lb_show_npc(npc) from _call_lb_show_npc_67 hide screen show_image_above 'She had to fight so hard not to begin sobbing in humiliation as I watched.' char_GG '- Now gloves.' '[npc.name] did as she was told.' $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_49 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_49 call lb_show_npc(npc) from _call_lb_show_npc_68 'The uncomfortable look on her face and her stiff posture told my she didn\'t spend much time naked, much less in front of man.' 'God this is perfect.' char_GG '- Bra too.' $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_show_npc(npc) from _call_lb_show_npc_69 menu: 'Continue': pass show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_50 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_157 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_158 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_159 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_160 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_161 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_162 pause 2.0 char_npc '- Take off your clothes completely!' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" '[npc.name] was taking my orders now reluctantly taking off her panties, revealing her tits and pussy.' call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_163 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_164 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_165 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_166 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_167 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_168 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_169 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_170 pause 2.0 show screen show_image_above('scenes/black.png') hide screen show_image_in_position_2 with Dissolve(0.5) stop music fadeout 1.0 play music2 "sounds/deep_breath.mp3" $ npc.clothes = ['Nude'] call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_50 call lb_show_npc(npc) from _call_lb_show_npc_70 hide screen show_image_above with Dissolve(0.5) '[npc.name] bit her lip, trying to think while standing in front of me stark naked and fighting back tears.' 'Perfect.' char_GG '- Now bend over and spread your cheeks, let me see that pussy [npc.name].' '[npc.name] hesitated, uncomfortable with what I was asking.' stop music2 fadeout 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call show_scene(npc, s_Strip_5) from _call_show_scene_171 '- ...yes sir, - She said through her tears as she bent over, placing her hands on either side of her ass and spreading them for I to see.' hide screen show_image_above with Dissolve(0.5) 'I could only smile at her humiliation.' char_GG '- That\'s a good girl, now look back at me.' call lb_show_npc(npc, dis=1.0) from _call_lb_show_npc_71 char_GG '- So far, you are not dancing very well.' char_npc '- Sorry sir next time I\'ll try better.' char_GG '- Hope it will be so, bitch.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_72 call lb_show_npc(npc) from _call_lb_show_npc_72 play sound "sounds/level_UP.mp3" $ quest.level = '2_amateur_lap_dance' if 'open_strip_action' not in var_dict: $ var_dict['open_strip_action'] = [] $ var_dict['open_strip_action'].append(npc) '[npc.name] is now ready for you to do a striptease.' hide screen show_image hide screen show_image_in_position call minuts(15) from _call_minuts_39 return # Этап 2 - Лап данс для GG label lb_qw_1_easy_money_2_amateur_lap_dance(npc='', quest=''): $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_8 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_9 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_10 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_11 pause 1.0 menu: 'I turned on music on my smartphone.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_51 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_51 call show_scene(npc, s_Strip_1) from _call_show_scene_172 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_173 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_174 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_175 pause 1.0 play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() $ npc.clothes.pop() $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_52 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_176 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_177 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_178 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_179 pause 2.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_180 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_181 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_182 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_183 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_184 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_185 pause 1.0 $ npc.clothes = ['Nude'] show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc(npc) from _call_lb_show_npc_73 hide screen show_image_above with Dissolve(0.5) # Новый контент - Приватный танец char_GG '- Come, honey, do me a lap dance, please. - I asked softly.' talker '[npc.name] looked at me and smiled slightly.' call show_scene(npc, s_Show_3, dis=0.7) from _call_show_scene_186 talker 'Then, moving her hips seductively, she turned around.' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_100 hide screen show_image_above with Dissolve(1) talker '[npc.name] cried out, looking back at me with surprise.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_73 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_53 call rnd_sound(sl_moan) from _call_rnd_sound_101 char_npc '- Ouch!' char_GG 'I answered with a smile. - Don\'t pretend you didn\'t like that. ' stop music fadeout 7.5 call rnd_sound(sl_giggle) from _call_rnd_sound_102 call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_54 char_npc '- And I wasn\'t going to.' call show_scene(npc, s_Lap_dance_1_2, dis=0.7) from _call_show_scene_187 play music "sounds/deep_breath.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_55 talker '[npc.name] breathed excitedly as she sat down on my lap.' char_npc '- You always know how to turn me on, - I whispered.' call play_animation(npc, a_lap_dance_1) from _call_play_animation_54 talker '[npc.name] began to wiggle her ass on my lap. The movement was awkward but made me horny.' call show_scene(npc, s_Petting_1) from _call_show_scene_188 talker 'I began groping her, caressing her tits...' call show_scene(npc, s_Petting_8) from _call_show_scene_189 talker '...and squeezing her nipples. ' call rnd_sound(sl_moan) from _call_rnd_sound_103 talker '[npc.name]\'s entire body stiffened, and she cried out in quietly and I could feel her nipples begin to harden. ' call show_scene(npc, s_Lap_dance_2_1) from _call_show_scene_190 talker 'I slowly moved one of my hands down her side onto her thigh. She sucked in, but didn\'t stop me.' char_GG '- You\'re driving me crazy.{p=0} I whispered in her ear. ' char_GG '- Do you want me to play with your clit?{p=0} Talk I while my hand moved slowly closer to her pussy.' talker 'Last step.' char_npc '- ye... yes, please!' talker 'Most Strip clubs don\'t allow pussy play. Oh well, most are not all.' talker 'I put my hand between her legs and began to rub [npc.name]\'s clit.' call rnd_sound(sl_penetration) from _call_rnd_sound_104 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_191 talker '[npc.name] began to breathe faster, eventually letting out a moan as I worked her pussy faster.' stop music fadeout 1.5 call play_animation(npc, a_lap_dance_2) from _call_play_animation_55 talker '[npc.name] enjoyed it, and every few seconds a moan escaped her lips.' call rnd_sound(sl_moan) from _call_rnd_sound_105 char_npc '- Plea...please, I need it.' call play_animation(npc, a_lap_dance_2_tempo) from _call_play_animation_56 call rnd_sound(sl_penetration) from _call_rnd_sound_106 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_192 '[npc.name] trembled.' call female_orgasm from _call_female_orgasm_7 char_GG '- You are so horny.' call show_scene(npc, s_Petting_8) from _call_show_scene_193 'I said, fingering her nipple with my fingers.' char_GG '- How about you please me too?' call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_56 call rnd_sound(sl_giggle) from _call_rnd_sound_107 char_npc '- I hoped you\'d ask.' talker 'With one graceful movement, [npc.name] knelt in front of me.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_57 call show_scene(npc, s_Blowjob_3) from _call_show_scene_194 # Минет talker 'She paused and slowly stroked my dick with her hand. ' call show_scene(npc, s_Blowjob_1) from _call_show_scene_195 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_58 call rnd_sound(sl_kiss) from _call_rnd_sound_108 talker 'I put my hand on her shoulders as she leaned in and sucked the tip in her mouth.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_196 talker 'She pulled my dick out of her mouth briefly and asked. ' char_npc '- Do you like that?' char_GG '- Very much.{p=0} I replied as she continued.' call play_animation(npc, a_blowjob) from _call_play_animation_57 call show_scene(npc, s_Blowjob_2) from _call_show_scene_197 menu: 'Cum on the face': call lb_cum_face(npc) from _call_lb_cum_face char_GG '- Sorry, I could not resist.' call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_74 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_52 call lb_show_npc(npc) from _call_lb_show_npc_74 play sound "sounds/female_laugh.mp3" char_npc '- It\'s okay, do it more often.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_75 call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_76 # Ветка подчинения if type_x == 'Submission': # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_12 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_13 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_14 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_15 pause 1.0 menu: 'I turned on music on my smartphone.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_53 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_59 call show_scene(npc, s_Strip_1) from _call_show_scene_198 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_199 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_200 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_201 pause 1.0 play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() $ npc.clothes.pop() $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_60 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_202 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_203 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_204 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_205 pause 2.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_206 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_207 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_208 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_209 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_210 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_211 pause 1.0 $ npc.clothes = ['Nude'] show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc(npc) from _call_lb_show_npc_75 hide screen show_image_above with Dissolve(0.5) # Новый контент - Приватный танец char_GG '- Good slut, now give me a lap dance. {p=0} I said harshly. ' talker '[npc.name] winced as if she was slapped.' call show_scene(npc, s_Show_3, dis=0.7) from _call_show_scene_212 talker 'Then, trembling and unsure, she turned around. ' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_109 hide screen show_image_above with Dissolve(1) talker 'She was about to sit in my lap when I suddenly slapped her ass, hard enough to humiliate her and show her who was in charge.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_61 call rnd_sound(sl_moan) from _call_rnd_sound_110 '[npc.name] cried out wordlessly, looking back at me with surprise.' 'I met her gaze with authority.' char_GG 'Don\'t pretend you didn\'t like that slut. Whores who hesitate get spanked.' call rnd_sound(sl_crying) from _call_rnd_sound_111 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_77 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_62 call show_scene(npc, s_Lap_dance_1_2, dis=0.7) from _call_show_scene_213 '[npc.name]\'s lips trembled as she sat down on my lap.' char_npc '- Good slut. Don\'t just sit there. Make me hard you dirty whore.' call play_animation(npc, a_lap_dance_1) from _call_play_animation_58 talker '[npc.name] began to wiggle her ass on my lap. The movement was awkward, but it made me hornier anyway knowing that I could this kind of control over her.' call show_scene(npc, s_Petting_1) from _call_show_scene_214 talker 'I began groping her, mauling her tits...' call show_scene(npc, s_Petting_8) from _call_show_scene_215 talker '...and squeezing her nipples.' call rnd_sound(sl_scream) from _call_rnd_sound_112 talker '[npc.name]\'s entire body stiffened, and she cried out in quietly in shock, but I could feel her nipples begin to harden. ' call show_scene(npc, s_Lap_dance_2_1) from _call_show_scene_216 talker 'I slowly moved one of my hands down her side onto her thigh. She sucked in, but didn\'t stop me.' char_GG '- Good slut.{p=0}I whispered in her ear. ' char_GG '- Do you want me to play with your clit like a good whore?{p=0}Talk I while my hand moved slowly closer to her pussy.' talker 'Last step slut.' char_npc '- ye...yes, please master.' talker 'Most Strip clubs don\'t allow pussy play. Oh well, you won\'t make a decent stripper but I think you\'ll do fine as my whore. ' stop music fadeout 7.5 talker 'I savagely forced my hand between her legs and began to rub [npc.name]\'s clit.' call rnd_sound(sl_penetration) from _call_rnd_sound_113 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_217 play music "sounds/short_breath.mp3" talker '[npc.name] began to breathe faster, eventually letting out a reluctant moan as I worked her pussy faster.' call rnd_sound(sl_moan_soft) from _call_rnd_sound_114 call play_animation(npc, a_lap_dance_2) from _call_play_animation_59 talker '[npc.name] was trying hard not to enjoy it, but every few seconds a moan would escape her lips. She was openly crying now, both from pleasure and the degradation she was being subject to.' call rnd_sound(sl_moan) from _call_rnd_sound_115 char_npc '- Plea...please master, I need it.' call play_animation(npc, a_lap_dance_2_tempo) from _call_play_animation_60 call rnd_sound(sl_penetration) from _call_rnd_sound_116 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_218 stop music '[npc.name] trembled.' call female_orgasm from _call_female_orgasm_8 char_GG '- Good girl [npc.name].{p=0}I said as I pinched her nipples.' call show_scene(npc, s_Petting_8) from _call_show_scene_219 char_GG '- Ready for some ... extra work?' call rnd_sound(sl_crying) from _call_rnd_sound_117 talker '[npc.name] let out a sob, knowing full well what I was asking for. ' call show_scene(npc, s_Show_3) from _call_show_scene_220 talker 'I responded by grabbing her hair and pushing her off his lap. ' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_118 hide screen show_image_above with Dissolve(1) pause 0.7 show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_119 hide screen show_image_above with Dissolve(1) pause 0.7 show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_120 hide screen show_image_above with Dissolve(1) pause 0.7 talker 'I gave her three sharp slaps on the ass.' char_GG '- Well slut? ' talker '[npc.name] had to actively stop herself from crying or moaning so she could answer.' char_npc '-Yes.{p=0}She asked, the desperation coming through between her cries.' play sound "sounds/male_laugh.mp3" talker 'I laughed.' char_GG '- Now get on our knees! You need to realize that your mouth isn\'t for talking.' call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_78 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_63 char_npc '- Yes...{p=0}[npc.name] sobbed, unable to finish her sentence.{p=0}- ...master.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_221 talker '[npc.name] reluctantly as she got on her knees in front of I, her pale face streaked with tears and her mascara starting to run.' char_GG 'Well? Open wide slut!' call show_scene(npc, s_Blowjob_4) from _call_show_scene_222 talker 'She did as she was told. I wasted no time, grabbing her hair and shoving her mouth onto my cock.' call play_animation(npc, a_blowjob_2) from _call_play_animation_61 talker 'She tried to resist, but I kept my hands on the back of her head, taking her by the hair and forcing her up and down on my cock. ' call show_scene(npc, s_Blowjob_5) from _call_show_scene_223 call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_9 talker 'I let her up for air when she began to squirm too much, never taking my cock out of her mouth but giving her just enough room to breathe before I kept facefucking her roughly.' call play_animation(npc, a_blowjob_2_tempo) from _call_play_animation_62 talker '[npc.name] tried to lift her head off my cock, but I wouldn\'t let up, holding her head harder, trying to see how much cock she could take. ' talker 'Her mascara and makeup was a mess at this point, tears streaming down her face, her lipstick smeared sloppily around her mouth and onto the shaft of my cock.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_54 menu: 'Cum on the face': call lb_cum_face(npc) from _call_lb_cum_face_1 call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_79 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_55 call lb_show_npc(npc) from _call_lb_show_npc_76 char_GG '- Good whore.' call rnd_sound(sl_crying) from _call_rnd_sound_121 char_npc '- Thank you.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_80 call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_81 call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_82 # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '3_audition_strip_club_one' if 'open_lap_dance_action' not in var_dict: $ var_dict['open_lap_dance_action'] = [] $ var_dict['open_lap_dance_action'].append(npc) '[npc.name] is now ready for you to do a lap dance.' hide screen show_image hide screen show_image_in_position call minuts(15) from _call_minuts_40 return # Этап 3 - Визит в стрип клуб label lb_qw_1_easy_money_3_audition_strip_club_one(npc='', quest=''): menu: 'Talk to the owner': pass 'Not': return call lb_show_npc(owner_strip_club, 0.5) from _call_lb_show_npc_77 $ name_char = owner_strip_club.name char_npc '- Whats up?' char_npc '- Come quickly. I don\'t have much time.' char_GG '- I\'m about work.' talker 'He looked me over.' char_npc '- You got nothing wrong? I don\'t have a gay club here.' char_GG '- You misunderstood.' char_GG '- I just have a friend who wants to work here.' char_npc '- If cute, let her come to the audition.' play sound "sounds/male_laugh.mp3" char_npc '- Beautiful girls are always valuable.' char_GG '- About money ...' char_npc '- How to work and earn.' char_GG '- I mean. My friend is very frivolous with money ...' char_npc '- Don\'t pull the cat by the balls.' char_GG '- Could I get what she earns?' char_npc 'He looked at me suspiciously.{p=0} - Are you a pimp or what?' char_GG '- No no no!' char_npc '- I don’t need this crap.' char_npc '- Girls will receive money at the end of their shift. Personally. And then you can do whatever you want. Not on the territory of my club! Got it?' char_GG '- Absolutely!' # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '4_audition_strip_club_two' show screen my_GUI show screen location hide screen show_image with Dissolve(0.5) call minuts(15) from _call_minuts_41 return # Этап 4 - Разговор о новых возможностях label lb_qw_1_easy_money_4_audition_strip_club_two(npc='', quest=''): $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': call lb_show_npc(npc) from _call_lb_show_npc_78 char_GG '- Hello.' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) play sound "sounds/kiss.mp3" talker "I hugged and kissed the girl." call lb_show_npc(npc) from _call_lb_show_npc_79 char_npc '- Why suddenly such tenderness?' char_GG '- Do you remember how we said how there is not enough money?' char_GG '- I think I figured out how to solve this problem.' char_npc '- This is my man!' char_npc '- Have you found a new job?' char_npc '- How much will you get?' char_GG '- Hm.' char_GG '- Found, but not for myself.' char_npc '- ???' char_GG '- You will do what you like and get paid for it.' char_npc '- Sounds suspiciously tempting.' char_npc '- What\'s the catch?' char_GG '- No dirty tricks.' char_GG '- Do you like dancing?' char_npc '- Well, I\'m not a professional dancer...' char_GG '- Do not Cry the blues. I saw you dancing.' char_npc '- Wait ... what do you mean striptease!!!???' talker 'I smiled and nodded.' talker '[npc.name] looked shocked.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_83 call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_56 call lb_show_npc(npc) from _call_lb_show_npc_80 char_npc '- You\'re out of your mind!' char_GG '- Calm, calm. You can just try. If you don\'t like it, you won\'t do it.' char_npc '- Nonsense, I won\'t even try!' char_GG '- Okay, just think about it.' talker 'Now give [npc.name] time to calm down.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_84 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_57 # Ветка подчинения if type_x == 'Submission': call lb_show_npc(npc) from _call_lb_show_npc_81 char_GG '- Hello.' char_GG '- How is my slut in the mood?' call touching_act(npc, 'stroke cheek, touch lips') from _call_touching_act_22 talker 'I patted [npc.name] on the cheek encouragingly.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_85 call lb_show_npc(npc) from _call_lb_show_npc_82 char_npc '- Ok, thanks for asking me, master.' hide screen show_in_senter with Dissolve(0.5) char_GG '- You danced well for me and I decided that such a talent should not be hidden.' talker '[npc.name] looked at me warily.' char_npc '- What do you have in mind?' char_GG '- I agreed with the owner of a local strip club. You can dance there.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_58 call lb_show_npc(npc) from _call_lb_show_npc_83 char_npc '- I can not…' char_GG '- Nonsense, you\'re good at it.' char_npc '- But I\'m not a stripper!' char_GG '- Nobody demands that you outshine everyone there. Shake your boobs, make some cash.' char_npc '- But ...' play sound "sounds/mmm.mp3" char_GG '- That ungrateful beast! And that instead of thanks!' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_86 call lb_show_npc(npc) from _call_lb_show_npc_84 talker 'Tears appeared in [npc.name]\'s eyes.' char_npc '- I… forgive me, master… don\'t force me.' char_GG '- Nonsense. When did I force you to do something? You did everything voluntarily.' talker 'With a little urge on my part, - I continued mentally.' char_GG '- And now get out of my eyes!' call rnd_sound(sl_crying) from _call_rnd_sound_122 call lb_image_location_blur(img='images/other/empty.png', dis=0.5) from _call_lb_image_location_blur_1 talker '[npc.name] sobbed and hurried to disappear.' char_GG '- Let\'s see how submissive you are, - I said quietly.' talker 'Let the girl get used to the new thought.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_87 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_88 # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '5_audition_strip_club_three' 'Wait a few days to continue the quest.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.5) return # Этап 5 - Ждать 2 дня # Этап 6 - Неудачное прослушивание в стрип-клубе label lb_qw_1_easy_money_6_audition_strip_club_four(npc='', quest=''): $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_59 call lb_show_npc(npc) from _call_lb_show_npc_85 talker '[npc.name] looked at me timidly.' char_npc '- I was thinking.' char_GG '- Yes?' char_npc '- Maybe I shouldn\'t be so blinkered.' talker 'I nodded encouragingly.' char_npc '- To be brief, I agree!{p=0}[npc.name] blurt out, closing her eyes.' char_GG '- ???{p=0}I understood what she was talking about, but I wanted her to say it out loud.' char_npc '- I\'ll try myself in striptease.' char_GG '- Well done!' # Поцелуй $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) play sound "sounds/kiss.mp3" char_npc "- I do not promise anything! If a…" call lb_show_npc(npc) from _call_lb_show_npc_86 char_GG '- Just try it.' char_npc '- Oh, you\'re getting me into some kind of adventure.' char_GG '- Without this, life would be boring.' char_GG '- Come on.' char_npc '- How!? Right now?' char_GG '- Why procrastinate?' show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_hide_screens from _call_lb_hide_screens_1 # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(0.5) $ name_char = owner_strip_club.name char_npc '- Is this your friend?' talker 'The man carefully examined [npc.name].' talker 'The girl was suddenly embarrassed.' char_npc '- You are welcome to the pole.' talker '[npc.name] squeezed my hand with force, but after a second she gained courage and confidently walked to the platform.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_89 # image - (нпс у шеста на помосте в повседневной одежде) $ def_change_clothe_set(npc, 'asual') $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) char_npc '- Come on girl, show that you can.' play music "sounds/sex_shop_theme.mp3" fadein 1.5 talker 'The owner of the club signaled and someone turned on the music.' talker 'A few bouncers with bored eyes, myself and the owner of the club are not a very large audience. But [npc.name] seemed so shocked.' talker 'So, after making a few awkward dance moves, she began to undress.' $ clothe = npc.clothes[len(npc.clothes) - 1] play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) # image - (нпс у шеста на помосте в повседневной одежде) $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) talker '[npc.name] stood for some time, apparently unable to move. Then she looked straight at me.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_60 # image - (нпс у шеста на помосте в повседневной одежде) $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) $ name_char = npc.name char_npc '- Sorry. I shouldn\'t have come!' stop music fadeout 1.5 show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0]]) with Dissolve(1.5) play sound "sounds/fast_step_woman_close_door.mp3" talker 'And she ran off the stage.' pause 3 # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(0.5) $ name_char = owner_strip_club.name char_GG '- I guess the audition failed?' play sound "sounds/male_laugh.mp3" char_npc '- Well, it has been worse. She at least has something to see. It\'s a pity she didn\'t show anything. Hopefully she changes her mind.' char_GG '- Yes, me too.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_90 # Ветка подчинения if type_x == 'Submission': call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_61 call lb_show_npc(npc) from _call_lb_show_npc_87 talker '[npc.name] looked at me timidly.' char_npc '- I thought about what you said about dancing.' char_GG '- Dancing?' char_npc '- Our conversation…' talker 'I looked expectantly.' char_npc '- I… I… think I can try!{p=0}[npc.name] muttered, even more embarrassed.' char_GG '- Try what?{p=0} I understood what she was talking about, but I wanted her to say it out loud.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_62 call lb_show_npc(npc) from _call_lb_show_npc_88 char_npc '- Dance in a strip club.' char_GG '- That\'s better.' call touching_act(npc, 'put a hand on the shoulder') from _call_touching_act_23 talker 'I patted her on the shoulder.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_63 call lb_show_npc(npc) from _call_lb_show_npc_89 char_npc '- I\'ll try for you, but...' char_GG '- No "but" just do it.' char_npc '- ... if I fail.' char_GG '- I promise not to punish you too much.' char_GG '- Come on.' char_npc '- How!? Right now?' char_GG '- Why procrastinate?' show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_hide_screens from _call_lb_hide_screens_2 # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(0.5) $ name_char = owner_strip_club.name char_npc '- Is this your friend?' talker 'The man carefully examined [npc.name].' talker 'The girl was embarrassed.' char_npc '- You are welcome to the pole.' call rnd_sound(sl_spank) from _call_rnd_sound_123 talker '[npc.name] hesitated, but after receiving an encouraging slap on the ass from me, she headed for the platform.' # image - (нпс у шеста на помосте в повседневной одежде) $ def_change_clothe_set(npc, 'asual') $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) char_npc '- Come on girl, show that you can.' play music "sounds/sex_shop_theme.mp3" fadein 1.5 talker 'The owner of the club signaled and someone turned on the music.' talker 'A few bouncers with bored eyes, myself and the owner of the club are not a very large audience. But [npc.name] seemed so shocked.' talker 'So, after making a few awkward dance moves, she began to undress.' $ clothe = npc.clothes[len(npc.clothes) - 1] play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) # image - (нпс у шеста на помосте в повседневной одежде) $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) talker '[npc.name] stood for some time, apparently unable to move. Then she looked straight at me.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_64 # image - (нпс у шеста на помосте в повседневной одежде) $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) with Dissolve(0.5) $ name_char = npc.name char_npc '- Sorry. I shouldn\'t have come!' stop music fadeout 1.5 show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0]]) with Dissolve(1.5) play sound "sounds/fast_step_woman_close_door.mp3" talker 'And she ran off the stage.' pause 3 # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(0.5) $ name_char = owner_strip_club.name char_GG '- I guess the audition failed?' play sound "sounds/male_laugh.mp3" char_npc '- Well, it has been worse. She at least has something to see. It\'s a pity she didn\'t show anything. Hopefully she changes her mind.' char_GG '- Yes, me too.' # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '7_0_audition_strip_club' talker 'Talk to the girl about what happened.' $ var_dict['location'] = sunsity_map show screen my_GUI show screen location hide screen show_image hide screen show_in_senter_down with Dissolve(0.5) call minuts(45) from _call_minuts_42 return # Этап 7-0 - Разговор просле неудачного прослушивания label lb_qw_1_easy_money_7_0_audition_strip_club(npc='', quest=''): $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_65 call lb_show_npc(npc) from _call_lb_show_npc_90 char_npc '- !...!! fuck!...fuck….!...dick!' char_GG '- Sorry.{p=0}I was taken aback.' char_npc '- I\'m not angry with you, but angry with myself.' char_npc '- I was sure that I would try.' char_npc '- And so disgraced as a result.' char_npc '- They probably laughed at me when I left?' talker 'Actually, something like that was, but [npc.name] does not need to know about it.' char_GG '- Nothing like this.{p=0}Little bit of lies.' char_GG '- The owner of the club really liked you and he regretted that he did not see your performance in full.{p=0}And this is pure, really.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_66 call lb_show_npc(npc) from _call_lb_show_npc_91 char_npc '- Thanks for the support.' char_GG '- Does he have a chance?' char_npc '- What are you! I\'ll burn out of shame if I try to go back there.' char_GG '- I think I have an idea.' char_GG '- Only you have to trust me.' char_npc '- Oh, your ideas ...' talker '[npc.name] thought for a second and shook her head.' char_npc '- Okay.' char_GG '- Then I will have to do a little preparation.' # Ветка подчинения if type_x == 'Submission': call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_67 call lb_show_npc(npc) from _call_lb_show_npc_92 char_npc '- I\'m sorry I was disgraced.' char_GG '- Yes, that is right.' char_npc '- I really thought I could do it.' char_npc '- I even rehearsed in front of the mirror.' char_npc '- But when I appeared on the stage, everything disappeared somewhere.' char_npc '- Will you punish me now?' talker 'Hmm. She seems to be hungry for punishment, then it will be useless.' char_GG '- It\'s not your fault that you were born a useless whore.' char_GG '- But it\'s my responsibility to fix it.' char_npc '- I will try.' char_GG '- Perhaps if you add my intelligence to your efforts, something will work out.' char_npc '???' char_GG '- I think I have an idea.' char_GG '- But I will need your complete submission.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_68 call lb_show_npc(npc) from _call_lb_show_npc_93 char_npc '- I\'m yours, master.' talker '[npc.name] thought for a second and shook her head.' char_npc '- Completely.' char_GG '- Then I\'ll have to do a little preparation.' # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '7_1_0_audition_strip_club' show screen my_GUI show screen location hide screen show_image hide screen show_in_senter_down with Dissolve(0.5) call minuts(15) from _call_minuts_43 return # Этап 7-1-0 - Первое приватное шоу label lb_qw_1_easy_money_7_1_audition_strip_club(npc='', quest=''): $ npc = quest.npc menu: 'Arrange a little workout for [npc.name]?': pass 'Not': return $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': char_GG 'I need to make some calls.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play music "sounds/party_crowd.mp3" fadein 2.5 menu: 'Call [npc.name].': pass $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 3.0 char_npc '- Um, are you having a party?' char_GG '- Something like that.' char_GG '- Just invited some friends to the show.' talker '- Yes! The dude promised a great show.{p=0}Confirmed by a voice from the crowd.' char_npc '- Show?' char_GG '- We will fight your stage fright.' char_npc '- But I…' talker 'I turned on the music.' play music2 "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" talker '- Dance, dance.{p=0}The crowd chanted, raising beer cans.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_91 call lb_show_npc2(npc) from _call_lb_show_npc2_1 talker '[npc.name] blushed and made several movements.' char_GG '- What are you going to dance in this? Hardly anyone can be aroused in such clothes. You have the right outfit.' char_npc '- But it\'s so sexy.{p=0}She looked around.' char_GG '- Do you want to be the first shy stripper?' char_npc '- I\'m not going to become...' char_GG '- Where did your fighting spirit go?{p=0}I interrupted the girl.' char_GG '- Have you already surrendered?' call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_69 call lb_show_npc2(npc) from _call_lb_show_npc2_2 char_npc '- Do not be silly!' show screen show_image_above('scenes/black.png') with Dissolve(1.0) menu: '[npc.name] went to change': pass $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_16 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_17 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_18 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_19 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_70 call lb_show_npc2(npc) from _call_lb_show_npc2_3 show screen show_in_senter([['quests/crowd.png', 0.5, 0.5]]) hide screen show_image_above with Dissolve(1.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" pause 1.0 talker '[npc.name]\'s appearance in the outfit made a splash among the audience.' talker 'The girl was a little embarrassed, but quickly recovered and began to dance.' call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_224 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_225 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_226 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_227 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_228 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_229 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_230 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_231 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_232 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_233 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_234 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_235 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_236 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_237 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_238 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_239 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_240 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_4 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker '- Show your boobs!' talker '- Yes! Boobs, boobs!{p=0}The rest supported.' talker '[npc.name]\'s movements became constrained almost wooden.' stop music2 fadeout 1.0 talker 'I turned off the music.' char_GG '- People, the show is over for today!' play sound "sounds/disappointment_party.mp3" pause 1.5 char_GG '- The girl needs to rest.' talker 'People began to disperse reluctantly.' talker '- You\'re cool.{p=0}A guy with enthusiastic eyes said to [npc.name] before leaving.' talker '[npc.name] was completely embarrassed and blushed even more.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_92 show screen show_image_above('scenes/black.png') with Dissolve(0.5) stop music fadeout 1.0 $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2_5 menu: 'Over time': hide screen show_image_above hide screen show_in_senter with Dissolve(0.5) char_npc '- You know, at first I was ready to kill you. But it seems to have worked out very well.' call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_71 call lb_show_npc2(npc) from _call_lb_show_npc2_6 $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) play sound "sounds/kiss.mp3" pause 3.0 char_GG "- Well! So tomorrow we will organize another performance." call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_72 call lb_show_npc2(npc) from _call_lb_show_npc2_7 char_npc '- !!!' # Ветка подчинения if type_x == 'Submission': char_GG 'I need to make some calls.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play music "sounds/party_crowd.mp3" fadein 2.5 menu: 'Call [npc.name].': pass $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2_8 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 3.0 char_npc '- Um, are you having a party, master?' char_GG '- Something like that.' char_GG '- Just invited some friends to the show.' talker '- Yes! The dude promised a great show.{p=0}Confirmed by a voice from the crowd.' char_npc '- Show?' char_GG '- We will fight your stage fright.' char_npc '- But I…' talker 'I turned on the music.' play music2 "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" talker '- Dance baby.{p=0}The crowd chanted, raising beer cans.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_93 call lb_show_npc2(npc) from _call_lb_show_npc2_9 talker '[npc.name] blushed and made several movements.' char_GG '- What are you going to dance in this? Stupid fool. Dress up!' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_73 call lb_show_npc2(npc) from _call_lb_show_npc2_10 char_npc '- But I thought...{p=0}She looked around.' char_GG '- You\'re not supposed to think. You have no brains.' char_npc '- I\'m always ready to dance for you.' char_GG '- And for my friends too.{p=0}I said emphatically.' char_GG '- Where is your promised obedience?' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_94 call lb_show_npc2(npc) from _call_lb_show_npc2_11 char_npc '- I\'ll do everything.{p=0}She spoke, swallowing tears.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) menu: '[npc.name] went to change': pass $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_20 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_21 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_22 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_23 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_95 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_74 call lb_show_npc2(npc) from _call_lb_show_npc2_12 show screen show_in_senter([['quests/crowd.png', 0.5, 0.5]]) hide screen show_image_above with Dissolve(1.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" pause 1.0 talker '[npc.name]\'s appearance in the outfit made a splash among the audience.' talker 'The girl was a embarrassed, but quickly recovered and began to dance.' call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_241 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_242 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_243 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_244 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_245 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_246 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_247 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_248 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_249 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_250 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_251 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_252 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_253 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_254 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_255 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_256 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_257 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_13 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker '- Show your boobs!' talker '- Yes! Boobs, whore, boobs!{p=0} The rest supported.' talker '[npc.name]\'s movements became constrained almost wooden.' stop music2 fadeout 1.0 talker 'I turned off the music.' char_GG '- People, the show is over for today!' play sound "sounds/disappointment_party.mp3" pause 1.5 char_GG '- The girl needs to rest.' talker 'People began to disperse reluctantly.' talker '- You\'re a great slut.{p=0}Some guy said with a lustful look before leaving.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_96 call lb_show_npc2(npc) from _call_lb_show_npc2_14 talker 'From humiliation, tears appeared in [npc.name]\'s eyes again.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_97 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_98 show screen show_image_above('scenes/black.png') with Dissolve(0.5) stop music fadeout 1.0 $ def_change_clothe_set(npc, 'asual') call lb_show_npc2(npc) from _call_lb_show_npc2_15 menu: 'Over time': hide screen show_image_above hide screen show_in_senter with Dissolve(0.5) char_npc '- Thanks for stopping the dance. I thought they would tear me apart.' char_GG "- No one will touch you here." char_GG '- At least without my permission.' # Конец этапа play sound "sounds/level_UP.mp3" $ quest.level = '7_1_1_audition_strip_club' show screen my_GUI show screen location hide screen show_image hide screen show_in_senter_down with Dissolve(0.5) call minuts(45) from _call_minuts_44 return # Этап 7-1-1 - Ждать 1 день # Этап 7-2-0 - Продолжение приватного шоу label lb_qw_1_easy_money_7_2_audition_strip_club(npc='', quest=''): $ npc = quest.npc menu: 'Do one more little workout for [npc.name]?': pass 'Not': return $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': show screen show_image_above('scenes/black.png') with Dissolve(0.5) play music "sounds/party_crowd.mp3" fadein 2.5 $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_41 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_42 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_43 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_44 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_104 call lb_show_npc2(npc) from _call_lb_show_npc2_32 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" talker 'This time [npc.name] immediately appeared in the right outfit. And even made a humorous bow to the audience, what was greeted with applause.' char_npc '- Music?' talker 'This is already for me.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Turn on the music.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_91 hide screen show_image_above with Dissolve(1.0) call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_396 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_397 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_398 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_399 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_400 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_401 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_402 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_403 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_404 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_405 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_406 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_407 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_408 pause 1.0 call lb_show_npc2(npc) from _call_lb_show_npc2_33 pause 1.5 talker '- Show your boobs!' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_111 call lb_show_npc2(npc) from _call_lb_show_npc2_34 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_92 talker '- Yes! Boobs, boobs!{p=0}The rest supported.' talker '[npc.name] froze for a second and began to elegantly undress to the music.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_35 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_93 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_36 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_94 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_37 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_95 pause 1.0 talker 'Then she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_409 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_410 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_411 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_412 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_413 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_414 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_415 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_416 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_417 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_418 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_38 hide screen show_image_above with Dissolve(0.5) talker '- Panties!{p=0}- Take off your panties!{p=0}The audience shouted.' talker 'This time [npc.name] didn\'t even hesitate.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_show_npc2(npc) from _call_lb_show_npc2_39 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'The naked, flushed girl breathing heavily and obviously not from fatigue.' # Продолжение танца call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_419 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_420 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_421 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_422 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_423 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_424 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_425 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_426 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_427 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_428 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_429 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_430 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_431 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_432 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_433 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_434 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_435 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_436 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_437 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_40 stop music fadeout 1.5 hide screen show_image_above hide screen show_image_in_position_2 with Dissolve(0.5) char_GG '- How do you like our little performance?' play sound "sounds/cheer_crowd.mp3" call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_105 call lb_show_npc2(npc) from _call_lb_show_npc2_41 char_GG '- I see you liked it. I think the girl too.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_112 # Ветка подчинения if type_x == 'Submission': show screen show_image_above('scenes/black.png') with Dissolve(0.5) play music "sounds/party_crowd.mp3" fadein 2.5 $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_45 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_46 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_47 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_48 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_106 call lb_show_npc2(npc) from _call_lb_show_npc2_42 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" talker 'This time [npc.name] immediately appeared in the right outfit. Looks like the whore can learn anything. She even tried to squeeze a smile out of herself. However, to no avail.' char_npc '- Hello, I\'m here to dance for you.' talker 'There is still work to be done on the introduce.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Turn on the music.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_96 hide screen show_image_above with Dissolve(1.0) call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_438 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_439 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_440 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_441 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_442 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_443 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_444 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_445 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_446 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_447 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_448 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_449 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_450 pause 1.0 call lb_show_npc2(npc) from _call_lb_show_npc2_43 hide screen show_image_in_position_2 with Dissolve(0.5) pause 1.5 talker '- Show your boobs!' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_107 call lb_show_npc2(npc) from _call_lb_show_npc2_44 talker '- Yes! Boobs, whore, boobs!{p=0} The rest supported.' talker '[npc.name] froze for a second and began to undress to the music.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_108 call lb_show_npc2(npc) from _call_lb_show_npc2_45 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_109 call lb_show_npc2(npc) from _call_lb_show_npc2_46 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_110 call lb_show_npc2(npc) from _call_lb_show_npc2_47 pause 1.0 talker 'Then she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_451 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_97 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_452 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_453 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_454 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_455 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_456 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_457 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_458 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_459 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_460 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_111 call lb_show_npc2(npc) from _call_lb_show_npc2_48 hide screen show_image_above with Dissolve(0.5) talker '- Panties!{p=0}- Take off your panties!{p=0}The audience shouted.' talker '[npc.name] looked at me pleadingly, but I didn’t react.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_113 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_112 call lb_show_npc2(npc) from _call_lb_show_npc2_49 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_98 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'Naked, the girl listened to the dirty words while tears welled up in her eyes. But she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_461 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_462 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_463 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_464 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_465 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_466 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_467 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_468 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_469 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_470 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_471 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_472 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_473 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_474 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_475 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_476 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_477 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_478 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_479 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_113 call lb_show_npc2(npc) from _call_lb_show_npc2_50 stop music fadeout 1.5 play music "sounds/party_crowd.mp3" fadein 1.5 show screen show_image_above('quests/crowd.png') hide screen show_image_in_position_2 with Dissolve(0.5) char_GG '- How do you like our little performance?' play sound "sounds/cheer_crowd.mp3" call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_114 call lb_show_npc2(npc) from _call_lb_show_npc2_51 char_GG '- I see you liked it. ' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_114 play sound "sounds/level_UP.mp3" $ quest.level = '7_3_0_audition_strip_club' if 'open_strip_show_action' not in var_dict: $ var_dict['open_strip_show_action'] = [] $ var_dict['open_strip_show_action'].append(npc) talker 'Now you can do this show with [npc.name] in any private place in the city.' hide screen show_image hide screen show_image_in_position hide screen show_image_above call minuts(45) from _call_minuts_61 return # Этап 7-3-0 - Второе прослушивание в стриптиз клубе label lb_qw_1_easy_money_7_3_audition_strip_club(npc='', quest=''): $ npc = quest.npc $ name_char = npc.name # Определение типа прохождения квеста Love/Submission $ type_x = 'Love' if npc.dict_skill['Love'] < npc.dict_skill['Submission']: $ type_x = 'Submission' # Ветка любви if type_x == 'Love': show screen show_image_above('scenes/black.png') with Dissolve(1.5) talker 'Let\'s do it right this time.' menu: 'Turn on music': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 talker 'Right music.' menu: 'The right outfit': pass $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=stockings_090) from _call_lb_add_clothe_npc_49 call lb_add_clothe_npc(npc=npc, clothe=panty_090) from _call_lb_add_clothe_npc_50 call lb_add_clothe_npc(npc=npc, clothe=bra_090) from _call_lb_add_clothe_npc_51 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) char_GG '- Whoa, whoa, whoa.{p=0} I encouraged [npc.name].' talker 'Our trainings were not in vain, and the girl did not hesitate to take up the pole.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_99 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_480 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5) from _call_show_scene_481 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5, True) from _call_show_scene_482 pause 1.0 call show_scene(npc, s_Pole_strip_3, 0.5, True) from _call_show_scene_483 pause 1.0 call show_scene(npc, s_Pole_strip_4, 0.5, True) from _call_show_scene_484 pause 1.0 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_485 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_115 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'With a few light movements, [npc.name] freed herself from the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 1.0 talker 'And she continued the dance.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_100 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_486 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_487 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_488 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_489 pause 1.0 call show_scene(npc, s_Pole_strip_1_topless, 0.5) from _call_show_scene_490 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'The panties followed the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 1.0 talker 'Perhaps [npc.name]\'s dance lacked technique, but the movements were more or less professional. And where did the recent stiffness go.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_101 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_491 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_492 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_493 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_494 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare) from _call_show_scene_495 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5, True) from _call_show_scene_496 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5) from _call_show_scene_497 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5) from _call_show_scene_498 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5, True) from _call_show_scene_499 pause 1.0 call show_scene(npc, s_Pole_strip_4_bare, 0.5) from _call_show_scene_500 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(2.5) stop music fadeout 2.5 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] ran her eyes over the faces of the few spectators. She was satisfied with the effect and smiled triumphantly.' call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_115 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 2.0 talker 'Then she left.' # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(1.5) char_GG '- Well, how?' $ name_char = owner_strip_club.name char_npc '- Not bad, not bad. Lacks confidence in movement, but generally okay.' char_npc '- Let her come. We always have a lot of visitors in the evenings and one more girl will not be superfluous.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_116 # Ветка подчинения if type_x == 'Submission': show screen show_image_above('scenes/black.png') with Dissolve(1.5) talker 'Let\'s see what my obedient bitch [npc.name] has learned.' menu: 'Turn on music': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 talker 'Right music.' menu: 'The right outfit': pass $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=stockings_090) from _call_lb_add_clothe_npc_52 call lb_add_clothe_npc(npc=npc, clothe=panty_090) from _call_lb_add_clothe_npc_53 call lb_add_clothe_npc(npc=npc, clothe=bra_090) from _call_lb_add_clothe_npc_54 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) char_GG '- Come on! Whore. Show this time what\'s under your clothes.{p=0}I "cheered up" the girl.' talker 'Our trainings were not in vain, and the girl did not hesitate to take up the pole.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_102 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_501 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5) from _call_show_scene_502 pause 1.0 call show_scene(npc, s_Pole_strip_2, 0.5, True) from _call_show_scene_503 pause 1.0 call show_scene(npc, s_Pole_strip_3, 0.5, True) from _call_show_scene_504 pause 1.0 call show_scene(npc, s_Pole_strip_4, 0.5, True) from _call_show_scene_505 pause 1.0 call show_scene(npc, s_Pole_strip_1, 0.5) from _call_show_scene_506 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_116 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] was still not happy with the idea of undressing on stage.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 1.0 talker 'But the training was not in vain.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_103 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_507 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_508 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5, True) from _call_show_scene_509 pause 1.0 call show_scene(npc, s_Pole_strip_2_topless, 0.5) from _call_show_scene_510 pause 1.0 call show_scene(npc, s_Pole_strip_1_topless, 0.5) from _call_show_scene_511 pause 1.0 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) talker 'The panties followed the bra.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 1.0 talker 'Perhaps [npc.name]\'s dance lacked technique, but the movements were more or less professional. And where did the recent stiffness go.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_104 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_512 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_513 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5, True) from _call_show_scene_514 pause 1.0 call show_scene(npc, s_Pole_strip_1_bare, 0.5) from _call_show_scene_515 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare) from _call_show_scene_516 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5, True) from _call_show_scene_517 pause 1.0 call show_scene(npc, s_Pole_strip_2_bare, 0.5) from _call_show_scene_518 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5) from _call_show_scene_519 pause 1.0 call show_scene(npc, s_Pole_strip_3_bare, 0.5, True) from _call_show_scene_520 pause 1.0 call show_scene(npc, s_Pole_strip_4_bare, 0.5) from _call_show_scene_521 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(2.5) stop music fadeout 2.5 hide screen show_image_in_position_2 hide screen show_scn with Dissolve(1.0) # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) hide screen show_image_above with Dissolve(0.5) talker '[npc.name] found me with her eyes. She received a condescending nod from me and sighed with relief.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_117 # image - НПС в стриптиз клубе $ npc_img = npc_image(npc) show screen show_in_senter_down(img_list=[['quests/strip_pole.jpg', 1920, 1080, 0, 0], [npc_img, 750, 1080, 0.65, 0.5]]) hide screen show_image_above with Dissolve(0.5) pause 2.0 talker 'Then she left.' # image - Владелец в стрип-клубе $ npc_img = simply_npc_image(owner_strip_club) hide screen show_image_above show screen show_in_senter_down(img_list=[['locations/strip_club.jpg', 1920, 1080, 0, 0], [npc_img, 1920, 1080, 0.5, 0.5]]) with Dissolve(1.5) char_GG '- Well, how?' $ name_char = owner_strip_club.name char_npc '- In general, it is normal, perhaps unsmiling, but I think it will get used to it over time.' char_npc '- Let her come. We always have a lot of visitors in the evenings and one more girl will not be superfluous.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_117 play sound "sounds/level_UP.mp3" $ quest.level = 'end_quest' if 'end_quest_Easy_Money' not in var_dict: $ var_dict['end_quest_Easy_Money'] = [] $ var_dict['end_quest_Easy_Money'].append(npc) talker 'Now [npc.name] can work in the evenings in a strip club.' hide screen show_image hide screen show_image_in_position hide screen show_image_above hide screen show_in_senter_down with Dissolve(0.5) call minuts(45) from _call_minuts_62 return # Сортировка списка одежды label lb_toggle_sort_clothe_ID: $ var_dict['lb_toggle_sort_clothe_ID'] = True $ var_dict['lb_toggle_sort_clothe_A'] = False return label lb_toggle_sort_clothe_A: $ var_dict['lb_toggle_sort_clothe_A'] = True $ var_dict['lb_toggle_sort_clothe_ID'] = False return # Использование квестового предмета label lb_use_quest_item(obj): $ var_dict['quest_obj'] = obj # Проверака условий взаимодействия с квестовым предметом $ quest = obj.features[0] $ var_dict['current_quest'] = quest $ temp_dict = quest.dict[quest.level] # Если нужно приватное место if temp_dict['loc'] == 'private': if 'private' not in var_dict['location'].features: play sound "sounds/error.mp3" menu: "Find a more private place.": return $ npc_list = npc_location_list(loc) if len(npc_list) > 1: play sound "sounds/error.mp3" menu: 'Too many extra eyes (privacy is needed to continue quests).': return # Наличие в локации нужного для взаимодействия нпс $ npc = temp_dict['npc'] # Любой основной перснаж if npc == 'any': $ check_main_npc = False $ npc_list = npc_location_list(var_dict['location']) # Добавить к списку следующую за ГГ нпс if var_dict['go_npc'] != []: $ npc_list.append(var_dict['go_npc'][0]) python: for npc_x in npc_list: if isinstance(npc_x, NPC): check_main_npc = True if check_main_npc == False: play sound "sounds/error.mp3" menu: "There are no NPCs suitable for interaction.": return $ call_x = quest.dict[quest.level]['call'] show screen choose_NPC_from_list(npc_list, 'lb_use_quest_item2', mark='Who should you hand over the item to?') return # Проверка НПС на соответствие условиям квеста label lb_use_quest_item2(npc): if npc != '': $ check = False $ quest = var_dict['current_quest'] $ obj = var_dict['quest_obj'] # НПС рассержена if npc.dict_skill['Friend/Anger'] < 0: call lb_NPC_angry(npc) from _call_lb_NPC_angry_6 # Недоступность квеста Лёгкие деньги для стриптизёрш if obj.name == "Sexy outfit": if npc.id == 'Lily-141032388793249733405969754339201937683' or npc.id == 'Serena-211310314623711971176285663303210529043': talker '[npc.name] will not take this quest.' return # Проверка на повторное взятие квеста if def_check_duble_quest(npc, quest): play sound "sounds/error.mp3" menu: '[npc.name] is already going through the "[quest.name]" quest': hide screen info hide screen inventary with Dissolve(0.3) return # Love $ love_quest = quest.dict[quest.level]['Love'] if love_quest != '': if npc.dict_skill['Love'] >= love_quest: $ check = True # Submission $ submission_quest = quest.dict[quest.level]['Submission'] if submission_quest != '': if npc.dict_skill['Submission'] >= submission_quest: $ check = True # Проверка прошла успешно if check: # Вопрос menu: 'Do you want to continue the "[quest.name]" quest with [npc.name]?': play sound "sounds/level_UP.mp3" # Удаление объекта из инвентарей $ def_del_obj_from_inventories(obj) hide screen info hide screen inventary with Dissolve(0.3) # Переход к квесту $ call_x = quest.dict[quest.level]['call'] $ renpy.call(call_x, npc=npc, quest=quest) 'Not': pass # Провал проверки else: play sound "sounds/error.mp3" menu: 'Need: [love_quest] Love or [submission_quest] Submission. ': pass return # Список квестов label lb_show_quests: show screen list_of_quests with Dissolve(0.3) return # Вывод картинки на заблуренной текущей локци label lb_image_location_blur(img, dis=0.3): $ img_loc = im.Blur(var_dict['location'].image, 3.5) $ img = im.MatrixColor(img, im.matrix.brightness(0.0)) show screen show_image(img_list=[img_loc, img]) with Dissolve(dis) return # Информация о девушках label lb_girls_info: show screen choose_NPC_icon(call_x='lb_girls_info2') with Dissolve(0.3) return label lb_girls_info2(npc): show screen NPC_info(npc) with Dissolve(0.3) return # Очки просвечивающие одежду - Hot glasses label lb_hot_glasses(npc, level): play sound "sounds/mystic_sound.mp3" show screen show_image_above('other/fantasy_bgd.png') hide screen popup_image with Dissolve(1.1) $ var_dict['hot_glasses_mode'] = level pause 0.5 hide screen show_image_above with Dissolve(0.5) return # ГГ спрашивает ключ у НПС label lb_ask_key(npc): call lb_show_npc(npc) from _call_lb_show_npc_94 $ name_char = npc.name char_GG "- How about giving me the key?" if npc.dict_skill['Submission'] < 3.0 and npc.dict_skill['Love'] < 3.0: call rnd_sound(sl_giggle) from _call_rnd_sound_124 char_npc "- Funny joke." else: if npc.dict_skill['Submission'] < 6.0 and npc.dict_skill['Love'] < 6.0: char_npc "- I don't think I'm ready for this." if npc.dict_skill['Love'] >= 6.0: call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_75 call lb_show_npc(npc) from _call_lb_show_npc_95 char_npc "- Finally. I thought you'd never ask." play sound "sounds/level_UP.mp3" call lb_add_key_from_apartment(npc) from _call_lb_add_key_from_apartment else: if npc.dict_skill['Submission'] >= 6.0: char_npc "- Is it really necessary?" char_GG "- Sure. I need to be able to come and fuck my bitch at any time." talker "[npc.name] obediently gave me the key." play sound "sounds/level_UP.mp3" call lb_add_key_from_apartment(npc) from _call_lb_add_key_from_apartment_1 hide screen show_image return # НПС даёт ГГ ключ от квартиры label lb_add_key_from_apartment(npc): # Определяем апартаменты НПС $ apart = def_return_apart_NPC(npc) # Создаём ключ и добавляем его в инвентарь, если там есть свободное место $ check_free_space = def_check_free_space_inventary(inv_GG) # Свободное место есть if check_free_space: $ key_apart.name = npc.name $ key_apart.discription = 'Apartment key.' $ key_apart.features = [apart.id] $ inv_GG.cells.append(copy_obj(key_apart)) # Нет else: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") return # НПС-уходит из квартиры где находиться ГГ label NPC_leave_appartment(npc): $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.3) $ name_char = npc.name name_char "I've got to go." menu: "I will stay.": if owner.dict_skill['Submission'] < 6.0 and owner.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" name_char "- I think it would be inappropriate." talker "Need 6.0 Love or 6.0 Submission." play sound "sounds/close_door.mp3" pause 0.5 hide screen show_image with Dissolve(0.5) call lb_goto_location125(var_dict['location_before_enter_apparment']) from _call_lb_goto_location125 else: char_GG "- Ok, make yourself at home." $ var_dict['The player stayed in the apartment.'] = 'yes' hide screen show_image with Dissolve(0.5) "I'll leave.": play sound "sounds/close_door.mp3" pause 0.5 hide screen show_image with Dissolve(0.5) call lb_goto_location125(var_dict['location_before_enter_apparment']) from _call_lb_goto_location125_1 return # Зелёный фон в редакторе label lb_toggle_green_fon: if var_dict['toggle_green_fon']: $ var_dict['toggle_green_fon'] = False else: $ var_dict['toggle_green_fon'] = True return # About Cheat label lb_about_cheat: menu: '{a=https://www.patreon.com/posts/40714451}Cheat menu{/a}': pass return # Добавление денег label lb_add_money(money_x): $ GG.money += money_x return # Учёба в колледже label lb_college_study(skill): $ time = 1 $ list_books = list_obj_feature(inv_GG, 'учебник') # Список учебников в инвентаре ГГ python: # Есть ли подходящая книга mark_book = False for book in list_books: if book.skill == skill: if GG.dict_skill[skill] <= book.level and (GG.dict_skill[skill] + 1.0) >= book.level: mark_book = True # Подходящая книга есть if mark_book: menu: 'There is a suitable tutorial. Learning speed increased by 3 times.': $ add_eff = 3 # Подходящей книги нет else: menu: 'There is no suitable tutorial. The learning speed is reduced by 2 times.': $ add_eff = 0.5 # Само изучение $ eff = 100 * round(GG.eff , 2) menu: "Learning efficiency [eff]\%." 'Learn [skill] - 0.5h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Learn [skill] - 1h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Learn [skill] - 2h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Close': play sound 'sounds/click_button.mp3' $ var_skill = GG.dict_skill[skill] $ var_skill = var_skill + (((time * 0.000238 * 2) * GG.eff) * add_eff) $ delta_skill = var_skill - GG.dict_skill[skill] $ GG.dict_skill[skill] = var_skill menu: '[skill](theory): +[delta_skill]': pass call minuts(time) from _call_minuts_45 return # Добавление стартовой линии к расписанию label lb_add_start_line_in_table(npc): $ apartment_3_loc.locations = [] $ apartment_3_loc.features = [] $ npc.table = [['on', 0, 0, 6, 0, apartment_3_loc, 'home', 1], ['off', 0, 0, 8, 0, apartment_3_loc, 'home', 1]] call lb_save_NPC(npc) from _call_lb_save_NPC_6 return # Удаление строки из расписания label lb_sub_line_table(npc, table_line): $ npc.table.remove(table_line) call lb_save_NPC(npc) from _call_lb_save_NPC_7 return # Выбро локации для расписания label lb_choose_location_for_table(npc, index_list): show screen choose_location(call_x='lb_choose_location_for_table1', npc=npc, index_list=index_list) return label lb_choose_location_for_table1(npc, index_list, loc): $ npc.table[index_list][5] = loc call lb_save_NPC(npc) from _call_lb_save_NPC_8 return # Устройство на работу в Кубисофт label lb_get_job_cubisoft(npc): $ name_char = npc.name call lb_show_npc(npc) from _call_lb_show_npc_96 with Dissolve(0.3) char_npc '- Do you want to work for our company?' menu: 'Yes': char_npc 'Okay, let\'s take a look at your code.' show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.7) menu: 'Over time.': pass hide screen show_image_above with Dissolve(0.5) if GG.dict_skill['Programming_pract'] < 3.0: play sound "sounds/error.mp3" char_npc '- Sorry, but your level is not high enough.' 'Practical programming level 3.0 required.' else: char_npc '- Well, your level is not bad, you can work.' play sound "sounds/level_UP.mp3" $ var_dict['markers']['open_my_work_sit_in_cubisoft'] = True $ cubisoft.locations.append(cubisoft_work_place) 'You can now work in the Cubisoft.' 'Not': pass show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) jump main_cicle return # Работа в кубисофте label lb_cubisoft_work: show screen interaction(cubisoft_working) with Dissolve(0.3) return # Закрыть работу в кубисофте label lb_close_cubisoft_working: show screen interaction(comp_GG_cubisoft) with Dissolve(0.3) return # Задачи для работы в кубисофте (обновлятеся один раз в день) label lb_cubisoft_create_task: python: # Программистские задачи task_list = [] # 3 for x in range(4): task = copy_obj(Upwork_task()) task.name='Find a bug' task.skill='Programming' task.level=3 task.discription='Find a bug in a mobile application.' rnd_money = int(round(random.uniform(170, 220), 0)) task.money=rnd_money task_list.append(task) # 4 rnd = random.random() for x in range(4): task = copy_obj(Upwork_task()) task.name='Unity' task.skill='Programming' task.level=4 task.discription='The script for the game. Unity engine.' rnd_money = int(round(random.uniform(220, 300), 0)) task.money=rnd_money task_list.append(task) # 5 rnd = random.random() for x in range(3): task = copy_obj(Upwork_task()) task.name='Driver' task.skill='Programming' task.level=5 task.discription='Driver for an external device.' rnd_money = int(round(random.uniform(300, 500), 0)) task.money=rnd_money task_list.append(task) cubisoft_working.dict_icons['Task_list'] = task_list return # Фэнтези-мод label lb_fantasy_mode: if var_dict['fantasy_mode_toggle']: $ var_dict['fantasy_mode_toggle'] = False else: $ var_dict['fantasy_mode_toggle'] = True return label lb_fantasy_mode_2(npc, f_npc): hide screen popup_image call lb_fantasy_mode from _call_lb_fantasy_mode menu: '{a=https://www.patreon.com/posts/40709650}Fantasy mode{/a}': hide screen show_image_above with Dissolve(0.5) return label lb_clothe_fantasy_mode: hide screen popup_image python: if var_dict['var_npc_fantasy'] != '': var_dict['npc'].name = var_dict['var_npc_fantasy'].name var_dict['npc'].clothes = var_dict['var_npc_fantasy'].clothes var_dict['npc'].images = var_dict['var_npc_fantasy'].images var_dict['npc'].decales = var_dict['var_npc_fantasy'].decales var_dict['var_npc_fantasy'] = '' # Одевание всех фентезийных персонажей for f_npc in var_dict['fantasy_npces']: f_npc.clothes = copy_obj(f_npc.clothe_sets[0]) return # Отпустить НПС-а label lb_let_go(npc): hide screen NPC_show with Dissolve(0.5) pause 0.5 $ var_dict['go_npc'] = [] return # Добавить пункт в расписание label lb_add_line_table(npc, index_list, table_line): $ copy_table_line = copy_obj(table_line) $ npc.table.insert(index_list, copy_table_line) call lb_save_NPC(npc) from _call_lb_save_NPC_3 return # Редактирование расписание label lb_edit_table(npc, table_line): python: index_element = 0 for element in table_line: povname = renpy.input("Cur_element = [element]") povname = povname.strip() if povname != '': if isinstance(element, int): table_line[index_element] = int(povname) else: table_line[index_element] = povname index_element += 1 call lb_save_NPC(npc) from _call_lb_save_NPC_4 return # Продать книгу label lb_sell_book(obj): $ book = obj $ sell_money = int(book.money/1.7) menu: 'Do you want to sell the "[book.name]" for [sell_money]?': play sound "sounds/money_add.mp3" $ GG.money += sell_money $ inv_GG.cells.remove(book) 'Not': pass return # Демонтаж камеры label lb_spy_off(loc): menu: 'Remove the camera in the [loc.name]': # Проверка есть ли свидетели if npc_location_list(loc) != []: menu: 'It should be done without witnesses': pass else: # Проверка есть ли свободное место в инвентаре $ summ_cell = inv_GG.row * inv_GG.coll # Количество ячеек $ count_obj = len(inv_GG.cells) # Занято ячеек if count_obj >= summ_cell: menu: "There is no free space.": pass else: play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 $ inv_GG.cells.append(copy_obj(spycam)) $ loc.features.remove('spycam_on') $ loc.features.append('spycam_off') play sound "sounds/level_UP.mp3" 'Not': pass return # Демонтаж камеры в апартаментах label lb_spy_off_apartment(loc, current_apprtment_id): menu: 'Remove the camera in the [loc.name]': # Проверка есть ли свидетели if npc_location_list(loc) != []: menu: 'It should be done without witnesses': pass else: # Проверка есть ли свободное место в инвентаре $ summ_cell = inv_GG.row * inv_GG.coll # Количество ячеек $ count_obj = len(inv_GG.cells) # Занято ячеек if count_obj >= summ_cell: menu: "There is no free space.": pass else: play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 $ inv_GG.cells.append(copy_obj(spycam)) $ var_dict['apartment_spy'][current_apprtment_id].remove(loc) play sound "sounds/level_UP.mp3" 'Not': pass return # Отнять время label lb_subtract_time(time): if time == 0: $ var_dict['Hour'] -= 0 $ var_dict['Minute'] -= 0 call minuts(1) from _call_minuts_30 else: $ var_dict['Minute'] -= (time + 1) call minuts(1) from _call_minuts_31 if var_dict['Minute'] < 0: $ var_dict['Minute'] = 0 if var_dict['Hour'] < 0: $ var_dict['Hour'] return # Отнять день label lb_subtract_day: $ var_dict['DataD'] -= 1 if var_dict['DataD'] < 1: $ var_dict['DataD'] = 7 return # Гайд label lb_quick_guide: menu: "{a=https://www.patreon.com/posts/quick-game-guide-40193750}View a quick online guide to the game{/a}": pass "Not": pass return # Взаимодействие с квартирой НПС label lb_interaction_apartment(loc): $ owner = def_return_owner(loc) $ doing = def_NPC_doing_apparment(owner) if owner != 'none': if owner.dict_skill['Exploration'] < 1.0: menu: 'I don\'t know who lives here': pass 'Use a lockpick': call lb_use_lockpick_appartment(loc, owner, doing) from _call_lb_use_lockpick_appartment else: # Проверка, есть ли нужный ключ у ГГ python: check_required_key = False for obj in inv_GG.cells: if loc.id in obj.features and obj.type == 'apartment_key': check_required_key = True if 'keychain' in var_dict: if loc.id in var_dict['keychain']: check_required_key = True # У ГГ есть ключ if check_required_key: menu: '[owner.name] lives here | Open with your key.': show screen show_image_above('scenes/black.png') with Dissolve(1.0) play sound "sounds/keys_door_open.mp3" pause 2.6 $ var_dict['current_apartment'] = loc $ var_dict['location'] = apartment_livingroom $ var_dict['The player stayed in the apartment.'] = 'yes' hide screen show_image_above with Dissolve(0.3) jump main_cicle 'Not': pass # У ГГ нет ключа menu: '[owner.name] lives here | Ring the doorbell': play sound "sounds/doorbell.mp3" $ NPC_list = npc_location_list(loc) # Не дома if NPC_list == []: menu: 'Nobody is at home.': pass # Дома else: # Спит if doing == 'sleep': pause 4 menu: 'It looks like [owner.name] is sleeping. I won\'t bother her.': pass # Принимает ванную if doing == 'washing': pause 4 menu: 'I think I can hear the sound of water. [owner.name] must be taking a bath.': pass # Открыла дверь if doing not in ['sleep', 'washing']: $ var_dict['The player stayed in the apartment.'] = 'not' # Проверка на то что ГГ остался один в квартире НПС pause 2 play sound "sounds/open_door.mp3" $ img = loc.image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(owner) show screen show_image(img_list=[img_loc, img_npc]) hide screen my_GUI hide screen location with Dissolve(0.3) $ var_dict['current_apartment'] = loc $ var_dict['location'] = apartment_livingroom $ name_char = owner.name char_npc 'Hi [GG.name].' call minuts(1) from _call_minuts_46 hide screen show_image show screen my_GUI show screen location with Dissolve(0.3) 'Use a lockpick': call lb_use_lockpick_appartment(loc, owner, doing) from _call_lb_use_lockpick_appartment_1 'not': pass jump main_cicle return # НПС незнаком с ГГ label lb_check_familiar(npc): $ name_char = '??????????' $ list_order = [1, 2, 3] $ oreder = random.choice(list_order) if oreder == 1: char_npc '- Excuse me, who are you?' if oreder == 2: char_npc '- I do not know you.' if oreder == 3: char_npc '- Please do not distract me.' # Познакомиться # Вероятность познакомиться $ probability = 30 + (GG.dict_skill['Talk'] * 10) if probability > 100: $ probability = 100 # Если маркера ещё нет добавить его if 'Try to get acquainted' not in npc.dict_marks: $ npc.dict_marks['Try to get acquainted'] = 0 # Если попытки знакомства сегодня уже были if npc.dict_marks['Try to get acquainted'] > 0: menu: 'Try to get acquainted (0\% | already tried today)': play sound "sounds/error.mp3" menu: 'I will not bother her (you can get acquainted once a day)': pass 'Not this time': pass # Если попыток знакомства сегодня ещё не было if npc.dict_marks['Try to get acquainted'] == 0: menu: 'Try to get acquainted ([probability]\% | once a day)': $ x1 = random.randint(1, 110) # Неудачная попытка if x1 > probability: play sound "sounds/error.mp3" char_npc '- I am not interested.' # Удачная попытка else: char_npc '- So your name is [GG.name]?' char_npc '- Very nice to meet you.' play sound "sounds/level_UP.mp3" $ npc.dict_skill['Exploration'] += 0.1 $ name_char = npc.name char_npc '- My name is [npc.name].' $ npc.dict_marks['Try to get acquainted'] = 1 'Not this time': pass show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) call minuts(10) from _call_minuts_20 jump main_cicle return # Проверка на наличие людей в локации label lb_check_witness(npc, act): # Действия по публичности $ acts_1 = ['brainwashing_1', 'brainwashing_2', 'brainwashing_3', 'undress', 'paw thigh', 'stroke cheek, touch lips', 'paw butt', 'paw breast', 'put a finger in the mouth', 'spank with your palm', 'open_spank_schoolgirl_action'] $ acts_2 = ['petting_1', 'spank_1', 'spank_2', 'blowjob_1', 'blowjob_2', 'blowjob_3', 'missionary_position_1', 'doggy_1', 'anal_1', 'petting_2', 'cunnilingus_1', 'cunnilingus_2', 'cowgirl_1', 'striptease_1', 'party_show_1', 'handjob_1', 'masturbation_1', 'masturbation_2', 'BDSM_1', 'BDSM_2', 'lesbo_sex', 'lesbo_sex_2', 'spank_schoolgirl', 'missionary_position_2'] # Отношение НПС-а к публичности $ exbit = 'indifferent' python: for line in npc.character_traits: if line[0] == 'exhibition': exbit = line[1] # Локация публичная if 'public' in loc.features: # Неприемлемые действия для публичного места if act in acts_2: play sound "sounds/error.mp3" menu: 'Not in a public place.': jump main_cicle # НПС не нравится или безразлична публичность if exbit == 'doesn\'t like' or exbit == 'indifferent': if act in acts_1 or act in acts_2: play sound "sounds/error.mp3" menu: '[npc.name] won\'t do such things in a public place.': jump main_cicle # НПС нравится публичность if exbit == 'like': if act in acts_2: play sound "sounds/error.mp3" menu: '[npc.name] won\'t do such things in a public place.': jump main_cicle # Локация обычная if 'public' not in loc.features and 'private' not in loc.features: # НПС не нравится публичность if exbit == 'doesn\'t like': if act in acts_1 or act in acts_2: play sound "sounds/error.mp3" menu: '[npc.name] wouldn\'t do that kind of thing in a place like this.': jump main_cicle # НПС безразлична публичность if exbit == 'indifferent': if act in acts_2: play sound "sounds/error.mp3" menu: '[npc.name] wouldn\'t do that kind of thing in a place like this.': jump main_cicle return # Дублирование сета одежды label lb_dub_set_clothes(npc, set): $ set_x = copy_obj(set) $ setname = renpy.input("The name of the new set?") $ setname = setname.strip() $ set_x[0] = setname $ npc.clothe_sets.append(set_x) $ var_dict['action'] = 'choose_set_for_edit' show screen clothe_editor(npc) with Dissolve(0.5) return # Удаление сета одежды label lb_del_set_clothes(npc, set): $ npc.clothe_sets.remove(set) $ var_dict['action'] = 'choose_set_for_edit' show screen clothe_editor(npc) with Dissolve(0.5) return # Добавление сета одежды label lb_add_set_clothes(npc): $ setname = renpy.input("The name of the set?") $ setname = setname.strip() $ npc.clothe_sets.append([setname]) call lb_save_NPC(npc) from _call_lb_save_NPC_1 $ var_dict['action'] = 'choose_set_for_edit' show screen clothe_editor(npc) with Dissolve(0.5) return # Создание НПС-а label lb_add_NPC: $ new_NPC = copy_obj(npc_temp) # Создание уникального ID $ id_x = uuid.uuid1() $ new_NPC.id = str(id_x.int) $ povname = renpy.input("The name of the new character?") $ povname = povname.strip() $ new_NPC.name = povname $ new_NPC.id = povname + '-' + new_NPC.id call lb_save_NPC(new_NPC) from _call_lb_save_NPC python: # Получаем список НПС-ов list_file_npcs = def_list_files('npc', NPC) # Загружаем НПС-ов var_dict['npces'] = [] for file_name in list_file_npcs: with open('npc/' + file_name, 'rb') as input: temp_obj = pickle.load(input) var_dict['npces'].append(temp_obj) $ var_dict['action'] = 'choose_editors' show screen body_editor(new_NPC) with Dissolve(0.5) return # Запуск редактора label lb_open_editor: menu: '{a=https://www.patreon.com/posts/40204057}About Editor{/a}': pass with Dissolve(0.5) return # Локация закрывается label lb_close_location(loc): menu: 'The [loc.name] is closing.': hide screen show_image_modal hide screen interaction call lb_goto_location125(sunsity_map) from _call_lb_goto_location125_2 jump main_cicle return # Закрыть работу в редакции label lb_close_editorial_working: show screen interaction(comp_GG_editorial) with Dissolve(0.3) return # Работа в редакции label lb_editorial_work: show screen interaction(editorial_working) with Dissolve(0.3) return # Задачи для работы в редакции (обновлятеся один раз в день) label lb_editorial_create_task: python: # Писательские задачи task_list = [] # 3 качественный копирайт for x in range(4): task = copy_obj(Upwork_task()) task.name='News texts' task.skill='Writing' task.level=3 task.discription='Texts for the news site.' rnd_money = int(round(random.uniform(120, 150), 0)) task.money=rnd_money task_list.append(task) # 4 качественный копирайт for x in range(4): task = copy_obj(Upwork_task()) task.name='Article' task.skill='Writing' task.level=4 task.discription='Article on a general topic.' rnd_money = int(round(random.uniform(200, 250), 0)) task.money=rnd_money task_list.append(task) # 5 качественный копирайт for x in range(3): task = copy_obj(Upwork_task()) task.name='Author\'s article' task.skill='Writing' task.level=5 task.discription='Article on a special topic.' rnd_money = int(round(random.uniform(250, 350), 0)) task.money=rnd_money task_list.append(task) editorial_working.dict_icons['Task_list'] = task_list return # Играть на компьютере label lb_play_game: show screen show_image_modal('other/play_game.jpg') with Dissolve(0.3) play music "sounds/play_game.mp3" fadein 1.0 menu: 'Play 1h | Joy +': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(60) from _call_minuts_21 'Play 2h | Joy ++': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(120) from _call_minuts_28 'Play 3h | Joy +++': $ GG.features.append('play') pause 1.5 show screen show_image_modal('other/bgd_black.png') with Dissolve(0.3) play sound "sounds/level_UP.mp3" menu: 'Sometimes it’s good to cheer yourself up with a good game.': call minuts(180) from _call_minuts_29 'Not': pass hide screen show_image_modal stop music fadeout 0.7 with Dissolve(0.3) return # Проверка на характеристики для взаимодействий label check_features_actions(npc): # Очень сильное похмелье if 'мертвецкое_похмелье' in GG.features: 'I have a terrible headache and nausea. I don’t want to talk to anyone.' call lb_hide_screens2 from _call_lb_hide_screens2_4 jump main_cicle # Проверка на вонь if 'вонь' in GG.features: 'I stink. I don\'t want to contact anyone.' call lb_hide_screens2 from _call_lb_hide_screens2 jump main_cicle # Депрессия if 'депрессия' in GG.features: 'I am depressed. I don\'t want to contact anyone.' call lb_hide_screens2 from _call_lb_hide_screens2_1 jump main_cicle # Истощён if 'усталость_3' in GG.features: 'I\'m exhausted. I don\'t want to contact anyone.' call lb_hide_screens2 from _call_lb_hide_screens2_2 jump main_cicle # Грипп if 'грипп' in GG.features: 'I am seriously ill. I don\'t want to contact anyone.' call lb_hide_screens2 from _call_lb_hide_screens2_3 jump main_cicle return # Открыть NPC Actions label lb_show_NPC(npc): call check_features_actions(npc) from _call_check_features_actions # Устройство на работу в Кубисофт if npc.id == '215648150302422314071053121022329570441' and var_dict['location'].id == 'cubisoft_director' and var_dict['markers']['open_my_work_sit_in_cubisoft'] == False: menu: 'Get a job': call lb_get_job_cubisoft(npc) from _call_lb_get_job_cubisoft 'Not': pass # Не знаком с ГГ if npc.dict_skill['Exploration'] < 0.1: call lb_show_npc(npc) from _call_lb_show_npc_46 call lb_check_familiar(npc) from _call_lb_check_familiar show screen NPC_show(npc) with Dissolve(0.3) return # Открыть NPC simply Actions label lb_simply_NPC_show(npc): call check_features_actions(npc) from _call_check_features_actions_1 show screen simply_NPC_show(npc) with Dissolve(0.3) return # Одноразовые сообщения label one_time_messages(key1): # Сообщение о камере в комнате сестры if key1 not in var_dict['One_time_messages']: show screen show_image_above("images/other/bgd_black.png") hide screen interaction with Dissolve(0.7) char_GG 'Recently I discovered the forgotten baby monitor, which everyone had forgotten about.' char_GG 'Connected to it.' char_GG 'Just...' char_GG 'Just in case.' $ var_dict['One_time_messages'].append(key1) hide screen show_image_above show screen interaction(comp_GG) with Dissolve(0.7) return return # Если НПС спит в локации label npc_sleep(loc, npc): menu: '[npc.name] seems to be sleeping. Come in anyway.': pass 'Not': jump main_cicle play sound "sounds/door_squeak.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) menu: 'Sneak': pause 1 # Скрип половицы play sound "sounds/creak_floorboard.mp3" pause 2 # Если не под действием снотворного то просыпается if "Пила снотворное" not in npc.dict_marks: call lb_wake_up(loc, npc) from _call_lb_wake_up if npc.dict_marks["Пила снотворное"] < 1: char_GG "Shit! She doesn't seem to have slept well enough. I'm sure something can be done with this." call lb_wake_up(loc, npc) from _call_lb_wake_up_1 # Под действием снотворного $ var_dict['previous_sleep_location'] = var_dict['location'] $ var_dict['location'] = loc call lb_sleep_sex(npc) from _call_lb_sleep_sex_4 hide screen show_image_above with Dissolve(1.0) jump main_cicle 'Wake up [npc.name].': call lb_wake_up(loc, npc) from _call_lb_wake_up_2 'Go away.': play sound "sounds/door_squeak.mp3" hide screen show_image_above with Dissolve(1.0) jump main_cicle hide screen show_image with Dissolve(0.3) return # Проснулась label lb_wake_up(loc, npc): call check_features_actions(npc) from _call_check_features_actions_2 # Проснулась $ var_dict['location'] = loc call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_152 call lb_show_npc(npc) from _call_lb_show_npc_130 play sound "sounds/switch.mp3" pause 0.1 hide screen show_image_above with Dissolve(0.5) $ name_char = npc.name $ npc.dict_skill['Friend/Anger'] -= 0.2 $ npc.dict_skill['Love'] -= 0.08 char_npc '- What do you want?!' char_GG '- Chill out. I just missed you.' # Прогнала if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] < 4.0 or npc.dict_skill['Friend/Anger'] < 0: play sound "sounds/error.mp3" char_npc '- Get out!{p=0} {color=#d53232}Love: +100{p=0} Friend/Anger: +100{/color}' play sound "sounds/door_close_hard.mp3" $ var_dict['location'] = loc.locations[0] hide screen show_image with Dissolve(0.3) if (isinstance(npc, unicode)): $ npc = eval(npc) jump main_cicle # По любви if npc.dict_skill['Love'] >= 4.0: call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_153 call lb_show_npc(npc) from _call_lb_show_npc_131 char_npc '- I missed you too. {p=0}What do you want to do?' hide screen show_image show screen NPC_show(npc) with Dissolve(0.3) if (isinstance(npc, unicode)): $ npc = eval(npc) jump main_cicle # По принуждению elif npc.dict_skill['Submission'] >= 4.0: call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_154 call lb_show_npc(npc) from _call_lb_show_npc_132 char_npc '- I just wanted to sleep.' char_GG '- I do not care.' hide screen show_image show screen NPC_show(npc) with Dissolve(0.3) if (isinstance(npc, unicode)): $ npc = eval(npc) jump main_cicle return # Переименование НПС в редакторе label lb_rename_npc_in_editor(npc): $ povname = renpy.input("What is [npc.name]'s new name?") $ povname = povname.strip() $ npc.name = povname call lb_save_NPC(npc) from _call_lb_save_NPC_2 $ var_dict['action'] = 'none' hide screen body_editor with Dissolve(0.3) return # Переименование НПС (известных ГГ) label lb_rename_npc: show screen choose_NPC('lb_rename_npc_1') talker 'Select npc to rename.' return label lb_rename_npc_1: $ npc = var_dict['npc'] if npc != '': $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ name_char = npc.name call lb_hide_screens(0.5) from _call_lb_hide_screens $ povname = renpy.input("What is [npc.name]'s new name?") $ povname = povname.strip() if povname == '': $ povname = npc.name $ npc.name = povname call lb_rename_npc from _call_lb_rename_npc # call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_9 # $ img_npc = npc_image(npc) # show screen show_image(img_list=[img_loc, img_npc]) # with Dissolve(0.5) # $ name_char = npc.name # char_npc '- Ok, so my name is [npc.name].' # hide screen show_image # show screen interaction(comp_GG) # with Dissolve(0.5) return # НПС заходит в локацию где находиться ГГ label lb_meet_loc(npc, clothes): $ clothes_return = npc.clothes # НПС нужна приватность if npc.doing in ['washing']: $ name_char = npc.name call lb_show_npc(npc) from _call_lb_show_npc_16 char_npc '- [GG.name], could you go out? Please.' char_GG '- Ok.' $ var_dict['location'] = var_dict['location'].locations[0] if npc.doing in ['dressing', 'masturbate', 'sleep']: $ npc.clothes = clothes $ name_char = npc.name call lb_show_npc(npc) from _call_lb_show_npc_17 char_npc '- [GG.name], could you go out? Please.' char_GG '- Ok.' $ var_dict['location'] = var_dict['location'].locations[0] hide screen show_image with Dissolve(0.5) $ npc.clothes = clothes_return return # Наблюдение скрытой камеры label lb_CCTV: # Одноразовое сообщение о камере в комнате сестры call one_time_messages('About_spycam_in_sister_bedroom') from _call_one_time_messages # Получение списка локаций с установленными камерам python: list_loc = [] print("**************************************************************************************************************************************************************************") for loc in var_dict['list_loc']: print(loc.id + " - " + ', '.join(loc.features)) npc = '' if 'spycam_on' in loc.features: img, img_hover = button_image(loc, "lb_CCTV") # Картинка локации # Есть ли люди в локации dl_list = npc_location_list(loc) if dl_list != []: # Добавление иконки человека npc = dl_list[0] img2 = im.Scale('other/female_loc.png', 250, 141) img = LiveComposite( (250, 141), (0, 0), img, (0, 0), img2 ) # Составление списка line = [] line.append(img) line.append('lb_CCTV2') line.append(loc) line.append(npc) list_loc.append(line) # Апартаменты с камерой for apatment_id in var_dict['apartment_spy']: apart = def_return_loc_by_id(apatment_id) owner = def_return_owner(apart) for loc in var_dict['apartment_spy'][apatment_id]: npc = '' img, img_hover = button_image(loc, "lb_CCTV") # Картинка локации # Есть ли люди в апартаментах dl_list = npc_appartment_list(loc, apart) if dl_list != []: # Добавление иконки человека npc = dl_list[0] img2 = im.Scale('other/female_loc.png', 250, 141) img = LiveComposite( (250, 141), (0, 0), img, (0, 0), img2, ) # Имя владельца квартиры img = LiveComposite( (250, 141), (0, 0), img, (17, 14), Text("{b}{size=15}{font=Font0.ttf}{color=#222222} [owner.name] {/color}{/font}{/size}{/b}"), (15, 14), Text("{b}{size=15}{font=Font0.ttf}{color=#222222} [owner.name] {/color}{/font}{/size}{/b}"), (15, 12), Text("{b}{size=15}{font=Font0.ttf}{color=#222222} [owner.name] {/color}{/font}{/size}{/b}"), (17, 12), Text("{b}{size=15}{font=Font0.ttf}{color=#222222} [owner.name] {/color}{/font}{/size}{/b}"), (16, 13), Text("{b}{size=15}{font=Font0.ttf}{color=#ffffff} [owner.name] {/color}{/font}{/size}{/b}") ) # Составление списка line = [] line.append(img) line.append('lb_CCTV2') line.append(loc) line.append(npc) list_loc.append(line) show screen choose_img(list=list_loc, name_list='Spy cameras:') with Dissolve(0.3) return label lb_CCTV2(loc, npc=''): # В комнате никого if npc == '': hide screen choose_img with Dissolve(0.3) show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.3) play sound "sounds/beep.mp3" $ img_loc = im.Blur(loc.image, 0) show screen show_image_above("images/other/CCTV.png") show screen show_image(img_list=[img_loc]) with Dissolve(0.3) pause 100 play sound "sounds/beep.mp3" stop music fadeout 1.0 hide screen show_image_above hide screen show_image with Dissolve(0.7) call lb_CCTV from _call_lb_CCTV # В комнате есть нпс else: # Если локация - апартаменты или нет if 'apatment_npc' in loc.features: $ doing = def_NPC_doing_apparment(npc) else: $ doing = npc.doing menu: 'Watch [npc.name] [doing] in the [loc.name].': call lb_CCTV3(loc, npc) from _call_lb_CCTV3 'Not': pass return label lb_CCTV3(loc, npc): hide screen choose_img with Dissolve(0.3) show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.3) play sound "sounds/beep.mp3" # Если локация - апартаменты или нет if 'apatment_npc' in loc.features: $ doing = def_NPC_doing_apparment(npc) else: $ doing = npc.doing # Спит if doing == 'sleep': menu: 'The lights are off and nothing is visible.': pass # Моется if doing == 'washing': $ img = loc.image $ img_loc = im.Blur(img, 3.5) # Картинка нпс-а $ img_npc = npc_image(npc) show screen show_image_above("images/other/CCTV.png") show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.3) pause 1.5 $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) # Картинка нпс-а $ img_npc = npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(1.5) pause 1.5 $ count -= 1 play music "sounds/shower.mp3" fadein 1.0 show screen show_image(img_list=[img_loc]) with Dissolve(1.5) # Переодевается if doing == 'dressing': # Определяем предыдущий и следующий сет одежды при переодевании $ cur_line = check_time_table(npc.table) $ index_cur_line = npc.table.index(cur_line) $ index_prev_set = npc.table[index_cur_line - 1][7] $ index_next_line = npc.table[index_cur_line + 1][7] $ prev_set = copy_obj(npc.clothe_sets[index_prev_set]) $ next_set = copy_obj(npc.clothe_sets[index_next_line]) # Если в апартаментах if 'apatment_npc' in loc.features: $ cur_line = check_time_table(var_dict['table_apartment'][npc.id]) $ index_cur_line = var_dict['table_apartment'][npc.id].index(cur_line) $ index_prev_set = var_dict['table_apartment'][npc.id][index_cur_line - 1][7] $ index_next_line = var_dict['table_apartment'][npc.id][index_cur_line + 1][7] $ prev_set = copy_obj(npc.clothe_sets[index_prev_set]) $ next_set = copy_obj(npc.clothe_sets[index_next_line]) # Вычисление одинаковых предметов одежды для предыдущего и следующего сетов одежды (что бы не снимать их при переодевании) $ leftover_clothes = def_intersection(prev_set, next_set) $ npc.clothes = prev_set $ img = loc.image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) show screen show_image_above("images/other/CCTV.png") show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.3) pause 1.5 # Снимание одежды $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] if clothe not in leftover_clothes: if isinstance(clothe, Clothe): play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) $ img_npc = npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(1.5) pause 0.5 $ count -= 1 pause 1.0 # Одевание одежды $ rev_set = def_reverse_list(next_set) $ count = len(rev_set) while count > 0: $ clothe = rev_set[count - 1] if clothe not in leftover_clothes: if isinstance(clothe, Clothe): pause 1.5 play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.append(clothe) $ img_npc = npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(1.5) pause 0.5 $ count -= 1 # Мастурбирует if doing == 'masturbate': $ var_dict['location_2'] = var_dict['location'] $ var_dict['location'] = npc.location show screen show_image_above("images/other/CCTV.png") hide screen interaction call show_scene(npc, s_Masturbation_1, 0.7, True) from _call_show_scene_97 'She was laying on her back, legs spread slightly, with both hands fondling her perfect breasts. The soft light from the lamp covered her like a glow.' call show_scene(npc, s_Show_1, 0.7, True) from _call_show_scene_98 'I could just make out her sweet rose peaking from between her thighs, her nectar glistening on her lips. My cock twitched in my pants at the sight of her running her hands over her breasts.' call show_scene(npc, s_Masturbation_1, 0.7, True) from _call_show_scene_99 'She was gripping them softly, tweaking her nipples between thumb and forefinger. ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_72 'She moaned softly as she twisted her harden nipples and arched her back gracefully, filling her hands with her tits. ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_73 'Another moan escaped her lips as she tweaked first the right, then the left nipple, giving them the attention I wanted to give. She was lost in the sensations her hands were giving her and I loved the sight of her.' call rnd_sound(sl_moan) from _call_rnd_sound_74 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_100 play music "sounds/short_breath.mp3" 'A soft sigh spilled from her lips as her right hand slide down her ribcage, over her belly and between her legs. As she spread her sensual lips, she brought her index finger up between them to massage her swelling clit.' 'I wanted so much to crawl in bed with her and put my tongue where her hand was playing but this was a secret fansty of mine. To watch a woman pleasure herself when she thought she was along.' play music2 "sounds/short_breath_man.mp3" 'Watch the way she worked herself into frenzy using her thoughts and hands to ignite the flames inside. So I watch, one hand stroking my cock through my pants. My breath was as ragged as her was becoming.' call show_scene(npc, s_Masturbation_1, 0.7, True) from _call_show_scene_101 'Now, she had both hands back to fondling her tits. Squeezing them together. Pulling at the nipples making them harder then before. ' play music "sounds/deep_breath.mp3" 'She was moaning and sighing constantly now. Her lips had the sexy pout I loved seeing on them. I wanted to kiss those lips, tasting her passion but I was rooted to the spot waiting to see the climax I knew was to come.' 'She moved her hand back to her leg and started stroking her upper thigh as she worked towards her pussy. ' call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_102 'As I watched [npc.name] spread her legs wide and I could see her pussy as she cupped it with her hand and began to rub up and down masturbating. She rubbed her pussy and spread her outer lips and tickling her cunt hole with her index finger.' call rnd_sound(sl_moan) from _call_rnd_sound_75 call rnd_sound2(sl_penetration) from _call_rnd_sound2_5 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_103 'She moaned softly from time to time as she inserted finger into the pussy hole.' call play_animation(npc, a_Masturbation) from _call_play_animation_43 'She moaned softly from time to time as she inserted finger into the pussy hole.' 'Her finger were going in and out of her pussy faster and faster. ' call play_animation(npc, a_Masturbation_tempo) from _call_play_animation_44 'I could actually hear them as they moved in the wetness of her cunt. I could hear her mumbling something but I couldn\'t hear exactly what she saying, something about \'fucking her.... please fuck her....please\'.' call rnd_sound(sl_moan) from _call_rnd_sound_76 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_104 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_6 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_105 'She had her eyes closed and her mouth open now as she worked her hands both of them now on her body. Her left hand was rubbing her large left breast and her left hand was working on her cunt. ' call rnd_sound(sl_moan) from _call_rnd_sound_77 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_106 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_7 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_107 'She was so sexual, she looked so obscene as she bent her knees and opened them wide, very wide showing off her entire sex, all of her cunt was visible to me. ' call rnd_sound(sl_moan) from _call_rnd_sound_78 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_108 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_8 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_109 'I could see her hand completely now working on her pussy. She would lick her fingers from time to time tasting her wetness.' call rnd_sound(sl_moan) from _call_rnd_sound_79 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_110 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_9 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_111 'She was the look of pure beautiful erotic sex. My God how I wanted to rush in there and move between her open thighs and lick her until she grabbed my hair and thrust her cunt into my mouth! ' call rnd_sound(sl_moan) from _call_rnd_sound_80 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_112 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_10 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_113 'I wanted to eat her taste her and make her cum so badly! I stroked my cock faster now with my own need.' call rnd_sound(sl_moan) from _call_rnd_sound_81 call show_scene(npc, s_Masturbation_2_1) from _call_show_scene_114 pause 0.3 call rnd_sound2(sl_penetration) from _call_rnd_sound2_11 call show_scene(npc, s_Masturbation_2_2) from _call_show_scene_115 'It took maybe 10 seconds of that stimulation to make her cried out and lifted her body up off the bed as she fucked her hand so hard and so long cumming and cumming, and cumming. ' call female_orgasm from _call_female_orgasm_5 stop music fadeout 0.5 show screen show_image_above("images/other/CCTV.png") 'Her climax made my mouth wet and as I watched that lovely body fucking her hand and pumping up and down, I moaned loudly and shot my cum.' call male_orgasm from _call_male_orgasm_9 show screen show_image_above("images/other/CCTV.png") play music "sounds/soft_breath.mp3" play music2 "sounds/soft_breath_man.mp3" call show_scene(npc, s_Show_1, 0.7, True) from _call_show_scene_116 '...' '..' '.' stop music fadeout 0.5 stop music2 fadeout 0.5 $ var_dict['location'] = var_dict['location_2'] call minuts(30) from _call_minuts_32 play sound "sounds/beep.mp3" stop music fadeout 1.0 hide screen show_image_above hide screen show_image hide screen show_scn with Dissolve(0.7) return # Ничего из вышеперечисленного if doing not in ['sleep', 'washing', 'dressing', 'masturbate']: $ img = loc.image $ img_loc = im.Blur(img, 3.5) # Картинка нпс-а if npc.type == 'NPC': $ img_npc = npc_image(npc) else: $ img_npc = simply_npc_image(npc) show screen show_image_above("images/other/CCTV.png") show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.3) pause 100 call minuts(15) from _call_minuts_22 play sound "sounds/beep.mp3" stop music fadeout 1.0 hide screen show_image_above hide screen show_image with Dissolve(0.7) call lb_CCTV from _call_lb_CCTV_1 return # Переход в локацию label lb_goto_location125(loc): # Если локация - квартира if loc.type == 'квартира': $ var_dict['location_before_enter_apparment'] = var_dict['location'] call lb_interaction_apartment(loc) from _call_lb_interaction_apartment # Если локация в апартаментах НПС if hasattr(loc, 'features'): if 'apatment_npc' in loc.features: # Первый уровень доступа к квартире НПС (нельзя никуда) $ apart = var_dict['current_apartment'] $ owner = def_return_owner(apart) if owner.dict_skill['Submission'] < 3.0 and owner.dict_skill['Love'] < 3.0: $ img = apart.image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(owner) show screen show_image(img_list=[img_loc, img_npc]) hide screen my_GUI hide screen location hide screen popup_text with Dissolve(0.3) $ name_char = owner.name play sound "sounds/error.mp3" char_npc 'Where are you going?' talker "Need 3.0 Love or 3.0 Submission to walk freely around the apartment" hide screen show_image show screen my_GUI show screen location with Dissolve(0.3) jump main_cicle # Локация закрыта if hasattr(loc, 'table'): $ line = check_time_table(loc.table) if line != []: if line[5] == 'close': play sound "sounds/door_locked.mp3" $ txt = line[6] menu: '[txt]': # Возврат на карту call lb_goto_location125(sunsity_map) from _call_lb_goto_location125_3 jump main_cicle # Если "локация" на самом деле интеррактивный объект if loc.type == "интерактивный объект": call actions(loc) from _call_actions return # Проверка не занят ли локация $ dl_list = npc_location_list(loc) if dl_list != []: $ npc = dl_list[0] $ name_char = npc.name if npc.doing in ['dressing', 'washing']: play sound "sounds/door_locked.mp3" pause 1.0 char_npc '- I\'m [npc.doing], come back later.' jump main_cicle if npc.doing in ['masturbate']: play sound "sounds/door_locked.mp3" pause 1.0 char_npc '- Closed do not enter!' char_GG '- I wonder what is she doing there?' jump main_cicle # Если нпс спит if npc.doing == 'sleep': call npc_sleep(loc, npc) from _call_npc_sleep $ var_dict['location'] = loc jump main_cicle return $ var_dict['location'] = loc call minuts(loc.time) from _call_minuts_23 jump main_cicle return # Частный сыщик label lb_PI: show screen qwestion('Order an investigation from a private detective (increases Exploration).', 'lb_PI_2') with Dissolve(0.3) return label lb_PI_2: hide screen qwestion hide screen interaction hide screen my_GUI hide screen location show screen show_image(img='locations/PI.jpg') with Dissolve(0.3) # Если ссыщик занят if var_dict['PI_order'] != []: talker 'Sorry, but the detective is busy right now.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) jump main_cicle show screen choose_NPC('lb_PI_3') talker 'Select NPCs to investigate.' return label lb_PI_3: if var_dict['npc'] != '': $ npc = var_dict['npc'] $ exploration = npc.dict_skill['Exploration'] $ var_exp = 0.0 $ var_money = 0 $ var_days = 0 menu: 'Raise [npc.name]\'s Exploration from [exploration] to 1.0 (2000 р)' if exploration < 1.0: $ var_exp = 1.0 $ var_money = 2000 $ var_days = 1 'Raise [npc.name]\'s Exploration from [exploration] to 2.0 (5000 р)' if exploration >= 1.0 and exploration < 2.0: $ var_exp = 2.0 $ var_money = 5000 $ var_days = 2 'Raise [npc.name]\'s Exploration from [exploration] to 3.0 (9000 р)' if exploration >= 2.0 and exploration < 3.0: $ var_exp = 3.0 $ var_money = 9000 $ var_days = 3 'Raise [npc.name]\'s Exploration from [exploration] to 4.0 (15000 р)' if exploration >= 3.0 and exploration < 4.0: $ var_exp = 4.0 $ var_money = 15000 $ var_days = 4 'Close': pass if var_money > GG.money: play sound "sounds/error.mp3" talker 'Not enough money.' elif var_money != 0: $ GG.money -= var_money $ var_dict['PI_order'] = [npc, var_days, var_exp] play sound "sounds/money.mp3" talker 'The order has been placed. The result will be in [var_days] days.' show screen my_GUI show screen location show screen interaction(comp_GG) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия label lb_check_lake_act(npc, act): python: act_x = act if 'spank' in act: act_x = 'BDSM' if 'missionary_position' in act or 'doggy' in act or 'cowgirl' in act: act_x = 'vaginal' if 'striptease' in act or 'lap_dance' in act or 'party_show' in act or 'watch_masturbate' in act: act_x = 'exhibition' if 'handjob' in act: act_x = 'petting' if 'threesome' in act: act_x = 'male-domination' if 'lesbo_sex' in act: act_x = 'lesbian' if 'lesbo_sex' in act: act_x = 'threesome_MFF' lakes = '' for act_line in npc.character_traits: if act_line[0] in act_x: if act_line[1] == 'like': lakes = 'yes' if act_line[1] == 'doesn\'t like': lakes = 'not' if lakes == 'yes': talker 'Looks like she likes that.' $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Joy'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 $ npc.dict_skill['Submission'] += 4 talker '{color=#5fe624} Love: +100{p=0} Friend/Anger: +100{p=0} Joy: +100{/color}{p=0} {color=#d53232}Submission: +100{/color}' if lakes == 'not': talker 'She doesn\'t seem to be thrilled with this.' $ npc.dict_skill['Submission'] += 4 $ npc.dict_skill['Joy'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 $ npc.dict_skill['Love'] += 4 talker '{color=#5fe624}Submission: +100{/color}{p=0} {color=#d53232}Love: +100{p=0} {color=#d53232}Friend/Anger: +100{p=0} {color=#d53232}Joy: +100{p=0} {/color} ' return # Добавление секс взимодействий к статистике НПС-а label lb_add_sex_action_to_stat(npc, act): python: if 'insult' in act: npc.sex_with_GG['insult'] += 1 if 'kiss' in act: npc.sex_with_GG['kiss'] += 1 if 'brainwashing' in act: npc.sex_with_GG['brainwashing'] += 1 if 'handjob' in act: if 'handjob' not in npc.sex_with_GG: npc.sex_with_GG['handjob'] = 0 if 'masturbation' in act: if 'masturbation' not in npc.sex_with_GG: npc.sex_with_GG['masturbation'] = 0 npc.sex_with_GG['masturbation'] += 1 if 'petting' in act: npc.sex_with_GG['petting'] += 1 if 'cunnilingus' in act: npc.sex_with_GG['cunnilingus'] += 1 if 'spank' in act: npc.sex_with_GG['spank'] += 1 if 'blowjob' in act: npc.sex_with_GG['blowjob'] += 1 if 'missionary_position' in act or 'doggy' in act or 'cowgirl' in act: npc.sex_with_GG['pussy'] += 1 if 'anal' in act: npc.sex_with_GG['anal'] += 1 if 'striptease' in act: if 'striptease' not in npc.sex_with_GG: npc.sex_with_GG['striptease'] = 0 npc.sex_with_GG['striptease'] += 1 if 'lap_dance' in act: if 'lap_dance' not in npc.sex_with_GG: npc.sex_with_GG['lap_dance'] = 0 npc.sex_with_GG['lap_dance'] += 1 if 'party_show' in act: if 'striptease' not in npc.sex_with_GG: npc.sex_with_GG['striptease'] = 0 npc.sex_with_GG['striptease'] += 1 if 'doggy' in act: npc.sex_with_GG['pussy'] += 1 if 'against_wall' in act: npc.sex_with_GG['anal'] += 1 return # Отображать/не отображать меню с информацией об НПС label lb_toggle_npc_info: if var_dict['npc_info_toggle'] == 'not': $ var_dict['npc_info_toggle'] = 'yes' else: $ var_dict['npc_info_toggle'] = 'not' return label lb_toggle_npc_info_skills: if var_dict['lb_toggle_npc_info_skills'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'yes' $ var_dict['lb_toggle_npc_info_feat'] = 'not' $ var_dict['lb_toggle_npc_info_sex'] = 'not' $ var_dict['lb_toggle_npc_info_gift'] = 'not' $ var_dict['lb_toggle_npc_info_sex2'] = 'not' $ var_dict['lb_toggle_npc_info_table'] = 'not' else: $ var_dict['lb_toggle_npc_info_skills'] = 'not' return label lb_toggle_npc_info_feat: if var_dict['lb_toggle_npc_info_feat'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'not' $ var_dict['lb_toggle_npc_info_feat'] = 'yes' $ var_dict['lb_toggle_npc_info_sex'] = 'not' $ var_dict['lb_toggle_npc_info_gift'] = 'not' $ var_dict['lb_toggle_npc_info_sex2'] = 'not' $ var_dict['lb_toggle_npc_info_table'] = 'not' else: $ var_dict['lb_toggle_npc_info_feat'] = 'not' return label lb_toggle_npc_info_sex: if var_dict['lb_toggle_npc_info_sex'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'not' $ var_dict['lb_toggle_npc_info_feat'] = 'not' $ var_dict['lb_toggle_npc_info_sex'] = 'yes' $ var_dict['lb_toggle_npc_info_gift'] = 'not' $ var_dict['lb_toggle_npc_info_sex2'] = 'not' $ var_dict['lb_toggle_npc_info_table'] = 'not' else: $ var_dict['lb_toggle_npc_info_sex'] = 'not' return label lb_toggle_npc_info_gift: if var_dict['lb_toggle_npc_info_gift'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'not' $ var_dict['lb_toggle_npc_info_feat'] = 'not' $ var_dict['lb_toggle_npc_info_sex'] = 'not' $ var_dict['lb_toggle_npc_info_gift'] = 'yes' $ var_dict['lb_toggle_npc_info_sex2'] = 'not' $ var_dict['lb_toggle_npc_info_table'] = 'not' else: $ var_dict['lb_toggle_npc_info_gift'] = 'not' return label lb_toggle_npc_info_sex2: if var_dict['lb_toggle_npc_info_sex2'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'not' $ var_dict['lb_toggle_npc_info_feat'] = 'not' $ var_dict['lb_toggle_npc_info_sex'] = 'not' $ var_dict['lb_toggle_npc_info_gift'] = 'not' $ var_dict['lb_toggle_npc_info_sex2'] = 'yes' $ var_dict['lb_toggle_npc_info_table'] = 'not' else: $ var_dict['lb_toggle_npc_info_sex2'] = 'not' return label lb_toggle_npc_info_table: if var_dict['lb_toggle_npc_info_table'] == 'not': $ var_dict['lb_toggle_npc_info_skills'] = 'not' $ var_dict['lb_toggle_npc_info_feat'] = 'not' $ var_dict['lb_toggle_npc_info_sex'] = 'not' $ var_dict['lb_toggle_npc_info_gift'] = 'not' $ var_dict['lb_toggle_npc_info_sex2'] = 'not' $ var_dict['lb_toggle_npc_info_table'] = 'yes' else: $ var_dict['lb_toggle_npc_info_table'] = 'not' return # Настройки заказа в кофе label lb_cafe_order2_coffee: # Кофе call lb_cafe_order2(name='Coffee', water=50.0, pep=15.0, food=0.0, joy=0.0, money=319) from _call_lb_cafe_order2 return label lb_cafe_order2_hot_tea: # Горячий чай call lb_cafe_order2(name='Hot Tea', water=50.0, pep=10.0, food=0.0, joy=0.0, money=239) from _call_lb_cafe_order2_1 return label lb_cafe_order2_cappuccino: # Капучинно call lb_cafe_order2(name='Cappuccino', water=40.0, pep=10.0, food=5.0, joy=5.0, money=399) from _call_lb_cafe_order2_2 return label lb_cafe_order2_french_vanilla: # Французская ваниль call lb_cafe_order2(name='French vanilla', water=40.0, pep=5.0, food=0.0, joy=10.0, money=399) from _call_lb_cafe_order2_3 return label lb_cafe_order2_chocolate: # Капучинно call lb_cafe_order2(name='Chocolate', water=40.0, pep=5.0, joy=20.0, money=479) from _call_lb_cafe_order2_4 return # Открыть меню кофе для двоих label lb_coffee_order2(npc): $ var_dict['npc2'] = npc # Проверка на поторяющиеся действие if npc.dict_marks['tear_cafe'] > 0: menu: 'I already treated [npc.name] here today.': return # Поход в кафе # Проверка на условие # Exploration 0.2 if def_check_if_npc_skill(npc=npc, skill='Exploration', vol=0.2) == False: return call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1) from _call_lb_images2_26 char_GG '- Let\'s go to the cafe?' # Проверка на открытость if var_dict['Hour'] < 10 or var_dict['Hour'] > 19: char_npc '- With joy' call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_sad') from _call_lb_images2_27 char_npc '- But unfortunately the cafe is closed now.' call lb_cange_emotion (npc=npc, emotion='_norm') from _call_lb_cange_emotion_155 hide screen show_image_fix_size with Dissolve(0.3) return call lb_images2(loc='curr', npc=npc, loc_blur=1, npc_show=1, emotion='_smile') from _call_lb_images2_28 char_npc 'With joy!' hide screen show_image_fix_size show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.3) menu: 'Over time.': pass call lb_cange_emotion (npc=npc, emotion='_norm') from _call_lb_cange_emotion_156 show screen interaction(coffee_order2) hide screen show_image_above with Dissolve(1.2) return # Настройки заказа в кофе label lb_cafe_order_coffee: # Кофе call lb_cafe_order(name='Coffee', water=50.0, pep=15.0, food=0.0, joy=0.0, money=199) from _call_lb_cafe_order return label lb_cafe_order_hot_tea: # Горячий чай call lb_cafe_order(name='Hot Tea', water=50.0, pep=10.0, food=0.0, joy=0.0, money=149) from _call_lb_cafe_order_1 return label lb_cafe_order_cappuccino: # Капучинно call lb_cafe_order(name='Cappuccino', water=40.0, pep=10.0, food=5.0, joy=5.0, money=249) from _call_lb_cafe_order_2 return label lb_cafe_order_french_vanilla: # Французская ваниль call lb_cafe_order(name='French vanilla', water=40.0, pep=5.0, food=0.0, joy=10.0, money=249) from _call_lb_cafe_order_3 return label lb_cafe_order_chocolate: # Капучинно call lb_cafe_order(name='Chocolate', water=0.0, pep=5.0, food=10.0, joy=20.0, money=299) from _call_lb_cafe_order_4 return # Закрыть меню кафе label lb_close_interaction: hide screen interaction with Dissolve(0.3) return # Вход из меню взаимодействий - одевание и добавление времени label lb_return_to_NPC_Action(npc, timeX): if npc.clothes[0] == 'Nude' and var_dict['var_npc_fantasy'] == '': play sound "sounds/clothe.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.7) pause 1.0 # Одевание в текущую по рассписанию одежду python: for line in npc.table: if (line[0] == 'on' and (var_dict['DataD'] >= 1 and var_dict['DataD'] <= 5)) or (line[0] == 'off' and var_dict['DataD'] > 5): table_minutes_1 = line[1]*60 + line[2] table_minutes_2 = line[3]*60 + line[4] if cur_minutes >= table_minutes_1 and cur_minutes <= table_minutes_2: # Копирование сета одежды без привязки ссылкой npc.clothes = npc.clothe_sets[line[7]].copy() hide screen show_image_above with Dissolve(1.2) hide screen NPC_show with Dissolve(0.5) call minuts(timeX) from _call_minuts_25 else: hide screen NPC_show with Dissolve(0.5) call minuts(timeX) from _call_minuts_26 return # Взаимодействие с простым персонажем label lb_simply_action(npc): call lb_show_npc(npc, 0.3) from _call_lb_show_npc_18 $ name_char = npc.name # Не знаком с ГГ if npc.dict_npc['know_GG'] == 'not': call lb_check_familiar(npc) from _call_lb_check_familiar_1 # Устройство на работу в редакцию if npc == npc_chief_editor and var_dict['markers']['open_my_work_sit_in_editorial'] == 0: char_npc '- Decided to get a job with us?' menu: 'Yes': char_npc 'Okay, show your articles.' show screen show_image_above("images/other/bgd_black.png") with Dissolve(0.7) menu: 'Over time.': pass hide screen show_image_above with Dissolve(0.5) if GG.dict_skill['Writing_pract'] < 3.0: play sound "sounds/error.mp3" char_npc '- Sorry, but your level is not high enough.' 'Practical writing level 3.0 required.' else: char_npc '- Well, your level is not bad, you can work.' play sound "sounds/level_UP.mp3" $ var_dict['markers']['open_my_work_sit_in_editorial'] = 1 $ editorial.locations.append(GG_sit_editorial) 'You can now work in the editorial office.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return 'Not': show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return # Знаком с ГГ if npc.dict_npc['know_GG'] == 'yes': char_npc '- How are you, [GG.name]?' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return # Позвать с собой label go_to(npc): call lb_show_npc(npc, 0.3) from _call_lb_show_npc_19 $ name_char = npc.name $ time_stat = npc.dict_skill['Love'] if npc.dict_skill['Submission'] > npc.dict_skill['Love']: $ time_stat = npc.dict_skill['Submission'] $ time_stat = int(time_stat * 5.0) # Не пошла с ГГ if time_stat < 5: $ list_order = [1, 2, 3] $ oreder = random.choice(list_order) if oreder == 1: char_npc '- Sorry, I\'m busy.' if oreder == 2: char_npc 'I don\'t want to waste time.' if oreder == 3: char_npc 'Let\'s do it next time.' play sound "sounds/error.mp3" talker 'Need more Love or Submission' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Пошла с ГГ $ var_dict['go_npc'] = [npc, time_stat] char_npc '- Where are we going?' char_GG '- You will find out.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return # Заканчивание следования label quit_follow(npc): call lb_show_npc(npc) from _call_lb_show_npc_20 $ name_char = npc.name char_npc '- Sorry, [GG.name], but I have to go. True.' $ var_dict['go_npc'] = [] show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return # Принуждения label lb_reluctant_actions(npc, act): # Проверка на количество взаимодействий if npc.dict_marks['reluctant_actions'] >= 3: show screen mesage('I must give her a rest.') show screen my_GUI show screen location show screen NPC_show(npc) with Dissolve(0.3) return # Проверка на наличие свидетелей call lb_check_witness(npc, act) from _call_lb_check_witness call lb_show_npc(npc) from _call_lb_show_npc_21 $ name_char = npc.name # Insult - оскорбление if act == 'insult': # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act $ list_insults = ['slut', 'bitch', 'cunt', 'whore'] $ insult = random.choice(list_insults) # Оскорбление $ list_order = [1, 2, 3] $ oreder = random.choice(list_order) if oreder == 1: char_GG '- Hey [insult], how you doing?' if oreder == 2: char_GG '- Hi [insult].' if oreder == 3: char_GG '- Nice weather isn\'t it? [insult].' # Разозлилась if npc.dict_skill['Submission'] < 1.0: call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_10 call lb_show_npc(npc) from _call_lb_show_npc_22 play sound "sounds/error.mp3" $ list_order = [1, 2, 3] $ oreder = random.choice(list_order) if oreder == 1: char_npc '- My name is [npc.name], NOT [insult]!' if oreder == 2: char_npc '- What did you just call me?' char_GG '- Nothing.' char_npc '- Yes you did, you called me a [insult]! Don\'t call me a [insult]!' if oreder == 3: char_npc '- Why are you insulting me?' char_npc '- Never do that again!' menu: 'To apologize.': char_GG '- Sorry.' 'Continued to offend.': char_GG '- You\'re a [list_insults[0]], a [list_insults[1]], a [list_insults[2]], and a [list_insults[3]]. I ain\'t never going to call you anything else but what you are.' call slap_NPC from _call_slap_NPC talker 'My cheek got a slap in the face.' talker 'Now I really pissed her off.' $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Submission'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#d53232} Love: +100{/color}{p=0} {color=#d53232}Friend/Anger: +100{/color}{p=0} {color=#5fe624}Submission: +100{/color}' # Промолчала if npc.dict_skill['Submission'] >= 1.0 and npc.dict_skill['Submission'] < 2.0: call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_11 call lb_show_npc(npc) from _call_lb_show_npc_23 talker '[npc.name] looked at me angrily, but said nothing.' talker 'Looks like she was getting used to being insulted.' # Приняла оскорбление if npc.dict_skill['Submission'] >= 2.0: call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_12 call lb_show_npc(npc) from _call_lb_show_npc_24 talker '[npc.name] opened her eyes obediently accepting the insult.' char_GG '- Yes, a [insult] is so much better.' $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Submission'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 talker '{color=#d53232} Love: +100{/color}{p=0} {color=#d53232}Friend/Anger: +100{/color}{p=0} {color=#5fe624}Submission: +100{/color}' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_13 # Счётчик call lb_add_sex_action_to_stat(npc, act) from _call_lb_add_sex_action_to_stat $ npc.dict_marks['reluctant_actions'] += 0 hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) jump main_cicle return # kiss_1 if act == 'kiss_1': if npc.dict_skill['Submission'] < 1.0: call off_reluctant_actions(npc, 1.0) from _call_off_reluctant_actions # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_1 char_npc '- So what do you want?' char_GG '- You know what I want.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_14 call lb_show_npc(npc) from _call_lb_show_npc_25 talker 'I felt hot tears come to her eyes.' char_GG '- Come here [npc.name].' call rnd_sound(sl_crying) from _call_rnd_sound_11 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_4 call lb_show_npc(npc) from _call_lb_show_npc_26 talker 'Slowly she moved to stand before me. Her tear-filled eyes looked up at me.' char_GG '- Kiss me.' call approach_npc(npc) from _call_approach_npc_1 call rnd_sound(sl_kiss) from _call_rnd_sound_12 talker '[npc.name] leaned up and pressed her closed lips against me.' call lb_show_npc(npc) from _call_lb_show_npc_27 char_GG '- You can do better than that. {p=0} I said when she moved away.' call approach_npc(npc) from _call_approach_npc_2 call rnd_sound(sl_kiss) from _call_rnd_sound_13 talker 'Placing her hands on my shoulders, [npc.name] leaned against me and covered my mouth with hers.' call rnd_sound(sl_kiss) from _call_rnd_sound_14 talker 'She felt my lips part beneath hers and my tongue slide into her mouth. My arms circled her waist and pulled up her tight against me. My tongue met and duelled with hers.' call rnd_sound(sl_kiss) from _call_rnd_sound_15 talker 'It only lasted seconds but [npc.name]\'s mouth felt ravished.' call lb_show_npc(npc) from _call_lb_show_npc_28 char_GG '- Not bad.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_5 # kiss_2 if act == 'kiss_2': if npc.dict_skill['Submission'] < 1.0: call off_reluctant_actions(npc, 1.0) from _call_off_reluctant_actions_1 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_2 call touching_act(npc, 'stroke cheek, touch lips') from _call_touching_act talker 'I cupped her cheek in my palm, my thumb rubbing across her bottom lip.' char_GG ' - You have such an inviting mouth. -{p=0} I said, leaning my head. ' char_GG ' - Kiss me [npc.name]. - {p=0} My breath fanned against her lips.' call approach_npc(npc) from _call_approach_npc_3 call rnd_sound(sl_kiss) from _call_rnd_sound_16 talker 'I felt her lips on mine. Hesitantly at first and then firmer. Her tongue came out and licked at my lower lip. ' call rnd_sound(sl_kiss) from _call_rnd_sound_17 talker 'I parted my lips and sucked her tongue inside. Her caught her gasp and fought the urge to wrap my arms around her and pull her body against my. Instead, I lifted my head.' char_GG 'Do you know what I want right now, slut?' # brainwashing_1 if act == 'brainwashing_1': if npc.dict_skill['Submission'] < 2.0: call off_reluctant_actions(npc, 2.0) from _call_off_reluctant_actions_2 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_3 char_npc '- So what do you want?' play sound "sounds/male_chuckle_short.mp3" char_GG '- You know what I want.' play sound "sounds/steps.mp3" call approach_npc(npc) from _call_approach_npc_4 talker 'I chuckled as I stepped closer. I was inches from her now. Looking down at her. She was a very attractive woman. I wanted her from the moment they were introduced. There was something about her that called to me.' talker '[npc.name] had to tilt her head to look at me. She hated how vulnerable that made her feel.' char_npc '- I hate you [GG.name]. {p=0} She hissed softly.' char_GG '- Hate me all you want [npc.name]. I prefer it. {p=0} I raised my hand and ran his fingers lightly over her smooth cheek.' call lb_show_npc(npc) from _call_lb_show_npc_29 call touching_act(npc, 'hand on the cheek') from _call_touching_act_1 talker '[npc.name] pulled her face away and took a step back. ' talker 'I reached out my hand and grabbed her by the back of the neck, bringing her body flush against mine.' hide screen show_in_senter with Dissolve(0.5) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_15 call approach_npc(npc, 0.3) from _call_approach_npc_5 play sound "sounds/hhe.wav" char_GG '- I have wanted you from the moment I saw you. So cool. So sophisticated. But I saw through your charade.' char_npc '- What are you talking about?' char_GG '- You want me. You want me to fuck that up tight pussy of yours. You want to suck my eight inch cock and swallow all my cum, don\'t you baby.' char_npc '- You\'re crazy. {p=0} She said, trying to pull away.' char_GG '- Crazy?' char_GG '- Maybe I am crazy. And yet, here I am, with you, at my mercy.' # brainwashing_2 if act == 'brainwashing_2': if npc.dict_skill['Submission'] < 2.0: call off_reluctant_actions(npc, 2.0) from _call_off_reluctant_actions_3 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_4 char_GG '- Kneel.' play sound "sounds/clothe.mp3" call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_16 call down_npc(npc) from _call_down_npc talker 'A little confused that I just didn\'t throw her to the bed and fuck her, [npc.name] knelt. ' char_GG '- Look down.' talker 'She lowered her eyes.' char_GG '- Very good slut.' talker 'With that, her head shot up.' char_GG '- Keep you eyes down!{p=0} I snapped.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_6 call down_npc(npc, 0.3) from _call_down_npc_1 char_GG '- From now on, you will be my slut.' char_GG '- You will do anything to please me. Refusing is not an option. You will not talk unless I tell you. You will do nothing, without my permission. Is that understood, slut?' talker '[npc.name] nodded.' char_GG '- Good.' talker 'She felt my hand on her shoulders. My fingers sifting through her hair. ' char_GG '- I will enjoy playing with you, slut.{p=0} I said, my face hard as I looked down at her.' talker '[npc.name] felt panic. So serious. So dominating. Deep down, she knew I wouldn\'t hurt her. I wanted to dominate her. Prove my power over her. ' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_7 # brainwashing_3 if act == 'brainwashing_3': if npc.dict_skill['Submission'] < 2.0: call off_reluctant_actions(npc, 2.0) from _call_off_reluctant_actions_17 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_32 call dialogue('_dialogues/act_brainwashing_3_submission.json', npc) from _call_dialogue_49 # petting_1 if act == 'petting_1': if npc.dict_skill['Submission'] < 3.0: call off_reluctant_actions(npc, 3.0) from _call_off_reluctant_actions_4 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_5 call show_scene(npc, s_Petting_2) from _call_show_scene call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_4 talker 'My fingers skimmed up the backs of her calves, the insides of her thighs until they reach her pussy.' call show_scene(npc, s_Petting_3) from _call_show_scene_1 call rnd_sound(sl_penetration) from _call_rnd_sound_18 char_GG '- Perfect. {p=0} I said, dipping my finger into her. ' char_GG '- You are soaked [npc.name].' call rnd_sound(sl_crying) from _call_rnd_sound_19 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_8 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_5 talker '[npc.name] closed her eyes and fought back sobs. God help her, she was! Her ass was on fire and her pussy was dripping wet. It practically throbbed.' char_GG '- Do you want to cum, slut? {p=0} I asked, my finger slowly moving in and out of her aching cunt.' play music "sounds/crying.mp3" call play_animation(npc, a_fingering, 6) from _call_play_animation call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_9 call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_10 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_6 char_npc '- Yes.{p=0} [npc.name] sobbed.' talker 'She didn\'t understand why, but her body begged for release.' play sound "sounds/male_chuckle_short.mp3" call show_scene(npc, s_Petting_6) from _call_show_scene_2 call rnd_sound(sl_penetration) from _call_rnd_sound_20 char_GG '- Only with my permission, slut. {p=0} I said, my thumb joining in to rub her clit.' stop music fadeout 0.7 char_npc '- Please. {p=0} She whispered.' call show_scene(npc, s_Petting_3_1) from _call_show_scene_3 char_GG '- Beg me slut. Beg me to let you cum.' char_npc '- Please Master...please let me cum. Please.{p=0} She begged.' char_GG '- Yes. You may cum my slut.' call show_scene(npc, s_Petting_7) from _call_show_scene_4 call rnd_sound(sl_penetration) from _call_rnd_sound_21 talker 'I jammed two fingers into her pussy and [npc.name]...' call female_orgasm from _call_female_orgasm call rnd_sound(sl_cum) from _call_rnd_sound_22 talker '...exploded. She arched her back, threw her head back and cried out.' char_GG '- That\'s it [npc.name]! {p=0} I encouraged, his hand getting coated in her sweet cum.' call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_11 # masturbation_1 if act == 'masturbation_1': if npc.dict_skill['Submission'] < 3.0: call off_reluctant_actions(npc, 3.0) from _call_off_reluctant_actions_18 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_11 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_33 call dialogue('_dialogues/act_masturbation_1_submission.json', npc) from _call_dialogue_50 # masturbation_2 if act == 'masturbation_2': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_19 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_12 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_34 call dialogue('_dialogues/act_masturbation_2_submission.json', npc) from _call_dialogue_51 # striptease_1 if act == 'striptease_1': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_14 # Проверка открыто ли взаимодействие if def_check_open_action(npc, 'open_strip_action'): # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_25 call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_76 call lb_show_npc(npc) from _call_lb_show_npc_97 char_npc '- I\'m not a stripper!' char_GG '- No, of course not.' char_GG '- You are a thing; a toy, whose sole purpose is to bring me pleasure. Say it; you are my toy.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_77 call lb_show_npc(npc) from _call_lb_show_npc_98 char_npc 'I...I am...y-your...toy.' char_GG '- Ok.' # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_99 play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_24 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_25 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_26 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_27 pause 1.0 call lb_show_npc(npc) from _call_lb_show_npc_99 hide screen show_image_above with Dissolve(0.5) char_GG '- You know what to do.' play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" 'I turned on music on my smartphone.' # Стриптиз char_GG '- Remember [npc.name], your only goal is to make my dick hard. You have until the end of this song to do it. ' char_GG '- Go!' show screen show_image_above('scenes/black.png') with Dissolve(1.0) '[npc.name] began to sway a bit awkwardly. It was obvious she had barely danced to any modern music, much less stripped to it.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_78 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_64 call show_scene(npc, s_Strip_1) from _call_show_scene_258 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_259 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_260 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_261 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_262 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_263 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_264 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_265 pause 1.0 char_GG '- Take off your clothes already!' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_79 call lb_show_npc(npc) from _call_lb_show_npc_100 'She began to unbutton her collar, her hands trembling with excitement as it fell away from her.' play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_100 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_65 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_80 call lb_show_npc(npc) from _call_lb_show_npc_101 hide screen show_image_above 'She had to fight so hard not to begin sobbing in humiliation as I watched.' char_GG '- Now gloves.' '[npc.name] did as she was told.' $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_66 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_81 call lb_show_npc(npc) from _call_lb_show_npc_102 'The uncomfortable look on her face and her stiff posture told my she didn\'t spend much time naked, much less in front of man.' 'God this is perfect.' char_GG '- Bra too.' $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_show_npc(npc) from _call_lb_show_npc_103 menu: 'Continue': pass show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_67 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_266 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_267 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_268 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_269 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_270 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_271 pause 2.0 char_npc '- Take off your clothes completely!' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" '[npc.name] was taking my orders now reluctantly taking off her panties, revealing her tits and pussy.' call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_272 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_273 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_274 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_275 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_276 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_277 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_278 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_279 pause 2.0 show screen show_image_above('scenes/black.png') hide screen show_image_in_position_2 with Dissolve(0.5) stop music fadeout 1.0 play music2 "sounds/deep_breath.mp3" $ npc.clothes = ['Nude'] call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_82 call lb_show_npc(npc) from _call_lb_show_npc_104 hide screen show_image_above with Dissolve(0.5) '[npc.name] bit her lip, trying to think while standing in front of me stark naked and fighting back tears.' 'Perfect.' char_GG '- Now bend over and spread your cheeks, let me see that pussy [npc.name].' '[npc.name] hesitated, uncomfortable with what I was asking.' stop music2 fadeout 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call show_scene(npc, s_Strip_5) from _call_show_scene_280 '- ...yes sir, - She said through her tears as she bent over, placing her hands on either side of her ass and spreading them for I to see.' hide screen show_image_above with Dissolve(0.5) 'I could only smile at her humiliation.' char_GG '- That\'s a good girl, now look back at me.' call lb_show_npc(npc, dis=1.0) from _call_lb_show_npc_105 char_GG '- So far, you are not dancing very well.' char_npc '- Sorry sir next time I\'ll try better.' char_GG '- Hope it will be so, bitch.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_101 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_102 # Стриптиз не открыт else: 'Striptease is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) return # lap_dance_1 if act == 'lap_dance_1': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_15 # Проверка открыто ли взаимодействие if def_check_open_action(npc, 'open_lap_dance_action'): # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_10 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_26 # Приватный танец menu: 'I turned on music on my smartphone.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 # Новый контент - Приватный танец char_GG '- Give me a lap dance. {p=0} I said harshly. ' talker '[npc.name] winced as if she was slapped.' call show_scene(npc, s_Show_3, dis=0.7) from _call_show_scene_281 talker 'Then, trembling and unsure, she turned around. ' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_125 hide screen show_image_above with Dissolve(1) talker 'She was about to sit in my lap when I suddenly slapped her ass, hard enough to humiliate her and show her who was in charge.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_68 call rnd_sound(sl_moan) from _call_rnd_sound_126 '[npc.name] cried out wordlessly, looking back at me with surprise.' 'I met her gaze with authority.' char_GG 'Don\'t pretend you didn\'t like that slut. Whores who hesitate get spanked.' call rnd_sound(sl_crying) from _call_rnd_sound_127 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_103 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_69 call show_scene(npc, s_Lap_dance_1_2, dis=0.7) from _call_show_scene_282 '[npc.name]\'s lips trembled as she sat down on my lap.' char_npc '- Good slut. Don\'t just sit there. Make me hard you dirty whore.' call play_animation(npc, a_lap_dance_1) from _call_play_animation_63 talker '[npc.name] began to wiggle her ass on my lap. The movement was awkward, but it made me hornier anyway knowing that I could this kind of control over her.' call show_scene(npc, s_Petting_1) from _call_show_scene_283 talker 'I began groping her, mauling her tits...' call show_scene(npc, s_Petting_8) from _call_show_scene_284 talker '...and squeezing her nipples.' call rnd_sound(sl_scream) from _call_rnd_sound_128 talker '[npc.name]\'s entire body stiffened, and she cried out in quietly in shock, but I could feel her nipples begin to harden. ' call show_scene(npc, s_Lap_dance_2_1) from _call_show_scene_285 talker 'I slowly moved one of my hands down her side onto her thigh. She sucked in, but didn\'t stop me.' char_GG '- Good slut.{p=0}I whispered in her ear. ' char_GG '- Do you want me to play with your clit like a good whore?{p=0}Talk I while my hand moved slowly closer to her pussy.' talker 'Last step slut.' char_npc '- ye...yes, please master.' talker 'Most Strip clubs don\'t allow pussy play. Oh well, you won\'t make a decent stripper but I think you\'ll do fine as my whore. ' stop music fadeout 7.5 talker 'I savagely forced my hand between her legs and began to rub [npc.name]\'s clit.' call rnd_sound(sl_penetration) from _call_rnd_sound_129 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_286 play music "sounds/short_breath.mp3" talker '[npc.name] began to breathe faster, eventually letting out a reluctant moan as I worked her pussy faster.' call rnd_sound(sl_moan_soft) from _call_rnd_sound_130 call play_animation(npc, a_lap_dance_2) from _call_play_animation_64 talker '[npc.name] was trying hard not to enjoy it, but every few seconds a moan would escape her lips. She was openly crying now, both from pleasure and the degradation she was being subject to.' call rnd_sound(sl_moan) from _call_rnd_sound_131 char_npc '- Plea...please master, I need it.' call play_animation(npc, a_lap_dance_2_tempo) from _call_play_animation_65 call rnd_sound(sl_penetration) from _call_rnd_sound_132 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_287 stop music '[npc.name] trembled.' call female_orgasm from _call_female_orgasm_9 char_GG '- Good girl [npc.name].{p=0}I said as I pinched her nipples.' call show_scene(npc, s_Petting_8) from _call_show_scene_288 char_GG '- Ready for some ... extra work?' call rnd_sound(sl_crying) from _call_rnd_sound_133 talker '[npc.name] let out a sob, knowing full well what I was asking for. ' call show_scene(npc, s_Show_3) from _call_show_scene_289 talker 'I responded by grabbing her hair and pushing her off his lap. ' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_134 hide screen show_image_above with Dissolve(1) pause 0.7 show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_135 hide screen show_image_above with Dissolve(1) pause 0.7 show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_136 hide screen show_image_above with Dissolve(1) pause 0.7 talker 'I gave her three sharp slaps on the ass.' char_GG '- Well slut? ' talker '[npc.name] had to actively stop herself from crying or moaning so she could answer.' char_npc '-Yes.{p=0}She asked, the desperation coming through between her cries.' play sound "sounds/male_laugh.mp3" talker 'I laughed.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_104 else: # Приватный танец не открыт 'Lap dance is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) return # party_show_1 if act == 'party_show_1': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_16 # Проверка открыто ли взаимодействие else: if def_check_open_action(npc, 'open_strip_show_action'): # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_29 show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Over time. And a lot of calls.': pass play music "sounds/party_crowd.mp3" fadein 2.5 $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_55 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_56 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_57 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_58 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_118 call lb_show_npc2(npc) from _call_lb_show_npc2_52 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" talker 'The whore appeared in a suitable outfit.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Turn on the music.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_105 hide screen show_image_above with Dissolve(1.0) call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_522 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_523 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_524 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_525 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_526 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_527 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_528 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_529 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_530 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_531 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_532 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_533 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_534 pause 1.0 call lb_show_npc2(npc) from _call_lb_show_npc2_53 hide screen show_image_in_position_2 with Dissolve(0.5) pause 1.5 talker '- Show your boobs!' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_119 call lb_show_npc2(npc) from _call_lb_show_npc2_54 talker '- Yes! Boobs, whore, boobs!{p=0} The rest supported.' talker '[npc.name] froze for a second and began to undress to the music.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_120 call lb_show_npc2(npc) from _call_lb_show_npc2_55 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_121 call lb_show_npc2(npc) from _call_lb_show_npc2_56 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_122 call lb_show_npc2(npc) from _call_lb_show_npc2_57 pause 1.0 talker 'Then she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_535 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_106 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_536 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_537 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_538 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_539 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_540 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_541 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_542 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_543 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_544 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_123 call lb_show_npc2(npc) from _call_lb_show_npc2_58 hide screen show_image_above with Dissolve(0.5) talker '- Panties!{p=0}- Take off your panties!{p=0}The audience shouted.' talker '[npc.name] looked at me pleadingly, but I didn’t react.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_118 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_124 call lb_show_npc2(npc) from _call_lb_show_npc2_59 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_107 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'Naked, the girl listened to the dirty words while tears welled up in her eyes. But she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_545 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_546 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_547 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_548 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_549 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_550 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_551 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_552 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_553 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_554 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_555 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_556 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_557 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_558 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_559 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_560 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_561 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_562 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_563 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_125 call lb_show_npc2(npc) from _call_lb_show_npc2_60 stop music fadeout 1.5 play music "sounds/party_crowd.mp3" fadein 1.5 show screen show_image_above('quests/crowd.png') hide screen show_image_in_position_2 with Dissolve(0.5) char_GG '- How do you like our little performance?' play sound "sounds/cheer_crowd.mp3" call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_126 call lb_show_npc2(npc) from _call_lb_show_npc2_61 char_GG '- I see you liked it. ' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_119 hide screen show_image_above with Dissolve(0.5) # Вечеринковое шоу не открыто else: 'Party show is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # spank_1 if act == 'spank_1': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_5 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_1 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_6 char_GG '- Now fall down on your hands and knees.' play sound "sounds/clothe.mp3" call show_scene(npc, s_Show_2) from _call_show_scene_5 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_7 talker '[npc.name] took the required position and waited for his next command.' call show_scene(npc, s_Show_2_2) from _call_show_scene_6 call rnd_sound(sl_moan_soft) from _call_rnd_sound_23 talker 'She felt warm hands caress her ass. She had been wet. ' call show_scene(npc, s_Show_2) from _call_show_scene_7 talker 'She needed to cum.' play sound "sounds/whip.mp3" call show_scene(npc, s_Spank_1_1, 0.3) from _call_show_scene_8 call show_scene(npc, s_Spank_1_2, 0.3) from _call_show_scene_9 call rnd_sound(sl_scream) from _call_rnd_sound_24 call rnd_sound2(sl_spank) from _call_rnd_sound2 call show_scene(npc, s_Show_2, 1.5) from _call_show_scene_10 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_8 talker 'She wasn\'t ready for that and gave a startled yelp.' char_GG '- Not a sound slut. One more and you will be punished.' char_npc '- Yes, Master.' talker '[npc.name] bit her bottom lip to stifle the cries as I used my big hands to spank her unmercilessly.' call play_animation(npc, a_spank, 3) from _call_play_animation_1 char_GG '- Do you want me to stop, slut?' char_npc '- Only if it pleases you to Master" She said, her voice catching.' char_GG '- It pleases me to give you four more. I want you to count them and then thank me for them. Is that understood?' char_npc '- Yes Master.' call play_animation(npc, a_spank, 1) from _call_play_animation_2 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_12 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_9 char_npc '- One. Thank you Master.' call play_animation(npc, a_spank, 1) from _call_play_animation_3 char_npc '- Two. Thank you Master.' call play_animation(npc, a_spank, 1) from _call_play_animation_4 char_npc '- Three. Thank you Master.' call play_animation(npc, a_spank, 1) from _call_play_animation_5 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_10 char_npc '- Four. Thank you Master.' call show_scene(npc, s_Show_2_1, 1.5) from _call_show_scene_11 talker 'She was close to tears and close to cumming. She couldn\'t believe her bodies reaction to the spanking she just received. Her ass was on fire and yet her pussy was soaked with desire.' char_GG '- So, you need to cum, slut? {p=0} I asked, my hands dipping between her legs and finding her soaked slit.' char_npc '- Please, Master, may I cum?' char_GG '- Not yet.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_13 # spank_2 if act == 'spank_2': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_6 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_2 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_7 char_GG '- Get on all fours. Feet spread apart. Your ass out.' play sound "sounds/clothe.mp3" call show_scene(npc, s_Show_2) from _call_show_scene_12 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_11 talker '[npc.name] did as she was told. ' talker 'I sighed as I watched [npc.name] obey me.' talker 'I moved to stand behind her.' play sound "sounds/steps.mp3" pause 1.5 call show_scene(npc, s_Show_2_2) from _call_show_scene_13 talker 'She jumped when I touched her exposed ass cheeks. My hands caressed the creamy skin. I used both hands to spread her ass cheeks apart to see her asshole.' play sound "sounds/whip.mp3" call show_scene(npc, s_Spank_1_1, 0.3) from _call_show_scene_14 call show_scene(npc, s_Spank_1_2, 0.3) from _call_show_scene_15 call rnd_sound(sl_scream) from _call_rnd_sound_25 call rnd_sound2(sl_spank) from _call_rnd_sound2_1 call show_scene(npc, s_Show_2, 1.5) from _call_show_scene_16 talker 'The first slap landed so unexpectantly that [npc.name] screamed and almost fell.' char_GG '- Not a sound slut. Or I will have to punish you.' call play_animation(npc, a_spank, 4) from _call_play_animation_6 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_14 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_12 talker '[npc.name] opened her mouth but closed it quickly, biting her lip as I delivered another slap.' call play_animation(npc, a_spank, 4) from _call_play_animation_7 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_15 call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_16 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_13 call play_animation(npc, a_spank, 3) from _call_play_animation_8 call show_scene(npc, s_Show_2_1) from _call_show_scene_17 talker 'My large hand came down, palm up, making her flesh sting. Tears came to her eyes as she lost count of how many times I had hit her.' char_GG '- Your ass looks beautiful.' call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_17 # blowjob_1 if act == 'blowjob_1': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_7 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_3 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_8 char_GG '- Suck my cock slut.' play sound "sounds/clothe.mp3" call show_scene(npc, s_Blowjob_3) from _call_show_scene_18 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_18 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_14 talker '[npc.name] took a deep breath and raised her hands. She stared at my stiff, thick cock before her. A drop of white pre-cum oozed from the tiny hole.' char_GG '- Now slut.{p=0} My voice was impatient.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_15 call show_scene(npc, s_Blowjob_2) from _call_show_scene_19 call rnd_sound(sl_blowjob_1) from _call_rnd_sound_26 talker '[npc.name] opened her mouth and sucked in just the head of him. Her tongue swirled around, tasting the saltiness of his cum. She closed her eyes and took him deeper. Slowly, inch by thick inch, she swallowed him. Warm and salty. ' talker '[npc.name] opened her eyes and looked up at me. I was watching her intently.' char_GG '- What a wicked mouth you have slut. I want you to make me cum.' call play_animation(npc, a_blowjob, 6) from _call_play_animation_9 talker '[npc.name] looked away and concentrated on sucking my cock. She used her tongue to massage the veined underside of him. He didn\'t make a sound as she moved her mouth on him. She used her hands to cup and caress my balls.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_19 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions return 'Continue': call play_animation(npc, a_blowjob) from _call_play_animation_10 'Cum': $ metka_choose = 1 pass call show_scene(npc, s_Blowjob_5) from _call_show_scene_20 char_GG '- Get ready, slut.{p=0} I announced, my hands fisting in her hair.' talker '[npc.name] tried to pull her head away. ' talker 'I pulled her tight against my cock, her nose buried deep in my pubic hair.' call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_20 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_16 talker 'She gagged as I pushed myself deeper down her throat. Her eyes filled with tears.' call male_orgasm from _call_male_orgasm talker 'She heard my growl a second before my cock jerked and hot cum rushed down her throat.' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_1 call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_21 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_17 talker 'I held her tight for several minutes. When my cock finally stopped pulsing, I loosened my grip and let her push away.' talker '[npc.name] sat back on her heels and wiped at her mouth with the back of her hand.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_17 call lb_show_npc(npc) from _call_lb_show_npc_30 char_GG '- You didn\'t enjoy my cum, slut?" I asked her, my eyes watching her.' char_npc '- No.' char_GG '- No what?' talker '[npc.name] looked up at me.' char_npc '- No Master.' play sound "sounds/male_chuckle_short.mp3" talker 'I laughed.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_22 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_23 call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_24 # blowjob_2 if act == 'blowjob_2': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_8 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_4 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_9 char_GG '- On your knees [npc.name].' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_18 play sound "sounds/clothe.mp3" call down_npc(npc) from _call_down_npc_2 talker '[npc.name] walked slowly to me and sank to her knees. She never enjoyed oral sex.' char_GG '- Take my cock out [npc.name]. I want to see those pretty pink lips stretched around my dick.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_21 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_18 talker 'My cock sprang free and bounced before her face. Her eyes widened at the sight of him. Milky pre-cum oozed from the large, red head. My balls were tight and nestled just below.' char_npc '- [GG.name]...' char_GG '- Baby, when I\'m through with you, you will crave the taste of my cock.' talker '[npc.name] continued to stare at the cock before her. And yet, kneeling here, staring at my cock, she couldn\'t help but wonder.' talker 'She stuck out her tongue and licked the tip, tasting pre-cum on her tongue. Moving her head closer, she opened her mouth and took him into her mouth.' call show_scene(npc, s_Blowjob_4) from _call_show_scene_22 call rnd_sound(sl_blowjob_2) from _call_rnd_sound_27 char_GG '- Oh yes.{p=0} I hissed, my hands going to her hair and fisting in the silky strands. I pushed my cock further into her mouth.' call play_animation(npc, a_blowjob_2) from _call_play_animation_11 call show_scene(npc, s_Blowjob_5) from _call_show_scene_23 talker '[npc.name] closed her eyes and tried not to gag as I forced his cock deeper down her throat. She fought for breath as I started to fuck her mouth. My hands holding her head still as I pumped into her. With each thrust, I went deeper until her nose was buried in his dark pubic hair.' char_GG '- Fuck baby, your mouth feels so good on me.{p=0} I said as I moved her head on my dick.' call play_animation(npc, a_blowjob_2, 2) from _call_play_animation_12 talker 'The smell and taste of mine filled her mouth.' char_GG '- Use your tongue.{p=0} I ordered, pumping faster.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_25 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_19 call play_animation(npc, a_blowjob_2_tempo) from _call_play_animation_13 call show_scene(npc, s_Blowjob_5) from _call_show_scene_24 talker '[npc.name] used her tongue to massage the thick length of him. Her slurping sounds filled the room. She closed her eyes, not wanting to watch as she swallowed my cock.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_26 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_1 return 'Continue': call play_animation(npc, a_blowjob_2_tempo) from _call_play_animation_14 'Cum': $ metka_choose = 1 pass char_GG '- Christ [npc.name], that feels incredible. I\'m going to cum baby.' talker '[npc.name] tried to pull her mouth off of me. ' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_27 call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_28 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_20 call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_2 talker 'I gripped her hair and pulled her harder. She tried to shake her head, anything to dislodge her head. She didn\'t want I to cum in her mouth. ' play sound "sounds/male_laugh.mp3" talker 'She heard I laugh seconds before I held head her tight against me and... ' call male_orgasm from _call_male_orgasm_1 talker '...my cock jerked in her mouth, filling it up with his salty cum.' call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_3 char_GG '- Swallow.{p=0} I growled, my cock buried to the base.' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_4 talker '[npc.name] couldn\'t hold back and with one deep swallow, she drank my cum.' char_GG '- Good girl.{p=0} I said, loosening my grip and letting her fall back to sit on her legs.' play music "sounds/crying.mp3" call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_29 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_19 call down_npc(npc) from _call_down_npc_3 hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.7) talker '[npc.name] kept her head bowed. She couldn\'t stop the tears that flowed down her cheeks. Her lips were bruised and her mouth was sore from sucking my cock. Her throat raw from having it shoved halfway down it. ' talker 'I lifted her face with my finger under her chin.' char_GG '- You\'re crying? You didn\'t enjoy that?' stop music fadeout 1.0 char_npc '- No. {p=0} She said softly.' char_GG '- You give great head [npc.name]. You should be proud of that. I have never cum so quickly before.' char_npc '- Please [GG.name], can I go now.' call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_30 call lb_cange_npc_features(npc=npc, feature='cry') from _call_lb_cange_npc_features_31 # blowjob_3 if act == 'blowjob_3': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_9 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_5 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_10 char_GG '- Do you know what I want right now, slut?' play sound "sounds/clothe.mp3" call show_scene(npc, s_Blowjob_3) from _call_show_scene_25 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_21 talker 'I watched the expression on her face change and then my nostrils flared as she knelt before me. ' call show_scene(npc, s_Blowjob_1) from _call_show_scene_26 talker 'I didn\'t say a word as she leaned forward and sucked just the head of him into her mouth. I held back my groan of pleasure at the wetness of her mouth on him. She was such a great cocksucker. I looked down and watched her pink lips stretch to take my thick cock. ' call show_scene(npc, s_Blowjob_2) from _call_show_scene_27 call rnd_sound(sl_blowjob_2) from _call_rnd_sound_28 char_GG '- Suck my cock good, slut.{p=0} I hissed, my hips flexing, pushing my cock deeper down her throat.' call play_animation(npc, a_blowjob) from _call_play_animation_15 talker '[npc.name] kept on sucking. Her lips were tight around him, her tongue stroking the underside of him. She let him slide from her lips and then blew lightly on the sensitive head.' talker 'Her tongue came out and flicked the tiny hole, licking up any pre-cum that oozed. She rubbed his cockhead across her lips before swallowing him again.' call play_animation(npc, a_blowjob_2) from _call_play_animation_16 talker 'I held her head and slowly fucked her mouth. I pushed a little deeper each time. ' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_2 return 'Continue': call play_animation(npc, a_blowjob_2) from _call_play_animation_17 'Cum': $ metka_choose = 1 pass talker 'Her mouth was magic and soon I was ready to cum. I thought about warning her but decided against it. ' call play_animation(npc, a_blowjob_2_tempo) from _call_play_animation_18 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_32 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_22 call show_scene(npc, s_Blowjob_5) from _call_show_scene_28 call rnd_sound(sl_blowjob_2) from _call_rnd_sound_29 talker 'Grabbing fists fulls of her hair, I pumped faster against her mouth. I felt her hands on my thighs and then slide around to my ass. She was actually pulling it closer to her. ' call male_orgasm from _call_male_orgasm_2 talker 'I arched my back and shot my load of cum deep down her throat. She wasn\'t trying to pull away this time. ' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_5 talker 'I looked down and watched as she swallowed my cum.' call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_33 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_20 call down_npc(npc) from _call_down_npc_4 hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.7) talker '[npc.name] licked her lips and then sat back on her legs. She kept her head lowered and waited for the next instructions from me. She felt my hand under her chin, lifting her eyes to me.' char_GG '- How did my cum taste, slut?' char_npc '- Delicious Master.{p=0} She said softly.' call lb_cange_npc_features(npc=npc, feature='cum_mouth') from _call_lb_cange_npc_features_34 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_35 # missionary_position_1 if act == 'missionary_position_1': if npc.dict_skill['Submission'] < 6.0: call off_reluctant_actions(npc, 6.0) from _call_off_reluctant_actions_10 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_6 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_11 char_GG '- Onto your back,{p=0} I said.' play sound "sounds/clothe.mp3" call show_scene(npc, s_Show_1) from _call_show_scene_29 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_23 talker 'She rolled onto her back. ' call show_scene(npc, s_Missionary_2) from _call_show_scene_30 talker 'I climbed between her legs and without hesitation buried my hard rod into her tight wet pussy.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_36 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_24 char_npc '- Please don\'t do this again. Please [GG.name], I\'m begging you!{p=0} She wailed, trying to turn her head to look at me.' char_npc '- Please [GG.name]! Anything!' talker 'But I had everything I wanted, and pushed my hardening cock slowly back into her.' call play_animation(npc, a_missionary, 4) from _call_play_animation_19 talker 'I began to slowly stroke in and out of her. ' call show_scene(npc, s_Petting_8) from _call_show_scene_31 call rnd_sound(sl_scream) from _call_rnd_sound_30 talker 'I did cupped one of her breasts and used my thumb and forefinger to pinch and roll her nipple, causing her to gasp.' call play_animation(npc, a_missionary_tempo, 4) from _call_play_animation_20 char_GG '- You like this don\'t you? You like being a slut, being used by me, don\'t you? You like my cock sliding in and out of your sweet pussy, like the feel of my tongue when I eat you and make you cum don\'t you? ' call show_scene(npc, s_Petting_8) from _call_show_scene_32 call rnd_sound(sl_scream) from _call_rnd_sound_31 char_GG '- Tell me you like it. Tell me! {p=0} I whispered, squeezing her nipple hard as I rammed my cock into her.' char_npc '[npc.name] groaned the gasp out,{p=0} - Oh God I do like it!"' call play_animation(npc, a_missionary_tempo, 4) from _call_play_animation_21 char_GG '- So tell me you like being a slut. Tell me you like getting fucked by me, getting used by me. Having your wet pussy full of my cock. Tell me you want more. Come-on-you-little-cunt-tell- me! {p=0}I said, punctuating each of my last words with a hard thrust.' char_GG '- OH FUCK!{p=0} [npc.name] yelled,{p=0} - I WANT YOU TO FUCK ME UNTIL I CUM AGAIN! OH PLEASE MAKE ME CUM AGAIN!' call play_animation(npc, a_missionary_tempo_scream, 4) from _call_play_animation_22 talker 'I felt her hips rise to meet my thrusts. I could feel her large firm tits against my chest, feel the wetness from her cunt running down my shaft and dripping off my balls as I fucked her.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_37 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_3 return 'Continue': call play_animation(npc, a_missionary_tempo_scream, 4) from _call_play_animation_23 'Cum': $ metka_choose = 1 pass call show_scene(npc, s_Missionary_1) from _call_show_scene_33 call rnd_sound(sl_penetration) from _call_rnd_sound_32 pause 0.5 call female_orgasm from _call_female_orgasm_1 talker 'I felt her body stiffen, then quiver and a moment later she screamed and her pussy clamped around my cock as she climaxed. ' talker 'The feel of her pulsing cunt was too much for me. ' call male_orgasm from _call_male_orgasm_3 talker 'I rammed my cock home just as it began to throb, filling her depths with my warm spunk.' talker 'I lay on her, my shaft buried inside her until it softened and slipped out of her sopping snatch.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_21 call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_38 call lb_show_npc(npc) from _call_lb_show_npc_31 hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.7) play sound "sounds/male_laugh.mp3" char_GG '- That was cute.{p=0} I laughed.' call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_39 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_40 # doggy_1 if act == 'doggy_1': if npc.dict_skill['Submission'] < 6.0: call off_reluctant_actions(npc, 6.0) from _call_off_reluctant_actions_11 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_7 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_12 char_GG '- On your knees.' call show_scene(npc, s_Show_2) from _call_show_scene_34 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_25 talker '[npc.name] got to knees, wincing as she did so.' talker '[npc.name] looked back at me. I stood naked. My cock jutting straight out. She watched me crawl, kneeling behind her. ' play sound "sounds/clothe.mp3" call show_scene(npc, s_doggy_1, 1.2) from _call_show_scene_35 talker 'I used my knees to widen her thighs, bringing the head of my cock against her pussy.' char_GG '- Tell me [npc.name], do you want me to fuck you now?{p=0} I asked softly, rubbing my cockhead over her bare pussy lips.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_26 char_npc '- Yes. {p=0} She answered dropping her head.' char_GG '- I can\'t hear you. Do you want me to fuck you now?' char_npc '- Yes.{p=0} She said louder.' char_GG '- Ask me.{p=0} I commanded, my cock now rubbing her clit.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_41 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_27 char_npc '- Fuck me now Master. Please.{p=0} [npc.name] said quietly pushing her ass against my.' call show_scene(npc, s_doggy_2) from _call_show_scene_36 call rnd_sound(sl_sex) from _call_rnd_sound_33 char_GG '- Yes slut.{p=0} I said, holding her hips still and driving into her.' call rnd_sound(sl_scream) from _call_rnd_sound_34 talker '[npc.name] arched as I buried himself deep inside her. She was so wet and tight and felt so good wrapped around me. ' call show_scene(npc, s_doggy_1) from _call_show_scene_37 play music "sounds/deep_breath.mp3" talker 'I pulled back slowly, watching as my cock stretched her pussy lips wide. Her juices coating him. Then I looked down at [npc.name], her head down, her breathing heavy.' call play_animation(npc, a_anal, 4) from _call_play_animation_24 talker 'I smoothed my hand over her pink ass. I saw her tense. I slowed my strokes and teased one finger down between her ass cheeks. I reached around her hip and began to milk her clit. Her hips bucked against me and I felt a rush of juice coat my cock and balls.' char_GG '- You are so repsonsive, my slut.{p=0} I said.' call play_animation(npc, a_anal, 4) from _call_play_animation_25 talker 'I continued to fuck her with slow, deep strokes. I felt her tense up but I was ready and pressed forward.' call play_animation(npc, a_anal_tempo, 5) from _call_play_animation_26 char_GG '- Relax [npc.name]. It will only hurt if you don\'t relax.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_42 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_4 return 'Continue': call play_animation(npc, a_anal_tempo, 5) from _call_play_animation_27 'Cum': $ metka_choose = 1 pass talker '[npc.name] took a deep breath and let it out. ' stop music fadeout 0.7 char_npc '- [GG.name], I\'m going to cum {p=0} She said, suddenly feeling a panic consume her.' call show_scene(npc, s_doggy_2) from _call_show_scene_38 call rnd_sound(sl_sex) from _call_rnd_sound_35 char_GG '- Cum for me [npc.name]. Cum for me baby.{p=0} I said, pounding faster into her pussy.' call female_orgasm from _call_female_orgasm_2 char_npc '- OH!{p=0} She cried, feeling the tight coiling in her stomach spread throughout her body.' call show_scene(npc, s_doggy_1) from _call_show_scene_39 call rnd_sound(sl_penetration) from _call_rnd_sound_36 pause 0.5 call show_scene(npc, s_doggy_2) from _call_show_scene_40 call rnd_sound(sl_sex) from _call_rnd_sound_37 char_GG '- That\'s it! Cum for me slut!{p=0} I ordered, my cock pistoning in and out of her wet pussy.' talker '[npc.name] cried out. She pushed back against me to take him deeper. ' call male_orgasm from _call_male_orgasm_4 talker 'With a deep growl, she felt the warm flood of my cum fill her.' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_43 # anal_1 if act == 'anal_1': if npc.dict_skill['Submission'] < 7.0: call off_reluctant_actions(npc, 7.0) from _call_off_reluctant_actions_12 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_8 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_13 char_GG '- Turn around and get your ass down here.{p=0} I demanded.' call show_scene(npc, s_doggy_1) from _call_show_scene_41 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_28 talker '[npc.name] turned her ass to me and lowered herself onto my lap. I placed the head of my cock against the wet lips of her snatch and rubbed it up and down her slit, coating it with her slick juices. ' call show_scene(npc, s_doggy_2) from _call_show_scene_42 call rnd_sound(sl_sex) from _call_rnd_sound_38 talker 'I placed the nob of my it against her tight puckered asshole, grabbed her hips and with one hard pull and a thrust of my hips buried my rod balls deep in her tight ass.' call rnd_sound(sl_scream) from _call_rnd_sound_39 talker 'She let out a sharp gasp then a moan as my cock stretched the sphincter muscles of her ass. ' call show_scene(npc, s_doggy_3) from _call_show_scene_43 call rnd_sound(sl_scream) from _call_rnd_sound_40 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_44 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_29 talker 'I pulled her back against my chest, reached around, rammed two fingers into her snatch and began to diddle her pussy as I fucked her ass. At the same time I cupped one of her tits and began to pinch and kneed her nipple.' talker 'My lips were against her ear and I began to whisper to her.' char_GG '- You want to be filled with cock, used as a fuck toy, fucked and filled with cum cock\'s, wouldn\'t you? Go ahead tell me, tell me you want it, tell me you want to be used as a fuck toy, have your pussy and ass crammed full of cock, fucked until cum is leaking from all your holes, Tell me!' call show_scene(npc, s_doggy_1) from _call_show_scene_44 pause 0.3 call play_animation(npc, a_anal) from _call_play_animation_28 call show_scene(npc, s_doggy_2) from _call_show_scene_45 call rnd_sound(sl_sex) from _call_rnd_sound_41 pause 0.3 call rnd_sound(sl_scream) from _call_rnd_sound_42 talker '[npc.name] moaned then gasped out,"Yes, yes! I want it!! want it! I-I-I-OH CHRIST I\'M GUNNA\' CUM!' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_45 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_5 return 'Continue': call show_scene(npc, s_doggy_1) from _call_show_scene_46 pause 0.3 call play_animation(npc, a_anal_tempo, 5) from _call_play_animation_29 'Cum': $ metka_choose = 1 pass call show_scene(npc, s_doggy_2) from _call_show_scene_47 call rnd_sound(sl_sex) from _call_rnd_sound_43 talker 'I felt contract her ass around my cock. I clamped my fingers onto her nipple, rammed my cock deep into her as... ' call male_orgasm from _call_male_orgasm_5 talker '...my balls exploded sending gobs of my spunk into her depths.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_22 call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_46 call lb_show_npc(npc) from _call_lb_show_npc_32 hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.7) talker 'I sat with her impaled on my cock until it grew limp and slipped out of her cum slick ass. I urged her to stand and she slowly got to her feet.' call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_47 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_48 # against_wall_1 if act == 'against_wall_1': if npc.dict_skill['Submission'] < 7.0: call off_reluctant_actions(npc, 7.0) from _call_off_reluctant_actions_13 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_9 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_23 call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_34 call lb_show_npc(npc) from _call_lb_show_npc_47 char_npc '- Leave me the fuck alone.' call show_ava_for_scenes(npc, 1, '_angry') from _call_show_ava_for_scenes_36 call show_scene(npc, s_Against_wall_1) from _call_show_scene_117 play sound "sounds/hit_soft.mp3" 'I pushed her against the wall. Hard. Then I pinned her against the wall with my hands.' char_GG '- I don\'t want to hear any shit from you, bitch, - I said as I shoved her harder against the wall.' 'My hulking figure towered over her lithe frame.' char_npc '- Fuck you! - she said spitting out the invective like it was venom. ' show screen show_image_above('scenes/black.png') with Dissolve(0.1) play sound "sounds/hit.mp3" hide screen show_image_above with Dissolve(1) 'I raised my opened hand and slammed it against the wall an inch from her face. The sound was deafening and it definitely got her attention.' call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_37 call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_35 call lb_show_npc(npc) from _call_lb_show_npc_48 char_GG '- Fucking bitch, do I need this shit from you? - my voice both angry and disgusted by the situation before me. I looked down at her. She was sufficiently cowed that I decided to set this shit off now.' call approach_npc(npc) from _call_approach_npc_10 call rnd_sound(sl_kiss) from _call_rnd_sound_82 'I began to kiss her, forcing my tongue into her mouth. ' char_GG '- Open your fucking mouth, if you know what\'s good for you. - I growled at her.' 'She reluctantly relented and we kissed. ' call rnd_sound(sl_kiss) from _call_rnd_sound_83 'I could sense her resistance was waning. Our tongues entwined; probing, searching in each others mouth. My hand was playing with her nipples.' call lb_show_npc(npc) from _call_lb_show_npc_49 char_GG '- Bend the fuck over, bitch. Do it now if you know what\'s good for you -, I commanded her, as my control over her grew stronger. ' 'She didn\'t move. OK, that\'s how you fucking want it, fine.' play sound "sounds/clothe.mp3" call show_scene(npc, s_Against_wall_2_1) from _call_show_scene_118 'I took my forearm and shoved it in the back of her neck as I pressed her into the wall. Her face flat against the wall, unable to seek help or find solace, she was at my will and she knew it. ' 'So I pulled out my dick. I am rock hard and already there is pre-cum on the tip. I am so ready to give this bitch the fucking of her life.' char_GG '- I am going to fuck you bitch, the way you should be fucked, the way you want to be fucked, - I said being both pissed off and horny. ' call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_61 call show_scene(npc, s_Against_wall_2_2) from _call_show_scene_119 call rnd_sound(sl_scream) from _call_rnd_sound_84 call rnd_sound2(sl_penetration) from _call_rnd_sound2_12 call show_ava_for_scenes(npc, 1, '_sad') from _call_show_ava_for_scenes_38 'Fuck it. I quickly shoved my dick in to her.' call play_animation(npc, a_against_wall) from _call_play_animation_45 play music "sounds/deep_breath_man.mp3" call rnd_sound(sl_moan) from _call_rnd_sound_85 'Her ass jiggled with each stroke. She grunted as I fucked her harder.' char_GG 'I moved close to her ear and said,{p=0} - How do you like that bitch? ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_86 'She didn\'t say anything at all, she just continued to stifle her moans as I kept pounding her sweet cheeks.' char_GG '- I have to admit this is some good fucking pussy, - I said to her as I tried to shove every inch I had into her.' 'I felt my nut coming on so I fucked her as hard as I could. ' call play_animation(npc, a_against_wall_tempo) from _call_play_animation_46 call rnd_sound(sl_moan) from _call_rnd_sound_87 play music "sounds/short_breath.mp3" play music2 "sounds/short_breath_man.mp3" 'I could hear her moaning through my own grunts and heavy breathing.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_62 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_6 return 'Continue': call play_animation(npc, a_against_wall_tempo) from _call_play_animation_47 'Cum': $ metka_choose = 1 pass 'Then as I was about to cum, she screamed.' char_npc '- You motherfucker, I hate your ass, ooh fuck...I am cumming.' call female_orgasm from _call_female_orgasm_6 stop music fadeout 0.5 'I must have been past the point of no return because that shit felt good and turned me on even more. ' call play_animation(npc, a_against_wall_tempo) from _call_play_animation_48 'I didn\'t stop, I just banged her harder against the wall until I screamed' char_GG '- You fucking , golden pussy having bitch, uuuhhhhh, damn.' call male_orgasm from _call_male_orgasm_10 stop music2 fadeout 0.5 'Even though I came, I kept fucking her, trying to get every bit out of this as I could.' call play_animation(npc, a_against_wall, 3) from _call_play_animation_49 menu: 'End': pass call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_36 call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_63 call lb_show_npc(npc) from _call_lb_show_npc_50 hide screen show_scn hide screen show_image_in_position_2 with Dissolve(0.7) char_GG '- Not bad.' call lb_cange_npc_features(npc=npc, feature='cum_hips') from _call_lb_cange_npc_features_64 call lb_cange_npc_features(npc=npc, feature='tears') from _call_lb_cange_npc_features_65 # BDSM_1 if act == 'BDSM_1': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_20 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_13 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_35 call dialogue('_dialogues/act_BDSM_1_submission.json', npc) from _call_dialogue_52 # BDSM_2 if act == 'BDSM_2': if npc.dict_skill['Submission'] < 6.0: call off_reluctant_actions(npc, 6.0) from _call_off_reluctant_actions_21 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_14 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_36 call dialogue('_dialogues/act_BDSM_2_submission.json', npc) from _call_dialogue_53 # BDSM_3 if act == 'BDSM_3': if npc.dict_skill['Submission'] < 6.0: call off_reluctant_actions(npc, 6.0) from _call_off_reluctant_actions_22 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_37 # Переодевание в casual одежду если она есть $ def_change_clothe_set(npc, 'asual') $ npc.location = bdsm call dialogue('act_bdsm_club.sss', npc) from _call_dialogue_54 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_8 call lb_return_to_NPC_Action(npc=npc, timeX=120) from _call_lb_return_to_NPC_Action hide screen NPC_reluctant_action return # threesome_1 if act == 'threesome_1': if npc.dict_skill['Submission'] < 7.0: call off_reluctant_actions(npc, 7.0) from _call_off_reluctant_actions_23 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_15 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_38 call dialogue('_dialogues/act_threesome_1_submission.json', npc) from _call_dialogue_55 # watch_masturbate_1 if act == 'watch_masturbate_1': if npc.dict_skill['Submission'] < 3.0: call off_reluctant_actions(npc, 3.0) from _call_off_reluctant_actions_24 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_16 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_39 call dialogue('_dialogues/act_watch_masturbate_1_submission.json', npc) from _call_dialogue_56 # lesbo_sex if act == 'lesbo_sex': if npc.dict_skill['Submission'] < 4.0: call off_reluctant_actions(npc, 4.0) from _call_off_reluctant_actions_25 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_40 call dialogue('_dialogues/act_lesbo_sex_submission.json', npc) from _call_dialogue_57 # lesbo_sex_2 if act == 'lesbo_sex_2': if npc.dict_skill['Submission'] < 5.0: call off_reluctant_actions(npc, 5.0) from _call_off_reluctant_actions_26 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_17 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_41 call dialogue('act_lesbo_sex_2_submission.sss', npc) from _call_dialogue_58 # threesome MFF if act == 'threesome_MFF': if npc.dict_skill['Submission'] < 6.0: call off_reluctant_actions(npc, 6.0) from _call_off_reluctant_actions_27 # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude(npc) from _call_not_nude_18 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_42 call dialogue('_dialogues/act_threesome_MFF_submission.json', npc) from _call_dialogue_59 call end_reluctant_actions(npc, act) from _call_end_reluctant_actions_7 return # Не пройдена проверка на раздетость при принуждении label not_nude(npc): talker "First you need to undress [npc.name]." hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) jump main_cicle return # Отшила при принуждении label off_reluctant_actions(npc, need_submission): $ npc.dict_marks['reluctant_actions'] += 0 stop music stop music2 call lb_cange_emotion(npc, '_angry') from _call_lb_cange_emotion_23 call lb_show_npc(npc) from _call_lb_show_npc_33 play sound "sounds/error.mp3" $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Submission'] += 4 $ npc.dict_skill['Friend/Anger'] += 4 char_npc '- This is joke?' talker '{color=#d53232} Love: +100{/color}{p=0} {color=#d53232}Friend/Anger: +100{/color}{p=0} {color=#5fe624}Submission: +100{/color}' talker 'Need [need_submission] submission.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_24 hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) jump main_cicle return # Конец принуждения label end_reluctant_actions(npc, act=''): # Счётчики call lb_add_sex_action_to_stat(npc, act) from _call_lb_add_sex_action_to_stat_1 $ npc.dict_marks['reluctant_actions'] += 0 stop music stop music2 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_25 play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] += 4 $ npc.dict_skill['Submission'] += 4 talker '{color=#d53232} Love: +100{/color}{p=0} {color=#5fe624}Submission: +0.08{/color}' hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image with Dissolve(0.3) return # Раздевание в принуждающих взаимодействиях label reluctant_undress(npc): # Проверка на наличие свидетелей call lb_check_witness(npc, 'undress') from _call_lb_check_witness_1 call lb_show_npc(npc) from _call_lb_show_npc_34 if npc.dict_skill['Submission'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] += 4 talker '[npc.name] is not ready to undress before you. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 submission.' show screen NPC_show(npc) show screen NPC_reluctant_action(npc) hide screen show_image return char_GG '- Undress!{p=0} I ordered.' call lb_cange_emotion(npc, '_sad') from _call_lb_cange_emotion_26 call lb_show_npc(npc) from _call_lb_show_npc_35 $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] char_GG "- Take off your [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_show_npc(npc, 1.5) from _call_lb_show_npc_36 $ count -= 1 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_27 show screen NPC_show(npc) show screen NPC_reluctant_action(npc) $ npc.clothes = ['Nude'] hide screen show_image return # Пощёчина НПС label slap_NPC: play sound "sounds/slap.mp3" show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) hide screen show_image_above with Dissolve(1) return # НПС ниже label down_npc(npc, dissolve=2.5): $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) show screen show_image_in_position(img_list=[[img_loc, 0, 0], [img_npc, 585, 500]]) with Dissolve(dissolve) return # Прикосновения label lb_touching_actions(npc, act): # Счётчик $ npc.dict_marks['touching_actions'] += 0 # Проверка на количество взаимодействий if npc.dict_marks['touching_actions'] >= 5: show screen mesage('I\'ve touched her quite a lot today.') show screen my_GUI show screen location show screen NPC_show(npc) with Dissolve(0.3) return # Проверка на наличие свидетелей call lb_check_witness(npc, act) from _call_lb_check_witness_2 call lb_show_npc(npc) from _call_lb_show_npc_37 $ name_char = npc.name # hug - обнять if act == 'hug': talker 'I reached out to hug [npc.name].' # Отшила if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] < 1.0 and npc.dict_skill['Depravity/Modesty'] < 1.0: call stray_npc(npc) from _call_stray_npc play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- What are you doing? - {p=0} [npc.name] was surprised, having staggered back.' char_GG '- Sorry.' talker 'Need: 1.0 love or 1.0 submission or 1.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off return # Удалось # По любовной ветке if npc.dict_skill['Love'] >= 1.0: talker '[npc.name] happily stepped forward.' call approach_npc(npc) from _call_approach_npc_6 pause 0.5 talker 'We hugged tightly.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_49 call approach_npc(npc) from _call_approach_npc_7 talker 'A blush appeared on [npc.name]\'s face.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_50 # По ветке подчинения if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] >= 1.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- What are you doing? - {p=0} Frightened asked [npc.name].' char_GG '- I just want to hug you.' char_GG '- Do you mind?' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_51 call lb_show_npc(npc) from _call_lb_show_npc_38 char_npc '- ... not, - {p=0} [npc.name] was embarrassed under my hard look.' call approach_npc(npc) from _call_approach_npc_8 char_npc '- That\'s better.{p=0} I said hugging a girl.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_52 # По развратной ветке if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] < 1.0 and npc.dict_skill['Depravity/Modesty'] >= 1.0: talker '[npc.name] willingly leaned towards me.' call approach_npc(npc) from _call_approach_npc_9 call rnd_sound(sl_giggle) from _call_rnd_sound_44 char_npc '- What are your strong hands.' # pat on the head - погладить по голове if act == 'pat on the head': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' char_GG '- I just want to pat you on the head.' # Отшила if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] < 1.0 and npc.dict_skill['Depravity/Modesty'] < 1.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 1.0 love or 1.0 submission or 1.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_1 return # По любовной ветке if npc.dict_skill['Love'] >= 1.0: char_npc '- How cute.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_53 call lb_show_npc(npc) from _call_lb_show_npc_39 call touching_act(npc, 'pat on the head') from _call_touching_act_2 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_54 # По ветке подчинения if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] >= 1.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker '[npc.name] did not mind.' call touching_act(npc, 'pat on the head') from _call_touching_act_3 # По развратной ветке if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] < 1.0 and npc.dict_skill['Depravity/Modesty'] >= 1.0: char_npc '- A bit strange, but okay.' call touching_act(npc, 'pat on the head') from _call_touching_act_4 # put a hand on the shoulder - положить руку на плечо if act == 'put a hand on the shoulder': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' char_GG '- Nothing out of the common.' # Отшила if npc.dict_skill['Love'] < 1.0 and npc.dict_skill['Submission'] < 1.0 and npc.dict_skill['Depravity/Modesty'] < 1.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 1.0 love or 1.0 submission or 1.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_2 return # Вывод анимации if npc.dict_skill['Love'] >= 1.0 or npc.dict_skill['Submission'] >= 1.0 or npc.dict_skill['Depravity/Modesty'] >= 1.0: call touching_act(npc, 'put a hand on the shoulder') from _call_touching_act_5 # put a hand on the waist - положить руку на талию if act == 'put a hand on the waist': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' play sound "sounds/male_chuckle_short.mp3" char_GG '- Check your waist.' # Отшила if npc.dict_skill['Love'] < 2.0 and npc.dict_skill['Submission'] < 2.0 and npc.dict_skill['Depravity/Modesty'] < 2.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 2.0 love or 2.0 submission or 2.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_3 return # По любовной ветке if npc.dict_skill['Love'] >= 2.0: char_npc '- Am I overweight?' call touching_act(npc, 'put a hand on the waist') from _call_touching_act_6 char_GG '- Nonsense.' # По ветке подчинения if npc.dict_skill['Love'] < 2.0 and npc.dict_skill['Submission'] >= 2.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 call touching_act(npc, 'put a hand on the waist') from _call_touching_act_7 talker '[npc.name] obediently was silent while I felt her waist.' # По развратной ветке if npc.dict_skill['Love'] < 2.0 and npc.dict_skill['Submission'] < 2.0 and npc.dict_skill['Depravity/Modesty'] >= 2.0: char_npc '- Am I overweight?' call touching_act(npc, 'put a hand on the waist') from _call_touching_act_8 char_GG '- Nonsense.' # paw thigh - лапать бедро if act == 'paw thigh': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' char_GG '- To pat your thigh.' # Отшила if npc.dict_skill['Love'] < 3.0 and npc.dict_skill['Submission'] < 3.0 and npc.dict_skill['Depravity/Modesty'] < 3.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 3.0 love or 3.0 submission or 3.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_4 return # По любовной ветке if npc.dict_skill['Love'] >= 3.0: talker 'I reached out and felt for the girl.' call touching_act(npc, 'paw thigh') from _call_touching_act_9 # По ветке подчинения if npc.dict_skill['Love'] < 3.0 and npc.dict_skill['Submission'] >= 3.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- Do you think you can touch me when you want?' char_GG '- Yes, - I said shortly.' call touching_act(npc, 'paw thigh') from _call_touching_act_10 # По развратной ветке if npc.dict_skill['Love'] < 3.0 and npc.dict_skill['Submission'] < 3.0 and npc.dict_skill['Depravity/Modesty'] >= 3.0: char_npc '- Only the thigh?' char_npc '- I still have many interesting places.' call touching_act(npc, 'paw thigh') from _call_touching_act_11 call rnd_sound(sl_giggle) from _call_rnd_sound_45 char_npc '- However, it is not a fact that I will allow them to be touched.' # stroke cheek, touch lips - Гладить щёку, трогать губы if act == 'stroke cheek, touch lips': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' char_GG '- Touch your soft lips.' # Отшила if npc.dict_skill['Love'] < 3.0 and npc.dict_skill['Submission'] < 3.0 and npc.dict_skill['Depravity/Modesty'] < 3.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 3.0 love or 3.0 submission or 3.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_5 return call touching_act(npc, 'stroke cheek, touch lips') from _call_touching_act_12 char_GG '- Actually soft' # paw butt - лапать зад if act == 'paw butt': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' talker 'Without a word, I reached for [npc.name]\'s ass.' # Отшила if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] < 4.0 and npc.dict_skill['Depravity/Modesty'] < 4.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 4.0 love or 4.0 submission or 4.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_6 return # По любовной ветке if npc.dict_skill['Love'] >= 4.0: call touching_act(npc, 'paw butt') from _call_touching_act_13 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_55 call lb_show_npc(npc) from _call_lb_show_npc_40 char_npc '- It was unexpected.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_56 call lb_show_npc(npc) from _call_lb_show_npc_41 # По ветке подчинения if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] >= 4.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker '[npc.name] did not dare to object.' call touching_act(npc, 'paw butt') from _call_touching_act_14 # По развратной ветке if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] < 4.0 and npc.dict_skill['Depravity/Modesty'] >= 4.0: call touching_act(npc, 'paw butt') from _call_touching_act_15 play sound "sounds/female_laugh.mp3" char_npc '- I like your determination.' # paw breast - лапать грудь if act == 'paw breast': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' char_GG '- Touch your chic chest.' # Отшила if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] < 4.0 and npc.dict_skill['Depravity/Modesty'] < 4.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 4.0 love or 4.0 submission or 4.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_7 return # По любовной ветке if npc.dict_skill['Love'] >= 4.0: char_GG '- You do not mind?' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_57 call lb_show_npc(npc) from _call_lb_show_npc_42 char_npc '- ... not.' call touching_act(npc, 'paw breast') from _call_touching_act_16 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_58 # По ветке подчинения if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] >= 4.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- Do you think you can touch me when you want?' play sound "sounds/male_chuckle_short.mp3" char_GG '- Yes, - I said shortly.' call touching_act(npc, 'paw breast', '_sad') from _call_touching_act_17 talker 'I squeezed a little supple flesh.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_28 # По развратной ветке if npc.dict_skill['Love'] < 4.0 and npc.dict_skill['Submission'] < 4.0 and npc.dict_skill['Depravity/Modesty'] >= 4.0: play sound "sounds/female_laugh.mp3" char_npc '- If you think she\'s so chic...' char_GG '- Undoubtedly.' call touching_act(npc, 'paw breast', '_smile') from _call_touching_act_18 talker 'I squeezed a little supple flesh.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_29 # put a finger in the mouth - засунуть палец в рот if act == 'put a finger in the mouth': show screen show_in_senter([['scenes/touching_0.png', 0.5, 0.5]]) with Dissolve(0.7) pause 1.0 char_npc '- What are you going to do?' $ img_finger = im.Composite( (750, 1080), (0, 150), 'scenes/touching_7_1.png' ) show screen show_in_senter([[img_finger, 0.5, 0.5]]) with Dissolve(1.0) pause 1.5 char_GG '- Guess.' # Отшила if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] < 5.0 and npc.dict_skill['Depravity/Modesty'] < 5.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 5.0 love or 5.0 submission or 5.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_8 return # По любовной ветке if npc.dict_skill['Love'] >= 5.0: call touching_act(npc, 'put a finger in the mouth') from _call_touching_act_19 char_GG '- Your mouth is so wet and hot.' hide screen show_in_senter with Dissolve(0.3) call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_59 call lb_show_npc(npc) from _call_lb_show_npc_43 char_npc '- Thank.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_60 # По ветке подчинения if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] >= 5.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- But ...' talker 'I did not listen to [npc.name]\'s objections. And just to put his finger force.' call touching_act(npc, 'put a finger in the mouth', '_sad') from _call_touching_act_20 play sound "sounds/male_chuckle_short.mp3" char_GG '- Do not frown. I know you like that.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_30 # По развратной ветке if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] < 5.0 and npc.dict_skill['Depravity/Modesty'] >= 5.0: call touching_act(npc, 'put a finger in the mouth') from _call_touching_act_21 char_GG '- Your mouth is so wet and hot.' hide screen show_in_senter with Dissolve(0.7) play sound "sounds/female_laugh.mp3" call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_31 call lb_show_npc(npc) from _call_lb_show_npc_44 char_npc '- Not just my mouth.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_32 # spank with your palm - отшлёпать по попке if act == 'spank with your palm': call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='none', decals=[], scr=1, dis=0.7) from _call_lb_images2_29 pause 1.0 char_npc '- What are you going to do?' char_GG '- Spank your delicious ass.' # Отшила if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] < 5.0 and npc.dict_skill['Depravity/Modesty'] < 5.0: char_npc '- Fuck off.' play sound "sounds/error.mp3" talker 'Need: 5.0 love or 5.0 submission or 5.0 Depravity.' call touching_fuck_off(npc) from _call_touching_fuck_off_9 return # По любовной ветке if npc.dict_skill['Love'] >= 5.0: call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='none', decals=["blush"], scr=1, dis=0.5) from _call_lb_images2_30 char_npc "- I already thought you would never ask." call lb_spank(npc) from _call_lb_spank_2 call lb_spank(npc) from _call_lb_spank_3 call lb_spank(npc) from _call_lb_spank_4 call lb_spank(npc) from _call_lb_spank_5 call lb_spank(npc) from _call_lb_spank_6 # По ветке подчинения if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] >= 5.0: $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='_sad', decals=[], scr=1, dis=0.5) from _call_lb_images2_31 char_npc "- Just please don't hurt me." call lb_spank(npc) from _call_lb_spank_7 call lb_spank(npc) from _call_lb_spank_8 call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='_sad', decals=["tears"], scr=1, dis=0.5) from _call_lb_images2_32 call lb_spank(npc) from _call_lb_spank_9 call lb_spank(npc) from _call_lb_spank_10 call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='_sad', decals=["cry"], scr=1, dis=0.5) from _call_lb_images2_33 call lb_spank(npc) from _call_lb_spank_11 call rnd_sound(var_dict['sounds']['sl_crying']) from _call_rnd_sound_200 pause 5 # По развратной ветке if npc.dict_skill['Love'] < 5.0 and npc.dict_skill['Submission'] < 5.0 and npc.dict_skill['Depravity/Modesty'] >= 5.0: call lb_images2(loc='curr', npc=npc, loc_blur=1, img_1=['scenes/spank_hand.png'], npc_show=1, ava=0, img_2=[], emotion='_smile', decals=[], scr=1, dis=0.5) from _call_lb_images2_34 char_npc "- I already thought you would never ask." call lb_spank(npc) from _call_lb_spank_12 call lb_spank(npc) from _call_lb_spank_13 call lb_spank(npc) from _call_lb_spank_14 call lb_spank(npc) from _call_lb_spank_15 call lb_spank(npc) from _call_lb_spank_16 call end_touching_actions(npc) from _call_end_touching_actions return # Конец текущего 'троганья' label end_touching_actions(npc): play sound "sounds/level_UP.mp3" $ npc.dict_skill['Submission'] = npc.dict_skill['Submission'] + 100 $ npc.dict_skill['Depravity/Modesty'] = npc.dict_skill['Depravity/Modesty'] + 100 talker '{color=#5fe624}Submission: +100 {p=0}Depravity: +100 {/color}' # Сброс декалей и настроения $ def_reset_periodic_decals() call lb_cange_emotion(npc=npc, emotion="_norm") from _call_lb_cange_emotion_157 hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_fix_size hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_touching_action(npc) hide screen show_image with Dissolve(0.3) return # Отшила при троганьи label touching_fuck_off(npc): $ npc.dict_skill['Submission'] = npc.dict_skill['Submission'] + 100 $ npc.dict_skill['Depravity/Modesty'] = npc.dict_skill['Depravity/Modesty'] + 100 talker '{color=#5fe624}Submission: +100 {p=0}Depravity: +100 {/color}' hide screen show_in_senter show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_touching_action(npc) hide screen show_image hide screen show_image_fix_size with Dissolve(0.3) return # Троганье - анимации label touching_act(npc, act, emo='none'): $ x_aligin = 0.5 $ y_aligin = 1.0 $ re_syze = npc.height $ images = [] # Подгонка под конкретное тело $ body_ID = npc.body.ID # Замена тела в фэнтезийном режиме if var_dict['var_npc_fantasy'] != '': $ body_img = npc.images[1][0] $ body_ID = body_img.replace('bodies/','') $ body_ID = body_ID.replace('.png','') if body_ID == body_2.ID: $ re_syze = re_syze * 0.87 if body_ID == body_3.ID: $ re_syze = re_syze * 0.96 if body_ID == body_5.ID: $ re_syze = re_syze * 0.904 # Назначение картинок анимации # pat on the head - погладить по голове if act == 'pat on the head': $ images = [['scenes/touching_1_1.png', x_aligin + 0.015, y_aligin, 0.7, 'none'], ['scenes/touching_1_2.png', x_aligin + 0.015, y_aligin, 0.7, 'sounds/stroke_hair.mp3'], ['scenes/touching_1_1.png', x_aligin + 0.015, y_aligin, 0.7, 'none'], ['scenes/touching_1_2.png', x_aligin + 0.015, y_aligin, 0.7, 'sounds/stroke_hair.mp3'], ['scenes/touching_1_1.png', x_aligin + 0.015, y_aligin, 1.0, 'none']] # put a hand on the shoulder - положить руку на плечо if act == 'put a hand on the shoulder': $ images = [['scenes/touching_2_1.png', x_aligin, y_aligin, 1.0, 'none'], ['scenes/touching_2_2.png', x_aligin, y_aligin, 2.0, 'none']] # put a hand on the waist - положить руку на талию if act == 'put a hand on the waist': $ images = [['scenes/touching_3_1.png', x_aligin, y_aligin, 0.5, 'none'], ['scenes/touching_3_2.png', x_aligin, y_aligin, 2.0, 'none']] # paw thigh - лапать бедро if act == 'paw thigh': $ images = [['scenes/touching_4_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_2.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_2.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_2.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_4_1.png', x_aligin, y_aligin, 1.0, 'none']] # paw butt - лапать зад if act == 'paw butt': $ images = [['scenes/touching_5_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_5_2.png', x_aligin, y_aligin, 1.2, 'sounds/hhe.wav']] # paw breast - лапать грудь if act == 'paw breast': $ images = [['scenes/touching_6_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_6_2.png', x_aligin, y_aligin, 1.2, 'sounds/hhe.wav']] # put a finger in the mouth - засунуть палец в рот if act == 'put a finger in the mouth': $ images = [['scenes/touching_7_1.png', x_aligin, y_aligin, 0.7, 'none'], ['scenes/touching_7_2.png', x_aligin, y_aligin, 3.2, 'sounds/in_mouth.mp3']] # stroke cheek, touch lips - Гладить щёку, трогать губы if act == 'stroke cheek, touch lips': $ images = [['scenes/touching_8_1.png', x_aligin, y_aligin, 1.2, 'none'], ['scenes/touching_8_2.png', x_aligin, y_aligin, 1.2, 'none'], ['scenes/touching_8_3.png', x_aligin, y_aligin, 2.0, 'none']] # Hand on the cheek - рука на щеке if act == 'hand on the cheek': $ images = [['scenes/touching_8_2.png', x_aligin, y_aligin, 2.0, 'none']] # Цикл вывода анимации $ ind = 0 while ind < len(images): $ list_img = images[ind] $ img = im.Scale(list_img[0], 750*re_syze, 1080*re_syze, bilinear=True) $ list_img[0] = img if list_img[4] != 'none': play sound list_img[4] if emo != 'none': call lb_cange_emotion(npc, emo) from _call_lb_cange_emotion_33 call lb_show_npc(npc) from _call_lb_show_npc_45 show screen show_in_senter([list_img]) with Dissolve(0.3) $ renpy.pause(list_img[3], hard=True) $ ind += 1 return # Не пройдена проверка на раздетость label not_nude_love(npc): talker "First you need to undress [npc.name]." hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position hide screen show_in_senter with Dissolve(0.3) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) jump main_cicle return # Романтические/любовные взаимодействия label lb_love_actions(npc, act): # Проверка на количество взаимодействий if npc.dict_marks['romantic_actions'] >= 3: show screen mesage('Enough romance for today.') show screen my_GUI show screen location show screen NPC_show(npc) with Dissolve(0.3) return # Проверка на наличие свидетелей call lb_check_witness(npc, act) from _call_lb_check_witness_3 call lb_show_npc(npc) from _call_lb_show_npc_2 $ name_char = npc.name # Комплимент if act == 'compliment': if npc.dict_skill['Love'] < 1.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 1.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_14 talker 'I showered [npc.name] with compliments. She obviously likes.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features call lb_show_npc(npc=npc) from _call_lb_show_npc_3 char_npc '- Thanks [GG.name]. I am very pleased.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_1 # Поцелуй 1 if act == 'kiss_1': if npc.dict_skill['Love'] < 2.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 2.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_15 talker 'I looked deep into her eyes and saw her smile form on her face.' call lb_cange_emotion(npc=npc, emotion='_smile') from _call_lb_cange_emotion_2 call lb_show_npc(npc=npc) from _call_lb_show_npc_4 talker "I could not help but smile back. " hide screen show_image hide show_screen with Dissolve(1.0) pause 1.0 play sound "sounds/steps.mp3" talker "She placed her hands on the back of my head and pulled my face toward her." $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound talker "She locked her lips with mine." call lb_cange_emotion(npc=npc, emotion='_norm') from _call_lb_cange_emotion_3 call lb_show_npc(npc) from _call_lb_show_npc_5 # Поцелуй 2 if act == 'kiss_2': if npc.dict_skill['Love'] < 2.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 2.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_16 $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(0.5) call rnd_sound(sl_kiss) from _call_rnd_sound_1 talker "She gave me a big hug and kissed me." char_GG "I couldn't help but smile.{p=0} - Why is it so hot in here?" char_npc "- It's ok. " call rnd_sound(sl_kiss) from _call_rnd_sound_2 talker "She continued hanging onto me with her arms wrapped around my neck. She leaned in and gave me a seductive kiss that made my groin stir. I put my hands on her warm hips." call lb_show_npc(npc) from _call_lb_show_npc_6 # Handjob 1 if act == 'handjob_1': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_30 char_npc '- Would you like a massage?{p=0}[npc.name] said seductively.' char_GG '- Seriously?' char_npc '- Sure. I\'ve actually been taking a massage class, so I enjoy getting all the practice I can.' talker 'My heart, mind, and cock were all really loving the massage idea.' call approach_npc(npc) from _call_approach_npc_12 talker 'She deeply dug her fingertips into my shoulders. Then she moved them down my body, working out the kinks in every muscle in my back.' talker 'While working on my lower back she gently blew icy breath on my shoulders. Her hands went lower and lower until they were under my briefs and on my pelvis. My cock was fully engorged. ' talker 'She rested her head on my shoulder and nibbled on my ear. ' char_npc '- Relax, - {p=0}she whispered. {p=0}- Let me pleasure you.' talker 'She grabbed my shorts and briefs by the waist band and fought to pull them down. I had to shift around and help her a bit. She didn\'t take them all the way off, but left them lying on top of my knees. ' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_108 call play_animation(npc, a_Lick_ear, 3) from _call_play_animation_74 call show_scene(npc, s_Lick_ear_2) from _call_show_scene_564 talker 'My dick was shooting straight up in the air as [npc.name] massaged the mound right above it and licked my ear. ' talker 'Then with her index finger she traced a line on the underside of my cock from the bottom all the way to the sensitive head.' talker 'I felt her left hand cup my tightened balls. She squeezed them like she was juicing a lemon. ' call show_scene(npc, s_Handjob_1) from _call_show_scene_565 talker 'Then I felt her right hand gently caress my penis. She took it in her palm, and ran her hand up and down it like she was playing the flute. I tried to concentrate my breathing and meditate. ' call show_scene(npc, s_Handjob_2) from _call_show_scene_566 talker 'I hadn\'t been touched that way by a woman in a while, and I really didn\'t want to ejaculate prematurely.' call play_animation(npc, a_Handjob_1, 7) from _call_play_animation_75 talker 'She stroking me off. I kept my hands at my side and simply let her give me all these pleasures.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_love_actions(npc, act) from _call_end_love_actions_5 return 'Continue': call play_animation(npc, a_Handjob_1, 5) from _call_play_animation_76 'Cum': $ metka_choose = 1 pass talker 'Acting fast, I rolled over and positioned myself so I was straddling [npc.name]. She immediately put her hand back on my cock and stroked furiously. She knew what was about to happen.' call show_scene(npc, s_Handjob_4) from _call_show_scene_567 talker 'We were making strong eye contact, and she winked at me. That did it. ' call male_orgasm from _call_male_orgasm_14 show screen show_image_above('scenes/Handjob_4_cum.png') with Dissolve(0.5) call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_120 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_109 talker 'I erupted like a volcano. My first squirt shot about two feet over [npc.name]\'s head. The next one drenched her face and breasts. ' talker 'It was like I was peeing semen. For the life of me I couldn\'t stop cumming. I was drenching every inch of [npc.name]\'s torso. ' talker 'I was grunting loudly, and [npc.name] started laughing hysterically. ' play sound "sounds/female_laugh.mp3" call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_110 char_npc '- Holy shit!{p=0}She said between cackles. ' char_npc '- I really got you off. I\'ve never seen someone cum like that before.' call lb_cange_npc_features(npc=npc, feature='cum_face') from _call_lb_cange_npc_features_121 hide screen show_image_in_position_2 hide screen show_image_above with Dissolve(0.5) # Петтинг 1 if act == 'petting_1': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_17 talker 'She grabbed my wrists and placed my hands on her breasts.' call show_scene(npc, s_Petting_1) from _call_show_scene_48 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_30 talker 'I couldn\'t resist squeezing them for a few seconds.' call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes call rnd_sound(sl_giggle) from _call_rnd_sound_3 talker '[npc.name] looked down at my crotch and smiled. ' char_npc '- Looks like you enjoyed that.' talker 'My hand slid down her chest and stomach. Her legs were pressed together, restricting any access to her honey spot. I put my hand on the bottom of her hips and placed my chin on the top of her left shoulder. ' talker 'I used both to gently nudge her body onto her back.' call show_scene(npc, s_Show_1) from _call_show_scene_49 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_1 talker 'Her body rolled toward me.' call show_scene(npc, s_Petting_2) from _call_show_scene_50 talker 'My hand slid between her legs. I cupped her vagina, causing her to spread her legs. Now I had better access to please her. ' talker 'I ran two fingers up her outer labia, one on each side. They slid back down her labia before meeting in the middle and separating her pussy. I slid my middle finger inside her walls and found her to be pleasantly moist.' talker 'I dipped my first knuckle inside her and wiggled it around, gathering some of her juices. My finger slid up her slit, spreading the juices along her inner walls. I slid her clitoris between my pointer and middle finger and stroked it a few times.' call rnd_sound(sl_moan_soft) from _call_rnd_sound_4 play music "sounds/deep_breath.mp3" talker '[npc.name] released a soft moan and then subsequently took a deep breath.' call show_scene(npc, s_Petting_3) from _call_show_scene_51 with Dissolve(0.7) talker 'She took a few short breaths and then I slid my finger back down her slit and slid my whole finger slowly inside her pussy and held it there.' talker 'I leaned forward and began sucking on the side of her neck. My finger began to slide in and out of her pussy inch by inch for a few minutes. ' call rnd_sound(sl_moan) from _call_rnd_sound_5 talker 'She released a few more moans as I teased her body.' call show_scene(npc, s_Petting_1) from _call_show_scene_52 talker 'I circled her right nipple with my wet finger before cupping her breast and kneading it. ' call show_scene(npc, s_Petting_4) from _call_show_scene_53 talker 'My mouth moved down to her other breast. I licked her hard nipple and then blew warm air over it. ' call rnd_sound(sl_moan) from _call_rnd_sound_6 play music "sounds/short_breath.mp3" talker 'I heard her moan for me once more. Her breathing was starting to become short and heavier. My lips wrapped around her nipple and began to suck on it.' # Петтинг 2 if act == 'petting_2': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_18 talker 'I pulled her close to me and put my hands on the small of her back.' call approach_npc(npc) from _call_approach_npc talker 'My hard penis slid between her legs and rested against her crotch. I leaned in and planted kisses along her neck up to her ear. She lay her head back, giving me free access. ' talker 'I grabbed her butt cheeks in my hand and squeezed them causing her to giggle.' call rnd_sound(sl_giggle) from _call_rnd_sound_7 call show_scene(npc, s_Petting_5) from _call_show_scene_54 call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_2 char_npc '- You make me so hot.{p=0} She whispered.' call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_3 talker 'I ran my hands up and down her back before spinning her around. I pulled her close to me once again and slid my dick between her legs. I bowed up, the tip pressing against her lips. ' call show_scene(npc, s_Petting_1) from _call_show_scene_55 talker 'My hands moved underneath her arms and caressed her breasts once more. I rolled her hard nipples between my thumb and pointer finger. ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_8 talker 'Her moans filled the air. I kissed the nape of her neck sending chills through her body.' call show_scene(npc, s_Petting_2) from _call_show_scene_56 call rnd_sound(sl_moan_soft) from _call_rnd_sound_9 pause 0.7 play music "sounds/deep_breath.mp3" talker 'My left hand moved down to her mound and began massaging her labia. Her legs spread out opening her lips. I slid my finger up and down her slit. I held her waist with my right hand as her knees began to weaken. Her wet pussy was now spread wide open.' call show_scene(npc, s_Petting_3) from _call_show_scene_57 talker 'I inserted a finger tip inside her and moved it around, teasing her. I pulled my finger out then slowly slid it in up to my second knuckle. She cooed for me.' call rnd_sound(sl_moan) from _call_rnd_sound_10 talker 'I began sucking on the back of her neck as my finger slid up her slit and softly made circles around her clit. ' # spank_schoolgirl if act == 'spank_schoolgirl': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_43 call dialogue('_dialogues/act_spank_schoolgirl_love.json', npc) from _call_dialogue_60 # cunnilingus 1 if act == 'cunnilingus_1': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_19 talker 'I maneuvered my hands under her thighs and wrapped them around her hips, placing them on the inside of her inner thighs. ' call show_scene(npc, s_Cunnilingus_1) from _call_show_scene_58 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_31 talker 'My lips began to gently kiss her labia which began to spread, giving me access to her inner labia. I slid my tongue between the lower part of her labia and slowly ran it up her slit. ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_46 talker 'Her hips raised as she let out a soft moan.' talker 'I flicked the tip of my tongue over the hood of her now swollen clitoris then slid my tongue back down deep inside her lips and ran it down to her wet opening.' talker 'The smell of her womanhood intoxicated my nose. I lapped up a little of her sweet nectar. She tasted delicious. ' call show_scene(npc, s_Cunnilingus_2) from _call_show_scene_59 talker 'My tongue slid back up and down her slit. Her hips raised as my tongue traveled up her slit and lowered as my tongue ran down her lips. ' call rnd_sound(sl_moan) from _call_rnd_sound_47 play music "sounds/deep_breath.mp3" talker 'Her moans were increasing and growing in length.' talker 'My tongue swirled around her clit and I held her hips tightly as they bucked.' call rnd_sound(sl_moan) from _call_rnd_sound_48 char_npc '- Oh yes. MMMMMMMMM, - she cooed.' talker 'I spread her legs a bit wider and sucked her clit into my mouth. I spent a few seconds holding her hood in my mouth while I twirled my tongue around the inside of her rock hard clitoris. Her hips rolled towards my face a few times. ' call show_scene(npc, s_Show_1) from _call_show_scene_60 stop music fadeout 2.0 talker 'Her hips were floating off the bed then suddenly I pulled my head back and stopped.' char_npc '- Oh no. Don\'t stop. - She whispered.' talker 'I released her inner thighs and slid my hands under her butt cheeks. I palmed each cheek with my hand and then delved my tongue inside her pussy. ' call show_scene(npc, s_Cunnilingus_3) from _call_show_scene_61 pause 0.3 call rnd_sound(sl_penetration) from _call_rnd_sound_49 pause 0.2 call rnd_sound2(sl_moan_soft) from _call_rnd_sound2_2 talker 'I began to flick my tongue in and out of her spread hole. Her hips pressed against my face.' talker 'After a few seconds of pausing and then darting my tongue in and out, I slid my left hand down to her inner thigh and raised her right leg to a kneeling position. My tongue slid back up her slit and began swirling around her clit once more. ' call show_scene(npc, s_Cunnilingus_4) from _call_show_scene_62 call rnd_sound(sl_moan) from _call_rnd_sound_50 pause 1 play music "sounds/deep_breath.mp3" talker 'I slid my pointer and middle finger a few inches inside her pussy. Her hips bucked against my hand.' call rnd_sound(sl_moan) from _call_rnd_sound_51 char_npc '- Ohhhhhhh - she moaned.' talker 'I began sliding my fingers slowly in and out of her pussy as my tongue teased her clitoris. ' call show_scene(npc, s_Petting_3) from _call_show_scene_63 call rnd_sound(sl_penetration) from _call_rnd_sound_52 talker 'I heard motion and looked up to see her hands move to her chest. ' call show_scene(npc, s_Masturbation_1) from _call_show_scene_64 talker 'She began massaging her breasts and pinching her nipples as I pleasured her pussy. Her eyes were still closed. I place my right hand back on her left hip as she lifted her left leg and spread them wide open.' call rnd_sound(sl_moan) from _call_rnd_sound_53 play music "sounds/short_breath.mp3" char_npc '- Ohhhhhhhh yes, - she whined.' call show_scene(npc, s_Cunnilingus_4) from _call_show_scene_65 talker 'My tongue and fingers began to pick up pace. Her hips began to rock against my face with more enthusiasm.' talker 'Her hand slid down and rested on the back of my head. She pressed down signalling she wanted more pressure.' call rnd_sound(sl_scream) from _call_rnd_sound_54 talker 'She squealed a high pitch note. Her body shuddered. I felt her inner walls milking my fingers as if to hold tight and resist their exit each time I pulled them away from her inner pussy. I was hard as a rock and noticed my hips were grinding against the bed.' talker 'I pulled my fingers from her pussy and placed my hands around her hips, back on the inside of her groin. I pulled her skin gently back, pushing her clit out more. I flicked her clit a few times, paused a second, then flicked her clit again a few more times.' talker 'Her hips would jump each time I flicked her clit. I enjoyed teasing her and keeping her close to the edge. I continued this pace for a few minutes until she begged me to stop teasing.' char_npc '- I don\'t know what you are doing, but please don\'t stop anymore, - she begged.' call show_scene(npc, s_Cunnilingus_2) from _call_show_scene_66 talker 'I slid my tongue down her slit and began lapping up her flowing juices. Her pourage flowed onto my tongue. ' call show_scene(npc, s_Cunnilingus_3) from _call_show_scene_67 call rnd_sound(sl_slurp) from _call_rnd_sound_55 talker 'I buried my tongue deep inside her and began fucking her hole. I slid my right hand down a bit and started rolling the tip of my pointer finger over her clit.' char_npc '- Oh my god! - she exclaimed. ' char_npc '- Please don\'t stop. I am so close.' talker 'I could feel her legs lock as her body began to shudder. I stopped licking and massaging her clit for a split second and felt her body collapse onto the mattress. The moment I resumed, her hips flew off the bed. I quickly slid my tongue up to her clit while my left hand moved back to her pussy.' talker 'I began pumping my two fingers deep inside her walls while my tongue danced over her clitoris. ' call rnd_sound(sl_moan) from _call_rnd_sound_56 talker '[npc.name] released a series of long moans which turned into grunts as she drew closer to an orgasm. I wanted to tease her more, but I was not sure how much she could take. Her hips were bucking while both her hands pressed my face against her clit.' call rnd_sound(sl_scream) from _call_rnd_sound_57 char_npc '- Oh yes. Oh yes. Ohhhhhhhhhhhh I am going to come. - She exclaimed as her body locked inches.' talker 'I sucked in her clit as she was on the edge of her orgasm. My fingers were moving in and out quickly as her hips bucked against them. ' talker 'All the sudden her body froze and... ' call female_orgasm from _call_female_orgasm_3 play music "sounds/soft_breath.mp3" talker '...she sang the most joyous song my ears had ever heard. Her body fell to the bed and she lay motionless for a long time.' talker 'She was gasping to catch her breath and cooing at the same time. I lay motionless, letting her regain her composure.' # cunnilingus 2 if act == 'cunnilingus_2': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_20 call show_scene(npc, s_Petting_4) from _call_show_scene_68 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_32 talker 'I lay her on her back and began sucking on her breasts and licking her nipples. She played with my hair as my lips and tongue teased her body. After a few minutes she pressed down on my head.' talker 'I ran my tongue down the middle of her breasts, past her navel, over her mound and down her slit. ' call show_scene(npc, s_Cunnilingus_1) from _call_show_scene_69 talker 'She propped her legs up and spread them wide. I kissed the outside of her labia and felt wetness on my skin.' call show_scene(npc, s_Cunnilingus_2) from _call_show_scene_70 talker 'I could tell she was soaking wet already. I spent a long time alternating between licking her inner walls and teasing her clit with my tongue while sliding my finger in and out of her honey pot.' call rnd_sound(sl_moan_soft) from _call_rnd_sound_58 talker 'Her moans made me want to please her forever. I loved hearing the sounds of her joy. I increased the pace of my thrusts inside her as I began to quickly lap her clitoris and inner walls. ' call rnd_sound(sl_moan_soft) from _call_rnd_sound_59 pause 1 play music "sounds/deep_breath.mp3" char_npc '- Enough teasing, - she moaned. ' char_npc '- Please don\'t stop. Ohhh! Don\'t stop!' call show_scene(npc, s_Cunnilingus_4) from _call_show_scene_71 talker 'Her walls were crushing my two fingers as they slid in and out of her. My face was buried in a pool of her delicious juices. The heat radiating off her body could have cooked an egg.' talker 'Her body glistened with sexual desire. There is nothing like watching the skillful dance of a woman on the verge of an orgasm.' talker 'I felt my dick grow back to life. My fingers locked deep inside her as her hips thrust up, pushing my face away. ' call rnd_sound(sl_scream) from _call_rnd_sound_60 play music "sounds/short_breath.mp3" call show_scene(npc, s_Petting_3) from _call_show_scene_72 talker 'Her body shuddered like an earthquake before collapsing and melting into the bed. She continued to coo for minutes after her initial orgasm.' call rnd_sound(sl_slurp) from _call_rnd_sound_61 call show_scene(npc, s_Cunnilingus_4) from _call_show_scene_73 talker 'I continued to slowly slide my fingers in and out of her while lapping up her juices and kissing her pussy until it was safe to push her over the edge once more.' call female_orgasm from _call_female_orgasm_4 play music "sounds/soft_breath.mp3" talker 'It took but minutes for her to experience what I believed to be her first multiple orgasm. ' talker 'She gasped for breath over and over, moaning and groaning in between gasps as my tongue pleased her.' # striptease_1 if act == 'striptease_1': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка открыто ли взаимодействие if def_check_open_action(npc, 'open_strip_action'): # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_27 # Стриптиз # Переодевание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_28 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_29 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_30 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_31 pause 1.0 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_83 call lb_show_npc(npc) from _call_lb_show_npc_106 hide screen show_image_above with Dissolve(0.5) char_npc '- How naughty you are.' play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 'I turned on music on my smartphone.' # Стрпитиз char_npc '- I hope my dance excites you. One song is not so little.' char_GG '- Can not wait.' show screen show_image_above('scenes/black.png') with Dissolve(1.0) '[npc.name] began to sway a bit awkwardly. It was obvious she had barely danced to any modern music, much less stripped to it.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_84 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_70 call show_scene(npc, s_Strip_1) from _call_show_scene_290 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_291 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_292 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_293 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_294 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_295 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_296 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_297 pause 1.0 char_GG '- Striptease involves undressing?' call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_71 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_85 call lb_show_npc(npc) from _call_lb_show_npc_107 char_npc '- How impatient you are, - [npc.name] purred.' 'She began to unbutton her collar, her hands trembling with excitement as it fell away from her.' play sound "sounds/clothe.mp3" show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_72 call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_86 call lb_show_npc(npc) from _call_lb_show_npc_108 hide screen show_image_above char_npc '- purr, purr' $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_73 call lb_show_npc(npc) from _call_lb_show_npc_109 'The uncomfortable look on her face and her stiff posture told my she didn\'t spend much time naked, much less in front of man.' 'God this is perfect.' $ npc.clothes.pop() play sound "sounds/clothe.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_74 call lb_show_npc(npc) from _call_lb_show_npc_110 menu: 'Continue': pass show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_75 call show_scene(npc, s_Strip_3, 1.5) from _call_show_scene_298 hide screen show_image_above with Dissolve(1.0) pause 1.0 call show_scene(npc, s_Strip_3, 1.5, True) from _call_show_scene_299 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_300 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_301 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5) from _call_show_scene_302 pause 1.0 call show_scene(npc, s_Strip_2_1, 1.5, True) from _call_show_scene_303 pause 2.0 char_npc '- Time for the main course!' 'I looked with all my eyes.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/clothe.mp3" '[npc.name] took off her panties, revealing her tits and pussy.' call show_scene(npc, s_Strip_4, 1.5) from _call_show_scene_304 hide screen show_image_above with Dissolve(0.5) pause 1.0 call show_scene(npc, s_Strip_4, 1.5, True) from _call_show_scene_305 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_306 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_307 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5) from _call_show_scene_308 pause 1.0 call show_scene(npc, s_Strip_1_1, 1.5, True) from _call_show_scene_309 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5) from _call_show_scene_310 pause 1.0 call show_scene(npc, s_Strip_2_2, 1.5, True) from _call_show_scene_311 pause 2.0 show screen show_image_above('scenes/black.png') hide screen show_image_in_position_2 with Dissolve(0.5) stop music fadeout 1.0 play music2 "sounds/deep_breath.mp3" $ npc.clothes = ['Nude'] call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_87 call lb_show_npc(npc) from _call_lb_show_npc_111 hide screen show_image_above with Dissolve(0.5) '[npc.name] was breathing hard, standing in front of me completely naked and fighting her own arousal.' char_GG '- You\'re idial.' call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_88 call lb_show_npc(npc) from _call_lb_show_npc_112 char_npc '- Thanks.' call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_89 call lb_show_npc(npc) from _call_lb_show_npc_113 '[npc.name] hesitated, feeling uncomfortable with what he apparently wanted to do.' 'I smiled encouragingly.' char_npc '- I haven\'t shown everything yet.' stop music2 fadeout 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call show_scene(npc, s_Strip_5) from _call_show_scene_312 hide screen show_image_above with Dissolve(0.5) char_GG '- Awesome!' call lb_show_npc(npc, dis=1.0) from _call_lb_show_npc_114 'I hugged and kissed [npc.name].' $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) with Dissolve(1.0) call rnd_sound(sl_kiss) from _call_rnd_sound_137 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_138 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_139 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_140 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_141 pause 1.0 call rnd_sound(sl_kiss) from _call_rnd_sound_142 pause 1.0 # Стриптиз не открыт else: 'Striptease is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # lap_dance_1 if act == 'lap_dance_1': if npc.dict_skill['Love'] < 5.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 5.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка открыто ли взаимодействие if def_check_open_action(npc, 'open_lap_dance_action'): # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_28 menu: 'I turned on music on my smartphone.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" fadein 1.0 # Приватный танец char_GG '- Come, honey, do me a lap dance, please. - I asked softly.' talker '[npc.name] looked at me and smiled slightly.' call show_scene(npc, s_Show_3, dis=0.7) from _call_show_scene_313 talker 'Then, moving her hips seductively, she turned around.' show screen show_image_above("images/other/bgd_red.png") with Dissolve(0.1) call rnd_sound(sl_spank) from _call_rnd_sound_143 hide screen show_image_above with Dissolve(1) talker '[npc.name] cried out, looking back at me with surprise.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_105 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_76 call rnd_sound(sl_moan) from _call_rnd_sound_144 char_npc '- Ouch!' char_GG 'I answered with a smile. - Don\'t pretend you didn\'t like that. ' stop music fadeout 7.5 call rnd_sound(sl_giggle) from _call_rnd_sound_145 call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_77 char_npc '- And I wasn\'t going to.' call show_scene(npc, s_Lap_dance_1_2, dis=0.7) from _call_show_scene_314 play music "sounds/deep_breath.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_78 talker '[npc.name] breathed excitedly as she sat down on my lap.' char_npc '- You always know how to turn me on, - I whispered.' call play_animation(npc, a_lap_dance_1) from _call_play_animation_66 talker '[npc.name] began to wiggle her ass on my lap. The movement was awkward but made me horny.' call show_scene(npc, s_Petting_1) from _call_show_scene_315 talker 'I began groping her, caressing her tits...' call show_scene(npc, s_Petting_8) from _call_show_scene_316 talker '...and squeezing her nipples. ' call rnd_sound(sl_moan) from _call_rnd_sound_146 talker '[npc.name]\'s entire body stiffened, and she cried out in quietly and I could feel her nipples begin to harden. ' call show_scene(npc, s_Lap_dance_2_1) from _call_show_scene_317 talker 'I slowly moved one of my hands down her side onto her thigh. She sucked in, but didn\'t stop me.' char_GG '- You\'re driving me crazy.{p=0} I whispered in her ear. ' char_GG '- Do you want me to play with your clit?{p=0} Talk I while my hand moved slowly closer to her pussy.' talker 'Last step.' char_npc '- ye... yes, please!' talker 'Most Strip clubs don\'t allow pussy play. Oh well, most are not all.' talker 'I put my hand between her legs and began to rub [npc.name]\'s clit.' call rnd_sound(sl_penetration) from _call_rnd_sound_147 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_318 talker '[npc.name] began to breathe faster, eventually letting out a moan as I worked her pussy faster.' stop music fadeout 1.5 call play_animation(npc, a_lap_dance_2) from _call_play_animation_67 talker '[npc.name] enjoyed it, and every few seconds a moan escaped her lips.' call rnd_sound(sl_moan) from _call_rnd_sound_148 char_npc '- Plea...please, I need it.' call play_animation(npc, a_lap_dance_2_tempo) from _call_play_animation_68 call rnd_sound(sl_penetration) from _call_rnd_sound_149 call show_scene(npc, s_Lap_dance_2_2) from _call_show_scene_319 '[npc.name] trembled.' call female_orgasm from _call_female_orgasm_10 char_GG '- You are so horny.' call show_scene(npc, s_Petting_8) from _call_show_scene_320 'I said, fingering her nipple with my fingers.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_106 else: # Приватный танец не открыт 'Lap dance is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # party_show_1 if act == 'party_show_1': if npc.dict_skill['Love'] < 5.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 5.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка открыто ли взаимодействие else: if def_check_open_action(npc, 'open_strip_show_action'): # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_31 show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Over time. And a lot of calls.': pass play music "sounds/party_crowd.mp3" fadein 2.5 $ npc.clothes = ['Strip'] call lb_add_clothe_npc(npc=npc, clothe=strip_dress_panty_075) from _call_lb_add_clothe_npc_59 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_bra_075) from _call_lb_add_clothe_npc_60 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_gloves_075) from _call_lb_add_clothe_npc_61 call lb_add_clothe_npc(npc=npc, clothe=strip_dress_collar_075) from _call_lb_add_clothe_npc_62 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_127 call lb_show_npc2(npc) from _call_lb_show_npc2_62 show screen show_image_above('quests/crowd.png') with Dissolve(2.0) pause 1.0 play sound "sounds/cheer_crowd.mp3" char_npc '- Music?' show screen show_image_above('scenes/black.png') with Dissolve(0.5) menu: 'Turn on the music.': play music "sounds/Kellee_Maize_-_01_-_Dancing_With_Lightning.mp3" call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_111 hide screen show_image_above with Dissolve(1.0) call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_568 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_569 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_570 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_571 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_572 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_573 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_574 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_575 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_576 pause 1.0 call show_scene(npc, s_Strip_1, 0.5, True) from _call_show_scene_577 pause 1.0 call show_scene(npc, s_Strip_1, 0.5) from _call_show_scene_578 pause 1.0 call show_scene(npc, s_Strip_2, 0.5, True) from _call_show_scene_579 pause 1.0 call show_scene(npc, s_Strip_2, 0.5) from _call_show_scene_580 pause 1.0 call lb_show_npc2(npc) from _call_lb_show_npc2_63 pause 1.5 talker '- Show your boobs!' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_122 call lb_show_npc2(npc) from _call_lb_show_npc2_64 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_112 talker '- Yes! Boobs, boobs!{p=0}The rest supported.' talker '[npc.name] froze for a second and began to elegantly undress to the music.' # Раздевание play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_65 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_113 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_66 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_114 pause 1.0 play sound "sounds/clothe.mp3" $ npc.clothes.pop() call lb_show_npc2(npc) from _call_lb_show_npc2_67 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_115 pause 1.0 talker 'Then she continued to dance.' # Продолжение танца call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_581 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_582 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_583 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_584 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5) from _call_show_scene_585 pause 1.0 call show_scene(npc, s_Strip_2_1, 0.5, True) from _call_show_scene_586 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_587 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_588 pause 1.0 call show_scene(npc, s_Strip_3, 0.5) from _call_show_scene_589 pause 1.0 call show_scene(npc, s_Strip_3, 0.5, True) from _call_show_scene_590 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_68 hide screen show_image_above with Dissolve(0.5) talker '- Panties!{p=0}- Take off your panties!{p=0}The audience shouted.' talker 'This time [npc.name] didn\'t even hesitate.' show screen show_image_above('scenes/black.png') with Dissolve(0.5) $ npc.clothes.pop() play sound "sounds/clothe.mp3" call lb_show_npc2(npc) from _call_lb_show_npc2_69 hide screen show_image_above with Dissolve(0.5) play sound "sounds/cheer_crowd.mp3" talker 'The naked, flushed girl breathing heavily and obviously not from fatigue.' # Продолжение танца call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_591 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_592 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_593 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_594 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_595 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_596 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_597 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_598 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_599 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_600 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_601 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_602 pause 1.0 call show_scene(npc, s_Strip_4, 0.5) from _call_show_scene_603 pause 1.0 call show_scene(npc, s_Strip_4, 0.5, True) from _call_show_scene_604 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5) from _call_show_scene_605 pause 1.0 call show_scene(npc, s_Strip_1_1, 0.5, True) from _call_show_scene_606 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_607 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5, True) from _call_show_scene_608 pause 1.0 call show_scene(npc, s_Strip_2_2, 0.5) from _call_show_scene_609 pause 1.0 show screen show_image_above('scenes/black.png') with Dissolve(0.5) call lb_show_npc2(npc) from _call_lb_show_npc2_70 stop music fadeout 1.5 hide screen show_image_above hide screen show_image_in_position_2 with Dissolve(0.5) char_GG '- How do you like our little performance?' play sound "sounds/cheer_crowd.mp3" call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_128 call lb_show_npc2(npc) from _call_lb_show_npc2_71 char_GG '- I see you liked it. I think the girl too.' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_123 call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_129 # Вечеринковое шоу не открыто else: 'Party show is not open (unlocked in the "Easy money" quest).' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # blowjob 1 if act == 'blowjob_1': if npc.dict_skill['Love'] < 5.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 5.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return talker 'She paused and slowly stroked my dick with her hand. ' call show_scene(npc, s_Blowjob_1) from _call_show_scene_74 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_33 call rnd_sound(sl_kiss) from _call_rnd_sound_62 talker 'I put my hand on her shoulders as she leaned in and sucked the tip in her mouth.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_75 talker 'She pulled my dick out of her mouth briefly and asked. ' char_npc '- Do you like that?' char_GG '- Very much.{p=0} I replied as she continued.' call play_animation(npc, a_blowjob) from _call_play_animation_30 call show_scene(npc, s_Blowjob_2) from _call_show_scene_76 call rnd_composite_sound(cs_deeptroat) from _call_rnd_composite_sound_6 talker 'She took my length slowly in her mouth and deep throated my dick a few strokes.' play music "sounds/deep_breath_man.mp3" call play_animation(npc, a_blowjob) from _call_play_animation_31 talker 'Her tongue and lips were skillful. I wondered how much experience she had gained already. My hips began to bounce of the bed. For several minutes she alternated methods, keeping me on the edge of an orgasm.' $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_love_actions(npc, act) from _call_end_love_actions return 'Continue': call play_animation(npc, a_blowjob) from _call_play_animation_32 'Cum': $ metka_choose = 1 pass char_GG '- Ohhhh that feels so good. I am going to come.' call show_scene(npc, s_Blowjob_3) from _call_show_scene_77 play music "sounds/short_breath_man.mp3" char_npc '-Give me your tasty sperm. {p=0} She whispered.' call show_scene(npc, s_Blowjob_2) from _call_show_scene_78 pause 0.7 call male_orgasm from _call_male_orgasm_6 pause 0.7 play music "sounds/soft_breath_man.mp3" talker 'She began bobbing quickly until she sent me into spasms. I was falling for this skills. ' talker 'She took all my sperm in her mouth... ' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_7 talker '...and swallowed it. ' call show_scene(npc, s_Other_1) from _call_show_scene_79 play music2 "sounds/soft_breath.mp3" talker 'I lay exhausted. ' talker '.' talker '..' talker '...' # blowjob 2 if act == 'blowjob_2': if npc.dict_skill['Love'] < 5.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 5.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_44 call dialogue('act_blowjob_2_love.sss', npc) from _call_dialogue_61 # cowgirl 1 if act == 'cowgirl_1': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_21 call show_scene(npc, s_Cowgirl_1) from _call_show_scene_80 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_34 talker 'She was now on top of my body. She leaned her body up to a sitting position and began grinding her pussy against my dick. I could not remember ever feeling such a tight pussy before her.' call rnd_sound2(sl_penetration) from _call_rnd_sound2_3 call show_scene(npc, s_Cowgirl_2) from _call_show_scene_81 call rnd_sound(sl_grunt) from _call_rnd_sound_63 talker 'I grunted as [npc.name] slammed her hips down driving my throbbing dick deep into her slick pussy.' play music "sounds/deep_breath_man.mp3" call play_animation(npc, a_cowgirl) from _call_play_animation_33 talker 'I watched [npc.name] grind her hips against me. Her breasts bouncing up and down, glistening in sweat.' call show_scene(npc, s_Cowgirl_2) from _call_show_scene_82 char_GG '-I am getting close.{p=0} I warned her.' char_npc 'She replied, {p=0} - Mmmmmm.' call play_animation(npc, a_cowgirl_close) from _call_play_animation_34 talker 'I watched as she smiled while listing her body and removing my dick from inside her. In a fluid movement she slid down my body. ' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_love_actions(npc, act) from _call_end_love_actions_1 return 'Continue': call play_animation(npc, a_cowgirl, 3) from _call_play_animation_35 call play_animation(npc, a_cowgirl_close, 3) from _call_play_animation_36 'Cum': $ metka_choose = 1 pass call show_scene(npc, s_Blowjob_1) from _call_show_scene_83 talker 'She surprised me when she grabbed my dick at the base with her hand and placed it between her lips.' call show_scene(npc, s_Blowjob_2) from _call_show_scene_84 call rnd_sound(sl_slurp) from _call_rnd_sound_64 talker 'I closed my eyes and enjoyed the sensations as she sucked the juices of my dick. ' call play_animation(npc, a_blowjob) from _call_play_animation_37 talker 'Her head bobbed up and down as my hips thrusted. ' talker 'I could not hold back anymore. ' call show_scene(npc, s_Blowjob_2) from _call_show_scene_85 play music "sounds/soft_breath_man.mp3" call male_orgasm from _call_male_orgasm_7 talker 'My body locked as I exploded inside her burning hot lips.' call rnd_composite_sound(cs_swallow) from _call_rnd_composite_sound_8 talker 'She swallowed my juices. ' call show_scene(npc, s_Other_1) from _call_show_scene_86 play music2 "sounds/soft_breath.mp3" talker 'She lay next to me with half her body on top of mine. Her soft breast pushed against my chest. I placed my hand on her right cheek and caressed her skin.' # missionary_position 1 if act == 'missionary_position_1': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_22 talker 'I moved up her body and slid my dick inside her pussy. ' call show_scene(npc, s_Missionary_1, 1.0) from _call_show_scene_87 call rnd_sound(sl_penetration) from _call_rnd_sound_65 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_35 talker 'Her hips bucked against me upon entry. God had sent me an angel named [npc.name].' call show_scene(npc, s_Missionary_2) from _call_show_scene_88 call rnd_sound(sl_moan_soft) from _call_rnd_sound_66 pause 0.7 call play_animation(npc, a_missionary) from _call_play_animation_38 play music "sounds/deep_breath.mp3" talker 'I slowly began to rock my hips against her body which lay exhausted on the bed. Her breathing was heavy and short. Her moans long and loud. I lay my head next to her\'s as I continued thrusting my dick inside her hot, slick walls.' call show_scene(npc, s_Missionary_2) from _call_show_scene_89 stop music fadeout 0.5 char_npc '- I don\'t think I can take anymore. She exclaimed. ' char_npc '- I can\'t breathe.' talker 'I slowed down my pace and gave her a chance to breathe momentarily.' call play_animation(npc, a_missionary, 3) from _call_play_animation_39 call rnd_sound(sl_giggle) from _call_rnd_sound_67 talker 'We both laughed. ' play music "sounds/deep_breath_man.mp3" call play_animation(npc, a_missionary_tempo, 7, 0.5) from _call_play_animation_40 play music2 "sounds/deep_breath.mp3" talker 'We gasp for what seemed like a limited supply of air as the tempo increased.' stop music2 call play_animation(npc, a_missionary_tempo, 6, 0.3) from _call_play_animation_41 talker 'Her moans drove me insane, each one making me more excited. My hips beginning to thrust madly like a piston against her body, in and out, in and out. Her nails drug against my back causing me to arch my back.' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_love_actions(npc, act) from _call_end_love_actions_2 return 'Continue': call play_animation(npc, a_missionary_tempo_scream, 6, 0.3) from _call_play_animation_42 'Cum': $ metka_choose = 1 pass call show_scene(npc, s_Missionary_1) from _call_show_scene_90 call male_orgasm from _call_male_orgasm_8 play music "sounds/soft_breath.mp3" play music2 "sounds/soft_breath_man.mp3" talker 'An explosion happened deep inside her milking walls, spraying her insides with semen, sending her over the edge once again. Our bodies drenched with sweat. Our chests heaving up and down. ' call show_scene(npc, s_Other_1) from _call_show_scene_91 talker 'Pheromones and testosterone flowing through the air.' # missionary_position 2 if act == 'missionary_position_2': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_45 call dialogue('_dialogues/act_missionary_position_2_love.json', npc) from _call_dialogue_62 # anal 1 if act == 'anal_1': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка раздет ли персонаж if npc.clothes[0] != 'Nude': talker "First you need to undress [npc.name]." show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_24 call show_ava_for_scenes(npc, 1, '_norm') from _call_show_ava_for_scenes_39 call show_scene(npc, s_Show_2_2) from _call_show_scene_120 'I started rubbing her ass cheeks. Moving my hand around, I made my way in between them and found her asshole. Not sure what to expect, I ran a finger over the puckered bud.' 'Climbing on her, I asked.' call show_scene(npc, s_doggy_3) from _call_show_scene_121 char_GG '- Do you like anal sex?' char_npc '- I tried it once. All I got for it was a sore butthole.' char_GG '- Can we give it another try? - I squeezed her tit with one hand while pulled my finger out and positioned my hardening pole between her ass cheeks.' call rnd_sound(sl_moan_soft) from _call_rnd_sound_88 char_npc '- Yesssssss, lover, - she hissed. - If you can make my ass feel as good as you did my pussy, go ahead.' call show_scene(npc, s_doggy_1) from _call_show_scene_122 'My cock slipped easily into her tight little hole. ' play music "sounds/short_breath.mp3" call rnd_sound(sl_penetration) from _call_rnd_sound_89 call rnd_sound2(sl_moan) from _call_rnd_sound2_13 call show_scene(npc, s_doggy_2) from _call_show_scene_123 'I began to slide in and out slowly. ' call show_scene(npc, s_doggy_1) from _call_show_scene_124 pause 0.7 call play_animation(npc, a_anal) from _call_play_animation_50 'I began to slide in and out smoothly. [npc.name] cooed, pushing her ass back into me to match my strokes.' call show_ava_for_scenes(npc, 1, '_smile') from _call_show_ava_for_scenes_40 char_npc '- Ahhh, so much better, - she whispered. - I wish I\'d married you, [GG.name].' # Кончить $ metka_choose = 0 while metka_choose == 0: menu: 'Stop': $ metka_choose = 1 call end_love_actions(npc, act) from _call_end_love_actions_4 return 'Continue': call play_animation(npc, a_anal) from _call_play_animation_51 'Cum': $ metka_choose = 1 pass play music "sounds/deep_breath_man.mp3" 'Those words incited me; I began pumping her more frantically. ' call play_animation(npc, a_anal_tempo) from _call_play_animation_52 'It wasn\'t long before I... ' call rnd_sound(sl_penetration) from _call_rnd_sound_90 call rnd_sound2(sl_moan) from _call_rnd_sound2_14 call show_scene(npc, s_doggy_2) from _call_show_scene_125 call male_orgasm from _call_male_orgasm_11 '... groaned, my balls released a load into her rectum. I collapsed on her again, enjoying the feel of our sweaty flesh pressed together.' call show_scene(npc, s_doggy_3) from _call_show_scene_126 'I rolled her over and covered her belly with kisses, then her breasts, then her face. ' call show_scene(npc, s_black) from _call_show_scene_127 call rnd_sound(sl_kiss) from _call_rnd_sound_91 pause 1 call rnd_sound(sl_kiss) from _call_rnd_sound_92 pause 1 call rnd_sound(sl_kiss) from _call_rnd_sound_93 pause 1 call show_scene(npc, s_Other_1) from _call_show_scene_128 play music "sounds/soft_breath.mp3" play music2 "sounds/soft_breath_man.mp3" char_GG '- [npc.name] , that was wonderful, - I murmured as I kissed her lips.' # masturbation_1 if act == 'masturbation_1': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_1 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_46 call dialogue('_dialogues/act_masturbation_1_love.json', npc) from _call_dialogue_63 # masturbation_2 if act == 'masturbation_2': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_2 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_47 call dialogue('_dialogues/act_masturbation_2_love.json', npc) from _call_dialogue_64 # BDSM_1 if act == 'BDSM_1': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_3 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_48 call dialogue('_dialogues/act_BDSM_1_love.json', npc) from _call_dialogue_65 # BDSM_2 if act == 'BDSM_2': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_4 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_49 call dialogue('_dialogues/act_BDSM_2_love.json', npc) from _call_dialogue_66 # BDSM_3 if act == 'BDSM_3': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_50 # Переодевание в casual одежду если она есть $ def_change_clothe_set(npc, 'asual') $ npc.location = bdsm call dialogue('act_bdsm_club.sss', npc) from _call_dialogue_67 call end_love_actions(npc, act) from _call_end_love_actions_6 call lb_return_to_NPC_Action(npc=npc, timeX=120) from _call_lb_return_to_NPC_Action_1 hide screen NPC_romantic_action return # threesome_1 if act == 'threesome_1': if npc.dict_skill['Love'] < 7.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 7.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_5 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_51 call dialogue('_dialogues/act_threesome_1_love.json', npc) from _call_dialogue_68 # watch_masturbate_1 if act == 'watch_masturbate_1': if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 3.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_6 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_52 call dialogue('_dialogues/act_watch_masturbate_1_love.json', npc) from _call_dialogue_69 # lesbo_sex if act == 'lesbo_sex': if npc.dict_skill['Love'] < 4.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 4.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_53 call dialogue('_dialogues/act_lesbo_sex_love.json', npc) from _call_dialogue_70 # threesome_MFF if act == 'threesome_MFF': if npc.dict_skill['Love'] < 6.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 char_npc '- I think that would be inappropriate, [GG.name]. {p=0}{color=#d53232}(Love: +100){/color}' talker 'Need 6.0 love' show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return else: # Проверка на раздетость if npc.clothes[0] != 'Nude': call not_nude_love(npc) from _call_not_nude_love_7 # Проверка на желательные, нежелательные действия call lb_check_lake_act(npc, act) from _call_lb_check_lake_act_54 call dialogue('_dialogues/act_threesome_MFF_love.json', npc) from _call_dialogue_71 call end_love_actions(npc, act) from _call_end_love_actions_3 return # Конец текущего романтического взаимодействия label end_love_actions(npc, act=''): # Счётчики call lb_add_sex_action_to_stat(npc, act) from _call_lb_add_sex_action_to_stat_2 $ npc.dict_marks['romantic_actions'] += 0 stop music stop music2 play sound "sounds/level_UP.mp3" $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker '{color=#5fe624}Love: +0.08{/color}' hide screen show_scn hide screen show_image_in_position_2 hide screen show_image_in_position with Dissolve(0.7) show screen my_GUI show screen location show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image with Dissolve(0.3) return # Изменение характеристик НПС-а label change_skill_npc(npc, skill, change): $ npc.dict_skill[skill] += change if npc.dict_skill[skill] > 8: $ npc.dict_skill[skill] = 8 return # Отклонение НПС-а label stray_npc(npc, dissolve=0.3): $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*0.9, 1080*0.9, bilinear=True) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(dissolve) return # Скрыть диалоговое окно label hide_say: if var_dict['visiable_say'] == 1: $ var_dict['visiable_say'] = 0 $ renpy.hide_screen("say", layer=None) $ renpy.pause(100000, hard=True) else: $ var_dict['visiable_say'] = 1 #$ renpy.show_screen("say", layer=None) #$ renpy.pause(100000, hard=True) return # Мужской оргазм label male_orgasm: pause 0.5 call rnd_sound(sl_male_orgasm) from _call_rnd_sound_68 show screen show_image_above("images/other/bgd_wite.png") pause 0.2 call rnd_sound2(sl_cum) from _call_rnd_sound2_4 with Dissolve(0.3) hide screen show_image_above with Dissolve(1) pause 0.3 pause 1 if var_dict["фентези_файл"] != "да": $ GG.joy += 10 talker ' {color=#5fe624}My Joy: + 100{/color}' return # Анимация label play_animation(npc, anim_obj, count=7, dis=0.5): while count > 0: $ index_scene = 0 $ count_scene = len(anim_obj.sceness) while count_scene > 0: call show_scene(npc, anim_obj.sceness[index_scene], dis) from _call_show_scene_92 if anim_obj.sounds[index_scene] != 'none': call rnd_sound(anim_obj.sounds[index_scene]) from _call_rnd_sound_69 pause anim_obj.pauses[index_scene] $ count_scene -= 1 $ index_scene += 1 $ count -= 1 return # Вывод сцены label show_scene(npc, scn, dis=0.7, mirror=False): show screen show_scn(npc, scn, mirror) hide screen show_image_fix_size with Dissolve(dis) return # Женский оргазм label female_orgasm: call rnd_sound(sl_orgasm) from _call_rnd_sound_70 pause 3.5 show screen show_image_above("images/other/bgd_wite.png") with Dissolve(0.3) hide screen show_image_above with Dissolve(1) pause 1 return # Приближение НПС-а label approach_npc(npc, dissolve=1.0): $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ img_npc = im.Scale(img_npc, 750*2, 1080*2, bilinear=True) show screen show_image(img_list=[img_loc]) show screen show_image_in_position([[img_npc, 100, 50]]) hide screen show_image_fix_size with Dissolve(dissolve) return # Проигрывание составного звука label rnd_composite_sound(obj): $ count = len(obj.sounds) $ ind = 0 while count > 0: call rnd_sound(obj.sounds[ind]) from _call_rnd_sound_71 pause obj.pauses[ind] $ count -= 1 $ ind += 1 return # Проигрывание случайного звука из списка label rnd_sound2(list_sounds): $ adress_sound = random.choice(list_sounds.sounds) play sound2 adress_sound return # Проигрывание случайного звука из списка label rnd_sound(list_sounds): $ adress_sound = random.choice(list_sounds.sounds) play sound adress_sound return # Вывод аватарки для сцен label show_ava_for_scenes(npc, mark, emotion): call lb_cange_emotion(npc, emotion) from _call_lb_cange_emotion $ x_img_npc = npc_image(npc) $ img_ava = npc_ava(npc, mark) show screen show_image_in_position_2([[img_ava, 1550, 55]]) with Dissolve(0.3) call lb_cange_emotion(npc, '_norm') from _call_lb_cange_emotion_1 return # Раздевание в романтических взаимодействиях label vol_undress(npc): # Проверка на наличие свидетелей call lb_check_witness(npc, 'undress') from _call_lb_check_witness_4 call lb_show_npc(npc) from _call_lb_show_npc if npc.dict_skill['Love'] < 3.0: play sound "sounds/error.mp3" $ npc.dict_skill['Love'] += 4 talker '[npc.name] is not ready to undress before you. {p=0}{color=#d53232}(Love: +100){/color}' show screen NPC_show(npc) show screen NPC_romantic_action(npc) hide screen show_image return $ count = len(npc.clothes) while count > 1: $ clothe = npc.clothes[count - 1] talker "[npc.name] takes off her [clothe.name]." play sound "sounds/clothe.mp3" pause 0.5 $ npc.clothes.remove(clothe) call lb_show_npc(npc, 1.5) from _call_lb_show_npc_1 $ count -= 1 show screen NPC_show(npc) show screen NPC_romantic_action(npc) $ npc.clothes = ['Nude'] hide screen show_image return # Подарить подарок label lb_give_gift(npc): call lb_show_npc(npc) from _call_lb_show_npc_7 $ var_dict['npc3'] = npc # Проверка на исследованность нпс if npc.dict_skill['Exploration'] < 1.0: talker 'Do not give gifts to a stranger.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Проверка на количество подарков if npc.dict_marks['gift'] > 10: talker 'Enough gifts for today.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Начало talker 'What should I give [npc.name]?' # Выбор объекта в инвентаре. $ var_dict['selected_item'] = '' show screen choose_item(inv_GG, 'lb_give_gift2') jump main_cicle return # Подарить подарок 2 label lb_give_gift2: $ gift = var_dict['selected_item'] $ npc = var_dict['npc3'] $ name_char = npc.name # Является ли то что дарят подарком if isinstance(gift, Book) or 'gift' in gift.features: $ npc.dict_marks['gift'] = npc.dict_marks['gift'] + 1 # Реакция на подарок python: int_likes = 0 for gift_feature in gift.features: for hide_feature in npc.hide_features: if gift_feature == hide_feature[0]: if hide_feature[1] == 'likes': int_likes = int_likes + 1 if hide_feature[1] == 'doesn\'t like': int_likes = int_likes - 1 $ add_friend = 0.05*int_likes if int_likes > 0: $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + add_friend play sound "sounds/level_UP.mp3" char_npc '- Thank you, this is very nice. {color=#5fe624}(Friendliness: + [add_friend]){/color}' if int_likes == 0: char_npc '- Okay, I\'ll take it. {color=#6f6f6f}(Friendliness: [add_friend]){/color} ' if int_likes < 0: $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + add_friend play sound "sounds/error.mp3" char_npc '- Thanks of course, but to be honest I can’t stand such gifts. {color=#d53232}(Friendliness: [add_friend]){/color} ' # Удалить подарок из инвентаря игрока $ del_obj(gift, inv_GG) else: # Квестовый предмент if gift.type == 'quest': call lb_use_quest_item(gift) from _call_lb_use_quest_item show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return else: # Препарат if 'препарат для НПС' in gift.features: $ var_dict['use_drug_NPC'] = gift call lb_use_drug_NPC(npc) from _call_lb_use_drug_NPC else: char_npc '- I don’t know why I need this.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) call minuts(5) from _call_minuts_2 return # Возврат из меню выбора подарка в инвентаре label return_inventary_gift: $ npc = var_dict['npc3'] show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Изменение сета одежды label lb_change_clothe_set(npc, set): $ var_dict['current_set'] = set $ npc.clothes = set return # Показ партрета НПС-а label show_portrait(npc): $ img_ava = npc_ava(npc) show screen show_image_in_position([[img_ava, 27, 797]]) return # Добавление знания об НПС label add_know_about_npc(npc, know): if know not in npc.GG_know: $ npc.GG_know.append(know) talker 'You found out that [know]' return # НПС занят label lb_busy_npc(npc): # Если НПС работает в стрип-клубе if var_dict['location'].id == 'strip_club': call lb_stripper_actions(npc) from _call_lb_stripper_actions $ name_char = npc.name call lb_show_npc(npc) from _call_lb_show_npc_8 # Не знаком с ГГ if npc.dict_skill['Exploration'] < 0.1: call lb_check_familiar(npc) from _call_lb_check_familiar_2 char_npc '- Sorry [GG.name], I have no time now.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) return # Нпс покинул локацию label lb_npc_gone(npc): hide screen show_image $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) show screen show_image(img_list=[img_loc]) hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location with Dissolve(0.3) talker '[npc.name] left the location.' show screen my_GUI show screen location hide screen show_image with Dissolve(0.3) jump main_cicle return # Откровенный разговор label lb_intimate_talk(npc): call lb_show_npc(npc) from _call_lb_show_npc_9 $ name_char = npc.name # Проверка на исследованность нпс if npc.dict_skill['Exploration'] < 2.0: talker 'You know each other too little for a intimate conversation.' talker 'Need 2.0 Exploration.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Проверка на количество откровенных разговоров if npc.dict_marks['intimate_talk'] > 1: talker 'We had enough intimate conversations today' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Начало откровенного разговора $ npc.dict_marks['intimate_talk'] = npc.dict_marks['intimate_talk'] + 1 char_GG '- Let\'s talk frankly.' char_npc '- About what?' char_GG '- About sex of course.' char_npc '...' pause 1 call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_2 call lb_show_npc(npc=npc) from _call_lb_show_npc_10 pause 0.5 char_npc '- Ok.' char_npc '- I...' $ trait_list = random.choice(npc.character_traits) if trait_list[1] == 'indifferent': char_npc '- I am...' char_npc '- I am indifferent to [trait_list[0]].' $ know = npc.name + ' is indifferent to ' + trait_list[0] + '.' call add_know_about_npc(npc, know) from _call_add_know_about_npc if trait_list[1] == 'like': char_npc '- I like...' char_npc '- I like [trait_list[0]].' $ know = npc.name + ' likes ' + trait_list[0] + '.' call add_know_about_npc(npc, know) from _call_add_know_about_npc_1 if trait_list[1] == 'doesn\'t like': char_npc '- I do...' char_npc '- I do not like [trait_list[0]].' $ know = npc.name + ' doesn\'t like ' + trait_list[0] + '.' call add_know_about_npc(npc, know) from _call_add_know_about_npc_2 # Исследованность нпс увеличение $ npc.dict_skill['Exploration'] = npc.dict_skill['Exploration'] + 100 # Развращённость нпс увеличение $ npc.dict_skill['Depravity/Modesty'] = npc.dict_skill['Depravity/Modesty'] + 100 play sound "sounds/level_UP.mp3" talker '{color=#5fe624}Exploration: +100; Depravity: +100 {/color}' call lb_cange_npc_features(npc=npc, feature='blush') from _call_lb_cange_npc_features_3 show screen my_GUI show screen location hide screen show_image with Dissolve(0.5) call minuts(15) from _call_minuts_3 return # Разговор label lb_talk(npc, topic=''): call lb_show_npc(npc) from _call_lb_show_npc_11 $ name_char = npc.name # Проверка на количество шуток if topic == 'joke': if npc.dict_marks['talk_joke'] > 1: talker 'Stop joking for today. I do not want to turn into a clown.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Проверка на подходят ли темы. Writing, Programming, Intelligence if topic == 'Writing' or topic == 'Programming' or topic == 'Intelligence': if npc.dict_skill_0[topic] == 0.0: talker '[npc.name] knows nothing about this and she is not interested.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return if GG.dict_skill[topic] < 0.5: talker 'You do not have enough knowledge to talk about this topic.' talker 'Need 0.5 [topic].' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Проверка на дружбу if topic == 'friendship': if npc.dict_skill['Friend/Anger'] < 1.0: talker 'You are not friendly enough with [npc.name] to conduct such conversations.' talker 'Need 1.0 Friend.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # # Проверка на любовь # if topic == 'romantic': # if npc.dict_skill['Love'] < 1.0: # char_npc '- I think loving conversations are inappropriate.' # talker 'Need 1.0 Love.' # show screen my_GUI # show screen location # show screen NPC_show(npc) # hide screen show_image # with Dissolve(0.3) # return $ npc.dict_marks['talk'] = npc.dict_marks['talk'] + 1 # Проверка на количество уже состоявшихся разговоров if npc.dict_marks['talk'] > 5: talker '[npc.name] says we have already talked a lot today.' show screen my_GUI show screen location show screen NPC_show(npc) hide screen show_image with Dissolve(0.3) return # Увеличение характеристик # Навык общения увеличение $ GG.dict_skill['Talk'] = GG.dict_skill['Talk'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 # Исследованность нпс увеличивается $ npc.dict_skill['Exploration'] = npc.dict_skill['Exploration'] + 100 # Погода - Weather if topic == 'weather': char_GG '- Nice weather?' char_npc '- Yes, but yesterday was better.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Шутка - joke if topic == 'joke': $ npc.dict_marks['talk_joke'] = npc.dict_marks['talk_joke'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 talker 'You told a funny joke' call lb_cange_emotion(npc=npc, emotion='_smile') from _call_lb_cange_emotion_4 call lb_show_npc(npc=npc) from _call_lb_show_npc_12 play sound "sounds/female_laugh.mp3" pause 2.5 char_npc '- Thanks it was very funny.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Разговоры на профессиональные тематики Writing, Programming, Intelligence if topic == 'Writing' or topic == 'Programming' or topic == 'Intelligence': # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 talker 'You talked to [npc.name] about [topic].' char_npc '- Thank you for talking. It was very interesting.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Дружеский разговор if topic == 'friendship': # Навык общения увеличение $ GG.dict_skill['Talk'] = GG.dict_skill['Talk'] + 100 # Настроение ГГ увеличение $ GG.joy = GG.joy + 100 # Отношение к ГГ улучшение $ npc.dict_skill['Friend/Anger'] = npc.dict_skill['Friend/Anger'] + 100 # Исследованность нпс увеличивается $ npc.dict_skill['Exploration'] = npc.dict_skill['Exploration'] + 100 char_GG '- What is up.' char_npc '- OK.' talker 'A little friendly conversation is always good.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Friend/Anger: +100 {p=0}Exploration: + 100{/color}' # Любовный разговор if topic == 'romantic': # Любовь к ГГ увеличение $ npc.dict_skill['Love'] = npc.dict_skill['Love'] + 100 talker 'You had a nice romantic conversation.' play sound "sounds/level_UP.mp3" '{color=#5fe624}Love: + 100{/color}' call lb_cange_emotion(npc=npc, emotion='_norm') from _call_lb_cange_emotion_5 show screen my_GUI show screen location hide screen show_image with Dissolve(0.5) call minuts(15) from _call_minuts_4 return # Вывод нпс с замыленной локацией label lb_show_npc(npc, dis=0.3): $ npc_list = npc_location_list(var_dict['location']) if npc not in npc_list: if npc not in var_dict['go_npc']: call lb_npc_gone(npc) from _call_lb_npc_gone hide screen show_image $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) # Картинка нпс-а if npc.type == 'NPC': $ img_npc = npc_image(npc) else: $ img_npc = simply_npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) hide screen show_scn hide screen show_image_in_position hide screen mesage hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location with Dissolve(dis) return # Скрыть все экраны label lb_hide_screens(dis=0.0): hide screen choose_NPC_icon hide screen choose_NPC_from_list hide screen NPC_info hide screen show_image_above hide screen mesage hide screen qwestion hide screen choose_img hide screen choose_NPC hide screen popup_image hide screen popup_text hide screen show_image_in_position_2 hide screen choose_item hide screen show_scn hide screen show_in_senter hide screen show_image_in_position hide screen show_image_modal hide screen show_image hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_other_action hide screen NPC_reluctant_action hide screen NPC_touching_action hide screen NPC_romantic_action hide screen NPC_talk hide screen simply_NPC_show hide screen NPC_show hide screen my_GUI hide screen location hide screen show_scn hide screen mesage hide screen show_image hide screen qwestion hide screen popup_image hide screen popup_text hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_talk hide screen NPC_show hide screen my_GUI hide screen location hide screen show_image_in_position_2 hide screen NPC_touching_action hide screen show_in_senter hide screen NPC_reluctant_action with Dissolve(dis) return # Добавление свойства НПС label lb_cange_npc_features(npc=npc, feature=feature): python: # Удаление свойства и его визуального отображения на персонаже if feature in npc.features: npc.features.remove(feature) # Веснушки if feature == 'freckles': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/freckles.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Румянец if feature == 'blush': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/blush.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Плачет if feature == 'cry': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cry.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Сперма на лицо if feature == 'cum_face': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_face.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Слёзы if feature == 'tears': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/tears.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Сперма на губах if feature == 'cum_mouth': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_mouth.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Сперма на бёдрах if feature == 'cum_hips': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_hips.png': npc.decales[index_decal][7] = 'none' index_decal = index_decal + 1 # Добавление свойства и его визуального отображения на персонаже else: npc.features.append(feature) # Веснушки if feature == 'freckles': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/freckles.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Румянец if feature == 'blush': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/blush.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Плачет if feature == 'cry': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cry.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Сперма на лицо if feature == 'cum_face': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_face.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Слёзы if feature == 'tears': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/tears.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Сперма на губах if feature == 'cum_mouth': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_mouth.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 # Сперма на бёдрах if feature == 'cum_hips': index_decal = 0 for img in npc.decales: if img[0] == 'bodies/cum_hips.png': npc.decales[index_decal][7] = 'yes' index_decal = index_decal + 1 return # Показать информацию о ГГ label lb_comp_GG_info: show screen GG_info with Dissolve(0.3) return # Upwork-Programming- open label lb_open_upwork_programming: show screen interaction(upwork_programming) with Dissolve(0.3) return # Upwork-Writing- open label lb_open_upwork_writing: show screen interaction(upwork_writing) with Dissolve(0.3) return # Upwork закрыть label lb_close_uwork: show screen interaction(comp_GG) with Dissolve(0.3) return # Upwork открыть label lb_upwork: show screen interaction(upwork) with Dissolve(0.3) return # Выключение компьютера label lb_off_comp: stop music stop music stop music play sound 'sounds/comp_off.mp3' pause 3.0 hide screen interaction with Dissolve(0.3) return # Добавление одежды к npc label lb_add_clothe_npc(npc, clothe): # Подстройка под тело python: x=0 body_ID = npc.body.ID if var_dict['var_npc_fantasy'] != '': body_ID = def_ID_return(var_dict['npc']) for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', body_ID) clothe.images[x][0] = img[0].replace('B2', body_ID) clothe.images[x][0] = img[0].replace('B3', body_ID) clothe.images[x][0] = img[0].replace('B4', body_ID) clothe.images[x][0] = img[0].replace('B5', body_ID) x=x+1 npc.clothes.append(copy.deepcopy(clothe)) return # Удаление одежды label lb_dell_clothe(npc, clothe): $ npc.clothes.remove(clothe) return # Изменение настроек картинок у одежды label lb_change_clothe_image(clothe, ind, x): python: for img in clothe.images: img[ind] = img[ind] + x return # Изменение настроек картинок декалей у одежды label lb_change_clothe_decal(clothe, index_dec, ind, x): $ clothe.decales[index_dec][ind] = clothe.decales[index_dec][ind] + x return # Изменение настроек картинок декалей у тела label lb_change_npc_decal(npc, index_dec, ind, x): $ npc.decales[index_dec][ind] = npc.decales[index_dec][ind] + x return # Сброс настроек декали одежды label lb_reset_clothe_decal(clothe, index_dec): $ clothe.decales[index_dec][3] = 0 $ clothe.decales[index_dec][4] = 1.0 $ clothe.decales[index_dec][5] = 0.0 $ clothe.decales[index_dec][6] = 1.0 return # Сброс настроек декали тела label lb_reset_npc_decal(npc, index_dec): $ npc.decales[index_dec][3] = 0 $ npc.decales[index_dec][4] = 1.0 $ npc.decales[index_dec][5] = 0.0 $ npc.decales[index_dec][6] = 1.0 return # Изменение размера тела label lb_change_height(npc, x): $ npc.height = npc.height + x return # Сбросить настройки для тела: label lb_body_reset(npc): $ npc.height = 1.0 python: for img in npc.images: if 'bodies/B' in img[0]: img[3] = 0 img[4] = 1.0 img[5] = 0.0 img[6] = 1.0 # Сброс свойств с удалением картинк for feature in npc.features: renpy.call('lb_cange_npc_features', npc, feature) return # Изменить контрастность тела label lb_body_contrast(npc, x): python: for img in npc.images: if 'bodies/B' in img[0]: img[6] = img[6] + x if img[6] < 0: img[6] = 0.0 if img[6] > 3.0: img[6] = 3.0 return # Изменить яркость тела label lb_body_bright(npc, x): python: for img in npc.images: if 'bodies/B' in img[0]: img[5] = img[5] + x if img[5] < -1.0: img[5] = -1.0 if img[5] > 1.0: img[5] = 1.0 return # Изменить насыщенность тела label lb_body_saturation(npc, x): python: for img in npc.images: if 'bodies/B' in img[0]: img[4] = img[4] + x if img[4] < 0: img[4] = 0.0 if img[4] > 3.0: img[4] = 3.0 return # Изменить оттенок тела label lb_cange_body_hue(npc, x): python: for img in npc.images: if 'bodies/B' in img[0]: img[3] = img[3] + x return # Сбросить настройки цвета для волос: label lb_hair_reset(npc): python: for img in npc.images: if 'Hair_' in img[0] and '_front_' in img[0]: img[3] = 0 img[4] = 1.0 img[5] = 0.0 img[6] = 1.0 return # Изменить контрастность волос label lb_hair_contrast(npc, x): python: for img in npc.images: if 'Hair_' in img[0] and '_shadow' not in img[0]: img[6] = img[6] + x if img[6] < 0: img[6] = 0.0 if img[6] > 3.0: img[6] = 3.0 return # Изменить яркость волос label lb_hair_bright(npc, x): python: for img in npc.images: if 'Hair_' in img[0] and '_shadow' not in img[0]: img[5] = img[5] + x if img[5] < -1.0: img[5] = -1.0 if img[5] > 1.0: img[5] = 1.0 return # Изменить насыщенность волос label lb_hair_saturation(npc, x): python: for img in npc.images: if 'Hair_' in img[0] and '_shadow' not in img[0]: img[4] = img[4] + x if img[4] < 0: img[4] = 0.0 if img[4] > 3.0: img[4] = 3.0 return # Изменить оттенок волос label lb_cange_hair_hue(npc, x): python: for img in npc.images: if 'Hair_' in img[0] and '_shadow' not in img[0]: img[3] = img[3] + x return # Изменение тела label lb_change_body(npc, x_index_body=''): python: if x_index_body == '': # Определяем порядковый номер тела в списке тел current_body_id = npc.body.ID for body_1 in var_dict['bodies']: if body_1.ID == current_body_id: break index_body = var_dict['bodies'].index(body_1) # Изменяем индекс index_body = index_body + 1 if index_body > len(var_dict['bodies'])-1: index_body = 0 body_x = npc.body body_y = var_dict['bodies'][index_body] else: body_x = npc.body body_y = var_dict['bodies'][x_index_body] # Изменяем картинки тела index_x = 0 for img1 in npc.images: if body_x.ID in img1[0]: img2 = img1[0].replace(body_x.ID, body_y.ID) # Удаление уникальных маркеров(индексов) img2 = img2.replace("_ww_", "_") img2 = img2.replace("_mary_", "_") img2 = img2.replace("_lily_", "_") img2 = img2.replace("_ava_", "_") img2 = img2.replace("_isabel_", "_") img2 = img2.replace("_zoe_", "_") img2 = img2.replace("_bella_", "_") img2 = img2.replace("_Beverly_", "_") img2 = img2.replace("_Homeless_", "_") npc.images[index_x][0] = img2 index_x = index_x + 1 # Изменение одежды for clothe in npc.clothes: index_x = 0 if not isinstance(clothe, unicode): for img1 in clothe.images: if body_x.ID in img1[0]: img2 = img1[0].replace(body_x.ID, body_y.ID) clothe.images[index_x][0] = img2 index_x = index_x + 1 npc.body = body_y call change_clothes_to_body(npc) from _call_change_clothes_to_body return # Изменение настроения label lb_cange_emotion(npc='', emotion): if npc != '': python: # Изменение картинок for img1 in npc.images: if npc.emotion in img1[0]: img2 = img1[0].replace(npc.emotion, emotion) img1[0] = img2 npc.emotion = emotion return # Изменить картинку рта у тела label lb_add_mouth(npc): python: # Определяем порядковый номер index_npc = 0 for img_body in npc.images: if img_body[0].replace(npc.emotion, '') in npc.body.mouthes: index_eye = npc.body.mouthes.index(img_body[0].replace(npc.emotion, '')) break index_npc = index_npc + 1 # Изменяем индекс index_eye = index_eye + 1 if index_eye > len(npc.body.mouthes)-1: index_eye = 0 # Изменяем картинку str_x = npc.body.mouthes[index_eye] npc.images[index_npc][0] = str_x.replace('.png', '') + npc.emotion + '.png' return # Изменить картинку носа у тела label lb_add_nose(npc): python: # Определяем порядковый номер index_npc = 0 for img_body in npc.images: if img_body[0].replace(npc.emotion, '') in npc.body.noses: index_eye = npc.body.noses.index(img_body[0].replace(npc.emotion, '')) break index_npc = index_npc + 1 # Изменяем индекс index_eye = index_eye + 1 if index_eye > len(npc.body.noses)-1: index_eye = 0 # Изменяем картинку str_x = npc.body.noses[index_eye] npc.images[index_npc][0] = str_x.replace('.png', '') + npc.emotion + '.png' return # Изменить картинку глаз у тела label lb_add_eyes(npc): python: # Определяем порядковый номер текущих глаз index_npc = 0 for img_body in npc.images: if img_body[0].replace(npc.emotion, '') in npc.body.eyes: index_eye = npc.body.eyes.index(img_body[0].replace(npc.emotion, '')) break index_npc = index_npc + 1 # Изменяем индекс index_eye = index_eye + 1 if index_eye > len(npc.body.eyes)-1: index_eye = 0 # Изменяем картинку str_x = npc.body.eyes[index_eye] npc.images[index_npc][0] = str_x.replace('.png', '') + npc.emotion + '.png' return # Изменеие волос между ног label lb_change_public_hair(npc): python: # Определяем текущие волосы их индекс for img in npc.images: if '_public_hair_' in img[0]: for img_hair_body in npc.body.public_haires: if img_hair_body in img[0]: curent_hair = img_hair_body index_curent_hair = npc.body.public_haires.index(curent_hair) break break # Изменяем индекс и получаем новые волосы index_next_hair = index_curent_hair + 1 if index_next_hair > len(npc.body.public_haires)-1: index_next_hair = 0 next_hair = npc.body.public_haires[index_next_hair] # Меняем старые волосы на новые index_npc = 0 for img in npc.images: if curent_hair in img[0]: npc.images[index_npc][0] = img[0].replace(curent_hair, next_hair) index_npc = index_npc + 1 return # Изменить волосы label lb_cange_hair(npc): python: # Для нестандартных волос if 'revers' in npc.images[len(npc.images) - 1]: npc.images[0][0] = 'bodies/Hair_1_back_' + npc.body.ID + '.png' npc.images[len(npc.images) - 2][0] = 'bodies/Hair_1_shadow_' + npc.body.ID + '.png' npc.images[len(npc.images) - 1][0] = 'bodies/Hair_1_front_' + npc.body.ID + '.png' npc.images[len(npc.images) - 1].remove('revers') # Для стандартных волос # Определяем текущие волосы их индекс for img in npc.images: if 'Hair_' in img[0]: for img_hair_body in npc.body.haires: if img_hair_body in img[0]: curent_hair = img_hair_body index_curent_hair = npc.body.haires.index(curent_hair) break break # Изменяем индекс и получаем новые волосы index_next_hair = index_curent_hair + 1 if index_next_hair > len(npc.body.haires)-1: index_next_hair = 0 next_hair = npc.body.haires[index_next_hair] # Меняем во всех картинках старые волосы на новые index_npc = 0 for img in npc.images: if curent_hair in img[0]: npc.images[index_npc][0] = img[0].replace(curent_hair, next_hair) index_npc = index_npc + 1 return # Новый день - обновление меток Конец дня label new_day: # Обнуление отработавших в стриптиз клубе $ var_dict['working_off_strip_club'] = [] # Сброс периодических декалей $ def_reset_periodic_decals() # Новые задачи на upwork call lb_upwork_create_task from _call_lb_upwork_create_task_1 call lb_editorial_create_task from _call_lb_editorial_create_task_1 call lb_cubisoft_create_task from _call_lb_cubisoft_create_task_2 # НПС-ы python: # Перебор нпс-ов for npc in var_dict['npces']: # Сброс меток у нпс-ов for key1 in npc.dict_marks: if key1 != 'adress' and key1 != "Пила снотворное": npc.dict_marks[key1] = 0 # Стремление к 1.0-0 'Friend/Anger' if npc.dict_skill['Friend/Anger'] < 0.0: npc.dict_skill['Friend/Anger'] += 0.05 if npc.dict_skill['Friend/Anger'] > 1.0: npc.dict_skill['Friend/Anger'] -= 0.02 # Отслеживание расследования if var_dict['PI_order'] != []: $ var_dict['PI_order'][1] -= 1 # Конец расследования if var_dict['PI_order'][1] <= 0: $ npc = var_dict['PI_order'][0] $ npc.dict_skill['Exploration'] = var_dict['PI_order'][2] play sound "sounds/level_UP.mp3" menu: '[npc.name]\'s investigation is over.': $ var_dict['PI_order'] = [] # Объекты которые можно использовать только 1 раз в день $ var_dict['one_per_day_objects'] = [] # Квесты завязанные на дни $ list_quests = def_list_of_quests() python: for quest in list_quests: if quest.level in quest.dict: if 'days' in quest.dict[quest.level]: quest.dict[quest.level]['days'] -= 1 if quest.dict[quest.level]['days'] <= 0: d_level = quest.dict[quest.level]['d_level'] quest.level = d_level # Перебор инвентарей и объектов в них python: for inv in var_dict['inventaries']: for obj in inv.cells: # Если у объекта есть счётчик дней уменьшить его на один, если он равен 0 то удалить. if iter(obj.features): for feature in obj.features: if isinstance(feature, str) and "дни:" in feature: number_days = (int)(feature.replace("дни:", "")) print(number_days) if number_days > 0: number_days = number_days - 1 obj.features.remove(feature) obj.features.append("дни: " + str(number_days)) else: del_obj(obj, inv) # Ежедневная пробежка $ var_dict['sex_jogging_list'] = [] # Сброс дневных состояний # Амфитамины if 'amphet' in GG.features: $ GG.joy = GG.joy - 25 $ GG.features.remove('amphet') # Кокс if 'cocx' in GG.features: if 'save_joy' in var_dict: if var_dict['save_joy'] != 'not': $ GG.joy = var_dict['save_joy'] - 7 $ GG.features.remove('cocx') $ var_dict['save_joy'] = 'not' return # Выполнение задачи label lb_do_task(task, obj='none'): # Проверка состояний $ check_feature = '1' # Депрессия if 'депрессия' in GG.features: menu: 'I am depressed and don\'t want to work.': $ check_feature = '0' # Истощён if 'усталость_3' in GG.features: menu: 'I\'m exhausted and don\'t want to work.': $ check_feature = '0' # Нет состояний недающих работать if check_feature == '1': $ skill = task.skill if GG.dict_skill[skill + '_pract'] < task.level: play sound 'sounds/error.mp3' show screen mesage('Unfortunately, your skill is not enough to complete this task.') else: show screen show_image("images/other/bgd_black.png") with Dissolve(0.5) pause 0.5 # Эффективность работы $ txt_0 = 100 * round(GG.eff , 2) menu: "Complete the task with [txt_0]\% efficiency (efficiency affects earnings).": play sound "sounds/keyboard_typing.mp3" $ add_money = int(round(task.money * GG.eff, 0)) $ GG.money = GG.money + add_money $ current_level = GG.dict_skill[skill + '_pract'] $ GG.dict_skill[skill + '_pract'] = GG.dict_skill[skill + '_pract'] + (task.time * 0.000238 * 3) if GG.dict_skill[skill + '_pract'] > GG.dict_skill[skill]: $ GG.dict_skill[skill + '_pract'] = GG.dict_skill[skill] # Удаление выполненой задачи if obj != 'none': $ obj.dict_icons['Task_list'].remove(task) menu: 'You have earned [add_money] p.': if task.money > 0: play sound 'sounds/money_add.mp3' # Вывод изменения скила $ delta_skill = GG.dict_skill[skill + '_pract'] - current_level menu: '[skill](practice): +[delta_skill]': pass hide screen show_image with Dissolve(0.5) call minuts(task.time) from _call_minuts_27 "Not": pass hide screen show_image with Dissolve(0.5) return # Upwork создание работ (при первом пуске программы и один раз каждый день в 3-00 label lb_upwork_create_task: python: # Писательские задачи task_list = [] # 0 Бесплатные rnd = int(round(random.uniform(1, 3), 0)) for x in range(rnd): task = copy_obj(Upwork_task()) task.name='Free' task.skill='Writing' task.level=0 task.discription='I have no money. Please do it for free. Thank.' task.money=0 task_list.append(task) # 0 Рерайт for x in range(3): task = copy_obj(Upwork_task()) task.name='Rewrite' task.skill='Writing' task.level=0 task.discription='Nothing complicated. I just need a unique text.' rnd_money = int(round(random.uniform(20, 50), 0)) task.money=rnd_money task_list.append(task) # 1 Копирайт for x in range(2): task = copy_obj(Upwork_task()) task.name='Copyright' task.skill='Writing' task.level=1 task.discription='Not just unique text. The text that a person can read.' rnd_money = int(round(random.uniform(50, 70), 0)) task.money=rnd_money task_list.append(task) # 2 качественный копирайт task = copy_obj(Upwork_task()) task.name='Quality сopyright' task.skill='Writing' task.level=2 task.discription='Quality text for a quality website.' rnd_money = int(round(random.uniform(70, 120), 0)) task.money=rnd_money task_list.append(task) # 3 качественный копирайт task = copy_obj(Upwork_task()) task.name='News texts' task.skill='Writing' task.level=3 task.discription='Texts for the news site.' rnd_money = int(round(random.uniform(120, 150), 0)) task.money=rnd_money task_list.append(task) # 4 качественный копирайт rnd = random.random() if rnd < 0.7: task = copy_obj(Upwork_task()) task.name='Article' task.skill='Writing' task.level=4 task.discription='Article for a major portal.' rnd_money = int(round(random.uniform(150, 200), 0)) task.money=rnd_money task_list.append(task) # 5 качественный копирайт rnd = random.random() if rnd < 0.45: task = copy_obj(Upwork_task()) task.name='Author\'s article' task.skill='Writing' task.level=5 task.discription='Author\'s article for a local newspaper.' rnd_money = int(round(random.uniform(200, 300), 0)) task.money=rnd_money task_list.append(task) upwork_writing.dict_icons['Task_list'] = task_list # Программистские задачи task_list = [] # 0 Бесплатные rnd = int(round(random.uniform(1, 3), 0)) for x in range(rnd): task = copy_obj(Upwork_task()) task.name='Free' task.skill='Programming' task.level=0 task.discription='I just need some free code. I have no money. Please do it for free. Thank.' task.money=0 task_list.append(task) # HTML code for x in range(3): task = copy_obj(Upwork_task()) task.name='HTML code' task.skill='Programming' task.level=0 task.discription='HTML code for a small site.' rnd_money = int(round(random.uniform(30, 70), 0)) task.money=rnd_money task_list.append(task) # 1 for x in range(2): task = copy_obj(Upwork_task()) task.name='Java script' task.skill='Programming' task.level=1 task.discription='Java script for a small portal.' rnd_money = int(round(random.uniform(70, 100), 0)) task.money=rnd_money task_list.append(task) # 2 task = copy_obj(Upwork_task()) task.name='Python' task.skill='Programming' task.level=2 task.discription='A small module for python.' rnd_money = int(round(random.uniform(100, 170), 0)) task.money=rnd_money task_list.append(task) # 3 task = copy_obj(Upwork_task()) task.name='Find a bug' task.skill='Programming' task.level=3 task.discription='Find a bug in a mobile application.' rnd_money = int(round(random.uniform(170, 220), 0)) task.money=rnd_money task_list.append(task) # 4 rnd = random.random() if rnd < 0.7: task = copy_obj(Upwork_task()) task.name='Unity' task.skill='Programming' task.level=4 task.discription='The script for the game. Unity engine.' rnd_money = int(round(random.uniform(220, 300), 0)) task.money=rnd_money task_list.append(task) # 5 rnd = random.random() if rnd < 0.45: task = copy_obj(Upwork_task()) task.name='Driver' task.skill='Programming' task.level=5 task.discription='Driver for an external device.' rnd_money = int(round(random.uniform(300, 500), 0)) task.money=rnd_money task_list.append(task) upwork_programming.dict_icons['Task_list'] = task_list return # Потеря сознания от жажды label lb_lose_consciousness_trust: play sound 'sounds/heart.mp3' show screen show_image("images/other/bgd_black.png") hide screen show_image_modal hide screen inventary hide screen interaction hide screen peep_telescope_screen hide screen info with Dissolve(1.5) #$ renpy.pause(1.5, hard=True) $ var_dict['location'] = hospital_room menu: 'You lost consciousness from trust. Attention! It is life threatening.': pass hide screen show_image with Dissolve(0.5) $ GG.food = 25.0 $ GG.water = 50.0 call minuts(0) from _call_minuts_6 return # Потемнело в глазах от жажды label lb_dark_in_eyes_trust: play sound 'sounds/heart.mp3' show screen show_image("images/other/bgd_black.png") hide screen show_image_modal hide screen inventary hide screen interaction hide screen peep_telescope_screen hide screen info with Dissolve(1.5) #$ renpy.pause(1.5, hard=True) menu: 'It was dark in the eyes of trust. Drink something.': pass hide screen show_image with Dissolve(0.5) return # Фоновые звуки в локациях label fon_sound: $ loc = var_dict['location'] if loc.music != 'none': if renpy.music.get_playing(channel='music') != loc.music: play music loc.music else: stop music return # Потеря сознания от голода label lb_lose_consciousness_hunger: play sound 'sounds/heart.mp3' show screen show_image("images/other/bgd_black.png") hide screen show_image_modal hide screen inventary hide screen interaction hide screen peep_telescope_screen hide screen info with Dissolve(1.5) #$ renpy.pause(1.5, hard=True) $ var_dict['location'] = hospital_room menu: 'You lost consciousness from hunger. Attention! It is life threatening.': pass hide screen show_image with Dissolve(0.5) $ GG.food = 25.0 $ GG.water = 50.0 call minuts(0) from _call_minuts_7 return # Потемнело в глазах от голода label lb_dark_in_eyes: play sound 'sounds/heart.mp3' show screen show_image("images/other/bgd_black.png") hide screen show_image_modal hide screen inventary hide screen interaction hide screen peep_telescope_screen hide screen info with Dissolve(1.5) #$ renpy.pause(1.5, hard=True) menu: 'It was dark in the eyes of hunger. Eat something.': pass hide screen show_image with Dissolve(0.5) return # Покупка в магазине label buy_obj(obj): $ var_dict['current_obj'] = obj # Проверка хватает ли денег if GG.money < obj.money: play sound 'sounds/error.mp3' show screen mesage("Not enough money.") hide screen info else: # Проверка есть ли свободное место # Для объектов не нужно свободное место (используются сразу после покупки) if 'барсетка_1' in obj.features or 'барсетка_2' in obj.features or 'холодильник_2' in obj.features or 'холодильник_3' in obj.features or 'покупка книжной полки ГГ' in obj.features or 'новый_тариф' in obj.features or 'телескоп' in obj.features: # Проверка был ли объект активирован ранее if 'барсетка_1' in obj.features and 'барсетка_1' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'барсетка_2' in obj.features and 'барсетка_2' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'холодильник_2' in obj.features and 'холодильник_2' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'холодильник_3' in obj.features and 'холодильник_3' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'покупка книжной полки ГГ' in obj.features and 'покупка книжной полки ГГ' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'новый_тариф' in obj.features and 'новый_тариф' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return if 'телескоп' in obj.features and 'телескоп' in var_dict: play sound 'sounds/error.mp3' show screen mesage("You already have it.") return menu: 'Want to buy [obj.name]?': play sound 'sounds/money.mp3' $ GG.money = GG.money - var_dict['current_obj'].money call interaction_obj(obj) from _call_interaction_obj call minuts(1) from _call_minuts_47 hide screen info 'Not': pass else: $ summ_cell = inv_GG.row * inv_GG.coll # Количество ячеек $ count_obj = len(inv_GG.cells) # Занято ячеек if count_obj < summ_cell: show screen qwestion("Want to buy?", 'buy_obj2') else: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") hide screen info return label buy_obj2: play sound 'sounds/money.mp3' $ GG.money = GG.money - var_dict['current_obj'].money $ inv_GG.cells.append(copy_obj(var_dict['current_obj'])) hide screen qwestion call minuts(1) from _call_minuts_8 hide screen info return # Выбрасывание объекта label drop_object_chek(obj, str_label): $ var_dict['current_obj'] = obj show screen qwestion("Are you sure?", str_label) return label drop_object(): play sound 'sounds/whip.mp3' hide screen qwestion $ del_obj(obj=var_dict['current_obj'], inv=var_dict['inventary']) hide screen info call minuts(1) from _call_minuts_9 return # Переместить объект из одного инвентаря в другой label label_move_obj_in_out_inv(obj, in_inv, out_inv): # Проверка есть ли свободное место $ summ_cell = in_inv.row * in_inv.coll # Количество ячеек $ count_obj = len(in_inv.cells) # Занято ячеек if count_obj < summ_cell: play sound 'sounds/move_obj.mp3' $ move_obj_in_out_inv(obj=obj, in_inv=in_inv, out_inv=out_inv) call minuts(1) from _call_minuts_10 else: play sound 'sounds/error.mp3' show screen mesage("There is no free space.") return # Переместить объект label move_obj(obj): show screen select_inv(var_dict['location']) $ var_dict['current_obj'] = obj return # Взаимодействие с объектом label interaction_obj(obj): # Сколько тратится на действие $ time = 0 # Если объект можно использовать только раз в день $ check_one_per_day = lb_check_on_per_day_obj(obj) if check_one_per_day == 'not': menu: 'You have already used [obj.name] today.': pass return # Препарат изменяющий характеристики НПС if 'препарат для НПС' in obj.features: $ var_dict['use_drug_NPC'] = obj $ npc_list = npc_location_list(var_dict['location']) show screen choose_NPC_from_list(list_npces=npc_list, str_call='lb_use_drug_NPC') with Dissolve(0.3) # свойство Антипохмелин if 'антипохмелин' in obj.features: # Проверка на похмелье if 'лёгкое_похмелье' in GG.features or 'сильное_похмелье' in GG.features or 'мертвецкое_похмелье' in GG.features: play sound "sounds/level_UP.mp3" # Снятие похмелья if 'лёгкое_похмелье' in var_dict['current_temporary_features_GG']: $ del var_dict['current_temporary_features_GG']['лёгкое_похмелье'] if 'сильное_похмелье' in var_dict['current_temporary_features_GG']: $ del var_dict['current_temporary_features_GG']['сильное_похмелье'] if 'мертвецкое_похмелье' in var_dict['current_temporary_features_GG']: $ del var_dict['current_temporary_features_GG']['мертвецкое_похмелье'] menu: 'You\'ve been cured of a hangover.': pass # Удаление объекта из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info else: show screen mesage('You don\'t have a hangover.') with Dissolve(0.3) # Лёгкий алкоголь if 'лёгкий_алкоголь' in obj.features: # Нельзя напиваться с похмелья if 'лёгкое_похмелье' in GG.features or 'сильное_похмелье' in GG.features or 'мертвецкое_похмелье' in GG.features: play sound "sounds/error.mp3" menu: 'The thought of swallowing alcohol makes you nauseous (wait for the hangover to end).': jump main_cicle # Выпивание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/open_bottle_beer.mp3" pause 1.5 play sound "sounds/drink.mp3" pause 2 # Удаление объекта из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info if 'лёгкое_опьянение' in var_dict['current_temporary_features_GG']: $ del var_dict['current_temporary_features_GG']['лёгкое_опьянение'] $ var_dict['current_temporary_features_GG']['сильное_опьянение'] = copy_obj(var_dict['temporary_features']['сильное_опьянение']) else: if 'сильное_опьянение' not in var_dict['current_temporary_features_GG']: $ var_dict['current_temporary_features_GG']['лёгкое_опьянение'] = copy_obj(var_dict['temporary_features']['лёгкое_опьянение']) else: # Мертвецки пьяный if 'нельзя_мертвецки_напиться' in obj.features: pass else: call lb_dead_drunk from _call_lb_dead_drunk # Увеличение радости $ GG.joy += obj.joy if GG.joy > 100: $ GG.joy = 100.0 play sound "sounds/level_UP.mp3" menu: 'Your Joy has increased: +[obj.joy] (Current Joy: [GG.joy])': pass call minuts(15) from _call_minuts_48 hide screen show_image_above with Dissolve(0.5) jump main_cicle # Сильный алкоголь if 'сильный_алкоголь' in obj.features: # Нельзя напиваться с похмелья if 'лёгкое_похмелье' in GG.features or 'сильное_похмелье' in GG.features or 'мертвецкое_похмелье' in GG.features: play sound "sounds/error.mp3" menu: 'The thought of swallowing alcohol makes you nauseous (wait for the hangover to end).': jump main_cicle # Выпивание show screen show_image_above('scenes/black.png') with Dissolve(0.5) play sound "sounds/filling_glass.mp3" pause 2.5 play sound "sounds/drink.mp3" pause 2 # Удаление объекта из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info if 'лёгкое_опьянение' in var_dict['current_temporary_features_GG']: $ del var_dict['current_temporary_features_GG']['лёгкое_опьянение'] if 'сильное_опьянение' in var_dict['current_temporary_features_GG']: # Мертвецки пьяный if 'нельзя_мертвецки_напиться' in obj.features: pass else: call lb_dead_drunk from _call_lb_dead_drunk_1 else: $ var_dict['current_temporary_features_GG']['сильное_опьянение'] = copy_obj(var_dict['temporary_features']['сильное_опьянение']) # Увеличение радости $ GG.joy += obj.joy if GG.joy > 100: $ GG.joy = 100.0 play sound "sounds/level_UP.mp3" menu: 'Your Joy has increased: +[obj.joy] (Current Joy: [GG.joy])': pass call minuts(15) from _call_minuts_49 hide screen show_image_above with Dissolve(0.5) jump main_cicle # Покупка нового тарифа на телефон if 'новый_тариф' in obj.features: $ var_dict['новый_тариф'] = 'yes' $ cost_call = 3 # Покупка книжной полки if 'покупка книжной полки ГГ' in obj.features: $ var_dict['покупка книжной полки ГГ'] = 'yes' $ room_GG_loc.locations.append(shelves_GG) # Покупка холодильника 2 if 'холодильник_2' in obj.features: $ var_dict['холодильник_2'] = 'yes' $ index_frig = kitchen_GG_loc.locations.index(frig_GG) $ kitchen_GG_loc.locations[index_frig] = frig_2_GG # Удаление старого холодильника из списка инвентарей $ var_dict['inventaries'].remove(frig_GG) # Перекладывание содержиого старого холодильника в новый $ frig_2_GG.cells = frig_GG.cells # Покупка холодильника 3 if 'холодильник_3' in obj.features: $ var_dict['холодильник_3'] = 'yes' $ index_frig = kitchen_GG_loc.locations.index(frig_GG) $ kitchen_GG_loc.locations[index_frig] = frig_3_GG # Удаление старого холодильника из списка инвентарей $ var_dict['inventaries'].remove(frig_GG) # Перекладывание содержиого старого холодильника в новый $ frig_3_GG.cells = frig_GG.cells # Покупка барсетки 1 if 'барсетка_1' in obj.features: $ var_dict['барсетка_1'] = 'yes' $ inv_GG.row += 1 hide screen inventary # Покупка барсетки 2 if 'барсетка_2' in obj.features: $ var_dict['барсетка_2'] = 'yes' $ inv_GG.row += 1 hide screen inventary # Покупка телескопа if 'телескоп' in obj.features: $ var_dict['телескоп'] = 'yes' $ room_GG_loc.locations.append(peep_telescope) hide screen inventary # Квестовый предмет if obj.type == 'quest': call lb_use_quest_item(obj) from _call_lb_use_quest_item_1 # Снотворное if 'снотворное' in obj.features: play sound "sounds/drugs.mp3" # Проверить на кухне ли находится? if "Kitchen" not in var_dict['location'].name: play sound "sounds/error.mp3" hide screen info hide screen inventary hide screen popup_text with Dissolve(0.3) menu: "Sleeping pills can only be used in a kitchen.": jump main_cicle # Проверка есть ли свидетели if npc_location_list(loc) != []: play sound "sounds/error.mp3" hide screen info hide screen inventary hide screen popup_text with Dissolve(0.3) menu: 'It should be done without witnesses': jump main_cicle # Добавление свойства "Пила снотворное" к объектам проживающим в этой квартире $ list_NPC = def_return_NPCs_apartment(var_dict['location']) python: print list_NPC for npcX in list_NPC: npcX.dict_marks["Пила снотворное"] = 1 menu: "Sleeping pills has been successfully applied": pass python: # Удаление таблетки и пустого бутылька for feat in obj.features: if isinstance(feat, list): if feat[0] == 'spend': feat[1] -= 1 # Удаление объекта if feat[1] <= 0: inv = var_dict['inventary'] # текущий инвентарь inv.cells.remove(obj) time = 1 hide screen info # Медицина - drugs if 'drugs' in obj.features: play sound "sounds/drugs.mp3" $ temp_mark = 1 python: for feat in obj.features: if isinstance(feat, list): if feat[0] == 'immun': GG.immun += feat[1] if feat[0] == 'spend': feat[1] -= 1 # Удаление объекта if feat[1] <= 0: inv = var_dict['inventary'] # текущий инвентарь inv.cells.remove(obj) time = 1 hide screen info # Если объект еда или напиток if obj.type == 'еда': # Напиток if 'напиток' in obj.features: # Какое количество воды нужно if GG.water < 0: $ GG.water = 0 $ need_water = 100 - GG.water # Проверка хочет ли ГГ пить? if need_water < 10: show screen mesage('You are not thirsty.') else: play sound 'sounds/drink.mp3' # Солёные, сладкие теги if 'солёный' in obj.features: $GG.water = GG.water - 10.0 if 'сладкий' in obj.features: $GG.water = GG.water - 5.0 # Если воды хватает if need_water <= obj.water: $ GG.water = GG.water + need_water # На сколько изменилась еда ГГ $ delt_food = (obj.food/obj.water) * need_water $ GG.food = GG.food + delt_food if GG.food > 100: $ GG.food = 100 # На сколько изменилась радость ГГ $ delt_joy = (obj.joy/obj.water) * need_water $ GG.joy = GG.joy + delt_joy if GG.joy > 100: $ GG.joy = 100 # На сколько изменился иммунитет ГГ $ delt_immun = (obj.immun/obj.water) * need_water $ GG.immun = GG.immun + delt_immun if GG.immun > 100: $ GG.immun = 100 # На сколько изменилась стамина ГГ $ delt_pep = (obj.pep/obj.water) * need_water $ GG.pep = GG.pep + delt_pep if GG.pep > 100: $ GG.pep = 100 $ obj.water = obj.water - need_water $ obj.food = obj.food - delt_food $ obj.joy = obj.joy - delt_joy $ obj.immun = obj.immun - delt_immun $ obj.pep = obj.pep - delt_pep # Удаление объекта из инвентаря при 0 (100) if obj.water <= 0: $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Добавление пустой бутылки в инвентарь if obj.name == 'Water bottle' or obj.name == 'Mineral water': $inv.cells.append(copy.copy(empty_bottle)) hide screen info # Если воды не хватает else: $ need_water = obj.water $ GG.water = GG.water + need_water # На сколько изменилась еда ГГ $ delt_food = (obj.food/obj.water) * need_water $ GG.food = GG.food + delt_food if GG.food > 100: $ GG.food = 100 # На сколько изменилась радость ГГ $ delt_joy = (obj.joy/obj.water) * need_water $ GG.joy = GG.joy + delt_joy if GG.joy > 100: $ GG.joy = 100 # На сколько изменился иммунитет ГГ $ delt_immun = (obj.immun/obj.water) * need_water $ GG.immun = GG.immun + delt_immun if GG.immun > 100: $ GG.immun = 100 # На сколько изменилась стамина ГГ $ delt_pep = (obj.pep/obj.water) * need_water $ GG.pep = GG.pep + delt_pep if GG.pep > 100: $ GG.pep = 100 # Удаление объекта из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Добавление пустой бутылки в инвентарь if obj.name == 'Water bottle' or obj.name == 'Mineral water': $inv.cells.append(copy.copy(empty_bottle)) hide screen info # Еда else: # Какое количество еды нужно if GG.food < 0: $ GG.food = 0 $ need_food = 100 - GG.food # Проверка голодный ли? if need_food < 10: show screen mesage('You are not hungry.') else: play sound 'sounds/eating.mp3' # Солёные, сладкие теги if 'солёный' in obj.features: $GG.water = GG.water - 10.0 if 'сладкий' in obj.features: $GG.water = GG.water - 5.0 # Если еды хватает if need_food <= obj.food: $ GG.food = GG.food + need_food # На сколько изменилась вода ГГ $ delt_water = (obj.water/obj.food) * need_food $ GG.water = GG.water + delt_water if GG.water > 100: $ GG.water = 100 # На сколько изменилась радость ГГ $ delt_joy = (obj.joy/obj.food) * need_food $ GG.joy = GG.joy + delt_joy if GG.joy > 100: $ GG.joy = 100 # На сколько изменился иммунитет ГГ $ delt_immun = (obj.immun/obj.food) * need_food $ GG.immun = GG.immun + delt_immun if GG.immun > 100: $ GG.immun = 100 # На сколько изменилась стамина ГГ $ delt_pep = (obj.pep/obj.food) * need_food $ GG.pep = GG.pep + delt_pep if GG.pep > 100: $ GG.pep = 100 $ obj.food = obj.food - need_food $ obj.water = obj.water - delt_water $ obj.joy = obj.joy - delt_joy $ obj.immun = obj.immun - delt_immun $ obj.pep = obj.pep - delt_pep # Удаление объекта из инвентаря if obj.food <= 0: $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info # Если еды не хватает else: $ need_food = obj.food $ GG.food = GG.food + need_food # На сколько изменилась вода ГГ $ delt_water = (obj.water/obj.food) * need_food $ GG.water = GG.water + delt_water if GG.water > 100: $ GG.water = 100 # На сколько изменилась радость ГГ $ delt_joy = (obj.joy/obj.food) * need_food $ GG.joy = GG.joy + delt_joy if GG.joy > 100: $ GG.joy = 100 # На сколько изменился иммунитет ГГ $ delt_immun = (obj.immun/obj.food) * need_food $ GG.immun = GG.immun + delt_immun if GG.immun > 100: $ GG.immun = 100 # На сколько изменилась стамина ГГ $ delt_pep = (obj.pep/obj.food) * need_food $ GG.pep = GG.pep + delt_pep if GG.pep > 100: $ GG.pep = 100 # Удаление объекта из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info # Если объект имеет свойство "учебник" if 'учебник' in obj.features: show screen show_image('inventories/inv_empty.png') $ var_skill = GG.dict_skill[obj.skill] # Текущий уровень навыка у ГГ # проверка на соответствие уровня учебника уровню ГГ if var_skill >= obj.level: play sound 'sounds/error.mp3' show screen mesage('You will not learn anything new from this book.') elif var_skill < obj.level-1: play sound 'sounds/error.mp3' show screen mesage('This book is too complicated for you.') else: # Само изучение $ eff = 100 * round(GG.eff , 2) menu: "Learning efficiency [eff]\%." 'Learn [obj.skill] - 0.5h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Learn [obj.skill] - 1h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Learn [obj.skill] - 2h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Close': play sound 'sounds/click_button.mp3' $ var_skill = var_skill + ((time * 0.000238 * 2) * GG.eff) $ delta_skill = var_skill - GG.dict_skill[obj.skill] $ GG.dict_skill[obj.skill] = var_skill menu: '[obj.skill](theory): +[delta_skill]': pass hide screen show_image with Dissolve(0.3) # "худ_книга" if 'худ_книга' in obj.features: show screen show_image('inventories/inv_empty.png') menu: 'Read the book - 30 min': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Read the book - 1h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Read the book - 2h': $ time = 0 play sound 'sounds/pages.mp3' pause 0.7 'Close': play sound 'sounds/click_button.mp3' # Уменьшение страниц if time > obj.pages: $ delt_pages = obj.pages $ time = delt_pages $ obj.pages = 0 show screen mesage('The book is fully read.') else: $ delt_pages = time $ obj.pages = obj.pages - delt_pages # Изменение радости $ delt_joy = delt_pages * (obj.joy / 100) $ GG.joy = GG.joy + delt_joy hide screen show_image with Dissolve(0.3) # Шпионская камера if 'spycam' in obj.features: $ loc = var_dict['location'] # Если локация в апартаментах НПС if 'apatment_npc' in loc.features: $ current_apprtment_id = var_dict['current_apartment'].id # Добавление списка комнат текущих аппартаментов в которых установленна камера. if current_apprtment_id not in var_dict['apartment_spy']: $ var_dict['apartment_spy'][current_apprtment_id] = [] # Стоит ли в комнате уже камера if loc in var_dict['apartment_spy'][current_apprtment_id]: talker 'There is already a spy camera here.' return # Установка камеры $ dl_list = npc_location_list(loc) if dl_list != []: menu: 'It is better to do it without witnesses.': pass return else: menu: 'Install the camera here.': play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 # Удаление камеры из инветаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info $ var_dict['apartment_spy'][current_apprtment_id].append(loc) play sound "sounds/level_UP.mp3" 'Not': pass # Если локация не в апартаментах НПС else: # Можно ли установить камеру в текущей локации if 'spycam_on' in loc.features: talker 'There is already a spy camera here.' return if 'spycam_on' not in loc.features and 'spycam_off' not in loc.features: talker 'There is nowhere to install a spy camera.' return # Установка камеры if 'spycam_off' in loc.features: $ dl_list = npc_location_list(loc) if dl_list != []: talker 'It is better to do it without witnesses.' return else: menu: 'Install the camera here.': play sound "sounds/screwdriver.mp3" show screen show_image_above("images/other/bgd_black.png") with Dissolve(1) pause 2.0 hide screen show_image_above with Dissolve(1) pause 0.5 # Удаление камеры из инветаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info $ loc.features.remove('spycam_off') $ loc.features.append('spycam_on') play sound "sounds/level_UP.mp3" 'Not': pass # Маска преступника if 'mask' in obj.features: call lb_mask from _call_lb_mask # Журнал 1 if 'журнал_1' in obj.features: call lb_magazine_1 from _call_lb_magazine_1 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 2 if 'журнал_2' in obj.features: call lb_magazine_2 from _call_lb_magazine_2 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 3 if 'журнал_3' in obj.features: call lb_magazine_3 from _call_lb_magazine_3 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 4 if 'журнал_4' in obj.features: call lb_magazine_4 from _call_lb_magazine_4 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 5 if 'журнал_5' in obj.features: call lb_magazine_5 from _call_lb_magazine_5 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 6 if 'журнал_6' in obj.features: call lb_magazine_6 from _call_lb_magazine_6 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 7 if 'журнал_7' in obj.features: call lb_magazine_7 from _call_lb_magazine_7 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 8 if 'журнал_8' in obj.features: call lb_magazine_8 from _call_lb_magazine_8 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 9 if 'журнал_9' in obj.features: call lb_magazine_9 from _call_lb_magazine_9 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # Журнал 10 if 'журнал_10' in obj.features: call lb_magazine_10 from _call_lb_magazine_10 $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) # "учебное_пособие" if 'учебное_пособие' in obj.features: show screen show_image('inventories/inv_empty.png') menu: 'Read the guide - 30 min': $ time = 30 play sound 'sounds/pages.mp3' pause 0.7 'Read the guide - 1h': $ time = 60 play sound 'sounds/pages.mp3' pause 0.7 'Read the guide - 2h': $ time = 120 play sound 'sounds/pages.mp3' pause 0.7 'Close': play sound 'sounds/click_button.mp3' # Уменьшение страниц if time > obj.pages: $ delt_pages = obj.pages $ time = delt_pages $ obj.pages = 0 # Добавление навыка python: for feat in obj.features: if 'навык: ' in feat: GG.features.append(feat.replace('навык: ', '')) play sound "sounds/level_UP.mp3" show screen mesage('The guide is fully read.') # Удаление книги из инвентаря $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info else: $ delt_pages = time $ obj.pages = obj.pages - delt_pages hide screen show_image with Dissolve(0.3) # Амфетамин if 'Амфетамины' in obj.features: play sound "sounds/drugs.mp3" if 'усталость_1' in GG.features: $ GG.features.remove('усталость_1') if 'усталость_2' in GG.features: $ GG.features.remove('усталость_2') if 'усталость_3' in GG.features: $ GG.features.remove('усталость_3') $ GG.pep = 100 $ GG.features.append('amphet') $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info # Кокс if 'cocx' in obj.features: play sound "sounds/drugs.mp3" if 'меланхолия' in GG.features: $ GG.features.remove('меланхолия') if 'депрессия' in GG.features: $ GG.features.remove('депрессия') $ var_dict['save_joy'] = GG.joy $ GG.joy = 100 $ GG.features.append('cocx') $ inv = var_dict['inventary'] # текущий инвентарь $ inv.cells.remove(obj) hide screen info # Если объект можно использовать только раз в день $ var_dict['one_per_day_objects'].append(obj) call minuts(time) from _call_minuts_11 return # Наполнение ёмкостей водой label fill_tank: $ list_obj = list_obj_feature(inv_GG, 'ёмкость для жидкости') show screen choise_obj(list_obj, 'fill_tank2') $ renpy.pause(100000, hard=True) return label fill_tank2(obj): if obj.name == 'Empty bottle': play sound 'sounds/fill_water.mp3' $inv_GG.cells.remove(obj) $inv_GG.cells.append(copy.copy(water_bottle)) return # Раздевание НПС label nude_npc(npc): $ npc.clothes = ['Nude'] return # Подгонка одежды и декалей тела под изменение тела label change_clothes_to_body(npc): python: # Изменение одежды for clothe_set in npc.clothe_sets: for clothe in clothe_set: if isinstance(clothe, Clothe): # Одежда x=0 for img in clothe.images: clothe.images[x][0] = img[0].replace('B1', npc.body.ID) clothe.images[x][0] = img[0].replace('B2', npc.body.ID) clothe.images[x][0] = img[0].replace('B3', npc.body.ID) clothe.images[x][0] = img[0].replace('B4', npc.body.ID) clothe.images[x][0] = img[0].replace('B5', npc.body.ID) x=x+1 # Изменение декалей одежды for decal in clothe.decales: for decal_c in var_dict['clothe_decales_list']: for body_c in decal_c.images: if (npc.body.ID == body_c and decal[0] == decal_c.images[body_c][0]): decal[1] = decal_c.images[body_c][1] decal[2] = decal_c.images[body_c][2] # Изменение декалей тела for decal in npc.decales: img_adress = decal[0] for new_decal in var_dict['body_decales_list']: if img_adress in new_decal.images[npc.body][0]: decal[1] = new_decal.images[npc.body][1] decal[2] = new_decal.images[npc.body][2] return # Включение отображения декали тела при редактировании label on_decal_body(npc, decal): python: if decal[7] != 'perm': for decal_c in npc.decales: if decal_c[0] == decal[0]: decal[7] = 'yes' index_decal = npc.decales.index(decal_c) npc.decales[index_decal] = decal return # Выключение отображения текущей декали label off_decal_body(npc): python: decal = var_dict['current_decal'] if decal[7] == 'yes': for decal_c in npc.decales: if decal_c[0] == decal[0]: decal[7] = 'none' index_decal = npc.decales.index(decal_c) npc.decales[index_decal] = decal return # Удаление постоянной декали с тела label delete_decal_from_body(npc=npc, decal=decal): $ npc.decales.remove(decal) return # Удаление постоянной декали с одежды label delete_decal_from_clothe(clothe=clothe, decal=decal): $ clothe.decales.remove(decal) return # Добавление постоянной декали к телу label add_decal_from_body(npc=npc, decal=decal): python: for body_key in decal.images: if body_key.ID == npc.body.ID: npc.decales.append(decal.images[body_key]) return # Добавление постоянной декали к одежде label lb_add_decal_clothe(npc, clothe, decal): python: for body_c in decal.images: if npc.body.ID == body_c: clothe.decales.append(decal.images[body_c].copy()) return # Поднять clothe decal поверх всех изображенией label lb_above_clothe_decal(clothe, index_dec): if 'above' not in clothe.decales[index_dec]: $ clothe.decales[index_dec].append('above') return # Опустить clothe decal на стандартый уровень label lb_below_clothe_decal(clothe, index_dec): if 'above' in clothe.decales[index_dec]: $ clothe.decales[index_dec].remove('above') return # Сохранение изменений расположения декалей label lb_save_changed_decal(npc, dec): python: # Поиск изменяемой декали и изменение for decal in var_dict['clothe_decales_list']: for body_c in decal.images: if npc.body.name == body_c: if dec[0] == decal.images[body_c][0]: decal.images[body_c][1] = dec[1] decal.images[body_c][2] = dec[2] # Запись изменённого списка во внешний файл with open('npc/' + 'clothe_decals_list' + '.pkl', 'wb') as output: pickle.dump(var_dict['clothe_decales_list'], output, pickle.HIGHEST_PROTOCOL) return # Стартовые подпрограммы label start_game_0_age_check: show screen show_image_above("images/other/game_menu_blur.jpg") with Dissolve(0.3) 'To play this game, you need to be over 18 years old.' 'So, are you over 18 years old?' menu: 'Yes': 'Good' 'Not': 'What a shame.' 'Bye' $ renpy.full_restart() return label start_game_1: # Переименование ГГ call lb_rename_GG from _call_lb_rename_GG # Переименование главных НПС-ов $ npc = def_name_return_npc('Sophia') # Переодевание в casual одежду если она есть $ def_clothe_change('Сasual', npc) $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ name_char = npc.name show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.5) 'This is [npc.name] your landlord.' menu: 'Want to rename her?' 'Yes': call lb_rename_NPC_show(npc) from _call_lb_rename_NPC_show 'Not': hide screen show_image with Dissolve(0.5) $ npc = def_name_return_npc('Isabella') # Переодевание в casual одежду если она есть $ def_clothe_change('Сasual', npc) $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ name_char = npc.name show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.5) 'This is [npc.name] her daughter.' menu: 'Want to rename her?' 'Yes': call lb_rename_NPC_show(npc) from _call_lb_rename_NPC_show_1 'Not': hide screen show_image with Dissolve(0.5) return label start_game_2: show screen show_image_above("images/other/bgd_black.png") with Dissolve(1.0) pause 1.0 play music "sounds/snoring.mp3" pause 2 stop music fadeout 0.7 hide screen show_image_above hide screen show_image_modal show screen my_GUI show screen location with Dissolve(1.5) play sound "sounds/morning.mp3" pause 1.0 'You slept well.' return # Переименовать ГГ label lb_rename_GG: $ povname = renpy.input("What's your name? (Current name - [GG.name]).") if povname == '': $ povname = GG.name $ povname = povname.strip() $ GG.name = povname $ GGName = GG.name hide screen show_image_above with Dissolve(0.3) return # Переименование НПС с представлением label lb_rename_NPC_show(npc): if npc != '': $ img = var_dict['location'].image $ img_loc = im.Blur(img, 3.5) $ img_npc = npc_image(npc) $ name_char = npc.name $ povname = renpy.input("What is [npc.name]'s new name?") $ povname = povname.strip() $ npc.name = povname call lb_cange_emotion(npc, '_smile') from _call_lb_cange_emotion_9 $ img_npc = npc_image(npc) show screen show_image(img_list=[img_loc, img_npc]) with Dissolve(0.5) $ name_char = npc.name char_npc '- Ok, so my name is [npc.name].' hide screen show_image with Dissolve(0.5) return # Скрыть все экраны label lb_hide_screens2: hide screen choose_NPC_icon hide screen choose_NPC_from_list hide screen NPC_info hide screen show_image_above hide screen mesage hide screen qwestion hide screen choose_img hide screen choose_NPC hide screen popup_image hide screen popup_text hide screen show_image_in_position_2 hide screen choose_item hide screen show_scn hide screen show_in_senter hide screen show_image_in_position hide screen show_image_modal hide screen show_image hide screen choise_obj hide screen select_inv hide screen GG_info hide screen info hide screen interaction hide screen inventary hide screen clothe_editor hide screen body_editor hide screen NPC_other_action hide screen NPC_reluctant_action hide screen NPC_touching_action hide screen NPC_romantic_action hide screen NPC_talk hide screen simply_NPC_show hide screen NPC_show hide screen my_GUI hide screen location jump main_cicle # Конец временных состояний label lb_drunk_1_end: $ del var_dict['current_temporary_features_GG']['лёгкое_опьянение'] $ var_dict['current_temporary_features_GG']['лёгкое_похмелье'] = copy_obj(var_dict['temporary_features']['лёгкое_похмелье']) $ GG.water = -150.0 return label lb_drunk_2_end: $ del var_dict['current_temporary_features_GG']['сильное_опьянение'] $ var_dict['current_temporary_features_GG']['сильное_похмелье'] = copy_obj(var_dict['temporary_features']['сильное_похмелье']) $ GG.water = -200.0 return label lb_hangover_1_end: $ del var_dict['current_temporary_features_GG']['лёгкое_похмелье'] return label lb_hangover_2_end: $ del var_dict['current_temporary_features_GG']['сильное_похмелье'] $ var_dict['current_temporary_features_GG']['лёгкое_похмелье'] = copy_obj(var_dict['temporary_features']['лёгкое_похмелье']) return label lb_hangover_3_end: $ del var_dict['current_temporary_features_GG']['мертвецкое_похмелье'] $ var_dict['current_temporary_features_GG']['сильное_похмелье'] = copy_obj(var_dict['temporary_features']['сильное_похмелье']) return # Загрузка внешнего вида label lb_load_appearance(npc): $ var_dict['npc4'] = npc $ def_load_add_npces() $ list_add_npces = var_dict['add_npces'] $ list_add_npces = list_add_npces + var_dict['npces'] python: for fantasy_npc in var_dict['fantasy_npces']: list_add_npces.append(fantasy_npc) show screen choose_NPC_from_list(list_add_npces, 'lb_load_appearance2', mark='Load NPC') return label lb_load_appearance2(npc=''): $ changed_npc = var_dict['npc4'] if npc != '': menu: 'Replace [changed_npc.name]\'s body with [npc.name]': pause 0.5 show screen show_image_above('scenes/black.png') hide screen popup_image with Dissolve(0.5) play sound "sounds/magic.mp3" # Замен тела $ index_body_x = def_index_body(npc) call lb_change_body(changed_npc, index_body_x) from _call_lb_change_body # Замена цвета тела python: for img in npc.images: if 'bodies/B' in img[0] and 'hair' not in img[0] and 'Hair' not in img[0]: index_img = npc.images.index(img) changed_npc.images[index_img][3] = npc.images[index_img][3] changed_npc.images[index_img][4] = npc.images[index_img][4] changed_npc.images[index_img][5] = npc.images[index_img][5] changed_npc.images[index_img][6] = npc.images[index_img][6] # Замена лица и волос python: for img in npc.images: if 'Hair' in img[0]: index_img = npc.images.index(img) changed_npc.images[index_img] = img if 'M' in img[0] or 'E' in img[0] or 'N' in img[0]: index_img = npc.images.index(img) changed_npc.images[index_img][0] = img[0] hide screen show_image_above with Dissolve(0.3) 'Not': pass $ var_dict['action'] = 'choose_editors' show screen body_editor(changed_npc) return # Сохранение НПС-а во внешний файл label lb_save_NPC(npc): python: # ********************************************************************** def_chage_locations_to_id() # Переделка всех соседей локации на id # ********************************************************************** with open('npc/' + npc.id + '.pkl', 'wb') as output: pickle.dump(npc, output, pickle.HIGHEST_PROTOCOL) # ********************************************************************** def_change_id_to_locations() # Переделка всех соседей локаций с id на объект # ********************************************************************** return # Тестирование label lb_test_txt: python: for img in var_dict['fantasy_dream_1']: renpy.show_screen("show_image_fix_size", img_list=[img]) renpy.pause(10.0) python: for img in var_dict['fantasy_dream_2']: renpy.show_screen("show_image_fix_size", img_list=[img]) renpy.pause(10.0) python: for img in var_dict['fantasy_dream_3']: renpy.show_screen("show_image_fix_size", img_list=[img]) renpy.pause(10.0) python: for img in var_dict['fantasy_dream_4']: renpy.show_screen("show_image_fix_size", img_list=[img]) renpy.pause(10.0) python: for img in var_dict['fantasy_dream_5']: renpy.show_screen("show_image_fix_size", img_list=[img]) renpy.pause(10.0) char_GG ' 7777 ' # $ npc = var_dict['npces'][0] # $ name_char = npc.name # # python: # # with open("_dialogues/Test dialogue.json", "r") as read_file: # data = json.load(read_file) # # current_node_name = 'START' # nodes = data[0]['nodes'] # # # Вывод диалогов # while current_node_name: # # # Получение текущей ноды по её имени # python: # for node_x in nodes: # if node_x['node_name'] == current_node_name: # node = node_x # # # Вывод реплики # if node['node_type'] == 'show_message': # $ txt = node['text']['ENG'] # $ txt = txt.replace('[GG.name]', GG.name) # $ txt = txt.replace('[npc.name]', npc.name) # if node['character'][0] == 'npc': # char_npc"[txt]" # if node['character'][0] == 'Player': # char_GG"[txt]" # if node['character'][0] == 'talker': # talker"[txt]" # # # Переход к следующей ноде # $ current_node_name = node['next'] # # # # # # # # for node in data[0]['nodes']: # # if 'text' in node: # # txt = node['text']['ENG'] # # txt = txt.replace('[GG.name]', GG.name) # # txt = txt.replace('[npc.name]', npc.name) # # # # # Вывод реплики # # if node['character'][0] == 'npc': # # char_npc("[txt]") # # if node['character'][0] == 'Player': # # char_GG("[txt]") # # if node['character'][0] == 'talker': # # talker("[txt]") #call fantasy_dialogue('lb_qw_6_beach_season_10_love') # # $ npc = var_dict['npces'][0] # if npc != '': # $ name_char = npc.name # # $ var_dict['dressing_up_1'] = [] # # call dialogue("_dialogues/lb_qw_6_beach_season_14_submission.json", npc) return # # Создание текстового файла # label lb_create_txt: # # python: # npc = var_dict['npces'][0] # name = npc.name # # my_file = open("npcs.txt", "w") # # my_file.write("{} = NPC()\n".format(name)) # my_file.write("{}.name='{}'\n".format(name, name)) # my_file.write("{}.id='{}'\n".format(name, npc.id)) # my_file.write("{}.body={}\n".format(name, npc.body)) # my_file.write("{}.height={}\n".format(name, npc.height)) # my_file.write("{}.emotion='{}'\n".format(name, npc.emotion)) # my_file.write("{}.clothe_sets={}\n".format(name, npc.clothe_sets)) # my_file.write("{}.clothes={}\n".format(name, npc.clothes)) # my_file.write("{}.images={}\n".format(name, npc.images)) # my_file.write("{}.decales={}\n".format(name, npc.decales)) # my_file.write("{}.features={}\n".format(name, npc.features)) # my_file.write("{}.table={}\n".format(name, npc.table)) # my_file.write("{}.dict_skill_0={}\n".format(name, npc.dict_skill_0)) # my_file.write("{}.dict_skill={}\n".format(name, npc.dict_skill)) # my_file.write("{}.dict_marks={}\n".format(name, npc.dict_marks)) # my_file.write("{}.character_traits={}\n".format(name, npc.character_traits)) # my_file.write("{}.GG_know={}\n".format(name, npc.GG_know)) # my_file.write("{}.hide_features={}\n".format(name, npc.hide_features)) # my_file.write("{}.sex_with_GG={}\n".format(name, npc.sex_with_GG)) # my_file.write("{}.doing={}\n".format(name, npc.doing)) # # my_file.close() # # # # menu: # 'Созданно': # pass # # return #