Difference between revisions of "Basic code scripting"

From XStoryPlayer Wiki
Jump to: navigation, search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
All the scripts for the dungeon pack directory can be found in the ./pack/pack_dungeon/init directory.
+
All the scripts for the dungeon pack directory can be found in the <code>./pack/pack_dungeon/init</code> directory.
  
 
===Init sub-directories===
 
===Init sub-directories===
Line 19: Line 19:
 
==Playtime==
 
==Playtime==
 
For now we like to play around with some settings/code that are easy to do and have quick visual effect.<br>
 
For now we like to play around with some settings/code that are easy to do and have quick visual effect.<br>
We assume you are in the ./pack/pack_dungeon/init/stories/dungeon directory.
+
We assume you are in the <code>./pack/pack_dungeon/init/stories/dungeon directory</code>.
  
==Changing Saiko character==
+
===Changing Saiko character===
 
<ol>
 
<ol>
 
<li>Make sure there are no save files in the ./save directory</li>
 
<li>Make sure there are no save files in the ./save directory</li>
Line 43: Line 43:
 
</ol>
 
</ol>
  
==Entering dungeon directly==
+
===Entering dungeon directly===
 
<ol>
 
<ol>
 
<li>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.<br>
 
<li>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.<br>
Line 60: Line 60:
 
</ol>
 
</ol>
  
==Changing Saiko hair and cloth==
+
===Changing Saiko hair and cloth===
 
<ol>
 
<ol>
 
<li>Open the <code>./pack/pack_dungeon/init/std/base/char/char_base.dat'</code> file. In it you will see all the settings that are available for a character.<br>
 
<li>Open the <code>./pack/pack_dungeon/init/std/base/char/char_base.dat'</code> file. In it you will see all the settings that are available for a character.<br>
Line 85: Line 85:
  
 
   cloth_tex[0]        = "";  // <<-- Do not use cloth texture # means use standard cloth texture in model
 
   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
+
   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_shiny[0] = 2.0;
 
   cloth_spec_power[0] = 100.0;
 
   cloth_spec_power[0] = 100.0;
Line 97: Line 97:
 
   cloth_color[2]      = (180,150,150,64);
 
   cloth_color[2]      = (180,150,150,64);
 
   cloth_spec_shiny[2] = 2.0;
 
   cloth_spec_shiny[2] = 2.0;
   cloth_spec_power[2] = 100.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 /\/\/\
 
   // Add these lines /\/\/\
Line 105: Line 110:
 
</li>
 
</li>
 
<li>Now start XStoryPlayer, select the fastsex dungeon mod, the Saiko character and start it.
 
<li>Now start XStoryPlayer, select the fastsex dungeon mod, the Saiko character and start it.
Saiko should now appear somewhat silver plastic like.</li>
+
Saiko should have brown transparent cloth, matching shoes and green hair.</li>
 
</ol>
 
</ol>
  
 
===Changing scene color===
 
===Changing scene color===
 
+
<ol>
Open the /scenes/dungeon1.dat file. It contains the settings for the dungeon scene.
+
<li>Open the /scenes/dungeon1.dat file. It contains the settings for the dungeon scene.</li>
 
+
<li>Change the light object to:
Change the light object to:
+
 
+
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
 
data
 
data
 
{
 
{
 
   ...
 
   ...
   light_ambient = (0.25,0,0.25,1); // <<-- Change this to make the global ambient light purple
+
   light_ambient = (0.125,0.25,0.125,1); // <<-- Change this to make the global ambient light greenish
 
   ...
 
   ...
 
}
 
}
Line 129: Line 131:
 
   ambient = (0.75,0.75,0.75,0); // This is how much diffuse light is added to the scene by this light
 
   ambient = (0.75,0.75,0.75,0); // This is how much diffuse light is added to the scene by this light
  
   color = (1,0.25,1,1); // <<-- Add this to change the color of this light to purple
+
   color = (0.85,1,0.85,1); // <<-- Add this to change the color of this light to greenish glow
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
</li>
 
+
<li>Now start XStoryPlayer, select the fastsex dungeon mod and start it.
Now start XStoryPlayer, select the fastsex dungeon mod and start it.
+
The scene has now an greenish glow applied to it.</li>
 
+
</ol>
The scene has now an purple lighting applied to it.
+
 
+
  
 
===Changing object size===
 
===Changing object size===
  
Open the /scenes/dungeon1.dat file.
+
<ol>
 
+
<li>Open the /scenes/dungeon1.dat file.</li>
Change the light object to:
+
<li>
 
+
Change the PSCREEN1 tv object to:
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
 
tv_objecti:PSCREEN PSCREEN1
 
tv_objecti:PSCREEN PSCREEN1
 
{    
 
{    
Line 157: Line 156:
 
   channels {file = "VIDEO_PATH/*.*";}
 
   channels {file = "VIDEO_PATH/*.*";}
 
   
 
   
   scale = (2,2,2);  // <<-- Add this to resize projection screen
+
   scale = (3,1,3);  // <<-- Add this to resize projection screen
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</li>
 +
<li>Now start XStoryPlayer, select the fastsex dungeon mod and start it.
 +
The projection screen is now very wide.</li>
 +
</ol>
  
 
+
===Resume===
Now start XStoryPlayer, select the fastsex dungeon mod and start it.
+
You now have taken a small peek inside scripting. There is a lot of code contained within the /init directory but don't let that scare you off, as you have seen it is also easy to get results fast.<br>
 
+
You can now proceed with the [[Changing textures]] tutorial.
The projection screen is now very big.
+

Latest revision as of 14:29, 7 January 2015

All the scripts for the dungeon pack directory can be found in the ./pack/pack_dungeon/init directory.

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

  1. Make sure there are no save files in the ./save directory
  2. Open the /chars/saiko/init.dat file.
  3. 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
     
      ...
    }
  4. 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

  1. 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.
  2. Change the pose to:
    pose
    {
      ...    
      waypoint = "in_wp"; // <<-- Change waypoint
      ...
    }
  3. Now each tim you enter the dungeon you will be directly inside

Changing Saiko hair and cloth

  1. 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.
  2. 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.
  3. 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 /\/\/\
      ...
    }
  4. 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

  1. Open the /scenes/dungeon1.dat file. It contains the settings for the dungeon scene.
  2. 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
    }
  3. Now start XStoryPlayer, select the fastsex dungeon mod and start it. The scene has now an greenish glow applied to it.

Changing object size

  1. Open the /scenes/dungeon1.dat file.
  2. Change the PSCREEN1 tv object to:
    tv_objecti:PSCREEN PSCREEN1
    {	  
      obj_name = "pscreen:pscreen";
     
      enabled = true;
     
      channel = 1;
     
      channels {file = "VIDEO_PATH/*.*";}
     
      scale = (3,1,3);  // <<-- Add this to resize projection screen
    }
  3. Now start XStoryPlayer, select the fastsex dungeon mod and start it. The projection screen is now very wide.

Resume

You now have taken a small peek inside scripting. There is a lot of code contained within the /init directory but don't let that scare you off, as you have seen it is also easy to get results fast.
You can now proceed with the Changing textures tutorial.