Browse Source

Merge remote-tracking branch 'origin/master'

Kevin_Smarts 2 years ago
parent
commit
e522cfd2a9
100 changed files with 744 additions and 606 deletions
  1. 1 0
      glife.qproj
  2. 1 1
      locations/BMloc.qsrc
  3. 2 2
      locations/FedorEv2.qsrc
  4. 4 4
      locations/FedorMisc.qsrc
  5. 2 2
      locations/Gnpc2.qsrc
  6. 1 1
      locations/JuliaMilHome.qsrc
  7. 1 1
      locations/KatjaHomeTalk.qsrc
  8. 2 2
      locations/Katlake.qsrc
  9. 4 4
      locations/Komp.qsrc
  10. 2 2
      locations/MartinSex.qsrc
  11. 2 2
      locations/MartinTalk.qsrc
  12. 1 1
      locations/Military.qsrc
  13. 1 1
      locations/NikoDates.qsrc
  14. 1 1
      locations/NikoEv.qsrc
  15. 3 3
      locations/Nudelake.qsrc
  16. 1 1
      locations/Vika.qsrc
  17. 4 4
      locations/WorkHosp.qsrc
  18. 1 1
      locations/act_minor1.qsrc
  19. 6 6
      locations/albina_house_events.qsrc
  20. 2 2
      locations/albina_starlets.qsrc
  21. 10 10
      locations/albinahome.qsrc
  22. 24 24
      locations/alexandriaEv.qsrc
  23. 4 4
      locations/anushapt.qsrc
  24. 4 4
      locations/anushaptbr.qsrc
  25. 10 10
      locations/anushkachat.qsrc
  26. 2 2
      locations/artem_events.qsrc
  27. 1 1
      locations/artemhome.qsrc
  28. 1 1
      locations/bass.qsrc
  29. 30 30
      locations/bbgamein.qsrc
  30. 37 37
      locations/bbgameout.qsrc
  31. 5 0
      locations/bed2.qsrc
  32. 1 1
      locations/bedrPar.qsrc
  33. 14 14
      locations/bicycle.qsrc
  34. 2 2
      locations/billiard.qsrc
  35. 2 2
      locations/brother.qsrc
  36. 4 4
      locations/buklinik_event.qsrc
  37. 19 19
      locations/camera.qsrc
  38. 4 4
      locations/castSpell.qsrc
  39. 2 2
      locations/chessplay.qsrc
  40. 1 1
      locations/city_church.qsrc
  41. 1 1
      locations/city_house_res_misc.qsrc
  42. 2 2
      locations/city_kafe.qsrc
  43. 1 1
      locations/city_kafeevents2.qsrc
  44. 1 1
      locations/city_library.qsrc
  45. 3 3
      locations/city_mansion_residence_2.qsrc
  46. 1 1
      locations/city_mansion_residence_3.qsrc
  47. 2 2
      locations/city_nightclub.qsrc
  48. 2 2
      locations/city_park.qsrc
  49. 2 2
      locations/djibril.qsrc
  50. 2 2
      locations/djibrilev1.qsrc
  51. 4 4
      locations/dk.qsrc
  52. 1 1
      locations/dom_gor.qsrc
  53. 4 4
      locations/etoexhib.qsrc
  54. 1 1
      locations/eugeneev1.qsrc
  55. 7 7
      locations/events.qsrc
  56. 22 0
      locations/exp_gain.qsrc
  57. 3 3
      locations/fame.qsrc
  58. 1 1
      locations/father.qsrc
  59. 23 23
      locations/fbgameout.qsrc
  60. 16 16
      locations/foto_events.qsrc
  61. 3 3
      locations/foto_events2.qsrc
  62. 1 1
      locations/foto_model_documentary.qsrc
  63. 3 3
      locations/foto_models2.qsrc
  64. 16 16
      locations/foto_practice.qsrc
  65. 18 18
      locations/foto_shoot.qsrc
  66. 1 1
      locations/gad_church.qsrc
  67. 2 2
      locations/gaddvor.qsrc
  68. 13 13
      locations/gadfield.qsrc
  69. 1 1
      locations/gadforest.qsrc
  70. 15 15
      locations/gadforestlost.qsrc
  71. 10 10
      locations/gadgarden.qsrc
  72. 1 1
      locations/gadhouse.qsrc
  73. 6 6
      locations/gadriver.qsrc
  74. 1 1
      locations/gadroad.qsrc
  75. 14 14
      locations/gadsarai.qsrc
  76. 1 1
      locations/garfather.qsrc
  77. 123 13
      locations/grades.qsrc
  78. 1 1
      locations/grandpahelp.qsrc
  79. 6 6
      locations/gschool_gopnik_chats.qsrc
  80. 2 2
      locations/gschool_grounds.qsrc
  81. 8 8
      locations/gschool_jock_chats.qsrc
  82. 9 9
      locations/gschool_lessons1.qsrc
  83. 29 29
      locations/gschool_lessons2.qsrc
  84. 17 17
      locations/gschool_lessons3.qsrc
  85. 15 15
      locations/gschool_lessons4.qsrc
  86. 30 30
      locations/gschool_lessonsev1.qsrc
  87. 25 25
      locations/gschool_lessonsev2.qsrc
  88. 22 22
      locations/gschool_lessonsev3.qsrc
  89. 2 2
      locations/gschool_nerd_chats.qsrc
  90. 3 3
      locations/gschool_outcast_chats.qsrc
  91. 1 1
      locations/gschool_socialchg1.qsrc
  92. 1 1
      locations/hunterLoveSex.qsrc
  93. 4 4
      locations/hunters.qsrc
  94. 1 1
      locations/ilyroom.qsrc
  95. 9 9
      locations/katjaEv.qsrc
  96. 6 6
      locations/katja_lake.qsrc
  97. 1 1
      locations/kinoM.qsrc
  98. 1 1
      locations/kotovSex.qsrc
  99. 1 1
      locations/kotovtalker.qsrc
  100. 3 3
      locations/kruchess.qsrc

+ 1 - 0
glife.qproj

@@ -39,6 +39,7 @@
 		<Location name="stat_display"/>
 		<Location name="stat_sklattrib"/>
 		<Location name="stat_sklattrib_lvlset"/>
+		<Location name="exp_gain"/>
 		<Location name="fame"/>
 		<Location name="traits"/>
 		<Location name="din_bad"/>

+ 1 - 1
locations/BMloc.qsrc

@@ -35,7 +35,7 @@ act 'Dance':
 	gs 'willpower', 'drink', 'resist'
 	if will_cost <= pcs_willpwr:
 		act 'Refuse (<<will_cost>> Willpower)':
-			sprt_exp += rand(0,1)
+			gs 'exp_gain', 'sprt', rand(0,1)
 			gs 'willpower', 'drink', 'resist'
 			gs 'willpower', 'pay'
 			gs 'stat'

+ 2 - 2
locations/FedorEv2.qsrc

@@ -827,7 +827,7 @@ if $ARGS[0] = 'Park 2':
 	if VKwip = 100:
 		act 'Go jogging':	
 			*clr & cla
-			react_exp += rand(1, 2)	
+			gs 'exp_gain', 'react', rand(1, 2)	
 			fat -= 1
 			pcs_mood -= 5
 			gs 'sweat', 'add', 30			
@@ -838,7 +838,7 @@ if $ARGS[0] = 'Park 2':
 
 			act 'VKwip':	
 				*clr & cla
-				agil_exp += rand(1, 2)
+				gs 'exp_gain', 'agil', rand(1, 2)
 				fat -= 1
 				pcs_mood -= 5
 				gs 'sweat', 'add', 30			

+ 4 - 4
locations/FedorMisc.qsrc

@@ -644,7 +644,7 @@ if $ARGS[0] = 'Strength':
 	*clr & cla
 	menu_off = 1
 	minut += 30
-	stren_exp += rand(1, 4) + (steroid_dose - rand(0,steroid_dose)) & gs 'obj_din', 'steroids'
+	gs 'exp_gain', 'stren', rand(1, 4) + (steroid_dose - rand(0,steroid_dose)) & gs 'obj_din', 'steroids'
 	fat -= 1
 	pcs_mood += 5
 	gs 'sweat', 'add', 30
@@ -687,8 +687,8 @@ if $ARGS[0] = 'Agility':
 	*clr & cla
 	menu_off = 1
 	minut += 30
-	react_exp += rand(1, 3)
-	agil_exp += rand(1, 3)
+	gs 'exp_gain', 'react', rand(1, 3)
+	gs 'exp_gain', 'agil', rand(1, 3)
 	fat -= 1
 	pcs_mood += 5
 	gs 'sweat', 'add', 30
@@ -731,7 +731,7 @@ if $ARGS[0] = 'Endurance':
 	*clr & cla
 	menu_off = 1
 	minut += 30
-	vital_exp += rand(1, 4)
+	gs 'exp_gain', 'vital', rand(1, 4)
 	fat -= 1
 	pcs_mood += 5
 	gs 'sweat', 'add', 30

+ 2 - 2
locations/Gnpc2.qsrc

@@ -57,7 +57,7 @@ $din_gboy_go_to_disco = {
 		end
 
 		minut += 120
-		if pcs_danc < 50 and pcs_agil >= pcs_danc:danc_exp += 1
+		if pcs_danc < 50 and pcs_agil >= pcs_danc:gs 'exp_gain', 'danc', 1
 		pcs_mood += 10
 		gs 'stat'
 		diskoIvrand = rand(0, 100)
@@ -282,7 +282,7 @@ $din_gboy_go_to_disco = {
 					act 'Decline his offer and keep dancing (<<will_cost>> Willpower)':
 						cla
 						gs 'willpower', 'pay', 'resist'
-						if pcs_danc < 50 and pcs_agil >= pcs_danc:danc_exp += 1
+						if pcs_danc < 50 and pcs_agil >= pcs_danc:gs 'exp_gain', 'danc', 1
 						minut += 5
 						gs 'stat'
 						'Your <<$bfTitle[numnpc]>> gets himself a beer at the bar and in the meantime you continue to dance.'

+ 1 - 1
locations/JuliaMilHome.qsrc

@@ -28,7 +28,7 @@ if lernHome > 0 and juliaQW['homework_day'] ! daystart:
 		juliaQW['homework_day'] = daystart
 		gs 'npc_relationship', 'modify', 'A12', 'love' 
 		lern += rand(3,6)
-		intel_exp += rand(1,2) + (mentats_dose - rand(0,mentats_dose))
+		gs 'exp_gain', 'intel', rand(1,2) + (mentats_dose - rand(0,mentats_dose))
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big12.jpg"></center>'
 		'You spend an hour doing your homework with Julia, and thanks to her you manage to learn quite a lot. She''s a very clever girl, and good at explaining things.'

+ 1 - 1
locations/KatjaHomeTalk.qsrc

@@ -963,7 +963,7 @@ if $ARGS[0] = 'homework':
 	npc_rel['A14'] += 2
 	gs 'grades', 'homework', 'school', 'yes', 1, 1, 'A14'
 	lern += rand(2, 4)
-	intel_exp += rand(0, 1) + (mentats_dose - rand(0,mentats_dose))
+	gs 'exp_gain', 'intel', rand(0, 1) + (mentats_dose - rand(0,mentats_dose))
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 	'For half an hour you and Katja pour over your books, you fully learn the lessons and pretty well understand the material.'

+ 2 - 2
locations/Katlake.qsrc

@@ -88,8 +88,8 @@ if $ARGS[0] = 'voleybol':
 	katday = daystart
 	npc_rel['A219'] += 3
 	minut += 30
-	agil_exp += 1
-	react_exp += 1
+	gs 'exp_gain', 'agil', 1
+	gs 'exp_gain', 'react', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/lake/volleyball.jpg"></center>'
 	'"Hey, Kat! Want to go play some volleyball over there? Those girls look like they could use some competition!" you say.'

+ 4 - 4
locations/Komp.qsrc

@@ -509,8 +509,8 @@ if $ARGS[0] = 'study':
 	minut = minut + 60
 	elektro = elektro + 3
 	if internet_free = 0: internet -= 1
-	intel_exp += 1 + (mentats_dose - rand(0,mentats_dose))
-	compskl_exp += 1
+	gs 'exp_gain', 'intel', 1 + (mentats_dose - rand(0,mentats_dose))
+	gs 'exp_gain', 'compskl', 1
 	'<center><b>The Institute for Education Measurement</b></center>'
 	'<center><img <<$set_imgh>> src="images/pc/items/accessories/computer/study.jpg"></center>'
 	'You spend an hour on the IEM website, reading news articles and educational blogs. You feel a bit smarter afterwards.'
@@ -1504,7 +1504,7 @@ if $ARGS[0] = 'waitclients':
 				'<center><video autoplay loop src="images/pc/items/accessories/computer/webcam/strip5.mp4"></video></center>'
 				'Turning on some music you dance eroticly hoping to entice some viewers.'
 			end	
-			dancero_exp += 1
+			gs 'exp_gain', 'dancero', 1
 			gs 'arousal', 'porn', 5
 			gs 'stat'
 			act 'Continue':gt 'komp','waitclients'
@@ -1527,7 +1527,7 @@ if $ARGS[0] = 'waitclients':
 			end
 			'<center><video autoplay loop src="images/locations/city/residential/sauna/sex/striptease4.mp4"></video></center>'
 			'You decide that making a show of stripping yourself might encourage some attention.  Repositioning your cam, you stand up and dance as you remove your underwear.'
-			dancero_exp += 1
+			gs 'exp_gain', 'dancero', 1
 			topmfc = 0
 			backmfc = 0
 			gs 'arousal', 'porn', 3

+ 2 - 2
locations/MartinSex.qsrc

@@ -453,7 +453,7 @@ if $ARGS[0] = 'MartinTease':
 	if MartinStripVar = 1:
 		MartinSex = 1
 		MartinSexTalk = 2
-		if pcs_dancero <= 50:dancero_exp += rand(2,5)
+		if pcs_dancero <= 50:gs 'exp_gain', 'dancero', rand(2,5)
 		inhib_exp += rand(1,3)
 
 		if $pantyworntype ! 'none':
@@ -645,7 +645,7 @@ if $ARGS[0] = 'MartinTease2':
 end
 
 if $ARGS[0] = 'MartinTease3':
-	if pcs_dancero <= 50:dancero_exp += rand(2,5)
+	if pcs_dancero <= 50:gs 'exp_gain', 'dancero', rand(2,5)
 	inhib_exp += rand(1,3)
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/tease1.jpg"></center>'
 	'Feeling in the mood to give Martin a bit of a show today, you give him a soft push, just strong enough to make him get the hint and sit down on the chair behind him.'

+ 2 - 2
locations/MartinTalk.qsrc

@@ -480,7 +480,7 @@ if $ARGS[0] = '':
 				*nl
 				
 				if pcs_persuas < 30:
-					persuas_exp += rand(2,5)
+					gs 'exp_gain', 'persuas', rand(2,5)
 					
 					if age >= 18:
 						gs 'npc_relationship', 'modify', 'A216', -10
@@ -521,7 +521,7 @@ if $ARGS[0] = '':
 					end
 				
 				else
-					persuas_exp += rand(4,6)
+					gs 'exp_gain', 'persuas', rand(4,6)
 					npc_rel['A216'] -= 2
 					pcs_mood -= rand(1,3)
 					'"My parents sent me to school a year later than usual. Thought it''d be good if I had more childhood," you say quickly.'

+ 1 - 1
locations/Military.qsrc

@@ -19,7 +19,7 @@ if $ARGS[0] = 'start':
 		menu_off = 1
 		minut += 60
 		sanrand = rand(0, 10)
-		medcn_exp += rand (0,2) 
+		gs 'exp_gain', 'medcn', rand (0,2) 
 		gs 'stat'
 
 		if sanrand = 0:gt 'Military', 'san0'

+ 1 - 1
locations/NikoDates.qsrc

@@ -1250,7 +1250,7 @@ if $ARGS[0] = 'Disco':
 
 		act 'Dance':
 			*clr & cla
-			danc_exp += rand(1,3)
+			gs 'exp_gain', 'danc', rand(1,3)
 			minut += 5
 			gs'stat'
 			'<center><video autoplay loop src="images/characters/pavlovsk/school/boy/niko/nikomisc/disco/dance1.mp4"></video></center>'

+ 1 - 1
locations/NikoEv.qsrc

@@ -543,7 +543,7 @@ if $ARGS[0] = 'Disco Chat':
 	if NikoLuv > -4 and  NikoPayback = 0:
 		act 'Dance':	
 			*clr & cla
-			danc_exp += rand(1,3)
+			gs 'exp_gain', 'danc', rand(1,3)
 			NikoLuv += 1
 			npc_rel['A189'] += rand(5,10)
 			minut += 10

+ 3 - 3
locations/Nudelake.qsrc

@@ -133,9 +133,9 @@ if $ARGS[0] = 'voleybol':
 		menu_off = 1
 		cla
 		*clr
-		agil_exp += 1
-		react_exp += 1
-		vball_exp += rand(1,3)
+		gs 'exp_gain', 'agil', 1
+		gs 'exp_gain', 'react', 1
+		gs 'exp_gain', 'vball', rand(1,3)
 		minut += 30
 		inhib_exp += rand(1,3)
 		'<center><img <<$set_imgh>> src="images/locations/city/residential/lake/volleyball.jpg"></center>'

+ 1 - 1
locations/Vika.qsrc

@@ -178,7 +178,7 @@ end
 
 if $ARGS[0] = 'study':
 	minut += 60
-	intel_exp += 1 + (mentats_dose - rand(0,mentats_dose))
+	gs 'exp_gain', 'intel', 1 + (mentats_dose - rand(0,mentats_dose))
 	gs 'npc_relationship', 'modify', 'A220', 'like'
 	gs 'stat'
 

+ 4 - 4
locations/WorkHosp.qsrc

@@ -17,7 +17,7 @@ if $ARGS[0] = 'start':
 	act 'Work in the operating room (1:00)':
 		cla
 		minut += 60
-		medcn_exp += rand (0,2) 
+		gs 'exp_gain', 'medcn', rand (0,2) 
 
 		if jobhosprand = 0:gt 'WorkHosp', '2'
 
@@ -29,7 +29,7 @@ if $ARGS[0] = 'start':
 	act 'Help the doctors in the emergency room (1:00)':
 		cla
 		minut += 60
-		medcn_exp += rand (0,2)
+		gs 'exp_gain', 'medcn', rand (0,2)
 
 		if jobhosprand = 0:gt 'WorkHosp', '3'
 
@@ -235,7 +235,7 @@ if $ARGS[0] = '2':
 	'A patient comes through the door and takes off his pants to show you his flaccid penis. He asks you to help him, as he can''t seem to get an erection and it''s causing him depression. You realize that it''s all just a silly game and that he hopes to fuck you, but you still feel sorry for him. You wonder what caused him to come up with this plan and decide it might just be that he has no luck with girls, and if today is not his lucky day, he may jump out of the window.'
 	
 	act 'Oust him':
-		medcn_exp += rand (0,1) 
+		gs 'exp_gain', 'medcn', rand (0,1) 
 		gt 'WorkHosp', 'start'
 	end
 	
@@ -256,7 +256,7 @@ if $ARGS[0] = '3':
 	'<center><img <<$set_imgh>> src="images/locations/city/residential/clinic/sex/hospsex12.jpg"></center>'
 	'A pretty patient comes into the room, and the doctor tries to examine her. Then she touches his trousers near his poorly hidden erection. The doctor glances at you with a question in his eyes.'
 	
-	act 'Ask if she actually needs treatment':medcn_exp += rand (0,1) & gt 'WorkHosp', 'start'
+	act 'Ask if she actually needs treatment':gs 'exp_gain', 'medcn', rand (0,1) & gt 'WorkHosp', 'start'
     
 	gs 'willpower', 'sex', 'self'
 	if will_cost <= pcs_willpwr: 

+ 1 - 1
locations/act_minor1.qsrc

@@ -161,7 +161,7 @@ if $ARGS[0] = 'diner_waitress1':
 end
 
 if $ARGS[0] = 'diner_waitress2':
-	if pcs_perform < 50:perform_exp += 5
+	if pcs_perform < 50:gs 'exp_gain', 'perform', 5
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/studio/backgrounds/bedroom1.jpg"></center>'
 	'You step on set while everybody else is setting up. Your co-star for the scene and the main character for the show is already naked on the bed. A production assistant notices your arrival and instructs you to take of your robe and get up there with him so they can frame the shot.'
 	act'Get on the bed':

+ 6 - 6
locations/albina_house_events.qsrc

@@ -1161,25 +1161,25 @@ if $ARGS[0] = 'albina_photos':
 		'You shrug your shoulders. "Maybe. It depends how good I can get."'
 
 		act 'Start':
-			photoskl_exp += rand(1,2)
+			gs 'exp_gain', 'photoskl', rand(1,2)
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/photo/pose2.jpg"></center>'
 			'After a few more photos, you decide to change the pose. "Your ass is your best feature, so why don''t you bend over and show it to me?" She grins and gets on all fours as you reposition yourself. "Like what you see <<$pcs_nickname>>?" You grin at her antics as you continue taking images. "Show me more of that ass!" She wiggles her ass at you and smiles, clearly enjoying herself. Her thong is peeking through her skimpy shorts, but you don''t think she cares. You feel like it adds to the erotic nature of the image.'
 
 			act 'Continue':
-				photoskl_exp += rand(1,2)
+				gs 'exp_gain', 'photoskl', rand(1,2)
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/photo/pose3.jpg"></center>'
 				'She takes you by surprise when she stands and pulls her shirt up to reveal her breasts. She quickly covers them before you can take a photo. "Not so fast. We''re not doing that kind of thing. Tasteful only!" You take a few images of her tastefully posing while hiding her breasts from you. After a few more shots, you decide to move on. "When I said show me more of that ass, I meant it Albina!" you say with a wink and she smiles. "How''s this then?"'
 
 				act 'Continue':
-					photoskl_exp += rand(1,2)
+					gs 'exp_gain', 'photoskl', rand(1,2)
 					*clr & cla
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/photo/pose4.jpg"></center>'
 					'She pulls her shirt back down and faces away from you before slowly pulling her shorts down, exposing her thong clad ass. She pulls on her shorts, jiggling her ass as she giggles at you. "Come on <<$pcs_nickname>>, you wanted to see it, now photograph it." You compose yourself and take a few photos before moving in to get some close up shots. "Lose the shorts Albina. You know you want to..." you tell her in a commanding tone.'
 
 					act 'Continue':
-						photoskl_exp += rand(1,2)
+						gs 'exp_gain', 'photoskl', rand(1,2)
 						*clr & cla
 						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/photo/pose5.jpg"></center>'
 						'"Oh I love it when you take charge <<$pcs_nickname>>! You should do it more often..." You hear just a hint of arousal in her voice. She wiggles out of her shorts, allowing them to drop to her ankles before stepping out of them and kicking them aside. You can''t help but appreciate the sight in front of you. You''ve seen her shapely ass plenty of times before, but being able to freely photograph it makes it even better. You take a number of close up shots as she poses for you.'
@@ -1189,7 +1189,7 @@ if $ARGS[0] = 'albina_photos':
 						'"Okay, I know just the thing!" she replies.'
 
 						act 'Continue':
-							photoskl_exp += rand(1,2)
+							gs 'exp_gain', 'photoskl', rand(1,2)
 							*clr & cla
 							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/photo/pose6.jpg"></center>'
 							'She gets down all fours before arching her back and smiling at you, her ass high in the air. "How''s this?" she asks.'
@@ -1197,7 +1197,7 @@ if $ARGS[0] = 'albina_photos':
 							'She smiles at you. "Yeah, it was fun. I can see why Mama did this. It feels so... liberating."'
 
 							act 'Continue':
-								photoskl_exp += rand(1,2)
+								gs 'exp_gain', 'photoskl', rand(1,2)
 								portfolio_people[7] = 1
 								*clr & cla
 								'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/7.jpg"></center>'

+ 2 - 2
locations/albina_starlets.qsrc

@@ -256,7 +256,7 @@ if $ARGS[0] = 'starlets':
 	gs 'exercise', 'tier2', 120, 'agil_exp', 'dancero_exp'
 	pcs_mood -= 5
 	inhib_exp += rand(2,4)
-	if perform_lvl < 35: perform_exp += 1
+	if perform_lvl < 35: gs 'exp_gain', 'perform', 1
 
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/dance_studio/fit1.jpg"></center>'
@@ -302,7 +302,7 @@ if $ARGS[0] = 'starlets':
 				killvar 'albpayrand'
 				profiDanceTime += 1
 				inhib_exp += rand(3,5)
-				if perform_lvl < 35: perform_exp += rand(1,2)
+				if perform_lvl < 35: gs 'exp_gain', 'perform', rand(1,2)
 				gs 'stat'
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/albina/dance.jpg"></center>'

+ 10 - 10
locations/albinahome.qsrc

@@ -377,8 +377,8 @@ if $ARGS[0] = 'game':
 		menu_off = 1
 		minut += 30
 		pcs_mood += 15
-		react_exp += rand(0, 1)
-		gaming_exp += rand(1, 2)
+		gs 'exp_gain', 'react', rand(0, 1)
+		gs 'exp_gain', 'gaming', rand(1, 2)
 		npc_rel['A23'] += 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/game.jpg"></center>'
@@ -392,8 +392,8 @@ if $ARGS[0] = 'game':
 					menu_off = 1
 					minut += 60
 					pcs_mood += 15
-					react_exp += rand(0, 1)
-					gaming_exp += rand(1, 2)
+					gs 'exp_gain', 'react', rand(0, 1)
+					gs 'exp_gain', 'gaming', rand(1, 2)
 					npc_rel['A23'] -= 1
 					gs 'willpower', 'pay', 'resist'
 					gs 'stat'
@@ -422,8 +422,8 @@ if $ARGS[0] = 'playgame':
 	menu_off = 1
 	minut += 30
 	pcs_mood += 15
-	react_exp += rand(0, 1)
-	gaming_exp += rand(1, 2)
+	gs 'exp_gain', 'react', rand(0, 1)
+	gs 'exp_gain', 'gaming', rand(1, 2)
 	npc_rel['A23'] += 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/game.jpg"></center>'
@@ -442,8 +442,8 @@ if $ARGS[0] = 'playgame':
 				menu_off = 1
 				minut += 60
 				pcs_mood += 15
-				react_exp += rand(0, 1)
-				gaming_exp += rand(1, 2)
+				gs 'exp_gain', 'react', rand(0, 1)
+				gs 'exp_gain', 'gaming', rand(1, 2)
 				npc_rel['A23'] -= 2
 				gs 'willpower', 'pay', 'resist'
 				gs 'stat'
@@ -474,8 +474,8 @@ if $ARGS[0] = 'game_bet':
 	AlbinaQW['gamebet'] = 1
 	minut += 30
 	pcs_mood += 15
-	react_exp += rand(0, 1)
-	gaming_exp += rand(1, 2)
+	gs 'exp_gain', 'react', rand(0, 1)
+	gs 'exp_gain', 'gaming', rand(1, 2)
 	npc_rel['A23'] += 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/game.jpg"></center>'

+ 24 - 24
locations/alexandriaEv.qsrc

@@ -524,7 +524,7 @@ end
 if $ARGS[0] = 'persufilipp':
     *clr & cla
     minut += 5
-    persuas_exp += rand(0,4)
+    gs 'exp_gain', 'persuas', rand(0,4)
 	gs 'stat'
 	'<center><b><font color="maroon">Filipp</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/city/ana/bribes.jpg"></center>'
@@ -639,7 +639,7 @@ if $ARGS[0] = 'anachase2':
     act 'The chase is on!': 
 		*clr & cla
 	    minut += 1
-        run_exp += rand(1, 5)   
+        gs 'exp_gain', 'run', rand(1, 5)   
 	    gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/city/ana/chase.jpg"></center>'
         '"EPP!!!" Ana, give a little yelp, surprise plastered all over her face, as you launch yourself after her. If she thinks that you are going to back off, Ana is going to be disappointed, and with the surprise in your side, you rush to grab the annoying nut.'
@@ -665,8 +665,8 @@ if $ARGS[0] = 'anachase2':
             *clr & cla
 	        minut += 2
 	        pcs_mana -= 60
-	        splcstng_exp += rand(1,5)
-	        run_exp += rand(1, 5)
+	        gs 'exp_gain', 'splcstng', rand(1,5)
+	        gs 'exp_gain', 'run', rand(1, 5)
 	        gs 'fame', 'city', 'acting', 5
 	        AlexandriaMissionQW += 2 
 	        gs 'stat'
@@ -679,7 +679,7 @@ if $ARGS[0] = 'anachase2':
 			
 			act 'Run!':
 			    *clr & cla
-			    run_exp += rand(1, 5)
+			    gs 'exp_gain', 'run', rand(1, 5)
 			    dummy = rand(1,100)
 	            gs 'stat'
 	            if dummy <= pcs_run: 
@@ -702,7 +702,7 @@ if $ARGS[0] = 'anachase3':
 	minut += 10
 	fat -= 5
 	pcs_mood += 10
-	run_exp += rand (1,5)
+	gs 'exp_gain', 'run', rand (1,5)
 	gs 'fame', 'city', 'running', 5
 	gs 'sweat', 'add', 10
 	pcs_stam -= 8
@@ -881,7 +881,7 @@ if $ARGS[0] = 'heal1':
     AlexandriaMissionQW += 3
     if sound = 0:PLAY 'sound/rington.mp3',10
     pcs_mana -= 400
-	splcstng_exp += rand(1,5)
+	gs 'exp_gain', 'splcstng', rand(1,5)
 	gs 'stat'
 	'<center><b><font color="maroon">Ana''s number</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/city/ana/selfie.jpg"></center>'
@@ -1079,7 +1079,7 @@ if $ARGS[0] = 'anachase5':
             *clr & cla
             if sound = 0:PLAY 'sound/rington.mp3',10
 	        minut += 5
-	        persuas_exp += rand(1,5)
+	        gs 'exp_gain', 'persuas', rand(1,5)
 	        gs 'stat'
 	        '<center><b><font color="maroon">Ana''s number?</font></b></center>'
 	        '<center><img <<$set_imgh>> src="images/characters/city/ana/selfie.jpg"></center>'
@@ -1095,7 +1095,7 @@ if $ARGS[0] = 'anachase5':
 	    else
 	        *clr & cla
 	        minut += 1
-	        persuas_exp += rand(0,4)
+	        gs 'exp_gain', 'persuas', rand(0,4)
 	        AlexandriaMissionQW += 1
 	        gs 'stat'
 	        '<center><img <<$set_imgh>> src="images/characters/city/ana/gopniks.jpg"></center>'
@@ -1119,7 +1119,7 @@ if $ARGS[0] = 'heal2':
     AlexandriaMissionQW += 3
     if sound = 0:PLAY 'sound/rington.mp3',10
     pcs_mana -= 400
-	splcstng_exp += rand(1,5)
+	gs 'exp_gain', 'splcstng', rand(1,5)
 	gs 'stat'
 	'<center><b><font color="maroon">Ana''s number</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/city/ana/selfie.jpg"></center>'
@@ -1140,11 +1140,11 @@ if $ARGS[0] = 'anachase6':
 	    minut += 10
 	    fat -= 10
 	    pcs_mood += 20
-	    run_exp += rand (5,10)
-	    stren_exp += rand (5,10)
-	    agil_exp += rand (5,10)
-	    vital_exp += rand (5,10)
-	    react_exp += rand (5,10) 
+	    gs 'exp_gain', 'run', rand (5,10)
+	    gs 'exp_gain', 'stren', rand (5,10)
+	    gs 'exp_gain', 'agil', rand (5,10)
+	    gs 'exp_gain', 'vital', rand (5,10)
+	    gs 'exp_gain', 'react', rand (5,10) 
 	    gs 'fame', 'city', 'running', 10
 	    gs 'sweat', 'add', 20
 	    pcs_stam -= 16
@@ -1200,11 +1200,11 @@ if $ARGS[0] = 'anachase6':
 	    minut += 5
 	    fat -= 5
 	    pcs_mood -= 40
-	    run_exp += rand (0,5)
-	    stren_exp += rand (0,5)
-	    agil_exp += rand (0,5)
-	    vital_exp += rand (0,5)
-	    react_exp += rand (0,5) 
+	    gs 'exp_gain', 'run', rand (0,5)
+	    gs 'exp_gain', 'stren', rand (0,5)
+	    gs 'exp_gain', 'agil', rand (0,5)
+	    gs 'exp_gain', 'vital', rand (0,5)
+	    gs 'exp_gain', 'react', rand (0,5) 
 	    gs 'sweat', 'add', 10
 	    pcs_stam -= 8
 	    if temper >= 25 and sunWeather = 1:
@@ -1268,7 +1268,7 @@ if $ARGS[0] = 'heal3':
     AlexandriaMissionQW += 3
     if sound = 0:PLAY 'sound/rington.mp3',10
     pcs_mana -= 400
-	splcstng_exp += rand(1,5)
+	gs 'exp_gain', 'splcstng', rand(1,5)
 	gs 'stat'
 	'<center><b><font color="maroon">Ana''s number</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/characters/city/ana/selfie.jpg"></center>'
@@ -1287,7 +1287,7 @@ if $ARGS[0] = 'anachase7':
         *clr & cla
         minut += 1
         pcs_mana -= 20
-	    splcstng_exp += rand(1,5)
+	    gs 'exp_gain', 'splcstng', rand(1,5)
 	    dummy = rand(1,100)
 	    gs 'stat'
 	    '<center><img <<$set_imgh>> src="images/characters/city/ana/zap.jpg"></center>'
@@ -1326,7 +1326,7 @@ if $ARGS[0] = 'anachase7':
         *clr & cla
         minut += 1
         pcs_mana = 0
-	    splcstng_exp += rand(0,4)
+	    gs 'exp_gain', 'splcstng', rand(0,4)
 	    pain['fingers'] += rand (10,20)
 	    pain['hands'] += rand(10,20)
         gs 'stat'
@@ -1435,7 +1435,7 @@ if $ARGS[0] = 'heal4':
     minut += 1
     AlexandriaMissionQW += 3
     pcs_mana -= 400
-    splcstng_exp += rand(1,5)
+    gs 'exp_gain', 'splcstng', rand(1,5)
     gs 'stat'
     '<center><b><font color="maroon">Ana</font></b></center>'
     '<center><img <<$set_imgh>> src="images/characters/city/ana/ana4.jpg"></center>'

+ 4 - 4
locations/anushapt.qsrc

@@ -1103,7 +1103,7 @@ if $ARGS[0] = 'guitar':
 				*clr & cla
 				minut += 10
 				pcs_mood += 10
-				instrmusic_exp += rand(0,1)
+				gs 'exp_gain', 'instrmusic', rand(0,1)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/guitar.jpg"></center>'
 				'You decide to live out one of your fantasies. You''ve always wanted to play the guitar. You grab hold of the guitar then you begin to pretend to play, putting on a show as if you were a real rock star. After a while, you need to catch your breath. Playing was a lot harder than you thought.'
@@ -1113,7 +1113,7 @@ if $ARGS[0] = 'guitar':
 		act 'Try to play it':
 			*clr & cla
 			if pcs_instrmusic < 10:
-				instrmusic_exp += rand(0,2)
+				gs 'exp_gain', 'instrmusic', rand(0,2)
 				pcs_mood += 5
 				minut += 20
 				gs 'pain', 1, 'fingers', 'ache'
@@ -1124,7 +1124,7 @@ if $ARGS[0] = 'guitar':
 				'You realize now that learning how to play the guitar can be a frustrating, painful experience. Yet, you cannot help but to gently stroke the guitar once more before putting it back on its stand. You look forward to trying to play again.'
 				act 'Put the guitar back':gt 'anushapt','anushroom'
 			elseif pcs_instrmusic < 20:
-				instrmusic_exp += rand(0,20)
+				gs 'exp_gain', 'instrmusic', rand(0,20)
 				pcs_mood += 5
 				minut += 20
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/guitar.jpg"></center>'
@@ -1132,7 +1132,7 @@ if $ARGS[0] = 'guitar':
 				'Finally, you put the guitar back on its stand.'
 				act 'Put the guitar back':gt 'anushapt','anushroom'
 			else
-				instrmusic_exp += rand(0,20)
+				gs 'exp_gain', 'instrmusic', rand(0,20)
 				pcs_mood += 5
 				minut += 20
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom/guitar.jpg"></center>'

+ 4 - 4
locations/anushaptbr.qsrc

@@ -85,7 +85,7 @@ if $ARGS[0] = 'brotherroom':
 			act 'Sit down and play':
 				*clr & cla
 				minut += 15
-				gaming_exp += rand(1,3)
+				gs 'exp_gain', 'gaming', rand(1,3)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/playgamebro.jpg"></center>'
 				'The brothers turn away from you and start whispering amongst themselves. They must be planning something.'
@@ -255,7 +255,7 @@ if $ARGS[0] = 'brotherroom':
 					act 'Deal':
 						*clr & cla
 						minut += 20
-						gaming_exp += rand(1,3)
+						gs 'exp_gain', 'gaming', rand(1,3)
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/maksimplay.jpg"></center>'
 						if pcs_gaming <= 40:
@@ -339,7 +339,7 @@ if $ARGS[0] = 'rematch':
 		act 'Sit down and play':
 			*clr & cla
 			minut += 15
-			gaming_exp += rand(1, 3)
+			gs 'exp_gain', 'gaming', rand(1, 3)
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/playgamebro.jpg"></center>'
 			'The brothers turn away from you and start whispering. You''re sure that they must be planning something.'
@@ -400,7 +400,7 @@ if $ARGS[0] = 'rematch':
 		'Maksim looks mad at that. "Just shut up and play!" Anushka just laughs again and mimics what he said in a mutter that taunts him.'
 		act 'Play':
 			*clr & cla
-			gaming_exp += rand(1,3)
+			gs 'exp_gain', 'gaming', rand(1,3)
 			minut += 15
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/playgamebro.jpg"></center>'

+ 10 - 10
locations/anushkachat.qsrc

@@ -1100,13 +1100,13 @@ if $ARGS[0] = 'photoshoot1':
 	*clr & cla
 	nush_photoshoot += 1
 	minut += 5
-	photoskl_exp += rand(1,2)
+	gs 'exp_gain', 'photoskl', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose1.jpg"></center>'
 	'Once out on the fire escape, you find a spot on the other side of the landing and pull your camera out. You start snapping photos of her standing on the fire escape landing.'
 	act 'Spice this up':
 		*clr & cla
-		photoskl_exp += rand(1,2)
+		gs 'exp_gain', 'photoskl', rand(1,2)
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose2.jpg"></center>'
 		'You want more and you know she loves showing off. "Come on famous model, let''s do something a little more risque!" Anushka reaches up under her skirt, pulls her panties off and tosses them at you. You snap a few more photos as she leans forward, making her skirt ride up. At this angle you can just see her pussy, but keep shooting.'
@@ -1114,19 +1114,19 @@ if $ARGS[0] = 'photoshoot1':
 		gs 'stat'
 		act 'Keep taking photos':
 			*clr & cla
-			photoskl_exp += rand(1,2)
+			gs 'exp_gain', 'photoskl', rand(1,2)
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose3.jpg"></center>'
 			'She turns sideways towards you and squats down, with her legs slightly apart. At this angle you can''t see anything other than her teasing smile. "Okay, now turn towards me." you tell her.'
 			act 'She turns':
 				*clr & cla
-				photoskl_exp += rand(1,2)
+				gs 'exp_gain', 'photoskl', rand(1,2)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose4.jpg"></center>'
 				'She moves close to the wall and turns to face you before squatting down again and pulling her skirt down between her legs. You snap a few more photos and shake your head at her teasing. Normally she loves flaunting her body, but now that you''re trying to do a serious photoshoot, she''s acting shy. "Ha ha, Nush. Come on, show me the goods girl. You know you want to..."'
 				act 'Keep taking photos':
 					*clr & cla
-					photoskl_exp += rand(1,2)
+					gs 'exp_gain', 'photoskl', rand(1,2)
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose5.jpg"></center>'
 					'She leans forward and pulls her tank top down and to the sides, exposing her perfectly round and firm tits. "That''s it, work the camera for me Nush!" You both hear a wolf whistle from somewhere below, but you both ignore it.'
@@ -1134,7 +1134,7 @@ if $ARGS[0] = 'photoshoot1':
 					gs 'stat'
 					act 'Working the camera':
 						*clr & cla
-						photoskl_exp += rand(1,2)
+						gs 'exp_gain', 'photoskl', rand(1,2)
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose6.jpg"></center>'
 						'She puts her tank top back in place and spreads her legs wide, giving you a full few of her pussy. After some suggestions on poses, she moves to the outside corner of the fire escape to give you a better view of Pavlovsk behind her as you keep taking photos. "That''s it girl, give the camera some love."'
@@ -1142,7 +1142,7 @@ if $ARGS[0] = 'photoshoot1':
 						gs 'stat'
 						act 'Move again':
 							*clr & cla
-							photoskl_exp += rand(1,2)
+							gs 'exp_gain', 'photoskl', rand(1,2)
 							gs 'stat'
 							'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose7.jpg"></center>'
 							'Following your instructions to move again, she moves back next to the building for a few shoots and teases you by pulling on her tank top, just shy of showing off her nipples. "Okay, back to the other side. I want to get the town in the background." There''s a catcall from below, but you''re unsure if it''s the same person from before.'
@@ -1150,7 +1150,7 @@ if $ARGS[0] = 'photoshoot1':
 							gs 'stat'
 							act 'Moving back':
 								*clr & cla
-								photoskl_exp += rand(1,2)
+								gs 'exp_gain', 'photoskl', rand(1,2)
 								gs 'stat'
 								'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose8.jpg"></center>'
 								'Moving back, she squats again and spreads her legs wide to give you a perfect view of her shaved pussy. After you take a few more photos, she pulls her tank top down again. "Nice, nice. But how about you lose the top?" you tell her as you keep taking photos.'
@@ -1158,7 +1158,7 @@ if $ARGS[0] = 'photoshoot1':
 								gs 'stat'
 								act 'Losing the shirt':
 									*clr & cla
-									photoskl_exp += rand(1,2)
+									gs 'exp_gain', 'photoskl', rand(1,2)
 									gs 'stat'
 									'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/nush_model/sveta_photographer/set1/pose9.jpg"></center>'
 									'She pulls off her tank top and tosses it at you. It lands on and covers your camera and face. You pull it off and toss it aside to find her sitting with her back against the rail, on the outer corner of the fire escape. Her legs are spread wide, showing off her pussy and breasts. Only her tennis shoes and skirt bunched up around her waist remain. "That''s it," you tell her and take several more photos. There are a few hoots and lewd comments directed at you and you''re fairly certain that it''s Dan and Vasily.'
@@ -1166,7 +1166,7 @@ if $ARGS[0] = 'photoshoot1':
 									gs 'stat'
 									act 'Final photos':
 										*clr & cla
-										photoskl_exp += rand(1,2)
+										gs 'exp_gain', 'photoskl', rand(1,2)
 										portfolio_people[5] = 1
 										gs 'stat'
 										'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/5.jpg"></center>'

+ 2 - 2
locations/artem_events.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'start':
 		if will_cost <= pcs_willpwr:
 			act 'Reassure Vitek he can trust you (<<will_cost>> Willpower)':
 				! I think passing this warrants some chrsm_exp. If you dont think so just remove this line
-				chrsm_exp += rand(0,will_cost)
+				gs 'exp_gain', 'chrsm', rand(0,will_cost)
 				gs 'willpower', 'pay', 'force'
 				cla
 				artemVitokQW = 1
@@ -101,7 +101,7 @@ if $ARGS[0] = 'learn':
 	end
 	lern += rand(3, 6)
 !!counts as doing 2 hours of homework alone
-	intel_exp += rand(1, 2)
+	gs 'exp_gain', 'intel', rand(1, 2)
 	gs 'stat'
 	!act 'Take a break from studying':gt 'artemhome', 'artemroom'
 	!act 'Talk instead': gt 'artemhome', 'chat'

+ 1 - 1
locations/artemhome.qsrc

@@ -836,7 +836,7 @@ if $ARGS[0] = 'livingroom':
 					artfall += 1
 					artfalling = daystart
 				end
-				gaming_exp +=1
+				gs 'exp_gain', 'gaming',1
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/artemhome/livingroom/playgames.jpg"></center>'
 				'You smile to him. "Yeah thanks I would like that."'

+ 1 - 1
locations/bass.qsrc

@@ -111,7 +111,7 @@ if $ARGS[0] = 'a':
 			if pcs_sweat > 15 : pcs_sweat = 10 + rand(0,4)
 			pcs_mood += 5
 
-			if pcs_stren < 40:stren_exp += 1 + (steroid_dose - rand(0,steroid_dose)) & gs 'obj_din', 'steroids'
+			if pcs_stren < 40:gs 'exp_gain', 'stren', 1 + (steroid_dose - rand(0,steroid_dose)) & gs 'obj_din', 'steroids'
 			if KisameSex = 0:KisameSex = 1 & Set guy += 1
 			gs 'boyStat', 'A40'
 			'<center><img <<$set_imgh>> src="images/characters/city/kisame/sex/kisamebj.jpg"></center>'

+ 30 - 30
locations/bbgamein.qsrc

@@ -60,7 +60,7 @@ if $ARGS[0] = 'girls':
 	gs 'gschool_events', 'rand_girl_arg', 0, 1, 0, 0, 0, 0
 	gs 'gschool_events', 'rand_girl_arg1', 0, 1, 0, 0, 0, 0
 	*clr & cla
-	bkbll_exp += rand(0,2)
+	gs 'exp_gain', 'bkbll', rand(0,2)
 	minut += 5
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/bbinside/pregame.jpg"></center>'
@@ -113,7 +113,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -143,7 +143,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -173,7 +173,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -246,7 +246,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -278,7 +278,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -310,7 +310,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -383,7 +383,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -415,7 +415,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -447,7 +447,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -494,7 +494,7 @@ if $ARGS[0] = 'mixed':
 	gs 'gschool_events', 'rand_boy_arg', 0, 1, 0, 0, 0, 0
 	gs 'gschool_events', 'rand_girl_arg', 0, 1, 0, 0, 0, 0
 	*clr & cla
-	bkbll_exp += rand(0,2)
+	gs 'exp_gain', 'bkbll', rand(0,2)
 	minut += 5
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/bbinside/pregame.jpg"></center>'
@@ -527,7 +527,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -559,7 +559,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -590,7 +590,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -653,7 +653,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -685,7 +685,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -717,7 +717,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -780,7 +780,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -812,7 +812,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -844,7 +844,7 @@ if $ARGS[0] = 'mixed':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -890,7 +890,7 @@ if $ARGS[0] = 'boys':
 	gs 'gschool_events', 'rand_boy_arg', 0, 1, 0, 0, 0, 0
 	gs 'gschool_events', 'rand_boy_arg1', 0, 1, 0, 0, 0, 0
 	*clr & cla
-	bkbll_exp += rand(0,2)
+	gs 'exp_gain', 'bkbll', rand(0,2)
 	minut += 5
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/bbinside/boys.jpg"></center>'
@@ -923,7 +923,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -955,7 +955,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -987,7 +987,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1049,7 +1049,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1081,7 +1081,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1112,7 +1112,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1175,7 +1175,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1207,7 +1207,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1238,7 +1238,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'

+ 37 - 37
locations/bbgameout.qsrc

@@ -63,7 +63,7 @@ if $ARGS[0] = 'girls':
 	gs 'gschool_events', 'rand_girl_arg', 0, 1, 0, 0, 0, 0
 	gs 'gschool_events', 'rand_girl_arg1', 0, 1, 0, 0, 0, 0
 	*clr & cla
-	bkbll_exp += rand(0,2)
+	gs 'exp_gain', 'bkbll', rand(0,2)
 	minut += 5
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/bboutside/outsidebasketball.jpg"></center>'
@@ -116,7 +116,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -148,7 +148,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -180,7 +180,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -255,7 +255,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -287,7 +287,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -319,7 +319,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -393,7 +393,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -425,7 +425,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -457,7 +457,7 @@ if $ARGS[0] = 'girls':
 							*clr & cla
 							grupvalue[2] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -549,7 +549,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -583,7 +583,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -617,7 +617,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 40
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 40
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -685,7 +685,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -719,7 +719,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -753,7 +753,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 20
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 20
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -821,7 +821,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -856,7 +856,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -890,7 +890,7 @@ if $ARGS[0] = 'mixed':
 							grupvalue[2] += 1
 							npc_rel['A27'] += 1
 							pcs_mood += 30
-							bkbll_exp += rand(0,2)
+							gs 'exp_gain', 'bkbll', rand(0,2)
 							gs 'sweat', 'add', 30
 							gs 'willpower', 'pay', 'self'
 							gs 'stat'
@@ -981,7 +981,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1013,7 +1013,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1045,7 +1045,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1108,7 +1108,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1140,7 +1140,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1172,7 +1172,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1234,7 +1234,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1266,7 +1266,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1298,7 +1298,7 @@ if $ARGS[0] = 'marcusno':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1374,7 +1374,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1406,7 +1406,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1437,7 +1437,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 40
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 40
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1499,7 +1499,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1531,7 +1531,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1563,7 +1563,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 20
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 20
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1627,7 +1627,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1659,7 +1659,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
@@ -1691,7 +1691,7 @@ if $ARGS[0] = 'boys':
 					*clr & cla
 					grupvalue[2] += 1
 					pcs_mood += 30
-					bkbll_exp += rand(0,2)
+					gs 'exp_gain', 'bkbll', rand(0,2)
 					gs 'sweat', 'add', 30
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'

+ 5 - 0
locations/bed2.qsrc

@@ -366,6 +366,11 @@ if $ARGS[0] = 'dream':
 	if stime >= 60:
 		stime = 0
 		pcs_sleep += 15
+		if pcs_sleep >= 100:
+			pcs_condition['lack_of_sleep'] = 0
+		elseif pcs_condition['lack_of_sleep'] > 0:
+			pcs_condition['lack_of_sleep'] -= 1
+		end
 		gs 'stat'
 	end
 

+ 1 - 1
locations/bedrPar.qsrc

@@ -240,7 +240,7 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 					*clr & cla
 					menu_off = 1
 					minut+=60
-					sewng_exp += rand(pcs_intel/10, pcs_intel/5)
+					gs 'exp_gain', 'sewng', rand(pcs_intel/10, pcs_intel/5)
 					gobramax = (pcs_sewng - 70) * 6
 					gobramin = (pcs_sewng - 70) * 2
 					newgobelen += rand(gobramin,gobramax)

+ 14 - 14
locations/bicycle.qsrc

@@ -36,8 +36,8 @@ if ($ARGS[0] = 'gadsarai' and BikeLoc = 1) or ($ARGS[0] = 'gadforest' and BikeLo
 				*clr & cla
 				menu_off = 1
 				minut += 60
-				run_exp += rand(0,2)
-				stren_exp += rand(0,2)
+				gs 'exp_gain', 'run', rand(0,2)
+				gs 'exp_gain', 'stren', rand(0,2)
 				fat -= 2
 				pcs_mood += 10
 				pcs_sweat += 2
@@ -111,8 +111,8 @@ if ($ARGS[0] = 'gadsarai' and BikeLoc = 1) or ($ARGS[0] = 'gadforest' and BikeLo
 				menu_off = 1
 				if BikeLoc = 2:
 					minut += 12
-					run_exp += rand(0,1)
-					stren_exp += rand(0,1)
+					gs 'exp_gain', 'run', rand(0,1)
+					gs 'exp_gain', 'stren', rand(0,1)
 					fat -= 1
 					pcs_mood += 5
 					pcs_sweat += 1
@@ -123,8 +123,8 @@ if ($ARGS[0] = 'gadsarai' and BikeLoc = 1) or ($ARGS[0] = 'gadforest' and BikeLo
 					end
 				elseif BikeLoc = 3:
 					minut += 44
-					run_exp += rand(0,3)
-					stren_exp += rand(0,3)
+					gs 'exp_gain', 'run', rand(0,3)
+					gs 'exp_gain', 'stren', rand(0,3)
 					fat -= 3
 					pcs_mood += 15
 					pcs_sweat += 3
@@ -156,15 +156,15 @@ if ($ARGS[0] = 'gadsarai' and BikeLoc = 1) or ($ARGS[0] = 'gadforest' and BikeLo
 				menu_off = 1
 				if BikeLoc = 1:
 					minut += 12
-					run_exp += rand(0,1)
-					stren_exp += rand(0,1)
+					gs 'exp_gain', 'run', rand(0,1)
+					gs 'exp_gain', 'stren', rand(0,1)
 					fat -= 1
 					pcs_mood += 5
 					pcs_sweat += 1
 				elseif BikeLoc = 3:
 					minut += 32
-					run_exp += rand(0,2)
-					stren_exp += rand(0,2)
+					gs 'exp_gain', 'run', rand(0,2)
+					gs 'exp_gain', 'stren', rand(0,2)
 					fat -= 2
 					pcs_mood += 0
 					pcs_sweat += 2
@@ -191,15 +191,15 @@ if ($ARGS[0] = 'gadsarai' and BikeLoc = 1) or ($ARGS[0] = 'gadforest' and BikeLo
 				menu_off = 1
 				if BikeLoc = 1:
 					minut += 44
-					run_exp += rand(0,3)
-					stren_exp += rand(0,3)
+					gs 'exp_gain', 'run', rand(0,3)
+					gs 'exp_gain', 'stren', rand(0,3)
 					fat -= 3
 					pcs_mood += 15
 					pcs_sweat += 3
 				elseif BikeLoc = 2:
 					minut += 32
-					run_exp += rand(0,2)
-					stren_exp += rand(0,2)
+					gs 'exp_gain', 'run', rand(0,2)
+					gs 'exp_gain', 'stren', rand(0,2)
 					fat -= 2
 					pcs_mood += 10
 					pcs_sweat += 2

+ 2 - 2
locations/billiard.qsrc

@@ -20,7 +20,7 @@ if hour >= 8 and hour <= 20:
 			money -= 125
 			minut += 60
 			billvar = 0
-			pool_exp += rand(0,3)
+			gs 'exp_gain', 'pool', rand(0,3)
 			billrand = rand(0,5)
 			gs 'stat'
 			
@@ -89,7 +89,7 @@ if hour >= 8 and hour <= 20:
 		act 'Play for money (250 <b>₽</b>)':
 			menu_off = 1
 			minut += 60
-			pool_exp += rand(0,1)
+			gs 'exp_gain', 'pool', rand(0,1)
 			billvar = 3
 			gt 'billiard', 'randwin'
 		end

+ 2 - 2
locations/brother.qsrc

@@ -392,9 +392,9 @@ if $ARGS[0] = 'playfootball':
 		*clr & cla
 		minut += 60
 		if npc_rel['A34'] <50:npc_rel['A34'] += rand(1,2)
-		agil_exp += rand(0, 2)
+		gs 'exp_gain', 'agil', rand(0, 2)
 		gs 'sweat', 'add', 30
-		run_exp += rand(0, 2)
+		gs 'exp_gain', 'run', rand(0, 2)
 		fat -= rand(2, 7)
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/grounds/football3.jpg"></center>'

+ 4 - 4
locations/buklinik_event.qsrc

@@ -85,7 +85,7 @@ if $ARGS[0] = 'pos7':
 	*clr & cla
 	menu_off = 1
 	buklinikDay = daystart
-	medcn_exp += rand (0,3)
+	gs 'exp_gain', 'medcn', rand (0,3)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/mercyclinic/bukli_eat2.jpg"></center>'
 	if bumtolik > 7:
@@ -102,7 +102,7 @@ end
 if $ARGS[0] = 'pos8':
 	*clr & cla
 	menu_off = 1
-    medcn_exp += rand (0,3)
+    gs 'exp_gain', 'medcn', rand (0,3)
 	if bumtolik = 8:bumtolik = 9
 	buklinikDay = daystart
 	minut += 120
@@ -137,7 +137,7 @@ if $ARGS[0] = 'pos10':
 	menu_off = 1
 	bumtolik = 10
 	pcs_horny += 10
-	medcn_exp += rand (0,3)
+	gs 'exp_gain', 'medcn', rand (0,3)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/city/industrial/mercyclinic/bukli_mission1.jpg"></center>'
 	'You have the perfect idea that might persuade the old drunk. You set in front of the makeshift shelter and tell the others to back off while you tell him that you have something to show him.'
@@ -328,7 +328,7 @@ if $ARGS[0] = 'event1':
 	buklinik = 11
 	buklinikDay = daystart
 	minut += 20
-	medcn_exp += rand (0,3)
+	gs 'exp_gain', 'medcn', rand (0,3)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/vika/3.jpg"></center>'
 	'You came to the address and knocked on the door. You opened the young girl and asked:

+ 19 - 19
locations/camera.qsrc

@@ -227,7 +227,7 @@ if $ARGS[0] = 'mother':
 	act 'Take her photo':
 		cla & *clr
 		minut += 15
-		photoskl_exp += rand(3,5)
+		gs 'exp_gain', 'photoskl', rand(3,5)
 		portfolio_people[1] = 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/1.jpg"></center>'
@@ -251,7 +251,7 @@ if $ARGS[0] = 'anya':
 	act 'Take her photo':
 		cla & *clr
 		minut += 15
-		photoskl_exp += rand(3,5)
+		gs 'exp_gain', 'photoskl', rand(3,5)
 		portfolio_people[2] = 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/2.jpg"></center>'
@@ -273,7 +273,7 @@ if $ARGS[0] = 'lazar':
 	act 'Take his photo':
 		cla & *clr
 		minut += 15
-		photoskl_exp += rand(3,5)
+		gs 'exp_gain', 'photoskl', rand(3,5)
 		portfolio_people[3] = 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/3.jpg"></center>'
@@ -285,7 +285,7 @@ end
 if $ARGS[0] = 'city_library':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[1] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -296,7 +296,7 @@ end
 if $ARGS[0] = 'city_uni':
 	*clr & cla
 	minut += 25
-	photoskl_exp += rand(5,7)
+	gs 'exp_gain', 'photoskl', rand(5,7)
 	portfolio_locations[2] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -307,7 +307,7 @@ end
 if $ARGS[0] = 'gadukino':
 	*clr & cla
 	minut += 25
-	photoskl_exp += rand(5,7)
+	gs 'exp_gain', 'photoskl', rand(5,7)
 	portfolio_locations[4] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -318,7 +318,7 @@ end
 if $ARGS[0] = 'gadforest':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[6] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -329,7 +329,7 @@ end
 if $ARGS[0] = 'pav_church':
 	*clr & cla
 	minut += 25
-	photoskl_exp += rand(5,7)
+	gs 'exp_gain', 'photoskl', rand(5,7)
 	portfolio_locations[12] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -340,7 +340,7 @@ end
 if $ARGS[0] = 'pav_train_hall':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[8] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -351,7 +351,7 @@ end
 if $ARGS[0] = 'pav_complex':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[7] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -362,7 +362,7 @@ end
 if $ARGS[0] = 'pav_school':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[9] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -373,7 +373,7 @@ end
 if $ARGS[0] = 'pav_park':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[10] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -384,7 +384,7 @@ end
 if $ARGS[0] = 'pav_lake':
 	*clr & cla
 	minut += 15
-	photoskl_exp += rand(3,5)
+	gs 'exp_gain', 'photoskl', rand(3,5)
 	portfolio_locations[11] = 1
 	gs 'stat'
 	'<center><img src="images/pc/activities/photography/sveta_camera.jpg"></center>'
@@ -403,7 +403,7 @@ if $ARGS[0] = 'pav_lake_sonia':
 	act 'Take her photograph':
 		*clr & cla
 		camera_found['sonia'] = 1
-		photoskl_exp += rand(1,2)
+		gs 'exp_gain', 'photoskl', rand(1,2)
 		gs 'stat'
 		'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo1.jpg"></center>'
 		'You get a little closer and start taking her photograph, moving around and taking a number of shots from different angles before she suddenly sits up and looks in your direction.'
@@ -411,7 +411,7 @@ if $ARGS[0] = 'pav_lake_sonia':
 		gs 'stat'
 		act 'Caught':
 			*clr & cla
-			photoskl_exp += rand(1,2)
+			gs 'exp_gain', 'photoskl', rand(1,2)
 			gs 'stat'
 			'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo2.jpg"></center>'
 			'She covers herself up and looks at you in surprise. "What the fuck <<$pcs_nickname>>?! What are you doing?"'
@@ -424,13 +424,13 @@ if $ARGS[0] = 'pav_lake_sonia':
 			act 'Take more photos':
 				*clr & cla
 				minut += 5
-				photoskl_exp += rand(1,2)
+				gs 'exp_gain', 'photoskl', rand(1,2)
 				gs 'stat'
 				'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo3.jpg"></center>'
 				'She is a little awkward at first, not knowing what to do, but as you continue taking more photos, she starts to relax and become more natural in her poses. She even starts to get into it herself and enjoying it.'
 				act 'Take more photos':
 					*clr & cla
-					photoskl_exp += rand(1,2)
+					gs 'exp_gain', 'photoskl', rand(1,2)
 					gs 'stat'
 					'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo4.jpg"></center>'
 					'As you continue photographing her, she starts teasing you by pulling on her bottoms while her hands run along her body or play with her breasts.'
@@ -439,7 +439,7 @@ if $ARGS[0] = 'pav_lake_sonia':
 					gs 'stat'
 					act 'No bottoms':
 						*clr & cla
-						photoskl_exp += rand(1,2)
+						gs 'exp_gain', 'photoskl', rand(1,2)
 						gs 'stat'
 						'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo5.jpg"></center>'
 						'She grins and unties her bottoms from one hip, which lets them partially fall off her, exposing her pussy. You take more photos as she pulls the other tie loose and her bottoms fall away.'
@@ -447,7 +447,7 @@ if $ARGS[0] = 'pav_lake_sonia':
 						gs 'stat'
 						act 'Naked':
 							*clr & cla
-							photoskl_exp += rand(1,2)
+							gs 'exp_gain', 'photoskl', rand(1,2)
 							portfolio_people[4] = 1
 							gs 'stat'
 							'<center><img src="images/characters/pavlovsk/school/girl/sonia/lake/photography/photo6.jpg"></center>'

+ 4 - 4
locations/castSpell.qsrc

@@ -34,19 +34,19 @@ if spellKnown[$SpellID] = 1:
 	if spellRoll > 50:
 		!Critical Success
 		spellSuccess = 2
-		splcstng_exp += rand(1,spellDiff[$SpellID]) + rand(0,5)
+		gs 'exp_gain', 'splcstng', rand(1,spellDiff[$SpellID]) + rand(0,5)
 	elseif spellRoll > 10:
 		!Success
 		spellSuccess = 1
-		splcstng_exp += rand(1,spellDiff[$SpellID])
+		gs 'exp_gain', 'splcstng', rand(1,spellDiff[$SpellID])
 	elseif spellRoll > -20:
 		!Failure
 		spellSuccess = 0
-		splcstng_exp += rand(1,spellDiff[$SpellID]) / 2
+		gs 'exp_gain', 'splcstng', rand(1,spellDiff[$SpellID]) / 2
 	else
 		!Critical Failure
 		spellSuccess = -1
-		splcstng_exp += rand(1,spellDiff[$SpellID]) / 2
+		gs 'exp_gain', 'splcstng', rand(1,spellDiff[$SpellID]) / 2
 	end
 	killvar 'spellRoll'
 

+ 2 - 2
locations/chessplay.qsrc

@@ -32,8 +32,8 @@ if $ARGS[0] = '':
 end
 
 if $ARGS[0] = 'game':
-	chess_exp += rand(0,1)
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'chess', rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	chess_move += 1
 	chess_time = rand(1,3)
 	minut += chess_time

+ 1 - 1
locations/city_church.qsrc

@@ -95,7 +95,7 @@ if $ARGS[0] = 'liturgy':
 	PLAY 'sound/church/t' + rand(1,19) + '.mp3',30
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/church/church'+ rand(1,8) +'.jpg"></center>'
 	'You join the congregation for the Divine Liturgy. You see mostly older people around, but there are some people around your age present as well. You participate in the singing, but that''s about it. Your presence seems to go largely unnoticed and you have the chance to rest. You feel a lot better.'
-    vokal_exp += rand(0,3)
+    gs 'exp_gain', 'vokal', rand(0,3)
     gs 'stat'
 	act 'Leave the church': gt 'city_church' , 'start'
 end

+ 1 - 1
locations/city_house_res_misc.qsrc

@@ -334,7 +334,7 @@ if $ARGS[0] = 'livroom':
 				*clr & cla
 				menu_off = 1
 				minut += 60
-				sewng_exp += rand(pcs_intel/10, pcs_intel/5)
+				gs 'exp_gain', 'sewng', rand(pcs_intel/10, pcs_intel/5)
 				gobramax = (pcs_sewng - 70) * 6
 				gobramin = (pcs_sewng - 70) * 2
 				newgobelen += rand(gobramin,gobramax)

+ 2 - 2
locations/city_kafe.qsrc

@@ -362,8 +362,8 @@ if $ARGS[0] = 'workPred':
 			znarand = rand(0, 1200)
 			chai = rand(0, pcs_apprnc/4 + pcs_servng/2)
 
-			if pcs_servng < 100:servng_exp += 1
-			if pcs_vital < 30:vital_exp += 1 + rand(0,steroid_dose) & steroidcheck = 1
+			if pcs_servng < 100:gs 'exp_gain', 'servng', 1
+			if pcs_vital < 30:gs 'exp_gain', 'vital', 1 + rand(0,steroid_dose) & steroidcheck = 1
 			if steroidcheck = 1 and steroid_dose > 0 and rand(1,5) <= steroid_dose:clit_size += rand(0,1) & killvar 'steroidcheck'
 
 			money += chai

+ 1 - 1
locations/city_kafeevents2.qsrc

@@ -39,7 +39,7 @@ end
 if $ARGS[0] = 'dance':
 	cla
 
-	if pcs_danc < 50 and pcs_agil >= pcs_danc:danc_exp += 1
+	if pcs_danc < 50 and pcs_agil >= pcs_danc:gs 'exp_gain', 'danc', 1
 
 	minut += 3
 	gs 'stat'

+ 1 - 1
locations/city_library.qsrc

@@ -49,7 +49,7 @@ act 'Leave': minut += 5 & gt 'city_center'
 
 if hour >= 8 and hour <= 18:
 	act 'Read a science book':
-		intel_exp += 4 + (mentats_dose - rand(0,mentats_dose))
+		gs 'exp_gain', 'intel', 4 + (mentats_dose - rand(0,mentats_dose))
 
 		dynamic $downlibrary['BookStudy'], ''
 

+ 3 - 3
locations/city_mansion_residence_2.qsrc

@@ -92,7 +92,7 @@ if $ARGS[0] = 'ylounge':
 					*clr & cla
 					menu_off = 1
 					minut += 60
-					sewng_exp += rand(pcs_intel/10, pcs_intel/5)
+					gs 'exp_gain', 'sewng', rand(pcs_intel/10, pcs_intel/5)
 					gobramax = (pcs_sewng - 70) * 6
 					gobramin = (pcs_sewng - 70) * 2
 					newgobelen += rand(gobramin,gobramax)
@@ -141,7 +141,7 @@ if $ARGS[0] = 'ylibrary':
 			if blizoruk = 500 or glassqw = 1: glassqw = 1 & msg 'The text blurs across the page, it seems that your eyesight is actually pretty poor. Maybe you should head to the city and visit an ophthalmologist.' & gt $curloc
 			if pcs_nerd > 0: lastread = totminut & lastreadday = daystart & pcs_nerd += 1
 			minut += 60
-			intel_exp += rand(3,6) + (mentats_dose - rand(0,mentats_dose))
+			gs 'exp_gain', 'intel', rand(3,6) + (mentats_dose - rand(0,mentats_dose))
 			blizoruk += 1
 			grupvalue[3] +=1
 			gs'stat'
@@ -211,7 +211,7 @@ if $ARGS[0] = 'ylibrary':
 			if blizoruk = 500 or glassqw = 1: glassqw = 1 & msg 'The text blurs across the page, it seems that your eyesight is actually pretty poor. Maybe you should head to the city and visit an ophthalmologist.' & gt $curloc
 			if pcs_nerd > 0: lastread = totminut & lastreadday = daystart & pcs_nerd += 1
 			minut += 60
-			sprt_exp += rand(3,6)
+			gs 'exp_gain', 'sprt', rand(3,6)
 			blizoruk += 1
 			grupvalue[3] +=2
 			gs'stat'

+ 1 - 1
locations/city_mansion_residence_3.qsrc

@@ -56,7 +56,7 @@ if $ARGS[0] = 'ypool':
 		minut += 60
 		pcs_mood += 50
 		if pcs_sweat > 10:pcs_sweat = 10 + rand(0,4)
-		if pcs_stren < 40:stren_exp += 2
+		if pcs_stren < 40:gs 'exp_gain', 'stren', 2
 		fat -= 1
 		gs 'stat'
 

+ 2 - 2
locations/city_nightclub.qsrc

@@ -276,7 +276,7 @@ if $ARGS[0] = 'dance':
 			pcs_stam -= 5
 			gs 'sweat', 'add', 3
 			fat -= 1
-			danc_exp += 1
+			gs 'exp_gain', 'danc', 1
 			if pcs_inhib < 40:inhib_exp += rand(1,2)
 			pcs_mood += 10
 
@@ -1303,7 +1303,7 @@ if $ARGS[0] = 'work':
 			if pcs_inhib < 60:inhib_exp += rand(1,2)
 			*clr & cla
 			minut += 60
-			danc_exp += rand (1,3)
+			gs 'exp_gain', 'danc', rand (1,3)
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/nightclub/club12.jpg"></center>'
 			if pcs_danc > rand (30, 100):
 				money += 300

+ 2 - 2
locations/city_park.qsrc

@@ -354,7 +354,7 @@ if $ARGS[0] = 'luna':
 				minut += 30
 				money -= 50
 
-				sprt_exp += 2
+				gs 'exp_gain', 'sprt', 2
 
 				pcs_mood += 10
 				'<center><img <<$set_imgh>> src="images/locations/city/centralpark/karusel.jpg"></center>'
@@ -406,7 +406,7 @@ if $ARGS[0] = 'luna':
 						'You can''t even hit one target.'
 					end
 
-					shoot_exp += 1
+					gs 'exp_gain', 'shoot', 1
 
 					act 'Move away':gt 'city_park', 'luna'
 				end

+ 2 - 2
locations/djibril.qsrc

@@ -149,7 +149,7 @@ if $ARGS[0] = 'djibril_playgames':
 	reccoldorm = 0
 	djibrilflag = 0
 	*clr & cla
-	gaming_exp += rand(1, 2)
+	gs 'exp_gain', 'gaming', rand(1, 2)
 	minut += 60
 	npc_rel['A82'] += 1
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big82.jpg"></center>'
@@ -165,7 +165,7 @@ if $ARGS[0] = 'djibril_chat':
 	reccoldorm = 0
 	djibrilflag = 0
 	*clr & cla
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	'<center><img <<$set_imgh>> src="images/characters/city/university/boy/djibril/djibriltalk.jpg"></center>'
 	'The two of you sit on the couch together and he talks about a few different subjects. You could ask him about something in particular or just make small talk.'
 	act 'Leave': gt 'uni_dorm', 'eighth_floor'

+ 2 - 2
locations/djibrilev1.qsrc

@@ -414,7 +414,7 @@ if $ARGS[0] = 'djibril_anya':
 	menu_off = 1
 	*clr & cla
 	minut += 60
-	gaming_exp += rand(1, 2)
+	gs 'exp_gain', 'gaming', rand(1, 2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/university/boy/djibril/djibril_anya.jpg"></center>'
 	'You sit around playing video games with Djibril before you finally hear a knock on the door. Djibril answers it and you see Anya standing there as he looks her over while she introduces herself to him. He invites her in and they walk over and sit on the couch with you. The three of you talk for a few minutes, but you can tell everyone is eager to get things going.'
@@ -648,7 +648,7 @@ if $ARGS[0] = 'djibril_nush':
 	menu_off = 1
 	*clr & cla
 	minut +60
-	gaming_exp += rand(1, 2)
+	gs 'exp_gain', 'gaming', rand(1, 2)
 	gs 'drugs', 'alcohol', 'wine', 1
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/city/university/boy/djibril/sex/dorm/anushka/nush_3some1.jpg"></center>'

+ 4 - 4
locations/dk.qsrc

@@ -83,7 +83,7 @@ if $ARGS[0] = 'holl':
 				menu_off = 1
 				alexeyQW += 1
 				minut += 60
-				vokal_exp += rand(5,10)
+				gs 'exp_gain', 'vokal', rand(5,10)
 				vokalday = daystart
 				pcs_horny += 30
 				gs 'stat'
@@ -142,7 +142,7 @@ if $ARGS[0] = 'holl':
 				money -= 500
 				minut += 60
 				alexeyQW += 1
-				vokal_exp += rand(5,10)
+				gs 'exp_gain', 'vokal', rand(5,10)
 				vokalday = daystart
 				gs 'stat'
 				'You and your teacher Alexei engage in vocal training for an hour. Nothing he does, not even the way he looks at you would suggest that he had filled all of your holes after your last session.'
@@ -154,7 +154,7 @@ if $ARGS[0] = 'holl':
 				*clr & cla
 				menu_off = 1
 				alexeyQW += 1
-				vokal_exp += rand(5,10)
+				gs 'exp_gain', 'vokal', rand(5,10)
 				vokalday = daystart
 				gs 'stat'
 				'You enter Alexei''s office. He looks at you with guilt in his eyes. "I''m sorry, <<$pcs_nickname>>, I''m a musician and an artist first and foremost... but sometimes, I''m no better than a drunk redneck."'
@@ -189,7 +189,7 @@ if $ARGS[0] = 'holl':
 				minut += 60
 				money -= 500
 				alexeyQW += 1
-				vokal_exp += rand(5,10)
+				gs 'exp_gain', 'vokal', rand(5,10)
 				vokalday = daystart
 				gs 'stat'
 				!!'<center><img <<$set_imgh>> src="images/locations/city/industrial/community/dk2.jpg"></center>'

+ 1 - 1
locations/dom_gor.qsrc

@@ -22,7 +22,7 @@ if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and
 		parkrunday = daystart
 		minut += 30
 		pcs_mood += 10
-		run_exp += 2
+		gs 'exp_gain', 'run', 2
 		fat -= 8
 		gs 'sweat', 'add', 30
 		'<center><img <<$set_imgh>> src="images/locations/shared/park/parkbeg.jpg"></center>'

+ 4 - 4
locations/etoexhib.qsrc

@@ -622,7 +622,7 @@ if $ARGS[0] = 'pos18':
 				minut += 30
 				fat -= 1
 
-				if pcs_danc < 50 and pcs_agil >= pcs_danc:danc_exp += 1
+				if pcs_danc < 50 and pcs_agil >= pcs_danc:gs 'exp_gain', 'danc', 1
 
 				pcs_mood += 10
 				frost = 0
@@ -681,7 +681,7 @@ if $ARGS[0] = 'pos18':
 				minut += 30
 				fat -= 1
 
-				if pcs_danc < 50 and pcs_agil >= pcs_danc:danc_exp += 1
+				if pcs_danc < 50 and pcs_agil >= pcs_danc:gs 'exp_gain', 'danc', 1
 
 				pcs_mood += 10
 				frost = 0
@@ -1168,8 +1168,8 @@ if $ARGS[0] = 'pos27':
 			minut += 60
 			pcs_mood -= 5
 
-			if mentats_dose > 0:intel_exp += mentats_dose - rand(0,mentats_dose)
-			if pcs_intel < 80:intel_exp += 1 + (mentats_dose - rand(0,mentats_dose))
+			if mentats_dose > 0:gs 'exp_gain', 'intel', mentats_dose - rand(0,mentats_dose)
+			if pcs_intel < 80:gs 'exp_gain', 'intel', 1 + (mentats_dose - rand(0,mentats_dose))
 			if CloStyle3 = 4 and (pcs_makeup = 1 or pcs_makeup = 2) and teachlevel < 70:teachlevel += 1
 			if pcs_makeup = 4:teachlevel -= 1
 

+ 1 - 1
locations/eugeneev1.qsrc

@@ -445,7 +445,7 @@ if $ARGS[0] = 'photography':
 			'<center><img <<$set_imgh>> src="images/pc/activities/photography/foto/people/6.jpg"></center>'
 			'You think about it before nodding. "Okay, sure. You can fuck me however you want <i>after</i> I get the photo I want. Now go put on something sexy for me." She laughs before going to try on a few different outfits until she finds something she likes. She then starts posing for you and you take a few photos until you''re sure you have the one. With the one you want taken, you put the camera aside. "Okay, I''ve got it."'
 			'She smiles at you and beckons you over. "Well get that sexy body of yours over here. I''m going to do all sorts of things to it."'
-			photoskl_exp += rand(3,5)
+			gs 'exp_gain', 'photoskl', rand(3,5)
 			portfolio_people[6] = 1
 			gs 'arousal', 'erotic_nudity', 10
 			gs 'stat'

+ 7 - 7
locations/events.qsrc

@@ -192,10 +192,10 @@ if $ARGS[0] = 'read':
 				if tractatus = 0:totalbook += 1
 				pcs_mood += 10
 				pcs_mana -= 400
-				def_exp += rand(7,10)
-				jab_exp += rand(7,10)
-				kick_exp += rand(7,10)
-				punch_exp += rand(7,10)
+				gs 'exp_gain', 'def', rand(7,10)
+				gs 'exp_gain', 'jab', rand(7,10)
+				gs 'exp_gain', 'kick', rand(7,10)
+				gs 'exp_gain', 'punch', rand(7,10)
 				minut += 15
 				gs 'stat'
 				if $clothingworntype = 'nude' and $braworntype = 'none' and $pantyworntype = 'none':
@@ -258,7 +258,7 @@ if $ARGS[0] = 'read':
 					fashmag = 0
 					pcs_mood += 5
 					minut += 30
-					makupskl_exp += 1
+					gs 'exp_gain', 'makupskl', 1
 					'You relax for half an hour reading your fashion magazine.'
 					act 'Return':gt $loc, $loc_arg
 				end
@@ -274,7 +274,7 @@ if $ARGS[0] = 'read':
 					compmag = 0
 					pcs_mood += 5
 					minut += 30
-					compskl_exp += 1 
+					gs 'exp_gain', 'compskl', 1 
 					'You relax for half an hour reading your computing magazine.'
 					act 'Return':gt $loc, $loc_arg
 				end
@@ -305,7 +305,7 @@ if $ARGS[0] = 'read':
 					knitmag = 0
 					pcs_mood += 5
 					minut += 30
-					if pcs_sewng <= 100: sewng_exp += rand(1,3)
+					if pcs_sewng <= 100: gs 'exp_gain', 'sewng', rand(1,3)
 					'You relax for half an hour reading your knitting magazine.'
 					act 'Return':gt $loc, $loc_arg
 				end

+ 22 - 0
locations/exp_gain.qsrc

@@ -0,0 +1,22 @@
+# exp_gain
+!2022/08/07
+
+!gosup that exp gain is run through to be able to modify exp gain by conditions of the player character
+
+!Modify exp gain if Sveta does not get enough sleep.
+if ARGS[1] > 0:
+	if pcs_condition['lack_of_sleep'] >= 20:
+		dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/4"
+	elseif pcs_condition['lack_of_sleep'] >= 10:
+		dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>/2"
+	elseif pcs_condition['lack_of_sleep'] >= 5:
+		dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*3)/4"
+	elseif pcs_condition['lack_of_sleep'] >= 2 and ARGS[1] > 1:
+		dynamic "<<$ARGS[0]>>_exp += (<<ARGS[1]>>*9)/10"
+	else
+		dynamic "<<$ARGS[0]>>_exp += <<ARGS[1]>>"
+	end
+end
+
+--- exp_gain ---------------------------------
+

+ 3 - 3
locations/fame.qsrc

@@ -17,7 +17,7 @@
 
 !!ARGS[2] is the value of the increase this can be an integer or one on the following keywords:
 !!tiny (Adding a small amount of fame which even at low level of fame only will make the fame grow if the are performed daily)
-!!small (Adding a small amount of fame, that at low level of fame will make the fame grow if done a couble times a week, but for medium levels of fame need to be done daily)
+!!small (Adding a small amount of fame, that at low level of fame will make the fame grow if done a couple times a week, but for medium levels of fame need to be done daily)
 !!medium (Adding a medium amount of fame, that at low level of fame can make the fame grow if done once a week, and even at high levels can make the fame grow if done daily.)
 !!large (Adding a large amount of fame which will make the fame grow fast at low level of fame, and even at high level of fame it will make the fame grow if performed a couple of times a week.)
 !!huge (Adding a large amount of fame will increase the fame drastically at low levels of fame, make it grow if done weekly at high levels of fame and even keep the fame steady at extreme levels of fame.) 
@@ -566,7 +566,7 @@ if $ARGS[0] = 'calculate':
 
 
 
-	!!This calculates fame in Pavlovks. Adding the core and local and the contributions trom other places. Each time we add two numbers we do it weigthed by the formula (1000*pav_fame+(1000-pav_fame)*contribution) with a chech such that pav_fame never decrease in a step. Excepte in the first if pav_fame_local is negative).
+	!!This calculates fame in Pavlovks. Adding the core and local and the contributions trom other places. Each time we add two numbers we do it weigthed by the formula (1000*pav_fame+(1000-pav_fame)*contribution) with a chech such that pav_fame never decrease in a step. Excepte in the first if pav_fame_local is negative). 
 	if dyneval ('RESULT = fame[''pav_<<$ARGS[1]>>_core'']') >= 1000:
 		dynamic 'fame[''pav_<<$ARGS[1]>>''] = fame[''pav_<<$ARGS[1]>>_core'']+ fame[''pav_<<$ARGS[1]>>_local'']/1000'
 	else
@@ -773,4 +773,4 @@ if $ARGS[0] = 'calculateSlut':
 	end	
 end
 
---- fame ---------------------------------
+--- fame ---------------------------------

+ 1 - 1
locations/father.qsrc

@@ -236,7 +236,7 @@ if (hour > 10 and week < 6) or week >= 6:
                             '"Sorry <<$pcs_nickname>>, like I said, I have no money. Go ask your mother."'
                         else
                             money += rand(200,300)
-                            persuas_exp += rand(0,2)
+                            gs 'exp_gain', 'persuas', rand(0,2)
                             fatherPayDay = daystart
                             gs 'stat'
                             '"Oh, alright then. Just don''t tell your mother!" he says in a tired voice, keeping his eyes on the doorway as he gives you the money. You act genuinely happy as you take the money from him, giving him a kiss on the cheek as you go.'

+ 23 - 23
locations/fbgameout.qsrc

@@ -57,7 +57,7 @@ end
 if $ARGS[0] = 'football':
 	*clr & cla
 	minut += 5
-	ftbll_exp += rand(0,2)
+	gs 'exp_gain', 'ftbll', rand(0,2)
 	grupvalue[2] += 1
 	gs 'stat'
 	*clr & cla
@@ -108,8 +108,8 @@ if $ARGS[0] = 'football':
 				act 'Tackle':
 					*clr & cla
 					minut += 5
-					ftbll_exp += rand(0,2)
-					stren_exp += 1
+					gs 'exp_gain', 'ftbll', rand(0,2)
+					gs 'exp_gain', 'stren', 1
 					grupvalue[2] -= 1
 					gs 'npc_relationship', 'modify', 'A18', 'dislike'
 					gs 'npc_relationship', 'modify', 'A19', 'dislike'
@@ -146,7 +146,7 @@ if $ARGS[0] = 'football':
 								act 'React (<<will_cost>> Willpower)':
 									*clr & cla
 									gs 'willpower', 'pay', 'self'
-									ftbll_exp += rand(0,2)
+									gs 'exp_gain', 'ftbll', rand(0,2)
 									gs 'stat'
 									'You feel pressured to act. You must decide, otherwise the attack will go to waste...'
 									
@@ -159,8 +159,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A3'] -= 1
 											pcs_mood += 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/pass.jpg"></center>'
@@ -174,7 +174,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/passfail.jpg"></center>'
 											'You decide to pass the ball to Svyatoslav. You can clearly see him waving his hands, yelling that he''s free.'
@@ -194,8 +194,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A8'] += 1
 											pcs_mood += 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/shoot.jpg"></center>'
@@ -208,7 +208,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/shootfail.jpg"></center>'
 											'You take aim and kick the ball. However, it wobbles over the goal as you''ve not put enough force into your shot.'
@@ -230,8 +230,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A13'] += 1
 											pcs_mood += 20 
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/dribble.jpg"></center>'
@@ -245,7 +245,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/dribblefail.jpg"></center>'
 											'With Christina closing in you take a step to the right, making her follow you. As soon as she catches up, you quickly jump to the left and dribble past her.'
@@ -329,7 +329,7 @@ if $ARGS[0] = 'football':
 								act 'React (<<will_cost>> Willpower)':
 									*clr & cla
 									gs 'willpower', 'pay', 'self'
-									ftbll_exp += rand(0,2)
+									gs 'exp_gain', 'ftbll', rand(0,2)
 									gs 'stat'
 									'You feel pressured to act. You must decide, otherwise the attack will go to waste...'
 									
@@ -341,8 +341,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A149'] += 1
 											pcs_mood += 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/pass.jpg"></center>'
@@ -356,7 +356,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'		
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/passfail.jpg"></center>'											
 											'You decide to pass the ball to Svyatoslav. You can clearly see him waving his hands, yelling that he''s free.'
@@ -376,8 +376,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A8'] += 1
 											pcs_mood += 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											grupvalue[2] += 1
 											gs 'stat'		
@@ -391,7 +391,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/shootfail.jpg"></center>'
 											'You take aim and kick the ball. However, it wobbles over the goal as you''ve not put enough force into the shot.'
@@ -413,8 +413,8 @@ if $ARGS[0] = 'football':
 											npc_rel['A13'] += 1
 											pcs_mood += 20 
 											gs 'sweat', 'add', 20
-											vital_exp += 1
-											ftbll_exp += 1
+											gs 'exp_gain', 'vital', 1
+											gs 'exp_gain', 'ftbll', 1
 											grupvalue[2] += 1
 											gs 'stat'		
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/dribble.jpg"></center>'
@@ -428,7 +428,7 @@ if $ARGS[0] = 'football':
 										else
 											pcs_mood -= 20
 											gs 'sweat', 'add', 20
-											vital_exp += 1
+											gs 'exp_gain', 'vital', 1
 											gs 'stat'	
 											'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/pickupgames/football/dribblefail.jpg"></center>'
 											'With Christina closing in you take a step to the right, making her follow you. As soon as she catches up, you quickly jump to the left and dribble past her...'

+ 16 - 16
locations/foto_events.qsrc

@@ -440,7 +440,7 @@ if $ARGS[0] = 'fashion_persuasion':
 			act'Clothing':
 				modelfoto['catalog'] += 1
 				cla & *clr
-				mdlng_exp += rand(2,5)
+				gs 'exp_gain', 'mdlng', rand(2,5)
 				minut += 120
 				money += 450
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/fashion3.mp4"></video></center>'
@@ -452,7 +452,7 @@ if $ARGS[0] = 'fashion_persuasion':
 			act'Swimsuits':
 				modelfoto['catalog'] += 1
 				cla & *clr
-				mdlng_exp += rand(2,5)
+				gs 'exp_gain', 'mdlng', rand(2,5)
 				minut += 120
 				money += 450
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/bikini<<rand(3,5)>>.mp4"></video></center>'
@@ -1015,7 +1015,7 @@ if $ARGS[0] = 'high_fashion':
 			minut += 120
 			modelpayfin = 1800 + (modelpay * 2) + (50*rand(0,7))
 			modelfoto['pussy'] += 1
-			mdlng_exp += rand(1,2)
+			gs 'exp_gain', 'mdlng', rand(1,2)
 			if rand(0,1) = 1:
 				gs 'fame', 'city', 'modelling', 'medium'
 			else
@@ -1188,7 +1188,7 @@ if $ARGS[0] = 'fine_art2':
 	modelfoto['topless'] += 1
 	modelfoto['nude'] += 1
 	modelfoto['pussy'] += 1
-	mdlng_exp += rand(10,20)
+	gs 'exp_gain', 'mdlng', rand(10,20)
 	if rand(0,1) = 1:
 		gs 'fame', 'city', 'modelling', 'medium'
 	else
@@ -1316,7 +1316,7 @@ if $ARGS[0] = 'modern_art':
 				modelfoto['earnings'] += modelpayfin
 				modelfoto['topless'] += 1
 				modelfoto['nude'] += 1
-				mdlng_exp += rand(9,10)
+				gs 'exp_gain', 'mdlng', rand(9,10)
 				if rand(0,1) = 1:
 					gs 'fame', 'city', 'modelling', 'medium'
 				else
@@ -1358,7 +1358,7 @@ if $ARGS[0] = 'aphrodite_advert':
 			modelfoto['earnings'] += modelpayfin
 			modelfoto['topless'] += 1
 			modelfoto['nude'] += 1
-			mdlng_exp += rand(1,10)
+			gs 'exp_gain', 'mdlng', rand(1,10)
 			if rand(0,1) = 1:
 				gs 'fame', 'city', 'modelling', 'high'
 			else
@@ -1399,7 +1399,7 @@ if $ARGS[0] = 'independent_art':
 			money += modelpayfin
 			modelfoto['earnings'] += modelpayfin
 			modelfoto['nip'] += 1
-			mdlng_exp += rand(2,8)
+			gs 'exp_gain', 'mdlng', rand(2,8)
 			if rand(0,1) = 1:
 				gs 'fame', 'city', 'modelling', 'medium'
 			else
@@ -1434,7 +1434,7 @@ if $ARGS[0] = 'designer_wedding':
 			modelfoto['earnings'] += modelpayfin
 			modelfoto['nip'] += 1
 			modelfoto['pussy'] += 1
-			mdlng_exp += rand(2,4)
+			gs 'exp_gain', 'mdlng', rand(2,4)
 			if rand(0,1) = 1:
 				gs 'fame', 'city', 'modelling', 'medium'
 			else
@@ -1583,7 +1583,7 @@ if $ARGS[0] = 'topless1.1':
 								modelfoto['earnings'] += modelpayfin
 								modelfoto['nip'] += 1
 								modelfoto['topless'] += 1
-								mdlng_exp += rand(8,10)
+								gs 'exp_gain', 'mdlng', rand(8,10)
 								gs 'fame', 'city', 'modelling', 'medium'
 								act'Leave':
 									msg'You''ve shown the studio that you''re willing to go above and beyond what is normally asked of you and that you''re willing to capitalize on your popularity as a model. The photographers might come to you for more off-site shoots like this in the future. Additionally, you are now considered a viable candidate for special requests that might be asked of the studio. Each day there may or may not be such work available for you. Check with the photographers if you want to supplement your income with these specialized jobs.'
@@ -1678,7 +1678,7 @@ if $ARGS[0] = 'pool1':
 						modelfoto['nip'] += 1
 						modelfoto['topless'] += 1
 						modelfoto['nude'] += 1
-						mdlng_exp += 10
+						gs 'exp_gain', 'mdlng', 10
 						if rand(0,1) = 1:
 							gs 'fame', 'city', 'modelling', 'medium'
 						else
@@ -1791,7 +1791,7 @@ if $ARGS[0] = 'tennis':
 							modelfoto['earnings'] += modelpayfin
 							modelfoto['nip'] += 1
 							modelfoto['topless'] += 1
-							mdlng_exp += 8
+							gs 'exp_gain', 'mdlng', 8
 							if rand(0,1) = 1:
 								gs 'fame', 'city', 'modelling', 'medium'
 							else
@@ -1866,7 +1866,7 @@ if $ARGS[0] = 'topless2':
 							money += modelpayfin
 							modelfoto['earnings'] += modelpayfin
 							gs 'fame', 'city', 'modelling', 'medium'
-							mdlng_exp += rand(8,10)
+							gs 'exp_gain', 'mdlng', rand(8,10)
 							modelfoto['nip'] += 1
 							modelfoto['topless'] += 1
 							gs 'underwear', 'wear'
@@ -1950,7 +1950,7 @@ if $ARGS[0] = 'beach2':
 								modelfoto['earnings'] += modelpayfin + 1000
 								modelfoto['topless'] += 1
 								gs 'fame', 'city', 'modelling', 'medium'
-								mdlng_exp += rand(8,10)
+								gs 'exp_gain', 'mdlng', rand(8,10)
 								modelfoto['topless'] += 1
 								modelfoto['nip'] += 1
 								gs 'stat'
@@ -2020,7 +2020,7 @@ if $ARGS[0] = 'pool2':
 						money += modelpayfin
 						modelfoto['earnings'] += modelpayfin
 						gs 'fame', 'city', 'modelling', 'medium'
-						mdlng_exp += rand(8,10)
+						gs 'exp_gain', 'mdlng', rand(8,10)
 						modelfoto['topless'] += 1
 						modelfoto['nip'] += 1
 						gs 'underwear', 'wear'
@@ -2129,7 +2129,7 @@ if $ARGS[0] = 'runway2':
 							else
 								gs 'fame', 'city', 'modelling', 'small'
 							end
-							mdlng_exp += rand(8,10)
+							gs 'exp_gain', 'mdlng', rand(8,10)
 							modelfoto['nip'] += 1
 							gs'stat'
 							*clr & cla
@@ -2241,7 +2241,7 @@ if $ARGS[0] = 'wet':
 							modelfoto['topless'] += 1
 							modelfoto['nude'] += 1
 							if pcs_makeup > 1:pcs_makeup = 0
-							mdlng_exp += rand(9,10)
+							gs 'exp_gain', 'mdlng', rand(9,10)
 							if rand(0,1) = 1:
 								gs 'fame', 'city', 'modelling', 'medium'
 							else

+ 3 - 3
locations/foto_events2.qsrc

@@ -84,7 +84,7 @@ if $ARGS[0] = 'champagne1.2':
 	modelfoto['fullnude']  += 1
 	modelfoto['nip']  += 1
 	modelfoto['pussy']  += 1
-	mdlng_exp += rand(9,10)
+	gs 'exp_gain', 'mdlng', rand(9,10)
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/mirrors.jpg"></center>'
 	'You walk over to the makeup department and the dressers get your hair and face ready before going to meet the photographer on set. Just before you leave, they have you slip on a gold thong and then send you on your way.'
 	act'Continue':
@@ -138,7 +138,7 @@ if $ARGS[0] = 'kickboxing_documentary':
             minut += 120
             modelpayfin = 900 + (modelpay * 2) + (50*rand(0,7)) + ((fame['city_kickboxing'] + pcs_apprnc)/2)*2
             modelfoto['nude']  += 1
-            mdlng_exp += rand(1,2)
+            gs 'exp_gain', 'mdlng', rand(1,2)
 			gs 'fame', 'city', 'kickboxing', 'medium'
             gs 'fame', 'city', 'modelling', 'medium'
 			gs 'arousal', 'flash', 5
@@ -213,7 +213,7 @@ if $ARGS[0] = 'track_&_field_documentary':
             minut += 120
             modelpayfin = 1800 + (modelpay * 2) + (50*rand(0,7)) + ((fame['city_running'] + pcs_apprnc)/2)*2
             modelfoto['nude']  += 1
-            mdlng_exp += rand(1,2)
+            gs 'exp_gain', 'mdlng', rand(1,2)
 			gs 'fame', 'city', 'running', 'small'
             gs 'fame', 'city', 'modelling', 'small'
             money += modelpayfin

+ 1 - 1
locations/foto_model_documentary.qsrc

@@ -1117,7 +1117,7 @@ if $ARGS[0] = '1st_documentary_end':
 	minut += 10
 	modelpay = (pcs_mdlng/2 * 10) + min(fame['city_modelling'], 700) + pcs_apprnc
 	modelpayfin = 600 + (modelpay * 2) + (15*rand(0,5))
-	mdlng_exp += rand(9,10)
+	gs 'exp_gain', 'mdlng', rand(9,10)
 	if pcs_inhib < 55: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'medium'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', 'small'

+ 3 - 3
locations/foto_models2.qsrc

@@ -356,7 +356,7 @@ if $ARGS[0] = 'emily_chat':
 			act'Suck up to her':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/portraits/emily_r/talking/2.jpg"></center>'
-				mdlng_exp += 2
+				gs 'exp_gain', 'mdlng', 2
 				'"Oh. I mean, I just thought I''d ask you because you''re the best model here. I thought you would have the best advice to give."'
 				'"Well, it''s not like you''re wrong." She shrugs and acts like what you said was just stating facts but you can tell she''s secretly pleased by what you said. "I suppose I could give some advice to a poor unfortunate soul like you. At the very least maybe you''d stop embarrassing yourself on set and making the studio look bad." You stomach the verbal abuse and keep yourself in check, recognizing that with Emily you''re going to have to take her attitude if you want to get anywhere with her.'
 				'"The most important things about modelling is how to hold yourself. If you can''t pull off the pose to make yourself or the clothes you''re wearing look sexy then you''ve failed. Practice the poses, spend time in front of the mirror testing looks. And when you''re on set, keep changing it up. Taking direction from the photographers is important but if you want to act like a professional then you need to take initiative. Every time the camera flashes, alter your position, even if just a little bit. They''re only looking for one perfect shot, either they have it or they don''t. But help them search. And don''t waste their time."'
@@ -365,7 +365,7 @@ if $ARGS[0] = 'emily_chat':
 			act'Taunt her into helping you':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/portraits/emily_r/talking/5.jpg"></center>'
-				mdlng_exp += 2
+				gs 'exp_gain', 'mdlng', 2
 				'"What? You''re so afraid of your position that if you give help to a silly amateur like me it''ll knock you off your pedestal? Huh. Maybe you''re not good enough for me to be asking after all."'
 				'Emily''s eyes narrow at your words before re-adjusting herself to respond. "I suppose I could give some advice to a poor unfortunate soul like you. At the very least maybe you''d stop embarrassing yourself on set and making the studio look bad. I can''t have you bringing down Aphrodite''s name and my fame just by association."'
 				'You smirk inwardly, pleased with how easy it was to manipulate her into doing this and listen as she starts giving you real advice.'
@@ -674,7 +674,7 @@ if $ARGS[0] = 'jeff_chat':
 		act'Ask for modelling advice':
 			*clr & cla
 			jeff['model_exp'] = daystart
-			mdlng_exp += 1
+			gs 'exp_gain', 'mdlng', 1
 			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/portraits/jeff_m/talking/9.jpg"></center>'
 			'"How to be a better model? Oh that''s easy! Just have fun!" she says.'
 			'<i>Typical answer from her... Couldn''t have expected more I guess...</i>'

+ 16 - 16
locations/foto_practice.qsrc

@@ -60,7 +60,7 @@ if $ARGS[0] = 'fashion':
 			*clr & cla
 			minut += 120
 			modelpayfin = 0
-			mdlng_exp += rand(3,5)
+			gs 'exp_gain', 'mdlng', rand(3,5)
 			fashionshoot = rand(1,4)
 			gs 'stat'
 			if fashionshoot <= 2:'<center><video autoplay loop src="images/locations/city/citycenter/photo/fashion/<<rand(1,5)>>.mp4"></video></center>'
@@ -107,7 +107,7 @@ if $ARGS[0] = 'bikini':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				if pcs_inhib < 50:inhib_exp += rand(1,3)
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/bikini/<<rand(4,5)>>.mp4"></video></center>'
@@ -145,7 +145,7 @@ if $ARGS[0] = 'bikini':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += rand(6,10)
+				gs 'exp_gain', 'mdlng', rand(6,10)
 				if pcs_inhib < 50:inhib_exp += 1
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/bikini/<<rand(4,5)>>.mp4"></video></center>'
@@ -191,7 +191,7 @@ if $ARGS[0] = 'lingerie':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				if pcs_inhib < 50:inhib_exp += rand (1,3)
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/lingerie/<<rand(1,2)>>.mp4"></video></center>'
@@ -229,7 +229,7 @@ if $ARGS[0] = 'lingerie':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += rand(6,10)
+				gs 'exp_gain', 'mdlng', rand(6,10)
 				if pcs_inhib < 50:inhib_exp += 2
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/lingerie/<<rand(1,2)>>.mp4"></video></center>'
@@ -274,7 +274,7 @@ if $ARGS[0] = 'sexy':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				inhib_exp += rand(1,4)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/sexy/<<rand(1,12)>>.jpg"></center>'
@@ -312,7 +312,7 @@ if $ARGS[0] = 'sexy':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += rand(5,8)
+				gs 'exp_gain', 'mdlng', rand(5,8)
 				inhib_exp += 2
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/sexy/<<rand(1,12)>>.jpg"></center>'
@@ -359,7 +359,7 @@ if $ARGS[0] = 'transparent':
 
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				inhib_exp += rand(1,4)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/seethru/<<rand(1,9)>>.jpg"><img <<$set_imgh>> src="images/locations/city/citycenter/photo/seethru2.jpg"></center>'
@@ -382,7 +382,7 @@ if $ARGS[0] = 'transparent':
 
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				inhib_exp += rand(1,4)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/seethru/<<rand(1,9)>>.jpg"><img <<$set_imgh>> src="images/locations/city/citycenter/photo/seethru2.jpg"></center>'
@@ -414,7 +414,7 @@ if $ARGS[0] = 'trans_ling':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				inhib_exp += rand(1,2)
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/ling_trans/<<rand(1,3)>>.mp4"></video></center>'
@@ -456,7 +456,7 @@ if $ARGS[0] = 'trans_ling':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += rand(8,10)
+				gs 'exp_gain', 'mdlng', rand(8,10)
 				inhib_exp += 4
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/ling_trans/<<rand(1,3)>>.mp4"></video></center>'
@@ -503,7 +503,7 @@ if $ARGS[0] = 'topless':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += 1
+				gs 'exp_gain', 'mdlng', 1
 				inhib_exp += rand(2,5)
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/model4.mp4"></video></center>'
@@ -542,7 +542,7 @@ if $ARGS[0] = 'topless':
 				*clr & cla
 				minut += 120
 				modelpayfin = 0
-				mdlng_exp += rand(6,10)
+				gs 'exp_gain', 'mdlng', rand(6,10)
 				inhib_exp += 3
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/model4.mp4"></video></center>'
@@ -610,7 +610,7 @@ if $ARGS[0] = 'nude':
 					'"Well, if you''re sure. But I''m telling you, it won''t help very much until you''re more comfortable."'
 					act'Continue':
 						cla & *clr
-						mdlng_exp += rand(1,3)
+						gs 'exp_gain', 'mdlng', rand(1,3)
 						inhib_exp += 1
 						gs 'stat'
 						'<center><video autoplay loop src="images/locations/city/citycenter/photo/nudepractice3.mp4"></video></center>'
@@ -623,7 +623,7 @@ if $ARGS[0] = 'nude':
 				
 				act'Yes':
 					cla & *clr
-					mdlng_exp += 1
+					gs 'exp_gain', 'mdlng', 1
 					gs 'stat'
 					'<center><video autoplay loop src="images/locations/city/citycenter/photo/nudepractice2.mp4"></video></center>'
 					if pcs_inhib >= 60:
@@ -676,7 +676,7 @@ if $ARGS[0] = 'nude':
 					end
 				end
 			else
-				mdlng_exp += rand(9,10)
+				gs 'exp_gain', 'mdlng', rand(9,10)
 				inhib_exp += 2
 				gs 'stat'
 				'<center><video autoplay loop src="images/locations/city/citycenter/photo/nudepractice.mp4"></video></center>'

+ 18 - 18
locations/foto_shoot.qsrc

@@ -51,7 +51,7 @@ if $ARGS[0] = 'model':
 			model_week = (daystart - week) / 7
 			modelfoto['catalog'] += 1
 			model_job_week += 1
-			mdlng_exp += rand(2,5)
+			gs 'exp_gain', 'mdlng', rand(2,5)
 			gs 'fame', 'city', 'modelling', 'tiny'
 			minut += 120
 			money += 450
@@ -74,7 +74,7 @@ if $ARGS[0] = 'model':
 			model_week = (daystart - week) / 7
 			modelfoto['catalog'] += 1
 			model_job_week += 1
-			mdlng_exp += rand(2,5)
+			gs 'exp_gain', 'mdlng', rand(2,5)
 			gs 'fame', 'city', 'modelling', 'tiny'
 			minut += 120
 			money += 450
@@ -199,7 +199,7 @@ end
 !!			minut += 120
 !!			modelpayfin = 700 + (modelpay) + (15*rand(0,5))
 !!			modelfoto['nip'] += 1
-!!			mdlng_exp += rand(6,10)
+!!			gs 'exp_gain', 'mdlng', rand(6,10)
 !!			fame['city_modelling'] += rand(7,13)
 !!			pav_modelling += rand(1,fame['city_modelling'])/10
 !!			inhib_exp += 2
@@ -551,7 +551,7 @@ if $ARGS[0] = 'fashion':
 	minut += 120
 	modelpayfin = 300 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (min(fame['city_modelling'], 700)/2) + (pcs_mdlng/2 * 10)
 	modelfoto['fashion'] += 1
-	mdlng_exp += rand(5,8)
+	gs 'exp_gain', 'mdlng', rand(5,8)
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,10)
 	fashionshoot = rand(1,2)
@@ -579,7 +579,7 @@ if $ARGS[0] = 'bikini':
 	if pcs_inhib < 20: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,10)
-	mdlng_exp += rand(6,10)
+	gs 'exp_gain', 'mdlng', rand(6,10)
 	if pcs_inhib < 50:inhib_exp += rand(0,1)
 	gs 'stat'
 	'<center><video autoplay loop src="images/locations/city/citycenter/photo/bikini/<<rand(4,5)>>.mp4"></video></center>'
@@ -599,7 +599,7 @@ if $ARGS[0] = 'lingerie':
 	minut += 120
 	modelpayfin = 350 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (min(fame['city_modelling'], 700)/2) + (pcs_mdlng/2 * 10)
 	modelfoto['lingerie'] += 1
-	mdlng_exp += rand(6,10)
+	gs 'exp_gain', 'mdlng', rand(6,10)
 	if pcs_inhib < 25: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,6)
@@ -626,7 +626,7 @@ if $ARGS[0] = 'sexy':
 	modelpayfin = 500 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (min(fame['city_modelling'], 700)/2) + (pcs_mdlng/2 * 10)
 	modelfoto['glamour'] += 1
 	modelfoto['sexy'] += 1
-	mdlng_exp += rand(5,10)
+	gs 'exp_gain', 'mdlng', rand(5,10)
 	if pcs_inhib < 30: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(1,6)
@@ -651,7 +651,7 @@ if $ARGS[0] = 'transparent':
 	modelfoto['sexy'] 
 	modelfoto['transparent'] += 1
 	modelfoto['nip'] += 1
-	mdlng_exp += rand(6,10)
+	gs 'exp_gain', 'mdlng', rand(6,10)
 	if pcs_inhib < 45: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,8)
@@ -676,7 +676,7 @@ if $ARGS[0] = 'trans_ling':
 	modelfoto['trans_ling'] += 1
 	modelfoto['nip'] += 1
 	modelfoto['lingerie'] += 1
-	mdlng_exp += rand(8,10)
+	gs 'exp_gain', 'mdlng', rand(8,10)
 	if pcs_inhib < 45: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,8)
