prostitution_functions.qsrc 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  1. # prostitution_functions
  2. !! ---- Variables -------------------------------------------------------------------------------------------------------
  3. !!
  4. !! prostitute['payment_method']: 1 - Sveta works for herself; 0 - Sveta works for someone else who will take a cut
  5. !! prostitute['blocked']: 1 - WLife is loaded which blocks some of the locations: Pavlovsk will rely on the WLife mod
  6. !! and the Gas Station will be completely blocked
  7. !! 0 - WLife is not loaded, everything works as normal.
  8. !! prostitute[<<$location>>]: 1 - Sveta can work at the location.
  9. !! 0 - Sveta can''t work at the location'
  10. !! current locations: Pavlovsk - ''pavlovsk'', Gadukino - ''gadukino'',
  11. !! Road between Pavlovsk and St Petersburg - ''road'', Gas Station ''gas_station''
  12. !! prostitute['active']: 1- Sveta ''unlocked'' prostitution somewhere. It is use for non-location specific checks, like
  13. !! being able set a default prostitute outfit at home, or finding new places to work at.
  14. !! prostitute['work_clothes']: 1 - Sveta is wearing a prostitute outfit, i.e. clothes and shoes
  15. !! prostitute['outfit_is_set']: 1 - Sveta has a default outfit set up. Needed if she wants to change in restrooms
  16. !! or in the car on location, and not travel wearing that outfit
  17. !! prostitute['changed_for_work']: 1 - It measn that Sveta changed into her prostitute outfit on site from some regular
  18. !! clothes. This enables the 'Change into regular clothes' action in the changing
  19. !! location.
  20. !! 0 - Sveta didn''t change which means she can''t change into regular clothing.
  21. !!---------- Initial set up, enabling locations, etc. -------------------------------------------------------------------
  22. !!-----------------------------------------------------------------------------------------------------------------------
  23. !! This will run every time for now until I find out how to call this whenever Sveta changes clothes regardless of where and how. I don't want to put it in gs 'stat'
  24. $solicitation_locations[0] = 'pav_commcenter'
  25. $solicitation_locations[1] = 'pav_residential'
  26. $solicitation_locations[2] = 'pav_industrial'
  27. $solicitation_locations[3] = 'pav_commercial'
  28. $solicitation_locations[4] = 'pav_market'
  29. $solicitation_locations[5] = 'pav_complex'
  30. $solicitation_locations[6] = 'pav_park'
  31. $solicitation_locations[7] = 'pushkin'
  32. if $ARGS[0] = 'check_for_wlife':
  33. if mod_list > 0:
  34. mod_i=1
  35. :mod_exec
  36. if $mod_name[mod_i] = 'wlife':
  37. prostitute['blocked'] = 1
  38. end
  39. if mod_list > mod_i:
  40. mod_i+=1
  41. jump 'mod_exec'
  42. end
  43. end
  44. end
  45. if $ARGS[0] = 'set_pavlovsk_prostitute':
  46. if fame['pav_prostitute'] > 250 or fame['pav_slut'] > 250 and prostitute['blocked'] = 0:
  47. prostitute['pavlovsk'] = 1
  48. prostitute['active'] = 1
  49. prostitute['payment_method'] = 1
  50. else
  51. prostitute['pavlovsk'] = 0
  52. end
  53. end
  54. if $ARGS[0] = 'set_gadukion_prostitute':
  55. if gadriver_gang = 2 and (mirapimp = 0 or mirapimp = 2):
  56. prostitute['gadukino'] = 1
  57. prostitute['active'] = 1
  58. prostitute['payment_method'] = 1
  59. else
  60. prostitute['gadukino'] = 0
  61. end
  62. end
  63. if $ARGS[0] = 'prostitute_work_hours':
  64. if $region = 'pushkin':
  65. RESULT = (hour >= 0 and hour < 2) or (hours >= 12 and hour < 14) or (hour >= 17 and hour <= 23)
  66. elseif $region = 'pav' or $MID($loc,1,4) = 'pav_':
  67. RESULT = (hour >= 12 and hour < 14) or (hour >= 17 and hour <= 23)
  68. else
  69. RESULT = 0
  70. end
  71. end
  72. if $ARGS[0] = 'is_solicitation_location':
  73. RESULT = $curloc ! 'shop' and $curloc ! 'prostitution_pavlovsk' and $loc = $curloc and menu_off = 0 and ($loc_arg = '' or $loc_arg = 'start') and (ARRPOS('$solicitation_locations', $loc) ! -1)
  74. end
  75. !!-----------------------------------------------------------------------------------------------------------------------
  76. !!-----------------------------------------------------------------------------------------------------------------------
  77. !!
  78. !!---------- Setting default working outfit -----------------------------------------------------------------------------
  79. !! When calling check if Sveta is at home (i.e. the wardrobe is in her current home)
  80. if $ARGS[0] = 'prostitute_outfit_at_home':
  81. if func('homes_properties', 'is_current_home') and prostitute['active']:
  82. gs 'prostitution_functions', 'work_clothes'
  83. if prostitute['work_clothes']:
  84. gs 'prostitution_functions', 'is_default'
  85. if prostitute['outfit_is_set'] = 1 and is_default = 0:
  86. act 'Replace your default prostitute outfit with the current outfit':
  87. gs 'prostitution_functions', 'set_default_outfit'
  88. gt $loc, $loc_arg
  89. end
  90. elseif prostitute['outfit_is_set'] = 0:
  91. act 'Set the current as your default prostitute outfit':
  92. gs 'prostitution_functions', 'set_default_outfit'
  93. gt $loc, $loc_arg
  94. end
  95. end
  96. act 'Change into regular clothes':
  97. gs 'prostitution_functions', 'change_into_regular_clothes'
  98. gt $loc, $loc_arg
  99. end
  100. elseif prostitute['outfit_is_set']:
  101. act 'Change into prostitute outfit':
  102. gs 'prostitution_functions', 'change_into_prostitute_outfit'
  103. gt $loc, $loc_arg
  104. end
  105. end
  106. killvar 'is_default'
  107. end
  108. end
  109. !!---- Outfit checks ---------------------------------------------------------------------------------
  110. if $ARGS[0] = 'work_clothes':
  111. prostitute['work_clothes'] = (PCloStyle = 4 and (PShoStyle = 1 or PShoStyle = 2 or PShoHeels >= 3))
  112. end
  113. if $ARGS[0] = 'is_default':
  114. is_default = prostitute['clothingwornnumber'] = clothingwornnumber & prostitute['pantywornnumber'] = pantywornnumber & prostitute['brawornnumber'] = brawornnumber & prostitute['shoewornnumber'] = shoewornnumber
  115. end
  116. !!---- Setting, clearing and changing outfits ------------------------------------------------------------------
  117. if $ARGS[0] = 'set_default_outfit':
  118. !!-- Clothing
  119. $prostitute['clothingworntype'] = $clothingworntype
  120. prostitute['clothingwornnumber'] = clothingwornnumber
  121. !!-- Underwear
  122. $prostitute['pantyworntype'] = $pantyworntype
  123. prostitute['pantywornnumber'] = pantywornnumber
  124. $prostitute['braworntype'] = $braworntype
  125. prostitute['brawornnumber'] = brawornnumber
  126. !!-- Shoes
  127. $prostitute['shoeworntype'] = $shoeworntype
  128. prostitute['shoewornnumber'] = shoewornnumber
  129. prostitute['outfit_is_set'] = 1
  130. end
  131. if $ARGS[0] = 'clearing_default_outfit':
  132. !!-- Clothing
  133. $prostitute['clothingworntype'] = ''
  134. prostitute['clothingwornnumber'] = 0
  135. !!-- Underwear
  136. $prostitute['pantyworntype'] = ''
  137. prostitute['pantywornnumber'] = 0
  138. $prostitute['braworntype'] = ''
  139. prostitute['brawornnumber'] = 0
  140. !!-- Shoes
  141. $prostitute['shoeworntype'] = ''
  142. prostitute['shoewornnumber'] = 0
  143. prostitute['outfit_is_set'] = 0
  144. end
  145. if $ARGS[0] = 'change_into_prostitute_outfit':
  146. gs 'clothing', 'wear', $prostitute['clothingworntype'], prostitute['clothingwornnumber']
  147. gs 'panties', 'wear', $prostitute['pantyworntype'], prostitute['pantywornnumber']
  148. gs 'bras', 'wear', $prostitute['braworntype'], prostitute['brawornnumber']
  149. gs 'shoes', 'strip'
  150. gs 'shoes', 'wear', $prostitute['shoeworntype'], prostitute['shoewornnumber']
  151. ! !! TODO: Check for worn out here?
  152. !! CHeck if the change happened not at home and if yes, then store the fact of change.
  153. gs 'prostitution_functions', 'work_clothes'
  154. if $ARGS[1] = 'work': prostitute['changed_for_work'] = 1
  155. end
  156. if $ARGS[0] = 'change_into_regular_clothes':
  157. !!-- Clothing
  158. gs 'clothing', 'wear_last_worn'
  159. !!-- Underwear
  160. gs 'panties', 'wear_last_worn'
  161. gs 'bras', 'wear_last_worn'
  162. !!-- Shoes
  163. gs 'shoes', 'wear', 'last_worn'
  164. gs 'prostitution_functions', 'work_clothes'
  165. if prostitute['changed_for_work']: prostitute['changed_for_work'] = 0
  166. end
  167. !!---------- Chaging outfits in public locations ------------------------------------------------------------------------
  168. !!------ CHanging clothes --------------------------
  169. if $ARGS[0] = 'change_to_work':
  170. cla
  171. *clr
  172. minut += 10
  173. if $ARGS[1] = 'car':
  174. !! TODO: Video / image and some text describing the cloth change in the car
  175. ''+iif($loc_desc = $loc_desc, 'You quickly change into your working outfit in your car.', $loc_desc)
  176. end
  177. if $ARGS[1] = 'restroom':
  178. !! TODO: Video / image and some text describing the cloth change in the men''s restroom
  179. !! Is there a way to know if it''s a men''s or women''s restroom?
  180. ''+iif($loc_desc = $loc_desc, 'You slip into a stall and quickly change into your working outfit, trying t avoid your clothes touching the floor or, really, anything before you place them safely in your bag.', $loc_desc)
  181. end
  182. gs 'prostitution_functions', 'change_into_prostitute_outfit', 'work'
  183. act 'Finish': gt $loc, $loc_arg
  184. end
  185. if $ARGS[0] = 'change_back':
  186. cla
  187. *clr
  188. minut += 10
  189. if $ARGS[1] = 'car':
  190. !! TODO: Video / image and some text describing the cloth change in the car
  191. 'You quickly change into your working outfit in your car.'
  192. end
  193. if $ARGS[1] = 'restroom':
  194. !! TODO: Video / image and some text describing the cloth change in the men''s restroom
  195. 'You quickly change into your working in the men''s restroom..'
  196. end
  197. if $loc_arg = 'restroom_women':
  198. !! TODO: Video / image and some text describing the cloth change in the women''s restroom
  199. 'You quickly change into your working outfit in the women''s restroom.'
  200. end
  201. gs 'prostitution_functions', 'change_into_regular_clothes'
  202. act 'Finish': gt $loc, $loc_arg
  203. end
  204. !!-----------------------------------------------------------------------------------------------------------------------
  205. !!---------- Checking for events ----------------------------------------------------------------------------------------
  206. !!-----------------------------------------------------------------------------------------------------------------------
  207. if $ARGS[0] = 'check_solicitation_event':
  208. gs 'prostitution_functions', 'work_clothes'
  209. if prostitute['blocked'] = 0 and func('prostitution_functions', 'prostitute_work_hours') and func('prostitution_functions','is_solicitation_location'):
  210. if prostitute['pavlovsk'] = 1 and prostitute['pav_time_hour'] ! hour and rand(-20, 70) < minut:
  211. gs 'prostitution_pavlovsk', 'chance'
  212. end
  213. if prostitute['pavlovsk'] = 1 and prostitute['work_clothes'] :
  214. pl '<center><a href="exec: gt ''prostitution_pavlovsk'', ''search''"><img title="Click to start working in Pavlovsk." height = 80 src="images/system/icons/icon_prostitute.png"></a></center>'
  215. end
  216. if prostitute['pav_residential_prost_day'] ! daystart: prostitute['pav_residential_prost_day'] = daystart
  217. !!pav_residential_prost_day
  218. end
  219. end
  220. !!-----------------------------------------------------------------------------------------------------------------------
  221. !!---------- Willpower checks -------------------------------------------------------------------------------------------
  222. !!-----------------------------------------------------------------------------------------------------------------------
  223. if $ARGS[0] = 'will_unprotected':
  224. gs 'willpower', 'calc'
  225. will_cost = 0
  226. if missCum >= timeTresh: will_calc += 100
  227. if $ARGS[1] = 'resist':
  228. if pro_stats['unprotected'] <= 90:
  229. will_cost = (10 + pro_stats['unprotected'] + will_calc) / 10
  230. else
  231. will_cost = (100 + will_calc)/10
  232. end
  233. else
  234. if pro_stats['unprotected'] <= 90:
  235. will_cost = (100 - pro_stats['unprotected'] + will_calc) / 10
  236. else
  237. will_cost = (10 + will_calc)/10
  238. end
  239. end
  240. gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
  241. end
  242. if $ARGS[0] = 'will_rimming':
  243. gs 'willpower', 'calc'
  244. if $ARGS[1] = 'self':
  245. if stat['rimming_give'] <= 90:
  246. will_cost = (100 - stat['rimming_give'] + will_calc)/10
  247. else
  248. will_cost = (10 + will_calc)/10
  249. end
  250. elseif $ARGS[1] = 'force':
  251. if stat['rimming_give'] <= 40:
  252. will_cost = (110 - will_enforced - stat['rimming_give'] + will_calc)/10
  253. else
  254. will_cost = (70 - will_enforced + will_calc)/10
  255. end
  256. else
  257. if stat['rimming_give'] <= 90:
  258. will_cost = (10 + stat['rimming_give'] + will_calc)/10
  259. else
  260. will_cost = (100 + will_calc)/10
  261. end
  262. end
  263. gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
  264. end
  265. if $ARGS[0] = 'will_atm':
  266. gs 'willpower', 'calc'
  267. if $ARGS[1] = 'self':
  268. if pro_stats['atm'] <= 90:
  269. will_cost = (100 - pro_stats['atm'] + will_calc)/10
  270. else
  271. will_cost = (10 + will_calc)/10
  272. end
  273. elseif $ARGS[1] = 'force':
  274. if pro_stats['atm'] <= 40:
  275. will_cost = (110 - will_enforced - pro_stats['atm'] + will_calc)/10
  276. else
  277. will_cost = (70 - will_enforced + will_calc)/10
  278. end
  279. else
  280. if pro_stats['atm'] <= 90:
  281. will_cost = (10 + pro_stats['atm'] + will_calc)/10
  282. else
  283. will_cost = (100 + will_calc)/10
  284. end
  285. end
  286. gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
  287. end
  288. !!-----------------------------------------------------------------------------------------------------------------------
  289. !!---------- Condoms & STDs----------------------------------------------------------------------------------------------
  290. !!-----------------------------------------------------------------------------------------------------------------------
  291. if $ARGS[0] = 'std_check':
  292. pro_std_check_rand = rand(0,10)
  293. if protect = 1:
  294. pro_std_rand = rand(0,1000)
  295. if pro_std_rand = 1000: gs 'prostitution_functions' , 'std_chance'
  296. else
  297. if $ARGS[1] = 'high':
  298. pro_std_rand = rand(-20,120)
  299. else
  300. pro_std_rand = rand(-60,100)
  301. end
  302. if pro_std_rand >= 80: gs 'prostitution_functions' , 'std_chance'
  303. end
  304. end
  305. if $ARGS[0] = 'std_chance':
  306. if cheatHealth = 0:
  307. if pro_std_check_rand = 8:
  308. !!herpes
  309. if rand(1, 100) > 90:
  310. if GerpesOnce = 0:
  311. GerpesOnce = 1
  312. Venera += 1
  313. Gerpes += 1
  314. GenHerpes = 1
  315. end
  316. end
  317. elseif pro_std_check_rand = 7:
  318. !!syphilis
  319. if rand(1, 100) > 95: Venera += 1
  320. if SifacOnce = 0:
  321. SifacOnce = 1
  322. Sifilis += 1
  323. end
  324. elseif pro_std_check_rand >= 5 and pro_std_check_rand < 7:
  325. !!gonorrhea/triper
  326. if rand(1, 100) > 95: Venera += 1
  327. if TriperOnce = 0:
  328. TriperOnce = 1
  329. Triper += 1
  330. end
  331. elseif pro_std_check_rand < 5:
  332. !!candidiasis/thrush
  333. if rand(1, 100) > 85:
  334. if KandidozOnce = 0:
  335. KandidozOnce = 1
  336. Kandidoz += 1
  337. end
  338. end
  339. end
  340. end
  341. end
  342. if $ARGS[0] = 'std_check_oral':
  343. pro_std_check_rand = rand(0,10)
  344. if protect = 1:
  345. pro_std_rand = rand(0,1000)
  346. if pro_std_rand = 1000: gs 'prostitution_functions' , 'std_oral_chance'
  347. else
  348. if $ARGS[1] = 'high':
  349. pro_std_rand = rand(-20,120)
  350. elseif $ARGS[1] = 'low':
  351. pro_std_rand = rand(-80,90)
  352. else
  353. pro_std_rand = rand(-60,100)
  354. end
  355. if pro_std_rand >= 80: gs 'prostitution_functions' , 'std_oral_chance'
  356. end
  357. end
  358. if $ARGS[0] = 'std_oral_chance':
  359. if cheatHealth = 0:
  360. if pro_std_check_rand >= 5 and pro_std_check_rand < 7:
  361. if rand(1, 100) > 95: Venera += 1
  362. if TriperOnce = 0:
  363. TriperOnce = 1
  364. TriperOral += 1
  365. if rand (0,100) < 15: TriperOralSigns = 1
  366. end
  367. elseif pro_std_check_rand = 7:
  368. if rand(0,1) = 1:
  369. !!syphilis
  370. if rand(1, 100) > 95: Venera += 1
  371. if SifacOnce = 0:
  372. SifacOnce = 1
  373. Sifilis += 1
  374. end
  375. end
  376. elseif pro_std_check_rand < 5:
  377. !!candidiasis/thrush
  378. if rand(1, 100) > 85:
  379. if KandidozOnce = 0:
  380. KandidozOnce = 1
  381. Kandidoz += 1
  382. end
  383. end
  384. elseif pro_std_check_rand = 8:
  385. !!herpes
  386. if rand(1, 100) > 90:
  387. if GerpesOnce = 0:
  388. GerpesOnce = 1
  389. Venera += 1
  390. Gerpes += 1
  391. OrHerpes = 1
  392. end
  393. end
  394. end
  395. end
  396. end
  397. if $ARGS[0] = 'remove_condom':
  398. if prezik > 0:
  399. prezik -= 1
  400. elseif prezikcount > 0:
  401. prezikcount -= 1
  402. end
  403. end
  404. if $ARGS[0] = 'your_condom':
  405. prostitute['condom'] = 1
  406. protect = iif(prezik > 0,1,0)
  407. if prezik > 0:
  408. if rand(1,prezik) <= badprezik:
  409. badprezik -= 1
  410. noprotect = 1
  411. sexcontra = 7
  412. else
  413. sexcontra = 3
  414. end
  415. prezik -= 1
  416. sexcontra = iif(preziktype = 2,7,sexcontra)
  417. else
  418. sexcontra = 0
  419. end
  420. end
  421. if $ARGS[0] = 'his_condom':
  422. $bwa_boy = iif($ARGS[1] = '',$boydesc,$ARGS[1])
  423. protect = 1
  424. sexcontra = 3
  425. *p '<<ucase(mid($bwa_boy,1,1))>><<mid($bwa_boy,2,len($bwa_boy)-1)>> takes his condom and puts it on his <<dick>> centimeter dick.'
  426. end
  427. !!---------- Background: Black-----------------------------------------------------------------------------------
  428. if $ARGS[0] = 'darkness':
  429. fcolor = rgb(255, 255, 255)
  430. bcolor = rgb(0, 0, 0)
  431. lcolor = rgb(106, 90, 205)
  432. end
  433. if $ARGS[0] = 'parameters':
  434. !!Reset
  435. protect = 0
  436. sexcontra = 0
  437. $pro_client_condom = 'tbd'
  438. $pro_client_cumshot = 'tbd'
  439. !!Client
  440. gs 'npcgeneratec', 0, 'client', rand(18,65)
  441. gs 'boyStat', $npclastgenerated
  442. !!
  443. !!---------- Time -----------------------------------------------------------------------------------------------
  444. if hour > 19 or hour < 7:
  445. $pro_work_time = 'night'
  446. else
  447. $pro_work_time = 'day'
  448. end
  449. gs 'prostitution_functions', 'std_cum_check'
  450. !!---------- Client Likes/Dislikes ------------------------------------------------------------------------------
  451. if rand(1,10) = 10:
  452. prostitute['mesec_mod'] = 1
  453. else
  454. prostitute['mesec_mod'] = 0
  455. end
  456. if rand(1,100) > 97:
  457. prostitute['dirty_anal_mod'] = 1
  458. else
  459. prostitute['dirty_anal_mod'] = 0
  460. end
  461. if rand(1,10) = 10:
  462. prostitute['cum_visible_mod'] = 1
  463. else
  464. prostitute['cum_visible_mod'] = 0
  465. end
  466. !!---------- Age ------------------------------------------------------------------------------------------------
  467. if vidage < 18 and rand(1,10) < 7:
  468. prostitute['vidage_mod'] = 1
  469. else
  470. prostitute['vidage_mod'] = 0
  471. end
  472. !!---------- Scenes ----------------------------------------------------------------------------------------------
  473. !!----------------------------------------------------------------------------------------------------------------
  474. pro_scene_rand = rand(1,100)
  475. if pro_scene_rand <= 50:
  476. if mesec = 0 or prostitute['mesec_mod'] = 1:
  477. $prostitute['client_scene'] = 'Vaginal'
  478. elseif mesec > 0 and prostitute['mesec_mod'] = 0 and (klismaday = daystart or prostitute['dirty_anal_mod'] = 1):
  479. $prostitute['client_scene'] = 'Anal'
  480. else
  481. $prostitute['client_scene'] = 'Blowjob'
  482. end
  483. elseif pro_scene_rand > 50 and pro_scene_rand <= 75:
  484. if klismaday = daystart or prostitute['dirty_anal_mod'] = 1:
  485. $prostitute['client_scene'] = 'Anal'
  486. elseif klismaday ! daystart and prostitute['dirty_anal_mod'] = 0 and (mesec = 0 or prostitute['mesec_mod'] = 1):
  487. $prostitute['client_scene'] = 'Vaginal'
  488. else
  489. $prostitute['client_scene'] = 'Blowjob'
  490. end
  491. else
  492. $prostitute['client_scene'] = 'Blowjob'
  493. end
  494. !!---- Regular Worker ----------------------------------------------------------------------------------------
  495. if prostitute['customer_total'] < 10:
  496. prostitute['regular_chance'] = 0
  497. elseif prostitute['customer_total'] >= 10 and prostitute['customer_total'] <= 25:
  498. prostitute['regular_chance'] = 1
  499. elseif prostitute['customer_total'] > 25 and prostitute['customer_total'] <= 50:
  500. prostitute['regular_chance'] = 2
  501. elseif prostitute['customer_total'] > 50 and prostitute['customer_total'] <= 100:
  502. prostitute['regular_chance'] = 3
  503. elseif prostitute['customer_total'] > 100 and prostitute['customer_total'] <= 250:
  504. prostitute['regular_chance'] = 4
  505. end
  506. !!---- Chance to find a client --------------------------------------------------------------------------------
  507. prostitute['client_chance'] = hotcat * 10 + prostitute['regular_chance'] * 5 + rand(1,100) + prostitute['pity_counter']
  508. if $pantyworntype = 'eroto' and CloSkirtShortness > 4: prostitute['client_chance'] += 10
  509. !!---- Client ------------------------------------------------------------------------------------------------
  510. if prostitute['regular_timer'] ! daystart and $prostitute['client_scene'] ! 'Blowjob':
  511. if (prostitute['regular_chance'] = 1 and rand(1,100) > 95) or (prostitute['regular_chance'] = 2 and rand(1,100) > 90) or (prostitute['regular_chance'] = 3 and rand(1,100) > 80) or (prostitute['regular_chance'] = 4 and rand(1,100) > 60):
  512. prostitute['regular'] = 1
  513. else
  514. prostitute['regular'] = 0
  515. end
  516. else
  517. prostitute['regular'] = 0
  518. end
  519. !!ToDo: Rough Clients
  520. !! if prostitute['regular'] = 0:
  521. !! if (pro_work_day = 0 and rand(1,100) > 90) or (pro_work_day = 1 and rand(1,100) > 95):
  522. !! if prostitute['rough'] = 1
  523. !! else
  524. !! prostitute['rough'] = 0
  525. !! end
  526. !! end
  527. if prostitute['regular'] = 0 and prostitute['rough'] = 0 and prostitute['std_mod'] = 0 and rand(1,100) > iif($pro_brand['text_pubic'] = 'cumslut', 84, 92):
  528. prostitute['client_creampie'] = 1
  529. else
  530. prostitute['client_creampie'] = 0
  531. end
  532. if prostitute['rough'] = 1 or (prostitute['rough'] = 0 and rand(1,100) > 40):
  533. prostitute['propose'] = 0
  534. else
  535. prostitute['propose'] = 1
  536. end
  537. end
  538. !!---------- Payment ---------------------------------------------------------------------------------------------
  539. if $ARGS[0] = 'payment':
  540. !!---- Basic Payment -----------------------------------------------------------------------------------------
  541. if $ARGS[1] = 'pav':
  542. if $prostitute['pav_scene'] = 'blowjob':
  543. prostitute['payment'] = 425
  544. elseif $prostitute['pav_scene'] = 'anal':
  545. prostitute['payment'] = 1200
  546. else
  547. prostitute['payment'] = 1000
  548. end
  549. else
  550. if $prostitute['client_scene'] = 'Blowjob':
  551. prostitute['payment'] = 350
  552. if $ARGS[1] = 'condom_no': prostitute['payment'] += 75
  553. if $ARGS[2] = 'inside_yes': prostitute['payment'] += 50
  554. elseif $prostitute['client_scene'] = 'Vaginal':
  555. prostitute['payment'] = 700
  556. if $ARGS[1] = 'condom_no': prostitute['payment'] += 300
  557. if $ARGS[2] = 'inside_yes': prostitute['payment'] += 300
  558. elseif $prostitute['client_scene'] = 'Anal':
  559. prostitute['payment'] = 900
  560. if $ARGS[1] = 'condom_no': prostitute['payment'] += 200
  561. if $ARGS[2] = 'inside_yes': prostitute['payment'] += 100
  562. end
  563. end
  564. !!---- Bonus -------------------------------------------------------------------------------------------------
  565. prostitute['payment_mod'] = hotcat * 10
  566. if pcs_makeup = 0:
  567. prostitute['payment_mod'] -= 20
  568. elseif pcs_makeup > 1:
  569. prostitute['payment_mod'] += pcs_makeup * 10
  570. end
  571. if mesec > 0 and $prostitute['client_scene'] = 'Vaginal':
  572. if prostitute['mesec_mod'] = 0:
  573. prostitute['payment_mod'] -= 200
  574. else
  575. prostitute['payment_mod'] += 300
  576. end
  577. end
  578. if klismaday ! daystart and $prostitute['client_scene'] = 'Anal':
  579. if prostitute['dirty_anal_mod'] = 0:
  580. if $ARGS[1] = 'condom_no':
  581. prostitute['payment_mod'] -= 600
  582. elseif $ARGS[1] = 'condom_yes':
  583. prostitute['payment_mod'] -= 300
  584. end
  585. else
  586. prostitute['payment_mod'] += 300
  587. end
  588. end
  589. if prostitute['cum_dressed'] = 1:
  590. if prostitute['cum_visible_mod'] = 0:
  591. prostitute['payment_mod'] -= 200
  592. else
  593. prostitute['payment_mod'] += 300
  594. end
  595. end
  596. prostitute['payment_mod'] += pcs_mood - 50
  597. if $pantyworntype = 'eroto' and CloSkirtShortness > 4: prostitute['payment_mod'] += 50
  598. if prostitute['vidage_mod'] = 1:
  599. prostitute['payment_mod'] += 50 * (18 - vidage)
  600. else
  601. prostitute['payment_mod'] -= 50 * (18 - vidage)
  602. end
  603. if ($prostitute['client_scene'] = 'Blowjob') or ($prostitute['pav_scene'] = 'blowjob'):
  604. prostitute['payment_mod'] = prostitute['payment_mod'] / 2
  605. if pirsA = 2:
  606. prostitute['payment_mod'] += 50
  607. elseif pirsA = 4:
  608. prostitute['payment_mod'] += 75
  609. elseif pirsA > 0 and pirsA < 10000:
  610. prostitute['payment_mod'] += 25
  611. end
  612. end
  613. prostitute['payment'] += prostitute['payment_mod']
  614. prostitute['payment_backup'] = prostitute['payment']
  615. prostitute['payment'] = (prostitute['payment'] * (100 + prostitute['client_satisfaction'])) / 100
  616. !!Rounding
  617. prostitute['payment'] = func('prostitution_functions', 'exact_round', prostitute['payment'], 10)
  618. prostitute['payment_backup'] = func('prostitution_functions', 'exact_round', prostitute['payment_backup'], 10)
  619. end
  620. !!---------- Abortion --------------------------------------------------------------------------------------------
  621. if $ARGS[0] = 'abortion':
  622. abort += 1
  623. abortionbirthdate = daystart
  624. gs 'medical_din', 'remove_preg'
  625. knowpregloss = 2
  626. abortrand = rand(0, 10)
  627. if age > 18:
  628. if abortrand < 10:sterilewb += 1
  629. if abortrand = 10:sterilewb += 10
  630. else
  631. if abortrand < 7:sterilewb += 2
  632. if abortrand >= 7:sterilewb += 10
  633. end
  634. killvar 'abortrand'
  635. pcs_hydra += 20
  636. if broodcurse > 0: over = 13 & gt'gameover'
  637. end
  638. !!---------- Random Name -----------------------------------------------------------------------------------------
  639. if $ARGS[0] = 'random_name':
  640. $pro_boyname[1] = ''
  641. $pro_boyname[2] = ''
  642. :pro_rng_jump
  643. pro_temp = rand(0,23)
  644. if pro_temp = 0:
  645. $pro_temp = 'Abram'
  646. elseif pro_temp = 1:
  647. $pro_temp = 'Alexei'
  648. elseif pro_temp = 2:
  649. $pro_temp = 'Adrian'
  650. elseif pro_temp = 3:
  651. $pro_temp = 'Dima'
  652. elseif pro_temp = 4:
  653. $pro_temp = 'Dimitri'
  654. elseif pro_temp = 5:
  655. $pro_temp = 'Igor'
  656. elseif pro_temp = 6:
  657. $pro_temp = 'Leonid'
  658. elseif pro_temp = 7:
  659. $pro_temp = 'Petka'
  660. elseif pro_temp = 8:
  661. $pro_temp = 'Michail'
  662. elseif pro_temp = 9:
  663. $pro_temp = 'Vasily'
  664. elseif pro_temp = 10:
  665. $pro_temp = 'Oleg'
  666. elseif pro_temp = 11:
  667. $pro_temp = 'Olezka'
  668. elseif pro_temp = 12:
  669. $pro_temp = 'Pasha'
  670. elseif pro_temp = 13:
  671. $pro_temp = 'Pavel'
  672. elseif pro_temp = 14:
  673. $pro_temp = 'Sacha'
  674. elseif pro_temp = 15:
  675. $pro_temp = 'Slava'
  676. elseif pro_temp = 16:
  677. $pro_temp = 'Ruslan'
  678. elseif pro_temp = 17:
  679. $pro_temp = 'Taras'
  680. elseif pro_temp = 18:
  681. $pro_temp = 'Timofey'
  682. elseif pro_temp = 19:
  683. $pro_temp = 'Vanya'
  684. elseif pro_temp = 20:
  685. $pro_temp = 'Viktor'
  686. elseif pro_temp = 21:
  687. $pro_temp = 'Vladimir'
  688. elseif pro_temp = 22:
  689. $pro_temp = 'Yaromir'
  690. elseif pro_temp = 23:
  691. $pro_temp = 'Yevgeni'
  692. end
  693. if $pro_boyname[1] = '':
  694. $pro_boyname[1] = $pro_temp
  695. jump 'pro_rng_jump'
  696. elseif $pro_boyname[2] = '':
  697. $pro_boyname[2] = $pro_temp
  698. end
  699. if $pro_boyname[1] = $pro_boyname[2]:
  700. $pro_boyname[2] = ''
  701. jump 'pro_rng_jump'
  702. end
  703. killvar 'pro_temp'
  704. killvar '$pro_temp'
  705. end
  706. !!---------- Payment ---------------------------------------------------------------------------------------------
  707. if $ARGS[0] = 'tat_pierce_count':
  708. tattCount = 0
  709. if tatarm >= 1: tattCount += 1
  710. if tatass >= 1: tattCount += 1
  711. if tatback >= 1: tattCount += 1
  712. if tatblly >= 1: tattCount += 1
  713. if tatbrst >= 1: tattCount += 1
  714. if tatchst >= 1: tattCount += 1
  715. if tatfce >= 1: tattCount += 1
  716. if tatankle >= 1: tattCount += 1
  717. if tatleg >= 1: tattCount += 1
  718. if tatlip >= 1: tattCount += 1
  719. if tatneck >= 1: tattCount += 1
  720. if tatvag >= 1: tattCount += 1
  721. if tatlech >= 1: tattCount += 1
  722. if tatside >= 1: tattCount += 1
  723. if tatupb >= 1: tattCount += 1
  724. if tatunder >= 1: tattCount += 1
  725. if tatwrist >= 1: tattCount += 1
  726. if tathand >= 1: tattCount += 1
  727. pierWearCount = 0
  728. if pirsA > 0 and pirsA ! 10000: pierWearCount += 1
  729. if pirsB > 0 and pirsB ! 10000: pierWearCount += 1
  730. if pirsC > 0 and pirsC ! 10000: pierWearCount += 1
  731. if pirsD > 0 and pirsD ! 10000: pierWearCount += 1
  732. if pirsE > 0 and pirsE ! 10000: pierWearCount += 1
  733. if pirsF > 0 and pirsF ! 10000: pierWearCount += 1
  734. if pirsG > 0 and pirsG ! 10000: pierWearCount += 1
  735. if pirsN > 0 and pirsN ! 10000: pierWearCount += 1
  736. end
  737. !!---------- Random Name -----------------------------------------------------------------------------------------
  738. if $ARGS[0] = 'pav_client':
  739. !!Reset
  740. prostitute['pav_internal'] = 0
  741. gs 'prostitution_functions', 'std_cum_check'
  742. !!Regular
  743. if prostitute['pav_total'] < 10:
  744. prostitute['pav_chance'] = 0
  745. elseif prostitute['pav_total'] >= 10 and prostitute['pav_total'] <= 25:
  746. prostitute['pav_chance'] = 1
  747. elseif prostitute['pav_total'] > 25 and prostitute['pav_total'] <= 50:
  748. prostitute['pav_chance'] = 2
  749. elseif prostitute['pav_total'] > 50 and prostitute['pav_total'] <= 100:
  750. prostitute['pav_chance'] = 3
  751. elseif prostitute['pav_total'] > 100 and prostitute['pav_total'] <= 250:
  752. prostitute['pav_chance'] = 4
  753. end
  754. if ((prostitute['pav_chance'] = 1 and rand(1,100) > 95) or (prostitute['pav_chance'] = 2 and rand(1,100) > 90) or (prostitute['pav_chance'] = 3 and rand(1,100) > 80) or (prostitute['pav_chance'] = 4 and rand(1,100) > 60)) and (pro_rand ! 8 or (pro_rand = 8 and prostitute['pav_regular_s8'] = 1)):
  755. prostitute['pav_regular'] = 1
  756. !! elseif prostitute['pav_chance'] > 0 and rand(1,100) > 92:
  757. !! prostitute['pav_regular'] = -1
  758. else
  759. prostitute['pav_regular'] = 0
  760. end
  761. !!ToDo: Add cheat for this chance
  762. $prostitute['client_behavior'] = iif(rand(1,100) < prostitute['client_behavior_chance'] or prostitute['pav_regular'] = -1, 'nice', 'abusive')
  763. !!---- Scene --------------------------------------------------------------------------------------------------
  764. if pro_rand > 7:
  765. $prostitute['pav_scene'] = 'anal'
  766. elseif mesec = 0 and rand(0,100) < 50:
  767. $prostitute['pav_scene'] = 'pussy'
  768. else
  769. $prostitute['pav_scene'] = 'blowjob'
  770. end
  771. if pro_rand = 0 or pro_rand = 8 or pro_rand = 9 or ((pro_rand = 2 or pro_rand = 3 or (pro_rand = 5 and $prostitute['client_behavior'] = 'nice') or pro_rand = 6 or pro_rand = 7) and $prostitute['pav_scene'] = 'pussy'):
  772. $prostitute['pav_location'] = 'private'
  773. if pro_rand = 3 or pro_rand = 8: $prostitute['client_behavior'] = 'abusive'
  774. elseif pro_rand = 1 and $prostitute['pav_scene'] = 'pussy':
  775. $prostitute['pav_location'] = iif($prostitute['client_behavior'] = 'nice', 'private', 'public')
  776. elseif ((pro_rand = 2 or pro_rand = 3 or pro_rand = 6 or pro_rand = 7) and $prostitute['pav_scene'] = 'blowjob') or pro_rand = 4 or pro_rand = 5:
  777. $prostitute['pav_location'] = 'public'
  778. if pro_rand = 5: $prostitute['client_behavior'] = 'abusive'
  779. else
  780. gt 'prostitution_pavlovsk', 'rng'
  781. end
  782. if prostitute['pav_regular_s8'] = 1 and pro_rand = 8: prostitute['pav_regular'] = 1
  783. if (pro_rand = 3 or pro_rand = 8) and $prostitute['pav_scene'] = 'private' and prostitute['pav_regular'] = 1:
  784. prostitute['pav_condom_refusal'] = 1
  785. else
  786. prostitute['pav_condom_refusal'] = 0
  787. end
  788. !!---- Generator ----------------------------------------------------------------------------------------------
  789. gs 'npcgeneratec', 0, 'pavlovsk client', rand(18,45)
  790. gs 'boyStat', $npclastgenerated
  791. end
  792. !!---- Checking visible STD and cum -------------------------------------------------------------------------------
  793. if $ARGS[0] = 'std_cum_check':
  794. !!---- Visible STD --------------------------------------------------------------------------------------------
  795. if pcs_apprnc = -10 and rand(1,10) < 8:
  796. prostitute['std_mod'] = 1
  797. else
  798. prostitute['std_mod'] = 0
  799. end
  800. !!---- Non-Visible Cum ----------------------------------------------------------------------------------------
  801. if cumloc[0] = 1:
  802. prostitute['cum_vaginal_mod'] = 1
  803. else
  804. prostitute['cum_vaginal_mod'] = 0
  805. end
  806. if cumloc[3] = 1:
  807. prostitute['cum_anal_mod'] = 1
  808. else
  809. prostitute['cum_anal_mod'] = 0
  810. end
  811. !!---- Visible Cum (Dressed) ----------------------------------------------------------------------------------
  812. if cumloc[7] = 1 or cumloc[11] = 1 or cumloc[13] = 1 or cumloc[15] = 1:
  813. prostitute['cum_dressed'] = 1
  814. else
  815. prostitute['cum_dressed'] = 0
  816. end
  817. !!Visible Cum (Undressed)
  818. if cumloc[1] = 1 or cumloc[4] = 1 or cumloc[8] = 1 or cumloc[14] = 1 or cumloc[16] = 1:
  819. prostitute['cum_undressed'] = 1
  820. else
  821. prostitute['cum_undressed'] = 0
  822. end
  823. end
  824. !!---------- Exact Rounding --------------------------------------------------------------------------------------
  825. if $ARGS[0] = 'exact_round':
  826. !! ARGS[1] = value you want divided
  827. !! ARGS[2] = divider
  828. !! func('prostitution_functions','exact_round', number, divider)
  829. !! func('prostitution_functions','exact_round', 12345, 7)
  830. if ARGS[2] ! 0:
  831. round_number = ARGS[1]/ARGS[2]
  832. if (ARGS[2] mod 2 ! 0 and ARGS[1] mod ARGS[2] > ARGS[2]/2) or (ARGS[2] mod 2 = 0 and ARGS[1] mod ARGS[2] >= ARGS[2]/2): round_number += 1
  833. round_number = round_number * ARGS[2]
  834. result = round_number
  835. killvar 'round_number'
  836. else
  837. '<b>Developer Note: No division by 0. Please report this and some text from the mainscreen as a bug in the whore life thread.</b>'
  838. end
  839. end
  840. --- prostitution_functions ---------------------------------