Basic code scripting
From XStoryPlayer Wiki
All the scripts for the dungeon pack directory can be found in the ./pack/pack_dungeon/init directory.
Contents
Init sub-directories
The /init directory contains the following sub-directories:
- /std : These files are the same for all stories (like .dll files in windows)
- /stories : These files are story specific.
Stories sub-directories
The /init/stories/dungeon directory contains the following sub-directories:
- /scenes : Scene settings
- /chars : Character code
- /mains : Main player code
- /objects : Object settings
- /lib : Defines used in code
- /gamestate : Global gamestate
- /settings : Settings for custom fastsex menu
Playtime
For now we like to play around with some settings/code that are easy to do and have quick visual effect.
We assume you are in the ./pack/pack_dungeon/init/stories/dungeon directory.
Changing Saiko character
- Make sure there are no save files in the ./save directory
- Open the /chars/saiko/init.dat file.
- Change the skin color to:
pose { ... skin_color = (240,300,300,255); // <<-- Bright silver skin_spec_shiny = 2.0; // <<-- Very shiny skin_spec_power = 100.0; // <<-- Sharp shiny ... }
- Now start XStoryPlayer, select the fastsex dungeon mod, the Saiko character and start it. Saiko should now appear somewhat silver plastic like.
Entering dungeon directly
- To be inside the dungeon directly when we enter it we need to make a change to the default entry point for the main player.
Open the /mains/player/init.dat file. - Change the pose to:
pose { ... waypoint = "in_wp"; // <<-- Change waypoint ... }
- Now each tim you enter the dungeon you will be directly inside
Changing Saiko hair and cloth
- Open the
./pack/pack_dungeon/init/std/base/char/char_base.dat'
file. In it you will see all the settings that are available for a character.
We will not edit this file because the Saiko character instance is derived from this CHAR_BASE char_object. - Open the /chars/saiko/init.dat file. You will see that at the top it says:
char_objecti:CHAR_BASE SAIKO
.
This means that the character Saiko instance is derived from the char_object CHAR_BASE. We can override the settings for this character by adding them. We will do this for the hair and cloth settings in this small tutorial. - Change the saiko/init.dat file settings to:
pose { ... skin_color = (240,300,300,255); skin_spec_shiny = 2.0; skin_spec_power = 100.0; // Add these lines \/\/\/ hair_tex = "#"; hair_color = (500,1200,1200,255); // <<-- Because texture color is dark and we keep using hair texture we need to have high values for hair color hair_spec_shiny = 2.0; hair_spec_power = 100.0; cloth_tex[0] = ""; // <<-- Do not use cloth texture # means use standard cloth texture in model cloth_color[0] = (180,150,150,64); // <<-- Color of cloth (red,green,blue,alpha). By settings alpha to 64 it is transparent. cloth_spec_shiny[0] = 2.0; cloth_spec_power[0] = 100.0; cloth_tex[1] = ""; cloth_color[1] = (180,150,150,64); cloth_spec_shiny[1] = 2.0; cloth_spec_power[1] = 100.0; cloth_tex[2] = ""; cloth_color[2] = (180,150,150,64); cloth_spec_shiny[2] = 2.0; cloth_spec_power[2] = 100.0; shoes_tex = ""; shoes_color = (165,150,150,255); shoes_spec_shiny = 2.0; shoes_spec_power = 100.0; // Add these lines /\/\/\ ... }
- Now start XStoryPlayer, select the fastsex dungeon mod, the Saiko character and start it. Saiko should have brown transparent cloth, matching shoes and green hair.
Changing scene color
- Open the /scenes/dungeon1.dat file. It contains the settings for the dungeon scene.
- Change the light object to:
data { ... light_ambient = (0.125,0.25,0.125,1); // <<-- Change this to make the global ambient light greenish ... } light_objecti:LIGHT LIGHT1 { group = 0; ambient = (0.75,0.75,0.75,0); // This is how much diffuse light is added to the scene by this light color = (0.85,1,0.85,1); // <<-- Add this to change the color of this light to greenish glow }
- Now start XStoryPlayer, select the fastsex dungeon mod and start it. The scene has now an greenish glow applied to it.
- Open the /scenes/dungeon1.dat file.
-
Change the PSCREEN1 tv object to:
tv_objecti:PSCREEN PSCREEN1 { obj_name = "pscreen:pscreen"; enabled = true; channel = 1; channels {file = "VIDEO_PATH/*.*";} scale = (2,2,2); // <<-- Add this to resize projection screen }
- Now start XStoryPlayer, select the fastsex dungeon mod and start it. The projection screen is now very wide.