Browse Source

Merge remote-tracking branch 'Anjuna/master'

Kevin_Smarts 2 weeks ago
parent
commit
06d235fcff

+ 1 - 2
glife.qproj

@@ -1342,8 +1342,7 @@
 		<Location name="rasputin_show_var"/>
 		<Location name="exhibitionistshop"/>
 		<Location name="kseniyaQW"/>
-		<Location name="parks"/>
-		<Location name="lug"/>
+		<Location name="pushkin_parks"/>
 		<Location name="dibodi"/>
 		<Location name="city_suburbs"/>
 		<Location name="din_pav"/>

+ 109 - 1
locations/SMStext_builder.qsrc

@@ -30,7 +30,7 @@
 !				So if you are used:
 !					gs 'SMStext_builder', 'add_reply', [$text], [$file_name], [$file_args0], [$file_args1].
 !				Then you would pass ARGS[2] (since you used $ARGS[0] and $ARGS[1]):
-!				gs 'SMStext_builder', 'add_sms', ARGS[2]
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
 !	
 !	Finally after the player has made a choice, everything but the replies are stored.
 !	If you want to reset the text (but not the end images), use gs 'SMStext_builder', 'reset'
@@ -39,6 +39,114 @@
 !		gs 'SMStext_builder', 'end'
 
 
+	!!=====================================================!!
+	!!                                                     !!
+	!!                      Examples                       !!
+	!!                                                     !!
+	!!=====================================================!!
+
+!	This example is in a non-existing file called "lukaqw". Here luka has npc code A6969
+
+!	if $ARGS[0] = 'SMS1':
+!		if $ARGS[1] = 'start':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'receive', '"hey Sveta", it''s Luka!'
+!				gs 'SMStext_builder', 'receive', '"how are you doing?"'
+!				gs 'SMStext_builder', 'add_reply', 'im good, you?', 'lukaqw', 'SMS1', '1'
+!				gs 'SMStext_builder', 'add_sms', 'A6969'
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = '1':
+!			!! The replies are removed, but the rest is not. We first send the reply text, wait, then 
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'im good, you?'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'could you send me a picture?'
+!				gs 'SMStext_builder', 'add_reply', 'sure!', 'lukaqw', 'SMS1', 'send_pic'
+!				gs 'SMStext_builder', 'add_reply', 'you first', 'lukaqw', 'SMS1', 'receive_pic'
+!				gs 'SMStext_builder', 'add_reply', 'no', 'lukaqw', 'SMS1', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'send_pic':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'sure!'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'better make it sexy :))!'
+!				gs 'SMStext_builder', 'send_selfie', 'c|u|n|b|sh|ft', 'lukaqw', 'SMS1', 'Selfie_send'
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'Selfie_send':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send_img', $ARGS[3]
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				$ARGS[5] is the state of dress:
+!				if $ARGS[5] = 'clothed':
+!					gs 'SMStext_builder', 'receive', 'disapointing, but better than nothin i sup'
+!				elseif $ARGS[5] = 'nude' or $ARGS[5] = 'pussyflash':
+!					gs 'SMStext_builder', 'receive', 'DAMN!'
+!				else
+!					gs 'SMStext_builder', 'receive', 'nice'
+!				end
+!			gs 'SMStext_builder', 'end'
+!		end
+!
+!		if $ARGS[1] = 'receive_pic':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'you first'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive_img', 'image/characters/pavlovsk/resident/luka/selfies/sexy3.jpg'
+!				gs 'SMStext_builder', 'receive', 'now you'
+!				gs 'SMStext_builder', 'add_reply', 'sure!', 'lukaqw', 'SMS1', 'send_pic'
+!				gs 'SMStext_builder', 'add_reply', 'no', 'lukaqw', 'SMS1', 'no2'
+!			gs 'SMStext_builder', end
+!		end
+!
+!		if $ARGS[1] = 'no':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'sad'
+!			gs 'SMStext_builder', end
+!		end
+!
+!		if $ARGS[1] = 'no2':
+!			gs 'SMStext_builder', 'start'
+!				gs 'SMStext_builder', 'send', 'no'
+!				gs 'SMStext_builder', 'show_sms', ARGS[2]
+!				wait 500
+!
+!				gs 'SMStext_builder', 'receive', 'what? but i send you mine?!'
+!				gs 'SMStext_builder', 'add_reply', 'get blackmailed noob', 'lukaqw', 'SMS1', 'blackmail'
+!				gs 'SMStext_builder', 'add_reply', 'that time of month, sorry', 'lukaqw', 'SMS1', 'excuses'
+!			gs 'SMStext_builder', end
+!		end
+!		...
+!		...
+!	end
+
+
+
+
+
+	!!=====================================================!!
+	!!                                                     !!
+	!!                        CODE                         !!
+	!!                                                     !!
+	!!=====================================================!!
 
 
 if $ARGS[0] = 'start':

+ 268 - 8
locations/blackmailer.qsrc

@@ -3,7 +3,7 @@
 if $ARGS[0] = 'init_check':
 	if blackmailQW['day'] ! 0: exit
 	if ($ARGS[2] = 'inside' or $ARGS[2] = 'indoors'):
-		if strpos($loc, 'church') < 0: exit
+		if strpos($loc, 'church') <= 0: exit
 	end
 
 
