Cum_Manage.qsrc 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328
  1. # Cum_Manage
  2. !!
  3. !! THIS IS A CORE FILE TO GAME MECHANICS. Please edit CAREFULLY, and leave as many comments as possible!!
  4. !!
  5. !! The comments in this file serve as tutorial to managing cum/sperm during scene writing and game-play. Please read them.
  6. !!
  7. !! spafinloc and cum array naming takes precident over other naming schemes. Always import and export variables by their cum array names
  8. !!
  9. !!------------------------------------------------------------------------------------------------------------
  10. !!
  11. !! Cum Array indices:
  12. !!
  13. !! cumarrnam : Sperm Owner
  14. !! cumarrppt : Sperm Potential Potency (max sperm delivery)
  15. !! cumarrcpt : Sperm Current Potency (current amount of sperm)
  16. !! cumarrdel : Sperm "Delivery" (method of *VAGINAL ONLY* acquisition)
  17. !! cumarrcon : Contraception type used
  18. !! cumarrage : Sperm age in hours
  19. !! cumarrkno : Did you know/realize who did it?
  20. !! cumarrcnt : Unique identifier of the exact which time the MC has had this sperm incident occur.
  21. !!
  22. !!
  23. !!
  24. !! Spatter Array indices:
  25. !!
  26. !! sparrloc : Location of the sperm, as per cumarrdel
  27. !! sparrnam : Spatter Owner
  28. !! sparrppt : Spatter Potential Potency (Used to increase potency if you don't clean yourself out)
  29. !! sparridt : Did you know/realize who did it?
  30. !! sparrvol : Volume of the spatter. 40 is average.
  31. !! sparrslc : Spread status of the spatter. High volume can spread the contaminant from it's starting place.
  32. !! sparrcnt : Unique identifier of the exact which time the MC has had this spatter incident occur.
  33. !!
  34. !!
  35. !!
  36. !! Values of 'cumarrdel' as defined by the cum_arr:
  37. !!
  38. !! cumarrdel = 0 : 'Vaginal intercourse'
  39. !! cumarrdel = 1 : 'From spatter on labia'
  40. !! cumarrdel = 2 : 'From the anal area'
  41. !! cumarrdel = 3 : 'From sperm on clothing'
  42. !! cumarrdel = 4 : 'From sperm on fingers'
  43. !! cumarrdel = 5 : 'From sperm on wipes'
  44. !! cumarrdel = 6 : 'Unknown'
  45. !!
  46. !!
  47. !!
  48. !! Values of 'cumarrcon' as defined by the cum_arr:
  49. !!
  50. !! cumarrcon = 0: 'No contraception used'
  51. !! cumarrcon = 1: 'You lied about being on the pill'
  52. !! cumarrcon = 2: 'You were on the pill'
  53. !! cumarrcon = 3: 'You used a condom'
  54. !! cumarrcon = 4: 'The condom broke'
  55. !! cumarrcon = 5: 'The condom slipped off inside you'
  56. !! cumarrcon = 6: 'The condom was sabotaged by someone else'
  57. !! cumarrcon = 7: 'You sabotaged the condom'
  58. !! cumarrcon = 8: 'Precum had sperm in it'
  59. !! cumarrcon = 9: 'You believe are sterile'
  60. !!
  61. !!
  62. !!
  63. !! Values of 'cumarrkno' as defined by the cum_arr:
  64. !!
  65. !! cumarrkno = -2 : 'You were unaware there was sperm in you'
  66. !! cumarrkno = -1 : 'You do not think that any sperm has gotten into you'
  67. !! cumarrkno = 0 : 'You know somebody got sperm in you, but you don''t know that person'
  68. !! cumarrkno = 1 : 'You know who got sperm in you'
  69. !!
  70. !! Setting for no STD checks
  71. !!
  72. !! cumnostd = 1 : No risk of STD, resets at end of file so must be used for all related cum_management calls
  73. !!
  74. !! Locations to be defined by 'spafinloc'
  75. !!
  76. !! 0 = 'In your Vagina'
  77. !! 1 = 'On your labia'
  78. !! 2 = 'On your panties over your vagina'
  79. !! 3 = 'In your anus'
  80. !! 4 = 'On your butt'
  81. !! 5 = 'On your panties over your butt'
  82. !! 6 = 'On your clothes in your groin area'
  83. !! 7 = 'On your clothes'
  84. !! 8 = 'On your back'
  85. !! 9 = 'On your legs'
  86. !! 10 = 'On your arms'
  87. !! 11 = 'On your face'
  88. !! 12 = 'Inside your mouth'
  89. !! 13 = 'On your hands'
  90. !! 14 = 'On your stomach'
  91. !! 15 = 'On your breasts'
  92. !! 16 = 'In your hair'
  93. !! 17 = 'In a condom in your vagina'
  94. !!
  95. !!------------------------------------------------------------------------------------------------------------
  96. if $ARGS[0] = '':
  97. !!{ Debug information, comment out in release versions. }
  98. !! '<br><b><font color="red">Cum_Manage</font> called with: spafinloc=<<spafinloc>> cumarrkno=<<cumarrkno>> cummarrcon=<<cumarrcon>> cumarrdel=<<cumarrdel>></b>'
  99. !!{ We count every time somebody cum on or inside the MC. It is used for spatter and cum matching in femcyc}
  100. stat['cum_count'] += 1
  101. condom_break = 0
  102. !!{ no STDs from NPC you know }
  103. if (mid($boy,1,1) = 'A' or mid($boy,1,1) = 'B') and isnum(mid($boy,2,1)) ! 0: cumnostd = 1
  104. cumnostd = min(1, max(cumnostd, sexpartkno))
  105. !!{ Here we define our important variables.}
  106. dick = npc_dick[$boy]
  107. if sexvolume <= 0: sexvolume = 40
  108. if sexspecpot = 0: sexspecpot = npc_spermpot[$boy]
  109. if sexspecpot = 0: sexspecpot = sexvolume * rand(250, 300)
  110. if sexspecpot < 0: sexspecpot = 0
  111. if vibratorIN = 1 and spafinloc = 0: vibratorIN = 0
  112. if isprok = 1 and spafinloc = 0: isprok = 0
  113. if analplugIN = 1 and spafinloc = 3: analplugIN = 0
  114. !!{ Set the cum array temp to the current size of the cum array to add a new entry to the end of file. Then checks to see if you are on the pill. If you are and there is no contraception used, it flags this as a "done with pill" act, which means a pregnancy will be a pill failure.}
  115. cumarrtemp = arrsize('$cumarrnam')
  116. if sexcontra = 0 and pillcon2 > 1000: sexcontra = 2
  117. !!{Check for previous deposit, and if it was by the same guy and precum, it sets cumarrtemp back by one}
  118. !! if $cumarrnam[cumarrtemp-1] = $boy and cumarrkno[cumarrtemp-1] = -1:cumarrtemp -= 1 & sexspecpot = cumarrppt[cumarrtemp]
  119. if cumprecheck = 1 and cumnostd = 0:
  120. cumarrkno[cumarrtemp] = -1
  121. gs 'dinSex', 'std_trigger'
  122. elseif sexunaware > 0:
  123. cumarrkno[cumarrtemp] = -2
  124. elseif sexpartkno = 1:
  125. cumarrkno[cumarrtemp] = 1
  126. else
  127. cumarrkno[cumarrtemp] = 0
  128. end
  129. !!{ If a condom slipped in the vagina, it will pushed deeper inside the vagina during vaginal sex.}
  130. if spafinloc <= 0 and cumcondslip > 0:
  131. if dick > cumcondslip_deep:
  132. cumcondslip_deep = dick + rand (0,2)
  133. else
  134. cumcondslip_deep += rand (0,2)
  135. end
  136. end
  137. sparrtemp = arrsize('sparrvol')
  138. !!{ Check to see if this is flagged as a preejaculate emmission. All vaginal penetrations that flag this as cumprecheck contain preejaculate. Guidelines for calling it: If your boy is likely to have masterbated, had sex, or otherwise encouraged semen to leak out of their urethra in the last 48 hours, they probably have some fertile preejaculate. If in doubt, let it leak. The chances of pregnancy from it are low, and the MC should have been wearing protection.}
  139. if cumprecheck ! 1:
  140. !!{ Here it checks for anal deposit and increments anal creampie variable.}
  141. if spafinloc = 3:
  142. if sexunaware = 1 or sexcontra = 6:
  143. pcs_acp_unknown += 1
  144. else
  145. pcs_acp_known += 1
  146. end
  147. end
  148. !!{ Here it checks for vaginal deposit.}
  149. if spafinloc <= 0:
  150. !!{ Next it sets the variables in the array. The cumming boys name is first and cum age to 0.
  151. !! The cum delivery location is set to vaginally, and we check to see if this is an unknowing sex act.
  152. !! If it is, it makes it so the MC doesn''t know who did it.
  153. !! If the boy has a custom specified potency 'sexspecpot', it flags the potency. Otherwise it sets it to the default.
  154. !! Default potency potential is generated from a random multiplier of sexvolume.
  155. !! Sexvolume defaults to 40 (4 mL), but may be overwritten with 'sexvolume'.}
  156. $cumarrnam[cumarrtemp] = $boy
  157. cumarrage[cumarrtemp] = 0
  158. cumarrdel[cumarrtemp] = 0
  159. cumarrcnt[cumarrtemp] = stat['cum_count']
  160. cumarrppt[cumarrtemp] = sexspecpot
  161. !!{ Now it sets up the splatter and actual internal cum.
  162. !! First it sets the array to the spatter end of file. Then it checks for riding bareback.
  163. !! If theres a condom, it gives a chance for the condom to fail in general, slip off and remain in the vagina, or break.}
  164. if sexcontra > 2:
  165. if noprotect = 1: noprotect = 0 & sexcontra = 4
  166. if sexcontra = 3:
  167. temprand = rand(0,1000)
  168. dick_wid = 3
  169. if $dick_girth = 'skinny': dick_wid = 2
  170. if $dick_girth = 'slim': dick_wid = 3
  171. if $dick_girth = 'well proportioned': dick_wid = 3
  172. if $dick_girth = 'thicker than average': dick_wid = 4
  173. if $dick_girth = 'thick': dick_wid = 4
  174. if $dick_girth = 'massive': dick_wid = 5
  175. if $dick_girth = 'monstrous': dick_wid = 6
  176. break_thresh = dick_wid * 2
  177. break_thresh -= pcs_vag / 4
  178. break_thresh += dick / 4
  179. slip_thresh = 36 - (dick_wid * 2)
  180. slip_thresh -= (pcs_vag / 2)
  181. slip_thresh -= dick / 2
  182. if break_thresh < 1: break_thresh = 1
  183. if slip_thresh < 4: slip_thresh = 4
  184. break_thresh += slip_thresh
  185. slip_thresh = 0
  186. if temprand = 0:
  187. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/4
  188. cumarrcon[cumarrtemp] = 3
  189. elseif temprand <= break_thresh:
  190. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  191. cumarrcon[cumarrtemp] = 4
  192. sexcontra = 4
  193. sparrage[sparrtemp] = 0
  194. sparrloc[sparrtemp] = 0
  195. $sparrnam[sparrtemp] = $boy
  196. sparrcnt[sparrtemp] = stat['cum_count']
  197. sparrppt[sparrtemp] = sexspecpot
  198. sparrvol[sparrtemp] += sexvolume
  199. cumsumbod += sexvolume
  200. cumsumvag += sexvolume
  201. condom_break = 1
  202. stat['broken_condoms'] += 1
  203. stat['last_broken_condom'] = daystart
  204. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  205. sparrslc[sparrtemp] = 0
  206. dynamic $ferteggfather
  207. else
  208. cumarrcpt[cumarrtemp] += 5
  209. cumarrcon[cumarrtemp] = 3
  210. end
  211. !!{ Next it checks to see if the event is calling specifically for a burst or slipped off condom.
  212. !! It treats them the same as if the condom above had a failure.}
  213. elseif sexcontra = 4:
  214. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  215. cumarrcon[cumarrtemp] = 4
  216. sparrage[sparrtemp] = 0
  217. sparrloc[sparrtemp] = 0
  218. $sparrnam[sparrtemp] = $boy
  219. sparrcnt[sparrtemp] = stat['cum_count']
  220. sparrppt[sparrtemp] = sexspecpot
  221. sparrvol[sparrtemp] += sexvolume
  222. cumsumbod += sexvolume
  223. cumsumvag += sexvolume
  224. condom_break = 1
  225. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  226. sparrslc[sparrtemp] = 0
  227. dynamic $ferteggfather
  228. elseif sexcontra = 5:
  229. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/200
  230. cumarrcon[cumarrtemp] = 5
  231. cumcondslip = 1
  232. cumcondsanb = cumarrtemp
  233. sparrage[sparrtemp] = 0
  234. sparrloc[sparrtemp] = 17
  235. $sparrnam[sparrtemp] = $boy
  236. sparrcnt[sparrtemp] = stat['cum_count']
  237. sparrppt[sparrtemp] = sexspecpot
  238. sparrvol[sparrtemp] += sexvolume
  239. cumsumbod += sexvolume
  240. cumsumvag += sexvolume
  241. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  242. sparrslc[sparrtemp] = 0
  243. cumcondslip += 1
  244. if cumcondslip_deep <= 0:cumcondslip_deep = rand(1, dick)
  245. if sparridt[sparrtemp] >= 0:cumcondslip_aware = 1
  246. dynamic $ferteggfather
  247. !!{ Next, check for sabotaged condoms. First sabotaged by you, then sabotaged by the guy.
  248. !! If they were sabotaged, it acts similar to a condom failure, but worse.}
  249. elseif sexcontra = 6:
  250. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  251. cumarrcon[cumarrtemp] = 6
  252. elseif sexcontra = 7:
  253. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  254. cumarrcon[cumarrtemp] = 7
  255. dynamic $ferteggfather
  256. end
  257. !!{ If you have no protection, you get a nice, full load of semen.}
  258. else
  259. sparrage[sparrtemp] = 0
  260. sparrloc[sparrtemp] = 0
  261. $sparrnam[sparrtemp] = $boy
  262. sparrcnt[sparrtemp] = stat['cum_count']
  263. sparrppt[sparrtemp] = sexspecpot
  264. sparrvol[sparrtemp] += sexvolume
  265. cumsumbod += sexvolume
  266. cumsumvag += sexvolume
  267. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  268. sparrslc[sparrtemp] = 0
  269. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/5*4
  270. cumarrcon[cumarrtemp] = sexcontra
  271. dynamic $ferteggfather
  272. end
  273. !! creampie vaginal statistics:
  274. if spafinloc = 0:
  275. stat['last_creampie'] = daystart
  276. !!STD checks
  277. if cumnostd = 0: gs 'dinSex', 'std_trigger'
  278. !! safe creampie (if cycle > 3 or on pill or succubus):
  279. if cycle > 3 or birth_control['safe'] = 1 or succubusflag = 1:
  280. if sexunaware = 1 or sexcontra = 6:
  281. pcs_cp_safe_unknown += 1
  282. else
  283. pcs_cp_safe_known += 1
  284. end
  285. !! pretty safe creampie (if cycle = 3 or cycle = 0):
  286. elseif cycle = 0 or cycle = 3:
  287. if sexunaware = 1 or sexcontra = 6:
  288. pcs_cp_notsafe_unknown += 1
  289. else
  290. pcs_cp_notsafe_known += 1
  291. end
  292. !! risky creampie (not on pill, fertile part of the cycle):
  293. else
  294. if sexunaware = 1 or sexcontra = 6:
  295. pcs_cp_risky_unknown += 1
  296. else
  297. pcs_cp_risky_known += 1
  298. end
  299. end
  300. end
  301. !!{ If you arent getting it in the vagina, and the boy isnt pumping it into a condom, a spatter is made and applied.
  302. !! If you arent wearing any panties and it was called to hit your panties, it goes directly to your groin.
  303. !! If you are naked and it calls for a clothing strike, it will go to your body instead.}
  304. elseif spafinloc > 0 and sexcontra < 3:
  305. sparrage[sparrtemp] = 0
  306. sparrcnt[sparrtemp] = stat['cum_count']
  307. if $pantyworntype = 'none':
  308. if spafinloc = 2:
  309. spafinloc = 1
  310. elseif spafinloc = 5:
  311. spafinloc = 4
  312. end
  313. end
  314. if $clothingworntype = 'nude':
  315. if spafinloc = 2:
  316. spafinloc = 1
  317. elseif spafinloc = 5:
  318. spafinloc = 4
  319. elseif spafinloc = 6:
  320. if rand(0,1) = 0:
  321. spafinloc = 1
  322. else
  323. spafinloc = 4
  324. end
  325. elseif spafinloc = 7:
  326. if rand(0,1) = 0:
  327. spafinloc = 14
  328. else
  329. spafinloc = 15
  330. end
  331. end
  332. end
  333. sparrloc[sparrtemp] = spafinloc
  334. if spafinloc = 12 and pcs_breath = 1: pcs_breath = 0
  335. if spafinloc = 12 and swallow >= 10 and rand(0,3) = 0: pcs_energy += 2 & pcs_hydra += 1
  336. $sparrnam[sparrtemp] = $boy
  337. sparrppt[sparrtemp] = sexspecpot
  338. sparrvol[sparrtemp] += sexvolume
  339. cumsumbod += sexvolume
  340. if spafinloc = 3:
  341. cumsumass += sexvolume
  342. end
  343. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  344. sparrslc[sparrtemp] = 0
  345. end
  346. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  347. sexpartkno = 0
  348. sexunaware = 0
  349. !!{ And this is the pre ejaculate release talked about above.}
  350. elseif sexcontra < 3 and spafinloc = 0:
  351. $cumarrnam[cumarrtemp] = $boy
  352. cumarrcnt[cumarrtemp] = stat['cum_count']
  353. cumarrppt[cumarrtemp] = sexspecpot
  354. cumarrage[cumarrtemp] = 0
  355. cumarrdel[cumarrtemp] = 0
  356. cumarrcon[cumarrtemp] = sexcontra
  357. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/12
  358. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  359. end
  360. !!STD from anal check
  361. if spafinloc = 3 and cumnostd = 0: gs 'dinSex', 'std_trigger'
  362. !!STD from oral check
  363. if spafinloc = 12 and cumnostd = 0: gs 'dinSex', 'std_trigger_oral'
  364. cumprecheck = 0
  365. spafinloc = 0
  366. sexvolume = 0
  367. dynamic $din_Update_Condom_Counts
  368. if cumsumass >= 60:
  369. arrmodtmp = arrpos('sparrloc',3)
  370. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  371. end
  372. if cumsumvag >= 60:
  373. arrmodtmp = arrpos('sparrloc',0)
  374. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  375. end
  376. killvar 'sexspecpot'
  377. killvar 'cumnostd'
  378. end
  379. if $ARGS[0] = 'cumgather':
  380. cloc = ARGS[1]
  381. i = arrpos('sparrloc', cloc)
  382. if i ! -1 and i < arrsize('sparrloc'):
  383. if cloc = 0:
  384. $part = 'pussy'
  385. elseif cloc = 1:
  386. $part = 'pussylips'
  387. elseif cloc = 2 or cloc = 5:
  388. $part = 'your panties'
  389. elseif cloc = 3:
  390. $part = 'anus'
  391. elseif cloc = 4:
  392. $part = 'buttocks'
  393. elseif cloc = 6 or cloc = 7:
  394. $part = 'clothes'
  395. elseif cloc = 8:
  396. $part = 'back'
  397. elseif cloc = 9:
  398. $part = 'legs'
  399. elseif cloc = 10:
  400. $part = 'arms'
  401. elseif cloc = 11:
  402. stat['cum_facial'] += 1
  403. $part = 'face'
  404. elseif cloc = 14:
  405. $part = 'stomach'
  406. elseif cloc = 15:
  407. $part = 'breasts'
  408. elseif cloc = 16:
  409. $part = 'hair'
  410. else
  411. $part = 'unknown'
  412. end
  413. if mc_inventory['makeup_wipes'] > 0:
  414. mc_inventory['makeup_wipes'] -= 1
  415. minut += 5
  416. 'You use a wipe to clean the sperm from your <<$part>>.'
  417. gs 'cum_cleanup', 'cleanloc', cloc
  418. gs 'stat'
  419. end
  420. end
  421. end
  422. if $ARGS[0] = 'cumeater_icon':
  423. *nl
  424. j = 0
  425. :cumeater_icon_jump
  426. if cumloc[j] > 0 and j <> 12 and ((j <> 0 and j <> 3) or FUNC('Cum_Manage', 'check_innards', j) = 1 or cheatKlisma = 0): gs 'cum_manage', 'cumeater', j
  427. if j < 17: j += 1 & jump 'cumeater_icon_jump'
  428. end
  429. if $ARGS[0] = 'cumeater':
  430. cloc = ARGS[1]
  431. i = arrpos('sparrloc', cloc)
  432. if i ! -1 and i < arrsize('sparrloc'):
  433. cumloc[12] = 1
  434. spafinloc = 12 & sexvolume = sparrvol[i] & sexunaware = 0 & sexspecpot = -1 & cumarrnam = sparrnam[i] & cumarrcpt = sparrppt[i] & cumarrkno = sparridt[i] & cumarrage = sparrage[i] & cumnostd = 1 & gs 'Cum_Manage'
  435. pcs_breath = 0
  436. $part = ''
  437. if cloc = 13:
  438. gs 'cum_cleanup', 'cleanloc', cloc
  439. 'You carefully lick the sperm residue from your hands, enjoying the tart taste.'
  440. else
  441. if cloc = 0:
  442. $part = 'pussy'
  443. elseif cloc = 1:
  444. $part = 'pussylips'
  445. elseif cloc = 2 or cloc = 5:
  446. $part = 'your panties'
  447. gs 'cum_cleanup', 'cleanloc', 2
  448. gs 'cum_cleanup', 'cleanloc', 5
  449. elseif cloc = 3:
  450. $part = 'anus'
  451. elseif cloc = 4:
  452. $part = 'buttocks'
  453. elseif cloc = 6 or cloc = 7:
  454. $part = 'clothes'
  455. gs 'cum_cleanup', 'cleanloc', 6
  456. gs 'cum_cleanup', 'cleanloc', 7
  457. elseif cloc = 8:
  458. $part = 'back'
  459. elseif cloc = 9:
  460. $part = 'legs'
  461. elseif cloc = 10:
  462. $part = 'arms'
  463. elseif cloc = 11:
  464. $part = 'face'
  465. elseif cloc = 14:
  466. $part = 'stomach'
  467. elseif cloc = 15:
  468. $part = 'breasts'
  469. elseif cloc = 16:
  470. $part = 'hair'
  471. else
  472. $part = 'unknown'
  473. end
  474. if rand(0, 1) = 0:
  475. 'You collect a handful of sperm from your <<$part>> in your hand and lick it up, enjoying the tart taste.'
  476. else
  477. 'You collect the sperm from your <<$part>> with your fingers and lick them, enjoying the tart taste.'
  478. end
  479. if FUNC('Cum_Manage', 'check_innards', cloc) = 1 and cheatKlisma = 1:
  480. cumspclnt = 15 & gs 'cum_cleanup'
  481. elseif (cloc <> 0 and cloc <> 3) or cheatKlisma = 0:
  482. gs 'cum_cleanup', 'cleanloc', cloc
  483. end
  484. end
  485. minut += 2
  486. gs 'stat'
  487. end
  488. end
  489. if $ARGS[0] = 'cum_stat_display':
  490. if Enable_clearcum > 0: gs 'cum_cleanup', 'reset'
  491. killvar 'cumvolume'
  492. killvar 'i'
  493. killvar 'knownguy'
  494. killvar 'cumcount'
  495. killvar 'cumowner'
  496. if arrsize('sparrvol') > 0:
  497. !!go through every location
  498. :locationloop
  499. !!start from the freshest load
  500. idx = arrsize('sparrloc')-1
  501. :spermitemloop
  502. !!if the currently examined load loaction is the location of the current cycle, execute
  503. if sparrloc[idx] = i:
  504. !!setting the age of the current load
  505. !! 0: mouth
  506. !! 1: in this hour
  507. !! 2: in four hours
  508. !! 3: at least five hours ago
  509. !! 4: in body (pussy or ass)
  510. !! 5: no more than 12 hours in condom
  511. !! 6: no more than 48 hours in condom
  512. !! 7: more than two days old, in condom
  513. if i = 12:
  514. j = 0
  515. elseif i = 17:
  516. if sparrage[idx] <= 12:
  517. j = 5
  518. elseif sparrage[idx] <= 48:
  519. j = 6
  520. else
  521. j = 7
  522. end
  523. elseif i = 0 or i = 3:
  524. j = 4
  525. else
  526. if sparrage[idx] <= 1:
  527. j = 1
  528. elseif sparrage[idx] <= 5:
  529. j = 2
  530. else
  531. j = 3
  532. end
  533. end
  534. cumvolume['<<i>>:<<j>>'] += sparrvol[idx]
  535. if sparrvol[idx] > 0:
  536. if sparridt[idx] = 0:
  537. !!unknown partner
  538. cumcount['<<i>>:<<j>>'] += 1
  539. elseif sparridt[idx] = 1:
  540. !!known partner
  541. !!storing the name of the cum owner (format: $cumowner[<cum location>:<age of cum>:<index of cum owner>])
  542. if knownguy['<<i>>:<<j>>'] > 0:
  543. gchk = 0
  544. :sameguycheck
  545. if $cumowner['<<i>>:<<j>>:<<gchk>>'] ! $sparrnam[idx] and gchk <= knownguy['<<i>>:<<j>>']:gchk += 1 & jump 'sameguycheck'
  546. if gchk > knownguy['<<i>>:<<j>>']:
  547. $cumowner['<<i>>:<<j>>:<<knownguy[''<<i>>:<<j>>'']>>'] = $sparrnam[idx]
  548. knownguy['<<i>>:<<j>>'] += 1
  549. cumcount['<<i>>:<<j>>'] += 1
  550. end
  551. else
  552. $cumowner['<<i>>:<<j>>:<<knownguy[''<<i>>:<<j>>'']>>'] = $sparrnam[idx]
  553. knownguy['<<i>>:<<j>>'] += 1
  554. cumcount['<<i>>:<<j>>'] += 1
  555. end
  556. end
  557. end
  558. end
  559. if idx > 0:idx -= 1 & jump 'spermitemloop'
  560. if i < 18:i += 1 & jump 'locationloop'
  561. killvar 'i'
  562. killvar 'idx'
  563. killvar 'j'
  564. end
  565. !!Clearing cum location array before positive entries are applied below in the icon and the text message codes
  566. killvar 'cumloc'
  567. $stat_cum_msg = ''
  568. $stat_cum_text = ''
  569. stat_visible_cum = 0
  570. stat_cumloc_check = 0
  571. cumsumbod = 0
  572. cumsumvag = 0
  573. cumsumass = 0
  574. i = 0
  575. :cumlocloop
  576. if i = 0:
  577. $icon_txtloc = 'your pussy'
  578. $txtloc = 'your <a href="exec:view''images/pc/body/cum/creampie/cumpussy'+rand(1,14)+'.jpg''">pussy</a>'
  579. elseif i = 1:
  580. $txtloc_adj = 'all over '
  581. $icon_txtloc = 'your labia'
  582. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumpussy/cumpus'+rand(1,4)+'.jpg''">labia</a>'
  583. elseif i = 2 and PCloPanties > 0:
  584. $txtloc_adj = 'across '
  585. $txtloc = 'the front of your panties'
  586. $icon_txtloc = $txtloc
  587. elseif i = 3:
  588. $txtloc_adj = 'across '
  589. $icon_txtloc = 'your ass'
  590. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumanal/cumanal'+rand(1,11)+'.jpg''">ass</a>'
  591. elseif i = 4:
  592. $txtloc_adj = 'all over '
  593. $icon_txtloc = 'your butt'
  594. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumass/cumass'+rand(1,6)+'.jpg''">butt</a>'
  595. elseif i = 5 and PCloPanties > 0:
  596. $txtloc_adj = 'painting '
  597. $txtloc = 'the back of your panties'
  598. $icon_txtloc = $txtloc
  599. elseif i = 6 and PCloPants > 0:
  600. $txtloc_adj = 'on '
  601. $icon_txtloc = 'your clothes near your groin'
  602. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/'+rand(1,3)+'.jpg''">clothes near your groin</a>'
  603. elseif i = 7 and $clothingworntype <> 'nude':
  604. $txtloc_adj = 'on '
  605. $icon_txtloc = 'your clothes'
  606. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/cumclothes'+rand(1,21)+'.jpg''">clothes</a>'
  607. elseif i = 8:
  608. $txtloc_adj = 'down '
  609. $txtloc = 'your back'
  610. $icon_txtloc = $txtloc
  611. elseif i = 9:
  612. $txtloc_adj = 'on '
  613. $txtloc = 'your legs'
  614. $icon_txtloc = $txtloc
  615. elseif i = 10:
  616. $txtloc_adj = 'on '
  617. $txtloc = 'your arms'
  618. $icon_txtloc = $txtloc
  619. elseif i = 11:
  620. if pcs_haircol = 0:
  621. $cum_face_image = 'brown/'
  622. $cum_face_image += rand(1,31)
  623. elseif pcs_haircol = 1:
  624. $cum_face_image = 'black/'
  625. $cum_face_image += rand(1,23)
  626. elseif pcs_haircol = 2:
  627. $cum_face_image = 'red/'
  628. $cum_face_image += rand(1,19)
  629. elseif pcs_haircol = 3:
  630. $cum_face_image = 'blonde/'
  631. $cum_face_image += rand(1,25)
  632. elseif pcs_haircol > 3:
  633. $cum_face_image = 'custom/'
  634. $cum_face_image += rand(1,20)
  635. end
  636. $txtloc_adj = 'across '
  637. $icon_txtloc = 'your face'
  638. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumface/<<$cum_face_image>>.jpg''">face</a>'
  639. killvar 'cum_face_image'
  640. elseif i = 13:
  641. $txtloc_adj = 'over '
  642. $txtloc = 'your hands'
  643. $icon_txtloc = $txtloc
  644. elseif i = 14:
  645. $txtloc_adj = 'across '
  646. $icon_txtloc = 'across your stomach'
  647. $txtloc = 'across your <a href="exec:view''images/pc/body/cum/cumbelly/cumbelly'+rand(1,12)+'.jpg''">stomach</a>'
  648. elseif i = 15:
  649. $txtloc_adj = 'on '
  650. $icon_txtloc = 'on your breasts'
  651. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumtits/cumtits'+rand(1,19)+'.jpg''">breasts</a>'
  652. elseif i = 16:
  653. $txtloc_adj = 'in '
  654. $icon_txtloc = 'your hair'
  655. $txtloc = 'your hair</a>'
  656. elseif i = 17:
  657. $txtloc = 'in your vagina in a slipped condom'
  658. $icon_txtloc = $txtloc
  659. else
  660. $txtloc_adj = 'on '
  661. $icon_txtloc = 'the gusset of your panties'
  662. $txtloc = 'the gusset of your panties</a>'
  663. end
  664. j = 0
  665. :ageloop
  666. if cumvolume['<<i>>:<<j>>'] > 0:
  667. !!Cum locations set for checking npc reactions
  668. cumloc[i] = 1
  669. cumvol[i] = cumvolume['<<i>>:<<j>>']
  670. if stat_cumloc_check ! 1 and i ! 12: stat_cumloc_check = 1
  671. !!amount setting
  672. if cumvolume['<<i>>:<<j>>'] > 250:
  673. !! 25 ml, about four-five load, gushing
  674. $txtamount = 'Enormous '
  675. elseif cumvolume['<<i>>:<<j>>'] > 100:
  676. !! 10 ml, about two load, flowing
  677. $txtamount = 'Huge '
  678. elseif cumvolume['<<i>>:<<j>>'] >= 20:
  679. !! 2 ml, seeping out
  680. $txtamount = 'Decent '
  681. else
  682. !! residue amount, no leakage
  683. $txtamount = 'Small '
  684. end
  685. !! if sperm age stage is 4, it means inside the body
  686. if j = 4:
  687. cumsumbod += cumvolume['<<i>>:<<j>>']
  688. cumsumvag += iif(i=0,cumvolume['<<i>>:<<j>>'],0)
  689. cumsumass += iif(i=3,cumvolume['<<i>>:<<j>>'],0)
  690. if ((vibratorIN = 1 or isprok = 1) and i = 0) or (analplugin = 1 and i = 3):
  691. $txtproxy = 'being plugged in '
  692. elseif i = 0 and cumvolume['<<i>>:<<j>>'] < FUNC('Cum_Manage', 'check_innards', 0, 1):
  693. $txtproxy = 'staying inside '
  694. elseif i = 3 and cumvolume['<<i>>:<<j>>'] < FUNC('Cum_Manage', 'check_innards', 3, 1):
  695. $txtproxy = 'staying inside '
  696. else
  697. if cumvolume['<<i>>:<<j>>'] > 250:
  698. $txtproxy = 'gushing out of '
  699. elseif cumvolume['<<i>>:<<j>>'] > 100:
  700. $txtproxy = 'flowing out of '
  701. elseif cumvolume['<<i>>:<<j>>'] >= 40:
  702. $txtproxy = 'seeping out of '
  703. else
  704. $txtproxy = 'staying inside '
  705. end
  706. end
  707. elseif j >= 5:
  708. !! if sperm age stage is over 4, meaning in condom
  709. if j = 5:
  710. $txtproxy = 'buried '
  711. elseif j = 6:
  712. $txtproxy = 'marinating '
  713. else
  714. $txtproxy = 'rotting '
  715. end
  716. if cumcondslip_deep > (vagina / 2): $txtproxy += 'deep '
  717. elseif j < 4 and j > 0:
  718. cumsumbod += cumvolume['<<i>>:<<j>>']
  719. !!amount setting
  720. if cumvolume['<<i>>:<<j>>'] > 160:
  721. !! 10 ml, about two load, flowing
  722. $txtproxy = 'coating '
  723. elseif cumvolume['<<i>>:<<j>>'] > 40:
  724. !! 2 ml, seeping out
  725. $txtproxy = 'covering '
  726. else
  727. !! residue amount, no leakage
  728. $txtproxy = 'spattered '
  729. end
  730. if j = 1:
  731. $txtproxy += 'wetly '
  732. elseif j = 2:
  733. $txtproxy += 'dryly '
  734. else
  735. $txtproxy += 'powderly '
  736. end
  737. if cumvolume['<<i>>:<<j>>'] < 40:
  738. $txtproxy += $txtloc_adj
  739. end
  740. end
  741. $txtperson = ''
  742. if cumcount['<<i>>:<<j>>'] = 0:
  743. !!ToDo: No idea how to do the icon here (julzor)
  744. $txtiscum = 'some whitish substance '
  745. else
  746. $txtiscum = 'cum'
  747. if cumcount['<<i>>:<<j>>'] = knownguy['<<i>>:<<j>>']:
  748. !! everyone is known (one or more)
  749. if knownguy['<<i>>:<<j>>'] = 1:
  750. if $npc_usedname[$cumowner['<<i>>:<<j>>:0']] = 'stranger':
  751. $txtperson = $npc_firstname[$cumowner['<<i>>:<<j>>:0']] + ' '
  752. else
  753. $txtperson = $npc_usedname[$cumowner['<<i>>:<<j>>:0']] + ' '
  754. end
  755. else
  756. kmax = 0
  757. :nullocator1
  758. if $cumowner['<<i>>:<<j>>:<<kmax>>'] ! '':kmax += 1 & jump 'nullocator1'
  759. kmax -= 1
  760. k = 0
  761. :knownloop
  762. $txtperson += $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']]
  763. if k < kmax-1:$txtperson += ', ' & k += 1 & jump 'knownloop'
  764. k += 1
  765. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  766. $txtperson += ' and ' + $npc_firstname[$cumowner['<<i>>:<<j>>:<<k>>']] + ' '
  767. else
  768. $txtperson += ' and ' + $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] + ' '
  769. end
  770. end
  771. elseif knownguy['<<i>>:<<j>>'] = 0:
  772. !! no one is known (one or more)
  773. if cumcount['<<i>>:<<j>>'] = 1:
  774. $txtperson += 'some guy '
  775. else
  776. $txtperson += 'some guys '
  777. end
  778. else
  779. !! there are known and unknown guys in the mix
  780. if knownguy['<<i>>:<<j>>'] = 1:
  781. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  782. $txtperson = $npc_firstname[$cumowner['<<i>>:<<j>>:0']] + ' and some guy'
  783. else
  784. $txtperson = $npc_usedname[$cumowner['<<i>>:<<j>>:0']] + ' and some guy'
  785. end
  786. else
  787. kmax = 0
  788. :nullocator2
  789. if $cumowner['<<i>>:<<j>>:<<kmax>>'] ! '':kmax += 1 & jump 'nullocator2'
  790. kmax -= 1
  791. k = 0
  792. :mixloop
  793. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  794. $txtperson += $npc_firstname[$cumowner['<<i>>:<<j>>:<<k>>']] + ', '
  795. else
  796. $txtperson += $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] + ', '
  797. end
  798. if k < kmax: k += 1 & jump 'mixloop'
  799. $txtperson += 'and some guy'
  800. end
  801. if cumcount['<<i>>:<<j>>'] - knownguy['<<i>>:<<j>>'] > 1:
  802. $txtperson += 's '
  803. else
  804. $txtperson += ' '
  805. end
  806. end
  807. end
  808. $icon_txtiscum = $txtiscum
  809. if j <= 4 and pcs_traits['cumeater'] = 1 and $txtiscum = 'cum' _
  810. and FUNC('Cum_Manage', 'check_private', i) = 1 and ((i <> 0 and i <> 3) or FUNC('Cum_Manage', 'check_innards', i) = 1 or cheatKlisma = 0):
  811. $txtiscum = '<a href="exec:gs ''cum_manage'', ''cumeater'', <<i>>"><font color=#0064FF>' + $txtiscum + '</font></a>'
  812. end
  813. if $txtperson ! '':
  814. $txtperson = ' from ' + $txtperson
  815. end
  816. if i = 0 and j = 4 and vibratorIN = 0 and pcs_vag*10 < cumvolume['<<i>>:<<j>>'] and cumvolume['<<i>>:<<j>>'] >= 20:
  817. $stat_cum_text += '<BR><b><font color="red">' + $txtamount + 'amounts of ' + $txtiscum + $txtperson + 'is ' + $txtproxy + $txtloc + iif($pantyworntype ! 'none', ' into your panties.', ' down your legs.')+'</font></b>'
  818. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  819. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + iif($pantyworntype ! 'none', ' into your panties.', ' down your legs.')
  820. elseif sparragestage >= 5:
  821. if cumcondslip_aware > 0: $stat_cum_text += '<BR><b><font color="red">' + $txtamount + 'amounts of ' + $txtiscum + $txtperson + 'is ' + $txtproxy + $txtloc + '.</font></b>'
  822. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  823. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + '.'
  824. elseif j ! 0:
  825. $stat_cum_text += '<BR><b><font color="red">' + $txtamount + 'amounts of ' + $txtiscum + $txtperson + 'is ' + $txtproxy + $txtloc + '.</font></b>'
  826. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  827. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + '.'
  828. else
  829. $stat_cum_text += '<BR><b><font color="red">Your mouth has the tangy aftertaste of sperm.</font></b>'
  830. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  831. $stat_cum_msg += 'Your mouth has the tangy aftertaste of sperm.'
  832. end
  833. end
  834. if j < 7: j+=1 & jump 'ageloop'
  835. if stat_cumloc_check = 1 and (FUNC('Cum_Manage', 'check_private', i) = 0 _
  836. or (i <> 0 and cumsumass = 0 and cumsumvag > 0 and FUNC('Cum_Manage', 'check_innards', 0) = 0) _
  837. or (i <> 3 and cumsumvag = 0 and cumsumass > 0 and FUNC('Cum_Manage', 'check_innards', 3) = 0) _
  838. or (i > 3 and cumsumvag > 0 and FUNC('Cum_Manage', 'check_innards', 0) = 0 and cumsumass > 0 and FUNC('Cum_Manage', 'check_innards', 3) = 0)):
  839. stat_cumloc_check = 2
  840. end
  841. if i < 18: i+=1 & jump 'cumlocloop'
  842. killvar 'i'
  843. killvar 'j'
  844. killvar 'txtperson'
  845. killvar 'k'
  846. killvar 'kmax'
  847. killvar 'txtamount'
  848. killvar 'txtiscum'
  849. killvar '$icon_txtiscum'
  850. killvar 'txtperson'
  851. killvar 'txtproxy'
  852. killvar 'txtloc'
  853. killvar '$icon_txtloc'
  854. killvar 'cumvolume'
  855. killvar 'cumcount'
  856. killvar 'knownguy'
  857. killvar 'cumowner'
  858. $stat_visible_cum_temp = ''
  859. $stat_visible_cum_msg = ''
  860. if cumloc[6] = 1 or cumloc[7] = 1 or cumloc[11] = 1 or cumloc[13] = 1 or cumloc[16] = 1:
  861. if cumloc[6] = 1:
  862. stat_visible_cum = 1
  863. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  864. $stat_visible_cum_temp += 'on your clothes near your groin'
  865. end
  866. if cumloc[7] = 1:
  867. stat_visible_cum = 1
  868. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  869. $stat_visible_cum_temp += 'on your clothes'
  870. end
  871. if cumloc[11] = 1:
  872. stat_visible_cum = 1
  873. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  874. $stat_visible_cum_temp += 'on your face'
  875. end
  876. if cumloc[13] = 1:
  877. stat_visible_cum = 1
  878. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  879. $stat_visible_cum_temp += 'on your hands'
  880. end
  881. if cumloc[16] = 1:
  882. stat_visible_cum = 1
  883. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  884. $stat_visible_cum_temp += 'in your hair'
  885. end
  886. $stat_visible_cum_msg = 'People can see the cum '+ $stat_visible_cum_temp + '.'
  887. end
  888. cum_loc['vagina'] = cumloc[0]
  889. cum_loc['labia'] = cumloc[1]
  890. cum_loc['panty_front'] = cumloc[2]
  891. cum_loc['anus'] = cumloc[3]
  892. cum_loc['butt'] = cumloc[4]
  893. cum_loc['panty_back'] = cumloc[5]
  894. cum_loc['clothes_groin'] = cumloc[6]
  895. cum_loc['clothes'] = cumloc[7]
  896. cum_loc['back'] = cumloc[8]
  897. cum_loc['legs'] = cumloc[9]
  898. cum_loc['arms'] = cumloc[10]
  899. cum_loc['face'] = cumloc[11]
  900. cum_loc['mouth'] = cumloc[12]
  901. cum_loc['hands'] = cumloc[13]
  902. cum_loc['stomach'] = cumloc[14]
  903. cum_loc['tits'] = cumloc[15]
  904. cum_loc['hair'] = cumloc[16]
  905. cum_loc['condom_in_pussy'] = cumloc[17]
  906. cum_vol['vagina'] = cumvol[0]
  907. cum_vol['labia'] = cumvol[1]
  908. cum_vol['panty_front'] = cumvol[2]
  909. cum_vol['anus'] = cumvol[3]
  910. cum_vol['butt'] = cumvol[4]
  911. cum_vol['panty_back'] = cumvol[5]
  912. cum_vol['clothes_groin'] = cumvol[6]
  913. cum_vol['clothes'] = cumvol[7]
  914. cum_vol['back'] = cumvol[8]
  915. cum_vol['legs'] = cumvol[9]
  916. cum_vol['arms'] = cumvol[10]
  917. cum_vol['face'] = cumvol[11]
  918. cum_vol['mouth'] = cumvol[12]
  919. cum_vol['hands'] = cumvol[13]
  920. cum_vol['stomach'] = cumvol[14]
  921. cum_vol['tits'] = cumvol[15]
  922. cum_vol['hair'] = cumvol[16]
  923. cum_vol['condom_in_pussy'] = cumvol[17]
  924. end
  925. if $ARGS[0] = 'check_private':
  926. !! Checks whether the current location is private for cleaning cum in intimate places
  927. !! ARGS[1] - cum location (see cum_cleanup)
  928. !! no ARGS[1] means 0, means vagina, means you must be in a private location to interact
  929. !! FUNC('Cum_Manage', 'check_private') = 1
  930. !! FUNC('Cum_Manage', 'check_private', 7) = 1
  931. RESULT = 0
  932. if $location_type = 'private' or $location_type = 'private_indoors' or $location_type = 'private_shared' or $location_type = 'bathroom': RESULT = 1
  933. if ARGS[1] > 5 and ARGS[1] <> 15 and ARGS[1] <> 17: RESULT = 1
  934. end
  935. if $ARGS[0] = 'check_innards':
  936. !! Cum overflow check inside vagina or anus
  937. !! ARGS[1] - 0 (vagina) or 3 (anus)
  938. !! ARGS[2] - return max capacity
  939. !! capvag - vagina max capacity
  940. !! capanus - anus max capacity
  941. !! FUNC('Cum_Manage', 'check_innards') = 1
  942. !! FUNC('Cum_Manage', 'check_innards', 3) = 1
  943. !! FUNC('Cum_Manage', 'check_innards', 0, 1) <= cumsumvag
  944. capvag = pcs_vag*3 - vgape*30 - min(100,pcs_horny)/10
  945. capanus = pcs_ass*6 - agape*40
  946. RESULT = 0
  947. if ARGS[1] = 0:
  948. if ARGS[2] > 0:
  949. RESULT = capvag
  950. elseif cumsumvag >= capvag and isprok = 0 and vibratorIN = 0:
  951. RESULT = 1
  952. end
  953. elseif ARGS[1] = 3:
  954. if ARGS[2] > 0:
  955. RESULT = capanus
  956. elseif cumsumass >= capanus and analplugin = 0:
  957. RESULT = 1
  958. end
  959. end
  960. killvar 'capvag'
  961. killvar 'capanus'
  962. end
  963. if $ARGS[0] = 'cum_decay':
  964. !! ARGS[1] forced cum leak (sex intercourse) in values like 20-100
  965. cumforced = ARGS[1]
  966. if (menu_off = 1 or cumdectime+15 > totminut) and cumforced = 0: exit
  967. if arrsize('sparrvol') > 0:
  968. cumsumvag = 0
  969. cumsumass = 0
  970. killvar 'cumloc'
  971. killvar 'cumvol'
  972. i = 0
  973. !!go through every location
  974. :sparrvolloop
  975. !!start from the freshest load
  976. idx = arrsize('sparrloc')-1
  977. :sparrlocloop
  978. !!if the currently examined load loaction is the location of the current cycle, execute
  979. if sparrloc[idx] = i and sparrvol[idx] > 0:
  980. !! 0 = 'In your Vagina'
  981. if i = 0:
  982. !! passive absorption, succubus has its own
  983. !! InSleep - increase the amount during sleep, isprok - tampon absorption
  984. if succubusflag = 0:
  985. cumamount = (totminut-cumdectime)/15 * max(rand(0,1), rand(sparrvol[idx]/60, sparrvol[idx]/30) + rand(0, InSleep*rand(1,3)) + isprok*rand(5,10) + rand(0, iif(pcs_hydra<30,(30-pcs_hydra)/10,0)) + rand(0, iif(pcs_horny<100,(100-pcs_horny)/20,0)))
  986. sparrvol[idx] -= cumamount
  987. end
  988. if sparrvol[idx] > 0:
  989. cumsumvag += sparrvol[idx]
  990. !! seeping out
  991. if FUNC('Cum_Manage', 'check_innards', 0) = 1 or cumforced/rand(2,3) > sparrvol[idx]:
  992. cumamount = min(sparrvol[idx]*3/2, (totminut-cumdectime)/15 * max(rand(1,3), rand(sparrvol[idx]/max(1,pcs_vag), vgape*40) - InSleep*rand(2,5) + iif(pcs_horny>50, min(100,pcs_horny)/10 - 4,0)) + cumforced/rand(5,10))
  993. sparrvol[idx] -= cumamount & cumsumvag -= cumamount
  994. cumvol[0] -= cumamount
  995. !! 1 = 'On your labia'
  996. sexvolume = max(cumamount/10, cumamount/2 - iif(cumforced=0,isprokp*rand(10,20),0))
  997. if sexvolume > 0:
  998. spafinloc = 1
  999. sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
  1000. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1001. gs 'Cum_Manage'
  1002. cumvol[1] += sexvolume & cumloc[1] = 1
  1003. end
  1004. if cumforced = 0:
  1005. !! 2 = 'On your panties over your vagina'
  1006. if $pantyworntype <> 'none' or PCloPanties > 0:
  1007. !! isprokp - sanitary pad absorption
  1008. if isprokp <> 1:
  1009. spafinloc = 2
  1010. sexvolume = max(1, cumamount/2)
  1011. sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
  1012. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1013. gs 'Cum_Manage'
  1014. cumvol[2] += sexvolume & cumloc[2] = 1
  1015. end
  1016. !! 9 = 'On your legs'
  1017. elseif ($clothingworntype = 'nude' or PCloSkirt > 0 or PCloDress > 0) and rand(1,10) > 6 + InSleep*2:
  1018. sexvolume = max(0, cumamount/4)
  1019. if sexvolume > 0:
  1020. spafinloc = 9
  1021. sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
  1022. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1023. gs 'Cum_Manage'
  1024. cumvol[9] += sexvolume & cumloc[9] = 1
  1025. end
  1026. end
  1027. !! 6 = 'On your clothes in your groin area'
  1028. if PCloPants > 0:
  1029. sexvolume = max(0, cumamount / (3 + iif($pantyworntype<>'none',12,0)))
  1030. if sexvolume > 0:
  1031. spafinloc = 6
  1032. sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
  1033. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1034. gs 'Cum_Manage'
  1035. cumvol[6] += sexvolume & cumloc[6] = 1
  1036. end
  1037. end
  1038. end
  1039. end
  1040. end
  1041. if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
  1042. !! 3 = 'In your anus'
  1043. elseif i = 3:
  1044. !! passive absorption, succubus has its own
  1045. if succubusflag = 0:
  1046. cumamount = (totminut-cumdectime)/15 * max(rand(0,2), rand(sparrvol[idx]/40, sparrvol[idx]/20) + rand(0, InSleep*rand(3,6)) + rand(0, iif(pcs_hydra<50,(50-pcs_hydra)/10,0)))
  1047. sparrvol[idx] -= cumamount
  1048. end
  1049. if sparrvol[idx] > 0:
  1050. cumsumass += sparrvol[idx]
  1051. !! seeping out
  1052. if FUNC('Cum_Manage', 'check_innards', 3) = 1 or cumforced/rand(2,4) > sparrvol[idx]:
  1053. cumamount = min(sparrvol[idx]*3/2, (totminut-cumdectime)/15 * max(rand(0,1), rand(sparrvol[idx]/max(1,(pcs_ass*3/2)), agape*20) - InSleep*rand(4,8)) + cumforced/rand(7,15))
  1054. sparrvol[idx] -= cumamount & cumsumass -= cumamount
  1055. cumvol[3] -= cumamount
  1056. !! 1 = 'On your labia'
  1057. sexvolume = max(cumamount/10, cumamount/4 - iif(cumforced=0,isprokp*rand(10,20),0))
  1058. if sexvolume > 0:
  1059. spafinloc = 1
  1060. sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
  1061. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/2 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1062. gs 'Cum_Manage'
  1063. cumvol[1] += sexvolume & cumloc[1] = 1
  1064. end
  1065. if cumforced > 0:
  1066. !! 4 = 'On your butt'
  1067. sexvolume = max(cumamount/15, cumamount/3)
  1068. if sexvolume > 0:
  1069. spafinloc = 4
  1070. sexvolume = max(0, cumamount/2)
  1071. sexunaware = 0
  1072. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1073. gs 'Cum_Manage'
  1074. cumvol[4] += sexvolume & cumloc[4] = 1
  1075. end
  1076. else
  1077. !! 5 = 'On your panties over your butt'
  1078. if $pantyworntype <> 'none' or PCloPanties > 0:
  1079. !! isprokp - sanitary pad absorption
  1080. if isprokp <> 1:
  1081. spafinloc = 5
  1082. sexvolume = max(1, cumamount/3)
  1083. sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
  1084. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1085. gs 'Cum_Manage'
  1086. cumvol[5] += sexvolume & cumloc[5] = 1
  1087. end
  1088. !! 9 = 'On your legs'
  1089. elseif ($clothingworntype = 'nude' or PCloSkirt > 0 or PCloDress > 0) and rand(1,10) > 4 + InSleep*3:
  1090. sexvolume = max(0, cumamount/5)
  1091. if sexvolume > 0:
  1092. spafinloc = 9
  1093. sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
  1094. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/4 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1095. gs 'Cum_Manage'
  1096. cumvol[9] += sexvolume & cumloc[9] = 1
  1097. end
  1098. end
  1099. !! 6 = 'On your clothes in your groin area'
  1100. if PCloPants > 0:
  1101. sexvolume = max(0, cumamount / (4 + iif($pantyworntype<>'none',16,0)))
  1102. if sexvolume > 0:
  1103. spafinloc = 6
  1104. sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
  1105. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1106. gs 'Cum_Manage'
  1107. cumvol[6] += sexvolume & cumloc[6] = 1
  1108. end
  1109. end
  1110. end
  1111. end
  1112. end
  1113. if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
  1114. !! 1 = 'On your labia' 4 = 'On your butt'
  1115. elseif (i = 1 and sparrvol[idx]*((totminut-cumdectime)/15) > rand(2,5)) _
  1116. or (i = 4 and sparrvol[idx]*((totminut-cumdectime)/15) > rand(4,8)):
  1117. if $pantyworntype <> 'none' or PCloPanties > 0:
  1118. !! 2 = 'On your panties over your vagina' 5 = 'On your panties over your butt'
  1119. sexvolume = rand(sparrvol[idx]/2, sparrvol[idx]) - iif(i=1,isprokp*rand(15,30),0)
  1120. if sexvolume > 0:
  1121. sparrvol[idx] -= sexvolume
  1122. spafinloc = iif(i=1,2,5)
  1123. sexunaware = 1
  1124. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
  1125. gs 'Cum_Manage'
  1126. cumvol[iif(i=1,2,5)] += sexvolume & cumloc[iif(i=1,2,5)] = 1
  1127. end
  1128. !! 6 = 'On your clothes in your groin area'
  1129. elseif PCloPants > 0:
  1130. sexvolume = rand(sparrvol[idx]/2, sparrvol[idx])
  1131. if sexvolume > 0:
  1132. spafinloc = 6
  1133. sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
  1134. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
  1135. gs 'Cum_Manage'
  1136. cumvol[6] += sexvolume & cumloc[6] = 1
  1137. end
  1138. end
  1139. if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
  1140. !! 17 = 'In a condom in your vagina'
  1141. elseif i = 17 and sparrvol[idx] > rand(10,15):
  1142. !! 0 = 'In your Vagina'
  1143. sexvolume = min(sparrvol[idx]/3, (totminut-cumdectime)/15 * max(0, cumamount/5 - isprokp*rand(2,5)) + cumforced/rand(5,10))
  1144. if sexvolume > 0:
  1145. !! condom in vagina is summed in cumsumvag and Cum_Manage call will added more, so subtract here
  1146. cumsumvag -= sexvolume
  1147. sparrvol[idx] -= sexvolume
  1148. spafinloc = 0
  1149. sexunaware = 1
  1150. sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
  1151. gs 'Cum_Manage'
  1152. cumvol[17] -= sexvolume & cumvol[0] += sexvolume & cumloc[0] = 1
  1153. end
  1154. !! 12 = 'Inside your mouth'
  1155. elseif i <> 12 and sparrvol[idx] > rand(0,3):
  1156. !! dry out
  1157. !! 1: in this hour
  1158. !! 2: in four hours
  1159. !! 3: at least five hours ago
  1160. if rand(min(-1+InSleep, sparrvol[idx]/-5), sparrage[idx] + (totminut-cumdectime)/30) >= 1:
  1161. !! 5 and 7 = not clothes
  1162. if i <> 6 and i <> 7: pcs_sweat += rand(0, max(1,sparrvol[idx]/10))
  1163. gs 'cum_cleanup', 'cleandeposit', idx
  1164. end
  1165. end
  1166. if sparrvol[idx] > 0: cumloc[i] = 1 & cumvol[inx] += sparrvol[idx] else cumloc[i] = 0 & cumvol[inx] = 0
  1167. end
  1168. !! reset just in case
  1169. sexvolume = 0 & cumnostd = 0 & cumarrkno = 0
  1170. if idx > 0:idx -= 1 & jump 'sparrlocloop'
  1171. if i < 18:i += 1 & jump 'sparrvolloop'
  1172. killvar 'i'
  1173. killvar 'idx'
  1174. killvar 'cumamount'
  1175. if cumsumvag <= 0: cumsumvag = 0 & cum_vol['vagina'] = 0 & cumvol[0] = 0 & cum_loc['vagina'] = 0 & cumloc[0] = 0
  1176. if cumsumass <= 0: cumsumass = 0 & cum_vol['anus'] = 0 & cumvol[3] = 0 & cum_loc['anus'] = 0 & cumloc[3] = 0
  1177. if cumsumbod < 0: cumsumbod = 0
  1178. end
  1179. killvar 'cumforced'
  1180. cumdectime = totminut
  1181. end
  1182. --- Cum_Manage ---------------------------------