GoldenEye: Source Forums

  • November 21, 2024, 11:25:49 am
  • Welcome, Guest
Advanced search  

News:

Pages: [1] 2 3 4   Go Down

Author Topic: New mode  (Read 41618 times)

0 Members and 1 Guest are viewing this topic.

John Doom

  • Agent
  • *
  • Posts: 18
  • Reputation Power: 2
  • John Doom has no influence.
  • Offline Offline
New mode
« on: August 09, 2018, 05:00:52 pm »

UPDATE:
Check the attachment for the current build :)

ORIGINAL POST:
:) Hello, there, I'm new to this forum!

I programmed a new mode and I was wondering if you're interested in adding it to Goldeneye Source. The idea was to recreate a typical 007 mission:
-one player is randomly selected to be an MI6 agent, the others are put in the Janus Team;
-the MI6 agent has to collect 5 tokens on a time limit to win, the others have to kill him;
-the MI6 agent starts with a silenced gun and the armor, the others start with a rifle;
-the MI6 agent can't respawn, but the others deal much less damage, depending on their number.
I didn't choose its name yet. Maybe "00 Agent"? Here's a preview from the MI6 side:

That said, I could only test it using bots, so it may need additional work to find the right balance. There are also a few things I'd like you to implement or teach me how to implement:
-how to disable team selection so I can force a player to a specific team? Right now I implemented a custom solution which works, but it's not ideal;
-how to get if a player hit (not killed) another one? I need it to register who hit the MI6 agent and survived when he died, so I can reward him with one more point;
-how to force the radar off? I tried using SetForceRadar(False), but it doesn't seem to make any difference;
-how to prevent equipping (not picking up) a token? It's not only useless, but it uses a glitchy hand texture;
-how to prevent picking up specific characters? I used "SetExcludedCharacters("boris,female_scientist,jaws,mayday,mishkin,oddjob,ourumov,baron_samedi,valentin")", but some of them, like samedi, still show up;
-how to destroy tokens, rather than picking them up? This one's not actually necessary, but I think it would be a nice addition :D
« Last Edit: September 02, 2018, 11:50:37 am by John Doom »
Logged

Shemp Howard

  • it's Shemp!
  • Agent
  • *
  • Posts: 13
  • Reputation Power: 39
  • Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.
  • Offline Offline
    • Twitch and youtube
Re: New mode
« Reply #1 on: August 10, 2018, 12:16:52 am »

this looks cool as hell. We'd gladly help test it!
Logged
eebeebeebee

GroundhogMoka

  • WolveZ
  • 00 Newbie
  • Posts: 1
  • Reputation Power: 0
  • GroundhogMoka has no influence.
  • Offline Offline
    • Twitch
Re: New mode
« Reply #2 on: August 10, 2018, 12:48:04 am »

Looks cool. Will have to test this at some point.
Logged
Member of the WolveZ Clan!

Entropy-Soldier

  • Managing Director
  • 00 Agent
  • ***
  • Posts: 506
  • Reputation Power: 372
  • Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!
  • Offline Offline
Re: New mode
« Reply #3 on: August 10, 2018, 01:28:36 am »

Neat mode!  These days we're trying to keep the official modes rather straightforward and simple, so a fancy mode like this doesn't quite fit in our schema.  However, I'm sure there are a large number of community server owners who would love a mode like this, so releasing it as community content when it's done would no doubt get it lots of attention.

Also, if you've got any interest in level design it feels like this mode would really benefit from some custom maps geared around it.  Would perhaps need to be a bit grander in scale but would certainly enhance that single player experience you're going for.


Anyway, as for your questions:

-how to disable team selection so I can force a player to a specific team? Right now I implemented a custom solution which works, but it's not ideal;

Hate to say it but this just isn't supported yet, I'll add it to 5.1's todo list.


-how to get if a player hit (not killed) another one? I need it to register who hit the MI6 agent and survived when he died, so I can reward him with one more point;

Code: [Select]
    def CalculateCustomDamage( self, victim, info, health, armour ):
        if victim == None:
            return health, armour
        killer = GEPlayer.ToMPPlayer( info.GetAttacker() )

        # Do stuff with killer/victim here.
        # Be sure to return health, armour or modified values for them as this callback overrides the damage dealt
        # by every damage event.


