Okay, for the shark, I have the root, swim, and bite. Here's the TSShapeConstructor part for the shark, the whole script for the other one is in another topic.
// Load dts shapes and merge animations
datablock TSShapeConstructor(SharkDts)
{
baseShape = "./Shark.dts";
sequence0 = "./s_root.dsq root";
sequence1 = "./s_swim.dsq run";
sequence2 = "./s_swim.dsq walk";
sequence3 = "./s_root.dsq back";
sequence4 = "./s_root.dsq side";
sequence5 = "./s_root.dsq crouch";
sequence6 = "./s_root.dsq crouchRun";
sequence7 = "./s_root.dsq crouchBack";
sequence8 = "./s_root.dsq crouchSide";
sequence9 = "./s_root.dsq look";
sequence10 = "./s_root.dsq headside";
sequence11 = "./s_root.dsq headUp";
sequence12 = "./s_root.dsq jump";
sequence13 = "./s_root.dsq standjump";
sequence14 = "./s_root.dsq fall";
sequence15 = "./s_root.dsq land";
sequence16 = "./s_root.dsq armAttack";
sequence17 = "./s_root.dsq armReadyLeft";
sequence18 = "./s_root.dsq armReadyRight";
sequence19 = "./s_root.dsq armReadyBoth";
sequence20 = "./s_root.dsq spearready";
sequence21 = "./s_root.dsq spearThrow";
sequence22 = "./s_root.dsq talk";
sequence23 = "./s_root.dsq die";
sequence24 = "./s_root.dsq shiftUp";
sequence25 = "./s_root.dsq shiftDown";
sequence26 = "./s_root.dsq shiftAway";
sequence27 = "./s_root.dsq shiftTo";
sequence28 = "./s_root.dsq shiftLeft";
sequence29 = "./s_root.dsq shiftRight";
sequence30 = "./s_root.dsq rotCW";
sequence31 = "./s_root.dsq rotCCW";
sequence32 = "./s_root.dsq undo";
sequence33 = "./s_root.dsq plant";
sequence34 = "./s_root.dsq sit";
sequence35 = "./s_root.dsq wrench";
sequence36 = "./s_bite.dsq activate";
sequence37 = "./s_bite.dsq activate2";
sequence38 = "./s_root.dsq leftrecoil";
};
datablock PlayerData(RotSharkZombie : SharkArmor)
{
//category = "Vehicles";
minJetEnergy = 0;
jetEnergyDrain = 0;
canJet = 0;
maxItems = 0; //total number of bricks you can carry
maxWeapons = 0; //this will be controlled by mini-game code
maxTools = 0;
runforce = 100 * 90;
maxForwardSpeed = 8;
maxBackwardSpeed = 8;
maxSideSpeed = 8;
attackpower = 10;
jumpsound = "ZombieJumpSound";
BrickDestroyMaxVolume = 250;
BrickMaxJumpHeight = 20;
uiName = "Zombie Shark";
rideable = true;
canRide = true;
BrickKillRadius = 2;
skinColor = "0.55 0.7 0.55 1";
FollowAnim = "ArmReadyBoth";
};
function RotSharkZombie::ondisabled(%this,%obj)
{
parent::ondisabled(%this,%obj);
ZombieDefault::ondisabled(%this,%obj);
}
function RotSharkZombie::onCollision(%this, %obj, %col, %fade, %pos, %norm)
{
parent::oncollision(%this, %obj, %col, %fade, %pos, %norm);
ZombieDefault::onCollision(%this, %obj, %col, %fade, %pos, %norm);
}
function RotSharkZombie::onMount(%a,%player,%vehicle,%d,%e,%f)
{
ZombieDefault::onMount(%a,%player,%vehicle,%d,%e,%f);
parent::onMount(%a,%player,%vehicle,%d,%e,%f);
}
function RotSharkZombie::onUnMount(%a,%player,%vehicle,%d,%e,%f)
{
ZombieDefault::onUnMount(%a,%player,%vehicle,%d,%e,%f);
parent::onUnMount(%a,%player,%vehicle,%d,%e,%f);
}
function RotSharkZombie::onAdd(%this,%obj)
{
parent::onAdd(%this,%obj);
ZombieDefault::onAdd(%this,%obj);
}