Jump to content

Home

Immature players interfering with servers


DDROM

Recommended Posts

Well it looks Like OJP basic has been running great for the past month or so.

It has been running with the smart botts in and every one that played it liked it..................................................

it may have to go to ja+ or base in stead, which i am reluctant to do, but so far its been the only way to stop hacking. "OpJ E is not a permanant option for me srry just yet , maybe when the mod is finished."

 

Why do you ask, because of an extremley immature player .

This guy was kicked from the server by one of my trusted admins, for spawn laming , followed by generalised bad behaviour, he then hacked the server. banned every one in it.

then bott spams it every time its up, "adds botts untill the server is full,

even setting the botts to 0 dosent stop it. so unless you guys can help me stop him from doing this some how. We lose an OPJ server....

Thanks in advance DD

Link to comment
Share on other sites

Do you have allow download option turned on? I know theres a way you can hack that to get control.

 

It is turned off and the server config is not called server.cfg for obvious reasons. tnks

 

I have spoken to a number of server owners and they have all had trouble with this guy at some stage or other..................

Link to comment
Share on other sites

"OpJ E is not a permanant option for me srry"

 

Thats too bad because lamers usually get owned in 3 seconds in OJP E because their always running, and because they do, they usually either just behave or disconnect. Unless some coders who actually like basic are willing to do more work on it, its probably a finished product with no more admin commands. OJP E MIGHT get one or two more admin commands, we're not sure.

Link to comment
Share on other sites

OJP-E is really not something you would want for siege.

 

FYI, http://www.adminunity.com/ussa/index.php

 

United Siege Server Admins

 

Yes all too true ,as good as OPJ E is its not designed for siege,

"we did try it" but too many times,

time runs out before the objectives can be completed,

because the sabering just takes too long..... and as this is mainly a siege server, OPJ Basic is perfect with its smart botts, also the auto bot control tweaks , such as the ability to leave botts in along with human players. The server company unfortunatley limits us to 3 botts in the server, OJP allows that to be used to full advantage.allowing you to set them to stay until sufficient players join, in fact i set it so at least some botts remain right untill the last slott is needed. Works great .

OPJ basic really is great for siege.

Link to comment
Share on other sites

Any idea how that guy hacked your server? Simply switching to JA+ isn't going to help unless it fixed a particular security hole that we didn't.

 

As for the bot overload, setting bot_minplayers to 0 disables the bot number handling completely. Just reset the bot_minplayers to the correct value, and it should remove all the extra bots over time. If you want them gone faster, use "kick allbots".

 

As for OJP E and siege, I'm sure it could be made to work with some tweaks. Maybe lower DP amounts and regen rates?

Link to comment
Share on other sites

Its really not THAT bad for seige, though the present release for seige definitely needs some work. Its plety playable though. Some of the newer balance experiments that darth and I have been doing have some pretty good potential to help seige alot once we get things better balanced and actually start messing with the seige code itself.

Link to comment
Share on other sites

  • 2 months later...
No you are right ,but mygeeto and some others of SJ culls might be worth a look, Ill ask around some.

Oh, I know. I added Siege bot routing to a few maps, but they never really caught on (or were never completed).

 

It's not hard to add routes to new maps by yourself. There's some documentation in the OJP docs.

Link to comment
Share on other sites

I'm working on getting some script stuff set up now for siege_hoth. As such this is still missing a lot of stuff and some is not even in there that is handled automagically. (Hard coded goals into the bot interface + main bot think/move/attack goals)

 

