Announcement

Collapse
No announcement yet.

Ultimate ONS Tools (a touch of Kismet for mappers)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    Ok, here in Double Domination, wasn't really hard (I think the icon size is ok, isn't it?):

    [SHOT]http://img802.imageshack.us/img802/1300/domradar.jpg[/SHOT]

    *I always wanted to have a RadarMap in DOM-Core… it's a maze to me*


    In such modes like Triple Domination, the third DomPoint won't have a letter in it, only the circle around.

    Comment


      #47
      Yes, icon size is good, keep on the good job

      Comment


        #48
        This is the Assault Radar:

        [SHOT]http://img340.imageshack.us/img340/7821/assaultradar.jpg[/SHOT]



        But currently all objectives are displayed at the same time. I use a check GameObjective.IsActive() to see if I need to draw it, but somehow this only prevents them from being drawn after they have been completed.
        I want to draw only those that are currently attackable, but I don't know how to do that since I never mapped for AS.

        Does anyone know how that works in AS that an objective becomes the new goal after one has been completed? From the mapper's point of view might be enough already to figure out what I need.

        Comment


          #49
          Ok, done. The RadarMap shows only valid objectives now (thanks to Wormbo) and will also disappear when the table of objectives is shown at it's point.

          However, somehow I can't disable the RadarMap with F12 in AS… maybe because AS features some own kind of radar, at least that's what it says in the AS HUD.

          Comment


            #50
            Assault uses a radar map when you pilot a spacefighter or remote-control a Mothership ball turret. From what I can tell only the Onslaught HUD uses the ToggleRadarMap command to actually toggle the radar map.

            Comment


              #51
              Hmm, strange… I could have sworn that it worked in VCTF as well, but somehow it doesn't any more.

              There is probably no way to re-route the ToggleRadarMap command to the HUDOverlay, right?

              Or could you toggle it via console command?
              VCTFRadarHUDOverlay.ToggleRadarMap, since I declared an exec function with that name in the class?


              EDIT: And there is probably also no way to integrate this HUDOverlay into the Shrink HUD funtionality, is it?

              Comment


                #52
                You could try intercepting those commands through an Interaction.

                Comment


                  #53
                  Confexia, so many people play that map it's amazing And good work. The list on the wiki is so long that many people will have a tl;dr moment I believe

                  Comment


                    #54
                    Originally posted by GreatEmerald View Post
                    Confexia, so many people play that map it's amazing And good work. The list on the wiki is so long that many people will have a tl;dr moment I believe
                    Because it's from Streamline, the creators of Torlan. And Torlan is probably the most popular ONS-map out there (at least on the demo servers).


                    I always wondered what Epic would have done if all these tools, mine and Wormbo's, were already available in the early days of UT2k4… if some Epic mappers would have used them to create awesome maps, maybe in cooperation with the community… who knows.

                    There should be a tournament: The best from Epic's staff vs. some chosen ones from the community. If Epic lose, they need to create one more patch for this game, maybe a small engine update for bump mapping.


                    Unfortunately we will never have such a thing happen.

                    Comment


                      #55
                      Hmm, somehow I don't get the Interaction to work:

                      Here is it spawned in the HUDOverlay:
                      Code:
                      // ============================================================================
                      // BeginPlay
                      //
                      // Initialize Interaction to bind F12 to toggle the RadarMap.
                      // ============================================================================
                      
                      simulated function BeginPlay()
                      {
                          PCOwner = Level.GetLocalPlayerController();
                      
                      
                      	if (PCOwner != None)
                      	{
                      		PCOwner.Player.InteractionMaster.AddInteraction("UltimateMappingTools.UltimateRadarMapToggleInteraction", PCOwner.Player); // Create the interaction
                      	}
                      }
                      and this is the whole Interaction:
                      Code:
                      class UltimateRadarMapToggleInteraction extends Interaction;
                      
                      
                      var VCTFRadarMapHUDOverlay ParentRadarMapHUDOverlay;
                      
                      
                      
                      // ============================================================================
                      // Initialize
                      //
                      // Find our ParentRadarMapHUDOverlay
                      // ============================================================================
                      
                      function Initialize()
                      {
                         local int i;
                      
                         for (i = 0; i < ViewportOwner.Actor.myHUD.Overlays.Length; i++)
                         {
                             if (VCTFRadarMapHUDOverlay(ViewportOwner.Actor.myHUD.Overlays[i]) != None)
                             {
                                 ParentRadarMapHUDOverlay = VCTFRadarMapHUDOverlay(ViewportOwner.Actor.myHUD.Overlays[i]);
                                 break;
                             }
                         }
                      }
                      
                      
                      // ============================================================================
                      // KeyEvent
                      //
                      // Catch the F12 key and redirect it to our ParentRadarMapHUDOverlay.
                      // ============================================================================
                      
                      function bool KeyEvent(EInputKey Key, EInputAction Action, float Delta )
                      {
                      	if (Action == IST_Press && Key == IK_F12)
                      	{
                      		if (ParentRadarMapHUDOverlay != None)
                      		{
                      		    ParentRadarMapHUDOverlay.ToggleRadarMap();
                      		    return True;
                              }
                          }
                      
                      	return false;
                      }
                      
                      
                      
                      
                      DefaultProperties
                      {
                          bActive=True
                      }

                      Comment


                        #56
                        I don't think you should capture the F12 key, especially since players might bind it to a different key. Instead, just declare the exec function ToggleRadarMap there and forward the call to your HudOverlay. (Interactions are very early in the exec function search, possibly even before the HUD, so you might want to make sure the overlay doesn't grab the Onslaught HUD's call or at least forwards it to the Onslaught HUD, if present.)

                        Comment


                          #57
                          Still doesn't work.

                          Instead of the KeyEvent I used this:
                          Code:
                          exec function ToggleRadarMap()
                          {
                              if (ParentRadarMapHUDOverlay != None)
                              {
                                  ParentRadarMapHUDOverlay.ToggleRadarMap();
                              }
                          }
                          EDIT: Debugging shows me that ParentRadarMapHUDOverlay is still None.

                          How can I find it then, if not this way?
                          Code:
                          // ============================================================================
                          // Initialize
                          //
                          // Find our ParentRadarMapHUDOverlay
                          // ============================================================================
                          
                          function Initialize()
                          {
                             local int i;
                          
                             for (i = 0; i < ViewportOwner.Actor.myHUD.Overlays.Length; i++)
                             {
                                 if (VCTFRadarMapHUDOverlay(ViewportOwner.Actor.myHUD.Overlays[i]) != None)
                                 {
                                     ParentRadarMapHUDOverlay = VCTFRadarMapHUDOverlay(ViewportOwner.Actor.myHUD.Overlays[i]);
                                     break;
                                 }
                             }
                          }

                          I actually wanted to let the Overlay assign itself to the Interaction, but that doesn't seem to be possible since the Interaction isn't spawned but just "added".


                          EDIT2: Ok, got it. A forEach did the job…

                          Comment


                            #58
                            Hmm, is it possible to access objects in a local player's GUI-Tab just from within a HUDOverlay without using a Mutator?

                            More precisely, I need some properties of the
                            Code:
                            var automated GUIImage i_Background;
                            to determine the size of the ONS map in the UT2K4Tab_OnslaughtMap to maybe also draw the vehicles tracked by the UltimateONSFactory on that big radar map.

                            And I need to know if the player has that tab currently openend.



                            It would actually be really nice to also have such a RadarMap-Tab that is integrated additionally to the current RadarMap of the UltimateRadarMap-Actor, but I neither have a clue how to script such a Tab nor how to implement it (what is probably not possible without a Mutator anyway, is it?).

                            Comment


                              #59
                              You don't want to override Initialize, but Initialized. Initialize is a native function that enables state support and calls Initialized() afterwards.

                              Comment


                                #60
                                Ok, I tracked the Onslaught Tab now from one end of the class tree to the other, in rough order:

                                UT2K4Tab_OnslaughtMap -> UT2K4OnslaughtLoginMenu -> ONSOnslaughtGame -> DeathMatch -> UnrealPlayer -> PlayerController -> GUIController

                                Now I can probably get the properties of that **** ONS map, even though I was afraid that I lost the track first due to the protected modifier of the menu stack, but after all they were so kind to give some access via multiple functions.


                                I wonder if it's possible now to let the actor integrate a RadarMap Tab by using the GUIController's CreateMenu function. But that would still require to script a new menu class…
                                This begins to look like a huge hack to me.

                                Comment

                                Working...
                                X