@@ -705,7 +705,7 @@ if $ARGS[0] = 'topless':
 	modelpayfin = 700 + (modelpay) + (pcs_apprnc) + (15*rand(0,5))
 	modelfoto['nip'] += 1
 	modelfoto['topless'] += 1
-	mdlng_exp += rand(6,10)
+	gs 'exp_gain', 'mdlng', rand(6,10)
 	if pcs_inhib < 50: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,8)
@@ -729,7 +729,7 @@ if $ARGS[0] = 'tasteful':
 	modelpayfin = 600 + (modelpay * 2) + (15*rand(0,5))
 	modelfoto['tastenude'] += 1
 	modelfoto['nude'] += 1
-	mdlng_exp += rand(9,10)
+	gs 'exp_gain', 'mdlng', rand(9,10)
 	if pcs_inhib < 40: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,10)
@@ -752,7 +752,7 @@ if $ARGS[0] = 'topless_nude':
 	modelpayfin = 600 + (modelpay * 2) + (15*rand(0,5))
 	modelfoto['nude'] += 1
 	modelfoto['toplessnude'] += 1
-	mdlng_exp += rand(9,10)
+	gs 'exp_gain', 'mdlng', rand(9,10)
 	if pcs_inhib < 55: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'medium'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(3,10)
@@ -778,7 +778,7 @@ if $ARGS[0] = 'nude':
 	modelfoto['fullnude'] += 1
 	modelfoto['nip'] += 1
 	modelfoto['pussy'] += 1
