[Cleanup] Fix #spawn command NPCs having 0 health (#3371)

# Notes
- NPCs when spawned with this command have 0 health by default, requiring operators to manually edit their health if they're using this NPC as an NPC in their hub.
This commit is contained in:
Alex King
2023-05-21 18:48:08 -04:00
committed by GitHub
parent e305ba852b
commit ff4b117cfa
2 changed files with 75 additions and 28 deletions
+28 -11
View File
@@ -2,19 +2,36 @@
void command_spawn(Client *c, const Seperator *sep)
{
if (sep->arg[1][0] != 0) {
Client *client = entity_list.GetClientByName(sep->arg[1]);
if (client) {
c->Message(Chat::White, "You cannot spawn a mob with the same name as a character!");
return;
}
}
NPC *npc = NPC::SpawnNPC(sep->argplus[1], c->GetPosition(), c);
if (!npc) {
const auto arguments = sep->argnum;
if (!arguments) {
c->Message(Chat::White, "Usage: #spawn [Name]");
c->Message(
Chat::White,
"Format: #spawn name race level material hp gender class priweapon secweapon merchantid bodytype - spawns a npc those parameters."
"Optional Usage: #spawn [Name] [Race] [Level] [Texture] [Health] [Gender] [Class] [Primary Model] [Secondary Model] [Merchant ID] [Body Type]"
);
c->Message(
Chat::White,
"Name Format: NPCFirstname_NPCLastname - All numbers in a name are stripped and \"_\" characters become a space."
);
c->Message(
Chat::White,
"Note: Using \"-\" for gender will autoselect the gender for the race. Using \"-\" for HP will use the calculated maximum HP."
);
return;
}
const auto* m = entity_list.GetClientByName(sep->arg[1]);
if (m) {
c->Message(Chat::White, "You cannot spawn a mob with the same name as a character!");
return;
}
const auto* n = NPC::SpawnNPC(sep->argplus[1], c->GetPosition(), c);
if (!n) {
c->Message(Chat::White, "Usage: #spawn [Name]");
c->Message(
Chat::White,
"Optional Usage: #spawn [Name] [Race] [Level] [Texture] [Health] [Gender] [Class] [Primary Model] [Secondary Model] [Merchant ID] [Body Type]"
);
c->Message(
Chat::White,