Exemplo n.º 1
0
    def DupeWeapon(self, weapon: unrealsdk.UObject) -> unrealsdk.UObject:
        # We keep a map of duped weapons so that swapping doesn't reload them
        if weapon in self.WeaponMap:
            return self.WeaponMap[weapon]

        new_weapon = weapon.CreateClone()
        new_weapon.AmmoPool.PoolManager = weapon.AmmoPool.PoolManager
        new_weapon.AmmoPool.PoolIndexInManager = weapon.AmmoPool.PoolIndexInManager
        new_weapon.AmmoPool.PoolGUID = weapon.AmmoPool.PoolGUID
        new_weapon.AmmoPool.Data = weapon.AmmoPool.Data
        new_weapon.InvManager = weapon.InvManager

        self.WeaponMap[weapon] = new_weapon
        return new_weapon
Exemplo n.º 2
0
    def DupeWeapon(self, weapon: unrealsdk.UObject) -> unrealsdk.UObject:
        """
          We save a map of existing duped weapons to try make sure you get the same one back
          For one this helps keep memory usage down, but more importantly it means when you switch
           back you'll have the same amount of ammo left in the mag - you can't get free offhand
           reloads just by switching to another gun + back
        """
        if weapon in self.WeaponMap:
            return self.WeaponMap[weapon]

        newWeapon = weapon.CreateClone()
        newWeapon.AmmoPool.PoolManager = weapon.AmmoPool.PoolManager
        newWeapon.AmmoPool.PoolIndexInManager = weapon.AmmoPool.PoolIndexInManager
        newWeapon.AmmoPool.PoolGUID = weapon.AmmoPool.PoolGUID
        newWeapon.AmmoPool.Data = weapon.AmmoPool.Data
        newWeapon.InvManager = weapon.InvManager
        self.WeaponMap[weapon] = newWeapon
        return newWeapon