瀏覽代碼

[Initial] Change mod to own repo.

3xpurt 6 年之前
當前提交
2399ae2ebc
共有 13 個文件被更改,包括 574 次插入0 次删除
  1. 17 0
      basement.qproj
  2. 二進制
      basement.qsp
  3. 二進制
      basement.txt
  4. 28 0
      locations/basement
  5. 43 0
      locations/fist
  6. 68 0
      locations/fisting
  7. 140 0
      locations/fisting1
  8. 135 0
      locations/fisting2
  9. 9 0
      locations/mod_basement
  10. 12 0
      locations/mod_basement_readme
  11. 32 0
      locations/mod_basement_setup
  12. 44 0
      txtmerge.py
  13. 46 0
      txtsplit3.py

+ 17 - 0
basement.qproj

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<QGen-project version="4.0.0 beta 1">
+  <Structure>
+    <Folder name="setup">
+      <Location name="mod_basement_setup"/>
+      <Location name="mod_basement_readme"/>
+      <Location name="mod_basement"/>
+    </Folder>
+    <Folder name="locations">
+      <Location name="basement"/>
+      <Location name="fist"/>
+      <Location name="fisting"/>
+      <Location name="fisting1"/>
+      <Location name="fisting2"/>
+    </Folder>
+  </Structure>
+</QGen-project>

二進制
basement.qsp


二進制
basement.txt


+ 28 - 0
locations/basement

@@ -0,0 +1,28 @@
+# basement
+if $ARGS[0] = 'start':
+$location_type = 'private'
+$metka = $ARGS[0]
+$loc = $curloc
+	*clr & cla
+	minut += 1
+	gs 'stat'
+	'<center><img <<$set_imgh>> src="mod/basement/podval.jpg"></center>'
+	'<center><b>The basement</b></center>'
+	'<br>'
+	'A dark basement - All around are pipes and wires, deeper within the darkness, is a door'
+	act 'Enter the room.': gt 'fist', 'start'
+	act 'Examine the door.':
+		*clr & cla
+		minut += 5
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="mod/basement/dver.jpg"></center>'
+		'<br>'
+		'On the door, written with a marker pen - Between 20:00 to 23:00<br>'
+		act 'Back away': gt 'basement', 'start'
+	end
+	act 'Back to the entrance.': gt 'pavSharedApt', 'hallway'
+	killvar 'trubsextimes'
+end
+
+--- basement ---------------------------------
+

+ 43 - 0
locations/fist

@@ -0,0 +1,43 @@
+# fist
+if $ARGS[0] = 'start':
+	*clr & cla
+	'<center><img <<$set_imgh>> src="mod/basement/fist.jpg"></center>'
+	'<center><b>Strange room</b></center>'
+	'<br>'
+	'A dark room with various devices and instruments of torture. A huge collection of phalluses of all sizes and Electromechanical vibrators.'
+	act 'Back to the basement.': gt 'basement', 'start'
+	if pcs_vag => 10 and hour >= 20 and hour <= 23 :
+		*clr & cla
+		gs 'stat'
+		'<center><img <<$set_imgh>> src="mod/basement/trub.jpg"></center>'
+		'<br>'
+		'In the shadows, behind a table, sits a hooded man.<br>'
+		act 'Hello...': gt 'fisting', 'start'
+		act 'Back to the stairs.': gt 'basement', 'start'
+	else
+		if pcs_vag < 10 and pcs_dom <= -3 and hour >= 20 and hour <= 23 :
+			*clr & cla
+			pcs_dom -= 5
+			gs 'pain', 3 , 'asscheeks', 'spank'
+			gs 'clothing', 'strip'
+			gs 'stat'
+			'<center><video autoplay loop src="mod/basement/porka2.mp4"></video></center>'
+			'<br>'
+			'I thought I told you not to come here? - Said the hooded man. Well, strip!<br><br>Freeing you from clothing and leaning you against the wall, the man begins to ''educate'' you.<br><br>Be warned, this place is only for experienced women, so crawl your way out of here, or I''ll soon teach you obedience. Go!'
+			act 'Grab your clothes and leave.': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+		else
+			if pcs_vag < 10 and hour >= 20 and hour <= 23 :
+				*clr & cla
+				pcs_dom -= 5
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="mod/basement/celka.jpg"></center>'
+				'<br>'
+				'Entering the door, and not even having time to really look around in the semi-darkness, your arm is professionally twisted behind your back, and you are gagged by a firm hand:<br>What are you doing here, bitch! Looking to gain some new experiences?<br><br>The hooded man whispered in your ear. - I''ll explain slowly,and only once! This place is not for young inexperienced girls, but for women who have explored their sexuality, and are no longer fulfilled by the norm. So leave, you''re too inexperienced to be here! Understand? <br><br>- you nodded.<br><br>Well, run away now, and if you come back, you will be punished!'
+				act 'Run to the stairs.': gt 'basement', 'start'
+			end
+		end
+	end
+end
+
+--- fist ---------------------------------
+

