Author Topic: Seamless servers  (Read 9844 times)

0 Members and 1 Guest are viewing this topic.

Offline Michal Marcinkowski

  • Creator of Soldat
  • Flagrunner
  • ******
  • Posts: 808
  • I ain't got time to bleed.
    • Soldat home page
Seamless servers
« on: August 12, 2007, 01:07:41 pm »
In version 1.4.2 there is an ability to switch a player in the game to another server. When you use this function the client will disconnect and will have a message box appear to agree or not to go to another server. This idea has been discussed by me on my blog here.

Script function:

Code: [Select]
procedure ForwardClient(SrcIP: String;SrcPort: Integer; TargetIP: String;TargetPort: Integer);
I think that explains everything. You can use it however you want to.

Offline Leo

  • Soldat Beta Team
  • Veteran
  • ******
  • Posts: 1011
Re: Seamless servers
« Reply #1 on: August 12, 2007, 01:22:58 pm »
This fucking rocks! Thanks Michal :)

Offline mar77a

  • Global Moderator
  • Veteran
  • *****
  • Posts: 1295
  • mad
    • random stuffs
Re: Seamless servers
« Reply #2 on: August 12, 2007, 01:24:39 pm »
Now hexer can turn into the first soldat MMPFOMRFRMTG (<- yeah) called Soldatscape!

Offline Ride

  • Soldier
  • **
  • Posts: 199
    • NA Soldat Clan Website
Re: Seamless servers
« Reply #3 on: August 12, 2007, 01:49:26 pm »
Cool Idea, Are there any servers now running something like this yet?
Ingame Name: TC ~ Ryde.Lf ~
Past Clans: ^Re/ ~ -eO:

Offline Leo

  • Soldat Beta Team
  • Veteran
  • ******
  • Posts: 1011
Re: Seamless servers
« Reply #4 on: August 12, 2007, 01:50:04 pm »
The only "down point", if you can call it like this, is that it needs special maps with "exits" to other servers.  :-\

Offline blackdevil0742

  • Veteran
  • *****
  • Posts: 1061
  • Don't Panic
Re: Seamless servers
« Reply #5 on: August 12, 2007, 02:24:10 pm »
This sounds incredible and awsome. Now someone needs to use :)

OBEY!!!

