Announcement

Collapse
No announcement yet.

Epic FROC (alias Epic Fix for ShockBall Zero Collision) [Mutator][PC]

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Epic FROC (alias Epic Fix for ShockBall Zero Collision) [Mutator][PC]

    Name: Epic FROC (alias Epic Fix for ShockBall Zero Collision)
    Version: 1.0 Final
    Description: Serversided mutator to fix the Zero Collision of ShockBalls.
    Features:
    • Fixes Zero collision of ShockBalls
    • Full net support
    • Full compatiblity to other mutators
    • No replacement of any class
    • Works for instant action and online games
    • Server sided only
    • No dependency of the package when playing recorded demos


    Friendly Name: Epic Fix for ShockBall Zero Collision
    Date: March 30, 2014
    Compatibility: NOT TESTED (works in 2.1, could be lower)
    Size: ~ 13 KB
    Comment: This might be a fix, but it does destroy the game flow with the ShockRifle. I don't recommend to use this mutator.
    Credits: Epic Games
    Coder: RattleSN4K3


    Demonstration:



    Download:
    EpicFixShockBallZeroCollision v1.0 Final
    EpicFixShockBallZeroCollision v1.0 Final incl. Source


    Read the Readme file for more information.




    If you are interested in a fix which allows that Zero Collision, but fixes the Combo bug, that ShockBalls cannot be hit if they are near walls, check the following thread:
    Epic FOCK (alias Epic Fix for ShockBall Wall Collision)

    #2
    What's next? Epic Fix for Orb Fix? Or perhaps fix for rockets doing zero damage?

    Comment


      #3
      (is that kind of venom?...)

      There is nothing planned. I'm just releasing some of my already started things as I want to get rid off it.

      Comment


        #4
        Although my post might sound a bit sarcastic, I didn't really want it. It's actually my small personal wishlist

        Comment


          #5
          Ah okay.

          What would a OrbFix Fix be? What's the difference to the official Orb Fix (besides being not serversided-only)?

          There are several No-Damage bugs in the client's perspective. All these bugs are hard to examine. These occur out of random and mostly on clients. Never had a problem with that bug in standalone games. The Projectile Hurt radius method is pretty complex so it might bug out there. All these projectiles with a radial damage got this bug. Flak Shell, Avril projectile, Rockets, Grenades ... even Tank Shell and Scorpion blobs have that same bug. It's pretty obvious where to look but it's hard to tell what code snippet triggers that bug.

          Comment


            #6
            The orb fix doesn't fix everything. Sometimes, orb status at the top of the screen isn't updated. Orb owning indicator in the scoreboard always works, though. I'm not sure if this's limited to second round or just completely random.

            My explanation would be that projectiles simply become out of sync. They collide with something on the server, but appear to fly further on clients. In fact, I had something exactly the opposite: an AVRiL rocket that collided with some pole on the client and exploded, but killed someone a second later.

            Comment


              #7
              Originally posted by WGH View Post
              The orb fix doesn't fix everything. Sometimes, orb status at the top of the screen isn't updated. Orb owning indicator in the scoreboard always works, though. I'm not sure if this's limited to second round or just completely random.
              Strange. Have to look at it again.

              My explanation would be that projectiles simply become out of sync. They collide with something on the server, but appear to fly further on clients. In fact, I had something exactly the opposite: an AVRiL rocket that collided with some pole on the client and exploded, but killed someone a second later.
              Yep. So many bugs. That's the side effect of the client authorization to destroy the projectiles on touch.
              Code:
              simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal);
              simulated function Explode(vector HitLocation, vector HitNormal);
              simulated function Shutdown();
              That must be some kind of approach for lag compensation with projectiles.

              Comment


                #8
                Originally posted by WGH View Post
                The orb fix doesn't fix everything. Sometimes, orb status at the top of the screen isn't updated. Orb owning indicator in the scoreboard always works, though. I'm not sure if this's limited to second round or just completely random.
                Not sure about this as I didn't play Warfare lately, in some cases the Orb isn't even showing up in the first round, right? Same as the Flag in (v)CTF games.
                The official orb fix only applies some fix if the team is already set (this is in the 2nd round when the team switches their sides). Switching sides does not exist in (v)CTF, but that bug also exists.

                I got some indications where the bug happens. Have to check that by subclassing the orb (-.-).

                Comment


                  #9
                  I couldn't reproduce when the OrbFix isn't working.

                  Strange think. This is the original code:
                  Code:
                  function SetTeam(int TeamIndex)
                  {
                      local UTTeamInfo OldTeam;
                  
                      OldTeam = Team;
                      Team = UTOnslaughtGame(WorldInfo.Game).Teams[TeamIndex];
                      if ( Team.TeamFlag != None )
                      {
                          // clear the old flag's team so it doesn't stomp me
                          Team.TeamFlag.Team = None;
                      }
                      Team.TeamFlag = self;
                  
                      // If the team has changed, clear the old team's flag reference
                      if ( (OldTeam != Team) && (OldTeam != None) )
                      {
                          OldTeam.TeamFlag = None;
                      }
                  
                      UpdateTeamEffects();
                  }
                  This is the updated fixed code:
                  Code:
                  function SetTeam(int TeamIndex)
                  {
                      local UTTeamInfo OldTeam;
                  
                      OldTeam = Team;
                      Team = UTOnslaughtGame(WorldInfo.Game).Teams[TeamIndex];
                  
                      // Clear the old flag's team so it doesn't stomp me
                      if (Team.TeamFlag != none && /* Fix is here >> */ Team.TeamFlag != Self)
                          Team.TeamFlag.Team = None;
                  
                      Team.TeamFlag = self;
                  
                      // If the team has changed, clear the old team's flag reference
                      if (OldTeam != Team && OldTeam != None)
                          OldTeam.TeamFlag = None;
                  
                      UpdateTeamEffects();
                  }
                  In general there is no difference as the flag is only "different" when the team changes. But another problem with that code (at least when I tried it). A line of that old code results into a "Accessed none error". So it doesn't get executed fully.
                  Code:
                  ScriptWarning: UTOnslaughtFlag_Content WAR-Downtown.TheWorld:PersistentLevel.UTOnslaughtFlag_Content_0 (Function UTGame.UTOnslaughtFlag:SetTeam:0067) Accessed None 'Team'
                  ScriptWarning: UTOnslaughtFlag_Content WAR-Downtown.TheWorld:PersistentLevel.UTOnslaughtFlag_Content_0 (Function UTGame.UTOnslaughtFlag:SetTeam:006F) Attempt to assign variable through None
                  ScriptWarning: UTOnslaughtFlag_Content WAR-Downtown.TheWorld:PersistentLevel.UTOnslaughtFlag_Content_1 (Function UTGame.UTOnslaughtFlag:SetTeam:0067) Accessed None 'Team'
                  ScriptWarning: UTOnslaughtFlag_Content WAR-Downtown.TheWorld:PersistentLevel.UTOnslaughtFlag_Content_1 (Function UTGame.UTOnslaughtFlag:SetTeam:006F) Attempt to assign variable through None
                  Without the OrbFix, the TeamFlag (of UTTeamInfo) is set to none. That causes the orb being not rendered as the UTMapInfo is check for the Team's TeamFlag:
                  Code:
                      // draw flags after vehicles/other players
                      if ( UTTeamInfo(PlayerOwner.PlayerReplicationInfo.Team) != None )
                      {
                          // show flag if within sensor range
                          for ( j=0; j<2; j++ )
                          {
                              Team = UTTeamInfo(WI.GRI.Teams[j]);
                              if (Team != None && Team.TeamFlag != None)
                              {
                  //... Draw code
                              }
                          }
                      }
                  The OrbFix actually works. I couldn't reproduce a not working mutator.

                  -----------------

                  Sometimes, orb status at the top of the screen isn't updated
                  Not sure about this.

                  Comment

                  Working...
                  X