@@ -25,7 +25,7 @@ if $ARGS[0] = 'init_check':
 		temp_prob_chance -= 100
 	end
 
-	if rand(0, temp_prob_chance) >= 5: exit
+	if rand(0, temp_prob_chance) >= 5: killvar 'temp_prob_chance' & exit
 	killvar 'temp_prob_chance'
 
 	gs 'blackmailer', 'init_blackmail', $ARGS[1]
@@ -50,14 +50,16 @@ if $ARGS[0] = 'init_blackmail':
 	$blackmailQW['init_flashimage'] = $flash_image
 	$blackmailQW['init_flashloc'] = $loc
 	$blackmailQW['init_flashloc_arg'] = $loc_arg
+	$blackmailQW['init_flashregion'] = $region
+	blackmailQW['total_material'] = 1
 
-	if strpos($loc, 'park') > -1:
+	if strpos($loc, 'park') > 0:
 		$blackmailQW['init_flashloc_desc'] = 'in a park'
 		'A flash of light briefly brightens the surrounding trees and you see a shadow darting between the trees. The light of the camera flash prickling on your exposed skin.'
-	elseif strpos($loc, 'church') > -1:
-		$blackmailQW['init_flashloc_desc'] = 'in a park'
+	elseif strpos($loc, 'church') > 0:
+		$blackmailQW['init_flashloc_desc'] = 'in a church'
 		'The flash of a camera illuminates the inside of the church, but the source eludes you.'
-	elseif strpos($loc, 'zaprF') > -1:
+	elseif strpos($loc, 'zaprF') > 0:
 		$blackmailQW['init_flashloc_desc'] = 'while washing cars'
 		'You briefly think a car turned on their headlights, before you realise it was the flash of a camera, the source of which already gone.'
 	else
@@ -73,6 +75,34 @@ end
 
 
 
+	!!=============================================!!
+	!!                                             !!
+	!!                    CIKL                     !!
+	!!                                             !!
+	!!=============================================!!
+
+
+if $ARGS[0] = 'cikl':
+	if blackmailQW['stage'] = 3 and blackmailQW['smsday'] = 0:
+		blackmailQW['smsday'] = blackmailQW['dreamday'] + 3
+		gs 'telefon', 'Blackmailer', 'icon_na', 1
+		gs 'telefon', 'SetSMSSchedule', "", "0", "gs 'blackmailer', 'Add_SMS1'", "daystart > blackmailQW['smsday'] and (hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+	elseif daystart = blackmailQW['smsday'] and blackmailQW['next_payment'] > 0:
+		gs 'telefon', 'SetSMSSchedule', "", "0", "gs 'blackmailer', 'Add_SMS1_reminder'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+	elseif daystart > blackmailQW['smsday'] and blackmailQW['next_payment'] > 0:
+		gs 'telefon', 'SetSMSSchedule', "", "0", "gs 'blackmailer', 'Add_SMS_failure'", "(hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+
+	!Currently repeating content
+	elseif blackmailQW['stage'] = 5 and blackmailQW['smsday'] = 0:
+		blackmailQW['smsday'] = daystart + rand(0, 13) + 6
+		gs 'telefon', 'SetSMSSchedule', "", "0", "gs 'blackmailer', 'Add_SMS_repeat'", "daystart > blackmailQW['smsday'] and (hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+	end
+end
+
+
+
+
+
 	!!=============================================!!
 	!!                                             !!
 	!!                   DREAMS                    !!
@@ -99,7 +129,7 @@ end
 if $ARGS[0] = 'photo_dream1':
 	if blackmailQW['stage'] = 1: blackmailQW['stage'] = 2
 	blackmailQW['dreamday'] = daystart + 3
-	if strpos('panty_pantyrear_bra', $blackmailQW['init_flashaction']):
+	if strpos('panty_pantyrear_bra', $blackmailQW['init_flashaction']) > 0:
 		gs 'arousal', 'flashlite', -5
 	else
 		gs 'arousal', 'flash', -5
@@ -117,7 +147,12 @@ if $ARGS[0] = 'photo_dream1':
 	gs 'dream_events', 'event_end'
 
 elseif $ARGS[0] = 'photo_dream2':
-	if blackmailQW['stage'] = 2: blackmailQW['stage'] = 3
+	if blackmailQW['stage'] = 2:
+		blackmailQW['stage'] = 3
+		blackmailQW['smsday'] = daystart + 6
+		gs 'telefon', 'Blackmailer', 'icon_na', 1
+		gs 'telefon', 'SetSMSSchedule', "", "0", "gs 'blackmailer', 'Add_SMS1'", "daystart > blackmailQW['smsday'] and (hour >= 14 and hour <= 19 and rand(0, 100) = 0 or hour = 19 and minut >= 22 or hour = 20)"
+	end
 	blackmailQW['dreamday'] = daystart + 3
 	gs 'arousal', 'flash', -5
 	gs 'arousal', 'end'
@@ -215,4 +250,229 @@ end
 
 
 
