prostitution_functions.qsrc 31 KB

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