Ryz Posted May 20, 2016 Share Posted May 20, 2016 Happened today... 7 SBH got spotted, started shooting the bar with 7 together and the building had ZERO damage. Guess a few ppl on GDI went afk and used start fire. Suggestion: I don't want to stop repairs when you are playing, cause I want people to be able to repair as long as they want, but... What I would like is that repairs automatically stop when the building status hasn't changed for (for example) 30 seconds... This way people cant do afk repair and make a building almost unkillable from the outside... Quote Link to comment Share on other sites More sharing options...
boxes Posted May 21, 2016 Share Posted May 21, 2016 Honestly I think the best way to deal with this non-stop repair is to give the repair guns the same function as the repair tool, but with additional ammo capacity and near instant recharge rate. This will make it so attacking buildings externally would be a lot more threatening, and would also fix the afk repair issue. Still probably wouldn't have affected your scenario, but just an idea Quote Link to comment Share on other sites More sharing options...
MrSeriousOak Posted May 21, 2016 Share Posted May 21, 2016 Honestly I think the best way to deal with this non-stop repair is to give the repair guns the same function as the repair tool, but with additional ammo capacity and near instant recharge rate. This will make it so attacking buildings externally would be a lot more threatening, and would also fix the afk repair issue. Still probably wouldn't have affected your scenario, but just an idea Or they could just make the startfire command redundant? Like disable it. I think it would be alot easier than adding an 'ammunition' aspect to the rep gun, but on that note, that is not actually a bad idea because the rep gun is kind of OP (atleast the adv rep gun is) Quote Link to comment Share on other sites More sharing options...
Totem Arts Staff Handepsilon Posted May 21, 2016 Totem Arts Staff Share Posted May 21, 2016 Honestly I think the best way to deal with this non-stop repair is to give the repair guns the same function as the repair tool, but with additional ammo capacity and near instant recharge rate. This will make it so attacking buildings externally would be a lot more threatening, and would also fix the afk repair issue. Still probably wouldn't have affected your scenario, but just an idea Or they could just make the startfire command redundant? Like disable it. I think it would be alot easier than adding an 'ammunition' aspect to the rep gun, but on that note, that is not actually a bad idea because the rep gun is kind of OP (atleast the adv rep gun is) StartFire is a semi hard-coded function I'm afraid, You see, this is how it looks here in config ini file .Bindings=(Name="GBA_Fire",Command="StartFire | OnRelease StopFire") .Bindings=(Name="GBA_AltFire",Command="StartAltFire | OnRelease StopAltFire") //// .Bindings=(Name="LeftMouseButton",Command="GBA_Fire") .Bindings=(Name="RightMouseButton",Command="GBA_AltFire") and this is how function looks like Engine.PlayerController // The player wants to fire. exec function StartFire( optional byte FireModeNum ) { if ( WorldInfo.Pauser == PlayerReplicationInfo ) { SetPause( false ); return; } if ( Pawn != None && !bCinematicMode && !WorldInfo.bPlayersOnly ) { Pawn.StartFire( FireModeNum ); } } exec function StopFire( optional byte FireModeNum ) { if ( Pawn != None ) { Pawn.StopFire( FireModeNum ); } } Engine.Pawn /** * Pawn starts firing! * Called from PlayerController::StartFiring * Network: Local Player * * @param FireModeNum fire mode number */ simulated function StartFire(byte FireModeNum) { if( bNoWeaponFIring ) { return; } if( Weapon != None ) { Weapon.StartFire(FireModeNum); } } /** * Pawn stops firing! * i.e. player releases fire button, this may not stop weapon firing right away. (for example press button once for a burst fire) * Network: Local Player * * @param FireModeNum fire mode number */ simulated function StopFire(byte FireModeNum) { if( Weapon != None ) { Weapon.StopFire(FireModeNum); } } Engine.Weapon /** * Called on the LocalPlayer, Fire sends the shoot request to the server (ServerStartFire) * and them simulates the firing effects locally. * Call path: PlayerController::StartFire -> Pawn::StartFire -> InventoryManager::StartFire * Network: LocalPlayer */ simulated function StartFire(byte FireModeNum) { if( Instigator == None || !Instigator.bNoWeaponFiring ) { if( Role < Role_Authority ) { // if we're a client, synchronize server ServerStartFire(FireModeNum); } // Start fire locally BeginFire(FireModeNum); } } /** * When StartFire() is called on a client, it replicates the start by calling ServerStartFire. This * begins the event on server. Server side actors (such as bots) should not call ServerStartFire directly and should * instead call StartFire(). * * Network: Dedicated Server only, or Listen Server for remote clients. */ reliable server function ServerStartFire(byte FireModeNum) { if( Instigator == None || !Instigator.bNoWeaponFiring ) { // A client has fired, so the server needs to // begin to fire as well BeginFire(FireModeNum); } } /** * This initiates the shutdown of a weapon that is firing. * Network: Local Player */ simulated function StopFire(byte FireModeNum) { // Locally shut down the fire sequence EndFire(FireModeNum); // Notify the server if( Role < Role_Authority ) { ServerStopFire(FireModeNum); } } /** * When StopFire is called on a client, ServerStopFire is used to initiate the sequence on the server. * Network: Dedicated Server only, or Listen Server for remote clients. */ reliable server function ServerStopFire(byte FireModeNum) { EndFire(FireModeNum); } So here's how it works here for those who lack the knowledge of scripting. The player is given one button to initiate two function that starts and stop the weapon firing. When button is pressed, the StartFire is initiated, causing the weapon to fire, and when the button is released, the StopFire function is initiated, causing the weapon to stop firing. The information goes this way. 1. Player gives command to start/stop fire to his pawn (character) 2. Character gives command to weapon 3. Weapon fires/stops firing Disabling StartFire as a function means that a whole weapon rescripting is in order, which unfortunately is far too much work for far too little Quote Link to comment Share on other sites More sharing options...
MrSeriousOak Posted May 21, 2016 Share Posted May 21, 2016 Honestly I think the best way to deal with this non-stop repair is to give the repair guns the same function as the repair tool, but with additional ammo capacity and near instant recharge rate. This will make it so attacking buildings externally would be a lot more threatening, and would also fix the afk repair issue. Still probably wouldn't have affected your scenario, but just an idea Or they could just make the startfire command redundant? Like disable it. I think it would be alot easier than adding an 'ammunition' aspect to the rep gun, but on that note, that is not actually a bad idea because the rep gun is kind of OP (atleast the adv rep gun is) StartFire is a semi hard-coded function I'm afraid, You see, this is how it looks here in config ini file .Bindings=(Name="GBA_Fire",Command="StartFire | OnRelease StopFire") .Bindings=(Name="GBA_AltFire",Command="StartAltFire | OnRelease StopAltFire") //// .Bindings=(Name="LeftMouseButton",Command="GBA_Fire") .Bindings=(Name="RightMouseButton",Command="GBA_AltFire") and this is how function looks like Engine.PlayerController // The player wants to fire. exec function StartFire( optional byte FireModeNum ) { if ( WorldInfo.Pauser == PlayerReplicationInfo ) { SetPause( false ); return; } if ( Pawn != None && !bCinematicMode && !WorldInfo.bPlayersOnly ) { Pawn.StartFire( FireModeNum ); } } exec function StopFire( optional byte FireModeNum ) { if ( Pawn != None ) { Pawn.StopFire( FireModeNum ); } } Engine.Pawn /** * Pawn starts firing! * Called from PlayerController::StartFiring * Network: Local Player * * @param FireModeNum fire mode number */ simulated function StartFire(byte FireModeNum) { if( bNoWeaponFIring ) { return; } if( Weapon != None ) { Weapon.StartFire(FireModeNum); } } /** * Pawn stops firing! * i.e. player releases fire button, this may not stop weapon firing right away. (for example press button once for a burst fire) * Network: Local Player * * @param FireModeNum fire mode number */ simulated function StopFire(byte FireModeNum) { if( Weapon != None ) { Weapon.StopFire(FireModeNum); } } Engine.Weapon /** * Called on the LocalPlayer, Fire sends the shoot request to the server (ServerStartFire) * and them simulates the firing effects locally. * Call path: PlayerController::StartFire -> Pawn::StartFire -> InventoryManager::StartFire * Network: LocalPlayer */ simulated function StartFire(byte FireModeNum) { if( Instigator == None || !Instigator.bNoWeaponFiring ) { if( Role < Role_Authority ) { // if we're a client, synchronize server ServerStartFire(FireModeNum); } // Start fire locally BeginFire(FireModeNum); } } /** * When StartFire() is called on a client, it replicates the start by calling ServerStartFire. This * begins the event on server. Server side actors (such as bots) should not call ServerStartFire directly and should * instead call StartFire(). * * Network: Dedicated Server only, or Listen Server for remote clients. */ reliable server function ServerStartFire(byte FireModeNum) { if( Instigator == None || !Instigator.bNoWeaponFiring ) { // A client has fired, so the server needs to // begin to fire as well BeginFire(FireModeNum); } } /** * This initiates the shutdown of a weapon that is firing. * Network: Local Player */ simulated function StopFire(byte FireModeNum) { // Locally shut down the fire sequence EndFire(FireModeNum); // Notify the server if( Role < Role_Authority ) { ServerStopFire(FireModeNum); } } /** * When StopFire is called on a client, ServerStopFire is used to initiate the sequence on the server. * Network: Dedicated Server only, or Listen Server for remote clients. */ reliable server function ServerStopFire(byte FireModeNum) { EndFire(FireModeNum); } So here's how it works here for those who lack the knowledge of scripting. The player is given one button to initiate two function that starts and stop the weapon firing. When button is pressed, the StartFire is initiated, causing the weapon to fire, and when the button is released, the StopFire function is initiated, causing the weapon to stop firing. The information goes this way. 1. Player gives command to start/stop fire to his pawn (character) 2. Character gives command to weapon 3. Weapon fires/stops firing Disabling StartFire as a function means that a whole weapon rescripting is in order, which unfortunately is far too much work for far too little And I here I thought your suggestion was overkill.. Anyway scratch my idea then. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.