50 lines
1.4 KiB
Ucode
50 lines
1.4 KiB
Ucode
class APPawnActions extends Info;
|
|
|
|
function EditPawn(Pawn p, string param)
|
|
{
|
|
if(p == none || p.controller == none)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// force walking before any other action
|
|
p.bAmbientCreature = false;
|
|
p.UnderWaterTime = p.Default.UnderWaterTime;
|
|
p.SetCollision(true, true , true);
|
|
p.SetPhysics(PHYS_Walking);
|
|
p.bCollideWorld = true;
|
|
p.JumpZ = p.Default.JumpZ;
|
|
p.bCanJump = true;
|
|
p.controller.GotoState('PlayerWalking');
|
|
p.PlayTeleportEffect(true, true);
|
|
|
|
switch(param)
|
|
{
|
|
case "ghost":
|
|
p.bAmbientCreature = true;
|
|
p.UnderWaterTime = -1.0;
|
|
p.SetCollision(false, false, false);
|
|
p.bCollideWorld = false;
|
|
p.controller.GotoState('PlayerFlying');
|
|
p.PlayTeleportEffect(true, true);
|
|
break;
|
|
case "fly":
|
|
p.bAmbientcreature = false;
|
|
p.UnderWaterTime = p.Default.UnderWaterTime;
|
|
p.Setcollision(true, true , true);
|
|
p.bCollideWorld = true;
|
|
p.controller.GotoState('PlayerFlying');
|
|
p.PlayTeleportEffect(true, true);
|
|
break;
|
|
case "spider":
|
|
p.bAmbientCreature = false;
|
|
p.UnderWaterTime = p.Default.UnderWaterTime;
|
|
p.SetCollision(true, true , true);
|
|
p.bCollideWorld = true;
|
|
p.JumpZ = 0.0;
|
|
xPawn(p).bflaming = true;
|
|
p.controller.GotoState('PlayerSpidering');
|
|
p.PlayTeleportEffect(true, true);
|
|
break;
|
|
}
|
|
} |