Jump to content

[Mod] Rx_Mutator_Sandbox


Ukill

Recommended Posts

Rx_Mutator_Sandbox


*  This mutator will let you run your Renegade X server in "Sandbox Mode".
*  For more info i created a link below to the forum : 


New Version:
The way you need to input names is changed.

Version 0.0.9  Compatible with Renegade X v5.285

Everything always starts with pressing F5 and typing : "sandboxspawn ItemName"

DONT USE : "sandboxspawn renx_game."

"Rx_Vehicle_"
Humvee
Buggy
APC_GDI
APC_Nod
LightTank
MediumTank
FlameTank
StealthTank
MammothTank
Chinook_GDI
Chinook_Nod
Orca
Apache
A10
C130*
Hovercraft_GDI
Bus*

"TS_Vehicle:"
Wolverine
HoverMRLS
Titan
Buggy
ReconBike
TickTank
APB_Vehicle_TeslaTank

"Rx_Weapon_Deployed:"
ProxyC4
RemoteC4
TimedC4
ATMine
IonCannonBeacon
NukeBeacon

"Rx_Weapon:"
Rx_Weapon_CrateNuke (faster NukeBeacon)

"Rx_Defence:"
GunEmplacement (not mannable)
RocketEmplacement (not mannable)
Turret (Nod aligned)
SAM Site (Nod aligned)
GuardTower (GDI aligned)
AATower (GDI aligned)

Prefix : "Rx_Projectile:"
Grenade
MissileLauncher
SmokeGrenade
EMPGrenade
Rocket_AGT

* Disabled by default because of crash when spawn.
 


New Version:
Use mutator=Rx_Mutator_Sandbox_v007.Rx_Mutator_Sandbox_v007
Instead of game=Rx_Mutator_Sandbox_v007.Rx_Mutator_Sandbox_v007

Version 0.0.7  Compatible with Renegade X v5.282

Mutator :

Rx_Mutator_Sandbox_v007.u (Download)

Source :

Spoiler

 

Rx_Mutator_Sandbox_v007.uc (Download)

Spoiler


 /******************************************************************************
*  Modified by Ukill, this can contain parts of code written by Jessica\Yosh  *
*      This mutator will add the Sandbox function to the Renegade X game      *
*******************************************************************************
* Rx_Mutator_Sandbox_v007                                                     *
******************************************************************************/

class Rx_Mutator_Sandbox_v007 extends UTMutator;

function bool CheckReplacement(Actor Other) 
{ // if (Rx_Game(WorldInfo.Game) != None)
	if(Other.IsA('Rx_TeamInfo')) { Rx_Game(WorldInfo.Game).PlayerControllerClass = class'Rx_Mutator_Sandbox_v007_Controller'; } return true; 
} 

DefaultProperties
{

}
 

 

Rx_Mutator_Sandbox_Controller_v007.uc (Download)

Spoiler


/******************************************************************************
*  Modified by Ukill, this can contain parts of code written by Jessica\Yosh  *
*      This mutator will add the Sandbox function to the Renegade X game      *
*******************************************************************************
* Rx_Mutator_Sandbox_v007_Controller                                          *
******************************************************************************/

class Rx_Mutator_Sandbox_v007_Controller extends Rx_Controller;
/* config(RxSandbox); var config int ActorSpawnLimit; */

var array<Actor> SpawnedActors;

var bool bSandboxMode;
var bool bSpawnMode;

var int bHelpedTier;
var int bSpawnTier;

var string bClassName;

// Functions to toggle SandboxMode
exec function SandboxModeCheck() 
{ 	
	if (bSandboxMode) 
	{ 
		ClientMessage("SandboxMode activated",,1); 
	} 
	else 
	{ 
		ClientMessage("SandboxMode deactivated",,1); 
	}
}

exec function SandboxModeStart() { bSandboxMode = true; SandboxModeCheck();}
exec function SandboxModeStop() { bSandboxMode = false; SandboxModeCheck();}
exec function SandboxModeToggle() { if (bSandboxMode) { SandboxModeStop(); } else { SandboxModeStart(); } }

// Functions to toggle SpawnMode
exec function SpawnModeCheck() { if (bSpawnMode) { ClientMessage("SpawnMode activated",,1); } else { ClientMessage("SpawnMode deactivated",,1); } }
exec function SpawnModeStart() { bSpawnMode = true; SpawnModeCheck();}
exec function SpawnModeStop() { bSpawnMode = false; SpawnModeCheck();}
exec function SpawnModeToggle() { if (bSpawnMode) { SpawnModeStop(); } else { SpawnModeStart(); } }

