ModernUO/Distribution/Data/Spawns/post-uoml/malas/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

501 lines
14 KiB
JSON

[
{
"type": "Spawner",
"guid": "eb0c4cd9-3ff1-4144-8f50-805c4f595887",
"name": "Spawner (405)",
"location": [989, 520, -50],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Banker", "maxCount": 402, "probability": 100 },
{ "name": "Minter", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "cdc58631-7322-4c50-97ea-b25e61d9bd56",
"name": "Spawner (405)",
"location": [976, 512, -50],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Blacksmith", "maxCount": 402, "probability": 100 },
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "464a5544-69a9-40ce-8529-8a68c40fe106",
"name": "Spawner (405)",
"location": [976, 527, -50],
"map": "Malas",
"count": 406,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tailor", "maxCount": 402, "probability": 100 },
{ "name": "Weaver", "maxCount": 1, "probability": 100 },
{ "name": "TailorGuildmaster", "maxCount": 1, "probability": 100 },
{ "name": "Tanner", "maxCount": 1, "probability": 100 },
{ "name": "Furtrader", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "baa74329-c713-41de-b132-bef2a017cc01",
"name": "Spawner (405)",
"location": [1016, 514, -70],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "KeeperOfChivalry", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "9a22cbaf-db7b-4564-bac8-300d72969774",
"name": "Spawner (405)",
"location": [961, 517, -70],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "KeeperOfChivalry", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "561b96b3-d578-45b0-a152-665e608d2d5e",
"name": "Spawner (405)",
"location": [1004, 527, -50],
"map": "Malas",
"count": 405,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "HolyMage", "maxCount": 402, "probability": 100 },
{ "name": "Herbalist", "maxCount": 1, "probability": 100 },
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
{ "name": "CustomHairstylist", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "055a888a-d617-48fc-9968-02701cfe7a5a",
"name": "Spawner (405)",
"location": [1003, 512, -50],
"map": "Malas",
"count": 406,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tinker", "maxCount": 402, "probability": 100 },
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 },
{ "name": "Carpenter", "maxCount": 1, "probability": 100 },
{ "name": "Architect", "maxCount": 1, "probability": 100 },
{ "name": "RealEstateBroker", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "8a2afa1f-b4b7-4518-841a-d4151c05e909",
"name": "Spawner (405)",
"location": [993, 511, -50],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Provisioner", "maxCount": 402, "probability": 100 },
{ "name": "Cobbler", "maxCount": 1, "probability": 100 },
{ "name": "Jeweler", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "0adb3a0b-2029-4ce4-a312-5c4ebb154f16",
"name": "Spawner (405)",
"location": [989, 527, -50],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "a568f661-2ccc-4c04-8b17-6140365ac4d6",
"name": "Spawner (405)",
"location": [1027, 494, -70],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "AnimalTrainer", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "f6cc425c-8333-43f0-a97e-426b9a7f7183",
"name": "Spawner (405)",
"location": [1029, 520, -55],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Healer", "maxCount": 402, "probability": 100 },
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "12465568-02e0-4724-a062-80d38c208413",
"name": "Spawner (405)",
"location": [950, 520, -55],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Healer", "maxCount": 402, "probability": 100 },
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "185203fe-b60b-4bc1-b216-139ad43298da",
"name": "Spawner (405)",
"location": [1977, 1365, -80],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Blacksmith", "maxCount": 402, "probability": 100 },
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "4c4ec3a1-37de-4340-8474-811c5efe27ca",
"name": "Spawner (405)",
"location": [1992, 1315, -90],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "AnimalTrainer", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "744a4180-6bd2-4ed6-a684-b0340098d695",
"name": "Spawner (405)",
"location": [2011, 1326, -80],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Provisioner", "maxCount": 402, "probability": 100 },
{ "name": "Cobbler", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "1e3b38b2-3a73-4f25-87fa-4b254b148060",
"name": "Spawner (405)",
"location": [2017, 1356, -90],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Baker", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "3d7fe104-6823-4dd7-9544-866aa0c1df70",
"name": "Spawner (405)",
"location": [2027, 1353, -90],
"map": "Malas",
"count": 405,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "TavernKeeper", "maxCount": 402, "probability": 100 },
{ "name": "Waiter", "maxCount": 1, "probability": 100 },
{ "name": "Cook", "maxCount": 1, "probability": 100 },
{ "name": "Barkeeper", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "34b5920d-0a0a-4ac2-8b86-8c2ebbed7908",
"name": "Spawner (405)",
"location": [2023, 1379, -80],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Mage", "maxCount": 402, "probability": 100 },
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
{ "name": "MageGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "614fee1e-655c-4857-861b-1deaf986462e",
"name": "Spawner (405)",
"location": [2025, 1387, -80],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Herbalist", "maxCount": 402, "probability": 100 },
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
{ "name": "CustomHairstylist", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "93d5dde2-eac7-48b1-90d1-d89956efb135",
"name": "Spawner (405)",
"location": [2045, 1397, -90],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "Jeweler", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "0aee480a-4342-4ff4-954e-38b8d0e82625",
"name": "Spawner (405)",
"location": [2048, 1343, -85],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Banker", "maxCount": 402, "probability": 100 },
{ "name": "Minter", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "6bad1c2f-ee34-494d-908b-4756cf0d4aee",
"name": "Spawner (405)",
"location": [2037, 1311, -85],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "8c4b665f-57c6-4989-972a-ce73228d48cd",
"name": "Spawner (405)",
"location": [2066, 1282, -80],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tinker", "maxCount": 402, "probability": 100 },
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "e9186f59-b811-47b4-ad41-65acbcc0767f",
"name": "Spawner (405)",
"location": [2060, 1283, -80],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Carpenter", "maxCount": 402, "probability": 100 },
{ "name": "Architect", "maxCount": 1, "probability": 100 },
{ "name": "RealEstateBroker", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "a6639682-e271-4868-88f7-ecc4527cc0dd",
"name": "Spawner (405)",
"location": [2083, 1322, -80],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tailor", "maxCount": 402, "probability": 100 },
{ "name": "Weaver", "maxCount": 1, "probability": 100 },
{ "name": "TailorGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "f681215a-6f71-43df-b35b-f8eced1a5902",
"name": "Spawner (405)",
"location": [2078, 1327, -80],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Tanner", "maxCount": 402, "probability": 100 },
{ "name": "Furtrader", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "26bb2b1a-76fa-4615-ab02-32a510904bc6",
"name": "Spawner (405)",
"location": [2068, 1372, -75],
"map": "Malas",
"count": 403,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Healer", "maxCount": 402, "probability": 100 },
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "cc995236-3575-40b3-b0a8-8837b80e72dc",
"name": "Spawner (405)",
"location": [1056, 1434, -85],
"map": "Malas",
"count": 402,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
},
{
"type": "Spawner",
"guid": "a34d297a-48f2-440b-bfce-043d0aaf2a16",
"name": "Spawner (405)",
"location": [1050, 1434, -85],
"map": "Malas",
"count": 404,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 0,
"walkingRange": 5,
"entries": [
{ "name": "Waiter", "maxCount": 402, "probability": 100 },
{ "name": "Cook", "maxCount": 1, "probability": 100 },
{ "name": "Barkeeper", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "009d2a99-77f6-4071-b88c-58919f4a63e5",
"name": "Spawner (405)",
"location": [1042, 1444, -90],
"map": "Malas",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 4,
"walkingRange": 6,
"entries": [
{ "name": "AnimalTrainer", "maxCount": 1, "probability": 100 },
{ "name": "Veterinarian", "maxCount": 1, "probability": 100 }
]
}
]