Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0. Если голосов меньше 5 оценка не показывается.
  • 1
  • 2
  • 3
  • 4
  • 5
Сексуальный движок на RenPy
#1
В общем то, это просто концепт, который можно дорабатывать дальше. На описание действий не смотрите, оно там приблизительное. Понятно, что потом будет заменяться на то, что нужно.
Логика работы простая. Движок позволяет выбрать и отслеживает позу, выдает согласно позе и темпу вывод. Ессно, вывод можно сделать все, что угодно, хоть картинки, хоть видео. Девушка случайно выбирает скорость, с которой ей нравится. Угадал - шкала заполняется. Нет - уменьшается.

Что не стал делать:
- разделение шкалы удовлетворения на две, соответственно, раздельные оргазмы
- комментарии по поводу желаемого темпа

Принимаю предложения, пожелания, доработки.
ЗЫ. работает в проектах с новым гуем. в проектах со старым гуем надо другой слайдер.
ЗЫЫ. движок доступен для использования на условиях Creative Common Attribution )))

Код:
init python:
   
   #custom bar sex
   style.bar_s = Style(style.default)
   style.bar_s.left_bar = Frame("gui/slider/horizontal_hover_bar",20, 20)
   style.bar_s.right_bar = Frame("gui/slider/horizontal_idle_bar.png", 20, 20)
   style.bar_s.xmaximum = 500
   style.bar_s.ymaximum = 20

label sexengine:
                                   # переменные
   $ anal = True       #разрешенные позы
   $ vaginal = True
   $ oral = True
   $ startsex = False
   $ girl_sex = "Барби"
   
   $ analsex = False   # предустановки
   $ vaginalsex = False
   $ oralsex = False
   $ s_action = "slow"
   
   
   $ girl_lust = 0
   $ girl_lust_max = 500
   $ girl_mood = renpy.random.choice(['slow','normal','fast'])
   $ sexturn = 1
   
   
   jump sexround
   
label sexround:    
   
   if sexturn == 5:    # выбор темпа, который нравится девушке
       $ girl_mood = renpy.random.choice(['slow','normal','fast'])  
       $ sexturn = 1
   show screen sexbar
   
   call screen sexoption   # выбор типа секса. можно отключить в переменных
   $ s_action = _return
   if s_action == "analsex":
       $ startsex = True
       $ analsex = True
       "Я вошел в ее попку"
       
   if s_action == "oralsex":
       $ startsex = True
       $ oralsex = True
       "[girl_sex] обхватила головку моего члена ротиком."  
       
   if s_action == "vaginalsex":
       $ startsex = True
       $ vaginalsex = True
       "Я вошел в киску [girl_sex]"

   if s_action == "slow":  # описание секса. пока примерное
   
       if analsex:

           "Плавными и нежными движениями я входил в ее попку"
           
       elif oralsex:

           "[girl_sex] осторожно лизала головку моего члена язычком."  
           
       elif vaginalsex:

           "Киска [girl_sex] медленно охватывала мой член."    
       
   if s_action == "normal":
       if analsex:

           "Я активно входил в ее попку на всю длину"
           
       elif oralsex:

           "[girl_sex] ласкала мой член своим ротиком."  
           
       elif vaginalsex:

           "Киска [girl_sex] полностью принимала мой член."    

   if s_action == "fast":

       if analsex:

           "Я проникал в попку [girl_sex] быстрыми резкими движениями."
           
       elif oralsex:

           "[girl_sex] заглатывала мой член по самые яйца."  
           
       elif vaginalsex:

           "Я трахал [girl_sex] как сумасшедший"              
           
       
   if s_action == "pullout":  # вынуть и сменить позу
       if analsex:
           $ startsex = False
           "Со стоном я вынул свой член из тугой попки [girl_sex]"
           $ analsex = False
           
       elif vaginalsex:
           $ startsex = False
           "Я вынул свой член из киски [girl_sex]"
           $ vaginalsex = False
           
       elif oralsex:
           $ startsex = False
           "[girl_sex] вынула мой член из своего ротика"
           $ oralsex = False
       
   
   
   if girl_mood == s_action: # рост шкалы удовлетворения
       $ girl_lust += 50
   else:
       "Девушка всем своим видом показывает, что ей не нравится такой темп."
       $ girl_lust -= renpy.random.randint(10,30)
   
   if girl_lust < -250:   # девушка прекращает секс
       "[girl_sex] недовольно отстраняется. Похоже, секс больше не доставляет ей удовольствия."
       return
   
   # кончает тут )    
   if girl_lust >= girl_lust_max:
       call screen cum_action
       $ c_action = _return
       if analsex:
           if c_action == "cum_inside":
               "Со сладостным стоном я залил ее тугую попку своей спермой."
           if c_action == "cum_outside":            
               "В последний момент вытащив член из попки [girl_sex], я выплеснул свое семя на ее ягодички."
           if c_action == "do_not_cum":
               "Еще не время. Почувствовав приближение оргазма, я вышел из ее попки."
               $ startsex = False
               $ analsex = False
               $ girl_lust = 250
               jump sexround
           
       elif oralsex:
           if c_action == "cum_inside":
               "Со сладостным стоном я выплеснул свою сперму прямо в ротик [girl_sex]."
           if c_action == "cum_outside":            
               "В последний момент вытащив член изо рта [girl_sex], я залил все ее лицо спермой."
           if c_action == "do_not_cum":
               "Рано. Почувствовав приближение оргазма, я выхватил свой член из ее ротика."
               $ startsex = False
               $ oralsex = False
               $ girl_lust = 250
               jump sexround
           
       elif vaginalsex:
           if c_action == "cum_inside":
               "Со сладостным стоном я выплеснул свое семя в киску [girl_sex]."
           if c_action == "cum_outside":            
               "Почувствовав приближение оргазма, я вышел из киски [girl_sex] и кончил на ее половые губки."
           if c_action == "do_not_cum":
               "Еще не время. Почувствовав, что сейчас кончу, я вынул член из ее киски."
               $ startsex = False
               $ vaginalsex = False
               $ girl_lust = 250
               jump sexround        
       
       hide screen sexbar
       return
     
   $ sexturn += 1
   jump sexround        
   
   