-	mdlng_exp += rand(9,10)
+	gs 'exp_gain', 'mdlng', rand(9,10)
 	if pcs_inhib < 60: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'medium'
 	if fame['city_modelling'] > 200: gs 'fame', 'city', 'modelling', rand(5,10)
@@ -817,7 +817,7 @@ if $ARGS[0] = 'erotic':
 	modelfoto['nip'] += 1
 	modelfoto['pussy'] += 1
 	modelfoto['asshole'] += 1
-	mdlng_exp += rand(1,4)
+	gs 'exp_gain', 'mdlng', rand(1,4)
 	if pcs_inhib < 65: gs 'willpower','pay','self'
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'fame', 'city', 'porn', 'small'
@@ -844,7 +844,7 @@ if $ARGS[0] = 'sportswear':
 	modelpayfin = 300 + (modelpay) + (15*rand(0,5)) + (pcs_apprnc) + (fame['city_modelling']/2) + (pcs_mdlng/2 * 10) + (city_sport/2)
 	modelfoto['fitness'] += 1
 	pcs_sweat = 60
-	mdlng_exp += rand(2,4)
+	gs 'exp_gain', 'mdlng', rand(2,4)
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'stat'
 	if bodset = 2 and salocatnow >= 2:
@@ -873,7 +873,7 @@ if $ARGS[0] = 'sports_underwear':
 	modelfoto['fitness'] += 1
 	pcs_sweat = 60
 	gs 'fame', 'city', 'modelling', 'small'
