The title could be edited to get the little skits out of this conversation, which where present since the start of the thread.
![Wink :wink:](./images/smilies/icon_wink.gif)
Code: Select all
event SpriteAnimAdjust()
{
local Rotator ViewAngle;
local Pawn P;
local int i, Max;
local float OldPosition;
Max = Array_Size( Anims);
for ( i=0 ; i<Max ; i++ )
{
if ( Anims[i].Animated != none && Anims[i].Animation != none && Anims[i].Animation.bDirectionalSprites == true )
{
ClientSpriteNum = (ViewAngle.Roll * 8) / 360;
switch ClientSpriteNum
{
//=============================================================================
case 1:
Anims[i].Animation.CurrentSpriteDirection = SD_ForwardSprite;
break;
//=============================================================================
case 2:
Anims[i].Animation.CurrentSpriteDirection = SD_ForwardRightSprite;
break;
//=============================================================================
case 3:
Anims[i].Animation.CurrentSpriteDirection = SD_RightSprite;
break;
//=============================================================================
case 4:
Anims[i].Animation.CurrentSpriteDirection = SD_BackRightSprite;
break;
//=============================================================================
case 5:
Anims[i].Animation.CurrentSpriteDirection = SD_BackSprite;
break;
//=============================================================================
case 6:
Anims[i].Animation.CurrentSpriteDirection = SD_BackLeftSprite;
break;
//=============================================================================
case 7:
Anims[i].Animation.CurrentSpriteDirection = SD_LeftSprite;
break;
//=============================================================================
case 8:
Anims[i].Animation.CurrentSpriteDirection = SD_ForwardLeftSprite;
break;
//=============================================================================
default:
break;
//=============================================================================
}
}
}
}
Code: Select all
//=============================================================================
// RotationalSpriteActor.
//=============================================================================
class RotationalSpriteActor expands Actor;
var(Sprites) Texture FrontSprite, FrontRightSprite, RightSprite, RearRightSprite, RearSprite, RearLeftSprite, LeftSprite, FrontLeftSprite;
var byte ClientSpriteNum;
function PreBeginPlay()
{
DrawType = DT_Sprite;
}
replication
{
reliable if (role == ROLE_Authority)
FrontSprite, FrontRightSprite, RightSprite, RearRightSprite, RearSprite, RearLeftSprite, LeftSprite, FrontLeftSprite;
unreliable if (role == ROLE_Authority)
ClientSpriteNum;
}
function Tick(float Delta)
{
local Rotator ViewAngle;
Super.Tick(Delta);
//do the math
//placeholder
//end math estimation of life B-)
ClientSpriteNum = (ViewAngle.Roll * 8) / 360
switch ClientSpriteNum:
case 1:
Sprite = FrontSprite;
case 2:
Sprite = FrontRightSprite;
case 3:
Sprite = RightSprite;
case 4:
Sprite = RearRightSprite;
case 5:
Sprite = RearSprite;
case 6:
Sprite = HearLeftSprite;
case 7:
Sprite = LeftSprite;
case 8:
Sprite = FrontLeftSprite;
default:
log('Invalid ClientSpriteNum: ' + string(ClientSpriteNum) + ' Destroying actor...');
Destroy();
}
coffee is for the day and early eve, nighty night for teaAnd now we are all taking a deep breath and drink a coffee or tee.
It's the same thing me learning bothpathing. Year by year I understand more. As O Thank you , sending me the updating thing on the CrystalRocks,This young "coder" unable to put up a script (even was telling me in private) but screwing info at Wiki seems to not learn lessons.
Swarmspawner can be configured to do that easily.....LannFyre wrote:To add to all of this, there is already a mod that I believe you can use to swap projectiles and set projectile speed in UT99, I don't remember what it is called but I know I have it and you can find it if you look hard enough.
Not today but other day.Terraniux wrote:Yet you need to work on your MANNERS Nelsona
Your welcome but... I'm getting older, I forgot to fix ScreenShot for being visible in game menu... my bad... it was late and I could be tired...Terraniux wrote:As O Thank you , sending me the updating thing on the CrystalRocks
You can't, ask a staff member to do it for you or just ignore it and stop posting in it.Gustavo6046 wrote:I forgot where do I close this topic?
papercoffee wrote:You can't ask a staff member to do it for you or just ignore it and stop posting in it.Gustavo6046 wrote:I forgot where do I close this topic?
xDpapercoffee wrote:You can't ask a staff member to do it for you or just ignore it and stop posting in it.
Code: Select all
//=============================================================================
// AutoRocket.
//=============================================================================
class AutoRocket expands UT_SeekingRocket;
var() float SeekAcceleration, SeekSpeed, TargetAcquiringRadius, WallAvoidSpeed, WallPredictionFactor, WallAvoidSlowdown, ShootDensity, ShootDistance, ShootDistanceFactor;
var() bool bShootAtTarget, bIgnoreIgnorers;
var() class<Actor> ProjectileClass;
var Pawn User;
var int Slowdown;
var bool bFoundUser;
replication
{
reliable if ( Role == ROLE_Authority )
User,
Slowdown,
bFoundUser;
}
simulated event bool PercentChance(float Percentage)
{
return FRand() * 100 < Percentage;
}
simulated event Vector EstimateLocation(Actor Other)
{
return Other.Location + (Other.Velocity / VSize(Velocity)) * 0.5;
}
simulated event HomeAt(Actor Other)
{
Velocity *= VSize(Velocity cross (EstimateLocation(Seeking) - Location)) * SeekAcceleration;
Acceleration = (EstimateLocation(Seeking) - Location) * SeekSpeed;
}
simulated event Actor WillHitWall(optional out Vector Location, optional out Vector OutNormal)
{
return Trace(Location, OutNormal, Self.Location + Velocity * WallPredictionFactor);
}
simulated event bool MonsterFriendly(ScriptedPawn Other)
{
return Other != None && Other.AttitudeTo(User) == ATTITUDE_Friendly;
}
simulated event bool CheckSeekable(Pawn Other, Pawn FireAgent)
{
return (
Other != None
&&
(
FireAgent == None
||
(
FireAgent != None
&& FastTrace(Other.Location)
&& Other != FireAgent
&& !Other.IsInState('Dying')
&&
(
!MonsterFriendly(ScriptedPawn(Other))
&&
(
Other.PlayerReplicationInfo == None
|| FireAgent.PlayerReplicationInfo == None
|| Other.PlayerReplicationInfo.Team != FireAgent.PlayerReplicationInfo.Team
)
)
)
)
);
}
function BeginPlay()
{
if ( Owner == None )
return;
if ( Pawn(Owner) != None )
User = Pawn(Owner);
else
User = Pawn(Owner.Owner);
if ( User == None )
return;
}
simulated function SetTarget(Pawn Other)
{
Seeking = Other;
Log(self@"is now seeking after:"@Other);
}
simulated event Timer()
{
local Pawn P;
local Pawn Target;
local Actor A;
local Vector WallNorm, WallLoc;
SetRotation(Rotator(Velocity));
A = WillHitWall(WallLoc, WallNorm);
if ( A != None && ( LevelInfo(A) != None || !CheckSeekable(Pawn(A), User) ) )
{
Velocity /= WallAvoidSlowdown;
Slowdown *= WallAvoidSlowdown;
Acceleration -= WallAvoidSpeed * 2 * (WallNorm dot Velocity) * WallNorm;
}
else if ( Slowdown > 1 )
{
Velocity *= Slowdown;
Slowdown = 1;
}
else bFoundUser = True;
if ( Seeking != None && FastTrace(Seeking.Location) && ( Pawn(Seeking) == None || !Pawn(Seeking).IsInState('Dying') || ScriptedPawn(Seeking) == None || ( User != None && ScriptedPawn(Seeking).AttitudeTo(User) == ATTITUDE_Friendly ) ) )
{
HomeAt(Seeking);
if ( bShootAtTarget && PercentChance(ShootDensity) && ProjectileClass != None )
Spawn(ProjectileClass, Owner, '', Location + Vector(Rotation) * (CollisionRadius + ShootDistance + ProjectileClass.default.CollisionRadius) * ShootDistanceFactor );
}
else if ( Seeking == None || !FastTrace(Seeking.Location) )
{
foreach RadiusActors(class'Pawn', P, TargetAcquiringRadius)
{
if ( Target == None || VSize(P.Location - Location) < VSize(Target.Location - Location) )
{
Target = P;
if ( CheckSeekable(Target, User) )
SetTarget(Target);
}
}
}
}
I fixed my post ...I'm a little bit drunk and go to bed now.Gustavo6046 wrote: xD
Me, one, probably I'm gonna leave his "awesome" posts away, more than that I thought that rules have been changed while I was reading what was replying Darksonny which doesn't looks like is reading ALL things. Until this moment I don't see any functional mutator D-O-N-E but nothing original operational by Gusty, but a lot of spam and snippets, only confusing new coders. Darksonny seems OK with such posts, probably is cool to load only forum with no purpose - ah purpose is making members less interested about UT99.ORG. So this kinda null posting won't be interesting for me as well.Dr.Flay wrote:I know Gustavo can be very annoying Sektor, but can you please do me a favour, and repost here the item Number 1 from this page
viewtopic.php?f=1&t=149
There is a reason it is Number 1.
Maybe that's because they're not 100% disagreeable all the timesektor2111 wrote: Else I can see topics not only by me with words as: Ass, Fuck, Cunt, F... A... (masked but in the same way) and NONE was jumping high for them.
Oh the irony of Flay invoking the "rules". Are they only important when you need to enforce them on others? You deftly avoid any public discussion on the matter.... Fuck it, from now on you'll be KingFlay.Dr.Flay wrote:I know Gustavo can be very annoying Sektor, but can you please do me a favour, and repost here the item Number 1 from this page
https://www.ut99.org/viewtopic.php?f=1&t=149
There is a reason it is Number 1.
Why does the entire impetus of good behavior fall on Nelsona? I have nothing against Gus but Lann is right that he hasn't posted anything usable yet doesn't post them as such. Every single dev posting code will always say "I haven't tested this yet" if they haven't.Terraniux wrote:Ýou should have responded that message in a more appropriate way like the teacher does.
Maybe is true... even I recall when you were explaining a few mapping things which I read carefully but Mr. OmniCoder was laughing and talking his usual nonsenses probably another sort of language with meaning "THANKS for INFO"Hellkeeper wrote:Maybe that's because they're not 100% disagreeable all the time