GoldenEye: Source Forums

  • November 25, 2024, 12:05:00 pm
  • Welcome, Guest
Advanced search  

News:

Pages: 1 [2]  All   Go Down

Author Topic: GoldenEye:Source and Perfect Dark:Source on same code base.  (Read 26006 times)

0 Members and 1 Guest are viewing this topic.

kraid

  • Game Artist
  • 007
  • *****
  • Posts: 1,984
  • Reputation Power: 191
  • kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!kraid is awe-inspiring!
  • Offline Offline
    • my Homepage
Re: GoldenEye:Source and Perfect Dark:Source on same code base.
« Reply #15 on: May 16, 2015, 07:46:33 pm »

I don't think porting of maps compiled for a newer engine version will work unless you recompile them from vmfs in the old engine version.
Upgrading old maps to newer engine versions is easier by far.
Logged

illwieckz

  • Agent
  • *
  • Posts: 37
  • Reputation Power: 0
  • illwieckz is looked down upon.
  • Offline Offline
    • gg.illwieckz.net
Re: GoldenEye:Source and Perfect Dark:Source on same code base.
« Reply #16 on: May 17, 2015, 02:53:50 pm »

Hi, thank you for your answer. Too bad if it's not easy, the format is that different between 2006 and 2007 sdk?

I admit I don't know yet the source bsp format (I'm more used to manipulate idtech derivatives). But it's not a priority to port map, my priority is to have a functionnal server.

I finally managed to start srcds.exe in console mode using wine, it still needs an headless X11 server but it does not need to script the gui handling, so the server starts faster.

Unfortunately I face an annoying problem : the server shutdowns itself automatically exactly 20 minutes after the first player join.

The server can wait indefinitely the first player, but as soon as at least one player joins the server, there is an invisible time bomb triggered, even if the players quit or not, whatever the map played. I noticed it happens only when mp_timelimit is set, and whatever the timelimit value, for example with a 20min timelimit, the server will end at the game end, with 10min timelimit, the server will end at the second game end. With 1min timelimit, 20 game will run before the server shutdowns.

To workaround that I'm trying to externalize the maprotation logic like that:

Code: [Select]
for map in complex felicity ravine villa
do
rcon say current game ends in 15min, next level is $map
sleep 10m
rcon say current game ends in 5min, next level is $map
sleep 4m
rcon say current game ends in 1min, next level is $map
sleep 1m
rcon end_game
sleep 30s
rcon changelevel $map
done

But I don't found the command to end the game (the end_game placeholder in my code above), is there a server command to force the end of the game ?
« Last Edit: May 17, 2015, 08:04:37 pm by illwieckz »
Logged

illwieckz

  • Agent
  • *
  • Posts: 37
  • Reputation Power: 0
  • illwieckz is looked down upon.
  • Offline Offline
    • gg.illwieckz.net
Re: GoldenEye:Source and Perfect Dark:Source on same code base.
« Reply #17 on: May 18, 2015, 10:28:20 am »

I answer to myself, cvarlist gives me 1159 commands but no one triggers the end of the game, so I set a negative score/fraglimit to trigger it (then restore them to 0 right after that to disable the score/fraglimit for the next game).

I do something like that and it works well:

Code: [Select]
while true
do
rcon "say welcome to gg.illwieckz.net { le frag courtois }"
rcon "say game will end in 15 minutes"
sleep 10m
rcon "say game will end in 5 minutes"
sleep 4m
rcon "say game will end in 1 minutes"
sleep 50s
rcon "say game will end in 10 seconds"
sleep 10s
rcon "say 5…"
sleep 1s
rcon "say 5, 4…"
sleep 1s
rcon "say 5, 4, 3…"
sleep 1s
rcon "say 5, 4, 3, 2…"
sleep 1s
rcon "say 5, 4, 3, 2, 1…"
sleep 1s
rcon "say game over"
rcon "mp_fraglimit -100"
rcon "mp_scorelimit -100"
rcon "mp_fraglimit 0"
rcon "mp_scorelimit 0"
sleep 1m
# let the next level loads
done

Currently it's a script loaded externally on the server (using shell script and rcon), but perhaps the same behavior can be achieved ingame using wait commands if there is a way to exec a script at map load.

Setting frag/scorelimit to 1 means a single player alone without point does not trigger the end of the game, setting frag/scorelimit to negative value means even a single player alone without point triggers the end of the game (and I put -100 to be sure a the player have more than -100 even with a suicide). At the end I sleep 1 minute to let the mp_chattime runs (30 seconds here) and wait 30 seconds more to let the server reload the map, so my 15 minute countdown start approximatively some seconds after the next level load. Since the end of the game is triggered by a score/fraglimit, the map rotation is done by the engine itself.

For information with timelimit, the server shutdown/freeze happens after 20 min with these messages:

Code: [Select]
utlrbtree.h (514) : Assertion Failed: i != InvalidIndex()
utlrbtree.h (767) : Assertion Failed: IsValid()
utlrbtree.h (767) : Assertion Failed: IsValid()
utlrbtree.h (767) : Assertion Failed: IsValid()

utlrbtree.h is a file from the source sdk but the bug seems to be in the mod itself.

Without timelimit, these messages prints after 20 min (and never ends to print, so if you log them and don't filter them, you will fill some gigabytes in some minutes) but the server never shutdown or freeze.

So I have now a pdark source server running with a functionnal timelimit rotation map. There is plenty of ugly workarounds, but it works. :-)
« Last Edit: May 18, 2015, 10:31:05 am by illwieckz »
Logged
Pages: 1 [2]  All   Go Up