+ 68 - 0
locations/fisting

@@ -0,0 +1,68 @@
+# fisting
+if $ARGS[0] = 'start':
+	if trubknow = 0:
+		*clr & cla
+		'<center><img <<$set_imgh>> src="mod/basement/trub1.jpg"></center>'
+		'<center><b>The Doctor</b></center>'
+		'<br>'
+		'Well, hello there. You can call me the Doctor. Here''s a welcome brochure, please view the programme.'
+		act 'Take pamphlet.':
+			*clr & cla
+			'<center><b>Night of debauchery</b></center>'
+			'<center><img <<$set_imgh>> src="mod/basement/zurnal.jpg"></center>'
+			'<br>'
+			'The pamphlet is very detailed , with photos and detailed descriptions.<br><br>- "Programme duration is 10 hours, during which, your holes will be subject to merciless stretching, in all imaginable and non-imaginable ways. You will crawl out of here, with only one thought - to return." - states the promise at the end of the pamphlet.'
+			act 'Return the pamphlet.':
+				*clr & cla
+				'<center><b>The Doctor</b></center>'
+				'<center><img <<$set_imgh>> src="mod/basement/trub1.jpg"></center>'
+				'<br>'
+				'As you can see, we have adult only games here, so what do you say? - said the Doctor, looking you in the eye.'
+				act 'Leave': gt 'fist', 'start'
+				act 'Sounds interesting':
+					*clr & cla
+					minut += 5
+					pcs_horny += 10
+					gs 'stat'
+					'<center><b>The Doctor</b></center>'
+					'<center><img <<$set_imgh>> src="mod/basement/trub2.jpg"></center>'
+					'<br>'
+					'Oh, it''s sounds very tempting!. I''m not against experimenting, just 10 hours seems a long time.<br>Well, not so fast sweetheart! First I need to test you, to see how prepared you are. It should only take a few hours. - The Doctor smiled hungrily.'
+					act 'Leave': gt 'fist', 'start'
+					act 'Be tested': gt 'fisting1', 'start'
+				end
+			end
+		end
+		else
+		if pain[asshole] > 10 or pain[vaginal] > 10 or pain['total'] > 20:
+			*clr & cla
+			minut += 5
+			vitamin += 1
+			pcs_horny += 10
+			gs 'clothing', 'strip'
+			gs 'stat'
+			'<center><b>The Doctor</b></center>'
+			'<center><img <<$set_imgh>> src="mod/basement/trub2.jpg"></center>'
+			'<br>'
+			'Good evening Doctor. I think my holes need some attention. I really want you to fill them to capacity. - you say, trembling with anticipation, and throwing off your clothes.<br><br>Not so fast sweetheart, you haven''t seen the Doctor yet! With examination, I can safely say that you need to let yourself recover first, as I''m not a sadist. I''ll give you. you vitamin - come back when you''re healed. - The Doctor smiled hungrily.'
+			act 'Get dressed and go': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+			else
+			if pain[asshole] <= 10 and pain[vaginal] <= 10 and pain['total'] <= 20:
+				*clr & cla
+				minut += 5
+				pcs_horny += 25
+				gs 'clothing', 'strip'
+				gs 'stat'
+				'<center><b>The Doctor</b></center>'
+				'<center><img <<$set_imgh>> src="mod/basement/trub2.jpg"></center>'
+				'<br>'
+				'Good evening Doctor. I think my holes need some attention.. I really want you to fill them to capacity. - you say, trembling with anticipation, and throwing off your clothes.<br><br>Perhaps you can delight this night sweetheart!. I hope you have nothing planned for the morning, as you will be worn out, I guarantee it! - The Doctor smiled hungrily.'
+				act 'I''m available!': gt 'fisting2', 'start'
+				act 'Oh, I''m busy tomorrow.': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+			end
+		end
+	end
+end
+
+--- fisting ---------------------------------
+