+	!!=============================================!!
+	!!                                             !!
+	!!                     SMS                     !!
+	!!                                             !!
+	!!=============================================!!
+
+
+if $ARGS[0] = 'Add_SMS1':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+	blackmailQW['stage'] = 4
+	blackmailQW['smsday'] = daystart + 2
+	blackmailQW['next_payment'] = rand(50, 100) * 10
+
+	$SMSTree['0'] = '"Hello <<pcs_firstname>>!"'
+
+		if motherKnowWhore = 0 and npc_rel['A29'] > 0:
+			$SMSTree['1'] = '"If you don''t want your mother to see this image you will do exactly as I say"'
+		elseif $start_type['loc'] = 'sg' and gruptipe ! 5:
+			$SMSTree['1'] = '"If you don''t want your friends to see this image you will do exactly as I say"'
+		else
+			$SMSTree['1'] = '"If you don''t want the world to see this image you will do exactly as I say"'
+		end
+
+				$SMSTree['2'] = '"Leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, I know you know which one."'
+					$SMSTree['3'] = '"You have three days"'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['init_flashimage'] + '.jpg'
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'receive', $SMSTree['3']
+		gs 'SMStext_builder', 'send', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+if $ARGS[0] = 'Add_SMS1_reminder':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+
+	$SMSTree['0'] = '"Don''t forget, if you don''t leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, you will regret it"'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['init_flashimage'] + '.jpg'
+		gs 'SMStext_builder', 'send', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+if $ARGS[0] = 'Add_SMS_failure':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+	blackmailQW['stage'] = -1
+
+	$SMSTree['0'] = '"Guess you like it when people know you''re a whore."'
+		$SMSTree['1'] = '"or you didn''t think I''d go through with it"'
+			$SMSTree['2'] = '"we''ll see"'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+
+	if blackmailQW['stage'] < 5:
+		if blackmailQW['init_flashregion'] = 'city':
+			fame['city_sex'] += 2 * blackmailQW['total_material']
+		elseif blackmailQW['init_flashregion'] = 'gad':
+			fame['gad_sex'] += 10 * blackmailQW['total_material']
+		else
+			fame['pav_sex'] += 5 * blackmailQW['total_material']
+		end
+	end
+end
+
+
+if $ARGS[0] = 'Add_SMS_repeat':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+	blackmailQW['stage'] = blackmailQW['stage'] * 10 + 1
+	blackmailQW['smsday'] = daystart + 2
+	blackmailQW['next_payment'] = rand(50, 100) * 10
+
+	$SMSTree['0'] = '"You know what we want"'
+
+		if motherKnowWhore = 0 and npc_rel['A29'] > 0:
+			$SMSTree['1'] = '"If you don''t want your mother to see this image you will do exactly as I say"'
+		elseif $start_type['loc'] = 'sg' and gruptipe ! 5:
+			$SMSTree['1'] = '"If you don''t want your friends to see this image you will do exactly as I say"'
+		else
+			$SMSTree['1'] = '"If you don''t want the world to see this image you will do exactly as I say"'
+		end
+
+				$SMSTree['2'] = '"Leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, I know you know which one."'
+					$SMSTree['3'] = '"You have three days"'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['init_flashimage'] + '.jpg'
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'receive', $SMSTree['3']
+		gs 'SMStext_builder', 'send', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                    PARK                     !!
+	!!                                             !!
+	!!=============================================!!
+
+if $ARGS[0] = 'set_park_act':
+	if blackmailQW['next_payment'] > 0:
+		act 'Walk to the fourth bench to pay your blackmailer':
+			minut += 3
+			if blackmailQW['stage'] = 4:
+				gt 'blackmailer', 'park1'
+			else
+				gt 'blackmailer', 'park_repeat'
+			end
+		end
+	end
+end
+
+
+if $ARGS[0] = 'park1':
+	menu_off = 1
+	gs 'stat'
+
+	'<center><img src="images/locations/shared/park/bench_6.jpg"></center>'
+	'You spot the bench that your blackmailer is talking about, and take a seat at the edge of it.'
+
+	if money < blackmailQW['next_payment']:
+		act 'Hide the money (<font color="red"><<blackmailQW[''next_payment'']>> <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to do that.</font>'
+	else
+		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
+			*clr & cla
+			money -= blackmailQW['next_payment']
+			blackmailQW['total_payment'] += blackmailQW['next_payment']
+			blackmailQW['next_payment'] = 0
+			blackmailQW['stage'] = 5
+			blackmailQW['smsday'] = 0
+
+			minut += 1
+			gs 'stat'
+
+			act 'Quickly walk away': gt $loc, $loc_arg
+		end
+	end
+
+	act 'Walk away': gt $loc, $loc_arg
+end
+
+
+
+
+	!!=============================================!!
+	!!                                             !!
+	!!                  REPEATING                  !!
+	!!                                             !!
+	!!=============================================!!
+
+if $ARGS[0] = 'Add_SMS_repeat':
+	gs 'telefon', 'ClearSMSSchedule', 'Blackmailer'
+	blackmailQW['smsday'] = daystart + 2
+	blackmailQW['next_payment'] = rand(50, 100) * 10
+
+	$SMSTree['0'] = '"You know what we want"'
+
+		if motherKnowWhore = 0 and npc_rel['A29'] > 0:
+			$SMSTree['1'] = '"If you don''t want your mother to see this image you will do exactly as I say"'
+		elseif $start_type['loc'] = 'sg' and gruptipe ! 5:
+			$SMSTree['1'] = '"If you don''t want your friends to see this image you will do exactly as I say"'
+		else
+			$SMSTree['1'] = '"If you don''t want the world to see this image you will do exactly as I say"'
+		end
+
+				$SMSTree['2'] = '"Leave <<blackmailQW[''next_payment'']>> <b>₽</b> beneath the fourth park bench, I know you know which one."'
+					$SMSTree['3'] = '"You have three days"'
+
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMSText_builder', 'receive_img', $blackmailQW['init_flashimage'] + '.jpg'
+		gs 'SMStext_builder', 'receive', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'receive', $SMSTree['3']
+		gs 'SMStext_builder', 'send', 'Blackmailer'
+	gs 'SMStext_builder', 'end'
+	killvar '$SMSTree'
+end
+
+
+if $ARGS[0] = 'park_repeat':
+	menu_off = 1
+	gs 'stat'
+
+	'<center><img src="images/locations/shared/park/bench_6.jpg"></center>'
+	'You walk to the familiar bench and take a seat at the edge of it.'
+
+	if money < blackmailQW['next_payment']:
+		act 'Hide the money (<font color="red"><<blackmailQW[''next_payment'']>> <b>₽</b></font>)': '<br><font color="red">You don''t have enough money to do that.</font>'
+	else
+		act 'Hide the money (<<blackmailQW[''next_payment'']>> <b>₽</b>)':
+			*clr & cla
+			money -= blackmailQW['next_payment']
+			blackmailQW['total_payment'] += blackmailQW['next_payment']
+			blackmailQW['next_payment'] = 0
+
+			minut += 1
+			gs 'stat'
+
+			act 'Quickly walk away': gt $loc, $loc_arg
+		end
+	end
+
+	act 'Walk away': gt $loc, $loc_arg
+end
+
+
+
+
 --- blackmailer ---------------------------------

