Author Topic: Giving A Playertype A New TSShapeConstructor  (Read 2301 times)

I don't know how to assign a playertype a new TSShapeConstructor. I've looked through the variables and functions for a playertype, but no luck.

Using the same base model from a TSShapeConstructor seems to work fine.

Example from Dragon playertype:

datablock TSShapeConstructor(AirDragonDts)
{
   baseShape  = "./AIRdragon3.dts";
...

datablock PlayerData(AirDragonArmor : PlayerStandardArmor)
{
   shapeFile = "./AIRdragon3.dts";
...


TSShapeConstructor just merges all the animations to that model.
« Last Edit: June 11, 2014, 11:28:04 PM by Advanced Bot »

Using the same base model from a TSShapeConstructor seems to work fine.

Example from Dragon playertype:

datablock TSShapeConstructor(AirDragonDts)
{
   baseShape  = "./AIRdragon3.dts";
...

datablock PlayerData(AirDragonArmor : PlayerStandardArmor)
{
   shapeFile = "./AIRdragon3.dts";
...


TSShapeConstructor just merges all the animations to that model.
Does this mean that the dragon would use the base/data/shapes/player/m_*.dsq animations?

Does this mean that the dragon would use the base/data/shapes/player/m_*.dsq animations?
You have to include them.

Here is the TSShapeContructor dragon code.

datablock TSShapeConstructor(AirDragonDts)
{
   baseShape  = "./AIRdragon3.dts";
   sequence0  = "./Adrag_root.dsq root";

   sequence1  = "./Adrag_run.dsq run";
   sequence2  = "./Adrag_run.dsq walk";
   sequence3  = "./Adrag_back.dsq back";
   sequence4  = "./Adrag_side.dsq side";

   sequence5  = "./Adrag_crouch.dsq crouch";
   sequence6  = "./Adrag_crouchRun.dsq crouchRun";
   sequence7  = "./Adrag_crouchBack.dsq crouchBack";
   sequence8  = "./Adrag_crouchSide.dsq crouchSide";

   sequence9  = "./Adrag_look.dsq look";
   sequence10 = "./Adrag_headside.dsq headside";
   sequence11 = "./Adrag_root.dsq headUp";

   sequence12 = "./Adrag_fly_loop.dsq jump";
   sequence13 = "./Adrag_fly_loop.dsq standjump";
   sequence14 = "./Adrag_fall.dsq fall";
   sequence15 = "./Adrag_root.dsq land";

   sequence16 = "./Adrag_root.dsq armAttack";
   sequence17 = "./Adrag_root.dsq armReadyLeft";
   sequence18 = "./Adrag_root.dsq armReadyRight";
   sequence19 = "./Adrag_root.dsq armReadyBoth";
   sequence20 = "./Adrag_root.dsq spearready"; 
   sequence21 = "./Adrag_fire.dsq spearThrow";

   sequence22 = "./Adrag_root.dsq talk"; 

   sequence23 = "./Adrag_death.dsq death1";
   
   sequence24 = "./Adrag_fire.dsq shiftUp";
   sequence25 = "./Adrag_root.dsq shiftDown";
   sequence26 = "./Adrag_fire.dsq shiftAway";
   sequence27 = "./Adrag_root.dsq shiftTo";
   sequence28 = "./Adrag_root.dsq shiftLeft";
   sequence29 = "./Adrag_root.dsq shiftRight";
   sequence30 = "./Adrag_root.dsq rotCW";
   sequence31 = "./Adrag_root.dsq rotCCW";

   sequence32 = "./Adrag_root.dsq undo";
   sequence33 = "./Adrag_fire.dsq plant";

   sequence34 = "./Adrag_sit.dsq sit";

   sequence35 = "./Adrag_root.dsq wrench";

   sequence36 = "./Adrag_fire.dsq activate";
   sequence37 = "./Adrag_fire.dsq activate2";

   sequence38 = "./Adrag_root.dsq leftrecoil";
};

Using the same base model from a TSShapeConstructor seems to work fine.

Example from Dragon playertype:

datablock TSShapeConstructor(AirDragonDts)
{
   baseShape  = "./AIRdragon3.dts";
...

datablock PlayerData(AirDragonArmor : PlayerStandardArmor)
{
   shapeFile = "./AIRdragon3.dts";
...


TSShapeConstructor just merges all the animations to that model.
What a terrible system. That means if you want to change just one animation, you need to copy all of the animation files and all that. It'd be better if it was just like this:
Code: [Select]
datablock TSShapeConstructor(AirDragonDts)
{
baseShape  = "./AIRdragon3.dts";
...

datablock PlayerData(AirDragonArmor : PlayerStandardArmor)
{
shapeFile = "./AIRdragon3.dts";
TSShape = AirDragonDts;
...
« Last Edit: June 12, 2014, 02:10:19 PM by jes00 »

I agree. I don't think you would need the shape file though if you have the TSShape with the model and the animations.

I agree. I don't think you would need the shape file though if you have the TSShape with the model and the animations.
Only problem is, if Badspot changed it, all custom playertypes would break.

Well yes, but it would make it easier, but I think it is fine right now, or it could be another method of adding a TSShape instead of it being the only one.