// Functions to destroy all items spawned in Sandbox
exec function SandboxKillOwned(optional string ClassName) { ServerSandboxKillOwned(ClassName); ClientMessage("Removed all spawns"); } 
reliable server function ServerSandboxKillOwned(optional string ClassName) { local Actor A; foreach SpawnedActors(A) { if(ClassName == "") A.Destroy(); else if(A.IsA(name(ClassName))) A.Destroy(); } }

// SetTimer (float InRate, optional bool inbLoop, optional name inTimerFunc, optional Object inObj)
// InRate - the amount of time to pass between firing
// inbLoop - whether to keep firing or only fire once
// inTimerFunc - the name of the function to call when the timer fires
// reliable client event ClientMessage (coerce string S, optional name Type, optional float MsgLifeTime)

exec function SandboxSpawn( string ClassName ) 
{ 
	if (bSandboxMode == false) { bSpawnTier=8; };
	if (bSpawnMode == false) { bSpawnTier=9; };
	
	switch (bSpawnTier)
	{
		case 0:
			bClassName = ClassName;
			SpawnModeStop();
			ServerSandboxSpawn(bClassName);
			settimer(10,false,'SpawnModeStart');
			break;
		
		case 8:
			ClientMessage("Game is not currently in Sandbox mode. Please activate it with the voting system",,1);
			break;
		
		case 9:
			ClientMessage("SpawnMode deactivated - You need to wait 10 seconds between spawning",,1);
			break;
				
	}
	
	bSpawnTier = bSpawnTier + 1;
	if(bSpawnTier <= 2) settimer(2,false,'SandboxSpawn');
	else bSpawnTier = 0;
}
	
/*	
exec function SandboxSpawn( string ClassName ) 
{ 
	if (bSandboxMode == false)
	{ 
	ClientMessage("Game is not currently in Sandbox mode. Please activate it with the voting system",,2);
	} 
	else if (bSpawnMode == false) 
	{
	ClientMessage("SpawnMode deactivated - You need to wait 10 seconds between spawning",,2);
	}		
	else 
	{ 
	bClassName = ClassName;
	ServerSandboxSpawn(bClassName);
	SpawnModeToggle();
	SetTimer(10.0, false, 'SpawnModeToggle');
	}
}
*/

reliable server function ServerSandboxSpawn (string ClassName)
{
	local class<actor> NewClass;
	local vector SpawnLoc;
	local Actor A;
	local bool bBeaconExist;
	local int i;
	NewClass = class<actor>( DynamicLoadObject( ClassName, class'Class' ) );
	if( NewClass!=None )
	{
		if(NewClass == class'Renx_Game.Rx_weapon_DeployedBeacon') 
		{
			for(i = 0;i < SpawnedActors.Length;i++)
			{
				if(SpawnedActors[i].IsA('Rx_Weapon_DeployedBeacon'))
				bBeaconExist = true;
			}
			if(bBeaconExist)
			{
				ClientMessage("Spawning Beacon Failed! You already have a beacon spawned");
				return;
			}
			
		}

		if ( Pawn != None )
			SpawnLoc = Pawn.Location;

		else
		SpawnLoc = Location;
		A = Spawn( NewClass,self,,SpawnLoc + 72 * Vector(Rotation) + vect(0,0,1) * 15 );
		SpawnedActors.additem(A);

		if(A.IsA('Rx_Weapon_DeployedActor'))
		{
			Rx_Weapon_DeployedActor(A).InstigatorController = self;
			Rx_Weapon_DeployedActor(A).TeamNum = GetTeamNum();	
		}

		else if(A.IsA('UTVehicle'))
		{
			UTVehicle(A).SetTeamNum(GetTeamNum());
		}
	}
}

exec function Feign() { UTPawn(Pawn).FeignDeath(); }
exec function Gimme(string Weapon) { ServerGimme(Weapon); }
reliable server function Weapon ServerGimme( String WeaponClassStr ) {
	local Weapon		Weap; local class<Weapon> WeaponClass;
	WeaponClass = class<Weapon>(DynamicLoadObject(WeaponClassStr, class'Class'));
	Weap		= Weapon(Pawn.FindInventoryType(WeaponClass));
	if( Weap != None ) { return Weap; }
	return Weapon(Pawn.CreateInventory( WeaponClass ));
}

