Page 1 of 3 123 LastLast
Results 1 to 10 of 25

Thread: Canvas Radar and Minimap

  1. #1
    marco6453
    Guest

    Canvas Radar and Minimap

    So in this thread i want to show you, how you make a custom Hud and a radar and a minimap, only with Canvas.
    It's a working update of this tutorial:
    http://udn.epicgames.com/Three/Maste...G%20INTERFACES

    I've uploaded the needed packages:
    http://www.gamefront.com/files/21314684/Content.zip

    1. Create a custom gametype:

    Code:
    class MyGame extends UTGame;
    
    var MU_Minimap GameMinimap;
    
    defaultproperties
    {
            HUDType=class'YourPackage.CustomHUD'
            bUseClassicHUD = true
            
    }
    2. Create other classes:

    Code:
    class MU_Minimap extends Compass;
    
    var() MaterialInstanceConstant Minimap;
    var() MaterialInstanceConstant CompassOverlay;
    
    var Vector2D MapRangeMin,MapRangeMax;
    
    var() Bool bForwardAlwaysUp;
    
    var Vector2D MapCenter;
    
    var() Const EditConst DrawSphereComponent MapExtentsComponent;
    
    function PostBeginPlay()
    {
    	Super.PostBeginPlay();
    
    	MapCenter.X = Location.X;
    	MapCenter.Y = Location.Y;
    	MapRangeMin.X = MapCenter.X - MapExtentsComponent.SphereRadius;
    	MapRangeMax.X = MapCenter.X + MapExtentsComponent.SphereRadius;
    	MapRangeMin.Y = MapCenter.Y - MapExtentsComponent.SphereRadius;
    	MapRangeMax.Y = MapCenter.Y + MapExtentsComponent.SphereRadius;
    }
    
    defaultproperties
    {
    	Begin Object Class=DrawSphereComponent Name=DrawSphere0
         	SphereColor=(B=0,G=255,R=0,A=255)
         	SphereRadius=5000.000000
    	End Object
    	MapExtentsComponent=DrawSphere0
    	Components.Add(DrawSphere0)
    
    	bForwardAlwaysUp=True
    	Minimap = MaterialInstanceConstant'CompassContent.M_minimap_INST'
        CompassOverlay = MaterialInstanceConstant'CompassContent.M_compass_INST'
    }
    Code:
    interface ICompass;
    
    function float GetDegreeHeading();
    function float GetRadianHeading();
    
    function int GetYaw();
    function Rotator GetRotator();
    function vector GetVectorizedRotator();
    Code:
    class Compass extends actor placeable implements(ICompass);
    
    event PostBeginPlay()
    {                                                             
     	`log(GetRadianHeading()@GetDegreeHeading(),,'compass heading');
    }
    
    function float GetRadianHeading()
    {
    	local Vector v;
    	local Rotator r;
    	local float f;
     
    	r.Yaw = rotation.Yaw;   // a
    	v = vector(r);          // b
    
    	f = GetHeadingAngle(v); // c
    	f = UnwindHeading(f);   // d
    
    	while (f < 0)		    // e
    		f += PI * 2.0f;
    
    	return f;
    } 
    
    function float GetDegreeHeading()
    {
    	local float f;
    
    	f = GetRadianHeading();
    
    	f *= RadToDeg;
    
    	return f;
    }
    
    // Return the yaw of the actor
    function int GetYaw()
    {
    	return Rotation.Yaw;
    }
    					  
    function Rotator GetRotator()
    {
    	return Rotation;
    }
    
    function vector GetVectorizedRotator()
    {
    	return vector(Rotation);
    }
    
    DefaultProperties
    {
    	Begin Object Class=ArrowComponent Name=Arrow
    		ArrowColor = (B=80,G=80,R=200,A=255)
    		ArrowSize = 1.000000
    		Name = "North Heading"
    	End Object
    	Components(0) = Arrow
    
    	Begin Object Class=SpriteComponent Name=Sprite 
    		Sprite=Texture2D'UTBookTextures.compass'
    		HiddenGame = True
    		AlwaysLoadOnClient = False
    		AlwaysLoadOnServer = False
    		Name  = "Sprite"
    	End Object
    	Components(1) = Sprite
    
    	bStatic   = True
    	bHidden   = True
    	bNoDelete = True
    	bMovable  = False
    }

    3. Now the Hud :
    There will be a warning on the screen
    You can disable it, be typing "DisableAllScreenMessages" into the console

    Code:
    class CustomHUD extends UTHUD;
    
    var MaterialInstanceConstant GameMinimapMIC;
    var Material GameMinimapp;
    
    var MU_Minimap GameMinimap;
    var Float TileSize;
    var Int MapDim;
    var Int BoxSize;
    var color PlayerColors[2];
    
    var float MPosXMap;
    var float MPosYMap;
    
    simulated function PostBeginPlay()
    {
    	Super.PostBeginPlay();
    
    	GameMinimap = Mygame(WorldInfo.Game).GameMinimap;
    }
    
    
    function DrawLivingHUD()
    {
        DrawMap();
    
        MPosXMap = Canvas.OrgX + 30;
        MPosYMap = Canvas.ClipY/1.6;
    }
    
    
    /////////////////////////////////
    //Radar/Minimap
    /////////////////////////////////
    
    function float GetPlayerHeading()
    {
    	local Float PlayerHeading;
    	local Rotator PlayerRotation;
    	local Vector v;
    
    	PlayerRotation.Yaw = PlayerOwner.Pawn.Rotation.Yaw;
    	v = vector(PlayerRotation);
    	PlayerHeading = GetHeadingAngle(v);
    	PlayerHeading = UnwindHeading(PlayerHeading);
    
    	while (PlayerHeading < 0)
    		PlayerHeading += PI * 2.0f;
    
    	return PlayerHeading;
    }
    
    
    //There will be a warning on the screen
    //You can disable it, be typing "DisableAllScreenMessages"
    
    function DrawMap()
    {
    	local Float TrueNorth,PlayerHeading;
    	local Float MapRotation,CompassRotation;
    	local Vector PlayerPos, ClampedPlayerPos, RotPlayerPos, DisplayPlayerPos, StartPos;
    	local LinearColor MapOffset;
    	local Float ActualMapRange;
    	local Controller C;
    
    	//Set MapDim & BoxSize accounting for the current resolution
    	MapPosition.X = MPosXMap;  //default.MapPosition.X * FullWidth;
    	MapPosition.Y = MPosYMap;  //default.MapPosition.Y * FullHeight;
    	MapDim = default.MapDim * ResolutionScale;
    	BoxSize = default.BoxSize * ResolutionScale;
    
    	//Calculate map range values
    	ActualMapRange = FMax(	GameMinimap.MapRangeMax.X - GameMinimap.MapRangeMin.X,
    						GameMinimap.MapRangeMax.Y - GameMinimap.MapRangeMin.Y);
    
    	//Calculate normalized player position
    	PlayerPos.X = (PlayerOwner.Pawn.Location.Y - GameMinimap.MapCenter.Y) / ActualMapRange;
    	PlayerPos.Y = (GameMinimap.MapCenter.X - PlayerOwner.Pawn.Location.X) / ActualMapRange;
    
    	//Calculate clamped player position
    	ClampedPlayerPos.X = FClamp(PlayerPos.X,-0.5 + (TileSize / 2.0),0.5 - (TileSize / 2.0));
    	ClampedPlayerPos.Y = FClamp(PlayerPos.Y,-0.5 + (TileSize / 2.0),0.5 - (TileSize / 2.0));
    
    	//Get north direction and player's heading
    	TrueNorth = GameMinimap.GetRadianHeading();
    	Playerheading = GetPlayerHeading();
    
    	//Calculate rotation values
    	if(GameMinimap.bForwardAlwaysUp)
    	{
    		MapRotation = PlayerHeading;
    		CompassRotation = PlayerHeading - TrueNorth;
    	}
    	else
    	{
    		MapRotation = PlayerHeading - TrueNorth;
    		CompassRotation = MapRotation;
    	}
    
    	//Calculate position for displaying the player in the map
    	DisplayPlayerPos.X = VSize(PlayerPos) * Cos( ATan(PlayerPos.X) - MapRotation);
    	DisplayPlayerPos.Y = VSize(PlayerPos) * Sin( ATan(PlayerPos.Y) - MapRotation);
    
    	//Calculate player location after rotation
    	RotPlayerPos.X = VSize(ClampedPlayerPos) * Cos( ATan(ClampedPlayerPos.X) - MapRotation);
    	RotPlayerPos.Y = VSize(ClampedPlayerPos) * Sin( ATan(ClampedPlayerPos.Y) - MapRotation);
    
    	//Calculate upper left UV coordinate
    	StartPos.X = FClamp(RotPlayerPos.X + (0.5 - (TileSize / 2.0)),0.0,1.0 - TileSize);
    	StartPos.Y = FClamp(RotPlayerPos.Y + (0.5 - (TileSize / 2.0)),0.0,1.0 - TileSize);
    	StartPos.X = FClamp(DisplayPlayerPos.X + (0.5 - (TileSize / 2.0)),TileSize/-2,1.0 - TileSize/2);
    	StartPos.Y = FClamp(DisplayPlayerPos.Y + (0.5 - (TileSize / 2.0)),TileSize/-2,1.0 - TileSize/2);
    
    	//Calculate texture panning for alpha
    	MapOffset.R =  FClamp(-1.0 * RotPlayerPos.X,-0.5 + (TileSize / 2.0),0.5 - (TileSize / 2.0));
    	MapOffset.G =  FClamp(-1.0 * RotPlayerPos.Y,-0.5 + (TileSize / 2.0),0.5 - (TileSize / 2.0));
    	MapOffset.R =  FClamp(-1.0 * DisplayPlayerPos.X,-0.5,0.5);
    	MapOffset.G =  FClamp(-1.0 * DisplayPlayerPos.Y,-0.5,0.5);
    
    
            //Set the material parameter values
    	GameMinimap.Minimap.SetScalarParameterValue('MapRotation',MapRotation);
    	GameMinimap.Minimap.SetScalarParameterValue('TileSize',TileSize);
    	GameMinimap.Minimap.SetVectorParameterValue('MapOffset',MapOffset);
    	GameMinimap.CompassOverlay.SetScalarParameterValue('CompassRotation',CompassRotation);
    
    	//Draw the map
    	Canvas.SetPos(MapPosition.X,MapPosition.Y);
    	Canvas.DrawMaterialTile(GameMinimap.Minimap,MapDim,MapDim,StartPos.X,StartPos.Y,TileSize,TileSize);
    
    	//Draw the player's location
    	Canvas.SetPos(	MapPosition.X + MapDim * (((DisplayPlayerPos.X + 0.5) - StartPos.X) / TileSize) - (BoxSize / 2),
    				MapPosition.Y + MapDim * (((DisplayPlayerPos.Y + 0.5) - StartPos.Y) / TileSize) - (BoxSize / 2));
    	Canvas.SetDrawColor(PlayerColors[0].R,
    					PlayerColors[0].G,
    					PlayerColors[0].B,
    					PlayerColors[0].A);
    	Canvas.DrawBox(BoxSize,BoxSize);
    	//Canvas.DrawMaterialTile(PlayerTex, 1400 * ResolutionScale, 900 * ResolutionScale);
    
    	/*****************************
    	*  Draw Other Players
    	*****************************/
    
    	foreach WorldInfo.AllControllers(class'Controller',C)
    	{
    		if(PlayerController(C) != PlayerOwner)
    		{
    			//Calculate normalized player position
    			PlayerPos.Y = (GameMinimap.MapCenter.X - C.Pawn.Location.X) / ActualMapRange;
    			PlayerPos.X = (C.Pawn.Location.Y - GameMinimap.MapCenter.Y) / ActualMapRange;
    
    			//Calculate position for displaying the player in the map
    			DisplayPlayerPos.X = VSize(PlayerPos) * Cos( ATan(PlayerPos.X) - MapRotation);
    			DisplayPlayerPos.Y = VSize(PlayerPos) * Sin( ATan(PlayerPos.Y) - MapRotation);
    
    			if(VSize(DisplayPlayerPos - RotPlayerPos) <= ((TileSize / 2.0) - (TileSize * Sqrt(2 * Square(BoxSize / 2)) / MapDim)))
    			{
    				//Draw the player's location
    				Canvas.SetPos(	MapPosition.X + MapDim * (((DisplayPlayerPos.X + 0.5) - StartPos.X) / TileSize) - (BoxSize / 2),
    							MapPosition.Y + MapDim * (((DisplayPlayerPos.Y + 0.5) - StartPos.Y) / TileSize) - (BoxSize / 2));
    				Canvas.SetDrawColor(PlayerColors[1].R,
    								PlayerColors[1].G,
    								PlayerColors[1].B,
    								PlayerColors[1].A);
    				Canvas.DrawBox(BoxSize,BoxSize);
    			}
    		}
    	}
    
    	//Draw the compass overlay
    	Canvas.SetPos(MapPosition.X,MapPosition.Y);
    	Canvas.DrawMaterialTile(GameMinimap.CompassOverlay,MapDim,MapDim,0.0,0.0,1.0,1.0);
    }
    
    
    exec function ChangeMapsize(int size)
    {
       MapDim = size;
    
    }
    
    exec function MapSizeUp()
    {
    	MapDim *= 2;
    	BoxSize *= 2;
    }
    
    exec function MapSizeDown()
    {
    	MapDim /= 2;
    	BoxSize /= 2;
    }
    
    exec function MapZoomIn()
    {
    	TileSize = 1.0 / FClamp(int((1.0 / TileSize) + 1.0) + 0.5,1.5,10.5);
    	TileSize = 1.0 / FClamp(int((1.0 / TileSize) + 1.0) + 0.5,1.5,10.5);
    
    }
    
    exec function MapZoomOut()
    {
    	TileSize = 1.0 / FClamp(Int((1.0 / TileSize) - 1.0) + 0.5,1.5,10.5);
    }
    
    
    defaultproperties
    {
            MapDim=256
    	BoxSize=12
    	PlayerColors(0)=(R=255,G=255,B=255,A=255)
    	PlayerColors(1)=(R=96,G=255,B=96,A=255)
    	TileSize=1
    	MapPosition=(X=0.000000,Y=0.000000)
    
    }

    Now we are done with coding.
    In your level, you have to place a MU_Minimap actor (Select the Actor classes Tab and search for this actor)
    You have to play with the radius (select the MU_Minimap actor and press F4) until it fits the size of your level.

    If you've got any questions PN me or write a message in this thread!

  2. #2
    GeekyPayback
    Guest
    Quote Originally Posted by marco6453 View Post
    3. Now the Hud :
    There will be a warning on the screen
    You can disable it, be typing "DisableAllScreenMessages" into the console
    Isn't that warning there for a reason? I've been struggling with it myself and I don't have a solution but this seems like homer simpson putting a plaster over the engine management light to make the problem go away.

    The warning is MIC::SetVectorParameterValue : Modifying 'your_material_name' during gameplay

  3. #3
    marco6453
    Guest

  4. #4
    GeekyPayback
    Guest
    Quote Originally Posted by marco6453 View Post
    Ah, ok. Fixed my code. Thanks! I cant see where you've done that in the code you've posted (it may be in the zip but I didn't download that as I'd already been through the same conversion process as you).

  5. #5
    Andychung91
    Guest

    Question HELP:radar/compass

    Hi there, before i begin i'd just like to add im pretty noobish when it comes to Unreal scripting. BUT i want to learrn!

    As much help you have been breaking that old massive tutorial UDN gave us, im still struggling to get this compass working, and i really need it working for my dissertation.

    SO ive followed the tutorial marco6453 provided us with. Ive created the UC files(do i need to compile these to U files, if so how??) and ive put them in here Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes is that right?

    The MU_minimap actor and Compass actor comes up if i search it in actor classes in udk. and I've followed the big UDN tutorial. Im pretty sure ive done everything. including cooking the map file and running it.Also rebuilding scripts. But it still does not come up with the compass...

    I know im a noob, but everyone starts somewhere...
    Any speedy response would be appreciated.
    Thanks Alot in advance!

  6. #6
    GeekyPayback
    Guest
    From what you've written I think the bit you are missing is setting up the project so the build script picks up your code. Building the scripts is the bit that turns your code into a .U file named the same as the directory you stored it in.

    Have a read through the project set up section, see if theres anything you missed (I'm guessing the ModEditPackages pointing at your source code bit).

    http://udn.epicgames.com/Three/Devel...t.html#Project setup

    If it's still not working after that post the output from your build. Once we know its built the U files the next step is checking your game class is definitely loading.

  7. #7
    Andychung91
    Guest
    UDK is already looking at myMod folder in devlopment/src. However, its still not working...maybe i implemented it wrong? how can i check my classes are loaded correctly?
    thanks again and sorry for the late reply.

  8. #8
    GeekyPayback
    Guest
    Paste the contents of your UDKEngine.ini and the results of the compile. After we have both of those we should know what the problem is (nb. use the [code ] tags to make it readable on this forum)

  9. #9
    Andychung91
    Guest
    I implemented the code given on the mastering unreal script tutorial...
    Code:
    Init: Version: 8710
    Init: Epic Internal: 0
    Init: Compiled (32-bit): Jul 18 2011 18:37:12
    Init: Command line: 
    Init: Base directory: Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\Win32\
    Init: Character set: Unicode
    Log: Executing Class UnrealEd.MakeCommandlet
    --------------------Core - Release--------------------
    --------------------Engine - Release--------------------
    --------------------GFxUI - Release--------------------
    --------------------GameFramework - Release--------------------
    --------------------UnrealEd - Release--------------------
    --------------------GFxUIEditor - Release--------------------
    --------------------IpDrv - Release--------------------
    --------------------OnlineSubsystemPC - Release--------------------
    --------------------OnlineSubsystemSteamworks - Release--------------------
    --------------------UDKBase - Release--------------------
    --------------------UTEditor - Release--------------------
    --------------------UTGame - Release--------------------
    --------------------UTGameContent - Release--------------------
    --------------------MyMod - Release--------------------
    Analyzing...
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapGame.uc(11) : Warning, Unresolved reference to Class 'MasteringUnrealScript.MU_Minimap'
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapGame.uc(11) : Error, Call to 'AllActors', parameter 2: Type mismatch in Out variable
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapHUD.uc(106) : Error, Call to 'ATan': Function only takes 1 parameter(s)
    Compile aborted due to errors.
    
    Warning/Error Summary
    ---------------------
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapGame.uc(11) : Error, Call to 'AllActors', parameter 2: Type mismatch in Out variable
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapHUD.uc(106) : Error, Call to 'ATan': Function only takes 1 parameter(s)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod\Classes\MinimapGame.uc(11) : Warning, Unresolved reference to Class 'MasteringUnrealScript.MU_Minimap'
    
    Failure - 2 error(s), 1 warning(s)
    Execution of commandlet took:  4.64 seconds
    [Mar 14, 8:22 PM] COMMANDLET 'UDK.exe make' FAILED
    Thats the compile errors for the unrealscript tutorial source files.

    Heres the compile errors for the code from this post.
    Code:
    Analyzing...
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\CompassActor.uc : Error, Script vs. class name mismatch (CompassActor/CustomHUD)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\CompassActor.uc : Error, Script vs. class name mismatch (CompassActor/CustomHUD)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\MinimapGame.uc : Error, Script vs. class name mismatch (MinimapGame/MyGame)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\MinimapGame.uc : Error, Script vs. class name mismatch (MinimapGame/MyGame)
    Error, Superclass Compass of class MU_Minimap not found
    Compile aborted due to errors.
    
    Warning/Error Summary
    ---------------------
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\CompassActor.uc : Error, Script vs. class name mismatch (CompassActor/CustomHUD)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\MinimapGame.uc : Error, Script vs. class name mismatch (MinimapGame/MyGame)
    Error, Superclass Compass of class MU_Minimap not found
    
    Failure - 5 error(s), 0 warning(s)
    Execution of commandlet took:  18.48 seconds
    [Mar 14, 8:49 PM] COMMANDLET 'UDK.exe make -full' FAILED
    Code:
    [UnrealEd.EditorEngine]
    LocalPlayerClassName=UnrealEd.EditorPlayer
    bSubtitlesEnabled=True
    GridEnabled=True
    SnapScaleEnabled=True
    ScaleGridSize=5
    SnapVertices=False
    SnapDistance=10.000000
    GridSize=(X=16.000000,Y=16.000000,Z=16.000000)
    RotGridEnabled=True
    RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024)
    GameCommandLine=-log
    FOVAngle=90.000000
    GodMode=True
    AutoSaveDir=..\..\UDKGame\Autosaves
    InvertwidgetZAxis=True
    UseAxisIndicator=True
    MatineeCurveDetail=0.1
    Client=WinDrv.WindowsClient
    CurrentGridSz=4
    bUseMayaCameraControls=True
    bPrefabsLocked=True
    HeightMapExportClassName=TerrainHeightMapExporterTextT3D
    EditorOnlyContentPackages=EditorMeshes
    EditorOnlyContentPackages=EditorMaterials
    EditorOnlyContentPackages=EditorResources
    EditPackagesInPath=..\..\Development\Src
    EditPackages=Core
    EditPackages=Engine
    EditPackages=GFxUI
    EditPackages=GameFramework
    EditPackages=UnrealEd
    EditPackages=GFxUIEditor
    EditPackages=IpDrv
    EditPackages=OnlineSubsystemPC
    EditPackages=OnlineSubsystemGameSpy
    EditPackages=OnlineSubsystemLive
    EditPackages=OnlineSubsystemSteamworks
    bBuildReachSpecs=FALSE
    bGroupingActive=TRUE
    bCustomCameraAlignEmitter=TRUE
    CustomCameraAlignEmitterDistance=100.0
    bDrawSocketsInGMode=FALSE
    bSmoothFrameRate=FALSE
    MinSmoothedFrameRate=5
    MaxSmoothedFrameRate=120
    FarClippingPlane=0
    TemplateMapFolders=..\..\Engine\Content\Maps\Templates
    EditPackagesOutPath=..\..\UDKGame\Script
    FRScriptOutputPath=..\..\UDKGame\ScriptFinalRelease
    EditPackages=UDKBase
    EditPackages=UTEditor
    InEditorGameURLOptions=?quickstart=1?numplay=1
    EditPackages=UTGame
    EditPackages=UTGameContent
    ModEditPackages=MyMod
    and thats the UDKengine.ini file
    :/ Im pretty sure the engine file is fine. i htink im just being a noob trying to implement the compass classes.
    Also im pretty sure it shouldnt be looking in Binaries... :
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes
    my mod classes is in here
    Z:\Program Files (x86)\UDK\UDK-2011-07\Development\Src\MyMod

    thanks again

  10. #10
    GeekyPayback
    Guest
    So the answer to your original problem is that your code doesn't compile. This means your .u file is not created, and that's why the game isn't finding the class you created.

    Forget about the original code and concentrate on what you've got from this thread.

    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\Compa ssActor.uc : Error, Script vs. class name mismatch (CompassActor/CustomHUD)
    Z:\Program Files (x86)\UDK\UDK-2011-07\Binaries\..\Development\Src\MyMod\Classes\Minim apGame.uc : Error, Script vs. class name mismatch (MinimapGame/MyGame)

    Unrealscript requires that the classname matches the the filename. I dont understand why its throwing extra values on the end - "CompassActor/CustomHUD"

    Could you paste the contents of Development\Src\MyMod\Classes\CompassActor.uc as I think that will contain the source of your problem.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •