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); }
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); } } }