AutoSpectate (UMOD)

Need some nice Mods? Here, you are right!

AutoSpectate (UMOD)

Postby Wises » Fri May 03, 2013 11:55 am

Well .. I stumbled across this little puppy which seems to have been around forever .. and thought.
thats pretty cool .. up/until recently I was not a fan of Umods.

readme wrote:---------------------------------------------------------------
AutoSpectate by {PiN}Kev - August, 2004
Contact Info: {PiN}Hai-Ping on http://www.prounreal.com/forums
---------------------------------------------------------------

Instructions for the mods:


1. Unzip the files into UT's system folder

2. Join a server as a spec

3. click the mod item and watch some one.



AutoSpectate Features:

- Automatically turns with the player so you don't have to turn mouse

- Automatically goes to FC when some one picks up flag

- If 2 ppl have flags, and the FC you're watching dies, it will automatically go to the other.


Commands: * These are case sensitive and must be typed into console

mutate AFCOFF to turn off Auto FC feature. (For example if you wanted to watch ur buddy all map.)

mutate AFCON to turn Auto FC feature back on.


* Limitation: If a server is on linux and a player has box characters, the Auto FC feature will not work on him.


but because not everyone is a fanatic like moire.. I figured that I would compile it into a UMOD and link it to the servers for players to download and install easily?

Anyways.. here it is;

Mediafire -> AutoSpectate.UMOD
Attachments
AutoSpectate.7z
AutoSpectate UMOD Compiled by Wises.
(3.49 KiB) Downloaded 192 times
...
User avatar
Wises
Godlike
 
Posts: 1087
Joined: Sun Sep 07, 2008 10:59 am
Personal rank: ILLEGAL!

Re: AutoSpectate (UMOD)

Postby Dr.Flay » Sun May 05, 2013 7:04 am

Good to get the practice in with making UMODs, but Linux and Mac owners will hate you :pfff:

The advantages are it can be cleanly un-installed by running the UT "setup.exe" and any required lines can be added to the INI file.
If there are no lines to add, then you don't gain much.

Remember to always put the docs in a "help" folder, and try NOT to have a file just called "readme.txt" put in the main UT or Help folders, as it will over-write the UT readme.

I opt for including the raw files and the UMOD, when it is small, so people have the choice.
I always use the UMOD for models or skins, as it is quicker to get rid of them if I don't like it.

This may get a bit of use during testing. Nice find :tu:
User avatar
Dr.Flay
Site Staff
 
Posts: 3164
Joined: Thu Aug 04, 2011 9:26 pm
Location: Kernow, UK
Personal rank: Chaos Evangelist

Re: AutoSpectate (UMOD)

Postby n1cc » Wed Nov 28, 2018 12:29 am

thanks WotgrealExporter tool.

possible somehow get original names? not unknown, that cyphered?

Code: Select all
//================================================================================
// AutoSpectate.
//================================================================================

class AutoSpectate extends Info;

var PlayerPawn P;
var Rotator targRot;
var Rotator myRot;
var Rotator prevRot;
var bool bfoundflag;
var bool bviewingFC;
var string blueFC;
var string redFC;
var bool bautoFC;
var bool bAFCOFFmsg;
var bool bAFCONmsg;
var private bool ;
var private int ;
var private int ;
var int ydelta;
var int pdelta;
var private int ;
var private int ;
var int Offset;

function int  (int X, int Y, out int diff)
{
   local int newdiff;

   diff = UnknownFunction147(X,Y);
   newdiff = diff;
   if ( UnknownFunction132(UnknownFunction151(newdiff,20000),UnknownFunction150(newdiff,-20000)) )
   {
      newdiff = 20000;
   }
   return UnknownFunction145(UnknownFunction144(newdiff,newdiff),500000);
}

