unreal goty o 1999

Iniciado por benja vallejos, 26 Julio 2013, 07:34 AM

0 Miembros y 1 Visitante están viendo este tema.

benja vallejos

hola gente de elhacker bueno miren tengo una gran duda y necesito de alguien que sepa sobre programacion me gustaria saber de que trata este script y si alguien conoce su lenguaje.
//=============================================================================
// AsmdPulseRifle.
// Written By nOs*Wildcard
//=============================================================================
class AsmdPulseRifle expands WildcardsWeapons;

var float Angle, Count;
var PBolt PlasmaBeam;
var() sound DownSound;
var() int HitDamage;

auto state Pickup
{
   ignores AnimEnd;

   event BeginState()
   {
      MultiSkins[1]=Texture'AsmdPulseRifleSkin';
      MultiSkins[2]=None;
   }

   event EndState()
   {
      MultiSkins[1]=None;
      MultiSkins[2]=Texture'AsmdPulseRifleSkin';
   }

   // Landed on ground.
   simulated function Landed(Vector HitNormal)
   {
      local rotator newRot;

      newRot = Rotation;
      newRot.pitch = 0;
      SetRotation(newRot);
      if ( Role == ROLE_Authority )
      {
         bSimFall = false;
         SetTimer(2.0, false);
      }
   }
}

simulated event RenderOverlays( canvas Canvas )
{
   MultiSkins[1]=Texture'Ammoled';

   Texture'Ammoled'.NotifyActor = Self;
   Super.RenderOverlays(Canvas);
   Texture'Ammoled'.NotifyActor = None;

   MultiSkins[1]=Texture'AsmdPulseRifleSkin';
}

simulated function Destroyed()
{
   if ( PlasmaBeam != None )
      PlasmaBeam.Destroy();

   Super.Destroyed();
}

simulated function AnimEnd()
{
   if ( (Level.NetMode == NM_Client) && (Mesh != PickupViewMesh) )
   {
      if ( AnimSequence == 'SpinDown' )
         AnimSequence = 'Idle';
      PlayIdleAnim();
   }
}
// set which hand is holding weapon
function setHand(float Hand)
{
   if ( Hand == 2 )
   {
      FireOffset.Y = 0;
      bHideWeapon = true;
      if ( PlasmaBeam != None )
         PlasmaBeam.bCenter = true;
      return;
   }
   else
      bHideWeapon = false;
   PlayerViewOffset = Default.PlayerViewOffset * 100;
   if ( Hand == 1 )
   {
      if ( PlasmaBeam != None )
      {
         PlasmaBeam.bCenter = false;
         PlasmaBeam.bRight = false;
      }
      FireOffset.Y = Default.FireOffset.Y;
      Mesh = mesh(DynamicLoadObject("Botpack.PulseGunL", class'Mesh'));
   }
   else
   {
      if ( PlasmaBeam != None )
      {
         PlasmaBeam.bCenter = false;
         PlasmaBeam.bRight = true;
      }
      FireOffset.Y = -1 * Default.FireOffset.Y;
      Mesh = mesh'PulseGunR';
   }
}

// return delta to combat style
function float SuggestAttackStyle()
{
   local float EnemyDist;

   EnemyDist = VSize(Pawn(Owner).Enemy.Location - Owner.Location);
   if ( EnemyDist < 1000 )
      return 0.4;
   else
      return 0;
}

function float RateSelf( out int bUseAltMode )
{
   local Pawn P;

   if ( AmmoType.AmmoAmount <=0 )
      return -2;

   P = Pawn(Owner);
   if ( (P.Enemy == None) || (Owner.IsA('Bot') && Bot(Owner).bQuickFire) )
   {
      bUseAltMode = 0;
      return AIRating;
   }

   if ( P.Enemy.IsA('StationaryPawn') )
   {
      bUseAltMode = 0;
      return (AIRating + 0.4);
   }
   else
      bUseAltMode = int( 700 > VSize(P.Enemy.Location - Owner.Location) );

   AIRating *= FMin(Pawn(Owner).DamageScaling, 1.5);
   return AIRating;
}

simulated function PlayFiring()
{
   FlashCount++;
   AmbientSound = FireSound;
   SoundVolume = Pawn(Owner).SoundDampening*255;
   LoopAnim( 'shootLOOP', 1 + 0.5 * FireAdjust, 0.0);
   bWarnTarget = (FRand() < 0.2);
}

