private void OnServerSave() { DataContainer thePersistentData = new DataContainer(); foreach (BaseProjectile eachTaser in BaseNetworkable.serverEntities.OfType <BaseProjectile>()) { TaserController theController = eachTaser.GetComponent <TaserController>(); if (theController) { thePersistentData.NailgunIDs.Add(eachTaser.net.ID); } } Interface.Oxide.DataFileSystem.WriteObject(Name, thePersistentData); }
private void OnWeaponFired(BaseProjectile aProjectile, BasePlayer aPlayer, ItemModProjectile aMod, ProtoBuf.ProjectileShoot aProjectileProtoBuf) { TaserController theController = aProjectile.GetComponent <TaserController>(); if (theController) { theController.ResetTaser(); if (!permission.UserHasPermission(aPlayer.UserIDString, PERMISSION_USETASER)) { Effect.server.Run(config.PrefabShock, aProjectile, StringPool.Get(aProjectile.MuzzleTransform.name), aProjectile.MuzzleTransform.localPosition, Vector3.zero); aPlayer.OnAttacked(new HitInfo(aPlayer, aPlayer, DamageType.ElectricShock, config.NoUsePermissionDamage, aPlayer.transform.position + aPlayer.transform.forward * 1f)); Message(aPlayer, I18N_NOT_ALLOWED_TO_USE); } } }
private void DisableTaserBehaviour(BaseProjectile aBaseProjectile) { Item theItem = aBaseProjectile.GetItem(); if (theItem != null) { theItem.name = null; } aBaseProjectile.canUnloadAmmo = true; aBaseProjectile.primaryMagazine.contents = 0; aBaseProjectile.primaryMagazine.capacity = 16; TaserController theController = aBaseProjectile.GetComponent <TaserController>(); if (theController) { UnityEngine.Object.Destroy(theController); } aBaseProjectile.SendNetworkUpdateImmediate(); }
private void EnableTaserBehaviour(BaseProjectile aBaseProjectile) { Item theItem = aBaseProjectile.GetItem(); if (theItem != null) { theItem.name = GetText(I18N_TASER, theItem.GetOwnerPlayer()?.UserIDString); } aBaseProjectile.canUnloadAmmo = false; aBaseProjectile.primaryMagazine.contents = 1; aBaseProjectile.primaryMagazine.capacity = 0; TaserController theController = aBaseProjectile.GetComponent <TaserController>(); if (theController) { UnityEngine.Object.Destroy(theController); } aBaseProjectile.gameObject.AddComponent <TaserController>().Config = config; aBaseProjectile.SendNetworkUpdateImmediate(); }