ModernUO/Distribution/Data/Spawns/post-uoml/termur/Vendors.json
Kamron Batman 0d1fffd9fc
fix: Fixes spawners, adds convertpremiumspawners, exportspawners, and replaces with neruns distro (#751)
### Additions
* Adds `[exportspawners <relative json file path to distro>`
  * If no path is provided, it will be saved to the `Data\Spawns` folder with the current timestamp as the file name.
  * Supports global, facet, region, multi, and area
* Fixes client disconnect for bad spawner generation command.
* Moves spawner commands to their own folder.
* Adds GUIDs for spawners. This allows for easy replacement during import to reduce duplication.
* Allows exporting the name of the spawner.
* Fixes globbing when using [generatespawners
* Adds [convertpremiumspawners to convert Premium Spawners (from Neruns distro)

Possibly in .NET 6 serializing JSON will be more performant using JSON nodes.


### Screenshots
![Screen_Shot_2021-08-31_at_10 20 06_PM](https://user-images.githubusercontent.com/3953314/131618495-cf7e3ae5-58e5-4f86-9d3c-3cc49906d9fc.png)
![Screen_Shot_2021-08-31_at_10 21 08_PM](https://user-images.githubusercontent.com/3953314/131618502-c39cc368-2266-47a5-9b87-e5ffa108b875.png)
![Screen_Shot_2021-08-31_at_10 13 29_PM](https://user-images.githubusercontent.com/3953314/131618512-f9807f1b-76e4-4503-989d-42324798fbf5.png)
2021-09-03 21:52:44 -07:00

473 lines
12 KiB
JSON

[
{
"type": "Spawner",
"guid": "bbead3c6-3240-42b2-913a-ebfef32db838",
"name": "Spawner (604)",
"location": [976, 3881, -42],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Baker", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "52458efa-1c22-4df9-b3fa-7b209f6550fc",
"name": "Spawner (604)",
"location": [1010, 3883, -42],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Blacksmith", "maxCount": 1, "probability": 100 },
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "79afea99-40f5-4b8f-a6fc-a9330b0dd208",
"name": "Spawner (604)",
"location": [1013, 3913, -42],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Healer", "maxCount": 1, "probability": 100 },
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "540b830c-e95a-44e5-b82b-0a28346f5bcc",
"name": "Spawner (604)",
"location": [977, 3909, -42],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tinker", "maxCount": 1, "probability": 100 },
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "9b22fdda-c0d8-4682-ad7f-b94ca5268235",
"name": "Spawner (604)",
"location": [943, 3924, -42],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "InnKeeper", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "0191f32b-01cd-4ef5-899c-44c4f9f78d08",
"name": "Spawner (604)",
"location": [1020, 3884, -42],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Blacksmith", "maxCount": 1, "probability": 100 },
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "7679d194-0c0c-4a5a-bd4e-13ca15bc7739",
"name": "Spawner (604)",
"location": [740, 3466, -19],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "InnKeeper", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "d9534d1a-92aa-4d7d-aeeb-16fda0fb12ce",
"name": "Spawner (604)",
"location": [772, 3467, -20],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Scribe", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "91eb1e54-cedc-4f11-b3c1-2288f9402362",
"name": "Spawner (604)",
"location": [773, 3478, -20],
"map": "TerMur",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Herbalist", "maxCount": 1, "probability": 100 },
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
{ "name": "CustomHairstylist", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "511c4bd0-797d-4de4-b886-9e4feafdd680",
"name": "Spawner (604)",
"location": [772, 3490, -20],
"map": "TerMur",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Mage", "maxCount": 1, "probability": 100 },
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
{ "name": "MageGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "8287d93c-3f09-4570-af64-17f84ad42839",
"name": "Spawner (604)",
"location": [783, 3491, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Healer", "maxCount": 1, "probability": 100 },
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "95c8be4a-6af5-4ab3-8b12-5f513701735c",
"name": "Spawner (604)",
"location": [797, 3494, 0],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Provisioner", "maxCount": 1, "probability": 100 },
{ "name": "Cobbler", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "c57c1da9-d9b3-4499-80f2-9da49885dc3e",
"name": "Spawner (604)",
"location": [805, 3491, -20],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Baker", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "de774a5a-f124-43f1-8f1f-82d484dca7d2",
"name": "Spawner (604)",
"location": [817, 3456, -10],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Butcher", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "52598dc6-27d0-4812-870f-f3217c60aead",
"name": "Spawner (604)",
"location": [817, 3438, 0],
"map": "TerMur",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Carpenter", "maxCount": 1, "probability": 100 },
{ "name": "Architect", "maxCount": 1, "probability": 100 },
{ "name": "RealEstateBroker", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "0379a457-b0ff-4e42-9d2d-500b10014824",
"name": "Spawner (604)",
"location": [817, 3426, 0],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tinker", "maxCount": 1, "probability": 100 },
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "283d4190-21d7-4a1b-9646-3a5599715271",
"name": "Spawner (604)",
"location": [816, 3419, 0],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Blacksmith", "maxCount": 1, "probability": 100 },
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "1b9b84de-25de-40d6-b226-572521e046af",
"name": "Spawner (604)",
"location": [805, 3397, 0],
"map": "TerMur",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tailor", "maxCount": 1, "probability": 100 },
{ "name": "Weaver", "maxCount": 1, "probability": 100 },
{ "name": "TailorGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "4eadeb64-59af-4c61-8ce2-3f77532e3b42",
"name": "Spawner (604)",
"location": [804, 3387, 0],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tanner", "maxCount": 1, "probability": 100 },
{ "name": "Furtrader", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "45389869-a351-4944-9be6-ca8fdf0b095a",
"name": "Spawner (604)",
"location": [851, 3404, -20],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "AnimalTrainer", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "c0bde07d-46c9-4eb4-ac21-0519d27e77d8",
"name": "Spawner (604)",
"location": [833, 3439, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Banker", "maxCount": 1, "probability": 100 },
{ "name": "Minter", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "d80aeb77-8d4f-42c0-a8e6-812e6e7a0b8c",
"name": "Spawner (604)",
"location": [843, 3439, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Banker", "maxCount": 1, "probability": 100 },
{ "name": "Minter", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "2bf33c6d-4020-4d2f-852b-8c60eb2accf1",
"name": "Spawner (604)",
"location": [702, 3435, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tailor", "maxCount": 1, "probability": 100 },
{ "name": "Weaver", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "afe8bc3a-c57f-4a9d-861e-27ce26fb74a1",
"name": "Spawner (604)",
"location": [727, 3425, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Armorer", "maxCount": 1, "probability": 100 },
{ "name": "Weaponsmith", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "48e76763-b2ac-4498-b8d7-d5b3de897ae9",
"name": "Spawner (604)",
"location": [715, 3446, -20],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Farmer", "maxCount": 1, "probability": 100 },
{ "name": "Farmer", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "d4b1f7f7-1d6e-430a-b72b-1bd2e7e87d25",
"name": "Spawner (604)",
"location": [713, 3438, -20],
"map": "TerMur",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "TavernKeeper", "maxCount": 1, "probability": 100 },
{ "name": "Waiter", "maxCount": 1, "probability": 100 },
{ "name": "Barkeeper", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "66ee84bd-77b3-4e7b-b312-770c94944a06",
"name": "Spawner (604)",
"location": [794, 3446, -10],
"map": "TerMur",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Farmer", "maxCount": 1, "probability": 100 },
{ "name": "Farmer", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "ae62da8c-b213-4eaf-b9e6-a67abd9e9355",
"name": "Spawner (604)",
"location": [779, 3431, -10],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Jeweler", "maxCount": 1, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "1317bf06-83d3-426d-9a41-6c34d68dd226",
"name": "Spawner (604)",
"location": [842, 3453, -18],
"map": "TerMur",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 4,
"entries": [{ "name": "TownCrier", "maxCount": 1, "probability": 100 }]
}
]