mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-10 23:20:25 +00:00
[Commands] Modify #grid and #wp. (#1399)
- #grid add will no longer let you put in a duplicate grid. - Grid nodes now spawn with invul/immune to damage. - Grid nodes now set an entity variable "grid_id" on spawn. - This allows grid nodes to be specifically despawned by "grid_id" entity variable, meaning you can view multiple grids at once and not despawn them all accidentally. - #grid hide will despawn your targeted NPC's Grid nodes. - #grid add, #grid show, #grid delete, and #grid hide send messages to let GM know what's going on. - #wp add and #wp delete now send messages to let the GM know what's going on. - #wpadd now send messages to let the GM know what's going on.
This commit is contained in:
+22
-24
@@ -1099,8 +1099,7 @@ bool NPC::SpawnZoneController()
|
||||
return true;
|
||||
}
|
||||
|
||||
void NPC::SpawnGridNodeNPC(const glm::vec4 &position, int32 grid_number, int32 zoffset) {
|
||||
|
||||
void NPC::SpawnGridNodeNPC(const glm::vec4 &position, int32 grid_id, int32 grid_number, int32 zoffset) {
|
||||
auto npc_type = new NPCType;
|
||||
memset(npc_type, 0, sizeof(NPCType));
|
||||
|
||||
@@ -1112,31 +1111,30 @@ void NPC::SpawnGridNodeNPC(const glm::vec4 &position, int32 grid_number, int32 z
|
||||
strcat(npc_type->name, "(Stacked)");
|
||||
}
|
||||
|
||||
npc_type->current_hp = 4000000;
|
||||
npc_type->max_hp = 4000000;
|
||||
npc_type->race = 2254;
|
||||
npc_type->gender = 2;
|
||||
npc_type->class_ = 9;
|
||||
npc_type->deity = 1;
|
||||
npc_type->level = 200;
|
||||
npc_type->npc_id = 0;
|
||||
npc_type->loottable_id = 0;
|
||||
npc_type->texture = 1;
|
||||
npc_type->light = 1;
|
||||
npc_type->size = 1;
|
||||
npc_type->runspeed = 0;
|
||||
npc_type->merchanttype = 1;
|
||||
npc_type->bodytype = 1;
|
||||
npc_type->show_name = true;
|
||||
npc_type->findable = true;
|
||||
npc_type->current_hp = 4000000;
|
||||
npc_type->max_hp = 4000000;
|
||||
npc_type->race = 2254;
|
||||
npc_type->gender = 2;
|
||||
npc_type->class_ = 9;
|
||||
npc_type->deity = 1;
|
||||
npc_type->level = 200;
|
||||
npc_type->npc_id = 0;
|
||||
npc_type->loottable_id = 0;
|
||||
npc_type->texture = 1;
|
||||
npc_type->light = 1;
|
||||
npc_type->size = 1;
|
||||
npc_type->runspeed = 0;
|
||||
npc_type->merchanttype = 1;
|
||||
npc_type->bodytype = 1;
|
||||
npc_type->show_name = true;
|
||||
npc_type->findable = true;
|
||||
strn0cpy(npc_type->special_abilities, "24,1^35,1", 512);
|
||||
|
||||
auto node_position = glm::vec4(position.x, position.y, position.z, position.w);
|
||||
auto npc = new NPC(npc_type, nullptr, node_position, GravityBehavior::Flying);
|
||||
|
||||
npc->name[strlen(npc->name)-3] = (char) NULL;
|
||||
|
||||
auto npc = new NPC(npc_type, nullptr, node_position, GravityBehavior::Flying);
|
||||
npc->name[strlen(npc->name) - 3] = (char) NULL;
|
||||
npc->GiveNPCTypeData(npc_type);
|
||||
|
||||
npc->SetEntityVariable("grid_id", itoa(grid_id));
|
||||
entity_list.AddNPC(npc);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user