+ 140 - 0
locations/fisting1

@@ -0,0 +1,140 @@
+# fisting1
+if $ARGS[0] = 'start':
+	*clr & cla
+	trubknow = 1
+	alko += 6
+	pcs_hydra -= 10
+	pcs_breath = 0
+	pain['mouth'] += 2
+	pain['lips'] += 2
+	! a count of the number visits with the Doctor
+	trubtimes += 1
+	! the local count of the number of acts
+	trubsextimes = 0
+	gs 'clothing', 'strip'
+	'<center><img <<$set_imgh>> src="mod/basement/fiks.jpg"></center>'
+	*nl
+	'Drink it up honey, it will help you relax a little.<br><br>- you took the glass, and gulped it down, then without fuss, removed your clothing. The Doctor binds then binds you to a very strange contraption.<br><br>Lets start!'
+	*nl
+	$orgasm_or = 'no'
+	gs 'arousal', 'foreplay', 60, 'sub', 'maso', 'rough', 'bound'
+	gs 'arousal', 'end'
+	gs 'pain', 1 , 'hands', 'bind'
+	gs 'pain', 1 , 'feet', 'bind'
+	gs 'pain', 1 , 'mouth', 'bind'
+	gs 'pain', 1 , 'lips', 'bind'
+	gs 'pain', 1 , 'throat', 'bind'
+	gs 'stat'
+	act 'Get started': gt 'fisting1', 'sex_init'
+end
+if $ARGS[0] = 'sex_init':
+	*clr & cla
+	'<center><img <<$set_imgh>> src="mod/basement/trub2.jpg"></center>'
+	*nl
+	'Well lets begin! Perhaps we should test your.....'
+	act 'How about my pussy?': trubsextimes += 1 & gt 'fisting1', 'art_bed'
+	act 'How about my ass?': trubsextimes += 1 & gt 'fisting1', 'art_anal'
+end
+! --- vaginal ---
+if $ARGS[0] = 'art_bed':
+	if trubsextimes < 3:
+		*clr & cla
+		pain['clitoris'] += 2
+		pain['lips'] += 2
+		'<center><video autoplay loop src="mod/basement/vaga.mp4"></video></center>'
+		*nl
+		'The Doctor includes one of a multitude of devices in the room, and your pussy recieves more of a workout than you bargained for...'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'vaginal_vibe', 40, 'sub', 'maso', 'rough'
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'I need more': gt 'fisting1', 'sex_init'
+	else
+		*clr & cla
+		pain['clitoris'] += 2
+		'<center><video autoplay loop src="mod/basement/vaga2.mp4"></video></center>'
+		*nl
+		'You, can''t help it - you moan loudly, as you experience a wave of orgasms. A feeling of congestion, pain, and pleasure embraces your overworked pussy, and your pussy gushes like a victorious fountain.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'vaginal_dildo', 5, 'sub', 'maso', 'rough'
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'I''m done': gt 'fisting1', 'ender'
+	end
+end
+! --- anal ---
+if $ARGS[0] = 'art_anal':
+	if trubsextimes < 3:
+		*clr & cla
+		'<center><video autoplay loop src="mod/basement/anal.mp4"></video></center>'
+		*nl
+		'The Doctor includes one of a multitude of devices in the room, and your ass recieves more of a workout than you bargained for...'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'anal_dildo', 40, 'sub', 'maso', 'rough'
+		gs 'arousal', 'end'
+		gs 'pain', 1 , 'asshole', 'stretch'
+		gs 'stat'
+		act 'Give me more!': gt 'fisting1', 'sex_init'
+	else
+		*clr & cla
+		'<center><video autoplay loop src="mod/basement/anal2.mp4"></video></center>'
+		*nl
+		'You, can''t help it - you moan loudly, as you experience a wave of orgasms. A feeling of congestion, pain, and pleasure embraces your overworked ass, while your pussy gushes like a victorious fountain.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'anal_dildo', 5, 'sub', 'maso', 'rough'
+		gs 'arousal', 'end'
+		gs 'pain', 1 , 'asshole', 'stretch'
+		gs 'stat'
+		act 'That''s enough': gt 'fisting1','ender'
+	end
+end
+! --- end ---
+if $ARGS[0] = 'ender':
+	if pcs_ass => 25 and pcs_vag => 25 :
+	*clr & cla
+		pcs_vag += 3
+		pcs_ass += 3
+		'<center><img <<$set_imgh>> src="mod/basement/duplo.jpg"></center>'
+		*nl
+		'I see you''re already becoming accustomed to our activities! Well done! When you are finished reviewing your well-worn holes, it''s time to leave, said the Doctor.<br><br>- You get dressed and went back to the basement, with your legs trembling.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'anal_fist', 5, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'vaginal_fist', 5, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'end'
+		gs 'pain', 1 , 'vaginal', 'stretch'
+		gs 'pain', 1 , 'asshole', 'stretch'
+		gs 'stat'
+		act 'Leave': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+	else
+		*clr & cla
+		lubri += 1
+		minut -= 5
+		vitamin += 1
+		pcs_vag += 5
+		pcs_ass += 5
+		pain['vaginal'] += vagDMG * 2
+		pain['asshole'] += assDMG * 2
+		vgape = 3
+		vgapetime = totminut + (vgape + 1) * 1440
+		agape = 3
+		agapetime = totminut + (agape + 1) * 1440
+		'<center><img <<$set_imgh>> src="mod/basement/porval.jpg"></center>'
+		*nl
+		'Well, now you need to leave your ass to heal. Here! Take a vitamin, and do the same each day. Be sure to use lube and don''t put anything too large up there for a while.<br><br>- It was fun! you told the Doctor.<br><br>Yes it was! If you decide to stretch those holes, go ahead, and remember the lubricant!, but first you must heal!<br><br>- you got dressed and left the room, your legs shaking, your pussy and anus aching mercilessly, but the feeling of fullness filling your body.'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'anal_fist', 5, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'vaginal_fist', 5, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+	end
+end
+
+--- fisting1 ---------------------------------
+