Offline .::Blaze::.

  • Camper
  • ***
  • Posts: 430
  • `LMS|Blaze^
Re: Seamless servers
« Reply #6 on: August 12, 2007, 02:39:53 pm »
yea pretty tight [: it will help out
hey little kid you want some candy, "yes". GET IN THE VAN!

Offline Michal Marcinkowski

  • Creator of Soldat
  • Flagrunner
  • ******
  • Posts: 808
  • I ain't got time to bleed.
    • Soldat home page
Re: Seamless servers
« Reply #7 on: August 12, 2007, 05:23:41 pm »
The only "down point", if you can call it like this, is that it needs special maps with "exits" to other servers.  :-\

Isn't there an event fired if a player goes out of bounds?
But this can be triggered by really anything. It's up to you when the player is transferred, he doesn't have to enter an "exit".
In Hexer mod you can be transferred to another server if you reach a certain level for example.
...shit I forgot to add a password to the forward function. Hmm ll think about it later.
« Last Edit: August 12, 2007, 05:25:58 pm by Michal Marcinkowski »

Offline DePhille

  • Flagrunner
  • ****
  • Posts: 623
  • SoldatPage Webmaster
    • SoldatPage
Re: Seamless servers
« Reply #8 on: August 12, 2007, 05:26:42 pm »
Yes but then the player respawns in another map.
That means he has to pick his weapon again, build up speed etc, so he'll notice the change. You could try to take some of these effects away by building a socket connection between the two servers using the Scripting features for the Dedicated Server however.
I'm very curious to see the first server using this!

Grtz, DePhille
This signature was broken. Feel free to fix it.

Offline mikembm

  • Soldier
  • **
  • Posts: 210
Re: Seamless servers
« Reply #9 on: August 12, 2007, 06:45:42 pm »
This could be cool for maps with buildings - have a separate sever running a map with the inside of that building.
Just an idea :D

Offline Avarax

  • Veteran
  • *****
  • Posts: 1529
    • Official Hexer & MMod site
Re: Seamless servers
« Reply #10 on: August 12, 2007, 06:47:32 pm »
well i might use it for servers with different level maxima and minima, like michal said
I like to have one Martini
Two at the very most
Three I'm under the table
Four I'm under the host

Offline mikembm

  • Soldier
  • **
  • Posts: 210
Re: Seamless servers
« Reply #11 on: August 12, 2007, 06:59:06 pm »
I am curious as to whether the new server knows that the client has been forwarded to it. Maybe that's why source IP and port are needed?
And if that's the case then how? Seems like there should of been a new procedure called onClientForward(SrcIP: String; SrcPort: Integer);

Offline xReaperx

  • Major(1)
  • Posts: 45
Re: Seamless servers
« Reply #12 on: August 13, 2007, 05:13:27 am »
Can someone post a quick example, i'm real crappy at this stuff :(.

Offline DorkeyDear

  • Veteran
  • *****
  • Posts: 1507
  • I also go by Curt or menturi
Re: Seamless servers
« Reply #13 on: August 13, 2007, 01:36:53 pm »
This can be used for soo many different ways! Thx MM :)

Offline xmRipper

  • Soldat Beta Team
  • Flagrunner
  • ******
  • Posts: 742
    • Personal
Re: Seamless servers
« Reply #14 on: August 13, 2007, 02:30:25 pm »
Quote
procedure ForwardClient(SrcIP: String;SrcPort: Integer; TargetIP: String;TargetPort: Integer);

Wtf?
Co-Founder / CTO @ Macellan
Founder Turkish Soldat Community

Offline mikembm

  • Soldier
  • **
  • Posts: 210
Re: Seamless servers
« Reply #15 on: August 13, 2007, 02:37:12 pm »
Quote
procedure ForwardClient(SrcIP: String;SrcPort: Integer; TargetIP: String;TargetPort: Integer);

Wtf?

It's the port on which they connected - you can see it in arsse when they join the game.
Although I see no way of getting it through scripting...
« Last Edit: August 13, 2007, 02:49:58 pm by mikembm »

Offline urraka

  • Soldat Developer
  • Flagrunner
  • ******
  • Posts: 703
Re: Seamless servers
« Reply #16 on: August 13, 2007, 08:13:01 pm »
Quote
procedure ForwardClient(SrcIP: String;SrcPort: Integer; TargetIP: String;TargetPort: Integer);

Wtf?

It's the port on which they connected - you can see it in arsse when they join the game.
Although I see no way of getting it through scripting...

That would make sense... but you can't tell the source port anyway. It really should be
Code: [Select]
procedure ForwardClient(ID: Byte; TargetIP: String; TargetPort: Integer; Password: String);
urraka

Offline DorkeyDear

  • Veteran
  • *****
  • Posts: 1507
  • I also go by Curt or menturi
Re: Seamless servers
« Reply #17 on: August 13, 2007, 08:32:46 pm »
Ohhh password! Definitely needed!
Also, in Soldat.ini...
[NETWORK]
JoinPort=23073

so THIS is the port the player joins on? is this client-side?

Offline mikembm

  • Soldier
  • **
  • Posts: 210
Re: Seamless servers
« Reply #18 on: August 13, 2007, 08:35:34 pm »
Is it possible to have the confirm box appear BEFORE it removes them from the current server?

Offline Michal Marcinkowski

  • Creator of Soldat
  • Flagrunner
  • ******
  • Posts: 808
  • I ain't got time to bleed.
    • Soldat home page
Re: Seamless servers
« Reply #19 on: August 14, 2007, 05:11:45 am »
I don't know why EnEsCe put the port in and how to get it. I guess he'll tell you when he gets back from vacation.

Offline urraka

  • Soldat Developer
  • Flagrunner
  • ******
  • Posts: 703
Re: Seamless servers
« Reply #20 on: August 15, 2007, 11:17:46 am »
Also, in Soldat.ini...
[NETWORK]
JoinPort=23073

so THIS is the port the player joins on? is this client-side?

I think that's the port of the last server you've joined.

I'm kinda sure the port we need is the one showed in the console along with the IP when somebody tries to join a game.
urraka

Offline EnEsCe

  • Retired Soldat Developer
  • Flamebow Warrior
  • ******
  • Posts: 3101
  • http://enesce.com/
    • [eC] Official Website
Re: Seamless servers
« Reply #21 on: August 15, 2007, 10:46:15 pm »
(Still on vacation)

MM you weren't meant to announce it yet... I haven't even documented it in the manual... I didnt want the function announced yet because I was still modifying it.... Ill sort it when I get home.

Date Posted: 16 August 2007, 01:42:04 pm
And SrcPort has to be there for if you use the function in OnRequestGame, since the port the player sends data to you on is usually random unless they have 23073 opened on their router, and its not saved anywhere in the server during the  request game procedure.... So dont bother using this yet untill I have actually added it to the manual, because its going to be changed.

Offline mikembm

  • Soldier
  • **
  • Posts: 210
Re: Seamless servers
« Reply #22 on: August 15, 2007, 11:38:02 pm »
Can I request that the confirmation box appear while they are still connected to the current server instead of making then leave the server and then asking?

Offline Avarax

  • Veteran
  • *****
  • Posts: 1529
    • Official Hexer & MMod site
Re: Seamless servers
« Reply #23 on: August 16, 2007, 03:30:14 am »
+ password plox ;D
I like to have one Martini
Two at the very most
Three I'm under the table
Four I'm under the host

Offline ghg

  • Camper
  • ***
  • Posts: 411
  • Village Idiot
Re: Seamless servers
« Reply #24 on: August 16, 2007, 05:47:50 am »
Is it possible to have the confirm box appear BEFORE it removes them from the current server?
I think either MM or EnEsCe mentioned it asking first.
-=Gradius wuz you=-

Offline extreemer

  • Soldier
  • **
  • Posts: 100
Re: Seamless servers
« Reply #25 on: August 16, 2007, 08:03:00 am »
cool idea and will help out a bid

Offline Kavukamari

  • Camper
  • ***
  • Posts: 435
  • 3.14159265358979, mmm... pi
Re: Seamless servers
« Reply #26 on: October 01, 2007, 07:06:27 pm »
This could be cool for maps with buildings - have a separate sever running a map with the inside of that building.
Just an idea :D

yeah, can be done with scripting (in a way):
Code: [Select]
*blah blah blah*
procedure OnPlayerSpeak(ID:byte;Text:string);
var
  X, Y, DoorX, DoorY: single;
begin
  X:=round(GetPlayerStat(ID,'X'));
  Y:=round(GetPlayerStat(ID,'Y'));
  DoorX:=round(123.456);
  DoorY:=round(654.321);
  if (X > DoorX-50) and (X < DoorX+50)
  and (Y > DoorY-100) and (Y < DoorY+100)
  and (Text = '!enter') then begin
    ForwardClient('123.456.78.90',23074,'123.456.78.90',23075);
  end;
end;
*blah blah blah*

maybe there should be a:
function GetServerStat(IP: string; Port: integer; Stat: string);

so you can check:
Quote from: possible new function
Stats:
Name - string ----- Server name
Map - string ----- Current map playing
connection - integer ----- 0 for LAN, 1 for internet
Players - integer ----- Current players
Maxp - integer ----- max players
Gpass - string ----- Game password, not admin pass
APass - string ----- Returns asterics (*) for each letter in pass, doesn't return actual pass (maybe return pass if safe mode off?)
Passworded - boolean ----- password needed?
ClanMatch - boolean ----- clan match enabled?
Greet1, Greet2, Greet3 - string ----- Greeting messages
Balance - boolean ----- balance teams?
maxvote - single ----- vote percent
minping - integer ----- minimum ping limit
maxping - integer ----- maximum ping limit
Dedicated - boolean ----- Dedicated server?
Lobby - string ----- lobby registered in (ip or http string)
Respawn - single ----- respawn time
bonuses - string ----- bonuses allowed (string in 5 parts (F P B V C) inactive(0) or active(1))
freq - integer ----- bonus frequency (1 to 5)
bots - integer ----- number of bots
FFire - boolean ----- friendly fire?
loop - boolean ----- loop maps?
style - integer ----- game mode (same as const's in default script "core")
weapons - string ----- active weaps (same format as bonuses but 14 parts (DD HK AK SA SZ RG 79 BT MM MG US CK CS 72) 0 or 1)
nades - integer ----- max nades
limit - integer ----- score limit
statgun - boolean ----- stat guns?
RSA - string ----- (same as weaps and bonuses, 3 parts (R S A) 0 or 1)
Aamt - integer ----- Advance mode amount

and anything else you can find server-side in soldat.ini and server.ini
"Be mindful of fame, show a mighty courage, watch against foes. Nor shalt thou lack what thou desirest, if with thy life thou hast comest out from that heroic task."

Offline miketh2005

  • Soldat Beta Team
  • Flagrunner
  • ******
  • Posts: 668
  • What's the URL for www.microsoft.com?
Re: Seamless servers
« Reply #27 on: October 24, 2007, 10:31:14 am »
OMFG! This is cool! Once I get the money I can buy the servers and get someone (Rampage) to make a super uber cool script and I'll have a RPG server!
« Last Edit: October 27, 2008, 02:48:50 am by miketh2005 »
Quote from: 'Ando.' pid='12999178' dateline='1309046898'
My new password is secure as shit :)
Mate, I am not sure Shit is even secured nowadays.