-how to force the radar off? I tried using SetForceRadar(False), but it doesn't seem to make any difference;

        Right now this is just done via the gameplay's config file, which is a file in the cfg directory called [name of gameplay].cfg

        Copy ltk's or put "ge_allowradar 0" inside this file.


-how to prevent equipping (not picking up) a token? It's not only useless, but it uses a glitchy hand texture;

It's been a little while but I think if you pass team=Glb.TEAM_OBS as an argument to the token setup function it will register that only observers can pick it up.  Generally though for objectives that aren't meant to be actually held by anyone, Capture Points are used.  Check out modes like Uplink and Die Another Day for examples on how to use capture points in this fashion.  You can spawn capture points on specific dying players, if you want them to "carry" the objective without actually having a token.


-how to prevent picking up specific characters? I used "SetExcludedCharacters("boris,female_scientist,jaws,mayday,mishkin,oddjob,ourumov,baron_samedi,valentin")", but some of them, like samedi, still show up;

This command wasn't originally meant to exclude so many characters, and sadly as a result is limited in how many it can block off.  5.1 will make it more flexible, and probably also include a way to just skip the character selection menu for modes where only one character is allowed for a given player.  For now though you'll probably just have to let people pick their characters and reassign them if necessary.


-how to destroy tokens, rather than picking them up? This one's not actually necessary, but I think it would be a nice addition :D

Calling
Code: [Select]
GERules.GetTokenMgr().RemoveTokenEnt( token, False )
and then decreasing the desired count of that token type should do the trick.



Regardless, your mode is looking pretty interesting so far and I'm excited to see where you take it!  Good work so far and let me know if you have any other questions.  Also, feel free to use the community discord server if the response times around here aren't the best.  We've mostly migrated to that platform but keep the forums around for things like announcements and community releases.
Logged
"By reading this, you’ve done more than you can imagine." - Adrian

John Doom

  • Agent
  • *
  • Posts: 18
  • Reputation Power: 2
  • John Doom has no influence.
  • Offline Offline
Re: New mode
« Reply #4 on: August 10, 2018, 10:43:00 am »

:) Thanks for your support, guys. I'm going to put the finishing touches on this mode, then I'll release it.
btw, I was wondering if modes are only needed on the server side, since I found it takes editing some of the original files to add a new mode.
Just one more thing: is there a way to know if a token has been hit? So I can later "destroy" it as you suggested :D

UPDATE:
New video:
:) I'm ready to release a test build. It's still W.I.P., so can I make another topic in "Community Releases" and release it or do I have to wait for the final build, before?
« Last Edit: August 10, 2018, 05:14:53 pm by John Doom »
Logged

Entropy-Soldier

  • Managing Director
  • 00 Agent
  • ***
  • Posts: 506
  • Reputation Power: 372
  • Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!
  • Offline Offline
Re: New mode
« Reply #5 on: August 10, 2018, 06:53:45 pm »

If you assign the token to a team other than the one the destroying player is on, you should be able to use this callback to detect touches:
   
Code: [Select]
def OnEnemyTokenTouched( self, token, player ):


Otherwise I think

Code: [Select]
def CanPlayerHaveItem( self, player, item ):

can block token pickups if you check and see if the name of the item is "weapon_token", delete it, and return false.



Anyway, gamemodes are indeed entirely server side, with the exception of text localization.  Sadly custom gamemodes need to hardcode their strings in one language or use already existing ones in the localization files but outside of this they should be entirely self contained.  Just post the gamemode's .py file and any custom AI files and that should be all you need.

As for posting the WIP version, I went ahead and moved this topic to the "Community Content" section, which is for discussing WIP content, so feel free to just post it here.  "Community Releases" is for the final release of a given piece of content, so be sure to make a new topic there when you feel the first version of the mode is finished.  I'm looking forward to playing this!
Logged
"By reading this, you’ve done more than you can imagine." - Adrian