+ 135 - 0
locations/fisting2

@@ -0,0 +1,135 @@
+# fisting2
+if $ARGS[0] = 'start':
+	*clr & cla
+	trubknow = 1
+	alko += 6
+	pcs_hydra -= 10
+	pcs_breath = 0
+	! a count of the number total visits
+	trubtimes += 1
+	! the temp count of the number of acts
+	trubsextimes = 0
+	pain['mouth'] += 2
+	pain['lips'] += 2
+	gs 'clothing', 'strip'
+	'<center><img <<$set_imgh>> src="mod/basement/fiks.jpg"></center>'
+	*nl
+	'Drink it up honey, it will help you relax a little.<br><br>- you took the glass, and gulped it down, then without fuss, removed your clothing.<br><br>- The Doctor binds you to a very interesting contraption.<br><br>Well, let''s party!'
+	*nl
+	$orgasm_or = 'no'
+	gs 'arousal', 'foreplay', 60, 'sub', 'maso', 'rough', 'bound'
+	gs 'arousal', 'end'
+	gs 'pain', 1 , 'hands', 'bind'
+	gs 'pain', 1 , 'feet', 'bind'
+	gs 'stat'
+	act 'Let''s start': gt 'fisting2', 'sex_init'
+end
+if $ARGS[0] = 'sex_init':
+	if trubsextimes = 0:
+		*clr & cla
+		'<center><video autoplay loop src="mod/basement/porka.mp4"></video></center>'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'foreplay', 5, 'sub', 'maso', 'rough', 'bound'
+		gs 'arousal', 'end'
+		gs 'pain', 3 , 'asscheeks', 'spank'
+		act 'The party continues art_bed': trubsextimes += 1 & gt 'fisting2', 'art_bed'
+	elseif trubsextimes > 0:
+		*clr & cla
+		'<center><video autoplay loop src="mod/basement/fist/org.mp4"></video></center>'
+		*nl
+		'The Doctor was preparing you for the next phase, but you don''t care, and are completely absorbed in your own feelings as you orgasm.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'foreplay', 5, 'sub', 'maso', 'rough', 'bound'
+		gs 'arousal', 'end'
+		act 'More!': trubsextimes += 1 & gt 'fisting2', 'art_bed'
+	end
+end
+! --- random ---
+if $ARGS[0] = 'art_bed':
+	if trubsextimes < 10:
+		*clr & cla
+		pain['clitoris'] += 2
+		pain['cervix'] += 2
+		pain['labia'] += 2
+		pain['mouth'] += 2
+		pain['lips'] += 2
+		picrand = rand(1,32)
+		'<center><video autoplay loop src="mod/basement/fist/<<picrand>>.mp4"></video></center>'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'anal_dilo', 10, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'anal_fist', 10, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'vaginal_dilo', 10, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'vaginal_fist', 10, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'vaginal_vibe', 10, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'end'
+		gs 'pain', 2 , 'vaginal', 'stretch'
+		gs 'pain', 2 , 'asshole', 'stretch'
+		gs 'pain', 2 , 'hands', 'bind'
+		gs 'pain', 2 , 'feet', 'bind'
+		gs 'stat'
+		act 'Another round!': gt 'fisting2', 'sex_init'
+	else
+		*clr & cla
+		'<center><video autoplay loop src="mod/basement/squirt.mp4"></video></center>'
+		*nl
+		'<br>You, can''t help it - you moan loudly, as you experience a wave of orgasms. A feeling of congestion, pain, and pleasure embraces your overworked pussy, while your pussy gushes like a victorious fountain.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'vaginal_dilo', 1, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'anal_dilo', 1, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'anal_fist', 1, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'vaginal_fist', 1, 'sub', 'maso', 'rough', 'lube'
+		gs 'arousal', 'end'
+		act 'More': gt 'fisting2', 'ender'
+	end
+end
+! --- end ---
+if $ARGS[0] = 'ender':
+	if pcs_ass => 25 and pcs_vag =>25 :
+		*clr & cla
+		pcs_vag += 3
+		pcs_ass += 3
+		'<center><img <<$set_imgh>> src="mod/basement/duplo.jpg"></center>'
+		*nl
+		'I see your holes are now well accustomed to our activities! Well done!<br>When you are finished reviewing your well-worn holes, it''s time to leave, said the Doctor.<br><br>- You get dressed and went back to the basement, with your legs trembling.'
+		*nl
+		$orgasm_or = 'yes'
+		gs 'arousal', 'anal_fist', 2, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'vaginal_fist', 2, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'end'
+		gs 'pain', 1 , 'vaginal', 'stretch'
+		gs 'pain', 1 , 'asshole', 'stretch'
+		gs 'stat'
+		act 'Leave': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+	else
+		*clr & cla
+		lubri += 1
+		vitamin += 5
+		pcs_vag += 5
+		pcs_ass += 5
+		pain['vaginal'] += vagDMG * 2
+		pain['asshole'] += assDMG * 2
+		if pcs_vag < 25 : vgape = 2
+		if pcs_vag < 15 : vgape = 3
+		vgapetime = totminut + (vgape + 1) * 1440
+		if pcs_ass < 25 : agape = 2
+		if pcs_ass < 15 : agape = 3
+		agapetime = totminut + (agape + 1) * 1440
+		'<center><img <<$set_imgh>> src="mod/basement/porval.jpg"></center>'
+		*nl
+		'Enough!. I think the night was a success. Well ,you go recover, and until then, here are some vitamins and lube.<br><br>- As you say Doctor, It was awesome, but If I cum one more time I will burst. Thank you!<br><br>- you got dressed and left the room, your legs shaking, your pussy and anus aching mercilessly, but the feeling of fullness filling your body.'
+		*nl
+		$orgasm_or = 'no'
+		gs 'arousal', 'anal_fist', 2, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'vaginal_fist', 2, 'sub', 'maso', 'rough', 'bound', 'lube'
+		gs 'arousal', 'end'
+		gs 'stat'
+		act 'Leave': gs 'clothing', 'wear_last_worn' & gt 'basement', 'start'
+	end
+end
+
+--- fisting2 ---------------------------------
+

