Announcement

Collapse
No announcement yet.

OSM-MicroMachines-WreckRoomRally

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

    #16
    Well, Superape says he has one or two ideas for that, but I'm already hounding him bad enough as it is, so it may take a wee while to implement - I really do want to make this work for multiplayer before I get too far ahead of myself.

    Comment


      #17
      My wife is fond of Micromachine, i gonna show this to her

      Comment


        #18
        It's really nice BigJim, saw it at UnrealPlayground.

        If setting GroundSpeed to zero doesn't work, try setting GearRatios to zero.
        You can prevent physical damage by using a GameRules class and the NetDamage function.
        Code:
        //Mutator function (replace "XGameRules" with your GameRules class name):
        function PostBeginPlay()
        {
            local XGameRules XGR;
            XGR=Spawn(class'XGameRules');
            if (Level.Game.GameRulesModifiers==none)
               Level.Game.GameRulesModifiers=XGR;
            else
                Level.Game.GameRulesModifiers.AddGameRules(XGR);
        }
        
        //GameRules function:
        function int NetDamage(int OriginalDamage,int Damage,Pawn Injured,Pawn InstigatedBy,vector HitLocation,out vector Momentum,class<DamageType> DamageType)
        {
            return 0;
        }
        If you still have problems with daredevil stuff, just set bDoStuntInfo to false (wheeled vehicles variable).


        Good luck!

        Comment


          #19
          Originally posted by Xaklse View Post
          It's really nice BigJim, saw it at UnrealPlayground.
          Thanks matie!

          Luckily, I've found a slightly simpler (simpler for the mapper making tracks, not simpler for me ) solution to the problem of keeping all cars stationary until the race starts; if you're interested take a peek at the "Events" thread in programming & uscript dude.


          But, that info on preventing damage is fantastic - I've been trying to figure out that little monkey for ages now - thanks man.
          TBH I'm in 2 minds whether to extend Mutator & use a myLevel Mut inserted into a GameLevelRules actor, & distro that with the map, or use a single, placed Info actor, as you suggest.

          As I understand it, extending Mut and putting it in a gamellevelrules actor would allow me to use it for things that must be configured (ie; the time to wait after loading, for new players to join, the number of laps, whether to include weapons, etc..), and those values could then be accessed and configured by the sever admins - Whereas with a single placed actor, everything is essentialy hard-coded, and not configurable (unless you re-code it), is that a roughly correct assertion?


          Thanks, you honestly don't know how much I appreciate help like this, I scratched around with VB for a few years, but there's just so much to swallow at once with Uscript, often it utterly overwhelms me.

          Wow, this is really picking up speed now, hopefully I expect to update the beta today or tomorrow - with changes including;

          *- No damage taken by cars (thanks to Xaklse)
          *- A working system that waits for 20 secs after map initializes, gives a "3-2-1-Go!" countdown, waits to see how many people have spawned, then starts the race, and shuts off all the remaining VehiclePlayerStarts so new-comers can't spawn in & spoil the race..

          *- I'll also begin work on the ReadMe, and *substantial* credits section that'll go with, and I'll also begun commenting in credits to all the various custom code.

          Thanks for the daredevil info, I stumbled upon that property last night & switched it, I'm glad you confirmed for me cheers.

          Comment


            #20
            *added new comments to previous post*

            Originally posted by BigJim
            As I understand it, extending Mut and putting it in a gamellevelrules actor would allow me to use it for things that must be configured (ie; the time to wait after loading, for new players to join, the number of laps, whether to include weapons, etc..), and those values could then be accessed and configured by the sever admins - Whereas with a single placed actor, everything is essentialy hard-coded, and not configurable (unless you re-code it), is that a roughly correct assertion?
            Mutators shouldn't be placed, as SuperApe told you. If you want to have configurable variables, you'll have to add new functions to the mutator: FillPlayInfo, GetDisplayText & GetDescriptionText. They aren't difficult and UnrealWiki is a good source of info. However:
            Code:
            var config int WaitTime; //configurable option.
            var localized string WaitTimeDisplayText,WaitTimeDescriptionText;
            
            // Adds options to the mutator configuration window.
            static function FillPlayInfo(PlayInfo PlayInfo)
            {
                super.FillPlayInfo(PlayInfo);
                PlayInfo.AddSetting(default.RulesGroup,"WaitTime",GetDisplayText("WaitTime"),0,0,"Text","2;0:60");
            }
            
            static function string GetDisplayText(string PropName)
            {
                switch (PropName)
                {
                    case "WaitTime": return default.WaitTimeDisplayText;
                }
            }
            
            static event string GetDescriptionText(string PropName)
            {
                switch (PropName)
                {
                    case "WaitTime": return default.WaitTimeDescriptionText;
                }
            }
            
            defaultproperties
            {
                WaitTimeDisplayText="Abcdefghijk" //modify text.
                WaitTimeDescriptionText="ABCDEFGHIJK" //modify text.
            }

            Btw, got another idea: you can make vehicles to start with Physics=PHYS_None (player can't move it) and when triggered just switch them to PHYS_Karma (using SetPhysics function). It will work in netgames for sure.

            Comment


              #21
              cool will wait for beta 2 then

              Comment


                #22
                Originally posted by Xaklse View Post
                Mutators shouldn't be placed, as SuperApe told you.
                Really? I didn't know.
                Is that because having the same mutator in every clients' copy of the map borks something during netgames?

                To be perfectly honest I was under the impression that essentially the same functions could by carried out by;

                1) a custom placeable GameRules class actor,
                2) a Mutator, configured as a map mutator in a placed LevelGameRules actor, or
                3) an old fashioned regular mutator running on the server / added to the mutator list in the case of offline games.

                ..and that the only real life difference would be how accessible their settings would be.
                If I've got that all ****-upwards then to be fair it's probably my fault.


                Thanks for the info on configurables, I don't have the time to post fully now but you don't know how handy that is.

                Originally posted by Xaklse View Post
                Btw, got another idea: you can make vehicles to start with Physics=PHYS_None (player can't move it) and when triggered just switch them to PHYS_Karma (using SetPhysics function). It will work in netgames for sure.
                Magic - if all goes to plan that'll free me of that ghastly block of code in Tick(), I tried setting Karma last night, but when I tried to complie it told me I couldn't set const variables (I was using a basic Self.Physics = PHYS_Karma/None) command, since I didn't now about SetPhysics then.

                You're right about netgames, I mean panws go from walking to falling, to flying to all sorts all the time so there can't be any issues with replication I'd have thought - cheers, it's a winner.

                Comment


                  #23
                  *Warning: Noob Post Alert*


                  Ah-haa!

                  I've just now realised the relationship between Mutators & Gamerules actors - you require both to be present; The mutator references the GR actor, and the mutator has to live in the Mutator list or be referenced in a LGR actor.. Now I get it, sorry for being slow on the uptake guys, all this is very new to me..

                  Y'see, I'd been having problems getting X's mutator functions to work (I didn't go on about it because I knew I oughta be able to make it work), when I realised that in his commenting, he'd already given the instructions - Mutator function, GameRules function, etc..

                  The implication being, that in this case, they worked in concert to remove damage altogether, both the Mut and GR actor needed to be present.
                  (until now, I'd been over-riding the vehicle's TakeDamage function to prevent damage)

                  To my eyes, performing only offline tests atm, I can see no practical difference between the two methods (there may be other, more subtle differences of course), but the main thing being;

                  * Now I've finally got this mutator up & running, and can see for myself that it is functioning as intended - thanks Xaklse for the practical lesson in figuring sh** out, you've gotten me that much closer to cracking this little nut. :thumb:

                  Comment


                    #24
                    I play the map with stunt vechiles on, and there is a shortcut after the bert and ossma record, you can jump the barrier (should save 5-7 seconds off your lap), we need more of that kind

                    Comment


                      #25
                      Ok, quick update - I know I just posted but this is something new.

                      I've been doing some weapons-work today, here's my thinking on it so far;

                      * I'd like to have *some* weapons, but I don't want to turn it into UT.

                      * I'd like to keep the slightly cartoon style of Mario Kart & Micro Machines, so weapons must be simple, cute looking, non-deadly, and capable of altering the course of the race.

                      With this in mind I've come up with 2 weapons for this map (future maps might have veicles with other weapons), both veritable staples of the top-down racer genre; Front-firing missiles, and land-mines.

                      I've begun work on the missile weapon already, and I've not started on the mines, but have a good idea of what I'm gonna do.





                      Nice & simple - a big fat bullet that glows in your team colour.
                      The missiles cause no damage, but have a lot of MomentumnTransfer (knockback), so they're more than capable of knocking you off the track, or even sending you flying, if you shoot someone point-blank.


                      Now, I've not yet decided whether to make the weapons always available for use (spammy), or limited-ammo and provided by pickups, a la MarioKart, or some other system altogether.

                      Comment


                        #26
                        Nice!

                        You could let players jump:
                        Code:
                        // Wheeled vehicle variables:
                        bAllowChargingJump=true //When set to true the player will be able to jump with the car. When bPushDown is true the jump will be charged until it's released, after which the car will jump.
                        MaxJumpForce=200000.0 //The maximum up force of a jump, this force will be reached after JumpChargeTime as passed (while charging the jump). Otherwise a percentage of this force will be applied.
                        MaxJumpSpin=30000.0 //This controls how much the car will be able to turn in the air after the jump.
                        JumpChargeTime=1.0 //The time required to reach the MaxJumpForce.
                        JumpFeedbackForce="HoverBikeJump"
                        JumpSound=sound'ONSVehicleSounds-S.Hydraulic10'

                        Comment


                          #27
                          Originally posted by Xaklse View Post
                          Nice!

                          You could let players jump:
                          Thanks mate - That's a great help, to get a similar effect I'd have had to specify the StuntVehicles mutator as a map-mut, and all that would have done is enable those same properties but would have come with it's own set of new problems entirely..
                          The direct approach FTW!

                          Tbh though, stunt jumps won't work on this particular track - and it's my fault entirely I'm afraid.

                          The way I designed it at the time, I never anticipated stunt-jumps (should have, though), so not only are there a few shortcuts, there's also innumerable places where if you jump, you'd get stuck forever, and have to suicide.

                          The problem is, some of these would require a complete re-work of the map, so for this one, I'm probably not gonna enable stunt jumping.

                          The good news though is my second track (BackYardEnduro - working title) will be designed with jumps in mind, so we can get the benefit of it.
                          Cheers dude,when you're as noob as me at all this, you really appreciate little things like that.


                          Ok, quickie update;
                          I'm currently trying to figure out how to add colour effects to emitters through code;
                          The idea is, I want to use a smaller, cut down version of the of the Pally-blast emitter to be the explosion for my Bazooka & Mines (not the same blast properties, just the effect-emitter).
                          Then, through code I could change it's overall colour to match that of the Instigator (player who fired), giving me nice, team coloured explosions.

                          Well, when I say figure out, I actually mean "when I can be bothered" working out how to manipulate the colour scales of the various sub-emitters..

                          (It'll probably be summat silly like Self.Emitters[0].ColorScale[0] = Color(255, 0, 0, 255);, but I'll find out for sure laters when I try it no doubt.


                          Here's a cheeky guy dropping a mine;


                          ..And here's an unlucky sod hitting it.

                          They are just subclasses of ONSMineProjectile, that can't scuttle or jump.
                          There's a useful property, DetectionTimer (or similar name), which lets me control in milliseconds how long it takes to detect enemies and explode.

                          This is very handy, because a delay of 0.01 (as in this pic) means that it explodes as soon as you hit it, throwing your front end up and instantly killing all your forward velocity.

                          However, a delay of 0.05 means that at average speeds you have the time to travel a bit before it explodes, meaning the explosion is directly underneath your centre of gravity by the time it hits you, and the force hurls you high(ish) up into the air and spins you thoroughly around - it's rare you end up in the right direction again or even the right orientation.


                          I'm looking for a happy medium between these two values, maybe 0.03, or so.
                          Bear in mind that I'm playing with Cars with mass = 5 or so, whereas you guys have got cars with mass = 3, so I'm seeing a bit less bounce than you might imagine there would be.

                          Comment


                            #28
                            Rightio; Good news & bad news.

                            * Good news is, I've finally sorted the teamcolours for the drop-mines.
                            Took me ages, I was trying to find a way to interrogate the Instigator and Ownser's team index from the Mines' PostBeginPLay function, but for some reason the code either would not run, or didn't get the Team info when I was asking the Mine to interrogate it's owner/instigator.

                            Anyways, I've got around it by adding a few lines to the ONSWeapon itself, telling it to apply the teamcolours when it first spawns the projectile, based upon the ONSWeapon's own team number.


                            * Bad news is tho', I still can't figure out how to get my custom explosion to spawn when the mine detonates.
                            I've tried replacing the basic Grenade explosion (which it spawns through code) with my own class - no joy.
                            I've tried modifying both the BlowUp and Destroyed functions, adding a Spawn() command to the end of the function, but still, no joy.

                            I've done this kind of thing before, with OSM-UseOfWeaps so in theory I know I'm approaching this right - perhaps it's a quirk of the Spidermine, and the effect to spawn upon exploding is defined somewhere else?

                            The teamcolouring of the explosion should be easy - I can base it's values off the Team lighting values already assigned upon the Mine/Missile's spawning, but for some reason my custom FX don't wanna play..

                            Anywhoo, I'm sure I'll get it sorted.

                            Comment


                              #29
                              Strictly speaking I shouldn't post this here, because it's not really about the map I posted (WreckRoom-Rally), but I will anyway, because it's interesting I hope.

                              Been working on another track, and some more vehicles to go in it - they're about twice as fast as a normal Goli, Mass about one-third of a normal Goli, have more torque on the steering, and have less upright stiffness (means it can rock from side to side more - in fact, you can even be flipped if you try very hard).


                              Good news for tank-hoes!

                              They handle really nice imo, ok, you won't be getting any leet wicked-airs, but they leave the ground much more, and bounce around nicely.

                              Those are the first two attempts at the skins, I'm going to produce 6, Red, Blue, Green, Yellow, Purple & Brown/Orange, so we can have 6 players.

                              I'm thinking about using them in this map;





                              ..Which is almost finished.
                              The idea is, by the time the race handler mut is sorted, I'll have 2, 3 or even 4 tracks to put out all at once, so it won't be a boring case of only one track to play on.

                              Comment


                                #30
                                Keep up this great work

                                Comment

                                Working...
                                X