-	mdlng_exp += rand(3,6)
+	gs 'exp_gain', 'mdlng', rand(3,6)
 	if pcs_inhib < 50:inhib_exp += 1
 	gs 'stat'
 	if bodset = 2 and salocatnow >= 2:
@@ -899,7 +899,7 @@ if $ARGS[0] = 'fitness_artistic_nude':
 	modelfoto['fitness'] += 1
 	modelfoto['nude'] += 1
 	pcs_sweat = 60
-	mdlng_exp += rand(4,5)
+	gs 'exp_gain', 'mdlng', rand(4,5)
 	gs 'fame', 'city', 'modelling', 'small'
 	inhib_exp += 2
 	gs 'stat'	
@@ -930,7 +930,7 @@ end
 !!				*clr & cla
 !!				minut += 120
 !!				modelpayfin = 825 + (modelpay * 2) + (15*rand(0,7))
-!!				mdlng_exp += 10
+!!				gs 'exp_gain', 'mdlng', 10
 !!				fame['city_modelling'] += rand(10,20)
 !!				pav_modelling += rand(0,fame['city_modelling'])/10
 !!				inhib_exp += 3

+ 1 - 1
locations/gad_church.qsrc

@@ -95,7 +95,7 @@ if $ARGS[0] = 'liturgy':
 	PLAY 'sound/church/t' + rand(1,19) + '.mp3',30
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/church/church'+ rand(1,8) +'.jpg"></center>'
 	'You join the congregation for the Divine Liturgy. You see mostly older people around, but some people around your age are also present. You participate in the singing, but that''s about it. Your presence seems to go largely unnoticed, and you have the chance to rest. You feel a lot better.'
-    vokal_exp += rand(0,3)
+    gs 'exp_gain', 'vokal', rand(0,3)
     gs 'stat'
 	act 'Leave the church': gt 'gad_church' , 'start'
 end

+ 2 - 2
locations/gaddvor.qsrc

@@ -80,7 +80,7 @@ if $ARGS[0]='':
 				pcs_stam -= 5
 				gs 'sweat', 'add', 10
 			else
-				stren_exp += 1
+				gs 'exp_gain', 'stren', 1
 				fat -= rand(1,5)
 				pcs_stam -= 10
 				gs 'sweat', 'add', 5
@@ -240,7 +240,7 @@ if $ARGS[0] = 'chickens':
 			'You decide to feed the chickens. You pick up a bucket full of bird''s seed and grain mix and toss it on the ground. They immediately rush over and start to greedily eat. You watch them for a bit before you go about your business.'
 			minut += 30
 			grandmaQW['chore_feed_chickens'] = 2
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Finish':gt'gaddvor'

+ 13 - 13
locations/gadfield.qsrc

@@ -69,7 +69,7 @@ if $ARGS[0] = 'field':
 			minut += 300
 			if sunWeather = 1:pcs_tan += 1
 			grandpaQW['chore_bale_hay'] = 2
-			hndiwrk_exp += rand(0,8)
+			gs 'exp_gain', 'hndiwrk', rand(0,8)
 			gs 'stat'
 
 			act 'Continue':gt'gadfield','field'
@@ -104,7 +104,7 @@ if $ARGS[0] = 'horse':
 			'You spot your grandfather''s horse wandering loose in the field and decide to help by taking Desperado home. Reaching for the harness, you start leading Desperado towards the village.'
 			minut += 60
 			grandmaQW['help_amount'] += rand(0,1)
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Continue':gt'gadsarai',''
@@ -138,7 +138,7 @@ if $ARGS[0] = 'cow':
 			'Seeing the cow herd on the field, you decide to help your grandfather bring the cows home...'
 			minut += 60
 			grandmaQW['help_amount'] += 1
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Continue':gt'gadfield','cow'
@@ -155,7 +155,7 @@ if $ARGS[0] = 'cow':
 
 				if hour >= 9:minut += 20
 				if hour < 9:minut += 60
-				hndiwrk_exp += rand(0,4)
+				gs 'exp_gain', 'hndiwrk', rand(0,4)
 				gs 'stat'
 
 				act 'Continue':gt'gadfield','cow'
@@ -180,7 +180,7 @@ if $ARGS[0] = 'cow':
 				end
 				grandpaQW['chore_herd_cattle_experience'] = 1
 				if rand(0,1) = 1:grandmaQW['help_amount'] += rand(0,1)
-				hndiwrk_exp += rand(0,3)
+				gs 'exp_gain', 'hndiwrk', rand(0,3)
 				gs 'stat'
 
 				act 'Continue':gt'gadfield','cow'
@@ -196,7 +196,7 @@ if $ARGS[0] = 'cow':
 					frost = 0
 					minut += 60
 					fat -= 5
-					run_exp += 1
+					gs 'exp_gain', 'run', 1
 					gs 'sweat', 'add', 10
 					pcs_mood += 5
 					pcs_stam -= 8
@@ -309,7 +309,7 @@ if $ARGS[0] = 'cow':
 			end
 			grandmaQW['help_amount'] += 1
 			minut += 60
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Herd the cows nearer to the river (0:15)': minut += 15 & gt'gadfield','cow2'
@@ -381,7 +381,7 @@ if $ARGS[0] = 'cow2':
 				end
 				grandpaQW['chore_herd_cattle_experience'] = 1
 				if rand(0,1) = 1:grandmaQW['help_amount'] += rand(0,1)
-				hndiwrk_exp += rand(0,3)
+				gs 'exp_gain', 'hndiwrk', rand(0,3)
 				gs 'stat'
 
 				act 'Continue':gt'gadfield','cow2'
@@ -398,7 +398,7 @@ if $ARGS[0] = 'cow2':
 					pcs_stam -= 3
 					pcs_mood += 5
 					if willday_swim ! daystart: willday_swim = daystart & pcs_willpwr += 1
-					if pcs_stren < 30:stren_exp += 1
+					if pcs_stren < 30:gs 'exp_gain', 'stren', 1
 					gs 'stat'
 
 					act 'Continue':gt'gadfield','cow2'
@@ -463,7 +463,7 @@ if $ARGS[0] = 'cow2':
 				pcs_stam -= 5
 			end
 			if rand(0,1) = 1:grandmaQW['help_amount'] += rand(0,1)
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Herd the cows nearer to the forest (0:30)': minut += 15 & gt'gadfield','cow3'
@@ -510,7 +510,7 @@ if $ARGS[0] = 'cow3':
 				end
 				grandpaQW['chore_herd_cattle_experience'] = 1
 				if rand(0,1) = 1:grandmaQW['help_amount'] += rand(0,1)
-				hndiwrk_exp += rand(0,3)
+				gs 'exp_gain', 'hndiwrk', rand(0,3)
 				gs 'stat'
 
 				act 'Continue':gt'gadfield','cow3'
@@ -525,7 +525,7 @@ if $ARGS[0] = 'cow3':
 					frost = 0
 					minut += 60
 					fat -= 5
-					run_exp += 1
+					gs 'exp_gain', 'run', 1
 					gs 'sweat', 'add', 10
 					pcs_mood += 5
 					pcs_stam -= 8
@@ -641,7 +641,7 @@ if $ARGS[0] = 'cow3':
 			mira = 0
 			grandpaQW['chore_herd_cattle'] = 0
 			grandmaQW['help_amount'] += 2
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			act 'Back to the village':gt'gadukino'

+ 1 - 1
locations/gadforest.qsrc

@@ -553,7 +553,7 @@ if $ARGS[0] = 'bushcraft':
 
 		! bushcraft exp gained is random to keep it from increasing too fast
 		if rand(0,1) = 0:
-			bushcraft_exp += rand(1,bushcraft_rand)
+			gs 'exp_gain', 'bushcraft', rand(1,bushcraft_rand)
 		end
 	else
 		! use the lower chance of ripping clothes when Sveta has higher bushcraft

+ 15 - 15
locations/gadforestlost.qsrc

@@ -83,7 +83,7 @@ if $ARGS[0] = 'bushcraft':
 		torncloth_low_bushcraft = 5
 	end
 	! No limit on earning bushcraft while lost but still random
-	bushcraft_exp += rand(0,bushcraft_rand)
+	gs 'exp_gain', 'bushcraft', rand(0,bushcraft_rand)
 
 	ripclothesrand = rand(1,10)
 	if pcs_bushcraft < bushcraft_limit:
@@ -407,7 +407,7 @@ if $ARGS[0] = 'finish':
 	menu_off = 1
 	bonfire = 0
 	pcs_mood += 20
-	bushcraft_exp += rand(1,5)
+	gs 'exp_gain', 'bushcraft', rand(1,5)
 	gs 'clothing', 'swamp_clothes', 0
 	gs 'stat'
 
@@ -488,7 +488,7 @@ if $ARGS[0] = 'rescue':
 	menu_off = 1
 	bonfire = 0
 	pcs_mood += 20
-	bushcraft_exp += rand(1,5)
+	gs 'exp_gain', 'bushcraft', rand(1,5)
 	lost_girl = 0
 	if swamp_clothes = 1:
 		'You remove the terrible excuse for clothing the hunters gave you. You''re sure you can find something better to wear at your grandparents house.'
@@ -625,19 +625,19 @@ if $ARGS[0] = 'wolves':
 				foresteventrand = rand(1,6)
 			end
 			if foresteventrand <= 3:
-				bushcraft_exp += rand(1,3)
+				gs 'exp_gain', 'bushcraft', rand(1,3)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end2.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, but unfortunately are still in the forest.'
 			elseif foresteventrand <= 6:
-				bushcraft_exp += rand(1,5)
+				gs 'exp_gain', 'bushcraft', rand(1,5)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end1.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, and also are no longer in the forest.'
 			elseif foresteventrand <= 7:
-				bushcraft_exp += rand(1,2)
+				gs 'exp_gain', 'bushcraft', rand(1,2)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/horror.jpg"></center>'
 				*nl
@@ -657,19 +657,19 @@ if $ARGS[0] = 'wolves':
 				foresteventrand = rand(1,9)
 			end
 			if foresteventrand <= 5:
-				bushcraft_exp += rand(1,3)
+				gs 'exp_gain', 'bushcraft', rand(1,3)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end2.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, but unfortunately are still lost in the forest.'
 			elseif foresteventrand <= 9:
-				bushcraft_exp += rand(1,5)
+				gs 'exp_gain', 'bushcraft', rand(1,5)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end1.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, and also are no longer lost as you recognize your surroundings.'
 			elseif foresteventrand <= 10:
-				bushcraft_exp += rand(1,2)
+				gs 'exp_gain', 'bushcraft', rand(1,2)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/horror.jpg"></center>'
 				*nl
@@ -691,19 +691,19 @@ if $ARGS[0] = 'wolves':
 				foresteventrand = rand(1,2)
 			end
 			if foresteventrand <= 6:
-				bushcraft_exp += rand(1,3)
+				gs 'exp_gain', 'bushcraft', rand(1,3)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end2.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, but unfortunately are still lost in the forest.'
 			elseif foresteventrand <= 12:
-				bushcraft_exp += rand(1,5)
+				gs 'exp_gain', 'bushcraft', rand(1,5)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end1.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, and also are no longer lost as you recognize your surroundings.'
 			elseif foresteventrand <= 13:
-				bushcraft_exp += rand(1,2)
+				gs 'exp_gain', 'bushcraft', rand(1,2)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/horror.jpg"></center>'
 				*nl
@@ -727,19 +727,19 @@ if $ARGS[0] = 'wolves':
 				foresteventrand = rand(1,13)
 			end
 			if foresteventrand <= 8:
-				bushcraft_exp += rand(1,3)
+				gs 'exp_gain', 'bushcraft', rand(1,3)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end2.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, but unfortunately are still lost in the forest.'
 			elseif foresteventrand <= 13:
-				bushcraft_exp += rand(1,5)
+				gs 'exp_gain', 'bushcraft', rand(1,5)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/run_end1.jpg"></center>'
 				*nl
 				'You are successful in escaping the wolves, and also are no longer in the forest.'
 			elseif foresteventrand <= 14:
-				bushcraft_exp += rand(1,2)
+				gs 'exp_gain', 'bushcraft', rand(1,2)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/gadukino/forest/horror.jpg"></center>'
 				*nl

+ 10 - 10
locations/gadgarden.qsrc

@@ -44,9 +44,9 @@ if $ARGS[0] = 'garden':
 			minut += 180
 			gs 'sweat', 'add', 10
 			grandmaQW['chore_work_in_garden'] = 2
-			stren_exp += 1
+			gs 'exp_gain', 'stren', 1
 			fat -= rand(1,5)
-			hndiwrk_exp += rand(3,9)
+			gs 'exp_gain', 'hndiwrk', rand(3,9)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/work_garden'+rand(1,5)+'.jpg"></center>'
@@ -64,9 +64,9 @@ if $ARGS[0] = 'garden':
 			gs 'sweat', 'add', 10
 			minut += 60
 			grandmaQW['chore_water_garden'] = 2
-			vital_exp += 1
+			gs 'exp_gain', 'vital', 1
 			fat -= rand(1,2)
-			hndiwrk_exp += rand(0,3)
+			gs 'exp_gain', 'hndiwrk', rand(0,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/water_garden.jpg"></center>'
@@ -84,9 +84,9 @@ if $ARGS[0] = 'garden':
 			minut += 180
 			gs 'sweat', 'add', 10
 			grandmaQW['chore_harvest_garden'] = 2
-			stren_exp += 1
+			gs 'exp_gain', 'stren', 1
 			fat -= rand(1,3)
-			hndiwrk_exp += rand(3,9)
+			gs 'exp_gain', 'hndiwrk', rand(3,9)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/harvest_garden'+rand(1,5)+'.jpg"></center>'
@@ -154,9 +154,9 @@ if $ARGS[0] = 'strawberry':
 			minut += 180
 			gs 'sweat', 'add', 10
 			grandmaQW['chore_collect_strawberries'] = 2
-			agil_exp += 1
+			gs 'exp_gain', 'agil', 1
 			fat -= 1
-			hndiwrk_exp += rand(3,9)
+			gs 'exp_gain', 'hndiwrk', rand(3,9)
 			gs 'stat'
 
 			if PCloSkirt = 0:'<center><img <<$set_imgh>> src="images/locations/gadukino/village/collect_strawberries.jpg"></center>'
@@ -220,9 +220,9 @@ if $ARGS[0] = 'fruit_garden':
 			minut += 180
 			gs 'sweat', 'add', 10
 			grandmaQW['chore_collect_fruit'] = 2
-			agil_exp += 1
+			gs 'exp_gain', 'agil', 1
 			fat -= rand(1,3)
-			hndiwrk_exp += rand(3,9)
+			gs 'exp_gain', 'hndiwrk', rand(3,9)
 			gs 'stat'
 
 			if PCloSkirt = 0:'<center><img <<$set_imgh>> src="images/locations/gadukino/village/fruit_collect.jpg"></center>'

+ 1 - 1
locations/gadhouse.qsrc

@@ -483,7 +483,7 @@ if $ARGS[0] = 'main':
 				*clr & cla
 				menu_off = 1
 				minut += 60
-				sewng_exp += rand(pcs_intel/10, pcs_intel/5)
+				gs 'exp_gain', 'sewng', rand(pcs_intel/10, pcs_intel/5)
 				gobramax = (pcs_sewng - 70) * 6
 				gobramin = (pcs_sewng - 70) * 2
 				newgobelen += rand(gobramin,gobramax)

+ 6 - 6
locations/gadriver.qsrc

@@ -330,7 +330,7 @@ if $ARGS[0] = 'gadbitch':
 					pcs_sweat = 10 + rand(0,4)
 					pcs_mood += 5
 					inhib_exp += rand(1,3)
-					if pcs_stren < 30: stren_exp += 1
+					if pcs_stren < 30: gs 'exp_gain', 'stren', 1
 					if hour >= 22 and hour <= 6:
 						'<center><img <<$set_imgh>> src="images/locations/gadukino/river/watergirls1.jpg"></center>'
 						'You strip your clothes off and slowly step in to the cold river, knowing that the darkness hides your nudity. You swim around feeling the refreshing and invigorating water caressing your body.'
@@ -525,7 +525,7 @@ if $ARGS[0] = 'gadbitch':
 						pcs_sweat = 10 + rand(0,4)
 						pcs_mood += 5
 						if pcs_inhib < 50 or $clothingworntype = 'nude': inhib_exp += rand(1,3)
-						hndiwrk_exp += rand(1,3)
+						gs 'exp_gain', 'hndiwrk', rand(1,3)
 						grandpaQW['chore_bathe_horse_prog'] = 2
 						gs 'stat'
 
@@ -554,7 +554,7 @@ if $ARGS[0] = 'gadbitch':
 							pcs_sweat = 10 + rand(0,4)
 							pcs_mood += 5
 							if pcs_inhib < 50 or $clothingworntype = 'nude': inhib_exp += rand(1,3)
-							hndiwrk_exp += rand(1,3)
+							gs 'exp_gain', 'hndiwrk', rand(1,3)
 							grandpaQW['chore_bathe_horse_prog'] = 2
 							gs 'stat'
 
@@ -593,7 +593,7 @@ if $ARGS[0] = 'gadbitch':
 					act'Return':gt'gadriver', 'gadbitch'
 				else
 					minut += 30
-					hndiwrk_exp += rand(0,3)
+					gs 'exp_gain', 'hndiwrk', rand(0,3)
 					grandpaQW['chore_bathe_horse'] = 2
 					grandpaQW['chore_bathe_horse_prog'] = 0
 					gs 'stat'
@@ -1118,13 +1118,13 @@ if $ARGS[0] = 'fishing':
 					*clr
 					minut += 1
 					temp_gr = rand(0,120)
-					if temp_gr < 50:react_exp += 1
+					if temp_gr < 50:gs 'exp_gain', 'react', 1
 					gs 'stat'
 
 					if pcs_react > temp_gr:
 						pcs_mood += rand(5,10)
 						minut += 1
-						react_exp += 1
+						gs 'exp_gain', 'react', 1
 						fish += 1
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/locations/gadukino/river/fishyes.jpg"></center>'

+ 1 - 1
locations/gadroad.qsrc

@@ -69,7 +69,7 @@ if $ARGS[0] = '':
 			menu_off = 1
 			minut += 60
 			fat -= RAND(5,15)
-			run_exp += RAND(3,6)
+			gs 'exp_gain', 'run', RAND(3,6)
 			gs 'sweat', 'add', 20
 			gadrunday = daystart
 			gs'stat'

+ 14 - 14
locations/gadsarai.qsrc

@@ -73,7 +73,7 @@ if $ARGS[0] = 'search':
 	if BikeLoc = 0 and rand(0,10) >= 6:
 		*clr & cla
 		BikeLoc = 1
-		observ_exp += 3
+		gs 'exp_gain', 'observ', 3
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/gadukino/village/findbike.jpg"></center>'
 		*nl
@@ -82,7 +82,7 @@ if $ARGS[0] = 'search':
 		*clr & cla
 		findbag = 1
 		if findbag = 1: bag = 1
-		observ_exp += 3
+		gs 'exp_gain', 'observ', 3
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/items/gm/purses/5.jpg"></center>'
 		*nl
@@ -94,7 +94,7 @@ if $ARGS[0] = 'search':
 	elseif vcard = 0 and vcard_trash = 0 and rand(0,10) >= 8:
 		*clr & cla
 		vcard = 1
-		observ_exp += 3
+		gs 'exp_gain', 'observ', 3
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/gadukino/village/vcards.jpg"></center>'
 		*nl
@@ -102,7 +102,7 @@ if $ARGS[0] = 'search':
 	elseif findbraclet = 0 and rand(0,10) >= 9:
 		*clr & cla
 		findbraclet = 1
-		observ_exp += 3
+		gs 'exp_gain', 'observ', 3
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/gadukino/village/bracelet.jpg"></center>'
 		*nl
@@ -110,7 +110,7 @@ if $ARGS[0] = 'search':
 	elseif findbraclet > 0 and findneck = 0 and rand(0,10) >= 10:
 		*clr & cla
 		findneck = 1
-		observ_exp += 3
+		gs 'exp_gain', 'observ', 3
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/gadukino/village/necklace.jpg"></center>'
 		*nl
@@ -120,7 +120,7 @@ if $ARGS[0] = 'search':
 			'While looking through the barn your foot goes through a rotten floorboard and gets stuck. As you work your foot free, you glimpse something underneath the floor - a box or something. You get on your belly and look through the hole in the floor. You find a small box made of a black wood. You pick up the box and see the box is covered in a strange writing and glyphs that look like serpents. The exotic look of the box gives you gooseflesh and you find yourself holding your breath as you prepare to open the box. You lift the lid of the box and see a black metal necklace that looks like a coiled snake with ruby eyes. You let your breath out slowly as you tilt the necklace from side to side, watching the light sparkle as it is reflected by the facets on the deep red rubies. You cannot begin to guess what this necklace must be worth.'
 		end
 	else
-		observ_exp += rand(0,1)
+		gs 'exp_gain', 'observ', rand(0,1)
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/locations/gadukino/village/junk_barn.jpg"></center>'
 		*nl
@@ -145,7 +145,7 @@ if $ARGS[0] = 'horse':
 			*clr & cla
 			minut += 30
 			grandpaQW['chore_feed_horse'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/feed_horse.jpg"></center>'
@@ -161,7 +161,7 @@ if $ARGS[0] = 'horse':
 			*clr & cla
 			minut += 60
 			grandpaQW['chore_lead_horse_to_field'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/horse_field.jpg"></center>'
@@ -176,7 +176,7 @@ if $ARGS[0] = 'horse':
 			*clr & cla
 			minut += 30
 			grandpaQW['chore_bathe_horse_prog'] = 1
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/horse_field.jpg"></center>'
@@ -193,7 +193,7 @@ if $ARGS[0] = 'horse':
 			*clr & cla
 			minut += 60
 			grandpaQW['chore_brush_horse'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/comb_horse.jpg"></center>'
@@ -222,7 +222,7 @@ if $ARGS[0] = 'cow':
 			*clr & cla
 			minut += 30
 			grandmaQW['chore_milk_cow'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/milk_cow.jpg"></center>'
@@ -237,7 +237,7 @@ if $ARGS[0] = 'cow':
 			*clr & cla
 			minut += 30
 			grandpaQW['chore_feed_cow'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/feed_cow.jpg"></center>'
@@ -251,7 +251,7 @@ if $ARGS[0] = 'cow':
 		act 'Lead the cow to the field (1:00)':
 			*clr & cla
 			minut += 60
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/cow_field.jpg"></center>'
@@ -283,7 +283,7 @@ if $ARGS[0] = 'boar':
 			*clr & cla
 			minut += 30
 			grandpaQW['chore_feed_boar'] = 2
-			hndiwrk_exp += rand(1,3)
+			gs 'exp_gain', 'hndiwrk', rand(1,3)
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/village/feed_boar.jpg"></center>'

+ 1 - 1
locations/garfather.qsrc

@@ -107,7 +107,7 @@ act 'Help':
 	menu_off = 1
 	minut += 60
 	gs 'sweat', 'add', 10
-	hndiwrk_exp += rand(0,3)
+	gs 'exp_gain', 'hndiwrk', rand(0,3)
 	gs 'stat'
 	'<center><B><font color=maroon>Stepfather Vladimir Skryabin</font></B></center>'
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/vladimir/father.jpg"></center>'

+ 123 - 13
locations/grades.qsrc

@@ -127,25 +127,75 @@ end
 
 if $ARGS[0] = 'class_activity':
 !!This adds the point for doing an in class activity that is not modified.
-	dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 10'
+	if pcs_condition['lack_of_sleep'] >= 20:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+	elseif pcs_condition['lack_of_sleep'] >= 10:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+	elseif pcs_condition['lack_of_sleep'] >= 5:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 7'
+	elseif pcs_condition['lack_of_sleep'] >= 2:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+	else
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 10'
+	end
 end
 
 if $ARGS[0] = 'class_activity_skill':
 !!This adds the point for doing an in class activity modified by a skill.
-	dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(85+<<ARGS[3]>>))/100'
+	if pcs_condition['lack_of_sleep'] >= 20:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 10:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 5:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 2:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+	else
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(85+<<ARGS[3]>>))/100'
+	end
 end
 
 if $ARGS[0] = 'class_activity_attributes':
 !!This adds the point for doing an in class activity modified by an attributes.
-	dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(50+<<ARGS[3]>>))/100'
+	if pcs_condition['lack_of_sleep'] >= 20:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 10:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 5:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
+	elseif pcs_condition['lack_of_sleep'] >= 2:
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
+	else
+		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (10*(50+<<ARGS[3]>>))/100'
+	end
 end
 
 if $ARGS[0] = 'optional_activity':
 !!This adds the point for doing an optional out of class activity that is not modified.
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 10'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 5'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 7'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 9'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 10'
+		end
 	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 1'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 2'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 3'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += 4'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += 5'
+		end
 	end
 	
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain'']') > dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_max'']'):
@@ -156,9 +206,29 @@ end
 if $ARGS[0] = 'optional_activity_skill':
 !!This adds the point for doing an optional out of class activity modified by a skill.
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(85+<<ARGS[4]>>))/100'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(85+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(85+<<ARGS[4]>>))/100'
+		end
 	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[4]>>))/100'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (1*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (3*(85+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (4*(85+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(85+<<ARGS[4]>>))/100'
+		end
 	end
 
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain'']') > dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_max'']'):
@@ -169,9 +239,29 @@ end
 if $ARGS[0] = 'optional_activity_attribute':
 !!This adds the point for doing an optional out of class activity modified by an attributes.
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 0 or $ARGS[3] = 'yes':
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(50+<<ARGS[4]>>))/100'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (5*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (7*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (9*(50+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (10*(50+<<ARGS[4]>>))/100'
+		end
 	elseif dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_use_computer'']') = 1:
-		dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[4]>>))/100'
+		if pcs_condition['lack_of_sleep'] >= 20:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (1*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 10:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (2*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 5:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (3*(50+<<ARGS[3]>>))/100'
+		elseif pcs_condition['lack_of_sleep'] >= 2:
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_weekly_grade_gain''] += (4*(50+<<ARGS[3]>>))/100'
+		else
+			dynamic 'class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain''] += (5*(50+<<ARGS[4]>>))/100'
+		end
 	end
 
 	if dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_grade_gain'']') > dyneval('RESULT = class[''<<$ARGS[1]>>_<<$ARGS[2]>>_optional_weekly_max'']'):
@@ -180,9 +270,9 @@ if $ARGS[0] = 'optional_activity_attribute':
 end
 
 if $ARGS[0] = 'homework':
-!!For doing the daily homowork.
+!!For doing the daily homework.
 	lernHome -= ARGS[3]
-	!!The modifier for doing home work is the characters intelligence if that do it alone, the intelligence of the npc that make it for them (but at least 50), or the maximum of the intelligence of the character and the npc the are doing it together with, with a small bonus if the there intelligence is close, or the value set as ARGs[5].
+	!!The modifier for doing home work is the characters intelligence if that do it alone, the intelligence of the npc that make it for them (but at least 50), or the maximum of the intelligence of the character and the npc the are doing it together with, with a small bonus if there intelligence is close, or the value set as ARGs[5].
 	if ARGS[4] = 2:
 		modifier = dyneval('RESULT = max(npc_intel[''<<$ARGS[5]>>''], 50)')
 	elseif ARGS[4] = 1:
@@ -197,9 +287,29 @@ if $ARGS[0] = 'homework':
 		if $class_list_institution[i] = $ARGS[1]:
 			if dyneval ('RESULT = class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_homework'']') = 1:
 				if $ARGS[2] = 'no':
-					dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*5*(50+modifier))/100)'
+					if pcs_condition['lack_of_sleep'] >= 20:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*1*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 10:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*2*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 5:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*3*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 2:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*4*(50+modifier))/100)'
+					else
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*(((2-class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_use_computer''])*5*(50+modifier))/100)'
+					end
 				else