event Tick (float Delta)
{
   if ( UnknownFunction129(P.PlayerReplicationInfo.bIsSpectator) )
   {
      return;
   }
   if ( UnknownFunction119(P.ViewTarget,None) )
   {
      if ( UnknownFunction119(Pawn(P.ViewTarget),None) )
      {
         targRot = Pawn(P.ViewTarget).ViewRotation;
         myRot = P.ViewRotation;
         ydelta = (targRot.Yaw,myRot.Yaw,);
         pdelta = (targRot.Pitch,myRot.Pitch,);
         if ( UnknownFunction154(ydelta,-9999) )
         {
            ();
             = True;
         }
         if ( UnknownFunction151(Pawn(P.ViewTarget).Health,0) )
         {
            if ( UnknownFunction132(UnknownFunction130(UnknownFunction151(,0),UnknownFunction150(,33650)),UnknownFunction150(,-33650)) )
            {
               if ( UnknownFunction151(UnknownFunction146(ydelta,P.ViewRotation.Yaw),65536) )
               {
                  P.ViewRotation.Yaw = 0;
                  return;
               }
               UnknownFunction161(P.ViewRotation.Yaw,ydelta);
            } else {
               if ( UnknownFunction132(UnknownFunction130(UnknownFunction150(,0),UnknownFunction151(,-33650)),UnknownFunction151(,33650)) )
               {
                  if ( UnknownFunction150(UnknownFunction147(P.ViewRotation.Yaw,ydelta),0) )
                  {
                     P.ViewRotation.Yaw = 65536;
                     return;
                  }
                  UnknownFunction162(P.ViewRotation.Yaw,ydelta);
               }
            }
            if ( UnknownFunction132(UnknownFunction130(UnknownFunction151(,0),UnknownFunction150(,33650)),UnknownFunction150(,-33650)) )
            {
               UnknownFunction161(P.ViewRotation.Pitch,pdelta);
            } else {
               if ( UnknownFunction132(UnknownFunction130(UnknownFunction150(,0),UnknownFunction151(,-33650)),UnknownFunction151(,33650)) )
               {
                  UnknownFunction162(P.ViewRotation.Pitch,pdelta);
               }
            }
            if ( UnknownFunction155(P.ViewRotation.Roll,0) )
            {
               P.ViewRotation.Roll = 0;
            }
         }
      }
   }
   Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"mutate AFCOFF");
   if ( UnknownFunction130(UnknownFunction155(Offset,-1),UnknownFunction129(bAFCOFFmsg)) )
   {
      bautoFC = False;
      P.ClientMessage("Auto FC feature off");
      bAFCOFFmsg = True;
      bAFCONmsg = False;
   }
   Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"mutate AFCON");
   if ( UnknownFunction130(UnknownFunction155(Offset,-1),UnknownFunction129(bAFCONmsg)) )
   {
      bautoFC = True;
      P.ClientMessage("Auto FC feature on");
      bAFCOFFmsg = False;
      bAFCONmsg = True;
   }
   if ( UnknownFunction130(bautoFC,UnknownFunction129()) )
   {
      Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"captured the red flag!");
      if ( UnknownFunction155(Offset,-1) )
      {
         return;
      }
      Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"captured the blue flag!");
      if ( UnknownFunction155(Offset,-1) )
      {
         return;
      }
      Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"has the red flag!");
      if ( UnknownFunction155(Offset,-1) )
      {
         redFC = UnknownFunction128(P.Player.Console.MsgText[P.Player.Console.TopLine],UnknownFunction147(Offset,1));
      }
      Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"has the blue flag!");
      if ( UnknownFunction155(Offset,-1) )
      {
         redFC = UnknownFunction128(P.Player.Console.MsgText[P.Player.Console.TopLine],UnknownFunction147(Offset,1));
      }
      Offset = UnknownFunction126(P.Player.Console.MsgText[P.Player.Console.TopLine],"Failed to change view");
      if ( UnknownFunction155(Offset,-1) )
      {
         redFC = "";
         blueFC = "";
      }
      if ( UnknownFunction129(bviewingFC) )
      {
         if ( UnknownFunction114(P.ViewTarget,None) )
         {
            if ( UnknownFunction123(redFC,"") )
            {
               ();
            } else {
               if ( UnknownFunction123(blueFC,"") )
               {
                  ();
               }
            }
         } else {
            if ( UnknownFunction114(Pawn(P.ViewTarget),None) )
            {
               if ( UnknownFunction123(redFC,"") )
               {
                  ();
               } else {
                  if ( UnknownFunction123(blueFC,"") )
                  {
                     ();
                  }
               }
            } else {
               if ( UnknownFunction114(Pawn(P.ViewTarget).PlayerReplicationInfo.HasFlag,None) )
               {
                  if ( UnknownFunction122(redFC,Pawn(P.ViewTarget).PlayerReplicationInfo.PlayerName) )
                  {
                     redFC = "";
                  } else {
                     if ( (redFC) )
                     {
                        ();
                     } else {
                        if ( UnknownFunction122(blueFC,Pawn(P.ViewTarget).PlayerReplicationInfo.PlayerName) )
                        {
                           blueFC = "";
                        } else {
                           if ( (blueFC) )
                           {
                              ();
                           }
                        }
                     }
                  }
               }
            }
         }
         UnknownFunction280(0.31,False);
         bviewingFC = True;
      }
   }
}