exec function SandboxHelp() {  if(bHelpedTier == 0) {  HelpUpSandbox(); } }
simulated function HelpUpSandbox()
{
	switch (bHelpedTier)
	{
		case 0:
		ClientMessage("The Sandbox command occurs if you open the console, and type 'SandboxSpawn' or 'Gimme' and input the class of the object");
		ClientMessage("Gimme will give you weapons. SandboxSpawn summons an object of your choice");
		ClientMessage("Before you do so, however, please turn on sandbox mode with vote system");
		break;

		case 1:
		ClientMessage("Normal Vehicle is spawned by following SandboxSpawn with 'Renx_Game.Rx_Vehicle_' and type the vehicle name");
		ClientMessage("List : Humvee, Buggy, APC_GDI. APC_Nod, MediumTank, LightTank, FlameTank, StealthTank, MammothTank, MRLS, Artillery");
		ClientMessage("List : Chinook_GDI, Chinook_Nod, Orca, Apache, Hovercraft_GDI, A10, C130");
		break;

		case 2:
		ClientMessage("TibSun Vehicle is spawned by following SandboxSpawn with 'Renx_Game.TS_Vehicle_' and type the vehicle name with no space");
		ClientMessage("List : HoverMRLS, Buggy, Wolverine, Titan, ReconBike, TickTank");
		break;

		case 3:
		ClientMessage("Tesla tank is spawned by following SandboxSpawn with 'Renx_Game.APB_Vehicle_TeslaTank'");
		break;

		case 4:
		ClientMessage("Weapon is given by following 'Gimme' with 'Renx_Game.Rx_Weapon_' and type the weapon name");
		ClientMessage("Example : RepairGunAdvanced, LaserGun, RamjetRifle, SniperRifle_GDI, AutoRifle_GDI, VoltAutoRifle_Nod, MarksmanRifle_Nod");
		break;

		case 5:
		ClientMessage("Beacon, C4 and other deployables can be placed by typing 'Renx_Game.Rx_Weapon_Deployable_' with the following");
		ClientMessage("List : ProxyC4, TimedC4, NukeBeacon, IonCannonBeacon");
		ClientMessage("Frag Grenades can also be spawned by typing 'Renx_Game.Rx_Projectile_Grenade'. Other types are available as well");
		break;

		case 6:
		ClientMessage("Example : To spawn A10, type 'sandboxspawn Renx_Game.Rx_vehicle_A10");
		break;

		case 7:
		ClientMessage("More info can be obtained from other player or Handepsilon himself. Thank you for using Sandbox Mod");
		break;
	}
	
	bHelpedTier = bHelpedTier + 1;
	if(bHelpedTier <= 7)
	settimer(5,false,'HelpUpSandbox');
	else
	bHelpedTier = 0;
}

DefaultProperties
{
	//defaults
	bSandboxMode=true
	bSpawnMode=true
	bSpawnTier=0
	
	
}
 

 

 

 

Info :

I've changed this gametype to a mutator, and increased the delay betweens spawns.

 


SANDBOX SPAWN SECTION


Everything always starts with pressing F5 and typing : "sandboxspawn renx_game."

Prefix : "Rx_Vehicle_"
Humvee
Buggy
APC_GDI
APC_Nod
LightTank
MediumTank
FlameTank
StealthTank
MammothTank
Chinook_GDI
Chinook_Nod
Orca
Apache
A10
C130
Hovercraft_GDI
Bus

Prefix : "TS_Vehicle_"
Wolverine
HoverMRLS
Titan
Buggy
ReconBike
TickTank
APB_Vehicle_TeslaTank

 

Prefix : "Rx_Weapon_Deployed"
ProxyC4
RemoteC4
TimedC4
ATMine
IonCannonBeacon
NukeBeacon

Prefix : "(not following Prefix)"
Rx_Weapon_CrateNuke (faster NukeBeacon)

Prefix : "Rx_Defence_"
GunEmplacement (not mannable)
RocketEmplacement (not mannable)
Turret (Nod aligned)
SAM Site (Nod aligned)
GuardTower (GDI aligned)
AATower (GDI aligned)

Prefix : "Rx_Projectile_"
Grenade
MissileLauncher
SmokeGrenade
EMPGrenade
Rocket_AGT