simulated function PlayAltFiring()
{
   
   FlashCount++;
   AmbientSound = AltFireSound;
   SoundVolume = Pawn(Owner).SoundDampening*255;
   LoopAnim( 'shootLOOP', 1 + 0.5 * FireAdjust, 0.0);
   bWarnTarget = (FRand() < 0.2);
}

function AltFire( float Value )
{
   if ( AmmoType == None )
   {
      // ammocheck
      GiveAmmo(Pawn(Owner));
   }
   if (AmmoType.UseAmmo(1))
   {
      GotoState('AltFiring');
      bCanClientFire = true;
      bPointing=True;
      Pawn(Owner).PlayRecoil(FiringSpeed);
      ClientAltFire(value);
      ProjectileFire(AltProjectileClass, AltProjectileSpeed, bAltWarnTarget);
   }
}

simulated event RenderTexture(ScriptedTexture Tex)
{
   local Color C;
   local string Temp;
   
   Temp = String(AmmoType.AmmoAmount);

   while(Len(Temp) < 3) Temp = "0"$Temp;

   Tex.DrawTile( 30, 100, (Min(AmmoType.AmmoAmount,AmmoType.Default.AmmoAmount)*196)/AmmoType.Default.AmmoAmount, 10, 0, 0, 1, 1, Texture'AmmoCountBar', False );

   if(AmmoType.AmmoAmount < 10)
   {
      C.R = 255;
      C.G = 255;
      C.B = 0;   
   }
   else
   {
      C.R = 255;
      C.G = 0;
      C.B = 255;
   }

   Tex.DrawColoredText( 56, 14, Temp, Font'LEDFont', C );   
}


///////////////////////////////////////////////////////
state NormalFire
{
   ignores AnimEnd;

   function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
   {
      local Vector Start, X,Y,Z;

      Owner.MakeNoise(Pawn(Owner).SoundDampening);
      GetAxes(Pawn(owner).ViewRotation,X,Y,Z);
      Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z;
      AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn);   
      Start = Start - Sin(Angle)*Y*4 + (Cos(Angle)*4 - 10.78)*Z;
      Angle += 1.8;
      return Spawn(ProjClass,,, Start,AdjustedAim);   
   }

   function Tick( float DeltaTime )
   {
      if (Owner==None)
         GotoState('Pickup');
   }

   function BeginState()
   {
      Super.BeginState();
      Angle = 0;
      AmbientGlow = 200;
   }

   function EndState()
   {
      PlaySpinDown();
      AmbientSound = None;
      AmbientGlow = 0;   
      OldFlashCount = FlashCount;   
      Super.EndState();
   }

Begin:
   Sleep(0.18);
   Finish();
}

simulated function PlaySpinDown()
{
   if ( (Mesh != PickupViewMesh) && (Owner != None) )
   {
      PlayAnim('Spindown', 1.0, 0.0);
      Owner.PlayOwnedSound(DownSound, SLOT_None,1.0*Pawn(Owner).SoundDampening);
   }
}   

state ClientFiring
{
   simulated function Tick( float DeltaTime )
   {
      if ( (Pawn(Owner) != None) && (Pawn(Owner).bFire != 0) )
         AmbientSound = FireSound;
      else
         AmbientSound = None;
   }

   simulated function AnimEnd()
   {
      if ( (AmmoType != None) && (AmmoType.AmmoAmount <= 0) )
      {
         PlaySpinDown();
         GotoState('');
      }
      else if ( !bCanClientFire )
         GotoState('');
      else if ( Pawn(Owner) == None )
      {
         PlaySpinDown();
         GotoState('');
      }
      else if ( Pawn(Owner).bFire != 0 )
         Global.ClientFire(0);
      else if ( Pawn(Owner).bAltFire != 0 )
         Global.ClientAltFire(0);
      else
      {
         PlaySpinDown();
         GotoState('');
      }
   }
}

///////////////////////////////////////////////////////////////
state ClientAltFiring
{
   simulated function AnimEnd()
   {
      if ( AmmoType.AmmoAmount <= 0 )
      {
         PlayIdleAnim();
         GotoState('');
      }
      else if ( !bCanClientFire )
         GotoState('');
      else if ( Pawn(Owner) == None )
      {
         PlayIdleAnim();
         GotoState('');
      }
      else if ( Pawn(Owner).bAltFire != 0 )
         LoopAnim( 'shootLOOP', 1 + 0.5 * FireAdjust, 0.0);
      else if ( Pawn(Owner).bFire != 0 )
         Global.ClientFire(0);
      else
      {
         PlayIdleAnim();
         GotoState('');
      }
   }
}

state AltFiring
{
   ignores AnimEnd;

   function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
   {
      local Vector Start, X,Y,Z;

      Owner.MakeNoise(Pawn(Owner).SoundDampening);
      GetAxes(Pawn(owner).ViewRotation,X,Y,Z);
      Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z;
      AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn);   
      Start = Start - Sin(Angle)*Y*4 + (Cos(Angle)*4 - 10.78)*Z;
      Angle += 1.8;
      return Spawn(ProjClass,,, Start,AdjustedAim);   
   }

   function Tick( float DeltaTime )
   {
      if (Owner==None)
         GotoState('Pickup');
   }

   function BeginState()
   {
      Super.BeginState();
      Angle = 0;
      AmbientGlow = 200;
   }

   function EndState()
   {
      PlaySpinDown();
      AmbientSound = None;
      AmbientGlow = 0;   
      OldFlashCount = FlashCount;   
      Super.EndState();
   }

Begin:
   Sleep(0.18);
   Finish();
}

state Idle
{
Begin:
   bPointing=False;
   if ( (AmmoType != None) && (AmmoType.AmmoAmount<=0) )
      Pawn(Owner).SwitchToBestWeapon();  //Goto Weapon that has Ammo
   if ( Pawn(Owner).bFire!=0 ) Fire(0.0);
   if ( Pawn(Owner).bAltFire!=0 ) AltFire(0.0);   

   Disable('AnimEnd');
   PlayIdleAnim();
}

///////////////////////////////////////////////////////////
simulated function PlayIdleAnim()
{
   if ( Mesh == PickupViewMesh )
      return;

   if ( (AnimSequence == 'BoltLoop') || (AnimSequence == 'BoltStart') )
      PlayAnim('BoltEnd');      
   else if ( AnimSequence != 'SpinDown' )
      TweenAnim('Idle', 0.1);
}

simulated function TweenDown()
{
   if ( IsAnimating() && (AnimSequence != '') && (GetAnimGroup(AnimSequence) == 'Select') )
      TweenAnim( AnimSequence, AnimFrame * 0.4 );
   else
      TweenAnim('Down', 0.26);
}

function ProcessTraceHit(Actor Other, Vector HitLocation, Vector HitNormal, Vector X, Vector Y, Vector Z)
{
   local int i;
   local PlayerPawn PlayerOwner;

   if (Other==None)
   {
      HitNormal = -X;
      HitLocation = Owner.Location + X*10000.0;
   }

   PlayerOwner = PlayerPawn(Owner);
   if ( PlayerOwner != None )
      PlayerOwner.ClientInstantFlash( -0.4, vect(450, 190, 650));
   SpawnEffect(HitLocation, Owner.Location + CalcDrawOffset() + (FireOffset.X + 20) * X + FireOffset.Y * Y + FireOffset.Z * Z);

   if ( ShockProj(Other)!=None )
   {
      AmmoType.UseAmmo(2);
      ShockProj(Other).SuperExplosion();
   }
   else
      Spawn(class'ut_RingExplosion5',,, HitLocation+HitNormal*8,rotator(HitNormal));

   if ( (Other != self) && (Other != Owner) && (Other != None) )
      Other.TakeDamage(HitDamage, Pawn(Owner), HitLocation, 60000.0*X, MyDamageType);
}

function SpawnEffect(vector HitLocation, vector SmokeLocation)
{
   local ShockBeam Smoke,shock;
   local Vector DVector;
   local int NumPoints;
   local rotator SmokeRotation;

   DVector = HitLocation - SmokeLocation;
   NumPoints = VSize(DVector)/135.0;
   if ( NumPoints < 1 )
      return;
   SmokeRotation = rotator(DVector);
   SmokeRotation.roll = Rand(65535);
   
   Smoke = Spawn(class'ShockBeam',,,SmokeLocation,SmokeRotation);
   Smoke.MoveAmount = DVector/NumPoints;
   Smoke.NumPuffs = NumPoints - 1;   
}


xustyx

Parece ser un Mutator de la ASMD :) el lenguaje creo que es UnrealScript.

benja vallejos

pero conoces lo que describe en cada inea?

xustyx

Visto en plano pues algo se entiende pero hay que mirarselo bien, es una classe, y como toda clase tendra sus metodos, propiedades, atributos etc... etc... aparte parece que hereda, la verdad no se UnrealScript, pero por lo que veo se asemeja mucho al estandar.