Estou fazendo um veículo para UnrealScript da Unreal Engine 1 (mais especificamente, Unreal Tournament v436) que FUNCIONE.
Porém o seguinte erro surge:
Error in UT99Vehicle, line 155: 'state': expecting State, got Function
Esse é o código inteiro:
//=============================================================================
// UT99Vehicle.
//=============================================================================
class UT99Vehicle expands Pickup;
var(Vehicle) Vector DriverOffset;
var(Vehicle) Vector PassengerOffsets[63];
var(Vehicle) float TopSpeed;
var(Vehicle) float VehicleHealth;
var byte PeopleInside;
var Pawn PassengerPawns[63];
var Pawn DriverPawn;
var(Vehicle) bool bTeamGame;
var(Vehicle) float ActorBumpForce;
var(Vehicle) int MyTeam;
var(Vehicle) bool bSetTeamToDriverTeam;
var(Vehicle) int PawnBumpDamage;
var(Vehicle) float Weight;
var(Vehicle) string KillMessage[3];
var(Vehicle) int MaxPassengers;
var(Vehicle) float RespawnTime;
var(Vehicle) Texture DestroyedTexture;
var Texture OldTexture;
simulated function TakeDamage(int Health, Pawn EventInstigator, vector HitLocation, vector Momentum, name DamageType)
{
if ( DamageType != 'AntiVehicle' )
self.Velocity += Momentum / (Weight / 2);
else self.Velocity += Momentum / Weight;
}
simulated function Touch(Actor Other)
{
if ( Other.IsA(class'Pawn'.Name) && PeopleInside > 1 )
{
if
(
( Level.Game.IsA(class'TeamGamePlus'.Name)
&& (
(
!bSetTeamToDriverTeam
&& Pawn(Other).PlayerReplicationInfo.Team == MyTeam
)
^^ (
bSetTeamToDriverTeam
&& Pawn(Other).PlayerReplicationInfo.Team == DriverPawn.PlayerReplicationInfo.Team
)
)
)
&& Pawn(Other).PlayerReplicationInfo.Team != 255
&& PeopleInside <= MaxPassengers
)
{
PassengerPawns[PeopleInside - 1] = Pawn(Other);
PeopleInside++;
}
else
{
Other.TakeDamage(PawnBumpDamage, DriverPawn, Location, Velocity, 'vehiclebump');
Other.Velocity = (Other.Location - Location) * ActorBumpForce;
if ( Pawn(Other).Health < 1 )
{
Pawn(Other).GoToState('Dying');
BroadcastMessage(KillMessage[0] @ DriverPawn.Name @ KillMessage[1] @ Pawn(Other).Name @ KillMessage[2]);
}
}
}
else if ( Other.IsA(class'Projectile'.Name) )
{
Projectile(Other).ProcessTouch(self, self.Location);
}
else if ( Other.bBlockActors )
Other.Velocity = (Other.Location - Location) * ActorBumpForce;
}
simulated function AdjustMotion(vector OldLocation, pawn Driver)
{
if ( VSize(OldLocation - Location) > TopSpeed )
{
return Normal(OldLocation - Location) * TopSpeed;
}
}
simulated function LeaveVehicle(byte Index)
{
local int i;
if ( Index == 0 )
{
DriverPawn == None;
PeopleInside--;
for (i = 0; i < 64; i++)
if ( PassengerPawns[i] != None )
PassengerPawns[i] == None;
}
elif ( Index < 64 )
{
for ( i = Index--; i < 63; i++ )
{
if ( PassengerPawns[i++] != None )
PassengerPawns[i] = PassengerPawns[i++];
else
return;
}
}
}
function PickupFunction(Pawn Other)
{
if ( IsInState('Destroyed') || IsInState('Activated') )
return;
DriverPawn = Other;
PeopleInside++;
GoToState('Activated');
}
simulated function Tick(float TimeDelta)
{
local vector OldLocation;
local int i;
if ( PeopleInside < 1 || !IsInState('Activated') )
return;
if ( VehicleHealth < 1 )
{
Spawn(class'ExplosionChain', self, Location + (BlastOffset * (VRand() * 2 ))).Trigger(self, DriverPawn);
GoToState('Destroyed')
}
OldLocation = Location;
if ( DriverPawn != None )
{
Self.Location = DriverPawn.Location - DriverOffset;
}
Move(AdjustMotion(OldLocation, DriverPawn))
DriverPawn.SetLocation(Location + DriverOffset);
for ( i = 0; i < 64; i++ )
if ( PassengerPawns[i] != None )
{
PassengerPawns[í].SetLocation(Location + PassengerOffsets[i]);
}
}
State() Destroyed
{
function TakeDamage();
function Tick();
function LeaveVehicle();
function PickupFunction();
function Touch();
simulated function BeginState()
{
OldTexture = Texture;
Texture = DestroyedTexture;
Super.Sleep(RespawnTime);
Texture = OldTexture
GoToState(InitialState);
}
}
EDIT: Nossa, o resto do texto foi trincado :/
EDIT2:Tentei procurar por algo na Unreal Wiki, mas tudo que encontrei era a sintaxe de declaração (que já estava correta) e uma "solução" que não funcionou.
E uma pesquisa Google pelos termos exatos:
unrealscript "expecting state got function"
EDIT3: Para de trincar meu texto DX
Editado por Gustavo6046 Adicionando informação vital
Pergunta
Gustavo6046
Olá a todos!! :D
Estou fazendo um veículo para UnrealScript da Unreal Engine 1 (mais especificamente, Unreal Tournament v436) que FUNCIONE.
Porém o seguinte erro surge:
Esse é o código inteiro:
//============================================================================= // UT99Vehicle. //============================================================================= class UT99Vehicle expands Pickup; var(Vehicle) Vector DriverOffset; var(Vehicle) Vector PassengerOffsets[63]; var(Vehicle) float TopSpeed; var(Vehicle) float VehicleHealth; var byte PeopleInside; var Pawn PassengerPawns[63]; var Pawn DriverPawn; var(Vehicle) bool bTeamGame; var(Vehicle) float ActorBumpForce; var(Vehicle) int MyTeam; var(Vehicle) bool bSetTeamToDriverTeam; var(Vehicle) int PawnBumpDamage; var(Vehicle) float Weight; var(Vehicle) string KillMessage[3]; var(Vehicle) int MaxPassengers; var(Vehicle) float RespawnTime; var(Vehicle) Texture DestroyedTexture; var Texture OldTexture; simulated function TakeDamage(int Health, Pawn EventInstigator, vector HitLocation, vector Momentum, name DamageType) { if ( DamageType != 'AntiVehicle' ) self.Velocity += Momentum / (Weight / 2); else self.Velocity += Momentum / Weight; } simulated function Touch(Actor Other) { if ( Other.IsA(class'Pawn'.Name) && PeopleInside > 1 ) { if ( ( Level.Game.IsA(class'TeamGamePlus'.Name) && ( ( !bSetTeamToDriverTeam && Pawn(Other).PlayerReplicationInfo.Team == MyTeam ) ^^ ( bSetTeamToDriverTeam && Pawn(Other).PlayerReplicationInfo.Team == DriverPawn.PlayerReplicationInfo.Team ) ) ) && Pawn(Other).PlayerReplicationInfo.Team != 255 && PeopleInside <= MaxPassengers ) { PassengerPawns[PeopleInside - 1] = Pawn(Other); PeopleInside++; } else { Other.TakeDamage(PawnBumpDamage, DriverPawn, Location, Velocity, 'vehiclebump'); Other.Velocity = (Other.Location - Location) * ActorBumpForce; if ( Pawn(Other).Health < 1 ) { Pawn(Other).GoToState('Dying'); BroadcastMessage(KillMessage[0] @ DriverPawn.Name @ KillMessage[1] @ Pawn(Other).Name @ KillMessage[2]); } } } else if ( Other.IsA(class'Projectile'.Name) ) { Projectile(Other).ProcessTouch(self, self.Location); } else if ( Other.bBlockActors ) Other.Velocity = (Other.Location - Location) * ActorBumpForce; } simulated function AdjustMotion(vector OldLocation, pawn Driver) { if ( VSize(OldLocation - Location) > TopSpeed ) { return Normal(OldLocation - Location) * TopSpeed; } } simulated function LeaveVehicle(byte Index) { local int i; if ( Index == 0 ) { DriverPawn == None; PeopleInside--; for (i = 0; i < 64; i++) if ( PassengerPawns[i] != None ) PassengerPawns[i] == None; } elif ( Index < 64 ) { for ( i = Index--; i < 63; i++ ) { if ( PassengerPawns[i++] != None ) PassengerPawns[i] = PassengerPawns[i++]; else return; } } } function PickupFunction(Pawn Other) { if ( IsInState('Destroyed') || IsInState('Activated') ) return; DriverPawn = Other; PeopleInside++; GoToState('Activated'); } simulated function Tick(float TimeDelta) { local vector OldLocation; local int i; if ( PeopleInside < 1 || !IsInState('Activated') ) return; if ( VehicleHealth < 1 ) { Spawn(class'ExplosionChain', self, Location + (BlastOffset * (VRand() * 2 ))).Trigger(self, DriverPawn); GoToState('Destroyed') } OldLocation = Location; if ( DriverPawn != None ) { Self.Location = DriverPawn.Location - DriverOffset; } Move(AdjustMotion(OldLocation, DriverPawn)) DriverPawn.SetLocation(Location + DriverOffset); for ( i = 0; i < 64; i++ ) if ( PassengerPawns[i] != None ) { PassengerPawns[í].SetLocation(Location + PassengerOffsets[i]); } } State() Destroyed { function TakeDamage(); function Tick(); function LeaveVehicle(); function PickupFunction(); function Touch(); simulated function BeginState() { OldTexture = Texture; Texture = DestroyedTexture; Super.Sleep(RespawnTime); Texture = OldTexture GoToState(InitialState); } }EDIT: Nossa, o resto do texto foi trincado :/
EDIT2:Tentei procurar por algo na Unreal Wiki, mas tudo que encontrei era a sintaxe de declaração (que já estava correta) e uma "solução" que não funcionou.
E uma pesquisa Google pelos termos exatos:
EDIT3: Para de trincar meu texto DX
Editado por Gustavo6046Adicionando informação vital
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.