mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 04:56:20 +00:00
[Commands] Add #feature Command. (#2142)
* [Commands] Add #feature Command. - Removes #beard, #beardcolor, #details, #face, #hair, #haircolor, #helm, #heritage, #size, and #tattoo commands. - Cleanup messages and logic. - Consolidate 13 different feature settings to this one command. - Unique commands including #gender, #race, and #texture were not removed. * Add missing feature.cpp. * Update feature.cpp
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_beard(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #beard [number of beard style]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = atoi(sep->arg[1]);
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Beard = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_beardcolor(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #beardcolor [number of beard color]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = atoi(sep->arg[1]);
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Beard Color = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_details(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #details [number of drakkin detail]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = atoi(sep->arg[1]);
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Details = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_face(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #face [number of face]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = atoi(sep->arg[1]);
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Face = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_feature(Client *c, const Seperator *sep)
|
||||
{
|
||||
int arguments = sep->argnum;
|
||||
if (arguments < 2) {
|
||||
auto feature_save_link = EQ::SayLinkEngine::GenerateQuestSaylink(
|
||||
"#npcedit featuresave",
|
||||
false,
|
||||
"#npcedit featuresave"
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Usage: #feature beard [Beard] - Change your or your target's Beard");
|
||||
c->Message(Chat::White, "Usage: #feature beardcolor [Beard Color] - Change your or your target's Beard Color");
|
||||
c->Message(Chat::White, "Usage: #feature details [Details] - Change your or your target's Drakkin Details");
|
||||
c->Message(Chat::White, "Usage: #feature face [Face] - Change your or your target's Face");
|
||||
c->Message(Chat::White, "Usage: #feature gender [Gender] - Change your or your target's Gender");
|
||||
c->Message(Chat::White, "Usage: #feature hair [Hair] - Change your or your target's Hair");
|
||||
c->Message(Chat::White, "Usage: #feature haircolor [Hair Color] - Change your or your target's Hair Color");
|
||||
c->Message(Chat::White, "Usage: #feature helm [Helmet Texture] - Change your or your target's Helmet Texture");
|
||||
c->Message(Chat::White, "Usage: #feature heritage [Heritage] - Change your or your target's Drakkin Heritage");
|
||||
c->Message(Chat::White, "Usage: #feature race [Race ID] - Change your or your target's Race");
|
||||
c->Message(Chat::White, "Usage: #feature size [Size] - Change your or your target's Size (Valid values are 0 to 255, decimal increments are allowed.)");
|
||||
c->Message(Chat::White, "Usage: #feature tattoo [Tattoo] - Change your or your target's Drakkin Tattoos");
|
||||
c->Message(Chat::White, "Usage: #feature texture [Texture] - Change your or your target's Texture");
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Note: All features are temporary. If your target is an NPC, you can save these features to the database using {}.",
|
||||
feature_save_link
|
||||
).c_str()
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
Mob* target = c->GetTarget() ? c->GetTarget() : c;
|
||||
|
||||
bool is_beard = !strcasecmp(sep->arg[1], "beard");
|
||||
bool is_beard_color = !strcasecmp(sep->arg[1], "beardcolor");
|
||||
bool is_details = !strcasecmp(sep->arg[1], "details");
|
||||
bool is_face = !strcasecmp(sep->arg[1], "face");
|
||||
bool is_gender = !strcasecmp(sep->arg[1], "gender");
|
||||
bool is_hair = !strcasecmp(sep->arg[1], "hair");
|
||||
bool is_hair_color = !strcasecmp(sep->arg[1], "haircolor");
|
||||
bool is_helm = !strcasecmp(sep->arg[1], "helm");
|
||||
bool is_heritage = !strcasecmp(sep->arg[1], "heritage");
|
||||
bool is_race = !strcasecmp(sep->arg[1], "race");
|
||||
bool is_size = !strcasecmp(sep->arg[1], "size");
|
||||
bool is_tattoo = !strcasecmp(sep->arg[1], "tattoo");
|
||||
bool is_texture = !strcasecmp(sep->arg[1], "texture");
|
||||
|
||||
if (
|
||||
!is_beard &&
|
||||
!is_beard_color &&
|
||||
!is_details &&
|
||||
!is_face &&
|
||||
!is_gender &&
|
||||
!is_hair &&
|
||||
!is_hair_color &&
|
||||
!is_helm &&
|
||||
!is_heritage &&
|
||||
!is_race &&
|
||||
!is_size &&
|
||||
!is_tattoo &&
|
||||
!is_texture
|
||||
) {
|
||||
auto feature_save_link = EQ::SayLinkEngine::GenerateQuestSaylink(
|
||||
"#npcedit featuresave",
|
||||
false,
|
||||
"#npcedit featuresave"
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Usage: #feature beard [Beard] - Change your or your target's Beard");
|
||||
c->Message(Chat::White, "Usage: #feature beardcolor [Beard Color] - Change your or your target's Beard Color");
|
||||
c->Message(Chat::White, "Usage: #feature details [Details] - Change your or your target's Drakkin Details");
|
||||
c->Message(Chat::White, "Usage: #feature face [Face] - Change your or your target's Face");
|
||||
c->Message(Chat::White, "Usage: #feature gender [Gender] - Change your or your target's Gender");
|
||||
c->Message(Chat::White, "Usage: #feature hair [Hair] - Change your or your target's Hair");
|
||||
c->Message(Chat::White, "Usage: #feature haircolor [Hair Color] - Change your or your target's Hair Color");
|
||||
c->Message(Chat::White, "Usage: #feature helm [Helmet Texture] - Change your or your target's Helmet Texture");
|
||||
c->Message(Chat::White, "Usage: #feature heritage [Heritage] - Change your or your target's Drakkin Heritage");
|
||||
c->Message(Chat::White, "Usage: #feature race [Race ID] - Change your or your target's Race");
|
||||
c->Message(Chat::White, "Usage: #feature size [Size] - Change your or your target's Size (Valid values are 0 to 255, decimal increments are allowed.)");
|
||||
c->Message(Chat::White, "Usage: #feature tattoo [Tattoo] - Change your or your target's Drakkin Tattoos");
|
||||
c->Message(Chat::White, "Usage: #feature texture [Texture] - Change your or your target's Texture");
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Note: All features are temporary. If your target is an NPC, you can save these features to the database using {}.",
|
||||
feature_save_link
|
||||
).c_str()
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
auto beard = target->GetBeard();
|
||||
auto beard_color = target->GetBeardColor();
|
||||
auto details = target->GetDrakkinDetails();
|
||||
auto face = target->GetLuclinFace();
|
||||
auto gender = target->GetGender();
|
||||
auto hair = target->GetHairStyle();
|
||||
auto hair_color = target->GetHairColor();
|
||||
auto helm_texture = target->GetHelmTexture();
|
||||
auto heritage = target->GetDrakkinHeritage();
|
||||
auto race = target->GetModel();
|
||||
auto size = target->GetSize();
|
||||
auto tattoo = target->GetDrakkinTattoo();
|
||||
auto texture = target->GetTexture();
|
||||
|
||||
|
||||
std::string feature_changed;
|
||||
float value_changed;
|
||||
|
||||
if (is_beard) {
|
||||
beard = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Beard";
|
||||
value_changed = beard;
|
||||
} else if (is_beard_color) {
|
||||
beard_color = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Beard Color";
|
||||
value_changed = beard_color;
|
||||
} else if (is_details) {
|
||||
if (target->GetRace() != DRAKKIN) {
|
||||
c->Message(Chat::White, "You must target a Drakkin to use this command.");
|
||||
return;
|
||||
}
|
||||
|
||||
details = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Drakkin Details";
|
||||
value_changed = details;
|
||||
} else if (is_face) {
|
||||
face = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Face";
|
||||
value_changed = face;
|
||||
} else if (is_gender) {
|
||||
gender = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Gender";
|
||||
value_changed = gender;
|
||||
} else if (is_hair) {
|
||||
hair = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Hair";
|
||||
value_changed = hair;
|
||||
} else if (is_hair_color) {
|
||||
hair_color = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Hair Color";
|
||||
value_changed = hair_color;
|
||||
} else if (is_helm) {
|
||||
helm_texture = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Helmet Texture";
|
||||
value_changed = helm_texture;
|
||||
} else if (is_heritage) {
|
||||
if (target->GetRace() != DRAKKIN) {
|
||||
c->Message(Chat::White, "You must target a Drakkin to use this command.");
|
||||
return;
|
||||
}
|
||||
|
||||
heritage = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Drakkin Heritage";
|
||||
value_changed = heritage;
|
||||
} else if (is_race) {
|
||||
race = static_cast<uint16>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Race";
|
||||
value_changed = race;
|
||||
} else if (is_size) {
|
||||
size = std::stof(sep->arg[2]);
|
||||
|
||||
if (size < 0 || size > 255) {
|
||||
c->Message(Chat::White, "Usage: #feature size [Size] - Change your or your target's Size temporarily (Valid values are 0 to 255, decimal increments are allowed.)");
|
||||
return;
|
||||
}
|
||||
|
||||
feature_changed = "Size";
|
||||
value_changed = size;
|
||||
} else if (is_tattoo) {
|
||||
if (target->GetRace() != DRAKKIN) {
|
||||
c->Message(Chat::White, "You must target a Drakkin to use this command.");
|
||||
return;
|
||||
}
|
||||
|
||||
tattoo = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Drakkin Tattoos";
|
||||
value_changed = tattoo;
|
||||
} else if (is_texture) {
|
||||
texture = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
feature_changed = "Texture";
|
||||
value_changed = texture;
|
||||
}
|
||||
|
||||
target->SendIllusionPacket(
|
||||
race,
|
||||
gender,
|
||||
texture,
|
||||
helm_texture,
|
||||
hair_color,
|
||||
beard_color,
|
||||
target->GetEyeColor1(),
|
||||
target->GetEyeColor2(),
|
||||
hair,
|
||||
face,
|
||||
beard,
|
||||
0xFF,
|
||||
heritage,
|
||||
tattoo,
|
||||
details,
|
||||
size
|
||||
);
|
||||
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"{} set for {} to {}.",
|
||||
feature_changed,
|
||||
(
|
||||
c == target ?
|
||||
"yourself" :
|
||||
fmt::format(
|
||||
"{} ({})",
|
||||
target->GetCleanName(),
|
||||
target->GetID()
|
||||
)
|
||||
),
|
||||
(
|
||||
is_size ?
|
||||
fmt::format(
|
||||
"{:.2f}",
|
||||
value_changed
|
||||
) :
|
||||
fmt::format(
|
||||
"{}",
|
||||
static_cast<uint8>(value_changed)
|
||||
)
|
||||
)
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_hair(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #hair [number of hair style]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = atoi(sep->arg[1]);
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Hair = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_haircolor(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #haircolor [number of hair color]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = atoi(sep->arg[1]);
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Hair Color = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_helm(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #helm [number of helm texture]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = atoi(sep->arg[1]);
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Helm = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_heritage(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #heritage [number of Drakkin heritage]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = atoi(sep->arg[1]);
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Heritage = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -537,19 +537,29 @@ void command_npcedit(Client *c, const Seperator *sep)
|
||||
if (strcasecmp(sep->arg[1], "featuresave") == 0) {
|
||||
c->Message(
|
||||
Chat::Yellow,
|
||||
fmt::format("NPC ID {} saved with all current facial feature settings.", npc_id).c_str());
|
||||
fmt::format("NPC ID {} saved with all current body and facial feature settings.", npc_id).c_str());
|
||||
Mob *target = c->GetTarget();
|
||||
std::string query = fmt::format(
|
||||
"UPDATE npc_types "
|
||||
"SET luclin_haircolor = {}, luclin_beardcolor = {}, "
|
||||
"luclin_hairstyle = {}, luclin_beard = {}, "
|
||||
"face = {}, drakkin_heritage = {}, "
|
||||
"drakkin_tattoo = {}, drakkin_details = {} "
|
||||
"drakkin_tattoo = {}, drakkin_details = {}, "
|
||||
"texture = {}, helmtexture = {}, "
|
||||
"gender = {}, size = {:.2f}"
|
||||
"WHERE id = {}",
|
||||
target->GetHairColor(), target->GetBeardColor(),
|
||||
target->GetHairStyle(), target->GetBeard(),
|
||||
target->GetLuclinFace(), target->GetDrakkinHeritage(),
|
||||
target->GetDrakkinTattoo(), target->GetDrakkinDetails(),
|
||||
target->GetHairColor(),
|
||||
target->GetBeardColor(),
|
||||
target->GetHairStyle(),
|
||||
target->GetBeard(),
|
||||
target->GetLuclinFace(),
|
||||
target->GetDrakkinHeritage(),
|
||||
target->GetDrakkinTattoo(),
|
||||
target->GetDrakkinDetails(),
|
||||
target->GetTexture(),
|
||||
target->GetHelmTexture(),
|
||||
target->GetGender(),
|
||||
target->GetSize(),
|
||||
npc_id
|
||||
);
|
||||
content_db.QueryDatabase(query);
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_size(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #size [0 - 255] (Decimal increments are allowed)");
|
||||
}
|
||||
else {
|
||||
float newsize = atof(sep->arg[1]);
|
||||
if (newsize > 255) {
|
||||
c->Message(Chat::White, "Error: #size: Size can not be greater than 255.");
|
||||
}
|
||||
else if (newsize < 0) {
|
||||
c->Message(Chat::White, "Error: #size: Size can not be less than 0.");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetModel();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = target->GetDrakkinTattoo();
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails, newsize
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Size = %f", atof(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_tattoo(Client *c, const Seperator *sep)
|
||||
{
|
||||
Mob *target = c->GetTarget();
|
||||
if (!sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #tattoo [number of Drakkin tattoo]");
|
||||
}
|
||||
else if (!target) {
|
||||
c->Message(Chat::White, "Error: this command requires a target");
|
||||
}
|
||||
else {
|
||||
uint16 Race = target->GetRace();
|
||||
uint8 Gender = target->GetGender();
|
||||
uint8 Texture = 0xFF;
|
||||
uint8 HelmTexture = 0xFF;
|
||||
uint8 HairColor = target->GetHairColor();
|
||||
uint8 BeardColor = target->GetBeardColor();
|
||||
uint8 EyeColor1 = target->GetEyeColor1();
|
||||
uint8 EyeColor2 = target->GetEyeColor2();
|
||||
uint8 HairStyle = target->GetHairStyle();
|
||||
uint8 LuclinFace = target->GetLuclinFace();
|
||||
uint8 Beard = target->GetBeard();
|
||||
uint32 DrakkinHeritage = target->GetDrakkinHeritage();
|
||||
uint32 DrakkinTattoo = atoi(sep->arg[1]);
|
||||
uint32 DrakkinDetails = target->GetDrakkinDetails();
|
||||
|
||||
target->SendIllusionPacket(
|
||||
Race, Gender, Texture, HelmTexture, HairColor, BeardColor,
|
||||
EyeColor1, EyeColor2, HairStyle, LuclinFace, Beard, 0xFF,
|
||||
DrakkinHeritage, DrakkinTattoo, DrakkinDetails
|
||||
);
|
||||
|
||||
c->Message(Chat::White, "Tattoo = %i", atoi(sep->arg[1]));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user