screen sexoption:
   if startsex:
       vbox:
           xanchor 0.0 yanchor 0.0 xpos 0.05 ypos .1    
           textbutton "Медленно":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("slow")    
           textbutton "Средне":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("normal")              
           textbutton "Быстро":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("fast")    
           textbutton "Вынуть":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("pullout")        
               
   else:
       vbox:
           xanchor 0.0 yanchor 0.0 xpos 0.05 ypos .1
           if anal:
               textbutton "Войти в попку":
                   hovered SetVariable("info_text", "")
                   unhovered SetVariable("info_text", "")        
                   action Return("analsex")                
           if vaginal:
               textbutton "Войти в киску":
                   hovered SetVariable("info_text", "")
                   unhovered SetVariable("info_text", "")        
                   action Return("vaginalsex")            
           if oral:
               textbutton "Дать в ротик":
                   hovered SetVariable("info_text", "")
                   unhovered SetVariable("info_text", "")        
                   action Return("oralsex")          
       
     
screen sexbar:
   bar:
       xalign .5
       yalign .05
       style "bar_s"
       value girl_lust xmaximum 500
       range girl_lust_max
   text "{size=16}{color=#FFFFFF}{b}[girl_lust]/[girl_lust_max]{/b}{/size}{/color}" xalign 0.5 yalign 0.0
   
screen cum_action:
       vbox:
           xanchor 0.0 yanchor 0.0 xpos 0.05 ypos .1    
           textbutton "Кончить внутрь":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("cum_inside")    
           textbutton "Кончить наружу":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("cum_outside")              
           textbutton "Пока не кончать":
               hovered SetVariable("info_text", "")
               unhovered SetVariable("info_text", "")        
               action Return("do_not_cum")

 
Ответить
#2
Автор, я конечно не спец в RenPy, но я бы предложил тебе оформить движок, как класс, и вынести его в отдельный модуль. Так же рост шкалы я бы сделал псевдо-рандомом, когда удовольствие больше чем константа рандом уменьшается в сторону увлечения скорости.Ну а в целом весьма неплохо.

 
Ответить
#3
(21.11.2016, 11:27)da3654fb писал(а): Автор, я конечно не спец в RenPy, но я бы предложил тебе оформить движок, как класс, и вынести его в отдельный модуль.

Зачем? Пока это просто код, который можно использовать как угодно. Как правило, в виде подпрограммы, вызываемой по label.

(21.11.2016, 11:27)da3654fb писал(а): Так же рост шкалы я бы сделал псевдо-рандомом, когда удовольствие больше чем константа рандом уменьшается в сторону увлечения скорости.Ну а в целом весьма неплохо.

Можно подумать. Пока там падение шкалы рандомное. Впрочем, никто не мешает туда привязать скиллы и прочие параметры.

 
Ответить


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Движок для отображения книг на RenPy cfdcd85a 3 829 13.01.2018, 04:15
Посл. сообщение: cfdcd85a

Переход:


Просматривают эту тему: 1 Гость(ей)