Cum_Manage.qsrc 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  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 typ 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. !!{ Here we define our important variables.}
  103. dick = npc_dick[$boy]
  104. if sexvolume <= 0: sexvolume = 40
  105. if sexspecpot = 0: sexspecpot = npc_spermpot[$boy]
  106. if sexspecpot = 0: sexspecpot = sexvolume * rand(250, 300)
  107. if sexspecpot < 0: sexspecpot = 0
  108. if vibratorIN = 1 and spafinloc = 0 and replace_vib = 0: vibratorIN = 0
  109. if analplugIN = 1 and spafinloc = 3 and replace_analplug = 0: analplugIN = 0
  110. !!{ 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.}
  111. cumarrtemp = arrsize('$cumarrnam')
  112. if sexcontra = 0 and pillcon2 > 1000: sexcontra = 2
  113. !!{Check for previous deposit, and if it was by the same guy and precum, it sets cumarrtemp back by one}
  114. !! if $cumarrnam[cumarrtemp-1] = $boy and cumarrkno[cumarrtemp-1] = -1:cumarrtemp -= 1 & sexspecpot = cumarrppt[cumarrtemp]
  115. if cumprecheck = 1 and cumnostd = 0:
  116. cumarrkno[cumarrtemp] = -1
  117. gs 'dinSex', 'std_trigger'
  118. elseif sexunaware > 0:
  119. cumarrkno[cumarrtemp] = -2
  120. elseif sexpartkno = 1:
  121. cumarrkno[cumarrtemp] = 1
  122. else
  123. cumarrkno[cumarrtemp] = 0
  124. end
  125. !!{ If a condom slipped in the vagina, it will pushed deeper inside the vagina during vaginal sex.}
  126. if spafinloc <= 0 and cumcondslip > 0:
  127. if dick > cumcondslip_deep:
  128. cumcondslip_deep = dick + rand (0,2)
  129. else
  130. cumcondslip_deep += rand (0,2)
  131. end
  132. end
  133. sparrtemp = arrsize('sparrvol')
  134. !!{ 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.}
  135. if cumprecheck ! 1:
  136. !!{ Here it checks for anal deposit and increments anal creampie variable.}
  137. if spafinloc = 3:
  138. if sexunaware = 1 or sexcontra = 6:
  139. pcs_acp_unknown += 1
  140. else
  141. pcs_acp_known += 1
  142. end
  143. end
  144. !!{ Here it checks for vaginal deposit.}
  145. if spafinloc <= 0:
  146. !!{ Next it sets the variables in the array. The cumming boys name is first and cum age to 0.
  147. !! The cum delivery location is set to vaginally, and we check to see if this is an unknowing sex act.
  148. !! If it is, it makes it so the MC doesn''t know who did it.
  149. !! If the boy has a custom specified potency 'sexspecpot', it flags the potency. Otherwise it sets it to the default.
  150. !! Default potency potential is generated from a random multiplier of sexvolume.
  151. !! Sexvolume defaults to 40 (4 mL), but may be overwritten with 'sexvolume'.}
  152. $cumarrnam[cumarrtemp] = $boy
  153. cumarrage[cumarrtemp] = 0
  154. cumarrdel[cumarrtemp] = 0
  155. cumarrcnt[cumarrtemp] = stat['cum_count']
  156. cumarrppt[cumarrtemp] = sexspecpot
  157. !!{ Now it sets up the splatter and actual internal cum.
  158. !! First it sets the array to the spatter end of file. Then it checks for riding bareback.
  159. !! If theres a condom, it gives a chance for the condom to fail in general, slip off and remain in the vagina, or break.}
  160. if sexcontra > 2:
  161. if noprotect = 1: noprotect = 0 & sexcontra = 4
  162. if sexcontra = 3:
  163. temprand = rand(0,1000)
  164. dick_wid = 3
  165. if $dick_girth = 'skinny': dick_wid = 2
  166. if $dick_girth = 'slim': dick_wid = 3
  167. if $dick_girth = 'well proportioned': dick_wid = 3
  168. if $dick_girth = 'thicker than average': dick_wid = 4
  169. if $dick_girth = 'thick': dick_wid = 4
  170. if $dick_girth = 'massive': dick_wid = 5
  171. if $dick_girth = 'monstrous': dick_wid = 6
  172. break_thresh = dick_wid * 2
  173. break_thresh -= pcs_vag / 4
  174. break_thresh += dick / 4
  175. slip_thresh = 36 - (dick_wid * 2)
  176. slip_thresh -= (pcs_vag / 2)
  177. slip_thresh -= dick / 2
  178. if break_thresh < 1: break_thresh = 1
  179. if slip_thresh < 4: slip_thresh = 4
  180. break_thresh += slip_thresh
  181. slip_thresh = 0
  182. if temprand = 0:
  183. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/4
  184. cumarrcon[cumarrtemp] = 3
  185. elseif temprand <= break_thresh:
  186. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  187. cumarrcon[cumarrtemp] = 4
  188. sexcontra = 4
  189. sparrage[sparrtemp] = 0
  190. sparrloc[sparrtemp] = 0
  191. $sparrnam[sparrtemp] = $boy
  192. sparrcnt[sparrtemp] = stat['cum_count']
  193. sparrppt[sparrtemp] = sexspecpot
  194. sparrvol[sparrtemp] += sexvolume
  195. cumsumbod += sexvolume
  196. cumsumvag += sexvolume
  197. condom_break = 1
  198. stat['broken_condoms'] += 1
  199. stat['last_broken_condom'] = daystart
  200. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  201. sparrslc[sparrtemp] = 0
  202. dynamic $ferteggfather
  203. else
  204. cumarrcpt[cumarrtemp] += 5
  205. cumarrcon[cumarrtemp] = 3
  206. end
  207. !!{ Next it checks to see if the event is calling specifically for a burst or slipped off condom.
  208. !! It treats them the same as if the condom above had a failure.}
  209. elseif sexcontra = 4:
  210. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/2
  211. cumarrcon[cumarrtemp] = 4
  212. sparrage[sparrtemp] = 0
  213. sparrloc[sparrtemp] = 0
  214. $sparrnam[sparrtemp] = $boy
  215. sparrcnt[sparrtemp] = stat['cum_count']
  216. sparrppt[sparrtemp] = sexspecpot
  217. sparrvol[sparrtemp] += sexvolume
  218. cumsumbod += sexvolume
  219. cumsumvag += sexvolume
  220. condom_break = 1
  221. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  222. sparrslc[sparrtemp] = 0
  223. dynamic $ferteggfather
  224. elseif sexcontra = 5:
  225. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/200
  226. cumarrcon[cumarrtemp] = 5
  227. cumcondslip = 1
  228. cumcondsanb = cumarrtemp
  229. sparrage[sparrtemp] = 0
  230. sparrloc[sparrtemp] = 17
  231. $sparrnam[sparrtemp] = $boy
  232. sparrcnt[sparrtemp] = stat['cum_count']
  233. sparrppt[sparrtemp] = sexspecpot
  234. sparrvol[sparrtemp] += sexvolume
  235. cumsumbod += sexvolume
  236. cumsumvag += sexvolume
  237. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  238. sparrslc[sparrtemp] = 0
  239. cumcondslip += 1
  240. if cumcondslip_deep <= 0:cumcondslip_deep = rand(1, dick)
  241. if sparridt[sparrtemp] >= 0:cumcondslip_aware = 1
  242. dynamic $ferteggfather
  243. !!{ Next, check for sabotaged condoms. First sabotaged by you, then sabotaged by the guy.
  244. !! If they were sabotaged, it acts similar to a condom failure, but worse.}
  245. elseif sexcontra = 6:
  246. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  247. cumarrcon[cumarrtemp] = 6
  248. elseif sexcontra = 7:
  249. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/3
  250. cumarrcon[cumarrtemp] = 7
  251. dynamic $ferteggfather
  252. end
  253. !!{ If you have no protection, you get a nice, full load of semen.}
  254. else
  255. sparrage[sparrtemp] = 0
  256. sparrloc[sparrtemp] = 0
  257. $sparrnam[sparrtemp] = $boy
  258. sparrcnt[sparrtemp] = stat['cum_count']
  259. sparrppt[sparrtemp] = sexspecpot
  260. sparrvol[sparrtemp] += sexvolume
  261. cumsumbod += sexvolume
  262. cumsumvag += sexvolume
  263. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  264. sparrslc[sparrtemp] = 0
  265. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/5*4
  266. cumarrcon[cumarrtemp] = sexcontra
  267. dynamic $ferteggfather
  268. end
  269. !! creampie vaginal statistics:
  270. if spafinloc = 0:
  271. stat['last_creampie'] = daystart
  272. !!STD checks
  273. if cumnostd = 0: gs 'dinSex', 'std_trigger'
  274. !! safe creampie (if cycle > 3 or on pill or succubus):
  275. if cycle > 3 or birth_control['safe'] = 1 or succubusflag = 1:
  276. if sexunaware = 1 or sexcontra = 6:
  277. pcs_cp_safe_unknown += 1
  278. else
  279. pcs_cp_safe_known += 1
  280. end
  281. !! pretty safe creampie (if cycle = 3 or cycle = 0):
  282. elseif cycle = 0 or cycle = 3:
  283. if sexunaware = 1 or sexcontra = 6:
  284. pcs_cp_notsafe_unknown += 1
  285. else
  286. pcs_cp_notsafe_known += 1
  287. end
  288. !! risky creampie (not on pill, fertile part of the cycle):
  289. else
  290. if sexunaware = 1 or sexcontra = 6:
  291. pcs_cp_risky_unknown += 1
  292. else
  293. pcs_cp_risky_known += 1
  294. end
  295. end
  296. end
  297. !!{ If you arent getting it in the vagina, and the boy isnt pumping it into a condom, a spatter is made and applied.
  298. !! If you arent wearing any panties and it was called to hit your panties, it goes directly to your groin.
  299. !! If you are naked and it calls for a clothing strike, it will go to your body instead.}
  300. elseif spafinloc > 0 and sexcontra < 3:
  301. sparrage[sparrtemp] = 0
  302. sparrcnt[sparrtemp] = stat['cum_count']
  303. if $pantyworntype = 'none':
  304. if spafinloc = 2:
  305. spafinloc = 1
  306. elseif spafinloc = 5:
  307. spafinloc = 4
  308. end
  309. end
  310. if $clothingworntype = 'nude':
  311. if spafinloc = 2:
  312. spafinloc = 1
  313. elseif spafinloc = 5:
  314. spafinloc = 4
  315. elseif spafinloc = 6:
  316. if rand(0,1) = 0:
  317. spafinloc = 1
  318. else
  319. spafinloc = 4
  320. end
  321. elseif spafinloc = 7:
  322. if rand(0,1) = 0:
  323. spafinloc = 14
  324. else
  325. spafinloc = 15
  326. end
  327. end
  328. end
  329. sparrloc[sparrtemp] = spafinloc
  330. if spafinloc = 12 and pcs_breath = 1: pcs_breath = 0
  331. if spafinloc = 12 and swallow >= 10 and rand(0,3) = 0: pcs_energy += 2 & pcs_hydra += 1
  332. $sparrnam[sparrtemp] = $boy
  333. sparrppt[sparrtemp] = sexspecpot
  334. sparrvol[sparrtemp] += sexvolume
  335. cumsumbod += sexvolume
  336. if spafinloc = 3:
  337. cumsumass += sexvolume
  338. end
  339. sparridt[sparrtemp] = cumarrkno[cumarrtemp]
  340. sparrslc[sparrtemp] = 0
  341. end
  342. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  343. sexpartkno = 0
  344. sexunaware = 0
  345. !!{ And this is the pre ejaculate release talked about above.}
  346. elseif sexcontra < 3 and spafinloc = 0:
  347. $cumarrnam[cumarrtemp] = $boy
  348. cumarrcnt[cumarrtemp] = stat['cum_count']
  349. cumarrppt[cumarrtemp] = sexspecpot
  350. cumarrage[cumarrtemp] = 0
  351. cumarrdel[cumarrtemp] = 0
  352. cumarrcon[cumarrtemp] = sexcontra
  353. cumarrcpt[cumarrtemp] += cumarrppt[cumarrtemp]/12
  354. if cumarrppt[cumarrtemp] < cumarrcpt[cumarrtemp]:cumarrcpt[cumarrtemp] = cumarrppt[cumarrtemp]
  355. end
  356. !!STD from anal check
  357. if spafinloc = 3 and cumnostd = 0: gs 'dinSex', 'std_trigger'
  358. !!STD from oral check
  359. if spafinloc = 12 and cumnostd = 0: gs 'dinSex', 'std_trigger_oral'
  360. cumprecheck = 0
  361. spafinloc = 0
  362. sexvolume = 0
  363. dynamic $din_Update_Condom_Counts
  364. if cumsumass >= 60:
  365. arrmodtmp = arrpos('sparrloc',3)
  366. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  367. end
  368. if cumsumvag >= 60:
  369. arrmodtmp = arrpos('sparrloc',0)
  370. if sparrslc[arrmodtmp] <= 0: sparrslc[arrmodtmp] += 1
  371. end
  372. killvar 'sexspecpot'
  373. killvar 'cumnostd'
  374. end
  375. if $ARGS[0] = 'cumgather':
  376. cloc = ARGS[1]
  377. i = arrpos('sparrloc', cloc)
  378. if i ! -1 and i < arrsize('sparrloc'):
  379. if cloc = 0:
  380. $part = 'pussy'
  381. elseif cloc = 1:
  382. $part = 'pussylips'
  383. elseif cloc = 2 or cloc = 5:
  384. $part = 'your panties'
  385. elseif cloc = 3:
  386. $part = 'anus'
  387. elseif cloc = 4:
  388. $part = 'buttocks'
  389. elseif cloc = 6 or cloc = 7:
  390. $part = 'clothes'
  391. elseif cloc = 8:
  392. $part = 'back'
  393. elseif cloc = 9:
  394. $part = 'legs'
  395. elseif cloc = 10:
  396. $part = 'arms'
  397. elseif cloc = 11:
  398. stat['cum_facial'] += 1
  399. $part = 'face'
  400. elseif cloc = 14:
  401. $part = 'stomach'
  402. elseif cloc = 15:
  403. $part = 'breasts'
  404. elseif cloc = 16:
  405. $part = 'hair'
  406. else
  407. $part = 'unknown'
  408. end
  409. if mc_inventory['makeup_wipes'] > 0:
  410. mc_inventory['makeup_wipes'] -= 1
  411. minut += 5
  412. 'You use a wipe to clean the sperm from your <<$part>>.'
  413. gs 'cum_cleanup', 'cleanloc', cloc
  414. gs 'stat'
  415. end
  416. end
  417. end
  418. if $ARGS[0] = 'cumeater_icon':
  419. *nl
  420. j = 0
  421. :cumeater_icon_jump
  422. if cumloc[j] > 0 and j ! 12: gs 'cum_manage', 'cumeater', j
  423. if j < 17: j += 1 & jump 'cumeater_icon_jump'
  424. end
  425. if $ARGS[0] = 'cumeater':
  426. cloc = ARGS[1]
  427. i = arrpos('sparrloc', cloc)
  428. if i ! -1 and i < arrsize('sparrloc'):
  429. cumloc[12] = 1
  430. pcs_breath = 0
  431. $part = ''
  432. if cloc = 13:
  433. gs 'cum_cleanup', 'cleanloc', cloc
  434. 'You carefully lick the sperm residue from your hands, enjoying the tart taste.'
  435. else
  436. if cloc = 0:
  437. $part = 'pussy'
  438. elseif cloc = 1:
  439. $part = 'pussylips'
  440. elseif cloc = 2 or cloc = 5:
  441. $part = 'your panties'
  442. gs 'cum_cleanup', 'cleanloc', 2
  443. gs 'cum_cleanup', 'cleanloc', 5
  444. elseif cloc = 3:
  445. $part = 'anus'
  446. elseif cloc = 4:
  447. $part = 'buttocks'
  448. elseif cloc = 6 or cloc = 7:
  449. $part = 'clothes'
  450. gs 'cum_cleanup', 'cleanloc', 6
  451. gs 'cum_cleanup', 'cleanloc', 7
  452. elseif cloc = 8:
  453. $part = 'back'
  454. elseif cloc = 9:
  455. $part = 'legs'
  456. elseif cloc = 10:
  457. $part = 'arms'
  458. elseif cloc = 11:
  459. $part = 'face'
  460. elseif cloc = 14:
  461. $part = 'stomach'
  462. elseif cloc = 15:
  463. $part = 'breasts'
  464. elseif cloc = 16:
  465. $part = 'hair'
  466. else
  467. $part = 'unknown'
  468. end
  469. if rand(0, 1) = 0:
  470. 'You collect a handful of sperm from your <<$part>> in your hand and lick it up, enjoying the tart taste.'
  471. else
  472. 'You collect the sperm from your <<$part>> with your fingers and lick them, enjoying the tart taste.'
  473. end
  474. gs 'cum_cleanup', 'cleanloc', cloc
  475. end
  476. minut += 2
  477. gs 'stat'
  478. end
  479. end
  480. if $ARGS[0] = 'cum_stat_display':
  481. if Enable_clearcum > 0: gs 'cum_cleanup', 'reset'
  482. killvar 'cumvolume'
  483. killvar 'i'
  484. killvar 'knownguy'
  485. killvar 'cumcount'
  486. killvar 'cumowner'
  487. if arrsize('sparrvol') > 0:
  488. !!go through every location
  489. :locationloop
  490. !!start from the freshest load
  491. idx = arrsize('sparrloc')-1
  492. :spermitemloop
  493. !!if the currently examined load loaction is the location of the current cycle, execute
  494. if sparrloc[idx] = i:
  495. !!setting the age of the current load
  496. !! 0: mouth
  497. !! 1: in this hour
  498. !! 2: in four hours
  499. !! 3: at least five hours ago
  500. !! 4: in body (pussy or ass)
  501. !! 5: no more than 12 hours in condom
  502. !! 6: no more than 48 hours in condom
  503. !! 7: more than two days old, in condom
  504. if i = 12:
  505. j = 0
  506. elseif i = 17:
  507. if sparrage[idx] <= 12:
  508. j = 5
  509. elseif sparrage[idx] <= 48:
  510. j = 6
  511. else
  512. j = 7
  513. end
  514. elseif i = 0 or i = 3:
  515. j = 4
  516. else
  517. if sparrage[idx] <= 1:
  518. j = 1
  519. elseif sparrage[idx] <= 5:
  520. j = 2
  521. else
  522. j = 3
  523. end
  524. end
  525. cumvolume['<<i>>:<<j>>'] += sparrvol[idx]
  526. if sparrvol[idx] > 0:
  527. if sparridt[idx] = 0:
  528. !!unknown partner
  529. cumcount['<<i>>:<<j>>'] += 1
  530. elseif sparridt[idx] = 1:
  531. !!known partner
  532. !!storing the name of the cum owner (format: $cumowner[<cum location>:<age of cum>:<index of cum owner>])
  533. if knownguy['<<i>>:<<j>>'] > 0:
  534. gchk = 0
  535. :sameguycheck
  536. if $cumowner['<<i>>:<<j>>:<<gchk>>'] ! $sparrnam[idx] and gchk <= knownguy['<<i>>:<<j>>']:gchk += 1 & jump 'sameguycheck'
  537. if gchk > knownguy['<<i>>:<<j>>']:
  538. $cumowner['<<i>>:<<j>>:<<knownguy[''<<i>>:<<j>>'']>>'] = $sparrnam[idx]
  539. knownguy['<<i>>:<<j>>'] += 1
  540. cumcount['<<i>>:<<j>>'] += 1
  541. end
  542. else
  543. $cumowner['<<i>>:<<j>>:<<knownguy[''<<i>>:<<j>>'']>>'] = $sparrnam[idx]
  544. knownguy['<<i>>:<<j>>'] += 1
  545. cumcount['<<i>>:<<j>>'] += 1
  546. end
  547. end
  548. end
  549. end
  550. if idx > 0:idx -= 1 & jump 'spermitemloop'
  551. if i < 18:i += 1 & jump 'locationloop'
  552. killvar 'i'
  553. killvar 'idx'
  554. killvar 'j'
  555. end
  556. !!Clearing cum location array before positive entries are applied below in the icon and the text message codes
  557. killvar 'cumloc'
  558. $stat_cum_msg = ''
  559. $stat_cum_text = ''
  560. stat_visible_cum = 0
  561. stat_cumloc_check = 0
  562. i = 0
  563. :cumlocloop
  564. if i = 0:
  565. $icon_txtloc = 'your pussy'
  566. $txtloc = 'your <a href="exec:view''images/pc/body/cum/creampie/cumpussy'+rand(1,14)+'.jpg''">pussy</a>'
  567. elseif i = 1:
  568. $txtloc_adj = 'all over '
  569. $icon_txtloc = 'your labia'
  570. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumpussy/cumpus'+rand(1,4)+'.jpg''">labia</a>'
  571. elseif i = 2:
  572. $txtloc_adj = 'across '
  573. $txtloc = 'the front of your panties'
  574. $icon_txtloc = $txtloc
  575. elseif i = 3:
  576. $txtloc_adj = 'across '
  577. $icon_txtloc = 'your ass'
  578. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumanal/cumanal'+rand(1,11)+'.jpg''">ass</a>'
  579. elseif i = 4:
  580. $txtloc_adj = 'all over '
  581. $icon_txtloc = 'your butt'
  582. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumass/cumass'+rand(1,6)+'.jpg''">butt</a>'
  583. elseif i = 5:
  584. $txtloc_adj = 'painting '
  585. $txtloc = 'the back of your panties'
  586. $icon_txtloc = $txtloc
  587. elseif i = 6:
  588. $txtloc_adj = 'on '
  589. $icon_txtloc = 'your clothes near your groin'
  590. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/'+rand(1,3)+'.jpg''">clothes near your groin</a>'
  591. elseif i = 7:
  592. $txtloc_adj = 'on '
  593. $icon_txtloc = 'your clothes'
  594. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/cumclothes'+rand(1,21)+'.jpg''">clothes</a>'
  595. elseif i = 8:
  596. $txtloc_adj = 'down '
  597. $txtloc = 'your back'
  598. $icon_txtloc = $txtloc
  599. elseif i = 9:
  600. $txtloc_adj = 'on '
  601. $txtloc = 'your legs'
  602. $icon_txtloc = $txtloc
  603. elseif i = 10:
  604. $txtloc_adj = 'on '
  605. $txtloc = 'your arms'
  606. $icon_txtloc = $txtloc
  607. elseif i = 11:
  608. if pcs_haircol = 0:
  609. $cum_face_image = 'brown/'
  610. $cum_face_image += rand(1,31)
  611. elseif pcs_haircol = 1:
  612. $cum_face_image = 'black/'
  613. $cum_face_image += rand(1,23)
  614. elseif pcs_haircol = 2:
  615. $cum_face_image = 'red/'
  616. $cum_face_image += rand(1,19)
  617. elseif pcs_haircol = 3:
  618. $cum_face_image = 'blonde/'
  619. $cum_face_image += rand(1,25)
  620. elseif pcs_haircol > 3:
  621. $cum_face_image = 'custom/'
  622. $cum_face_image += rand(1,20)
  623. end
  624. $txtloc_adj = 'across '
  625. $icon_txtloc = 'your face'
  626. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumface/<<$cum_face_image>>.jpg''">face</a>'
  627. killvar 'cum_face_image'
  628. elseif i = 13:
  629. $txtloc_adj = 'over '
  630. $txtloc = 'your hands'
  631. $icon_txtloc = $txtloc
  632. elseif i = 14:
  633. $txtloc_adj = 'across '
  634. $icon_txtloc = 'across your stomach'
  635. $txtloc = 'across your <a href="exec:view''images/pc/body/cum/cumbelly/cumbelly'+rand(1,12)+'.jpg''">stomach</a>'
  636. elseif i = 15:
  637. $txtloc_adj = 'on '
  638. $icon_txtloc = 'on your breasts'
  639. $txtloc = 'your <a href="exec:view''images/pc/body/cum/cumtits/cumtits'+rand(1,19)+'.jpg''">breasts</a>'
  640. elseif i = 16:
  641. $txtloc_adj = 'in '
  642. $icon_txtloc = 'your hair'
  643. $txtloc = 'your hair</a>'
  644. elseif i = 17:
  645. $txtloc = 'in your vagina in a slipped condom'
  646. $icon_txtloc = $txtloc
  647. else
  648. $txtloc_adj = 'on '
  649. $icon_txtloc = 'the gusset of your panties'
  650. $txtloc = 'the gusset of your panties</a>'
  651. end
  652. j = 0
  653. :ageloop
  654. if cumvolume['<<i>>:<<j>>'] > 0:
  655. !!Cum locations set for checking npc reactions
  656. cumloc[i] = 1
  657. cumvol[i] = cumvolume['<<i>>:<<j>>']
  658. if stat_cumloc_check ! 1 and i ! 12: stat_cumloc_check = 1
  659. !!amount setting
  660. if cumvolume['<<i>>:<<j>>'] > 250:
  661. !! 25 ml, about four-five load, gushing
  662. $txtamount = 'Enormous '
  663. elseif cumvolume['<<i>>:<<j>>'] > 100:
  664. !! 10 ml, about two load, flowing
  665. $txtamount = 'Huge '
  666. elseif cumvolume['<<i>>:<<j>>'] >= 20:
  667. !! 2 ml, seeping out
  668. $txtamount = 'Decent '
  669. else
  670. !! residue amount, no leakage
  671. $txtamount = 'Small '
  672. end
  673. !! if sperm age stage is 4, it means inside the body
  674. if j = 4:
  675. if (vibratorIN = 1 and i = 0) or (analplugin = 1 and i = 3):
  676. $txtproxy = 'being plugged in '
  677. elseif i = 0 and cumvolume['<<i>>:<<j>>'] < pcs_vag*5:
  678. $txtproxy = 'staying inside '
  679. elseif i = 3 and pcs_ass <= 25:
  680. $txtproxy = 'staying inside '
  681. else
  682. if cumvolume['<<i>>:<<j>>'] > 250:
  683. $txtproxy = 'gushing out of '
  684. elseif cumvolume['<<i>>:<<j>>'] > 100:
  685. $txtproxy = 'flowing out of '
  686. elseif cumvolume['<<i>>:<<j>>'] >= 40:
  687. $txtproxy = 'seeping out of '
  688. else
  689. $txtproxy = 'staying inside '
  690. end
  691. end
  692. elseif j >= 5:
  693. !! if sperm age stage is over 4, meaning in condom
  694. if j = 5:
  695. $txtproxy = 'buried '
  696. elseif j = 6:
  697. $txtproxy = 'marinating '
  698. else
  699. $txtproxy = 'rotting '
  700. end
  701. if cumcondslip_deep > (vagina / 2): $txtproxy += 'deep '
  702. elseif j < 4 and j > 0:
  703. !!amount setting
  704. if cumvolume['<<i>>:<<j>>'] > 160:
  705. !! 10 ml, about two load, flowing
  706. $txtproxy = 'coating '
  707. elseif cumvolume['<<i>>:<<j>>'] > 40:
  708. !! 2 ml, seeping out
  709. $txtproxy = 'covering '
  710. else
  711. !! residue amount, no leakage
  712. $txtproxy = 'spattered '
  713. end
  714. if j = 1:
  715. $txtproxy += 'wetly '
  716. elseif j = 2:
  717. $txtproxy += 'dryly '
  718. else
  719. $txtproxy += 'powderly '
  720. end
  721. if cumvolume['<<i>>:<<j>>'] < 40:
  722. $txtproxy += $txtloc_adj
  723. end
  724. end
  725. $txtperson = ''
  726. if cumcount['<<i>>:<<j>>'] = 0:
  727. !!ToDo: No idea how to do the icon here (julzor)
  728. $txtiscum = 'some whitish substance '
  729. else
  730. $txtiscum = 'cum'
  731. if cumcount['<<i>>:<<j>>'] = knownguy['<<i>>:<<j>>']:
  732. !! everyone is known (one or more)
  733. if knownguy['<<i>>:<<j>>'] = 1:
  734. if $npc_usedname[$cumowner['<<i>>:<<j>>:0']] = 'stranger':
  735. $txtperson = $npc_firstname[$cumowner['<<i>>:<<j>>:0']] + ' '
  736. else
  737. $txtperson = $npc_usedname[$cumowner['<<i>>:<<j>>:0']] + ' '
  738. end
  739. else
  740. kmax = 0
  741. :nullocator1
  742. if $cumowner['<<i>>:<<j>>:<<kmax>>'] ! '':kmax += 1 & jump 'nullocator1'
  743. kmax -= 1
  744. k = 0
  745. :knownloop
  746. $txtperson += $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']]
  747. if k < kmax-1:$txtperson += ', ' & k += 1 & jump 'knownloop'
  748. k += 1
  749. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  750. $txtperson += ' and ' + $npc_firstname[$cumowner['<<i>>:<<j>>:<<k>>']] + ' '
  751. else
  752. $txtperson += ' and ' + $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] + ' '
  753. end
  754. end
  755. elseif knownguy['<<i>>:<<j>>'] = 0:
  756. !! no one is known (one or more)
  757. if cumcount['<<i>>:<<j>>'] = 1:
  758. $txtperson += 'some guy '
  759. else
  760. $txtperson += 'some guys '
  761. end
  762. else
  763. !! there are known and unknown guys in the mix
  764. if knownguy['<<i>>:<<j>>'] = 1:
  765. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  766. $txtperson = $npc_firstname[$cumowner['<<i>>:<<j>>:0']] + ' and some guy'
  767. else
  768. $txtperson = $npc_usedname[$cumowner['<<i>>:<<j>>:0']] + ' and some guy'
  769. end
  770. else
  771. kmax = 0
  772. :nullocator2
  773. if $cumowner['<<i>>:<<j>>:<<kmax>>'] ! '':kmax += 1 & jump 'nullocator2'
  774. kmax -= 1
  775. k = 0
  776. :mixloop
  777. if $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] = 'stranger':
  778. $txtperson += $npc_firstname[$cumowner['<<i>>:<<j>>:<<k>>']] + ', '
  779. else
  780. $txtperson += $npc_usedname[$cumowner['<<i>>:<<j>>:<<k>>']] + ', '
  781. end
  782. if k < kmax: k += 1 & jump 'mixloop'
  783. $txtperson += 'and some guy'
  784. end
  785. if cumcount['<<i>>:<<j>>'] - knownguy['<<i>>:<<j>>'] > 1:
  786. $txtperson += 's '
  787. else
  788. $txtperson += ' '
  789. end
  790. end
  791. end
  792. $icon_txtiscum = $txtiscum
  793. if j <= 4 and pcs_traits['cumeater'] = 1 and $txtiscum = 'cum': $txtiscum = '<a href="exec:gs ''cum_manage'', ''cumeater'', <<i>>"><font color=#0064FF>' + $txtiscum + '</font></a>'
  794. if $txtperson ! '':
  795. $txtperson = ' from ' + $txtperson
  796. end
  797. if i = 0 and j = 4 and vibratorIN = 0 and pcs_vag*10 < cumvolume['<<i>>:<<j>>'] and cumvolume['<<i>>:<<j>>'] >= 20:
  798. $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>'
  799. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  800. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + iif($pantyworntype ! 'none', ' into your panties.', ' down your legs.')
  801. elseif sparragestage >= 5:
  802. if cumcondslip_aware > 0: $stat_cum_text += '<BR><b><font color="red">' + $txtamount + 'amounts of ' + $txtiscum + $txtperson + 'is ' + $txtproxy + $txtloc + '.</font></b>'
  803. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  804. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + '.'
  805. elseif j ! 0:
  806. $stat_cum_text += '<BR><b><font color="red">' + $txtamount + 'amounts of ' + $txtiscum + $txtperson + 'is ' + $txtproxy + $txtloc + '.</font></b>'
  807. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  808. $stat_cum_msg += $txtamount + 'amounts of ' + $icon_txtiscum + $txtperson + 'is ' + $txtproxy + $icon_txtloc + '.'
  809. else
  810. $stat_cum_text += '<BR><b><font color="red">Your mouth has the tangy aftertaste of sperm.</font></b>'
  811. if $stat_cum_msg ! '': $stat_cum_msg += '<br>'
  812. $stat_cum_msg += 'Your mouth has the tangy aftertaste of sperm.'
  813. end
  814. end
  815. if j < 7: j+=1 & jump 'ageloop'
  816. if i < 18: i+=1 & jump 'cumlocloop'
  817. killvar 'i'
  818. killvar 'j'
  819. killvar 'txtperson'
  820. killvar 'k'
  821. killvar 'kmax'
  822. killvar 'txtamount'
  823. killvar 'txtiscum'
  824. killvar '$icon_txtiscum'
  825. killvar 'txtperson'
  826. killvar 'txtproxy'
  827. killvar 'txtloc'
  828. killvar '$icon_txtloc'
  829. killvar 'cumvolume'
  830. killvar 'cumcount'
  831. killvar 'knownguy'
  832. killvar 'cumowner'
  833. $stat_visible_cum_temp = ''
  834. $stat_visible_cum_msg = ''
  835. if cumloc[6] = 1 or cumloc[7] = 1 or cumloc[11] = 1 or cumloc[13] = 1 or cumloc[16] = 1:
  836. if cumloc[6] = 1:
  837. stat_visible_cum = 1
  838. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  839. $stat_visible_cum_temp += 'on your clothes near your groin'
  840. end
  841. if cumloc[7] = 1:
  842. stat_visible_cum = 1
  843. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  844. $stat_visible_cum_temp += 'on your clothes'
  845. end
  846. if cumloc[11] = 1:
  847. stat_visible_cum = 1
  848. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  849. $stat_visible_cum_temp += 'on your face'
  850. end
  851. if cumloc[13] = 1:
  852. stat_visible_cum = 1
  853. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  854. $stat_visible_cum_temp += 'on your hands'
  855. end
  856. if cumloc[16] = 1:
  857. stat_visible_cum = 1
  858. if $stat_visible_cum_temp ! '': $stat_visible_cum_temp += ', '
  859. $stat_visible_cum_temp += 'in your hair'
  860. end
  861. $stat_visible_cum_msg = 'People can see the cum '+ $stat_visible_cum_temp + '.'
  862. end
  863. cum_loc['vagina'] = cumloc[0]
  864. cum_loc['labia'] = cumloc[1]
  865. cum_loc['panty_front'] = cumloc[2]
  866. cum_loc['anus'] = cumloc[3]
  867. cum_loc['butt'] = cumloc[4]
  868. cum_loc['panty_back'] = cumloc[5]
  869. cum_loc['clothes_groin'] = cumloc[6]
  870. cum_loc['clothes'] = cumloc[7]
  871. cum_loc['back'] = cumloc[8]
  872. cum_loc['legs'] = cumloc[9]
  873. cum_loc['arms'] = cumloc[10]
  874. cum_loc['face'] = cumloc[11]
  875. cum_loc['mouth'] = cumloc[12]
  876. cum_loc['hands'] = cumloc[13]
  877. cum_loc['stomach'] = cumloc[14]
  878. cum_loc['tits'] = cumloc[15]
  879. cum_loc['hair'] = cumloc[16]
  880. cum_loc['condom_in_pussy'] = cumloc[17]
  881. end
  882. --- Cum_Manage ---------------------------------