John Doom

  • Agent
  • *
  • Posts: 18
  • Reputation Power: 2
  • John Doom has no influence.
  • Offline Offline
Re: New mode
« Reply #6 on: August 10, 2018, 09:29:42 pm »

:) Thanks for moving the topic.

I mean actually getting if the token has been shot, not touched. Is it currently possible? Possibly also using some kind of health system, so that it takes more than one shot or an explosion to be destroyed.

I updated my first post with a testing build. Let me know what you think, guys :)
Logged

Entropy-Soldier

  • Managing Director
  • 00 Agent
  • ***
  • Posts: 506
  • Reputation Power: 372
  • Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!Entropy-Soldier is awe-inspiring!
  • Offline Offline
Re: New mode
« Reply #7 on: August 11, 2018, 01:43:31 am »

Ah, sorry, I misread that.

Sadly at the moment tokens only support touch interactions with players, so there's no real way to tell if they've been shot. 


Regardless, I'll stick the mode on my server and hopefully get a chance to play it tomorrow!
Logged
"By reading this, you’ve done more than you can imagine." - Adrian

John Doom

  • Agent
  • *
  • Posts: 18
  • Reputation Power: 2
  • John Doom has no influence.
  • Offline Offline
Re: New mode
« Reply #8 on: August 11, 2018, 10:14:52 am »

:) Thanks for your support. btw if it's a public server, let me know its name, I might join your game.
Logged

papel

  • Agent
  • *
  • Posts: 38
  • Reputation Power: 4
  • papel has no influence.
  • Offline Offline
Re: New mode
« Reply #9 on: August 11, 2018, 10:52:50 am »

I liked it, Congratulations John Doom and thanks for sharing.
Edit: I already downloaded it ... I'll test it now!
« Last Edit: August 11, 2018, 12:37:48 pm by papel »
Logged

papel

  • Agent
  • *
  • Posts: 38
  • Reputation Power: 4
  • papel has no influence.
  • Offline Offline
Re: New mode
« Reply #10 on: August 11, 2018, 01:04:08 pm »

John, I just tested and would like to request a change ... just like in uplink mode where it is not possible to start with at least two players, just allow tokens to appear with at least two players on the map. ;D
Logged

papel

  • Agent
  • *
  • Posts: 38
  • Reputation Power: 4
  • papel has no influence.
  • Offline Offline
Re: New mode
« Reply #11 on: August 11, 2018, 07:11:48 pm »

It did not work ... :( I tested it on the server and the only player that enters is the mi6. The players of the red team can not enter.
Logged

John Doom

  • Agent
  • *
  • Posts: 18
  • Reputation Power: 2
  • John Doom has no influence.
  • Offline Offline
Re: New mode
« Reply #12 on: August 11, 2018, 11:43:48 pm »

Thanks for testing, papel. I'm sorry it didn't work, I'll look into.

UPDATE:
I updated the attachment. I fixed a few things and hopefully it will work now, but I really can't tell: this is the kind of things I can't test just using bots. I'll have to to look for ways to run multiple instances :\
« Last Edit: August 12, 2018, 12:28:51 am by John Doom »
Logged

papel

  • Agent
  • *
  • Posts: 38
  • Reputation Power: 4
  • papel has no influence.
  • Offline Offline
Re: New mode
« Reply #13 on: August 12, 2018, 01:48:19 am »

Yes, it worked !!! ;D ;D

However, tokens are always appearing in the same location as the map. Could you make them change? You can use uplink mode as an example.
Another important detail is not to show the tokens as long as you have only 1 player.
I'll keep testing.

Thank you!!
Logged

Shemp Howard

  • it's Shemp!
  • Agent
  • *
  • Posts: 13
  • Reputation Power: 39
  • Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.Shemp Howard has a powerful will.
  • Offline Offline
    • Twitch and youtube
Re: New mode
« Reply #14 on: August 12, 2018, 05:38:40 am »

this game mode.. omg... its sooo fucking good.... you sir are a god! its a very good refresher for the community indeed! very unique! adding this to my server as well! cheers and very very great job!
Logged
eebeebeebee
Pages: [1] 2 3 4   Go Up