out, you devils of the past!
Before Width: | Height: | Size: 769 KiB |
Before Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 19 KiB |
|
@ -1,44 +0,0 @@
|
|||
[DefCore]
|
||||
id=MONS
|
||||
Version=4,9,8
|
||||
Category=C4D_Living|C4D_SelectAnimal
|
||||
MaxUserSelect=5
|
||||
TimerCall=Activity
|
||||
ContactCalls=1
|
||||
Width=48
|
||||
Height=34
|
||||
Offset=-24,-17
|
||||
Vertices=7
|
||||
VertexX=-1,1,0,-6,-2,7,2
|
||||
VertexY=-7,-7,12,-3,6,-3,6
|
||||
VertexCNAT=5,6,8,1,1,2,2
|
||||
VertexFriction=100,100,100,100,100,100
|
||||
Value=35
|
||||
Mass=100
|
||||
Components=MONS=1
|
||||
Picture=576,68,64,64
|
||||
Growth=15
|
||||
Float=1
|
||||
BorderBound=1
|
||||
StretchGrowth=1
|
||||
NoBurnDecay=1
|
||||
IncompleteActivity=1
|
||||
VehicleControl=2
|
||||
Pathfinder=1
|
||||
ClosedContainer=2
|
||||
NoFight=1
|
||||
Rotate=1
|
||||
|
||||
[Physical]
|
||||
Energy=250000
|
||||
Breath=50000
|
||||
Walk=71000
|
||||
Jump=50000
|
||||
Scale=30000
|
||||
Hangle=30000
|
||||
Dig=40000
|
||||
Swim=60000
|
||||
Throw=50000
|
||||
Push=40000
|
||||
Fight=50000
|
||||
CorrosionResist=1
|
|
@ -1 +0,0 @@
|
|||
Friedliebende grüne Zeitgenossen.
|
|
@ -1 +0,0 @@
|
|||
They want no harm.
|
|
@ -1,2 +0,0 @@
|
|||
DE:Monster
|
||||
US:Monster
|
|
@ -1,14 +0,0 @@
|
|||
material Material.002
|
||||
{
|
||||
receive_shadows on
|
||||
technique
|
||||
{
|
||||
pass
|
||||
{
|
||||
ambient 0.500000 0.500000 0.500000 1.000000
|
||||
diffuse 0.000000 0.800000 0.169670 1.000000
|
||||
specular 0.342542 0.500000 0.000000 1.000000 12.500000
|
||||
emissive 0.000000 0.000000 0.000000 1.000000
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,325 +0,0 @@
|
|||
/*-- Monster --*/
|
||||
|
||||
#strict 2
|
||||
//#include ANIM
|
||||
|
||||
public func IsPossessible() { return 1; }
|
||||
|
||||
/* Initialisierung */
|
||||
|
||||
protected func Initialize() { SetAction("Walk"); }
|
||||
|
||||
/* TimerCall mit KI-Steuerung */
|
||||
|
||||
private func Activity()
|
||||
{
|
||||
// Die KI-Steuerung wird bei Besessenheit nicht gebraucht
|
||||
if (GetEffect("PossessionSpell", this)) return;
|
||||
|
||||
// Nichts machen
|
||||
if (Random(2) || (GetAction() != "Walk" && GetAction() != "Swim")) return 1;
|
||||
|
||||
// Springen
|
||||
/* if (GetAction() == "Walk")
|
||||
if (!Random(3)) return DoJump();
|
||||
|
||||
// Umsehen
|
||||
if (GetAction() == "Walk")
|
||||
if (!Random(8)) return SetAction("LookUp");*/
|
||||
|
||||
// Umdrehen
|
||||
if (Random(2)) return TurnRight();
|
||||
return TurnLeft();
|
||||
}
|
||||
|
||||
/* Kontakte */
|
||||
|
||||
protected func ContactLeft()
|
||||
{
|
||||
// Die KI-Steuerung wird bei Besessenheit nicht gebraucht
|
||||
if (GetEffect("PossessionSpell", this)) return;
|
||||
|
||||
return TurnRight();
|
||||
}
|
||||
|
||||
protected func ContactRight()
|
||||
{
|
||||
// Die KI-Steuerung wird bei Besessenheit nicht gebraucht
|
||||
if (GetEffect("PossessionSpell", this)) return;
|
||||
|
||||
return TurnLeft();
|
||||
}
|
||||
|
||||
/* Aktionen */
|
||||
|
||||
public func TurnRight()
|
||||
{
|
||||
if (Stuck() || (GetAction() != "Walk" && GetAction() != "Swim")) return;
|
||||
if (GetXDir() < 0) SetXDir(0);
|
||||
SetDir(DIR_Right);
|
||||
SetComDir(COMD_Right);
|
||||
return 1;
|
||||
}
|
||||
|
||||
public func TurnLeft()
|
||||
{
|
||||
if (Stuck() || (GetAction() != "Walk" && GetAction() != "Swim")) return;
|
||||
if (GetXDir() > 0) SetXDir(0);
|
||||
SetDir(DIR_Left);
|
||||
SetComDir(COMD_Left);
|
||||
return 1;
|
||||
}
|
||||
|
||||
private func HitCheck()
|
||||
{
|
||||
/* var obj;
|
||||
if (obj = FindObject(0, +1,0,0,0, OCF_Prey, 0,0, NoContainer()))
|
||||
Punch(obj, 10);*/
|
||||
return 1;
|
||||
}
|
||||
|
||||
public func DoJump()
|
||||
{
|
||||
if (GetAction() != "Walk") return;
|
||||
if (Random(2)) Sound("Growl*");
|
||||
Jump();
|
||||
}
|
||||
|
||||
/* Einwirkungen */
|
||||
|
||||
protected func Death()
|
||||
{
|
||||
Sound("DeathGrowl");
|
||||
SetDir(DIR_Left);
|
||||
//ChangeDef(DMNS);
|
||||
SetAction("Dead");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Vermehrung */
|
||||
|
||||
private func ReproductionRate() { return 2000; } // Die Chance, dass in einem Timerintervall eine Vermehrung stattfindet
|
||||
private func MaxAnimalCount() { return 4; } // Maximale Tieranzahl im Umkreis
|
||||
|
||||
/* Steuerung durch Besessenheit */
|
||||
|
||||
protected func ControlCommand(szCommand, pTarget, iTx, iTy)
|
||||
{
|
||||
// Bewegungskommando
|
||||
if (szCommand == "MoveTo")
|
||||
return SetCommand(this,szCommand, pTarget, iTx, iTy);
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected func ContainedLeft(object caller)
|
||||
{
|
||||
[$TxtMovement$]
|
||||
SetCommand(this, "None");
|
||||
if(!GetPlrCoreJumpAndRunControl(caller->GetController()))
|
||||
TurnLeft();
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected func ContainedRight(object caller)
|
||||
{
|
||||
[$TxtMovement$]
|
||||
SetCommand(this, "None");
|
||||
if(!GetPlrCoreJumpAndRunControl(caller->GetController()))
|
||||
TurnRight();
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected func ContainedUp(object caller)
|
||||
{
|
||||
[$TxtMovement$]
|
||||
SetCommand(this, "None");
|
||||
if(Contained()) return SetCommand(this, "Exit");
|
||||
if (GetAction() == "Swim")
|
||||
{
|
||||
if(!GetPlrCoreJumpAndRunControl(caller->GetController()))
|
||||
SetComDir(COMD_Up);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
DoJump();
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected func ContainedDown(object caller)
|
||||
{
|
||||
[$TxtMovement$]
|
||||
SetCommand(this, "None");
|
||||
|
||||
if (GetAction() == "Swim")
|
||||
{
|
||||
if(!GetPlrCoreJumpAndRunControl(caller->GetController()))
|
||||
SetComDir(COMD_Down);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (GetAction() == "Walk")
|
||||
SetAction("LookUp");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* JumpAndRun Steuerung */
|
||||
|
||||
private func ClearDir(bool fX)
|
||||
{
|
||||
if(fX && GetXDir())
|
||||
{
|
||||
if(GetXDir() > 0) SetXDir(Max(GetXDir() - 2, 0));
|
||||
else SetXDir(Min(GetXDir() + 2, 0));
|
||||
}
|
||||
if(!fX && GetYDir())
|
||||
{
|
||||
if(GetYDir() > 0) SetYDir(Max(GetYDir() - 2, 0));
|
||||
else SetYDir(Min(GetYDir() + 2, 0));
|
||||
}
|
||||
}
|
||||
|
||||
public func ContainedUpdate(object self, int comdir)
|
||||
{
|
||||
if(GetAction() == "Swim")
|
||||
{
|
||||
SetComDir(comdir);
|
||||
ClearScheduleCall(this, "ClearDir");
|
||||
if(comdir == COMD_Down || comdir == COMD_Up) ScheduleCall(this, "ClearDir", 1, (Abs(GetXDir())+1)/2, true);
|
||||
if(comdir == COMD_Left || comdir == COMD_Right) ScheduleCall(this, "ClearDir", 1, (Abs(GetYDir())+1)/2, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(comdir == COMD_UpRight || comdir == COMD_DownRight) comdir = COMD_Right;
|
||||
if(comdir == COMD_Up || comdir == COMD_Down) comdir = COMD_Stop;
|
||||
if(comdir == COMD_UpLeft || comdir == COMD_DownLeft) comdir = COMD_Left;
|
||||
SetComDir(comdir);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected func ContainedThrow() { return 1; }
|
||||
|
||||
protected func ContainedDigDouble()
|
||||
{
|
||||
[$TxtLeave$]
|
||||
RemoveEffect("PossessionSpell", this);
|
||||
return 1;
|
||||
}
|
||||
func Definition(def) {
|
||||
SetProperty("ActMap", {
|
||||
Walk = {
|
||||
Prototype = Action,
|
||||
Name = "Walk",
|
||||
Procedure = DFA_WALK,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 16,
|
||||
Delay = 5,
|
||||
X = 0,
|
||||
Y = 0,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Walk",
|
||||
TurnAction = "Turn",
|
||||
StartCall = "HitCheck",
|
||||
InLiquidAction = "Swim",
|
||||
Animation = "Walk",
|
||||
},
|
||||
Turn = {
|
||||
Prototype = Action,
|
||||
Name = "Turn",
|
||||
Procedure = DFA_NONE,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 7,
|
||||
Delay = 2,
|
||||
X = 0,
|
||||
Y = 68,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Walk",
|
||||
},
|
||||
Jump = {
|
||||
Prototype = Action,
|
||||
Name = "Jump",
|
||||
Procedure = DFA_FLIGHT,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 17,
|
||||
Delay = 1,
|
||||
X = 0,
|
||||
Y = 34,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Hold",
|
||||
InLiquidAction = "Swim",
|
||||
},
|
||||
Swim = {
|
||||
Prototype = Action,
|
||||
Name = "Swim",
|
||||
Procedure = DFA_SWIM,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 16,
|
||||
Delay = 5,
|
||||
X = 0,
|
||||
Y = 0,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Swim",
|
||||
TurnAction = "Turn",
|
||||
StartCall = "HitCheck",
|
||||
},
|
||||
LookUp = {
|
||||
Prototype = Action,
|
||||
Name = "LookUp",
|
||||
Procedure = DFA_NONE,
|
||||
Attach = 8,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 12,
|
||||
Delay = 1,
|
||||
X = 0,
|
||||
Y = 102,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Look",
|
||||
InLiquidAction = "Swim",
|
||||
},
|
||||
Look = {
|
||||
Prototype = Action,
|
||||
Name = "Look",
|
||||
Attach = 8,
|
||||
Procedure = DFA_NONE,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Delay = 15,
|
||||
X = 528,
|
||||
Y = 102,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "LookAway",
|
||||
InLiquidAction = "Swim",
|
||||
},
|
||||
LookAway = {
|
||||
Prototype = Action,
|
||||
Name = "LookAway",
|
||||
Attach = 8,
|
||||
Procedure = DFA_NONE,
|
||||
Directions = 2,
|
||||
FlipDir = 1,
|
||||
Length = 12,
|
||||
Delay = 1,
|
||||
Reverse = 1,
|
||||
X = 0,
|
||||
Y = 102,
|
||||
Wdt = 48,
|
||||
Hgt = 34,
|
||||
NextAction = "Walk",
|
||||
InLiquidAction = "Swim",
|
||||
}, }, def);
|
||||
SetProperty("Name", "$Name$", def);
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
TxtMovement=Bewegen
|
||||
TxtLeave=Zurückverwandeln
|
||||
Name=Monster
|
|
@ -1,3 +0,0 @@
|
|||
TxtMovement=Move
|
||||
TxtLeave=Retransform
|
||||
Name=Monster
|
Before Width: | Height: | Size: 466 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 36 KiB |