EXAMPLES :
sandboxspawn renx_game.Rx_Vehicle_Apache
sandboxspawn renx_game.TS_Vehicle_HoverMRLS
sandboxspawn renx_game.Rx_Weapon_DeployedNukeBeacon
sandboxspawn renx_game.Tx_Weapon_CrateNuke
sandboxspawn renx_game.Rx_Projectile_Grenade

 


WEAPON ACQUIRING SECTION


Everything always starts with pressing F5 and typing : "gimme renx_game."

Prefix : "Rx_Weapon_"
AutoRifle_GDI
AutoRifle_Nod
Airstrike_GDI
Airstrike_Nod
ATMine
Carbine
Carbine_Silencer
Chaingun_GDI
Chaingun_Nod
ChemicalThrower
EMPGrenade_Rechargeable
FlakCannon
FlameThrower
Grenade
GrenadeLauncher
Grenade_Rechargeable
HeavyPistol
IonCannonBeacon
LaserChaingun
LaserRifle
NukeBeacon
MarksmanRifle_GDI
MarksmanRifle_Nod


Pistol
ProxyC4
Railgun
RamjetRifle
RemoteC4
RepairGun
RepairGunAdvanced
RepairTool
PersonalIonCannon
SMG_GDI
SMG_Nod
SMG_Silenced_GDI
SMG_Silenced_Nod
SmokeGrenade_Rechargeable
SniperRifle_GDI
SniperRifle_Nod
TacticalRifle
TiberiumAutoRifle
TiberiumFlechetteRifle
TimedC4
TimedC4_Multiple
VoltAutoRifle_GDI
VoltAutoRifle_Nod


EXAMPLES :
gimme renx_game.Rx_Weapon_Railgun
gimme renx_game.Rx_RamjetRifle
gimme renx_game.Rx_IonCannonBeacon
 


Version 0.0.3

Compatible with Renegade X v5.281

Gametype :

Rx_Gametype_Sandbox_v003.u (Download)

Source :

Spoiler

Rx_Gametype_Sandbox_v003.uc (Download)

Rx_Gametype_Sandbox_Controller_v003.uc (Download)

Info :


Version 0.0.2

Not compatible with Renegade X v5.271 

Gametype :

Rx_Gametype_Sandbox_v002.u (Download)

Source :

Spoiler

Rx_Gametype_Sandbox_v002.uc (Download)

Rx_Gametype_Sandbox_v002_Building_AdvancedGuardTower_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_AirStrip_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_AirTower_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_Barracks_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_HandOfNod_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_Obelisk_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_PowerPlant_GDI_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_PowerPlant_Nod_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_Refinery_GDI_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_Refinery_Nod_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Building_WeaponsFactory_Internals.uc (Download)

Rx_Gametype_Sandbox_v002_Controller.uc (Download)

Rx_Gametype_Sandbox_v002_IndestructibleStructures.uc (Download)

Rx_Gametype_Sandbox_v002_Weapon_AdminGun.uc (Download)

Info :


 

Version 0.0.1

Not compatible with Renegade X v5.271 

Gametype :

Rx_Gametype_Sandbox_v001.u (Download)

Source :

Spoiler

Rx_Building_HandOfNod_Internals_Sandbox.uc (Download)

Rx_Building_Obelisk_Internals_Sandbox.uc (Download)

Rx_Building_PowerPlant_GDI_Internals_Sandbox.uc (Download)

Rx_Building_PowerPlant_Nod_Internals_Sandbox.uc (Download)

Rx_Building_Refinery_GDI_Internals_Sandbox.uc (Download)

Rx_Building_Refinery_Nod_Internals_Sandbox.uc (Download)

Rx_Building_WeaponsFactory_Internals_Sandbox.uc (Download)

Rx_Controller_Sandbox.uc (Download)

Rx_Mutator_IndestructibleStructures.uc (Download)

Rx_Sandbox.uc (Download)

Rx_Weapon_AdminGun.uc (Download)

Rx_Building_AdvancedGuardTower_Internals_Sandbox.uc (Download)

Rx_Building_AirStrip_Internals_Sandbox.uc (Download)

Rx_Building_AirTower_Internals_Sandbox.uc (Download)

Rx_Building_Barracks_Internals_Sandbox.uc (Download)

Info :

 

EstusProfileAvatar2.jpg.253319a1a282eecd    Follow member
Handepsilon  Message
Moderators

 


 

Edited by ukilleddanny
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...