What ever happened to BUS/Nexus?

napinapi Members, Constellation Join Date: 2003-03-01 Member: 14172Posts: 962
Hallo all,

I've not been active in NS for.. umm... nigh on 3 years now!

Found my way back into the IRC room a few days ago and figured I'd see if the old account is still up! And it is - although without the PT status. Boo

Anyhoo, I was wondering; did anything ever get announced about BUS/Nexus in the last 3 years? One of lifes biggest mysteries to me that thing was...
user posted imageuser posted image ... EUPT

the rookie formally known as shanks


  • CommunistWithAGunCommunistWithAGun Local Propaganda Guy Members Join Date: 2003-04-30 Member: 15953Posts: 7,651 Advanced user
    i think it got canned when the site got "hacked"
    user posted image

  • NEX9NEX9 Members Join Date: 2005-03-08 Member: 44299Posts: 1,642
    Hum lucky this is a serious thread, or i would of just said "Oh NO you just didnt, MENTION TEH BUS!!!!11!!!!.

    Read all the blogs and listen to the pod casts, then come back and ask if its important, or if its just sort of blured the lines and became dynamic enviroments.
    Stop by see some of my latest works in maya, ill even evently host my WIP's and old old works.
    search under digital art works
  • tallmidget22tallmidget22 Members Join Date: 2007-02-03 Member: 59859Posts: 51
    We never found out what the BUS was, but I am curious about Nexus myself.
    Freedom means learning to deal with being offended!

    Love Sudoku? Try Zen of Sudoku.
  • MuckyMcFlyMuckyMcFly Members, Reinforced - Supporter, Reinforced - Shadow Join Date: 2012-03-19 Member: 148982Posts: 616 Fully active user
    bump :(|)

    [Cult]MartyMcFly - Yo!Clan Regular - Player of Real-Lifeâ„¢
  • GISPGISP Battle Gorge DenmarkMembers, Playtest Lead, Forum Moderators, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, NS2 Map Tester, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester, Forum staff Join Date: 2004-03-20 Member: 27460Posts: 1,232 mod
    What are you guys talking about?
    Forum Mod - UWE server admin - Have questions about SN or NS2? Need help promoting SN or NS2? Found a bug, or exploit? Or just want to say hi. PM me.
    Become a NS2 Playtester - Become a SN playtester - Buy NS2 here - Buy SN here - Official NS2 stream - SN Wiki
    - NS2 Wiki A Rainbow!
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The NetherlandsMembers, NS2 Playtester, Squad Five Blue Join Date: 2003-05-13 Member: 16271Posts: 15,782 Advanced user
    edited January 2014
    GISP wrote: »
    What are you guys talking about?
    The Big Unannounced System, apparently ns_ayumi's secret room wants a word with us... Something about cats and busses and no @GISP I don't care if this adds even more confusion or fuel for the oldchool conspiracies :-\"

    Also unholy thread necromancers are still walking among us!

    Guardian of the "magic cookiejar" 

    Retired forum Admin, I mostly used a flamethrower tank for disputes... Mostly

    Retired EUPT Deputy | Moral Support | Squad 5 Blue | 102 1HP Skulk escapes and counting

  • Soylent_greenSoylent_green Members, Reinforced - Shadow Join Date: 2002-12-20 Member: 11220Posts: 2,874 Advanced user
    edited May 2014
    In the released source code there are remnants of something called nexus, I don't know if this is the BUS, but it might be. I haven't dug too deep in the .cpp files, but it just looks like boiler-plate code for starting up, shutting down, sending, recieving, logging in and out and so forth; the actual code that generates and consumes the messages has been ripped out, with only a few commented out references left, so you can only guess what it might have done.

    Looking at the remnants my best guess is that it was supposed to be something like we have now in NS2, recording stats from games, recording which servers and when games were played, balance teams according to skill etc.

    Not to bore you too much, here are the contents of the .h files. This just tells you what the functions are called and what arguments they take. Looking at the CPP files they seem to be reasonably named and do what it says on the tin.

    Nexus client:
    namespace AvHNexus
    	bool send(const unsigned char* data, const size_t length);
    	bool recv(const unsigned char* data, const size_t length);
    	void startup(void);
    	void shutdown(void);
    	bool login(const string& name, const string& password);
    	bool logout(void);

    Nexus server:
    struct edict_s;
    typedef struct edict_s edict_t;
    struct entvars_s;
    typedef struct entvars_s entvars_t;
    namespace AvHNexus
    	bool send(entvars_t* const pev, const unsigned char* data, const size_t length);
    	bool recv(entvars_t* const pev, const char* data, const size_t length);
    	void handleUnauthorizedJoinTeamAttempt(const edict_t* edict, const unsigned char team_index);
    	string getNetworkID(const edict_t* edict);
    	void performSpeedTest(void);
    	void processResponses(void);
    	void setGeneratePerformanceData(const edict_t* edict, const bool generate);
    	bool getGeneratePerformanceData(void);
    	bool isRecordingGame(void);
    	void startGame(void);
    	void cancelGame(void);
    	void finishGame(void);
    	void startup(void);
    	void shutdown(void);

    Nexus tunnel to client:
    struct entvars_s;
    typedef struct entvars_s entvars_t;
    #include <queue>
    namespace AvHNexus
    	class TunnelToClient : public Nexus::TunnelToClient
    		static TunnelToClient* getInstance(void);
    		virtual ~TunnelToClient(void);
    		virtual Nexus::TunnelToClient* clone(void) const; //necessary so that we don't "slice" on copy
    		virtual const Nexus::ClientID	poll(void) const;  //returns next local ClientID to recv or 0 if none available
    		virtual bool			send(const Nexus::ClientID local_id, const byte_string& data);
    		virtual bool			recv(const Nexus::ClientID local_id, byte_string& data);
    		virtual bool insertMessage(const Nexus::ClientID local_id, const byte_string& message); //inserted into queue of messages from clients
    		std::deque<std::pair<const Nexus::ClientID,const byte_string> > messages;

    Nexus tunnel to server:
    #include <queue>
    namespace AvHNexus
    	class TunnelToServer : public Nexus::TunnelToServer
    		static TunnelToServer* getInstance(void);
    		virtual ~TunnelToServer(void);
    		virtual Nexus::TunnelToServer* clone(void) const;
    		virtual bool send(const byte_string& data);
    		virtual bool recv(byte_string& data);
    		virtual bool insertMessage(const byte_string& message);	//inserted into queue of messages from server
    		std::deque<const byte_string> messages;

    In a few different places you can see commented out references to nexus:
    In AvHConsoleCommands.cpp, in function BOOL AvHGamerules::ClientCommand( CBasePlayer *pPlayer, const char *pcmd ).

    This function handles console commands on the server, like a player attempting to join team one or two (or three or four...).
    //adding Nexus TunnelToClient functionality up here...
    //	if( strcmp( pcmd, "NexusData" ) == 0 )
    //	{
    //		const char* arg1 = CMD_ARGV(1);
    //		return AvHNexus::recv(pPlayer->pev,arg1,strlen(arg1));
    //	}
    //non-Nexus signal handler down here...

    AvHNetworkMessages.cpp, in void Net_InitializeMessages(void), on the server, it registers a message and recieves an integer code used when transmitting or receiving that message:
    g_msgNexusBytes = REG_USER_MSG( "NexusBytes", -1 );

    In AvHPlayer.cpp
    // Nexus interface
    //TODO: flesh this out with admin privileges, etc. once the UPP authorization interface has been expanded
    bool AvHPlayer::GetIsAuthorized(AvHAuthAction inAction, int inParameter) const
    	switch( inAction )
    			AvHTeamNumber theTeam = (AvHTeamNumber)inParameter;
    			switch( theTeam )
    			case TEAM_IND:			// ready room & spectator - game allows in all cases
    			case TEAM_SPECT:
    				return true;
    				// check it's an active team
    				if( theTeam == GetGameRules()->GetTeamA()->GetTeamNumber() || theTeam == GetGameRules()->GetTeamB()->GetTeamNumber() )
    					// tankefugl: 0001042 -- allow switching of teams -- placeholder before Nexus
    					// if( GetGameRules()->GetCheatsEnabled() ) { return true; }	// cheaters can switch
    					// if( !GetGameRules()->GetGameStarted() ) { return true; }	// can switch teams before start
    					// if( this->GetHasBeenSpectator() ) { return false; }			// spectators have seen everybody
    					// for(int counter = TEAM_ACTIVE_BEGIN; counter < TEAM_ACTIVE_END; counter++)
    					// {
    					//		if( theTeam != counter && this->GetHasSeenTeam( (AvHTeamNumber)counter ) )
    					//		{ return false; }  // we've seen another active team
    					// }
    					return true;	// haven't seen another team, authorized to join
    				return false;		// unknown/inactive team - never grant an unknown permission!
    			return false;
    			return this->GetIsMember(PLAYERAUTH_DEVELOPER);
    			return false;			// never grant an unknown permission!
Sign In or Register to comment.