Results 1 to 18 of 18
  1. #1
    MSgt. Shooter Person
    Join Date
    Jan 2008
    Location
    Cambridge, UK
    Posts
    108

    Default 'bPlayerOnly' not working - bots can activate trigger volumes

    as the title suggests, the 'bPlayerOnly' tick box isnt working on trigger volumes or triggers either, and bots can activate my trigger volumes.

    How do you stop bots activating your 'Touched' trigger volumes?

    cheers

  2. #2
    MSgt. Shooter Person
    Join Date
    Jul 2008
    Location
    Denmark
    Posts
    259

    Default

    I cant get that working either

  3. #3
    Technical Writer - UDN
    Join Date
    Aug 2006
    Posts
    3,857
    Gamer IDs

    Gamertag: ffejnosliw

    Default

    I don't believe bPlayerOnly means exactly what you think it does. I think it just means that objects like KActors or movers cannot activate the event. I would probably connect an empty Object variable to the Instigator link of the event and do a comparison between that variable and a Player variable. If it is true, then you have a player controlled character. If not, it is a bot.

  4. #4
    MSgt. Shooter Person
    Join Date
    Jul 2008
    Location
    Denmark
    Posts
    259

    Default

    Of course! And it works thanks

  5. #5
    MSgt. Shooter Person
    Join Date
    Jan 2008
    Location
    Cambridge, UK
    Posts
    108

    Default

    How do you set this up? With an If Compare and link A to the instigator and B to player variable? Got any screenshots of the kismet mQe or ffejnosliw? Cheers by the way, this has been bugging me for ages!

  6. #6
    MSgt. Shooter Person
    Join Date
    Jul 2008
    Location
    Denmark
    Posts
    259

    Default


  7. #7
    MSgt. Shooter Person
    Join Date
    Jan 2008
    Location
    Cambridge, UK
    Posts
    108

    Default

    mQe and ffejnosliw you guys are legends! Its works a treat! That is so good! nice one! And whats more, Ive figured something else out from this, I have a barrel on fir ein my map and I want it to set oil on fire if it rolls over it, and so if you do the same setup but with checking for the Kactor not the player, it will trigger the event. HOWEVER, you have to make sure in the trigger_touch the classProximityTypes is set to KActor not Pawn, otherwise it wont be checking for Kactors.

    cheers guys, nice one for the screen shot too mQe

  8. #8
    MSgt. Shooter Person
    Join Date
    Jan 2008
    Location
    Cambridge, UK
    Posts
    108

    Default

    actually no wait! Ive found a problem! The player check works great until the player dies, and then the trigger no longer recognises you as the player? It must give an incremented variable name or something each time the player respawns, how can I get it to recognise ANY player, regardless of how often they have died?

  9. #9
    MSgt. Shooter Person
    Join Date
    May 2008
    Location
    Omicron Six
    Posts
    159

    Default

    Correct me if I am wrong, but isn't it that mQe sequence just checks that actor is a 'Player 0' (player with index 0) and not just any player?
    Won't it crush after respawn or when several (real) players are on the level?

    Are you making a multi-player or a single-player map?

  10. #10
    Technical Writer - UDN
    Join Date
    Aug 2006
    Posts
    3,857
    Gamer IDs

    Gamertag: ffejnosliw

    Default

    I would try it without unchecking bAllPlayers on the Player variable if that's not how you were already doing it. I don't know if that will fix it or not, though.

  11. #11
    MSgt. Shooter Person
    Join Date
    Jan 2008
    Location
    Cambridge, UK
    Posts
    108

    Default

    Ive half found the answer, if you make the variable PlayerIdx a number then which ever number you make it the spawned player will be counted, so player 0 wil be the first time, player 1 is what your called if you die once and spawn again. Is there a way though to do it without having to make 100 different playert variables connected? As having Player with AllPlayers ticked doesnt work for just the player controlled character.

  12. #12
    Technical Writer - UDN
    Join Date
    Aug 2006
    Posts
    3,857
    Gamer IDs

    Gamertag: ffejnosliw

    Default

    Ok, here is one way I think will work. Add a Condition -> Switch -> Switch Class. Add an Item to the ClassArray. Set the ClassName for the [0] element to UTPlayerController. Connect the Object variable that is the Touch event's instigator to the Object link of the Switch Class. When it is a player, the first output of the Switch Class will fire. When it isn't the second output will fire.

  13. #13
    MSgt. Shooter Person
    Join Date
    Jul 2008
    Location
    Denmark
    Posts
    259

    Default

    Isn't that the same as setting the classProximityClass of the trigger to UTPlayerController?

    I tried doing that, didn't work. Doing it the way you described it didn't seem to work either

  14. #14
    MSgt. Shooter Person
    Join Date
    Jul 2008
    Location
    Denmark
    Posts
    259

    Default

    Actually I don't seem to have the player index increasing problem... Everything seems good here...

  15. #15
    Technical Writer - UDN
    Join Date
    Aug 2006
    Posts
    3,857
    Gamer IDs

    Gamertag: ffejnosliw

    Default

    I forgot that the Touch event outputs the pawn instead of the controller. You can use the Actor -> Object -> Get Property action to get the controller though which would make it work according to my experiment just now.

  16. #16
    MSgt. Shooter Person
    Join Date
    Oct 2006
    Posts
    158

    Default

    Ok that last one lost me totally. How does that tie in with your previous posts or is this a new thing? I am following this thread to try to do something similar. What I want to do is set a variable when a player (or bot) jumps through a window and then that variable becomes the target for take damage. Right now I have it all set up so that when a player jumps through the window he takes some minor damage. However, all players take that damage not just the one that goes through the window. I go from the touch action to the set variable action. I have the set variable target set up as a player variable. Then I have that player variable tied to the cause damage. Doesn't seem to work though. Am I over simplifying things? I am new to this kismet stuff but it seems like once touched the set object variable should be set to the player that did the touching then as the target of the cause damage that player and that player only should take the damage.

  17. #17
    Technical Writer - UDN
    Join Date
    Aug 2006
    Posts
    3,857
    Gamer IDs

    Gamertag: ffejnosliw

    Default

    Quote Originally Posted by xfuture View Post
    Ok that last one lost me totally. How does that tie in with your previous posts or is this a new thing? I am following this thread to try to do something similar. What I want to do is set a variable when a player (or bot) jumps through a window and then that variable becomes the target for take damage. Right now I have it all set up so that when a player jumps through the window he takes some minor damage. However, all players take that damage not just the one that goes through the window. I go from the touch action to the set variable action. I have the set variable target set up as a player variable. Then I have that player variable tied to the cause damage. Doesn't seem to work though. Am I over simplifying things? I am new to this kismet stuff but it seems like once touched the set object variable should be set to the player that did the touching then as the target of the cause damage that player and that player only should take the damage.
    You probably should have posted this in a new thread since it isn't really what was being discussed here. It sounds like all you need to do is link an empty Object variable to the Instigator of the Touch Event and the Target of the Cause Damage action. The Instigator link will output the actor that triggered the Touch event so you can use it with the Cause Damage action.

  18. #18
    MSgt. Shooter Person
    Join Date
    Oct 2006
    Posts
    158

    Default

    Quote Originally Posted by ffejnosliw View Post
    You probably should have posted this in a new thread since it isn't really what was being discussed here. It sounds like all you need to do is link an empty Object variable to the Instigator of the Touch Event and the Target of the Cause Damage action. The Instigator link will output the actor that triggered the Touch event so you can use it with the Cause Damage action.

    You are right. I was going to post new but thought maybe this thread was close enough to my issue. Sorry about that. Also I tried your suggestion and it appears to work. I am going through the testing right now. Thanks for the assist and sorry for jumping the topic.


 

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright ©2009-2011 Epic Games, Inc. All Rights Reserved.
Digital Point modules: Sphinx-based search vBulletin skin by CompletevB.com.