anyone know if u can do this?
anyone know if u can do this?
Change your verison of code with this and hopefully that will work. You probably would like a value in the config file, but this plugin is suppose to, I believe, be just a simple spawn in minicopter and go. NOTE: There are 2 additions below!!
private void SpawnMinicopter(BasePlayer player)
{
if (!player.IsBuildingBlocked() || _config.canSpawnBuildingBlocked)
{
RaycastHit hit;
if (Physics.Raycast(player.eyes.HeadRay(), out hit, Mathf.Infinity,
LayerMask.GetMask("Construction", "Default", "Deployed", "Resource", "Terrain", "Water", "World")))
{
if (hit.distance > _config.maxSpawnDistance)
{
player.ChatMessage(lang.GetMessage("mini_sdistance", this, player.UserIDString));
}
else
{
Vector3 position = hit.point + Vector3.up * 2f;
BaseVehicle miniEntity = (BaseVehicle)GameManager.server.CreateEntity(_config.assetPrefab, position, new Quaternion());
miniEntity.OwnerID = player.userID;
miniEntity.health = _config.spawnHealth;
miniEntity.Spawn();
// addition 1: changed to modify fuel rate for base vehicle, but will revert back to 0.50f after server restart
MiniCopter minicopter = vehicleMini as MiniCopter;
if (minicopter == null)
return;
minicopter.fuelPerSec = 0.25f;
// end of addition 1
// End
_data.playerMini.Add(player.UserIDString, vehicleMini.net.ID);
if (permission.UserHasPermission(player.UserIDString, _noFuel))
{
// Addition 2 minicopter has already been created and initialized
// MiniCopter minicopter = vehicleMini as MiniCopter;
// End of Addtion 2
if (minicopter == null)
return;
minicopter.fuelPerSec = 0.0001f;
StorageContainer fuelContainer = minicopter.GetFuelSystem().GetFuelContainer();
ItemManager.CreateByItemID(-946369541, 300)?.MoveToContainer(fuelContainer.inventory);
fuelContainer.SetFlag(BaseEntity.Flags.Locked, true);
}
_data.playerMini.Add(player.UserIDString, miniEntity.net.ID);
if (!permission.UserHasPermission(player.UserIDString, _noCooldown))
{
foreach (var perm in _config.cooldowns)
{
if (_data.cooldown.ContainsKey(player.UserIDString))
break;
if (permission.UserHasPermission(player.UserIDString, perm.Key))
_data.cooldown.Add(player.UserIDString, DateTime.Now.AddSeconds(_config.cooldowns[perm.Key]));
}
/* Incase players don't have any cooldown permission default to one day */
if (!_data.cooldown.ContainsKey(player.UserIDString))
_data.cooldown.Add(player.UserIDString, DateTime.Now.AddDays(1));
}
}
}
else
{
player.ChatMessage(lang.GetMessage("mini_terrain", this, player.UserIDString));
}
}
else
{
player.ChatMessage(lang.GetMessage("mini_priv", this, player.UserIDString));
}
}
private void SpawnMinicopter(string id)
{
// Use find incase they put their username
BasePlayer player = BasePlayer.Find(id);
if (player == null)
return;
if (_data.playerMini.ContainsKey(player.UserIDString))
{
player.ChatMessage(lang.GetMessage("mini_current", this, player.UserIDString));
return;
}
// Credit Original MyMinicopter Plugin
Quaternion rotation = player.GetNetworkRotation();
Vector3 forward = rotation * Vector3.forward;
Vector3 straight = Vector3.Cross(Vector3.Cross(Vector3.up, forward), Vector3.up).normalized;
Vector3 position = player.transform.position + straight * 5f;
position.y = player.transform.position.y + 2f;
if (position == null) return;
BaseVehicle vehicleMini = (BaseVehicle)GameManager.server.CreateEntity(_config.assetPrefab, position, new Quaternion());
if (vehicleMini == null) return;
vehicleMini.OwnerID = player.userID;
vehicleMini.Spawn();
// addition 1: changed to modify fuel rate for base vehicle, but will revert back to 0.50f after server restart
MiniCopter minicopter = vehicleMini as MiniCopter;
if (minicopter == null)
return;
minicopter.fuelPerSec = 0.25f;
// end of addition 1
// End
_data.playerMini.Add(player.UserIDString, vehicleMini.net.ID);
if (permission.UserHasPermission(player.UserIDString, _noFuel))
{
// Addition 2 minicopter has already been created and initialized
// MiniCopter minicopter = vehicleMini as MiniCopter;
// End of Addtion 2
if (minicopter == null)
return;
minicopter.fuelPerSec = 0;
StorageContainer fuelContainer = minicopter.GetFuelSystem().GetFuelContainer();
ItemManager.CreateByItemID(-946369541, 300)?.MoveToContainer(fuelContainer.inventory);
fuelContainer.SetFlag(BaseEntity.Flags.Locked, true);
}
}Look for Addition 1 section in 2 different sections, something that shouldn't be. Code should only be written once for easier and quicker maintenance upgrades.
// addition 1: changed to modify fuel rate for base vehicle, but will revert back to 0.50f after server restart
MiniCopter minicopter = vehicleMini as MiniCopter;
if (minicopter == null)
return;
minicopter.fuelPerSec = 0.25f;
// end of addition 1
Change value:
minicopter.fuelPerSec = 0.25f;To what you are looking for, but understand that after a server restart the game will revert that value to 0.50f. If want a change to revert back after restart let me know. I might be slow to respond, but I will.
A good range should keep the value between 0.10 and 0.35. If you wish to have tiers then that is possible to, but more code additions.