mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
#resetaa now covers the function of #resetaa and #refundaa
#resetaa will wipe all AA data, refund the spent points into the available points and send character to character select properly Removed #refundaa Removed a lot of debug code for blob conversion Changed status logging for loads/saves to Debug category
This commit is contained in:
parent
837b9b7ec7
commit
c26a6959e4
@ -1,5 +1,12 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
== 09/22/2014 ==
|
||||||
|
Akkadius: #resetaa now covers the function of #resetaa and #refundaa
|
||||||
|
- #resetaa will wipe all AA data, refund the spent points into the available points and send character to character select properly
|
||||||
|
Akkadius: Removed #refundaa
|
||||||
|
Akkadius: Removed a lot of debug code for blob conversion
|
||||||
|
Akkadius: Changed status logging for loads/saves to Debug category
|
||||||
|
|
||||||
== 09/21/2014 ==
|
== 09/21/2014 ==
|
||||||
Akkadius: Player Profile Blob to Database Conversion
|
Akkadius: Player Profile Blob to Database Conversion
|
||||||
- Summary: HUGE difference in database speeds reads/writes and 1:10 datasize difference
|
- Summary: HUGE difference in database speeds reads/writes and 1:10 datasize difference
|
||||||
|
|||||||
@ -1520,11 +1520,15 @@ bool ZoneDatabase::LoadAAEffects2() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void Client::ResetAA(){
|
void Client::ResetAA(){
|
||||||
|
RefundAA();
|
||||||
uint32 i;
|
uint32 i;
|
||||||
for(i=0;i<MAX_PP_AA_ARRAY;i++){
|
for(i=0;i<MAX_PP_AA_ARRAY;i++){
|
||||||
aa[i]->AA = 0;
|
aa[i]->AA = 0;
|
||||||
aa[i]->value = 0;
|
aa[i]->value = 0;
|
||||||
|
m_pp.aa_array[MAX_PP_AA_ARRAY].AA = 0;
|
||||||
|
m_pp.aa_array[MAX_PP_AA_ARRAY].value = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<uint32,uint8>::iterator itr;
|
std::map<uint32,uint8>::iterator itr;
|
||||||
for(itr=aa_points.begin();itr!=aa_points.end();++itr)
|
for(itr=aa_points.begin();itr!=aa_points.end();++itr)
|
||||||
aa_points[itr->first] = 0;
|
aa_points[itr->first] = 0;
|
||||||
@ -1537,7 +1541,11 @@ void Client::ResetAA(){
|
|||||||
m_pp.group_leadership_exp = 0;
|
m_pp.group_leadership_exp = 0;
|
||||||
m_pp.raid_leadership_exp = 0;
|
m_pp.raid_leadership_exp = 0;
|
||||||
|
|
||||||
|
database.DeleteCharacterAAs(this->CharacterID());
|
||||||
|
SaveAA();
|
||||||
|
SendAATable();
|
||||||
database.DeleteCharacterLeadershipAAs(this->CharacterID());
|
database.DeleteCharacterLeadershipAAs(this->CharacterID());
|
||||||
|
Kick();
|
||||||
}
|
}
|
||||||
|
|
||||||
int Client::GroupLeadershipAAHealthEnhancement()
|
int Client::GroupLeadershipAAHealthEnhancement()
|
||||||
|
|||||||
@ -478,7 +478,6 @@ void Client::ReportConnectingState() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Client::SaveAA(){
|
bool Client::SaveAA(){
|
||||||
clock_t t = std::clock(); /* Function timer start */
|
|
||||||
int first_entry = 0;
|
int first_entry = 0;
|
||||||
std::string rquery;
|
std::string rquery;
|
||||||
/* Save Player AA */
|
/* Save Player AA */
|
||||||
@ -515,7 +514,6 @@ bool Client::SaveAA(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
auto results = database.QueryDatabase(rquery);
|
auto results = database.QueryDatabase(rquery);
|
||||||
LogFile->write(EQEMuLog::Status, "Issuing Client AA Save... CID: %i Took %f seconds", character_id, ((float)(std::clock() - t)) / CLOCKS_PER_SEC);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -523,8 +521,6 @@ bool Client::Save(uint8 iCommitNow) {
|
|||||||
if(!ClientDataLoaded())
|
if(!ClientDataLoaded())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
clock_t t = std::clock(); /* Function timer start */
|
|
||||||
|
|
||||||
/* Wrote current basics to PP for saves */
|
/* Wrote current basics to PP for saves */
|
||||||
m_pp.x = x_pos;
|
m_pp.x = x_pos;
|
||||||
m_pp.y = y_pos;
|
m_pp.y = y_pos;
|
||||||
@ -584,7 +580,6 @@ bool Client::Save(uint8 iCommitNow) {
|
|||||||
SaveTaskState(); /* Save Character Task */
|
SaveTaskState(); /* Save Character Task */
|
||||||
database.SaveCharacterData(this->CharacterID(), this->AccountID(), &m_pp, &m_epp); /* Save Character Data */
|
database.SaveCharacterData(this->CharacterID(), this->AccountID(), &m_pp, &m_epp); /* Save Character Data */
|
||||||
|
|
||||||
LogFile->write(EQEMuLog::Status, "Client::Save %i, done... Took %f seconds", character_id, ((float)(std::clock() - t)) / CLOCKS_PER_SEC);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7968,7 +7963,7 @@ void Client::RefundAA() {
|
|||||||
for(int j = 0; j < cur; j++) {
|
for(int j = 0; j < cur; j++) {
|
||||||
m_pp.aapoints += curaa->cost + (curaa->cost_inc * j);
|
m_pp.aapoints += curaa->cost + (curaa->cost_inc * j);
|
||||||
refunded = true;
|
refunded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -7980,8 +7975,9 @@ void Client::RefundAA() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(refunded) {
|
if(refunded) {
|
||||||
|
SaveAA();
|
||||||
Save();
|
Save();
|
||||||
Kick();
|
// Kick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -546,8 +546,6 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app) {
|
|||||||
uint32 cid = CharacterID();
|
uint32 cid = CharacterID();
|
||||||
character_id = cid; /* Global character_id reference */
|
character_id = cid; /* Global character_id reference */
|
||||||
|
|
||||||
clock_t t = std::clock(); /* Function timer start */
|
|
||||||
|
|
||||||
/* Flush and reload factions */
|
/* Flush and reload factions */
|
||||||
database.RemoveTempFactions(this);
|
database.RemoveTempFactions(this);
|
||||||
database.LoadCharacterFactionValues(cid, factionvalues);
|
database.LoadCharacterFactionValues(cid, factionvalues);
|
||||||
@ -605,8 +603,6 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app) {
|
|||||||
if (m_pp.item_tint[i].rgb.use_tint == 1 || m_pp.item_tint[i].rgb.use_tint == 255)
|
if (m_pp.item_tint[i].rgb.use_tint == 1 || m_pp.item_tint[i].rgb.use_tint == 255)
|
||||||
m_pp.item_tint[i].rgb.use_tint = 0xFF;
|
m_pp.item_tint[i].rgb.use_tint = 0xFF;
|
||||||
|
|
||||||
std::cout << "Character Data Load Took " << (((float)(std::clock() - t)) / CLOCKS_PER_SEC) << " seconds\n" << std::endl;
|
|
||||||
|
|
||||||
if (level){ level = m_pp.level; }
|
if (level){ level = m_pp.level; }
|
||||||
|
|
||||||
/* If GM, not trackable */
|
/* If GM, not trackable */
|
||||||
|
|||||||
@ -149,7 +149,7 @@ Access Levels:
|
|||||||
int command_init(void) {
|
int command_init(void) {
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
command_add("resetaa","- Resets a Player's AA in their profile.",200,command_resetaa) ||
|
command_add("resetaa","- Resets a Player's AA in their profile and refunds spent AA's to unspent, disconnects player.",200,command_resetaa) ||
|
||||||
command_add("qtest","- QueryServ testing command.",255,command_qtest) ||
|
command_add("qtest","- QueryServ testing command.",255,command_qtest) ||
|
||||||
command_add("bind","- Sets your targets bind spot to their current location",200,command_bind) ||
|
command_add("bind","- Sets your targets bind spot to their current location",200,command_bind) ||
|
||||||
command_add("sendop","[opcode] - LE's Private test command, leave it alone",200,command_sendop) ||
|
command_add("sendop","[opcode] - LE's Private test command, leave it alone",200,command_sendop) ||
|
||||||
@ -403,7 +403,6 @@ int command_init(void) {
|
|||||||
command_add("guildapprove","[guildapproveid] - Approve a guild with specified ID (guild creator receives the id)",0,command_guildapprove) ||
|
command_add("guildapprove","[guildapproveid] - Approve a guild with specified ID (guild creator receives the id)",0,command_guildapprove) ||
|
||||||
command_add("guildlist","[guildapproveid] - Lists character names who have approved the guild specified by the approve id",0,command_guildlist) ||
|
command_add("guildlist","[guildapproveid] - Lists character names who have approved the guild specified by the approve id",0,command_guildlist) ||
|
||||||
command_add("altactivate", "[argument] - activates alternate advancement abilities, use altactivate help for more information", 0, command_altactivate) ||
|
command_add("altactivate", "[argument] - activates alternate advancement abilities, use altactivate help for more information", 0, command_altactivate) ||
|
||||||
command_add("refundaa", "- Refunds your target's AA points, will disconnect them in the process as well.", 100, command_refundaa) ||
|
|
||||||
|
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
command_add("bot","- Type \"#bot help\" to the see the list of available commands for bots.", 0, command_bot) ||
|
command_add("bot","- Type \"#bot help\" to the see the list of available commands for bots.", 0, command_bot) ||
|
||||||
@ -8534,25 +8533,6 @@ void command_altactivate(Client *c, const Seperator *sep){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void command_refundaa(Client *c, const Seperator *sep){
|
|
||||||
Client* refundee = nullptr;
|
|
||||||
if(c) {
|
|
||||||
if(c->GetTarget()){
|
|
||||||
if(c->GetTarget()->IsClient())
|
|
||||||
refundee = c->GetTarget()->CastToClient();
|
|
||||||
else
|
|
||||||
c->Message(0, "Your target must be a client.");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
c->Message(0, "You must have a target selected.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(refundee) {
|
|
||||||
refundee->RefundAA();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void command_traindisc(Client *c, const Seperator *sep)
|
void command_traindisc(Client *c, const Seperator *sep)
|
||||||
{
|
{
|
||||||
uint8 max_level, min_level;
|
uint8 max_level, min_level;
|
||||||
|
|||||||
@ -939,7 +939,6 @@ bool ZoneDatabase::LoadCharacterData(uint32 character_id, PlayerProfile_Struct*
|
|||||||
m_epp->aa_effects = atoi(row[r]); r++; // "`e_aa_effects`, "
|
m_epp->aa_effects = atoi(row[r]); r++; // "`e_aa_effects`, "
|
||||||
m_epp->perAA = atoi(row[r]); r++; // "`e_percent_to_aa`, "
|
m_epp->perAA = atoi(row[r]); r++; // "`e_percent_to_aa`, "
|
||||||
m_epp->expended_aa = atoi(row[r]); r++; // "`e_expended_aa_spent` "
|
m_epp->expended_aa = atoi(row[r]); r++; // "`e_expended_aa_spent` "
|
||||||
LogFile->write(EQEMuLog::Status, "Loading Character Data for character ID: %i, done", character_id);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1102,7 +1101,6 @@ bool ZoneDatabase::LoadCharacterCurrency(uint32 character_id, PlayerProfile_Stru
|
|||||||
pp->careerRadCrystals = atoi(row[13]);
|
pp->careerRadCrystals = atoi(row[13]);
|
||||||
pp->currentEbonCrystals = atoi(row[14]);
|
pp->currentEbonCrystals = atoi(row[14]);
|
||||||
pp->careerEbonCrystals = atoi(row[15]);
|
pp->careerEbonCrystals = atoi(row[15]);
|
||||||
LogFile->write(EQEMuLog::Status, "Loading Currency for character ID: %i, done", character_id);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1201,7 +1199,7 @@ bool ZoneDatabase::LoadCharacterBindPoint(uint32 character_id, PlayerProfile_Str
|
|||||||
|
|
||||||
bool ZoneDatabase::SaveCharacterLanguage(uint32 character_id, uint32 lang_id, uint32 value){
|
bool ZoneDatabase::SaveCharacterLanguage(uint32 character_id, uint32 lang_id, uint32 value){
|
||||||
std::string query = StringFormat("REPLACE INTO `character_languages` (id, lang_id, value) VALUES (%u, %u, %u)", character_id, lang_id, value); QueryDatabase(query);
|
std::string query = StringFormat("REPLACE INTO `character_languages` (id, lang_id, value) VALUES (%u, %u, %u)", character_id, lang_id, value); QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterLanguage for character ID: %i, lang_id:%u value:%u done", character_id, lang_id, value);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterLanguage for character ID: %i, lang_id:%u value:%u done", character_id, lang_id, value);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1210,7 +1208,7 @@ bool ZoneDatabase::SaveCharacterBindPoint(uint32 character_id, uint32 zone_id, u
|
|||||||
/* Save Home Bind Point */
|
/* Save Home Bind Point */
|
||||||
std::string query = StringFormat("REPLACE INTO `character_bind` (id, zone_id, instance_id, x, y, z, heading, is_home)"
|
std::string query = StringFormat("REPLACE INTO `character_bind` (id, zone_id, instance_id, x, y, z, heading, is_home)"
|
||||||
" VALUES (%u, %u, %u, %f, %f, %f, %f, %i)", character_id, zone_id, instance_id, x, y, z, heading, is_home);
|
" VALUES (%u, %u, %u, %f, %f, %f, %f, %i)", character_id, zone_id, instance_id, x, y, z, heading, is_home);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterBindPoint for character ID: %i zone_id: %u instance_id: %u x: %f y: %f z: %f heading: %f ishome: %u", character_id, zone_id, instance_id, x, y, z, heading, is_home);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterBindPoint for character ID: %i zone_id: %u instance_id: %u x: %f y: %f z: %f heading: %f ishome: %u", character_id, zone_id, instance_id, x, y, z, heading, is_home);
|
||||||
auto results = QueryDatabase(query); if (!results.RowsAffected()){ std::cout << "ERROR Bind Home Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
auto results = QueryDatabase(query); if (!results.RowsAffected()){ std::cout << "ERROR Bind Home Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterBindPoint", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterBindPoint", query);
|
||||||
return true;
|
return true;
|
||||||
@ -1222,21 +1220,21 @@ bool ZoneDatabase::SaveCharacterMaterialColor(uint32 character_id, uint32 slot_i
|
|||||||
uint8 blue = (color & 0x000000FF);
|
uint8 blue = (color & 0x000000FF);
|
||||||
|
|
||||||
std::string query = StringFormat("REPLACE INTO `character_material` (id, slot, red, green, blue, color, use_tint) VALUES (%u, %u, %u, %u, %u, %u, 255)", character_id, slot_id, red, green, blue, color); auto results = QueryDatabase(query);
|
std::string query = StringFormat("REPLACE INTO `character_material` (id, slot, red, green, blue, color, use_tint) VALUES (%u, %u, %u, %u, %u, %u, 255)", character_id, slot_id, red, green, blue, color); auto results = QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterMaterialColor for character ID: %i, slot_id: %u color: %u done", character_id, slot_id, color);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterMaterialColor for character ID: %i, slot_id: %u color: %u done", character_id, slot_id, color);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterMaterialColor", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterMaterialColor", query);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::SaveCharacterSkill(uint32 character_id, uint32 skill_id, uint32 value){
|
bool ZoneDatabase::SaveCharacterSkill(uint32 character_id, uint32 skill_id, uint32 value){
|
||||||
std::string query = StringFormat("REPLACE INTO `character_skills` (id, skill_id, value) VALUES (%u, %u, %u)", character_id, skill_id, value); auto results = QueryDatabase(query);
|
std::string query = StringFormat("REPLACE INTO `character_skills` (id, skill_id, value) VALUES (%u, %u, %u)", character_id, skill_id, value); auto results = QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterSkill for character ID: %i, skill_id:%u value:%u done", character_id, skill_id, value);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterSkill for character ID: %i, skill_id:%u value:%u done", character_id, skill_id, value);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterSkill", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterSkill", query);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::SaveCharacterDisc(uint32 character_id, uint32 slot_id, uint32 disc_id){
|
bool ZoneDatabase::SaveCharacterDisc(uint32 character_id, uint32 slot_id, uint32 disc_id){
|
||||||
std::string query = StringFormat("REPLACE INTO `character_disciplines` (id, slot_id, disc_id) VALUES (%u, %u, %u)", character_id, slot_id, disc_id); auto results = QueryDatabase(query);
|
std::string query = StringFormat("REPLACE INTO `character_disciplines` (id, slot_id, disc_id) VALUES (%u, %u, %u)", character_id, slot_id, disc_id); auto results = QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterDisc for character ID: %i, slot:%u disc_id:%u done", character_id, slot_id, disc_id);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterDisc for character ID: %i, slot:%u disc_id:%u done", character_id, slot_id, disc_id);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterDisc", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterDisc", query);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1247,7 +1245,7 @@ bool ZoneDatabase::SaveCharacterTribute(uint32 character_id, PlayerProfile_Struc
|
|||||||
for (int i = 0; i < EmuConstants::TRIBUTE_SIZE; i++){
|
for (int i = 0; i < EmuConstants::TRIBUTE_SIZE; i++){
|
||||||
if (pp->tributes[i].tribute > 0 && pp->tributes[i].tribute != 0xffffffffu){
|
if (pp->tributes[i].tribute > 0 && pp->tributes[i].tribute != 0xffffffffu){
|
||||||
std::string query = StringFormat("REPLACE INTO `character_tribute` (id, tier, tribute) VALUES (%u, %u, %u)", character_id, pp->tributes[i].tier, pp->tributes[i].tribute); QueryDatabase(query);
|
std::string query = StringFormat("REPLACE INTO `character_tribute` (id, tier, tribute) VALUES (%u, %u, %u)", character_id, pp->tributes[i].tier, pp->tributes[i].tribute); QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterTribute for character ID: %i, tier:%u tribute:%u done", character_id, pp->tributes[i].tier, pp->tributes[i].tribute);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterTribute for character ID: %i, tier:%u tribute:%u done", character_id, pp->tributes[i].tier, pp->tributes[i].tribute);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1259,7 +1257,7 @@ bool ZoneDatabase::SaveCharacterBandolier(uint32 character_id, uint8 bandolier_i
|
|||||||
std::string query = StringFormat("REPLACE INTO `character_bandolier` (id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name) VALUES (%u, %u, %u, %u, %u,'%s')", character_id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name_esc);
|
std::string query = StringFormat("REPLACE INTO `character_bandolier` (id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name) VALUES (%u, %u, %u, %u, %u,'%s')", character_id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name_esc);
|
||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterBandolier", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterBandolier", query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterBandolier for character ID: %i, bandolier_id: %u, bandolier_slot: %u item_id: %u, icon:%u band_name:%s done", character_id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterBandolier for character ID: %i, bandolier_id: %u, bandolier_slot: %u item_id: %u, icon:%u band_name:%s done", character_id, bandolier_id, bandolier_slot, item_id, icon, bandolier_name);
|
||||||
if (!results.RowsAffected()){ std::cout << "ERROR Bandolier Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
if (!results.RowsAffected()){ std::cout << "ERROR Bandolier Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1267,7 +1265,7 @@ bool ZoneDatabase::SaveCharacterBandolier(uint32 character_id, uint8 bandolier_i
|
|||||||
bool ZoneDatabase::SaveCharacterPotionBelt(uint32 character_id, uint8 potion_id, uint32 item_id, uint32 icon) {
|
bool ZoneDatabase::SaveCharacterPotionBelt(uint32 character_id, uint8 potion_id, uint32 item_id, uint32 icon) {
|
||||||
std::string query = StringFormat("REPLACE INTO `character_potionbelt` (id, potion_id, item_id, icon) VALUES (%u, %u, %u, %u)", character_id, potion_id, item_id, icon);
|
std::string query = StringFormat("REPLACE INTO `character_potionbelt` (id, potion_id, item_id, icon) VALUES (%u, %u, %u, %u)", character_id, potion_id, item_id, icon);
|
||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterPotionBelt", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterPotionBelt", query);
|
||||||
if (!results.RowsAffected()){ std::cout << "ERROR Potionbelt Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
if (!results.RowsAffected()){ std::cout << "ERROR Potionbelt Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; }
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1577,7 +1575,7 @@ bool ZoneDatabase::SaveCharacterData(uint32 character_id, uint32 account_id, Pla
|
|||||||
);
|
);
|
||||||
auto results = database.QueryDatabase(query);
|
auto results = database.QueryDatabase(query);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase:SaveCharacterData", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase:SaveCharacterData", query);
|
||||||
LogFile->write(EQEMuLog::Status, "ZoneDatabase::SaveCharacterData %i, done... Took %f seconds", character_id, ((float)(std::clock() - t)) / CLOCKS_PER_SEC);
|
LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterData %i, done... Took %f seconds", character_id, ((float)(std::clock() - t)) / CLOCKS_PER_SEC);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1619,7 +1617,7 @@ bool ZoneDatabase::SaveCharacterCurrency(uint32 character_id, PlayerProfile_Stru
|
|||||||
pp->careerEbonCrystals);
|
pp->careerEbonCrystals);
|
||||||
auto results = database.QueryDatabase(query);
|
auto results = database.QueryDatabase(query);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterCurrency", query);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterCurrency", query);
|
||||||
LogFile->write(EQEMuLog::Status, "Saving Currency for character ID: %i, done", character_id);
|
LogFile->write(EQEMuLog::Debug, "Saving Currency for character ID: %i, done", character_id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1629,7 +1627,7 @@ bool ZoneDatabase::SaveCharacterAA(uint32 character_id, uint32 aa_id, uint32 cur
|
|||||||
character_id, aa_id, current_level);
|
character_id, aa_id, current_level);
|
||||||
auto results = QueryDatabase(rquery);
|
auto results = QueryDatabase(rquery);
|
||||||
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterAA", rquery);
|
ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterAA", rquery);
|
||||||
LogFile->write(EQEMuLog::Status, "Saving AA for character ID: %u, aa_id: %u current_level: %u", character_id, aa_id, current_level);
|
LogFile->write(EQEMuLog::Debug, "Saving AA for character ID: %u, aa_id: %u current_level: %u", character_id, aa_id, current_level);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1657,6 +1655,10 @@ bool ZoneDatabase::DeleteCharacterLeadershipAAs(uint32 character_id){
|
|||||||
std::string query = StringFormat("DELETE FROM `character_leadership_abilities` WHERE `id` = %u", character_id); QueryDatabase(query); return true;
|
std::string query = StringFormat("DELETE FROM `character_leadership_abilities` WHERE `id` = %u", character_id); QueryDatabase(query); return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ZoneDatabase::DeleteCharacterAAs(uint32 character_id){
|
||||||
|
std::string query = StringFormat("DELETE FROM `character_alternate_abilities` WHERE `id` = %u", character_id); QueryDatabase(query); return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::DeleteCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id){
|
bool ZoneDatabase::DeleteCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id){
|
||||||
std::string query = StringFormat("DELETE FROM `character_memmed_spells` WHERE `slot_id` = %u AND `id` = %u", slot_id, character_id); QueryDatabase(query); return true;
|
std::string query = StringFormat("DELETE FROM `character_memmed_spells` WHERE `slot_id` = %u AND `id` = %u", slot_id, character_id); QueryDatabase(query); return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -287,6 +287,7 @@ public:
|
|||||||
bool DeleteCharacterDisc(uint32 character_id, uint32 slot_id);
|
bool DeleteCharacterDisc(uint32 character_id, uint32 slot_id);
|
||||||
bool DeleteCharacterBandolier(uint32 character_id, uint32 band_id);
|
bool DeleteCharacterBandolier(uint32 character_id, uint32 band_id);
|
||||||
bool DeleteCharacterLeadershipAAs(uint32 character_id);
|
bool DeleteCharacterLeadershipAAs(uint32 character_id);
|
||||||
|
bool DeleteCharacterAAs(uint32 character_id);
|
||||||
|
|
||||||
/* Character Inventory */
|
/* Character Inventory */
|
||||||
bool NoRentExpired(const char* name);
|
bool NoRentExpired(const char* name);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user