-					dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((10*(50+modifier))/100)'
+					if pcs_condition['lack_of_sleep'] >= 20:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((2*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 10:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((5*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 5:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((7*(50+modifier))/100)'
+					elseif pcs_condition['lack_of_sleep'] >= 2:
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((9*(50+modifier))/100)'
+					else
+						dynamic 'class[''<<$ARGS[1]>>_<<$class_list_name[i]>>_weekly_grade_gain''] += <<ARGS[3]>>*((10*(50+modifier))/100)'
+					end
 				end
 			end
 		end

+ 1 - 1
locations/grandpahelp.qsrc

@@ -156,7 +156,7 @@ if $ARGS[0] = 'cleanyard':
 		if month >= 4 and month <= 10:
 			fat -= rand(1,3)
 		else
-			stren_exp += 1
+			gs 'exp_gain', 'stren', 1
 			fat -= rand(1,5)
 		end
 		gs'stat'

+ 6 - 6
locations/gschool_gopnik_chats.qsrc

@@ -121,7 +121,7 @@ end
 if $ARGS[0] = 'radomir':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A154', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big154.jpg"></center>'
@@ -343,7 +343,7 @@ end
 if $ARGS[0] = 'valentin':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A158', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big158.jpg"></center>'
@@ -520,7 +520,7 @@ end
 if $ARGS[0] = 'arkadi':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A156', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big156.jpg"></center>'
@@ -751,7 +751,7 @@ end
 if $ARGS[0] = 'niko':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	if NikoBreakup = 1:
 		gt 'NikoEv', 'Lunch Breakup'
@@ -851,7 +851,7 @@ end
 if $ARGS[0] = 'alyona':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A143', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big143.jpg"></center>'
@@ -1007,7 +1007,7 @@ if $ARGS[0] = 'anushka':
 	*clr & cla
 	menu_off = 1
 	gs 'npc_relationship', 'modify', 'A144', 'like'
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big144.jpg"></center>'
 	if npc_rel['A144'] > 60 and (Anush_sex > 0 and hotcat >= 7) and rand(0,5) = 0 and nush_daycheck ! daystart:
 		act 'You''re looking flushed':

+ 2 - 2
locations/gschool_grounds.qsrc

@@ -563,7 +563,7 @@ if $ARGS[0] = 'SchoolRun_result':
 		'You run as fast as you can, and manage to reach the finish line first. Mr. Pavlovich, the P.E. teacher at your school, congratulates you on winning the competition as you walk around with your arms raised in triumph.'
 	end
 
-	run_exp += 1
+	gs 'exp_gain', 'run', 1
 	fat -= 2
 
 	if swinbeg = 3 and LocalRun = 0:
@@ -678,7 +678,7 @@ if $ARGS[0] = 'SchoolRun2_result':
 		'You run as fast as you can, and manage to reach the finish line first. Mr. Pavlovich, the P.E. teacher at your school, congratulates you on winning the competition yet again while you walk around with your arms raised in triumph.'
 	end
 
-	run_exp += 1
+	gs 'exp_gain', 'run', 1
 	fat -= 2
 
 	if swinbeggor = 3 and LocalRun = 1:

+ 8 - 8
locations/gschool_jock_chats.qsrc

@@ -4,7 +4,7 @@
 if $ARGS[0] = 'lazar':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A149', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big149.jpg"></center>'
@@ -100,7 +100,7 @@ end
 if $ARGS[0] = 'svyatoslav':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A8', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big8.jpg"></center>'
@@ -175,7 +175,7 @@ end
 if $ARGS[0] = 'vanya':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A165', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big165.jpg"></center>'
@@ -225,7 +225,7 @@ end
 if $ARGS[0] = 'erast':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A150', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big150.jpg"></center>'
@@ -491,7 +491,7 @@ end
 if $ARGS[0] = 'albina':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A23', 'like'
 	gs 'stat'
 	if AlbinaQW['Friends'] = 2 and npc_sex['A23'] >= 1 and albina_schoolsex ! daystart and rand(1,5) = 5:
@@ -607,7 +607,7 @@ end
 if $ARGS[0] = 'veronika':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A141', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big141.jpg"></center>'
@@ -1049,7 +1049,7 @@ end
 if $ARGS[0] = 'fedor':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	if FedorLove < 0:
 		gt 'FedorMisc', 'Fedor Hate'
@@ -1062,7 +1062,7 @@ if $ARGS[0] = 'ivan':
 	*clr & cla
 	menu_off = 1
 	gs 'npc_relationship', 'modify', 'A3', 'like'
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big3.jpg"></center>'
 	!!this is story arc stuff I think it is coded correct but not sure.

+ 9 - 9
locations/gschool_lessons1.qsrc

@@ -4,7 +4,7 @@
 if $ARGS[0] = 'russian':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'rus'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/class<<rand(1,2)>>.jpg"></center>'
 	'You walk into the classroom and take a seat farthest to the right, next to a window. The rest of your classmates walk in one by one before Mr. Yenotin enters the classroom. Just as he''s about to close the door, one of your classmates grabs the door from outside the room. Mr. Yenotin turns to the tardy student and informs them that they are late and that next time he will have to report them. This instruction is followed by an awkward wink and the student is allowed in to find a seat. Everyone knows that he never reports the tardy students. As everyone settles in, Mr. Yenotin does a roll call before opening a grammar book, telling you to open your textbooks to where you left off last lesson.'
@@ -18,7 +18,7 @@ if $ARGS[0] = 'russian':
 			grupvalue[4] -= 1
 			grupvalue[3] +=1
 			gs 'grades', 'class_activity_attributes', 'school', 'rus', pcs_intel
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -27,7 +27,7 @@ if $ARGS[0] = 'russian':
 			act 'Ask a question about the lesson':
 				*clr & cla
 				gs 'grades', 'class_activity_attributes', 'school', 'rus', pcs_chrsm
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/class1.jpg"></center>'
 				'Mr. Yenotin nods approvingly, happy to see his students engaged in class and trying their best. He happily spends some extra time explaining the topic again, and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev1', 'russian'
@@ -558,7 +558,7 @@ end
 if $ARGS[0] = 'geography':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'geo'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/geography/geography.jpg"></center>'
 	openpage = rand(1,250)
@@ -572,7 +572,7 @@ if $ARGS[0] = 'geography':
 			*clr & cla
 			grupvalue[4] -=1
 			grupvalue[3] += 1
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			gs 'grades', 'class_activity_attributes', 'school', 'geo', pcs_intel
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
@@ -581,7 +581,7 @@ if $ARGS[0] = 'geography':
 			'You listen attentively to Mrs. Sokoloff for the duration of the class. Today''s lesson was interesting and informative, and you feel you learned from taking part in class.'
 			act 'Ask a question about the lesson':
 				*clr & cla
-				intel_exp += rand(1,2)
+				gs 'exp_gain', 'intel', rand(1,2)
 				gs 'grades', 'class_activity_attributes', 'school', 'geo', pcs_intel
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				'Mrs. Sokoloff nods approvingly, always happy to see her students engaged in her class. She happily spends some extra time explaining the topic again, and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'
@@ -1083,7 +1083,7 @@ end
 if $ARGS[0] = 'history':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'his'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/class' + rand(1,2) + '.jpg"></center>'
 	openpage = rand(1,250)
@@ -1097,7 +1097,7 @@ if $ARGS[0] = 'history':
 			*clr & cla
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			gs 'grades', 'class_activity_attributes', 'school', 'his', pcs_intel
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
@@ -1106,7 +1106,7 @@ if $ARGS[0] = 'history':
 			'You listen attentively to Mrs. Sokoloff for the duration of the class. Today''s lesson was interesting and informative, and you feel you learned from taking part in class.'
 			act 'Ask a question about the lesson':
 				*clr & cla
-				intel_exp += rand(1,2)
+				gs 'exp_gain', 'intel', rand(1,2)
 				gs 'grades', 'class_activity_attributes', 'school', 'his', pcs_intel
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				'Mrs. Sokoloff nods approvingly, always happy to see her students engaged in her class. She happily spends some extra time explaining the topic again, and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'

+ 29 - 29
locations/gschool_lessons2.qsrc

@@ -5,8 +5,8 @@
 if $ARGS[0] = 'computer':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'comp'
-	compskl_exp += rand(1,2)
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'compskl', rand(1,2)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classcomputer.jpg"></center>'
 	'You go to your computer class and find a seat at one of the computer stations. Before long, all of your classmates file in and takes their seats as well. Once the bell rings, Mr. Ivanov takes roll call and then gets up and starts walking around the room explaining today''s lesson. He occasionally stops to look at the screens of various students to make sure they are doing it right.'
@@ -17,8 +17,8 @@ if $ARGS[0] = 'computer':
 	if will_cost <= pcs_willpwr or traits['nerd_status'] = 3:	
 		act 'Listen attentively to Mr. Ivanov'+iif(traits['nerd_status'] = 3, '', ' (<<will_cost>> Willpower)')+' ':
 			*clr & cla
-			compskl_exp += rand(1,2)
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'compskl', rand(1,2)
+			gs 'exp_gain', 'intel', rand(0,1)
 			gs 'grades', 'class_activity_attributes', 'school', 'comp', pcs_intel
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
@@ -30,8 +30,8 @@ if $ARGS[0] = 'computer':
 			act 'Ask a question about the lesson':
 				*clr & cla
 				gs 'grades', 'class_activity_skill', 'school', 'comp', pcs_compskl
-				compskl_exp += rand(0,1)
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'compskl', rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				if grupTipe= 3:
 					'Mr. Ivanov nods approvingly. He happily spends some extra time explaining the topic again to you, and answers any extra questions you might have. You feel like you learned a lot, thoroughly understanding today''s lessons now.'
@@ -384,8 +384,8 @@ if $ARGS[0] = 'computer':
 			act 'Reluctantly pay attention':
 				*clr & cla
 				gs 'grades', 'class_activity_attributes', 'school', 'comp', pcs_intel
-				compskl_exp += rand(0,1)
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'compskl', rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/bathroom/angryteacher.jpg"></center>'
 				'You roll your eyes at him when he turns his back and sit through the rest of the lesson in silence. Despite your best efforts, you struggle to pay attention and don''t learn anything.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev1', 'computer'
@@ -395,8 +395,8 @@ if $ARGS[0] = 'computer':
 				gs 'grades', 'class_activity_attributes', 'school', 'comp', pcs_intel
 				grupvalue[4] -= 1
 				grupvalue[3] += 1
-				compskl_exp += rand(0,2)
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'compskl', rand(0,2)
+				gs 'exp_gain', 'intel', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/payattention.jpg"></center>'
 				'You don''t want to get in trouble so you straighten up in your chair and apologize. Mr. Ivanov gives you one final look before he goes back to teaching the class as you do your best to pay attention.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev1', 'computer'
@@ -583,7 +583,7 @@ end
 if $ARGS[0] = 'science':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'sci'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classsci.jpg"></center>'
 	'You go to your science class and find a seat at your lab station. Before long all of your classmates file in and takes their seats as well. Miss Orlov takes roll call, then gets up and starts writing on the blackboard. She is wearing a fairly short skirt that nearly rides too high when she reaches up to write at the top of the blackboard, which the boys often encourage by asking her questions about whatever it is she has written at the top of the blackboard.'
@@ -597,7 +597,7 @@ if $ARGS[0] = 'science':
 			gs 'grades', 'class_activity_attributes', 'school', 'sci', pcs_intel
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -606,7 +606,7 @@ if $ARGS[0] = 'science':
 			act 'Ask a question about the lesson':
 				*clr & cla
 				gs 'grades', 'class_activity_attributes', 'school', 'sci', pcs_intel
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				'Miss Orlov nods approvingly. She happily spends some extra time explaining the topic again to you, and answers any extra questions you might have. She only moves on with the lesson once she is sure she has fully answered your question. You feel like you learned a lot, thoroughly understanding today''s lessons now.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev1', 'science'
@@ -844,7 +844,7 @@ if $ARGS[0] = 'science':
 			act 'Reluctantly pay attention':
 				*clr & cla
 				gs 'grades', 'class_activity_attributes', 'school', 'sci', pcs_intel
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/bored.jpg"></center>'
 				'Miss Orlov smiles as you seem to be paying attention and quickly goes back into her lesson. She doesn''t notice you roll your eyes at her before you sit through the rest of the lesson in silence. Despite your best efforts, you struggle to pay attention and don''t learn anything.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev1', 'science'
@@ -1005,9 +1005,9 @@ end
 if $ARGS[0] = 'music':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'mus'
-	instrmusic_exp += rand(1,2)
-	vokal_exp += rand(1,2)
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'instrmusic', rand(1,2)
+	gs 'exp_gain', 'vokal', rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classmusic.jpg"></center>'
 	'You sit in the classroom and listen to Mr. Vasilyev go on about how great music is while you wait for class to start. He''s always upbeat and positive about teaching and encourages all of his students to take part.'
@@ -1020,9 +1020,9 @@ if $ARGS[0] = 'music':
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
 			gs 'grades', 'class_activity_attributes', 'school', 'mus', pcs_intel
-			instrmusic_exp += rand(1,2)
-			vokal_exp += rand(1,2)
-			chrsm_exp += rand(1,2)
+			gs 'exp_gain', 'instrmusic', rand(1,2)
+			gs 'exp_gain', 'vokal', rand(1,2)
+			gs 'exp_gain', 'chrsm', rand(1,2)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -1030,9 +1030,9 @@ if $ARGS[0] = 'music':
 			'You listen attentively to Mr. Vasilyev for the duration of the class. Today''s lesson was interesting and informative, and you feel you learned a lot about the history of music and famous artists.'
 			act 'Ask a question about the lesson':
 				*clr & cla
-				instrmusic_exp += rand(0,1)
-				vokal_exp += rand(0,1)
-				chrsm_exp += rand(0,1)
+				gs 'exp_gain', 'instrmusic', rand(0,1)
+				gs 'exp_gain', 'vokal', rand(0,1)
+				gs 'exp_gain', 'chrsm', rand(0,1)
 				gs 'grades', 'class_activity_skill', 'school', 'mus', max(pcs_vokal, pcs_instrmusic)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classmusic.jpg"></center>'
 				'Mr. Vasilyev smiles, always happy to see his students engaged in his class. He happily spends some extra time explaining the topic again and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'
@@ -1377,9 +1377,9 @@ if $ARGS[0] = 'music':
 			act 'Reluctantly pay attention':
 				*clr & cla
 				gs 'grades', 'class_activity_attributes', 'school', 'mus', pcs_intel
-				instrmusic_exp += rand(0,1)
-				vokal_exp += rand(0,1)
-				chrsm_exp += rand(0,1)
+				gs 'exp_gain', 'instrmusic', rand(0,1)
+				gs 'exp_gain', 'vokal', rand(0,1)
+				gs 'exp_gain', 'chrsm', rand(0,1)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/bathroom/angryteacher.jpg"></center>'
 				'You roll your eyes at him when he turns his back and sit through the rest of the lesson in silence. Despite your best efforts, you struggle to pay attention and don''t learn anything.'
 				act 'Wait for the end of the lesson': gs 'gschool_lessonsev3', 'music'
@@ -1535,7 +1535,7 @@ end
 if $ARGS[0] = 'biology':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'bio'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classbiology.jpg"></center>'
 	'You go to your biology class and find a seat at your lab station. Before long, all your classmates file in and take their seats as well. Miss Orlov takes roll call before she gets up and starts walking around the room explaining today''s lessons, occasionally stopping at each lab station to make sure the students are doing the work correctly. She often gives words of encouragement if things are going well or stops and helps the student understand what they are doing wrong.'
@@ -1547,7 +1547,7 @@ if $ARGS[0] = 'biology':
 			*clr & cla
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			gs 'grades', 'class_activity_attributes', 'school', 'bio', pcs_intel
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
@@ -1556,7 +1556,7 @@ if $ARGS[0] = 'biology':
 			'You listen attentively to Miss Orlov for the duration of the class. Today''s lesson was interesting and informative and you feel you learned from taking part in class.'
 			act 'Ask a question about the lesson':
 				*clr & cla
-				intel_exp += rand(1,2)
+				gs 'exp_gain', 'intel', rand(1,2)
 				gs 'grades', 'class_activity_attributes', 'school', 'bio', pcs_intel
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				'Miss Orlov nods approvingly. She happily spends some extra time explaining the topic again and answers any extra questions you might have. She only moves on with the lesson once she is sure she has fully answered your question. You feel like you learned a lot, thoroughly understanding today''s lessons now.'

+ 17 - 17
locations/gschool_lessons3.qsrc

@@ -19,7 +19,7 @@ if $ARGS[0] = 'literature':
 			grupvalue[4] -=1
 			grupvalue[3] += 1
 			gs 'grades', 'class_activity_attributes', 'school', 'lit', pcs_intel
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -367,8 +367,8 @@ end
 if $ARGS[0] = 'art':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'art'
-	artskls_exp += rand(1,2)
-	agil_exp += rand(0,1)
+	gs 'exp_gain', 'artskls', rand(1,2)
+	gs 'exp_gain', 'agil', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classart.jpg"></center>'
 	'You sit in the classroom and listen to Mr. Vasilyev go on about how great art is. He''s always upbeat and positive about teaching and encourages all of his students to take part.'
@@ -381,8 +381,8 @@ if $ARGS[0] = 'art':
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
 			gs 'grades', 'class_activity_attributes', 'school', 'art', pcs_intel
-			artskls_exp += rand(1,2)
-			agil_exp += rand(0,1)
+			gs 'exp_gain', 'artskls', rand(1,2)
+			gs 'exp_gain', 'agil', rand(0,1)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -390,8 +390,8 @@ if $ARGS[0] = 'art':
 			'You listen attentively to Mr. Vasilyev for the duration of the class. Today''s lesson was interesting and informative and you feel you learned a lot.'
 			act 'Ask a question about the lesson':
 				*clr & cla
-				artskls_exp += rand(0,1)
-				agil_exp += rand(0,1)
+				gs 'exp_gain', 'artskls', rand(0,1)
+				gs 'exp_gain', 'agil', rand(0,1)
 				gs 'grades', 'class_activity_skill', 'school', 'art', pcs_artskls
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 				'Mr. Vasilyev smiles, always happy to see his students engaged in his class. He happily spends some extra time explaining the topic again and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'
@@ -796,8 +796,8 @@ if $ARGS[0] = 'art':
 			'Mr. Vasilyev tries to convince you of the importance of today''s lesson. "Please pay attention, this is very important. Today''s topic is going to be on the exam."'
 			act 'Reluctantly pay attention':
 				*clr & cla
-				artskls_exp += rand(0,1)
-				agil_exp += rand(0,1)
+				gs 'exp_gain', 'artskls', rand(0,1)
+				gs 'exp_gain', 'agil', rand(0,1)
 				gs 'grades', 'class_activity_attributes', 'school', 'art', pcs_intel
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/bathroom/angryteacher.jpg"></center>'
 				'You roll your eyes at him when he turns his back and you sit through the rest of the lesson in silence. Despite your best efforts, you struggle to pay attention and don''t learn anything.'
@@ -951,8 +951,8 @@ end
 
 if $ARGS[0] = 'shop':
 	menu_off = 1
-	hndiwrk_exp += rand(1,2)
-	agil_exp += rand(0,1)
+	gs 'exp_gain', 'hndiwrk', rand(1,2)
+	gs 'exp_gain', 'agil', rand(0,1)
 	gs 'grades', 'attend_class', 'school', 'shop'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/classshop.jpg"></center>'
@@ -966,8 +966,8 @@ if $ARGS[0] = 'shop':
 			grupvalue[4] -= 1
 			grupvalue[3] += 1
 			gs 'grades', 'class_activity_attributes', 'school', 'shop', pcs_intel
-			hndiwrk_exp += rand(1,2)
-			agil_exp += rand(0,1)
+			gs 'exp_gain', 'hndiwrk', rand(1,2)
+			gs 'exp_gain', 'agil', rand(0,1)
 			traits['nerd_lessons'] += 1
 			if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 			gs 'stat'
@@ -976,8 +976,8 @@ if $ARGS[0] = 'shop':
 			act 'Ask a question about the lesson':
 				*clr & cla
 				gs 'grades', 'class_activity_skill', 'school', 'shop', pcs_hndiwrk
-				hndiwrk_exp += rand(1,2)
-				agil_exp += rand(0,1)
+				gs 'exp_gain', 'hndiwrk', rand(1,2)
+				gs 'exp_gain', 'agil', rand(0,1)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/class1.jpg"></center>'
 				'Mr. Kuznetsov nods approvingly, always happy to see his students engaged in his class. He happily spends some extra time explaining the topic again, and answers any extra questions you might have. You feel smarter, thoroughly understanding today''s lessons now.'
@@ -1370,8 +1370,8 @@ if $ARGS[0] = 'shop':
 				grupvalue[4] -= 1
 				grupvalue[3] += 1
 				gs 'grades', 'class_activity_attributes', 'school', 'shop', pcs_intel
-				hndiwrk_exp += rand(0,1)
-				agil_exp += rand(0,1)
+				gs 'exp_gain', 'hndiwrk', rand(0,1)
+				gs 'exp_gain', 'agil', rand(0,1)
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/bathroom/angryteacher.jpg"></center>'
 				'You roll your eyes at him when he turns his back and sit through the rest of the lesson in silence. Despite your best efforts, you struggle to pay attention and don''t learn anything.'

+ 15 - 15
locations/gschool_lessons4.qsrc

@@ -7,7 +7,7 @@ if $ARGS[0] = 'math':
 	*clr & cla
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'math'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	VK = rand(1,3)
 	gs 'stat'
 	'<center><b><font color=#00BFFF><<"Anatoly E. Tsarev">></font></b></center>'
@@ -96,7 +96,7 @@ if $ARGS[0] = 'math':
 				grupvalue[4] -= 1
 				grupvalue[3] += 1
 				gs 'grades', 'class_activity_attributes', 'school', 'math', pcs_intel
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				traits['nerd_lessons'] += 1
 				if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 				gs 'stat'
@@ -105,7 +105,7 @@ if $ARGS[0] = 'math':
 				act 'Ask a question about the lesson':
 					*clr & cla
 					gs 'grades', 'class_activity_attributes', 'school', 'math', pcs_intel
-					intel_exp += rand(1,2)
+					gs 'exp_gain', 'intel', rand(1,2)
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/class1.jpg"></center>'
 					'You take a second to ask a question about a part of the lesson that you don''t fully understand. Mr. Tsarev nods approvingly then says "Sure thing, we can go over the solution again and I will show you the many ways that you can find the solution to these problems." He happily spends some time explaining the topic in greater detail and answers any questions you might have, teaching you some new ways of solving many problems in the process.'
 					act 'Wait for the end of the lesson': gt 'gschool_lessonsev2', 'math'
@@ -353,7 +353,7 @@ end
 if $ARGS[0] = 'english':
 	menu_off = 1
 	gs 'grades', 'attend_class', 'school', 'eng'
-	intel_exp += rand(0,1)
+	gs 'exp_gain', 'intel', rand(0,1)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/literature/classlit.jpg"></center>'
 	'"Everyone sit down, class is starting." Ms. Braakman says in English, her voice thick with a Russian accent. A few students take their seat, but most of the class continues socializing as if they didn''t hear her. "Class is starting, now take a seat!" she repeats loudly in Russian and the groups reluctantly scatter as everyone settles into their seats.'
@@ -368,7 +368,7 @@ if $ARGS[0] = 'english':
 				grupvalue[4] -= 1
 				grupvalue[3] += 1
 				gs 'grades', 'class_activity_attributes', 'school', 'mus', pcs_intel
-				intel_exp += rand(0,1)
+				gs 'exp_gain', 'intel', rand(0,1)
 				traits['nerd_lessons'] += 1
 				if traits['nerd_status'] < 3: gs 'willpower', 'pay', 'self'
 				gs 'stat'				
@@ -378,7 +378,7 @@ if $ARGS[0] = 'english':
 					*clr & cla
 					grupvalue[3] += 1
 					gs 'grades', 'class_activity_attributes', 'school', 'eng', pcs_chrsm
-					chrsm_exp += rand(1,2)
+					gs 'exp_gain', 'chrsm', rand(1,2)
 					'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 					'Unlike most of the students in your class, you stay focused on your work.'
 					act 'Wait for the end of the lesson': gs 'gschool_lessonsev3', 'working'
@@ -390,7 +390,7 @@ if $ARGS[0] = 'english':
 					act 'Vicky':
 						*clr & cla
 						pcs_mood += 10
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A15', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkgirl' + rand(1,3) + '.jpg"></center>'
 						'"I saw this video of an American girl dancing all sexy and stuff, and I''m thinking of learning the dance. Next time I go to the community center, I''ll show up all the girls and steal their boyfriends!" she jokes with a playful smile, but you notice a wicked twinkle in her eyes.'
@@ -399,7 +399,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Lena':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A20', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkgirl' + rand(1,3) + '.jpg"></center>'
 						'Lena sighs heavily. "Fuck, what''s taking her so long?"'
@@ -409,7 +409,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Lera':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A21', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkgirl' + rand(1,3) + '.jpg"></center>'
 						'"It''s hard enough having my dad as a teacher at school, but now that freak Lesco is living with us." Lera spends the rest of class talking about all the awkward run-ins she''s had with her dad in school and how she and Lena had to beat the shit out of anyone that tried spreading weird rumors about her being "close" to her cousin Lesco.'
@@ -417,7 +417,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Radomir':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A154', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkboy' + rand(1,3) + '.jpg"></center>'
 						'You try talking to Radomir, but it''s hard to get a word in with how hard he''s stroking his own ego. "You should have heard me last night, I killed it. You should come hear us play. Everyone thinks we''re amazing, especially the girls. I know you''ll love it, too." he says with a wink. He keeps saying "we" a lot to refer to the rest of the band, but something tells you he''s still talking about himself.'
@@ -425,7 +425,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Ivan':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A3', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkboy' + rand(1,3) + '.jpg"></center>'
 						'With a confident smile, Ivan starts telling you about a recent match he had at the community center. "This kid I''ve never seen before comes up to me and starts talking shit, saying my form is bad and that I couldn''t hit someone even if they were standing still right in front of me!" he says with a scoff. "I told him to put his money where his mouth is and get in the ring, and guess what happened?"'
@@ -435,7 +435,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Bella':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A22', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkgirl' + rand(1,3) + '.jpg"></center>'
 						'"God, this place is more like a daycare than a high school!" Bella says, scoffing in disgust. A few seconds later, a group of students start talking and laughing loud enough to disrupt the class. "See what I mean?" she adds as she rolls her eyes. "They''re practically adults, but they act so childish. I hate it. They need to act their age, like I do."'
@@ -443,7 +443,7 @@ if $ARGS[0] = 'english':
 					end
 					act 'Veronika':
 						*clr & cla
-						chrsm_exp += rand(1,2)
+						gs 'exp_gain', 'chrsm', rand(1,2)
 						gs 'npc_relationship', 'modify', 'A141', 'like'
 						'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talkgirl' + rand(1,3) + '.jpg"></center>'
 						'You try talking to Veronika, but she has little to say, which is no surprise; she''s always been standoffish. Still, she doesn''t outright tell you to leave you alone, so you take it as a sign that she''s okay with listening to you talk.'
@@ -452,7 +452,7 @@ if $ARGS[0] = 'english':
 					if npc_grupTipe['A189'] = 4:
 						act 'Niko':
 							*clr & cla
-							chrsm_exp += rand(1,2)
+							gs 'exp_gain', 'chrsm', rand(1,2)
 							gs 'stat'
 							'<center><b><h4><font color=#E400FF><<"Nikolai [Niko] Volkov">></font></h4></b></center>'
 							if NikoPayback > 0:
@@ -670,7 +670,7 @@ if $ARGS[0] = 'pe':
 				grupvalue[2] += 1
 			end
 			gs 'sweat', 'add', 30
-			run_exp += rand(1, 2)
+			gs 'exp_gain', 'run', rand(1, 2)
 			gs 'grades', 'class_activity_skill', 'school', 'pe', pcs_run
 			gs 'exercise', 'tier2', 1, 'vital_exp', 'agil_exp'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/fizra.jpg"></center>'

+ 30 - 30
locations/gschool_lessonsev1.qsrc

@@ -426,7 +426,7 @@ if $ARGS[0] = 'biology':
 			act 'Irina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Irina. She looks at you in disgust and turns away to talk to someone else.'
 				else
@@ -446,7 +446,7 @@ if $ARGS[0] = 'biology':
 			act 'Julia':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Julia. She avoids making eye contact with you and instead focuses on her coursework.'
 				else
@@ -466,7 +466,7 @@ if $ARGS[0] = 'biology':
 			act 'Lavrenti':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lavrenti. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				else
@@ -486,7 +486,7 @@ if $ARGS[0] = 'biology':
 			act 'Artem':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Artem. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -506,7 +506,7 @@ if $ARGS[0] = 'biology':
 			act 'Natasha':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Natasha. She avoids making eye contact with you and instead focuses on her coursework.'
 				else
@@ -526,7 +526,7 @@ if $ARGS[0] = 'biology':
 			act 'Lazar':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lazar, who mocks you for the duration of the lesson about how many dicks you''ve sucked and how your breath probably smells of cum.'
 				else
@@ -546,7 +546,7 @@ if $ARGS[0] = 'biology':
 			act 'Lesco':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lesco. He avoids making eye contact with you and awkwardly puts his head down. Your classmates notice this and you feel embarrassed at the fact that you''re so unpopular that even Lesco won''t talk to you.'
 				elseif grupTipe = 5:
@@ -663,7 +663,7 @@ if $ARGS[0] = 'science':
 			act 'Irina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Irina. She looks at you in disgust and turns away to talk to someone else.'
 				else
@@ -683,7 +683,7 @@ if $ARGS[0] = 'science':
 			act 'Andrey and Stasya':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Andrey and Stasya. Stasya glares at you and warns you not to even try and suck Andrey''s dick, but he laughs in response, saying how he would never let your filthy mouth near him.'
 				else
@@ -705,7 +705,7 @@ if $ARGS[0] = 'science':
 			act 'Mefodiy':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Mefodiy, who expresses his disgust at your slutiness with sarcastic jokes and then ignores you for the rest of the lesson.'
 				else
@@ -725,7 +725,7 @@ if $ARGS[0] = 'science':
 			act 'Gerasim':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Gerasim. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -745,7 +745,7 @@ if $ARGS[0] = 'science':
 			act 'Veronika':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Veronika. She glares at you, clearly disgusted at your slutiness, and looks away. A shiver runs down your spine at how cold she just was to you.'
 				else
@@ -758,7 +758,7 @@ if $ARGS[0] = 'science':
 			act 'Vanya':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vanya, who immediately stands up and walks over to sit with Katja and Vicky, all of them giving disgusted looks.'
 				else
@@ -778,7 +778,7 @@ if $ARGS[0] = 'science':
 			act 'Arkadi':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Arkadi. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				else
@@ -1061,7 +1061,7 @@ if $ARGS[0] = 'computer':
 			act 'Vasily':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vasily. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				elseif grupTipe = 4 or grupTipe = 5:
@@ -1081,7 +1081,7 @@ if $ARGS[0] = 'computer':
 			act 'Albina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Albina, who immediately looks you over before shaking her head in disgust and walking away to sit with Vicky.'
 				else
@@ -1100,7 +1100,7 @@ if $ARGS[0] = 'computer':
 			act 'Lizaveta':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lizaveta, who immediately laughs at you and starts mocking you with gossip about whose dick you''ve sucked recently.'
 				else
@@ -1119,7 +1119,7 @@ if $ARGS[0] = 'computer':
 			act 'Alyona':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Alyona, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1139,7 +1139,7 @@ if $ARGS[0] = 'computer':
 			act 'Artem':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Artem. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -1159,7 +1159,7 @@ if $ARGS[0] = 'computer':
 			act 'Gerasim':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Gerasim. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -1179,7 +1179,7 @@ if $ARGS[0] = 'computer':
 			act 'Zinaida':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Zinaida. She avoids making eye contact with you and instead focuses on playing a game on her phone before class starts.'
 				else
@@ -1199,7 +1199,7 @@ if $ARGS[0] = 'computer':
 			act 'Katja':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Katja. She stares at you in disbelief and starts blushing bright red before she gets up and hurries to sit next to her sister.'
 				else
@@ -1502,7 +1502,7 @@ if $ARGS[0] = 'russian':
 			act 'Marcus':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Marcus, who awkwardly shuffles in his seat and avoids looking at you. As you look around, you see many of your classmates pointing and giggling, and not just at you. "Go on <<$pcs_nickname>>! You know you want that big black cock stuffed into your whore mouth and down your slutty throat!" you hear someone shout out.'
 				else
@@ -1522,7 +1522,7 @@ if $ARGS[0] = 'russian':
 			act 'Stasya':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Stasya, who shoots daggers at you. "What the fuck do you want whore? Do I look like I talk to dick hungry sluts like you? Keep your filthy mouth away from Andrey or you''ll regret it bitch."'
 				else
@@ -1542,7 +1542,7 @@ if $ARGS[0] = 'russian':
 			act 'Alyona':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Alyona, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1562,7 +1562,7 @@ if $ARGS[0] = 'russian':
 			act 'Ekaterina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Alyona, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1581,7 +1581,7 @@ if $ARGS[0] = 'russian':
 			act 'Svyatoslav':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Svyatoslav, who ignores you at first before getting your attention and pointing at the bulge in his pants while winking. "You know you want it, so come and get it slut." he whispers with a smile.'
 				else
@@ -1601,7 +1601,7 @@ if $ARGS[0] = 'russian':
 			act 'Paulina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Paulina, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1621,7 +1621,7 @@ if $ARGS[0] = 'russian':
 			act 'Viktoria':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vicky, who gives you a disgusted glare and walks away to sit with Vanya.'
 				else
@@ -1641,7 +1641,7 @@ if $ARGS[0] = 'russian':
 			act 'Irina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Irina. She looks at you in disgust and turns away to talk to someone else.'
 				else

+ 25 - 25
locations/gschool_lessonsev2.qsrc

@@ -64,11 +64,11 @@ if $ARGS[0] = 'geography':
 		elseif scooltiperand =< 9:
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
 			'As you arrive in class, you look around and decide to sit next to...'
-			chrsm_exp += rand(1,2)
+			gs 'exp_gain', 'chrsm', rand(1,2)
 			act 'Mefodiy':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Mefodiy, who expresses his disgust at your slutiness with sarcastic jokes and then ignores you for the rest of the lesson.'
 				else
@@ -89,7 +89,7 @@ if $ARGS[0] = 'geography':
 			act 'Andrey and Stasya':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Andrey and Stasya. Stasya glares at you and warns you not to even try and suck Andrey''s dick, but he laughs in response, saying how he would never let your filthy mouth near him.'
 				else
@@ -112,7 +112,7 @@ if $ARGS[0] = 'geography':
 			act 'Valentin':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Valentin. He gives you a perverted smile and keeps asking if you want "go for a ride" with him. "And I don''t mean on my bike, slut." he adds with a wink.'
 				else
@@ -133,7 +133,7 @@ if $ARGS[0] = 'geography':
 			act 'Evgeny':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Evgeny. He looks at you in disgust, picks up his chess board and finds another seat to play his game.'
 				else
@@ -146,7 +146,7 @@ if $ARGS[0] = 'geography':
 			act 'Artem':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Artem. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -167,7 +167,7 @@ if $ARGS[0] = 'geography':
 			act 'Vanya':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vanya, who immediately stands up and walks over to sit with Katja and Vicky, all of them giving disgusted looks.'
 				else
@@ -188,7 +188,7 @@ if $ARGS[0] = 'geography':
 			act 'Lazar':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lazar, who mocks you for the duration of the lesson about how many dicks you''ve sucked and how your breath probably smells of cum.'
 				else
@@ -209,7 +209,7 @@ if $ARGS[0] = 'geography':
 			act 'Vitek':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vitek. He gives you a perverted smile and leans back in his chair to show you the bulge in his pants. "It''s all yours, whore. All you have to do is ask." he says with a wink.'
 				else
@@ -918,7 +918,7 @@ if $ARGS[0] = 'history':
 			act 'Marcus':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Marcus, who awkwardly shuffles in his seat and avoids looking at you. As you look around, you see many of your classmates pointing and giggling, and not just at you. "Go on <<$pcs_nickname>>! You know you want that big black cock stuffed into your whore mouth and down your slutty throat!" you hear someone shout out.'
 				else
@@ -939,7 +939,7 @@ if $ARGS[0] = 'history':
 			act 'Lena':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lena, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -960,7 +960,7 @@ if $ARGS[0] = 'history':
 			act 'Roman':
 					*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Roman, a decision you regret when he scares you with his deathly stares and comments about you being a dirty, disgusting whore who nobody would miss.'
 				else
@@ -981,7 +981,7 @@ if $ARGS[0] = 'history':
 			act 'Petka':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Petka. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -1002,7 +1002,7 @@ if $ARGS[0] = 'history':
 			act 'Lera':
 					*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lera, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1023,7 +1023,7 @@ if $ARGS[0] = 'history':
 			act 'Lina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lina, who loudly scoffs. "Don''t you have to go and suck a dick somewhere you massive whore?"'
 				else
@@ -1044,7 +1044,7 @@ if $ARGS[0] = 'history':
 			act 'Igor':
 					*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Igor, who just stares at you before looking around for somewhere else to sit. "God, I have to sit next to the bike?" he moans when he can''t find anywhere to go.'
 				else
@@ -1065,7 +1065,7 @@ if $ARGS[0] = 'history':
 			act 'Niko':
 					*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Niko, who makes crude remarks about how you should under his desk and on your knees sucking his dick like a good little slut.'
 				else
@@ -1367,7 +1367,7 @@ if $ARGS[0] = 'shop':
 			act 'Dimka':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Dimka, who laughs at your slutiness with sarcastic jokes and then ignores you for the rest of the lesson.'
 				else
@@ -1387,7 +1387,7 @@ if $ARGS[0] = 'shop':
 			act 'Viktoria':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vicky, who gives you a disgusted glare and walks away to sit with Vanya.'
 				else
@@ -1407,7 +1407,7 @@ if $ARGS[0] = 'shop':
 			act 'Dan':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Dan. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				else
@@ -1427,7 +1427,7 @@ if $ARGS[0] = 'shop':
 			act 'Vitek':
 				 *clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vitek. He gives you a perverted smile and leans back in his chair to show you the bulge in his pants. "It''s all yours, whore. All you have to do is ask." he says with a wink.'
 				else
@@ -1447,7 +1447,7 @@ if $ARGS[0] = 'shop':
 			act 'Vasily':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vasily. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				else
@@ -1467,7 +1467,7 @@ if $ARGS[0] = 'shop':
 			act 'Paulina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Paulina, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1486,7 +1486,7 @@ if $ARGS[0] = 'shop':
 			end
 			act 'Petia':
 				*clr & cla
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
 				if fame['pav_slut'] >= 150:
 					'As you walk into class, you look around and to your despair find that the only seat left is next to Petia, everyone else having given the fat, smelly loser a wide berth. Your nostrils are assaulted as soon as you sit down, the ordeal made worse by Petia leaning in and asking if he can get a blowjob since you''re such a slut. You reply by sticking your fingers in your mouth and gagging. "When will you realise that you''re such a fat and smelly loser that not even <<$pcs_nickname>> will suck your tiny dick?" Arkadi chimes in, causing the gopniks to gang up on him and free you from his horrible attempts at hitting on you.'
@@ -1498,7 +1498,7 @@ if $ARGS[0] = 'shop':
 			act 'Marcus':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Marcus, who awkwardly shuffles in his seat and avoids looking at you. As you look around, you see many of your classmates pointing and giggling, and not just at you. "Go on <<$pcs_nickname>>! You know you want that big black cock stuffed into your whore mouth and down your slutty throat!" you hear someone shout out.'
 				else

+ 22 - 22
locations/gschool_lessonsev3.qsrc

@@ -242,7 +242,7 @@ if $ARGS[0] = 'reading':
 	*clr & cla
 	menu_off = 1
 	gs 'grades', 'class_activity_attributes', 'school', 'lit', pcs_prcptn
-	prcptn_exp += rand(0,1)
+	gs 'exp_gain', 'prcptn', rand(0,1)
 	grupvalue[3] +=3
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/ask.jpg"></center>'
 	'You raise your hand, and with a nod, Ms. Braakman lets you speak. You read the passage clearly without any mistakes, which earns you some praise from your teacher. "Very nice, Miss <<$pcs_lastname>>." she says with a small smile before continuing on with the lesson.'
@@ -529,7 +529,7 @@ if $ARGS[0] = 'english':
 					*clr & cla
 					gs 'willpower', 'pay', 'self'
 					gs 'stat'
-					persuas_exp += 10
+					gs 'exp_gain', 'persuas', 10
 					npc_rel['A20'] -= 1
 					npc_rel['A21'] -= 1
 					grupvalue[4] -= 1
@@ -747,14 +747,14 @@ if $ARGS[0] = 'working':
 				gs 'willpower', 'pay', 'self'
 				gs 'stat'
 				if pcs_persuas >= 20:
-					persuas_exp += 10
+					gs 'exp_gain', 'persuas', 10
 					npc_rel['A20'] -= 2
 					npc_rel['A21'] -= 2
 					grupvalue[3] += 1
 					grupvalue[4] -= 1
 					'"If you''re having trouble, I can help." you suggest with a small smile. Lera and Lena exchange a wary look before nodding their heads. Carefully, you start to feed them the wrong answers and by the time you''re finished helping them, they''re none the wiser.'
 				else
-					persuas_exp += 15
+					gs 'exp_gain', 'persuas', 15
 					npc_rel['A20'] -= 1
 					npc_rel['A21'] -= 1
 					grupvalue[3] += 1
@@ -1090,7 +1090,7 @@ if $ARGS[0] = 'music':
 			act 'Katja':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Katja. She stares at you in disbelief and starts blushing bright red before she gets up and hurries to sit next to her sister.'
 				else
@@ -1110,7 +1110,7 @@ if $ARGS[0] = 'music':
 			end
 			act 'Radomir':
 				*clr & cla
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				npc_rel['A154'] += 1
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
 				if fame['pav_slut'] >= 150 or grupTipe = 5:
@@ -1124,7 +1124,7 @@ if $ARGS[0] = 'music':
 			act 'Lavrenti':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lavrenti. He gives you a perverted smile and keeps asking if you want to suck his dick.'
 				else
@@ -1145,7 +1145,7 @@ if $ARGS[0] = 'music':
 			act 'Valentin':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Valentin. He gives you a perverted smile and keeps asking if you want "go for a ride" with him. "And I don''t mean on my bike, slut." he adds with a wink.'
 				else
@@ -1166,7 +1166,7 @@ if $ARGS[0] = 'music':
 			act 'Lariska':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lariska, who gleefully laughs at you. "Don''t you have a big cock waiting for you in the bathroom, slut?"'
 				else
@@ -1187,7 +1187,7 @@ if $ARGS[0] = 'music':
 			act 'Lina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Lina, who loudly scoffs. "Don''t you have to go and suck a dick somewhere you massive whore?"'
 				else
@@ -1208,7 +1208,7 @@ if $ARGS[0] = 'music':
 			act 'Bella':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Bella, who makes no effort to hide her disgust. "You''re such a washed up and desperate slut who''ll do anything for a cock. How anyone here even tolerates you is beyond me."'
 				else
@@ -1228,7 +1228,7 @@ if $ARGS[0] = 'music':
 			act 'Petka':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Petka. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -1410,7 +1410,7 @@ if $ARGS[0] = 'art':
 			act 'Erast':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Erast, who awkwardly shuffles in his seat and avoids looking at you. You can tell your reputation as the school bike is making him feel uncomfortable, but he''s too polite to say anything.'
 				else
@@ -1430,7 +1430,7 @@ if $ARGS[0] = 'art':
 			act 'Julia':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Julia. She avoids making eye contact with you and instead focuses on her coursework.'
 				else
@@ -1450,7 +1450,7 @@ if $ARGS[0] = 'art':
 			act 'Katja':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Katja. She stares at you in disbelief and starts blushing bright red before she gets up and hurries to sit next to her sister.'
 				else
@@ -1470,7 +1470,7 @@ if $ARGS[0] = 'art':
 			act 'Albina':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Albina, who immediately looks you over before shaking her head in disgust and walking away to sit with Vicky.'
 				else
@@ -1489,7 +1489,7 @@ if $ARGS[0] = 'art':
 			act 'Anushka':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Anushka, who ignores you at first before mouthing "slut" at you and doing a motion with her hands where she pretends to be forcing your head down on her imaginary dick.'
 				else
@@ -1509,7 +1509,7 @@ if $ARGS[0] = 'art':
 			act 'Natasha':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Natasha. She avoids making eye contact with you and instead focuses on her coursework.'
 				else
@@ -1529,7 +1529,7 @@ if $ARGS[0] = 'art':
 			act 'Feofan':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Feofan. He looks at you in disgust and instead focuses on his coursework.'
 				else
@@ -1549,7 +1549,7 @@ if $ARGS[0] = 'art':
 			act 'Svyatoslav':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Svyatoslav, who ignores you at first before getting your attention and pointing at the bulge in his pants while winking. "You know you want it, so come and get it slut." he whispers with a smile.'
 				else
@@ -1569,7 +1569,7 @@ if $ARGS[0] = 'art':
 			act 'Viktoria':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Vicky, who gives you a disgusted glare and walks away to sit with Vanya.'
 				else
@@ -1589,7 +1589,7 @@ if $ARGS[0] = 'art':
 			act 'Zinaida':
 				*clr & cla
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/talk.jpg"></center>'
-				chrsm_exp += rand(1,2)
+				gs 'exp_gain', 'chrsm', rand(1,2)
 				if fame['pav_slut'] >= 150:
 					'You sit next to Zinaida. She avoids making eye contact with you and instead focuses on playing a game on her phone before class starts.'
 				else

+ 2 - 2
locations/gschool_nerd_chats.qsrc

@@ -562,7 +562,7 @@ end
 if $ARGS[0] = 'zinaida':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A142', 'like'
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big142.jpg"></center>'
@@ -734,7 +734,7 @@ end
 if $ARGS[0] = 'natalia':
 	*clr & cla
 	menu_off = 1
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'npc_relationship', 'modify', 'A240', 'like'
 	if NikoEv >= 17 and VKNatFollowup = 0:VKNatFollowup = 1
 	gs 'stat'

+ 3 - 3
locations/gschool_outcast_chats.qsrc

@@ -5,7 +5,7 @@ if $ARGS[0] = 'lesco':
 	*clr & cla
 	menu_off = 1
 	gs 'npc_relationship', 'modify', 'A7', 'like'
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big7.jpg"></center>'
 	if rand(0,5) = 0:
@@ -62,7 +62,7 @@ if $ARGS[0] = 'petia':
 	*clr & cla
 	menu_off = 1
 	gs 'npc_relationship', 'modify', 'A159', 'like'
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big159.jpg"></center>'
 	if fame['pav_slut'] > 200:
@@ -232,7 +232,7 @@ if $ARGS[0] = 'sonia':
 	*clr & cla
 	menu_off = 1
 	gs 'npc_relationship', 'modify', 'A25', 'like'
-	chrsm_exp += rand(1,2)
+	gs 'exp_gain', 'chrsm', rand(1,2)
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big25.jpg"></center>'
 	if fame['pav_slut'] > 250:

+ 1 - 1
locations/gschool_socialchg1.qsrc

@@ -478,7 +478,7 @@ if $ARGS[0] = 'tErast':
 		minut += 20
 		npc_rel['A150'] += 2
 		gs 'sweat', 'add', 10
-		stren_exp += 1
+		gs 'exp_gain', 'stren', 1
 		fat -= 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big150.jpg"></center>'

+ 1 - 1
locations/hunterLoveSex.qsrc

@@ -3013,7 +3013,7 @@ if $ARGS[0] = 'din_hunters_sex_misionary_bonus2':
 end &! --- din_hunters_sex_misionary_bonus2 ---
 
 if $ARGS[0] = 'din_hunters_sex_misionary_bonus1':
-	agil_exp += 1
+	gs 'exp_gain', 'agil', 1
 	'<center><H4>Hut</H4></center>'
 	'<center><video autoplay loop src="images/shared/sex/vag/miss/kotovsexbonus4.mp4"></video></center>'
 	'Not to be outdone, you rather cleverly put your legs behind your head. You feel the movement of his cock plunging into you even better in this position.'

+ 4 - 4
locations/hunters.qsrc

@@ -166,7 +166,7 @@ if $ARGS[0] = 'start':
 									*clr & cla
 									minut += 1
 									fingal +=  rand(1,3)
-									shoot_exp += 1
+									gs 'exp_gain', 'shoot', 1
 									'<center><video autoplay loop src="images/locations/gadukino/hunters/shooting1.mp4"></video></center>'
 									'The recoil wasn''t at all as you expected it to be. You hear a loud bang, and the last thing you remember is something hitting you on the forehead...'
 									gs 'stat'
@@ -201,7 +201,7 @@ if $ARGS[0] = 'start':
 									if (pcs_stren + pcs_shoot > 20) or (pcs_stren + pcs_shoot < 20 and rand(1,2) = 1):
 										*clr & cla
 										minut += 60
-										shoot_exp += 1
+										gs 'exp_gain', 'shoot', 1
 										gs 'stat'
 										'<center><video autoplay loop src="images/locations/gadukino/hunters/shooting2.mp4"></video></center>'
 										'You fire the rifle for an hour under the hunters watchful eyes.'
@@ -210,7 +210,7 @@ if $ARGS[0] = 'start':
 									else
 										*clr & cla
 										minut += 5
-										shoot_exp += 1
+										gs 'exp_gain', 'shoot', 1
 										gs 'stat'
 										'<center><video autoplay loop src="images/locations/gadukino/hunters/shooting1.mp4"></video></center>'
 										'Everything went wrong just like the first time. You take a shot and got hit once again by the rifle on the forehead...'
@@ -233,7 +233,7 @@ if $ARGS[0] = 'start':
 								act 'Go shooting (1:00)':
 									*clr & cla
 									minut += 60
-									shoot_exp += 1
+									gs 'exp_gain', 'shoot', 1
 									gs 'stat'
 									'<center><video autoplay loop src="images/locations/gadukino/hunters/shooting2.mp4"></video></center>'
 									'You fire the rifle for an hour under the hunters watchful eyes.'

+ 1 - 1
locations/ilyroom.qsrc

@@ -196,7 +196,7 @@ if $start_type[1] ! 'nomagic':
 															cls
 															softKAR = 10
 															BurgerQW['IlyushkinQWEvidence'] = 1
-															photoskl_exp += 2
+															gs 'exp_gain', 'photoskl', 2
 															cumface = 0
 															gs 'stat'
 															'<center><img <<$set_imgh>> src="images/system/1_openings/shared/npc_tatiana.jpg"></center>'

+ 9 - 9
locations/katjaEv.qsrc

@@ -235,7 +235,7 @@ if $ARGS[0] = 'kathan14':
 	npc_rel['A14'] += 1
 	minut += 30
 	grupvalue[1] += 1
-	if pcs_chrsm <= 45:chrsm_exp += 1
+	if pcs_chrsm <= 45:gs 'exp_gain', 'chrsm', 1
 	gs 'stat'
 
 	if random_event <= 5:
@@ -441,7 +441,7 @@ if $ARGS[0] = 'kathan15':
 	npc_rel['A16'] += 1
 	minut += 30
 	grupvalue[1] += 1
-	if pcs_chrsm <= 45:chrsm_exp += 1
+	if pcs_chrsm <= 45:gs 'exp_gain', 'chrsm', 1
 	gs 'stat'
 
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/KWS12.jpg"></center>'
@@ -707,7 +707,7 @@ if $ARGS[0] = 'kathan19':
 		menu_off = 1
 		*clr & cla
 		gs 'stat'
-		humint_exp += rand(0,1)
+		gs 'exp_gain', 'humint', rand(0,1)
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/KWT7.jpg"></center>'
 
 		if rand(0,70) >= pcs_humint:
@@ -729,8 +729,8 @@ if $ARGS[0] = 'kathan19':
 				act 'Look for something else to do':grupvalue[1] -= 5 & grupvalue[2] -= 5 & grupvalue[3] -= 5 & grupvalue[3] -= 5 & minut -= 5 & npc_rel['A140'] += 1 & gt 'katjaEv','kathan'
 			end
 		elseif rand(20,90) < pcs_persuas:
-			humint_exp += rand(1,2)
-			persuas_exp += rand(1,2)
+			gs 'exp_gain', 'humint', rand(1,2)
+			gs 'exp_gain', 'persuas', rand(1,2)
 			'"Don''t worry Katja! I know how to handle Lizaveta!"'
 			'Katja rolls her eyes at your boast, but waits for the gossiper to end something that, knowing Lizaveta, can take a while and give you some precious minutes to agree, what can and, more importantly, what CAN''T be said.'
 			'"Sorry! Sorry! You won''t believe what I just learned!"'
@@ -747,8 +747,8 @@ if $ARGS[0] = 'kathan19':
 				act 'Look for something else to do':grupvalue[1] += 5 & grupvalue[2] += 5 & grupvalue[3] += 5 & grupvalue[3] += 5 & minut += 5 & npc_rel['A140'] += 1 & gt 'katjaEv','kathan'
 			end
 		else
-			humint_exp += rand(1,2)
-			persuas_exp += rand(0,1)
+			gs 'exp_gain', 'humint', rand(1,2)
+			gs 'exp_gain', 'persuas', rand(0,1)
 			'"Katja, don''t tell me that you aren''t interested in whatever news Lizaveta wants to tell us."'
 			'Katja looks at you embarrassed, but the little smile in her lips is evident that yes, maybe the infamous Lizaveta Petrov has a really big mouth. But seriously, the gossiping is great, so you both sit and wait patiently until the typing ends and she deigns herself to talk.'
 			'"Sorry! Sorry! You won''t believe what I just learned!"'
@@ -997,10 +997,10 @@ if $ARGS[0] = 'kathan23':
 		*clr & cla
 		random_event = rand(1,100)
 		gs 'stat'
-		prcptn_exp += rand(0,1)
+		gs 'exp_gain', 'prcptn', rand(0,1)
 		
 		if random_event <= pcs_prcptn:
-			prcptn_exp += rand(0,1)
+			gs 'exp_gain', 'prcptn', rand(0,1)
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/KWT8.jpg"></center>'
 			'You turns towards him, and make a show of looking for his voice until a van passes between your line of sight. You grab Katja and crouch. People around give you some funny looks, not understanding your action.'
 			'"Come on Katja! Follow me!"'

+ 6 - 6
locations/katja_lake.qsrc

@@ -320,10 +320,10 @@ if $ARGS[0] ='winter_activities':
 			dummy = rand(1,100)
 			fat -= 1
 			gs 'sweat', 'add', 10
-			stren_exp += 1
-			agil_exp += 1
-			react_exp += 1
-			icesktng_exp += 1
+			gs 'exp_gain', 'stren', 1
+			gs 'exp_gain', 'agil', 1
+			gs 'exp_gain', 'react', 1
+			gs 'exp_gain', 'icesktng', 1
 			minut += 30
 			pcs_mood +=10
 			npc_rel['A14'] += 1
@@ -449,7 +449,7 @@ if $ARGS[0] ='winter_activities':
 					'"That was so cool <<$pcs_nickname>>! You are good!"'
 					'You smile tiredly as the crowd returns to their own skating, but there is more than a good share of wonderment at your demonstration. In general, you must say that it has been a great time, but it is time to look for something else to do.'
 
-					act 'Continue':npc_rel['A14'] += 5 & npc_rel['A141'] += 5 & stren_exp += 1 & agil_exp += 1 & react_exp += 1 & icesktng_exp += 1 & grupvalue[1] += 10 & grupvalue[2] += 5 & gt 'katjaEv','kathan'
+					act 'Continue':npc_rel['A14'] += 5 & npc_rel['A141'] += 5 & gs 'exp_gain', 'stren', 1 & gs 'exp_gain', 'agil', 1 & gs 'exp_gain', 'react', 1 & gs 'exp_gain', 'icesktng', 1 & grupvalue[1] += 10 & grupvalue[2] += 5 & gt 'katjaEv','kathan'
 				
 				elseif dummy >50:
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/KS4.jpg"></center>'
@@ -648,7 +648,7 @@ if $ARGS[0] = 'swim':
 	cumspclnt = 4 & gs 'cum_cleanup'
 
 	if pcs_sweat > 10: pcs_sweat = 10 + rand(0,4)
-	if pcs_stren < 30: stren_exp += 1
+	if pcs_stren < 30: gs 'exp_gain', 'stren', 1
 	fat -= 1
 	if $clothingworntype = 'nude' and pcs_inhib < 20: inhib_exp += rand(1,2)
 

+ 1 - 1
locations/kinoM.qsrc

@@ -61,7 +61,7 @@ if $ARGS[0] = 'a':
 	act 'Watch the movie':
 		cla
 		loverrelation[lover_number] -= 1
-		intel_exp += 1 + (mentats_dose - rand(0,mentats_dose))
+		gs 'exp_gain', 'intel', 1 + (mentats_dose - rand(0,mentats_dose))
 		'The movie proves interesting and you sit through the whole thing without interruption.'
 		xgt 'kinoM', 'b'
 	end

+ 1 - 1
locations/kotovSex.qsrc

@@ -1192,7 +1192,7 @@ end
 if $ARGS[0] = 'misionary3':
 	*clr & cla
 	menu_off = 1
-	agil_exp += 1
+	gs 'exp_gain', 'agil', 1
 	'<center><video autoplay loop src="images/shared/sex/vag/miss/kotovsexbonus4.mp4"></video></center>'
 	if protect = 0: gs 'dinsex', 'boy_puts_condom'
 	'He reluctantly does as you say, not really wanting to pause. However, when he sees you put your legs behind your head his jaw drops.'

+ 1 - 1
locations/kotovtalker.qsrc

@@ -50,7 +50,7 @@ if numnpc = 9 and fame['pav_slut'] < 200 and kotovLoveQW >= 0 and (npc_rel['A9']
 				*clr & cla
 				minut += 10
 				npc_rel['A9'] += 2
-				danc_exp += rand(1, 3)
+				gs 'exp_gain', 'danc', rand(1, 3)
 				pcs_horny += 10
 				if pcs_inhib < 40:inhib_exp += rand(1,2)
 				kotovQW += 1

+ 3 - 3
locations/kruchess.qsrc

@@ -24,8 +24,8 @@ else
 
 		act 'Spend an hour practicing with assistance from the coach':
 			*clr & cla
-			chess_exp += rand(0,1)
-			intel_exp += rand(0,1)
+			gs 'exp_gain', 'chess', rand(0,1)
+			gs 'exp_gain', 'intel', rand(0,1)
 			minut += 60
 			gs 'stat'
 
@@ -50,7 +50,7 @@ else
 		act 'Talk to Evgeny Kuznetsov':
 			*clr & cla
 			minut += 30
-			chess_exp += 2
+			gs 'exp_gain', 'chess', 2
 			npc_rel['A151'] += 5
 			gs 'stat'
 

Some files were not shown because too many files changed in this diff