Announcement

Collapse
No announcement yet.

Problems with Kismet (probably simple).

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

    Problems with Kismet (probably simple).

    Had a search for this but couldn't find anything...

    I've got this Kismet sequence:



    The aim is to have a material change colour when the player picks up UDamage, then change back to the original colour (white) afterwards. Its got a matinee because it's cycling through colours.

    It behaves as I'd like until UDamage runs out, but then it stays on as if the player still has the power-up.

    Problem is the 'Doesn't Have Item' tab doesn't seem to do anything constructive. If I plug that into the start then the material doesn't change at all.

    I'd also like to know how I can set up another condition for a Killing Spree to do the same kind of thing.

    Thanks.

    #2
    Looking at your screenshot, I'd say that when the user has the UDamage it starts the colour-cycling matinee, but then there's nothing to stop the matinee.

    A Matinee will run until one of two conditions is reached:
    * It reaches the end of its animation sequence (unless it is set to loop indefinitely)
    * The Stop input is triggered.

    If your Matinee is set to cycle indefinitely, then you need to trigger the Stop input

    I'm not familiar with how the HasInventory object works but I would guess it works in one of two ways:

    * It checks whenever the player's inventory changes.
    * It checks at the moment the In input is triggered only.

    So, try connecting the Doesn't Have Item output to the Stop input of the Matinee. That should work if its the former.

    If that doesn't work, you need to keep checking until the player doesn't have the UDamage: connect the Has Item output to a 1 second delay, and connect the delay output to the In of HasInvenory - once the player has the Udamage, it will check the player's inventory again every second until Doesn't Have Item fires instead of Has Item. Doesn't Have Item will then trigger the Stop of the Matinee. That should work if its the latter.
    You might also want Doesn't Have Item to trigger a SetVectorParm to change the material back to white, a short time after stopping the Matinee.

    Comment


      #3
      When the pickup is taken have it start a Delay for as long as the powerup lasts and when the delay time is up it stops the matinee. You can also start the sequence directly with the pickup base.

      Comment


        #4
        I tried all of these solutions and none of them worked. I'm not sure what's happening in honesty. The lights didn't trigger in any situation.

        Comment


          #5
          What kind of lights are you using? You need to use the toggleable lights to make them toggle on and off. Leave them enabled and turn them off when the level loads with an Event Level Loaded and Visible.
          If that doesn't work upload the uncooked version and send me a link via PM and I'll see if I can help you.

          Comment


            #6
            Its using a material instance constant plugged into a vectorparam, so no lights. What's strange is it will change but not change back?

            Comment


              #7
              Are you changing the material on a static mesh?

              Comment


                #8
                Yea thats the plan.

                Comment


                  #9
                  Changing a material on a static mesh works in instant action but wont work online. You have to convert it to an InterpActor first. Then through Kismet set it to change the material to the new material and start the timer when the pickup is taken. Once the timer runs out set it to change back to the original material. Check out this simple map. Wait for the Damage Amp to spawn then take it and watch the mesh against the wall. When the Damage Amp wears off it changes back to the original material. http://www.mediafire.com/download.php?oiliy5y3wnj

                  Comment


                    #10
                    Excellent, thanks so much. It worked. Is there any way to convert a static mesh into an interpactor without reimporting it to the map? Because I'm gonna lose about a day if I can't

                    Comment


                      #11
                      Yes. Right click the mesh and go to Convert to InterpActor.

                      Comment


                        #12
                        If/When a UDamage is dropped, the timeremaining timer is stopped, and another timer sets to time-out the powerup if it is not again picked up. If it is picked up, the main timer is resumed. Here is an example which resets the mesh to the start material when the UDamage times out, no matter the circumstances:
                        http://www.filefront.com/14161395/DM...mestrigger.ut3
                        It also changes the material when the Udamage is dropped. This sequence/method works well for a singular UDamage. Additional measures would have to be taken for mods/maps wherein multiple UDamage exist simultaneously.

                        Comment


                          #13
                          Great stuff, thanks Narayana/Rumple.

                          Just wondering if you know how I could do a similar thing that changes the material after a killing spree too?

                          Comment


                            #14
                            I'm using the 'see death' event, with an int counter but it doesnt seem to be yielding any results.

                            Comment


                              #15
                              See death refers to a scripted action of actually seeing the death I believe...I'd suspect there's a command for killing spree itself, or you could have it constantly run a check that compares kills to the Spree amount as an int, and checks again whether or not you've died in between...resetting the counter if you do

                              Comment

                              Working...
                              X