No announcement yet.

Ultimate ONS Tools (a touch of Kismet for mappers)

  • Filter
  • Time
  • Show
Clear All
new posts

    Tested it and looks pretty good, im interested to know how to do this, might turn useful.
    And this way i can forgive you for using my map as guinea pig
    Originally posted by Sly. View Post

    PS: Maybe the radar should be scaled up a bit. And it would be pretty cool if it would be a round radar like in UT3. I like the UT3 radar a bit more than the 2k4 ONS radar

    Please don't kill me for this post...


      Originally posted by Darkemule View Post
      Tested it and looks pretty good, im interested to know how to do this, might turn useful.
      And this way i can forgive you for using my map as guinea pig

      Know how to do what? Enable it or creating a radar map in general?

      Well, the first thing is easy. Just place the actor in the map, it has two options - done.

      The second one requires some knowledge in a program like GIMP. I wanted to translate my radar map tutorial anyway when I have too much time (what is unfortunately not the case). Maybe after I released all this stuff.

      @Sly: You can't see the vehicles in the menu in UT2k4 ONS. That's a feature of UT3 and way out of scope for this thing, besides that Wormbo mentioned that he was working on such a feature (though it's probably not compatible with this VCTF stuff, since the radar map is only unofficial - but hey, this one also works in normal CTF).

      There is a feature in a JB map where the location of every player is displayed on a texture in the jail. But the author of the map coded that himself and so it's not part of JB itself.

      And the radar is fine as it is, I actually consider it already too big.
      This should just implement the radar from ONS, I don't want to create a WAR copy. Besides that round is actually not the usual shape of a UT2k4 map. Using a square allows you to use the maximum available resolution you can get to fit the map into the texture, while in UT3 you needed to shrink it a bit more so that everything is in the circle.

      The ONSTab wouldn't make much sense in VCTF. Besides that it probably required to script a Mutator to integrate it and Mutators are not the goal of this tool set.

      And yeah:


        Originally posted by Crusha K. Rool View Post
        Currently it's set to work like in UT3, that means you can see when your teammate carries the enemy flag but you can't see the enemy carrying your flag.
        In UT3, you can see the enemy flag carrier, just that there should be at least one of you team members that see it. It usually appears when someone says "flag carrier going low" etc.


          In UT3 a flag (or orb) is displayed on the minimap if it's on its home base, if it doesn't belong to your team or when a bot saw the enemy flag carrier and said "enemy flag carrier is here" less than 5 seconds ago. That last part cannot be done by humans.


            Although it would be very nice if there was a way to backport that to human controllers...


              I think that would make it too easy I prefer the old way of typing in the location and it makes the game more exciting.


                ...probably controlled by auto taunt option.


                  Hmm, quick question since there are so many coders around:

                  Would this
                  function Touch(Actor Other)
                      if (!bPlayersInside && PlayerController(Other) != None)
                          bPlayersInside = True;
                  work, since the PlayerController doesn't have bCollideActors set to True and thereby probably doesn't cause a Touch-event?

                  I could probably go over the Pawn, but this one is so nice and handy.

                  EDIT: Oh, and I heard it would be bad to use
                  *arrayname*.Length = 0;
                  Or is that allowed to make sure that an array has been cleared completely?


                    Who said that was bad? That's how I usually clear my arrays because it's the most efficient way, bytecode-wise.


                      Or at least I read somewhere (dunno, maybe UDN) that you shouldn't set an array to a custom length value. A reason wasn't mentioned, that's why I was wondering.


                        You should not modify the length variable through operations other than simple assignment, i.e. don't pass it to an 'out' parameter of a function or operator. That's the only restriction I can really think of. Changing the length via assignment has absolutely the same effect on the array as adding or removing elements at the end via Insert() or Remove().


                          About your Touch question, try using Bump() instead. Players call one or another, I don't remember which one exactly, though.


                            Sometimes, the engine will not call both Touch() and Bump() - if both objects are bBlockPlayers, Bump() will be called, Touch() won't. If one object is bCollideActors and the other is bBlockActors, the object being bumped (the bCollideActors object) will get a Bump() event while the other will simply get a Touch() call.
                            But there is no "UnBump()" anyway, so I will stick to the Touch-stuff since I need it in a Volume. That Volume has the pretty unhandy name "NetworkLinkedClientVolume", but I couldn't think of a better one.

                            It's purpose is to determine if the NetworkImportanceVolume needs to be active. Therefore the NetworkImportanceVolume can be set to associate NetworkLinkedClientVolumes with matching Tag to itself. Those Volumes will then tell the ImportanceVolume if there are any players inside them. If that is the case, the ImportanceVolume shall make all actors in it bAlwaysRelevant if they aren't bAlwaysRelevant or bNoDelete already. If there are no players in the LinkedClientVolumes, it shall set all actors back to their original relevance and not react on any new actors that call the ImportanceVolumes Touch()-event. Of course the Volume will also turn actors that have been modified back to original if they UnTouch() the Volume while it's active.

                            The whole construction is supposed to be used like this:
                            The ImportanceVolume is placed at the area that is observed by an OnlineCameraTextureClient (more precisely by the actor that delivers the picture information) and the LinkedClientVolumes are placed at the area from which you can see the ScriptedTexture. That is still not a very efficient way since everyone gets the content of the ImportanceVolume replicated even if he doesn't see the ScriptedTexture, but it was the the best possible solution I could think of.


                              Ah, I got a reply from KillBait and he was happy to let me use his VehicleTeleporter (thoroughly tested in these forums with support for netplay and bot paths) in the tool set.

                              I also added more missing descriptions for all the stuff that is also included and now the page really looks impressive, especially with all the additional stuff from the Worm.

                              At one point I was just too lazy to add proper descriptions: Wormbo's NetworkProjectileSpawner features 70 user-customizable variables - no way I'm gonna write them all down.

                              And it will get even bigger, I still have a few actors left here and not even included the stuff from Nova yet…


                                Lilalurl asked me if I could get the radar to be compatible with CTF4. Well, nothing easier than that.

                                Just a few more lines of code and it was done.

                                But I liked the idea so much that I extended it:
                                I think I should call the thing UltimateRadarMap now, as it is compatible with actually any stock gametype (except ONS ) now.

                                You can add a RadarMap to any map, in DM, TDM, LMS, TAM, Freon, etc. is it simply a image of the map from above that shows your location in it - some may find it annoying (you can press F12 to disable the RadarMap just like in ONS) but it's actually good to get a feeling for a new map and it supports you by showing you your possible routes when you don't know the map already by heart.

                                However, if you use the RadarMap in an objective-based gametype, then it will properly display the objectives in it.

                                The other fields still require some human attention, but I already set it up properly in CTF (supports VCTF and CTF4 as well) and BombingRun:


                                The BombDeliverySpots are not teamcoloured on the Radar, that would require too much working on the textures and actually I think it's pretty good this way already. You still have the HUD element that shows you the location of your next goal.
                                It will also work properly with BR4 and the mutator that adds more balls to the game.

                                DoubleDomination is also basically done, even though I haven't set up a map for testing yet.

                                In Assault you can choose if you just want to display the radar map or also all currently active objectives. Also not tested yet.