+ 9 - 0
locations/mod_basement

@@ -0,0 +1,9 @@
+# mod_basement
+! check mode
+! check location
+if $curloc = 'pavSharedApt' and $ARGS[0] = 'hallway':
+act 'Go to the basement': gt 'basement', 'start'
+end
+
+--- mod_basement ---------------------------------
+

+ 12 - 0
locations/mod_basement_readme

@@ -0,0 +1,12 @@
+# mod_basement_readme
+!input your mod detail readme here. you can use msg or detailed structure, just make sure to create act 'return': gt 'mod_setting'
+*clr&cla
+act 'return': gt 'mod_setting'
+
+'<center>Mod <b>Basement</b></center>'
+'Chance for fans to expand holes. A hooded man will settle in the basement of your parent''s apartment. A good-hearted fellow, who will help to gradually expand your holes. If you take it in the ass - your dominance falls.
+
+--- illume, 2018/1/25'
+
+--- mod_basement_readme ---------------------------------
+

+ 32 - 0
locations/mod_basement_setup

@@ -0,0 +1,32 @@
+# mod_basement_setup
+!input basic mod information here. 
+!this location must be the first one
+
+$mod_info[0] = 'basement'
+!0=mod name, saved to $mod_name[i] array 
+
+$mod_info[1] = '10000'
+!1=mod version
+!this will be displayed as version 1.2, fix3.
+!if you input 40500, will be showen as version 4.5
+
+$mod_info[2] = 'Fishka666 - Added to Girl Life ECV by 3xpurt'
+!2=mod author
+
+$mod_info[3] = 'apartment basement.'
+!3=mod description, input a short brief here.
+
+
+if curloc = 'mod_<<$mod_info[0]>>_setup':
+	usehtml = 1
+	!this will be only showed if you exec mod file. This location should be only called by gs, so this line will not trigger on normal mod playing
+	'<center><h1><font color=red>ACCESS DENIED</font></h1></center>'
+	'<<$mod_info[0]>> is a mod for <b>Girl Life - English Community Version</b>, and can not be played individually.'
+	''
+	'you can find the main game in <a href="https://www.tfgamessite.com/index.php?module=viewgame&id=597">Tfgames site</a> (external link)'
+	''
+	'Our forum: <a href="https://tfgamessite.com/phpbb3/viewforum.php?f=70">Tfgames site</a> (external link)'
+end
+
+--- mod_basement_setup ---------------------------------
+

+ 44 - 0
txtmerge.py

@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# usage: txtmerge.py <input_dir> <output_file_name> 
+# does the exact opposite of txtsplit.py
+
+import os
+import sys
+import re
+import io 
+import xml.etree.ElementTree as ET
+
+assert len(sys.argv) == 3, "usage:\ntxtmerge.py <input_dir> <output_file_name>"
+idir = str(sys.argv[1])
+oname = str(sys.argv[2])
+
+# read the project xml file first
+# let's do this later in order to implement directory structure
+tree = ET.parse('basement.qproj')
+root = tree.getroot()
+
+
+ofile = io.open(oname, 'w', encoding='utf-16', newline='\r\n')
+
+for location in root.iter('Location'):
+    iname = location.attrib['name']
+    iname = iname.replace("$","_")
+
+    try:
+        ifile = io.open(os.path.join(idir,iname), 'rt', encoding='utf-8')
+        text = ifile.read()
+
+        # make sure there's a line at the end of file
+        # (why wouldn't there be one? WINDOWS!
+        if text[-1] != u'\n':
+            text += u'\n\n'
+
+        ofile.write(text)
+        ifile.close()
+    except IOError:
+        print("WARNING: missing location %s" % iname)
+        pass
+
+ofile.close()
+    
+        

+ 46 - 0
txtsplit3.py

@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+# usage: txtsplit.py <input_file_name> <output_dir>
+# splits a txt2gam file into individual location files
+# encoded in utf-8, for git to better handle
+
+import os
+import sys
+import re
+import io
+import xml.etree.ElementTree as ET
+
+assert len(sys.argv) == 3, "usage:\ntxtsplit.py <input_file_name> <output_dir>"
+iname = str(sys.argv[1])
+odir = str(sys.argv[2])
+
+# read the project xml file first
+# let's do this later in order to implement directory structure
+"""
+tree = ET.parse('GirlLife.qproj')
+root = tree.getroot()
+"""
+
+ifile = io.open(iname, 'rt', encoding='utf-16')
+
+counter = 1
+
+oname = None
+firstline = ifile.readline().replace(u'\ufeff','')
+match = re.search('^#\s(\$?[_.\w]+)$', firstline)
+if match:
+    oname = os.path.join(odir, match.group(1).replace("$","_") )
+    counter += 1
+assert oname, "file is in the wrong format, must start with a location name"
+
+ofile = io.open(oname, 'w', encoding='utf-8')
+ofile.write(firstline)
+
+for line in ifile:
+    match = re.search('^#\s(\$?[_.\w]+)$', line)
+    if match:
+        ofile.close()
+        oname = os.path.join(odir, match.group(1).replace("$","_") )
+        counter += 1
+        ofile = io.open(oname, 'w', encoding='utf-8')
+    ofile.write(line)
+