global Map =
{
WallBreached = false,	// closed
IonControl = true,	// locked
BridgeExtended = false,	// not extended
ShieldGenerator = true,	// active
HangarDoors = true,	// locked
Infirmary = false,	// not breached
HangarSideDoor = true,	// locked
InfirmaryElevatorLock = true,	// not destroyed
CCDestroyed = false,	// not destroyed

Switches =
{
	BridgeControls =
	{
		Enabled = false,
		Priority = 0.9,
		WaypointName = "Bridge Controls",
		LimitTeam = (1<<TEAM.RED),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	/*Lift1Lwr =
	{
		Priority = 0.3,
		WaypointName = "L1LS",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift1Upr =
	{
		Priority = 0.3,
		WaypointName = "L1US",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift2Lwr =
	{
		Priority = 0.3,
		WaypointName = "L2LS",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift2Upr =
	{
		Priority = 0.3,
		WaypointName = "L2US",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	CodesCapture =
	{
		Priority = 1.0,
		WaypointName = "Access Codes Capture",
		LimitTeam = (1<<TEAM.RED),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift3Lwr =
	{
		Priority = 0.3,
		WaypointName = "L3LS",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift3Upr =
	{
		Priority = 0.3,
		WaypointName = "L3US",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift4LwrRed =
	{
		Priority = 0.3,
		WaypointName = "L4LSR",
		LimitTeam = (1<<TEAM.RED),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift4LwrBlue =
	{
		Priority = 0.3,
		WaypointName = "L4LSB",
		LimitTeam = (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},

	Lift4Upr =
	{
		Priority = 0.3,
		WaypointName = "L4US",
		LimitTeam = (1<<TEAM.RED) | (1<<TEAM.BLUE),
		LimitClass = (1<<CLASS.ASSAULT) | 
					(1<<CLASS.SCOUT) | 
					(1<<CLASS.TECH) | 
					(1<<CLASS.JEDI) | 
					(1<<CLASS.DEMO) | 
					(1<<CLASS.HW),
	},*/
},

CodesStatus = 0,	// 0 = home, 1 = taken, 2 = secure/done (don't care about dropped for now)
NumCodeTouch = 0,	// number of times codes have been taken (could be used to stop bots from going somewhere after its been taken > 0 times for instance.)

// Called when ATST reaches the wall/gate and causes big door to open.
Wall_Breached = function( trigger )
{
	Map.WallBreached = true;

	Map.Switches.BridgeControls.Enabled = true;

	// Remove These When Goals Are Ready
	//Wp.SetWaypointFlag("Gate_1", "closed", false);
	Wp.SetWaypointFlag("Gate_2", "closed", false);

	SetAvailableMapGoals( TEAM.RED, false, "ATTACK_Gate.*" );
	SetAvailableMapGoals( TEAM.BLUE, false, "DEFEND_Gate.*" );
	SetAvailableMapGoals( TEAM.RED, true, "ATTACK_Bridge_Def_.*" );
	SetAvailableMapGoals( TEAM.BLUE, true, "DEFEND_Bridge_Def_.*" );
	SetAvailableMapGoals( TEAM.BLUE, true, "ATTACK_Cave" );
	SetAvailableMapGoals( TEAM.RED, true, "DEFEND_Cave" );

	print( "Wall_Breached" );
},

// Called when bridge controls have triggered the bridge to extend.
Bridge_Extended = function( trigger )
{
	Map.BridgeExtended = true;

	Map.Switches.BridgeControls.Enabled = false;

	print( "Bridge_Extended" );
},

// Called when an Imperial Tech hacks the Ion Control Room Side Door.
Ion_Control_Hacked = function( trigger )
{
	Map.IonControl = false;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("Ion_1", "closed", false);
	Wp.SetWaypointFlag("Ion_2", "closed", false);
	Wp.SetWaypointFlag("Ion_3", "closed", false);
	Wp.SetWaypointFlag("Ion_4", "closed", false);
	Wp.SetWaypointFlag("Ion_5", "closed", false);

	print( "Ion_Control_Hacked" );
},

// Called when the Shield Generator is destroyed.
Shield_Generator_Destroyed = function( trigger )
{
	Map.ShieldGenerator = false;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("Shield_1", "closed", false);
	Wp.SetWaypointFlag("Shield_2", "closed", false);

	// Remove These When Goals Are Ready
	// Fixme: Stop defenders from going to spawn for now?
	Wp.SetWaypointFlag("HangarControlRespawn1", "closed", false);
	Wp.SetWaypointFlag("HangarControlRespawn2", "closed", false);

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("BridgeFar", "closed", true);
	Wp.SetWaypointFlag("BridgeBack", "closed", true);
	Wp.SetWaypointFlag("Cave", "closed", true);

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("Ion_1", "closed", true);
	Wp.SetWaypointFlag("Ion_6", "closed", true);

	print( "Shield_Generator_Destroyed" );
},

// Called everytime the access codes are picked up by a player.
Codes_Stolen = function( trigger )
{
	Map.NumCodeTouch += 1;
	Map.CodesStatus = 1;

	print( "Codes_Stolen " + Map.NumCodeTouch + " times." );
},

// Called everytime the access codes return to the original spot.
Codes_Returned = function( trigger )
{
	Map.CodesStatus = 0;

	print( "Codes_Returned" );
},

// Called when the access codes have been captured at the trigger.
Codes_Secured = function( trigger )
{
	Map.CodesStatus = 2;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("Shield_1", "closed", true);
	Wp.SetWaypointFlag("Shield_2", "closed", true);

	print( "Codes_Secured" );
},

// Called when the hangar doors open after the access codes have been captured.
Hangar_Doors_Unlocked = function( trigger )
{
	Map.HangarDoors = false;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("To_Hangar_1", "closed", false);
	Wp.SetWaypointFlag("To_Hangar_2", "closed", false);
	Wp.SetWaypointFlag("To_Hangar_3", "closed", false);
	Wp.SetWaypointFlag("To_Hangar_4", "closed", false);

	print( "Hangar_Doors_Unlocked" );
},

// Called when an Imperial player reaches the Infirmary.
Infirmary_Breached = function( trigger )
{
	Map.Infirmary = true;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("HangarBack1", "closed", true);
	Wp.SetWaypointFlag("HangarBack2", "closed", true);
	Wp.SetWaypointFlag("HangarBack3", "closed", true);
	Wp.SetWaypointFlag("HangarBack4", "closed", true);
	Wp.SetWaypointFlag("HangarBack5", "closed", true);
	Wp.SetWaypointFlag("HangarBack6", "closed", true);
	Wp.SetWaypointFlag("HangarBack7", "closed", true);
	Wp.SetWaypointFlag("HangarBack8", "closed", true);

	print( "Infirmary_Breached" );
},

// Called when an Imperial Tech hacks the Hangar Side Door to Infirmary.
Hangar_Side_Door_Hacked = function( trigger )
{
	Map.HangarSideDoor = false;

	// Remove These When Goals Are Ready
	Wp.SetWaypointFlag("Hangar_Hack1", "closed", false);
	Wp.SetWaypointFlag("Hangar_Hack2", "closed", false);
	Wp.SetWaypointFlag("Hangar_Hack3", "closed", false);
	Wp.SetWaypointFlag("Hangar_Hack4", "closed", false);

	print( "Hangar_Side_Door_Hacked" );
},

// Called when the lock at the elevator door in the Infirmary is destroyed.
Infirmary_Elevator_Lock_Destroyed = function( trigger )
{
	Map.InfirmaryElevatorLock = false;

	//Wp.SetWaypointFlag("IELD", "closed", false);	// unneeded
	//Wp.SetWaypointFlag("L4LSR", "closed", false);	// enable this when elevators are fixed

	print( "Infirmary_Elevator_Lock_Destroyed" );
},

// Called when all Command Center computers have been destroyed. (End of Map)
CC_Destroyed = function( trigger )
{
	Map.CCDestroyed = true;

	print( "Communications_Center_Destroyed");
}
};

global OnMapLoad = function()
{
// Set the default closed states
//Wp.SetWaypointFlag("Gate_1", "closed", true);
Wp.SetWaypointFlag("Gate_2", "closed", true);
Wp.SetWaypointFlag("Ion_1", "closed", true);
Wp.SetWaypointFlag("Ion_2", "closed", true);
Wp.SetWaypointFlag("Ion_3", "closed", true);
Wp.SetWaypointFlag("Ion_4", "closed", true);
Wp.SetWaypointFlag("Ion_5", "closed", true);
Wp.SetWaypointFlag("HangarControlRespawn1", "closed", true);
Wp.SetWaypointFlag("HangarControlRespawn2", "closed", true);
Wp.SetWaypointFlag("Shield_1", "closed", true);
Wp.SetWaypointFlag("Shield_2", "closed", true);
Wp.SetWaypointFlag("To_Hangar_1", "closed", true);
Wp.SetWaypointFlag("To_Hangar_2", "closed", true);
Wp.SetWaypointFlag("To_Hangar_3", "closed", true);
Wp.SetWaypointFlag("To_Hangar_4", "closed", true);
Wp.SetWaypointFlag("HangarBack1", "closed", false);
Wp.SetWaypointFlag("HangarBack2", "closed", false);
Wp.SetWaypointFlag("HangarBack3", "closed", false);
Wp.SetWaypointFlag("HangarBack4", "closed", false);
Wp.SetWaypointFlag("HangarBack5", "closed", false);
Wp.SetWaypointFlag("HangarBack6", "closed", false);
Wp.SetWaypointFlag("HangarBack7", "closed", false);
Wp.SetWaypointFlag("HangarBack8", "closed", false);
Wp.SetWaypointFlag("Hangar_Hack1", "closed", true);
Wp.SetWaypointFlag("Hangar_Hack2", "closed", true);
Wp.SetWaypointFlag("Hangar_Hack3", "closed", true);
Wp.SetWaypointFlag("Hangar_Hack4", "closed", true);
Wp.SetWaypointFlag("IELD", "closed", true);
Wp.SetWaypointFlag("L4LSR", "closed", true);
Wp.SetWaypointFlag("BridgeFar", "closed", false);
Wp.SetWaypointFlag("BridgeBack", "closed", false);
Wp.SetWaypointFlag("Ion_6", "closed", false);

Util.UpdateSwitchData();

Util.SetMaxUsersInProgress( 3, "ATTACK_Gate_.*" );
Util.SetMaxUsersInProgress( 3, "DEFEND_Gate_.*" );

SetAvailableMapGoals( TEAM.RED, false, "ATTACK.*" );
SetAvailableMapGoals( TEAM.RED, false, "DEFEND.*" );
SetAvailableMapGoals( TEAM.BLUE, false, "ATTACK.*" );
SetAvailableMapGoals( TEAM.BLUE, false, "DEFEND.*" );
SetAvailableMapGoals( TEAM.RED, true, "ATTACK_Gate_.*" );
SetAvailableMapGoals( TEAM.BLUE, true, "DEFEND_Gate_.*" );
SetAvailableMapGoals( TEAM.RED, false, "ATTACK_Gate_2" );
SetAvailableMapGoals( TEAM.BLUE, false, "DEFEND_Gate_2" );

// Set up some triggered events
OnTrigger( "Objective 1 Completed @siege_hoth_obj_1_new_imp_final.", Map.Wall_Breached );
OnTrigger( "Hacked trigger_once_321.", Map.Ion_Control_Hacked );
OnTrigger( "Objective 2 Completed @SIEGE_HOTH_OBJ_1_FINAL.", Map.Bridge_Extended );
OnTrigger( "Destroyed func_breakable_361.", Map.Shield_Generator_Destroyed );
//OnTrigger( "Objective 3 Completed @SIEGE_HOTH_OBJ_2_IMP_FINAL.", Map.Shield_Generator_Destroyed );
OnTrigger( "Red has stolen misc_siege_item_296!", Map.Codes_Stolen );
OnTrigger( "Flag returned misc_siege_item_296!", Map.Codes_Returned );
OnTrigger( "Red secured misc_siege_item_296!", Map.Codes_Secured );
OnTrigger( "Objective 4 Completed @SIEGE_HOTH_OBJ_3_IMP_FINAL.", Map.Hangar_Doors_Unlocked );
OnTrigger( "Objective 5 Completed @SIEGE_HOTH_OBJ_4_IMP_FINAL.", Map.Infirmary_Breached );
OnTrigger( "Hacked trigger_once_312.", Map.Hangar_Side_Door_Hacked );
OnTrigger( "Destroyed func_breakable_291.", Map.Infirmary_Elevator_Lock_Destroyed );
OnTrigger( "Objective 6 Completed @SIEGE_HOTH_OBJ_5_FINAL.", Map.CC_Destroyed );

print( "OnMapLoad" );
};

 

Still requires waypoints but they are a little more complex than those seen with base/tabbots.

 

This script is far from complete and was just messing with some of the features and the pieces where it sets closed status will be mostly removed except in the cases of "hacking" switches. The trigger events are basically just looking from the game code that sends off these messages so that the script can hook its own functions to do things on said events.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...