예제 #1
0
        public override bool onPickup(Item obj, ShapeBase user, int amount)
        {
            if (!base.onPickup(obj, user, amount))
            {
                return(false);
            }

            Audio.AudioServerPlay3D("WeaponPickupSound", user.getTransform());

            ShapeBaseImageData image = user.getMountedImage(Constants.WeaponSlot);

            if (image == 0)
            {
                return(false);
            }

            if (!console.isField(image, "clip") || image["clip"].getID() != getId())
            {
                return(false);
            }

            bool outOfAmmo = !user.getImageAmmo(Constants.WeaponSlot);

            int amountInClips = 0;

            int currentAmmo = user.getInventory(image["ammo"]);

            if (console.isObject(image["clip"]))
            {
                amountInClips = user.getInventory(image["clip"]);
            }


            int t = console.GetVarInt(string.Format("{0}.ammo.maxInventory", image));

            amountInClips *= t;

            int amountloadedingun =
                console.GetVarInt(string.Format("{0}.remaining{1}", obj,
                                                console.GetVarString(string.Format("{0}.ammo", this))));

            amountInClips += amountloadedingun;


            GameConnection client = user["client"];

            client.setAmmoAmountHud(currentAmmo, amountInClips);

            if (outOfAmmo)
            {
                ((WeaponImage)image.ID).onClipEmpty(user, Constants.WeaponSlot);
            }

            return(true);
        }
예제 #2
0
        public override void onInventory(ShapeBase user, int value)
        {
            //Player can be either a player object or a aiturret...

            GameConnection client = user["client"];

            for (int i = 0; i < 8; i++)
            {
                if (user.GetType() == typeof(Player))
                {
                    ShapeBaseImageData image = (user).getMountedImage(i);
                    if (image <= 0)
                    {
                        continue;
                    }

                    if (!image["ammo"].isObject())
                    {
                        continue;
                    }
                    if (((SimObject)image["ammo"]).getId() != this.getId())
                    {
                        continue;
                    }

                    (user).setImageAmmo(i, value != 0);
                }
                else if (user.GetType() == typeof(AITurretShape))
                {
                    ShapeBaseImageData image = (user).getMountedImage(i);
                    if (image <= 0)
                    {
                        continue;
                    }

                    if (!image["ammo"].isObject())
                    {
                        continue;
                    }
                    if (((SimObject)image["ammo"]).getId() != getId())
                    {
                        continue;
                    }

                    (user).setImageAmmo(i, value != 0);
                }

                int currentammo = user.getInventory(this); // ShapeBaseShapeBaseGetInventory(player, thisobj);

                if (user.getClassName() != "Player")
                {
                    continue;
                }

                int amountInClips;

                if (this["clip"].isObject())
                {
                    amountInClips = user.getInventory(this["clip"]);
                    // ShapeBaseShapeBaseGetInventory(player, thisobj["clip"]);

                    amountInClips *= this["maxInventory"].AsInt();

                    amountInClips += user["remaining" + getName()].AsInt();
                }
                else
                {
                    amountInClips = currentammo;
                    currentammo   = 1;
                }
                if (user["client"] != string.Empty && !user["isAiControlled"].AsBool())
                {
                    client.setAmmoAmountHud(currentammo, amountInClips);
                }
            }
        }