function bool  (string S)
{
   local int i;
   local TournamentGameReplicationInfo ptgri;

   ptgri = TournamentGameReplicationInfo(P.GameReplicationInfo);
   i = 0;
   if ( UnknownFunction150(i,32) )
   {
      if ( UnknownFunction114(ptgri.PRIArray[i],None) )
      {
         goto JL00C8;
      }
      if ( ptgri.PRIArray[i].bIsSpectator )
      {
         goto JL00BE;
      }
      if ( UnknownFunction119(ptgri.PRIArray[i].HasFlag,None) )
      {
         if ( UnknownFunction122(ptgri.PRIArray[i].PlayerName,S) )
         {
            return True;
         } else {
            return False;
         }
      }
      UnknownFunction165(i);
      goto JL0020;
   }
   return False;
}

function  ()
{
   P.ViewPlayer(redFC);
   P.ViewRotation = Pawn(P.ViewTarget).ViewRotation;
}

function  ()
{
   P.ViewPlayer(blueFC);
   P.ViewRotation = Pawn(P.ViewTarget).ViewRotation;
}

function  ()
{
   P.ClientMessage("-----------------------------------------");
   P.ClientMessage("MAC Addresses don't match.");
   P.ClientMessage("AutoSpec will cease to function.");
   P.ClientMessage("-----------------------------------------");
}

function Timer ()
{
   bviewingFC = False;
}

function setpawn (PlayerPawn o)
{
   P = o;
}

defaultproperties
{
    bautoFC=True

}

n1cc
Novice
 
Posts: 4
Joined: Fri Nov 02, 2018 4:18 am

Re: AutoSpectate (UMOD)

Postby SC]-[WARTZ_{HoF} » Wed Nov 28, 2018 12:44 am

Used UTPT instead of wotgrealexporter.
Image
Image
Image
SC]-[WARTZ_{HoF}
Adept
 
Posts: 387
Joined: Tue Feb 21, 2012 7:29 pm

Re: AutoSpectate (UMOD)

Postby papercoffee » Wed Nov 28, 2018 1:12 am

n1cc wrote:thanks WotgrealExporter tool.

Last post was Sun May 05, 2013 ... please look at the date of the post and consider the possibility that the thread starter won't read your answer.
No Necrobumps please.
User avatar
papercoffee
Site Staff
 
Posts: 9101
Joined: Wed Jul 15, 2009 11:36 am
Location: Cologne, the city with the big cathedral.
Personal rank: coffee addicted !!!

Re: AutoSpectate (UMOD)

Postby n1cc » Wed Nov 28, 2018 9:38 am

anyway if not answer some1 answer, i not ask his code, or better create same kind new post instead?
n1cc
Novice
 
Posts: 4
Joined: Fri Nov 02, 2018 4:18 am

Re: AutoSpectate (UMOD)

Postby papercoffee » Wed Nov 28, 2018 1:04 pm

Well, to be true ...I didn't understand what's the purpose of your post.
If it's additional informations to solve the issue that's some kind of OK. Even so it's useless because the thread starter won't read it if he is no longer active.

So, that's why I said, consider if it's useful.

Better would be, to start a new thread and refer and link to this old thread.
User avatar
papercoffee
Site Staff
 
Posts: 9101
Joined: Wed Jul 15, 2009 11:36 am
Location: Cologne, the city with the big cathedral.
Personal rank: coffee addicted !!!

Re: AutoSpectate (UMOD)

Postby OjitroC » Wed Nov 28, 2018 8:02 pm

papercoffee wrote:Well, to be true ...I didn't understand what's the purpose of your post.

n1cc is asking if anyone knows what the functions are in AutoSpectate because the name are obfuscated - UTPT gives a little more info than wotgealexporter but not a lot more. A new thread would, of course, be much better.
User avatar
OjitroC
Godlike
 
Posts: 1045
Joined: Sat Sep 12, 2015 8:46 pm


Return to Modifications

Who is online

Users browsing this forum: No registered users and 1 guest