+ 3 - 0
locations/cikl.qsrc

@@ -1320,5 +1320,8 @@ if arrsize('policeQW_courthearing_dates') > 1:
 	gs 'shortgs', 'coupled_array_sort', 'policeQW_courthearing_dates', '$policeQW_courthearing_subjects'
 end
 
+if blackmailQW['stage'] > 0: gs 'blackmailer', 'cikl'
+
+
 --- cikl ---------------------------------
 

+ 3 - 5
locations/city_park.qsrc

@@ -4,12 +4,8 @@ $location_type = 'public_outdoors'
 
 if $ARGS[0] = 'start':
 	CLOSE ALL
-
-	$loc_arg = 'start'
-	$loc = 'city_park'
+	gs 'shortgs', 'setloc', 'city_park', 'start'
 	$region = 'city'
-	$menu_loc = 'city_park'
-	$menu_arg = 'start'
 	$locclass = 'city_park'
 	menu_off = 0
 	if sound = 0:
@@ -250,6 +246,8 @@ if $ARGS[0] = 'start':
 			act 'Continue': gt 'city_park', 'start'
 		end
 	end
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 if $ARGS[0] = 'luna':

+ 2 - 2
locations/din_pav.qsrc

@@ -7,8 +7,8 @@ $pavserjil = {
 	
 	set pavserhom = 1
 	'<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil2.jpg" ></center>'
-    'It is not clear why you you are drawn to him, but you can barely take you eyes off him.'
-	act 'Overnutsya':gt'lug', 'start'
+	'It is not clear why you you are drawn to him, but you can barely take you eyes off him.'
+	act 'Overnutsya': gt 'pushkin_parks', 'lug'
 }
 
 $koncepodos = {

+ 14 - 25
locations/gadforest.qsrc

@@ -3,23 +3,18 @@
 
 if $ARGS[0] = 'forest_edge':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_edge'
+	$region = 'gad'
+	$location_type = 'secluded'
+	$forest_args1 = 'forest_edge'
 
 	! force Mira to stay here if Sveta brought Mira here by choice - temporarily overrides Miras schedule to not annoy the player
 	Mira_Stay = iif($loc ! 'Miroslava', 1 , 0)
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_edge')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_edge'
-	$region = 'gad'
-	$location_type = 'secluded'
-	
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_edge'
 	menu_off = 0
 
-	$forest_args1 = 'forest_edge'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'
@@ -342,23 +337,21 @@ if $ARGS[0] = 'forest_edge':
 
 	gs 'gadforest', 'picking'
 	gs 'camera', 'check_location'
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 if $ARGS[0] = 'forest_outskirts':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_outskirts'
+	$location_type = 'secluded'
+	$region = 'gad_forest'
+	$forest_args1 = 'forest_outskirts'
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_outskirts')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_outskirts'
-	$location_type = 'secluded'
-	$region = 'gad_forest'
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_outskirts'
 	menu_off = 0
 
-	$forest_args1 = 'forest_outskirts'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'
@@ -426,19 +419,15 @@ end
 
 if $ARGS[0] = 'forest_center':
 	*clr & cla
+	gs 'shortgs', 'setloc', 'gadforest', 'forest_center'
+	$region = 'gad_forest'
+	$location_type = 'secluded'
+	$forest_args1 = 'forest_center'
 
 	clothesAtLocation = FUNC('lost_clothes_here','forest_center')
 
-	$loc = 'gadforest'
-	$loc_arg = 'forest_center'
-	$region = 'gad_forest'
-	$location_type = 'secluded'
-	$menu_loc = 'gadforest'
-	$menu_arg = 'forest_center'
 	menu_off = 0
 
-	$forest_args1 = 'forest_center'
-
 	CLOSE ALL
 	gs 'gadukino_event', 'sound'
 	gs 'stat'

+ 27 - 0
locations/journal_quests.qsrc

@@ -528,6 +528,33 @@ if $ARGS[0] = 'start':
 			end
 		end
 	end
+	if pcs_inhib >= 35:
+		'<center><h3>Blackmailer</h3></center>'
+		if blackmailQW['stage'] = 0:
+			'It would be rather unfortunate if somebody caught you while you were flashing.'
+			'<it>There is a small, small, chance of getting caught while flashing in a park, in a church, and while washing cards.</it>'
+		elseif blackmailQW['stage'] < 0:
+			'You have refused the blackmailer once too many times.'
+		elseif blackmailQW['stage'] > 0 and blackmailQW['stage'] <= 3:
+			'You got caught while flashing! Who knows what could happen in the future?'
+		elseif blackmailQW['stage'] >= 4:
+			if blackmailQW['next_payment'] = 0:
+				'You have paid your blackmailer, but how long will that keep them quiet?'
+			else
+				'Your blackmailer has demanded you to leave <<blackmailQW[''next_payment'']>> <b>₽</b> in the nearest park.'
+				if daystart < blackmailQW['smsday'] - 1:
+					'You have <<blackmailQW[''smsday''] - daystart>> days left'
+				elseif daystart = blackmailQW['smsday'] - 1:
+					'You have until tomorrow.'
+				elseif daystart = blackmailQW['smsday']:
+					'You have until tonight!'
+				else
+					'You were too late!!'
+				end
+				'<it>You can leave the cash in the city, pav, and pushkin parks, and the gadukino forest.</it>'
+			end
+		end
+	end
 end
 
 if yearstart > 1 and university['enrolled_in_semester'] > university['semester_passed']:

+ 2 - 2
locations/parkM.qsrc

@@ -152,7 +152,7 @@ if $ARGS[0] = 'sexrand3':
 		if $home['town'] = 'pavlovsk':
 			gt 'pav_park', 'start'
 		elseif $home['town'] = 'oldtown':
-			gt 'parks', 'start'
+			gt 'pushkin_parks', 'start'
 		else
 			gt 'city_park', 'start'
 		end
@@ -174,7 +174,7 @@ if $ARGS[0] = 'sexrand4':
 		if $home['town'] = 'pavlovsk':
 			gt 'pav_park', 'start'
 		elseif $home['town'] = 'oldtown':
-			gt 'parks', 'start'
+			gt 'pushkin_parks', 'start'
 		else
 			gt 'city_park', 'start'
 		end

+ 0 - 80
locations/parks.qsrc

@@ -1,80 +0,0 @@
-# parks
-!!2021/05/12
-
-if $ARGS[0] = 'start':
-	*clr & cla
-	$location_type = 'public_outdoors'
-	$loc_arg = 'start'
-	$loc = 'parks'
-	$menu_loc = 'parks'
-	$menu_arg = 'start'
-	$locclass = 'city_park'
-	menu_off = 0
-	gs'stat'
-	'<center><B>Pushkin Town Park</B></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/parkus.jpg" ></center>'
-	'The gardens of the old palace have been sculpted over many years into a wonder landscape with a tranquil atmosphere.'
-	'The Pushkin Park is a must-see for tourists and servers as the main attraction of Pushkin.'
-
-	'Wander deeper into the <a href="exec:gt ''lug'',''start''">park</a>.'
-
-
-	act 'Go to Okhlopkov Square (0:05)': minut += 5 &  gt 'pushkin_sq'
-
-	act 'Go to Town Center (0:10)': minut += 10 & gt 'pushkin'
-
-	act 'Walk around the park (1 hour)':
-		if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1', 1
-		cla
-		minut += 60
-		pcs_mood += 10
-		gs'stat'
-		'You leisurely stroll through Pushkin Park, breathing in the fresh air, and reflecting on the vicissitudes of fate.'
-
-		act 'Complete outing.':gt 'parks','start'
-	end
-
-	gs 'park_walkevents', 'run'
-
-	if hour >= 20 or hour < 6 :
-		if func('homes_properties', 'has_access', 'old_town_apartment') = 0 :
-			!nowhere to live in town
-			'It''s quite dark now, and you have no where to stay nearby. Maybe you should try to sleep on a bench?'
-		else
-			'It''s quite dark now, and you don''t feel like walking. Maybe you should try sleeping on a bench?'
-		end
-		act 'Sleep on a bench': gt'placer_sex','sleeping_park_bench'
-	end
-
-	act 'Sit down on the bench':gs 'placer_sex', 'sitting_park_bench'
-	
-	if mc_inventory['joints'] > 0 and drugVars['weed_high'] = 0: act 'Smoke a joint': minut += 10 & gs 'drugs', 'joint' & gt $loc, $loc_arg
-
-	if pcs_inhib >= 35 or exhibitionist_lvl > 0:
-		act 'Flash your tits':
-			menu_off = 1
-			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
-			*clr & cla
-			inhib_exp += rand(1,3)
-			gs 'flash', 'tits', 'outdoors', 5
-			gs 'stat'
-
-			act 'Continue': gt 'parks', 'start'
-		end
-	end
-
-	if exhibitionist_lvl > 1:
-		act 'Flash your pussy':
-			menu_off = 1
-			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
-			*clr & cla
-			gs 'flash', 'pussy', 'outdoors', 5
-			gs 'stat'
-
-			act 'Continue': gt 'parks', 'start'
-		end
-	end
-end
-
---- parks ---------------------------------
-

+ 3 - 4
locations/pav_park.qsrc

@@ -34,12 +34,9 @@ end
 
 if $ARGS[0] = 'start':
 	*clr & cla
-	$loc = 'pav_park'
+	gs 'shortgs', 'setloc', 'pav_park', 'start'
 	$region = 'pav'
-	$loc_arg = 'start'
 	$location_type = 'public_outdoors'
-	$menu_loc = 'pav_park'
-	$menu_arg = 'start'
 	$locclass = 'city_park'
 	menu_off = 0
 	gs 'stat'
@@ -312,6 +309,8 @@ if $ARGS[0] = 'start':
 	gs 'prostitution_functions', 'check_solicitation_event'
 
 	gs 'camera', 'check_location'
+
+	gs 'blackmailer', 'set_park_act'
 end
 
 ! Albina Starlets events.

+ 127 - 50
locations/lug.qsrc → locations/pushkin_parks.qsrc

@@ -1,11 +1,85 @@
-# lug
-!!2021/04/15
+# pushkin_parks
+!!2021/05/12
+
 if $ARGS[0] = 'start':
-	$loc_arg = 'start'
-	$loc = 'lug'
+	*clr & cla
 	$location_type = 'public_outdoors'
-	$menu_loc = 'lug'
-	$menu_arg = 'start'
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'start'
+	$region = 'pushkin'
+	$locclass = 'city_park'
+	menu_off = 0
+	gs'stat'
+	'<center><B>Pushkin Town Park</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/parkus.jpg" ></center>'
+	'The gardens of the old palace have been sculpted over many years into a wonder landscape with a tranquil atmosphere.'
+	'The Pushkin Park is a must-see for tourists and servers as the main attraction of Pushkin.'
+
+	'Wander deeper into the <a href="exec:gt ''pushkin_parks'', ''lug''">park</a>.'
+
+
+	act 'Go to Okhlopkov Square (0:05)': minut += 5 & gt 'pushkin_sq'
+
+	act 'Go to Town Center (0:10)': minut += 10 & gt 'pushkin'
+
+	act 'Walk around the park (1 hour)':
+		if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1', 1
+		cla
+		minut += 60
+		pcs_mood += 10
+		gs'stat'
+		'You leisurely stroll through Pushkin Park, breathing in the fresh air, and reflecting on the vicissitudes of fate.'
+
+		act 'Complete outing.':gt 'pushkin_parks','start'
+	end
+
+	gs 'park_walkevents', 'run'
+
+	if hour >= 20 or hour < 6 :
+		if func('homes_properties', 'has_access', 'old_town_apartment') = 0 :
+			!nowhere to live in town
+			'It''s quite dark now, and you have no where to stay nearby. Maybe you should try to sleep on a bench?'
+		else
+			'It''s quite dark now, and you don''t feel like walking. Maybe you should try sleeping on a bench?'
+		end
+		act 'Sleep on a bench': gt'placer_sex','sleeping_park_bench'
+	end
+
+	act 'Sit down on the bench':gs 'placer_sex', 'sitting_park_bench'
+	
+	if mc_inventory['joints'] > 0 and drugVars['weed_high'] = 0: act 'Smoke a joint': minut += 10 & gs 'drugs', 'joint' & gt $loc, $loc_arg
+
+	if pcs_inhib >= 35 or exhibitionist_lvl > 0:
+		act 'Flash your tits':
+			menu_off = 1
+			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
+			*clr & cla
+			inhib_exp += rand(1,3)
+			gs 'flash', 'tits', 'outdoors', 5
+			gs 'stat'
+
+			act 'Continue': gt 'pushkin_parks', 'start'
+		end
+	end
+
+	if exhibitionist_lvl > 1:
+		act 'Flash your pussy':
+			menu_off = 1
+			if pcs_exhib = 100 and exhibitionQW = 0: gt 'kseniyaQW', 'event1'
+			*clr & cla
+			gs 'flash', 'pussy', 'outdoors', 5
+			gs 'stat'
+
+			act 'Continue': gt 'pushkin_parks', 'start'
+		end
+	end
+
+	gs 'blackmailer', 'set_park_act'
+end
+
+if $ARGS[0] = 'lug':
+	$location_type = 'public_outdoors'
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'lug'
+	$region = 'pushkin'
 	$locclass = 'city_park'
 	menu_off = 0
 	gs'stat'
@@ -22,10 +96,10 @@ if $ARGS[0] = 'start':
 
 			act 'Tell him your number':
 				cla
-				gs'boyfrend', 'start'
+				gs 'boyfrend', 'start'
 				stopboy = 0
 				'<<$boydesc>> thanks you and leaves.'
-				act 'Complete outing':gt'lug', 'start'
+				act 'Complete outing': gt 'pushkin_parks', 'lug'
 			end
 		end
 
@@ -51,7 +125,7 @@ if $ARGS[0] = 'start':
 			gs 'flash', 'tits', 'outdoors', 5
 			gs 'stat'
 
-			act 'Continue': gt 'lug', 'start'
+			act 'Continue': gt 'pushkin_parks', 'lug'
 		end
 	end
 
@@ -62,18 +136,18 @@ if $ARGS[0] = 'start':
 			gs 'flash', 'pussy', 'outdoors', 5
 			gs 'stat'
 
-			act 'Continue': gt 'lug', 'start'
+			act 'Continue': gt 'pushkin_parks', 'lug'
 		end
 	end
 
 	act 'Visit the pond':
 		set minut += 10
-		gt 'lug', 'prut'
+		gt 'pushkin_parks', 'prut'
 	end
 
 	act 'Go toward the park entrance':
 		set minut += 5
-		gt 'parks', 'start'
+		gt 'pushkin_parks', 'start'
 	end
 	
 	gs 'events', 'street_cum'
@@ -81,45 +155,48 @@ end
 
 
 if $ARGS[0] = 'prut':
-    cls
-    gs'stat'
-    $location_type = 'public_outdoors'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'prut'
+	gs 'stat'
+	$location_type = 'public_outdoors'
 
-    '<center><B>Park Pond</B></center>'
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut.jpg" ></center>'
+	'<center><B>Park Pond</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut.jpg" ></center>'
 	'A large and pretty pond near the end of the park, it continues off in to a wooded area.'
 
 
-    act 'Explore the wooded area':
-        set minut += 10
-        gt 'lug', 'prut2'
-    end
+	act 'Explore the wooded area':
+		set minut += 10
+		gt 'pushkin_parks', 'prut2'
+	end
 
-    act 'Return to the small meadow':
-        set minut += 10
-        gt'lug', 'start'
-    end
+	act 'Return to the small meadow':
+		set minut += 10
+		gt'pushkin_parks', 'start'
+	end
 end
 
 if $ARGS[0] = 'prut2':
-    cls
-    gs'stat'
-    $location_type = 'public_outdoors'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'prut2'
+	$region = 'pushkin'
+	gs 'stat'
+	$location_type = 'public_outdoors'
 
-    '<center><B>Woodland Pond</B></center>'
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut2.jpg" ></center>'
+	'<center><B>Woodland Pond</B></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/prut2.jpg" ></center>'
 	'The pond is still and beautiful here and the trees offer some privacy, it feels quite magical.'
 	'There is a large field beyond that is hidden from the tourist trail.'
 
-    act 'Go to the field':
-        set minut += 15
-        gt 'lug', 'luzhayka'
-    end
+	act 'Go to the field':
+		set minut += 15
+		gt 'pushkin_parks', 'luzhayka'
+	end
 
-    act 'Follow the pond back out of the woods':
-        set minut += 10
-        gt 'lug', 'prut'
-    end
+	act 'Follow the pond back out of the woods':
+		set minut += 10
+		gt 'pushkin_parks', 'prut'
+	end
 
 	! Setup for teleport circle
 	if tpKnown['PushkinPark'] = 1:
@@ -140,8 +217,7 @@ if $ARGS[0] = 'prut2':
 	if temper >= 15 and month >= 5 and month <= 9 and hour >= 6 and hour <= 20:
 		if pcs_inhib > 30:
 			act 'Strip off and skinny dip (1:00)':
-				cla
-				*clr
+				*clr & cla
 				cumspclnt = 4
 				gs 'cum_cleanup'
 				minut += 60
@@ -156,7 +232,7 @@ if $ARGS[0] = 'prut2':
 					'Once you are naked you play around and have fun in the pond, enjoying the feel of the warm water on your body. The clean pond water refreshes and invigorates you.'
 				elseif pcs_inhib >= 60:
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/secluded_beach/dress/undressnudebeach.jpg"></center>'
-					'Not caring if anyone is looking at you, you slowly take off your clothes.  You peel off each item like a stripper. Soon, you are completely naked.'
+					'Not caring if anyone is looking at you, you slowly take off your clothes. You peel off each item like a stripper. Soon, you are completely naked.'
 					'You play around and have fun in the pond, enjoying the feel of the warm water on your naked body. The clean pond water refreshes and invigorates you.'
 				else
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/lake/secluded_beach/dress/undressnudebeach.jpg"></center>'
@@ -166,7 +242,7 @@ if $ARGS[0] = 'prut2':
 				act'Get out and dressed':
 					gs 'underwear', 'wear'
 					gs 'clothing', 'wear_last_worn'
-					gt 'lug', 'prut2'
+					gt 'pushkin_parks', 'prut2'
 				end
 			end
 		else
@@ -176,17 +252,18 @@ if $ARGS[0] = 'prut2':
 end
 
 if $ARGS[0] = 'luzhayka':
-    cls
-    gs'stat'
+	cls
+	gs 'shortgs', 'setloc', 'pushkin_parks', 'luzhayka'
+	gs'stat'
 
-    '<center><img <<$set_imgh>> src="images/locations/pushkin/park/luzhayka.jpg" ></center>'
+	'<center><img <<$set_imgh>> src="images/locations/pushkin/park/luzhayka.jpg" ></center>'
 	'A quiet hidden field that is well maintained but apart from the occasional grounds keeper you feel like it is all yours.'
 
-    act 'Return to the woodland pond':
-        set minut += 15
-        gt 'lug', 'prut2'
-    end
+	act 'Return to the woodland pond':
+		set minut += 15
+		gt 'pushkin_parks', 'prut2'
+	end
 end
 
---- lug ---------------------------------
+--- pushkin_parks ---------------------------------
 

+ 1 - 1
locations/pushkin_sq.qsrc

@@ -13,7 +13,7 @@ gs'stat'
 'There are many small cafes and shops also a flourishing nightlife and entertainment activities.'
 
 'Another street runs straight back to the <a href="exec:minut += 5 & gt ''pushkin''">Pushkin Town Center</a>.'
-'Okhlopkov Square itself leads to the <a href="exec:minut += 5 & gt ''parks'',''start''">Pushkin Park</a>.'
+'Okhlopkov Square itself leads to the <a href="exec:minut += 5 & gt ''pushkin_parks'',''start''">Pushkin Park</a>.'
 if hour >= 8 and hour <= 20:
 	'A small <a href="exec:gt ''larek'',''start''">grocery store</a> is currently open.'
 else

+ 23 - 3
locations/saveupdater.qsrc

@@ -2829,10 +2829,10 @@ if temp_current_save_version < 00090300:
 	!! Telephone call migration to their correct event locations
 	if arrpos('$contact', 'A108') > -1:
 		temp_pos = arrpos('$contact', 'A108')
-		if strpos($contactICode[temp_pos], 'telefon') > -1:
+		if strpos($contactICode[temp_pos], 'telefon') > 0:
 			$contactICode[temp_pos] = replace($contactICode[temp_pos], "'telefon', 'vladimir'", "'vladimirQW_loc', 'telephone_call'")
 		end
-		if strpos($contactISche[temp_pos], 'vladimirday') > -1:
+		if strpos($contactISche[temp_pos], 'vladimirday') > 0:
 			$contactISche[temp_pos] = replace($contactISche[temp_pos], "vladimirday", "vladimirQW['day']")
 		end
 		killvar 'temp_pos'
@@ -2840,7 +2840,7 @@ if temp_current_save_version < 00090300:
 
 	if arrpos('$contact', 'A192') > -1:
 		temp_pos = arrpos('$contact', 'A192')
-		if strpos($contactOCode[temp_pos], 'telefon') > -1:
+		if strpos($contactOCode[temp_pos], 'telefon') > 0:
 			$contactOCode[temp_pos] = replace($contactOCode[temp_pos], 'telefon', 'nastja')
 		end
 		killvar 'temp_pos'
@@ -2860,6 +2860,26 @@ if temp_current_save_version < 00090300:
 		killvar 'temp_maxi'
 		killvar 'temp_i'
 	end
+
+
+	!! region added to the blackmailer array:
+	if $blackmailQW['init_flashloc'] ! '' and $blackmailQW['init_flashregion'] = '':
+		if strpos($blackmailQW['init_flashloc'], 'city') > 0:
+			$blackmailQW['init_flashregion'] = 'city'
+		elseif strpos($blackmailQW['init_flashloc'], 'pav') > 0:
+			$blackmailQW['init_flashregion'] = 'pav'
+		elseif strpos($blackmailQW['init_flashloc'], 'gad') > 0:
+			$blackmailQW['init_flashregion'] = 'gad'
+		elseif strpos($blackmailQW['init_flashloc'], 'pushkin') > 0:
+			$blackmailQW['init_flashregion'] = 'pushkin'
+		elseif $start_type['loc'] = 'city':
+			$blackmailQW['init_flashregion'] = 'city'
+		else
+			$blackmailQW['init_flashregion'] = 'pav'
+		end
+
+		blackmailQW['total_material'] = 1
+	end
 end
 
 

+ 1 - 1
locations/succubus.qsrc

@@ -1042,7 +1042,7 @@ if $args[0] = 'sucwalkinggo':
 		elseif sucslpzone = 4:
 			if sctemp = 1: $sucgoloc = 'pushkin' & $sucgometka = ''
 			if sctemp = 2: $sucgoloc = 'pushkin_sq' & $sucgometka = ''
-			if sctemp = 3: $sucgoloc = 'parks' & $sucgometka = ''
+			if sctemp = 3: $sucgoloc = 'pushkin_parks' & $sucgometka = ''
 			if sctemp = 4: $sucgoloc = 'pav_market' & $sucgometka = ''
 			if sctemp = 5: $sucgoloc = 'city_industrial' & $sucgometka = ''
 		elseif sucslpzone = 5:

+ 1 - 1
locations/treeCircle.qsrc

@@ -29,7 +29,7 @@ $treeCircLoc['GadForest'] = 'gadforest'
 $treeCircArg['GadForest'] = 'forest_edge'
 !Pushkin Park Location
 $treeCircName['PushkinPark'] = 'Pushkin Park'
-$treeCircLoc['PushkinPark'] = 'lug'
+$treeCircLoc['PushkinPark'] = 'pushkin_parks'
 $treeCircArg['PushkinPark'] = 'prut2'
 !Communal Village Spring Location
 $treeCircName['Village'] = 'Communal Village Spring'