Compatible With:
- Oxide
- Carbon
Features :
API :
Example best API usage for CanUpdateToBradleyTier :
Configuration :
Language :
- Complete rewrite (v2.0.0)
- Spawns Configurable tiered bradleys
- Easy configuration and setup
- Can add or remove tiers (v2.0.0)
- BradleyGuards and BradleyOptions will disable their HP and Cratedrop settings automaticly (Krungh Crow versions).
- Spawn and Kill Messages
- Option to make a vanilla bradley spawn instead of a Tiered one at random.
- Set a extra reward in the form of Economics or ServerRewards
- Reworked Tiered loot systems v2.0.0
- Message cooldownsystem.
- New API for other developers is made available (v2.0.0)
- Support for AlphaLoot (v2.0.0)
- Support for UINotify & Notify / GUIAnnouncements /QueuedPopups
- Support for Economics, ServerRewards, SKillTree and XPerience,
- bradleytiers.use : To be able to use the /bt info chatcommand.
- bradleytiers.admin : To spawn tiered bradleys.
- /bt info : Displays the available tiers on the server (v2.0.0).
- /bt spawn <Tier> : Admin permission is needed.
- bt.spawn <steamId> <tiername> : Spawns a tiered bradley around the players location
API :
C#:
object CanUpdateToBradleyTier(BradleyAPC bradley)
void OnBradleyTiersSpawned(BradleyAPC apc , string tierName)
void OnTieredBradleyDeath(BradleyAPC bradley , HitInfo info , string tierName)
object IsTieredBradley(BradleyAPC bradley)
string GetBradleyTier(BradleyAPC bradley)
ulong GetBradleyPurchaserId(BradleyAPC bradley)
bool IsPurchasedBradley(BradleyAPC bradley)
Dictionary<NetworkableId , ulong> GetAllPurchasedBradleys()
Dictionary<string , object> GetBradleyTierData()
void OnBradleyTierPurchased(player , bradley , tier.Name)
Example best API usage for CanUpdateToBradleyTier :
C#:
// store your bradley before the spawning
private readonly HashSet<BradleyAPC> _invasionBradleyRefs = new HashSet<BradleyAPC>();
// your method of after spawning
private readonly HashSet<ulong> _invasionBradleys = new HashSet<ulong>();
// Inside your method BEFORE !!! your spawning
private YourMethod()
{
//.... code
var brad = GameManager.server.CreateEntity(BRADLEY_PREFAB , finalPos , Quaternion.identity , true) as BradleyAPC;
//.... code
_invasionBradleyRefs.Add(brad);
brad.Spawn();
//.... rest of your code to set variables
if (brad.net != null)
{
_invasionBradleys.Add(brad.net.ID.Value);
}
}
// Place this inside your plugin code.
private object CanUpdateToBradleyTier(BradleyAPC bradley)
{
if (bradley == null) return null;
if (_invasionBradleyRefs.Contains(bradley)) return false;
if (bradley.net != null && _invasionBradleys.Contains(bradley.net.ID.Value)) return false;
return null;
}
Configuration :
- Want a certain item to spawn as a blue print just add .bp behind its shortname !
- Example of custom items like the ExtendedRecycler plugins recycler item.
C#:
{
"probability": 0.6,
"shortname": "box.repair.bench",
"name": "Recycler",
"skin": 1594245394,
"amountMin": 1,
"amount": 1
},
JSON:
{
"Prefix": "[Bradley Tiers] ",
"Chat Steam64ID": 76561199183246772,
"Debug": false,
"QueuedPopups (when installed)": {
"Background Color (rgba)": "0 0 0.65 0.6",
"Height (Pixels)": 34.0
},
"Notifications": {
"Annouce spawned to chat": true,
"Annouce destroyed to chat": true,
"Use GUIAnnouncement": false,
"Use SimpleKillFeed": false,
"Use Notify": true,
"Notify profile ID": 0
},
"Other Plugins": {
"Include ArmoredTrain Bradley": false,
"Include Convoy Bradley": false,
"Include RoadBradley": false,
"Include SatDish/Harbor Event Bradley": false
},
"Loot Settings": {
"Use lootsystem (internal)": false,
"Use Random Skins (internal)": false,
"Use AlphaLoot": false
},
"Tiers": {
"0": {
"Name": "Easy",
"BradleyHealth": 1000.0,
"BradleyBDamage": 1.0,
"BradleyMaxFireRange": 100.0,
"BradleySpeed": 10.0,
"BradleyCratesAmount": 2,
"Color": "green",
"SpawnChance": 25.0,
"EconomicsReward": 100.0,
"ServerRewards": 10,
"SkillTree Points": 0,
"Xperience XP": 25.0,
"AlphaLoot Profile": "",
"Spawn Min Amount Items": 2,
"Spawn Max Amount Items": 6,
"Loot Table": [
{
"probability": 1.0,
"shortname": "ammo.pistol",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.pistol.fire",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.explosive",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.hv",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.incendiary",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "explosive.timed",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 5
},
{
"probability": 1.0,
"shortname": "explosives",
"name": "",
"skin": 0,
"amountMin": 200,
"amount": 200
},
{
"probability": 1.0,
"shortname": "pistol.m92",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "shotgun.spas12",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "pickaxe",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "hatchet",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "can.beans",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "can.tuna",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "black.raspberries",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 0.6,
"shortname": "hmlmg",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 0.6,
"shortname": "supply.signal",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
}
]
},
"1": {
"Name": "Medium",
"BradleyHealth": 2000.0,
"BradleyBDamage": 1.0,
"BradleyMaxFireRange": 100.0,
"BradleySpeed": 10.0,
"BradleyCratesAmount": 4,
"Color": "purple",
"SpawnChance": 25.0,
"EconomicsReward": 200.0,
"ServerRewards": 20,
"SkillTree Points": 0,
"Xperience XP": 25.0,
"AlphaLoot Profile": "",
"Spawn Min Amount Items": 3,
"Spawn Max Amount Items": 7,
"Loot Table": [
{
"probability": 1.0,
"shortname": "ammo.pistol",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.pistol.fire",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.explosive",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.hv",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.incendiary",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "explosive.timed",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 5
},
{
"probability": 1.0,
"shortname": "explosives",
"name": "",
"skin": 0,
"amountMin": 200,
"amount": 200
},
{
"probability": 1.0,
"shortname": "pistol.m92",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "shotgun.spas12",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "pickaxe",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "hatchet",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "can.beans",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "can.tuna",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "black.raspberries",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 0.6,
"shortname": "hmlmg",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 0.6,
"shortname": "supply.signal",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
}
]
},
"2": {
"Name": "Hard",
"BradleyHealth": 3000.0,
"BradleyBDamage": 1.0,
"BradleyMaxFireRange": 100.0,
"BradleySpeed": 10.0,
"BradleyCratesAmount": 5,
"Color": "red",
"SpawnChance": 25.0,
"EconomicsReward": 300.0,
"ServerRewards": 30,
"SkillTree Points": 0,
"Xperience XP": 25.0,
"AlphaLoot Profile": "",
"Spawn Min Amount Items": 4,
"Spawn Max Amount Items": 8,
"Loot Table": [
{
"probability": 1.0,
"shortname": "ammo.pistol",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.pistol.fire",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.explosive",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.hv",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.incendiary",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "explosive.timed",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 5
},
{
"probability": 1.0,
"shortname": "explosives",
"name": "",
"skin": 0,
"amountMin": 200,
"amount": 200
},
{
"probability": 1.0,
"shortname": "pistol.m92",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "shotgun.spas12",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "pickaxe",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "hatchet",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "can.beans",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "can.tuna",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "black.raspberries",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 0.6,
"shortname": "hmlmg",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 0.6,
"shortname": "supply.signal",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
}
]
},
"3": {
"Name": "Nightmare",
"BradleyHealth": 4000.0,
"BradleyBDamage": 1.0,
"BradleyMaxFireRange": 100.0,
"BradleySpeed": 10.0,
"BradleyCratesAmount": 6,
"Color": "yellow",
"SpawnChance": 25.0,
"EconomicsReward": 400.0,
"ServerRewards": 40,
"SkillTree Points": 0,
"Xperience XP": 25.0,
"AlphaLoot Profile": "",
"Spawn Min Amount Items": 5,
"Spawn Max Amount Items": 10,
"Loot Table": [
{
"probability": 1.0,
"shortname": "ammo.pistol",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.pistol.fire",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.explosive",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.hv",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.rifle.incendiary",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "ammo.shotgun",
"name": "",
"skin": 0,
"amountMin": 128,
"amount": 256
},
{
"probability": 1.0,
"shortname": "explosive.timed",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 5
},
{
"probability": 1.0,
"shortname": "explosives",
"name": "",
"skin": 0,
"amountMin": 200,
"amount": 200
},
{
"probability": 1.0,
"shortname": "pistol.m92",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "shotgun.spas12",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "pickaxe",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "hatchet",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 1.0,
"shortname": "can.beans",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "can.tuna",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 1.0,
"shortname": "black.raspberries",
"name": "",
"skin": 0,
"amountMin": 3,
"amount": 5
},
{
"probability": 0.6,
"shortname": "hmlmg",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
},
{
"probability": 0.6,
"shortname": "supply.signal",
"name": "",
"skin": 0,
"amountMin": 1,
"amount": 1
}
]
}
}
}
Language :
JSON:
{
"BradleyInitiate": "Careful! This is a {tierName} Bradley APC!",
"InvalidInput": "<color=red>Please enter a valid command!</color>",
"Info": "<color=green>Bradley Tiers v{0}</color>\nWe have the following Tiers :\n",
"KillNotification": "<color=orange>{0}</color> Destroyed a {1} BradleyApc",
"NoPermission": "<color=green>You do not have permission to use that command!</color>",
"SpawnMessage": "A {0} Bradley has spawned around {1}",
"KillRewardMain": "You destroyed a {0} BradleyApc and received: {1}",
"RewardEcon": "<color=green>${0} Economics</color>",
"RewardSR": "<color=orange>{0} RP</color>",
"RewardSeparator": " , ",
"NoRewards": "no extra rewards.",
"NoRoadPoint": "<color=red>No valid road point found within range.</color>",
"BuyUsageHeader": "<color=orange>How to spawn a Bradley:</color>",
"BuyUsageLine": "/bt buy {0}",
"SpawnHeader": "Spawn a Bradley on the nearest road <color=orange>(Admin permission)</color>\n",
"SpawnCommands": "/bt spawn {0}",
"ConfigNotLoaded": "<color=red>Config not loaded. Check server console for errors.</color>",
"RewardSkillPoints": "<color=orange>{0} skill points</color>",
"RewardXperience": "<color=orange>{0} exp</color>"
}