Unreal Computer
=======================================================================
version: beta 0.7
This is the first release of old 2007 add on, you might say, for Unreal.
In the beginning the script was aimed at Unreal Tournament users, now it is also for Unreal 227. This is caused by features UC uses to display content in the Editor window in Unreal 227 which is not possible in UT.
Unreal Tournament version doesn't support content display in the Editor.
=======================================================================
Content
=======================================================================
The content of the package is:
- Textures
- Sounds
- Classes
- Fonts
- One map - not even finished - showing most of the stuff
Classes in the package:
- Info
[ ]-> ClientScriptedTexture: Class copied from UT
...[ ]-> ComputerBase: Base class of a Unreal Computer that renders data on Scripted Texture - Keypoint
[ ]-> CPlanePointer: A pointer used for Cursor positioning - Trigger
[ ]-> CCodeTrigger: Class used to create password protected computers and panels
[ ]-> CDataCopy: Class that on trigger copies current data from ComputerBase to CDataManager
[ ]-> CDataManager: Class that on trigger changes data in ComputerBase class
[ ]-> CElevatorTrigger: Class that forces ElevatorMover to move to specified move frame (will be rewritten)
[ ]-> CMapTracer: Class that displays players' position on the map (not yet implemented)
[ ]-> CMouseCursor: Old class of cursor pointer - it is recommended to use CMouseCursorEx instead
...[ ]-> CMouseCursorEx: Class that when touched lets the player to control a cursor in ComputerBase
[ ]-> CTextFlood: Class that simulates a flow of information in ComputerBase (will be rewritten)
=======================================================================
Description
=======================================================================
Time for some show off.
ComputerBase class
Used to display specified in the actor data on a give ScriptedTexture. The actors properties are:
EditorTools
Lets the user to preview the computer content in the editor window.
Buttons only:
Images only:
Texts only:
And all kinds of combinations, like, all:
ComputerBase -> Computer_Button
- Action - event called on push
- ActivateSound - Not working yet
- AnimAddSpeed - animation speed of a button highlight
- AniType - the type of animation button's got
- bDoHighlightAnim - is button using an animation for highlight
- bHighlightButton - is button being highlighted
- ButtonPos - start of the button in pixels on the computer screen
- ButtonSize - size of the button in pixels
- HighlightImageNo - button uses an image for highlighting, this is the image number it should use.
- TbChangeTextColor - is button changing the color (overlaying a new text actually) of the text in the button area (Used with bHighlightButton)
- TTextNo - text which color should be changed
ComputerBase -> Computer_Image
- Image - image that is displayed on the Computer Screen
- ImagePan - the panning of a image
- ImagePos - image position in pixels
- ImageScale - actually, image size in pixels - sorry for that.
- ImageTile - tiling (repeating) of the texture
ComputerBase -> Computer_Messages
- FontColor - erm... Figure it out for yourself
- Message - text displayed on the screen
- MessageFont - font of the text
- MessagePos - position on the screen in pixels
CDataManager class
Is used to change the data in ComputerBase actor when triggered. You may say, this makes all the changes when a player is browsing the content of a computer he has found.
The properties of this class are almost exactly the same as ComputerBase but with one exception.
For example, if you want it to change the message in ComputerBase when triggered, you need to set DoChange to True under the right Change_Text array.
It also displays the set content in the Editor window but as translucent. It helps the user to preview the changes CDataManager will make in the Computer base when both are selected (first ComputerBase, then CDataManager)
CCodeTrigger class
This class is used to simulate a password protected computers, panels, locks, doors, chests, candyshops...
- Buttons: The numbers of buttons in ComputerBase
- bActive - is it working right now, or not
- bHideDigits - instead of showing 12578 on the computer screen it will show *****
- bOnlyOnceGoodCode - if true it deactivates when code is valid, else, the player will be able to type in the code again
- Code - the code. No random generated code yet. There's a problem with structs.
- CodeTextNumber - a message in ComputerBase in which the password or ***** will be displayed
- Computer - ComputerBase actor
- CorrectMessage - a message that will be displayed when password is correct
- CorrectSound - a sound played when password is correct
- CorrectTag - an Event that will be called when password is correct
- IncorrectMessage - a message that will be displayed when password is incorrect
- IncorrectSound - a sound played when password is incorrect
- IncorrectTag - an Event that will be called when password is incorrect, for instance, an alarm
- MessageNumber - message number which will be changed to either CorrectMessage or IncorrectMessage.
IMPORTANT: When used all the buttons are set inside the CCodeTrigger, the ComputerBase for every button calls the same event:
CMouseCursorEx class
A class used to control the cursor on the computer screen. A little bit of the code has been ripped of from UsableScreen by kea Huge credit for him.
- Computer - a ComputerBase actor
- RetriggerDelay - a delay between clicks - must be more than 0!
- TouchSound - a sound actor will make when touched
- UntouchSound - a sound actor will make when Untouched
- -Mulbitplier - not used any more.
- Tag_0 - a zero point (CPlanePointer in Keypoint) of the screen - zero point = left upper corner
- Tag_X - a X point of the screen
- Tag_Y - a Y point of the screen
The points should be set quite accurately but if it's not 100% perfect, it will still work.
CDataCopy class
Copies data from ComputerBase to CDataManager - for example when a player makes changes (deletes) data from a computer which were originally saved in CDataManager a user can set this to copy the data in ComputerBase to CDataManager saving the changes player made... More less.
CTextFlood class
Used to simulate a data flow (from down to up, DOS like style) on a computer screen. Texts only.
- Active - is it working right now
- bLoop - is it looping the data flow
- bMaxLine - this is tricky - when true copies old lines from previously used CTextFlood
- Computer - ComputerBase actor
- ComputerStartTextNo - the starting text on the computer
- CopyOldLinesFrom - Copy old lines from this actor if bMaxLine is true
- DrawDelay - how fast the lines are drawn - don't set it too high. Like 5 is enough, 0 is just fast.
- DrawnMessagesNo - how many lines are drawn - Messages count
- FontColor - blows up your computer if you set it to anything close to R=255, B=255, G=128
- LineDelay - delay time between drawing new lines
- Lines - how many lines it uses from ComputerBase
- MessageFont - because of this Poland dropped out from Euro 2012
- MessagePos_X - X position of the message on the screen in pixels
- MessagePos_Y_Add - added position to each line in pixels
- MessagePos_Y_Start - starting position of the first line
- Messages - data flow texts
And last but not least
CMoverControl class
A class used to control a mover - it even corrects some settings in the editor for the user so making a mistake here is a real challenge...
- AccelerationRate - how fast a mover accelerates
- BreakMultiplier - how fast it breaks - should be between 0 and 1. Don't use more than 1 values or it will speed up instead of breaking - that's the only thing you can break here.
- ButtonAccelerate - a button in ComputerBase that will trigger the acceleration
- ButtonBreak - a button in ComputerBase that will trigger the breaks
- ButtonDeaccelerate - a button in ComputerBase that will trigger the reverse acceleration
- Cart - a mover actor
- Computer - a ComputerBase actor
- ComputerMessageToSpeed - a ComputerBase message number which will be turned to display actual carts' speed
- Direction - the direction in which the cart should go (X, Y, Z)
- MaxDistance - a maximum distance from the carts' starting position beyond which the cart will hit breaks - displayed in the editor as green line
- MaxVelocity - maximum speed of the cart
- MinDistance - a minimum distance from the carts' starting position beyond which the cart will hit breaks - displayed in the editor as red line
- NegativeDisplay - speed displayed on the screen of the computer is multiplied by -1
=======================================================================
Additional Info
=======================================================================
You use it at your own risk, I am not a pro coder at all and it might (probably will) make your kidneys fail sooner or later.
This is a beta release, don't use it in your mappacks just yet... Well, you can, but there will be changes in the code, variables added and removed, revised, and it may happen that it will not be compatible with your maps anymore.
PLEASE post all the bugs, Accessed nones and ideas how to improve the Unreal Computers here, in this very topic.
More fonts you can find in QFonts.u file, under Info i class tree there is description of the fonts.
=======================================================================
Credits
=======================================================================
kea - for the code I stole from him
Raven - for help on the old code back in 2007
My mom - for giving birth to such a brilliant, but lazy, man as myself.
Someone - I cant really remember who that was, who showed me keas' code...
Yep, I know you were just scrolling down to find this part here not giving a damn about all this text above...
=======================================================================
Download - Unreal 227
Download - Unreal Tournament
=======================================================================
Hope no packages are missing.
=======================================================================
Explosion
=======================================================================
KHABOOM!
Z-eNzYmE