About This File
* This mutator will let you run your Renegade X server in "Sandbox Mode".
* For more info i created a link below to the forum :
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_" |
"Rx_Weapon_Deployed:" |
* Disabled by default because of crash when spawn.
Version 0.0.7 Compatible with Renegade X v5.282
Mutator :
Rx_Mutator_Sandbox_v007.u (Download)
Source :
Rx_Mutator_Sandbox_v007.uc (Download)
/****************************************************************************** * 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)
/****************************************************************************** * 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_" |
Prefix : "Rx_Weapon_Deployed" |
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_" |
|
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 :
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 :
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 :
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 :
What's New in Version 0.0.9 See changelog
Released
Update:
- Code Cleanup
- Add Itemlist ( simplify userinput for spawns )
- Add InputCheck ( does check if the userinput is available for the user)
- Add SpawnWaitTime ( Set a delay for the user between spawns )
- Add spawncheck ( does check if the user is permitted to spawn again, checks SpawnWaitTime )