mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-06 17:43:52 +00:00
143 lines
3.3 KiB
C++
143 lines
3.3 KiB
C++
#include <iostream>
|
|
#include <sstream>
|
|
#include <vector>
|
|
|
|
#include "eq_player_structs.h"
|
|
#include "database.h"
|
|
#include "ini.h"
|
|
#include "main.h"
|
|
#include "eqemu_string.h"
|
|
|
|
EQEmuDatabase *emu_db;
|
|
std::vector<player_entry> player_list;
|
|
|
|
//player_profile_set [SET/VIEW] [Field] [Name/*]
|
|
//ex: player_profile_set VIEW LDON_MMC Jess
|
|
int main(int argc, char* argv[])
|
|
{
|
|
INIParser *ini = new INIParser("database.ini");
|
|
std::string host = ini->GetOption("host");
|
|
std::string user = ini->GetOption("user");
|
|
std::string pass = ini->GetOption("password");
|
|
std::string datab = ini->GetOption("db");
|
|
|
|
if(argc != 5)
|
|
{
|
|
std::cout << "Usage: player_profile_set [SET/VIEW] [Field] [Value] [Name/*]" << std::endl;
|
|
std::cout << "Ex: player_profile_set VIEW LDON_MMC 0 Jess" << std::endl;
|
|
std::cout << "Would view the number of LDoN MMC points earned by Jess" << std::endl << std::endl;
|
|
std::cout << "Ex: player_profile_set SET LDON_TOTAL 0 *" << std::endl;
|
|
std::cout << "Would view the number of LDoN MMC points earned by All players to 0" << std::endl;
|
|
delete ini;
|
|
ini = 0;
|
|
exit(1);
|
|
}
|
|
|
|
std::string program_action = argv[1];
|
|
std::string program_field = argv[2];
|
|
std::string program_value = argv[3];
|
|
std::string player_name = argv[4];
|
|
program_action = EQEmuString::ToUpper(program_action);
|
|
program_field = EQEmuString::ToUpper(program_field);
|
|
|
|
emu_db = new EQEmuDatabase(host.c_str(), datab.c_str(), user.c_str(), pass.c_str());
|
|
if(!emu_db->Connected())
|
|
{
|
|
delete ini;
|
|
ini = 0;
|
|
delete emu_db;
|
|
emu_db = 0;
|
|
exit(1);
|
|
}
|
|
|
|
if(player_name == "*")
|
|
emu_db->GetPlayers();
|
|
else
|
|
emu_db->GetPlayer(player_name);
|
|
|
|
std::vector<player_entry>::iterator iter = player_list.begin();
|
|
|
|
while(iter != player_list.end())
|
|
{
|
|
player_entry pe = (*iter);
|
|
PlayerProfile_Struct *m_pp = (PlayerProfile_Struct*)pe.data;
|
|
|
|
if(program_action == "SET")
|
|
{
|
|
m_pp->ldon_points_available = 0;
|
|
m_pp->ldon_points_guk = 0;
|
|
m_pp->ldon_points_mir = 0;
|
|
m_pp->ldon_points_mmc = 0;
|
|
m_pp->ldon_points_ruj = 0;
|
|
m_pp->ldon_points_tak = 0;
|
|
emu_db->StorePlayer(pe.id, pe.data);
|
|
}
|
|
else if(program_action == "VIEW")
|
|
{
|
|
std::cout << m_pp->name << std::endl;
|
|
std::cout << m_pp->ldon_points_available << std::endl;
|
|
std::cout << m_pp->ldon_points_guk << std::endl;
|
|
std::cout << m_pp->ldon_points_mir << std::endl;
|
|
std::cout << m_pp->ldon_points_mmc << std::endl;
|
|
std::cout << m_pp->ldon_points_ruj << std::endl;
|
|
std::cout << m_pp->ldon_points_tak << std::endl;
|
|
}
|
|
else
|
|
{
|
|
std::cout << "Unknown action specified" << std::endl;
|
|
}
|
|
delete[] pe.data;
|
|
pe.data = 0;
|
|
iter++;
|
|
}
|
|
player_list.clear();
|
|
|
|
delete ini;
|
|
ini = 0;
|
|
delete emu_db;
|
|
emu_db = 0;
|
|
|
|
std::cout << "Press enter to exit...";
|
|
std::cin.get();
|
|
exit(0);
|
|
}
|
|
|
|
std::string ConvertFieldToValue(PlayerProfile_Struct *m_pp, std::string field)
|
|
{
|
|
if(!m_pp)
|
|
{
|
|
return std::string("Unable to convert field to value");
|
|
}
|
|
|
|
std::stringstream ss(std::stringstream::out | std::stringstream::in);
|
|
|
|
if(field == "LASTNAME")
|
|
{
|
|
ss << m_pp->last_name;
|
|
return ss.str();
|
|
}
|
|
|
|
if(field == "GENDER")
|
|
{
|
|
ss << m_pp->gender;
|
|
return ss.str();
|
|
}
|
|
|
|
if(field == "RACE")
|
|
{
|
|
ss << m_pp->race;
|
|
return ss.str();
|
|
}
|
|
|
|
if(field == "CLASS")
|
|
{
|
|
ss << m_pp->class_;
|
|
return ss.str();
|
|
}
|
|
|
|
return std::string("Unable to convert field to value");
|
|
}
|
|
|
|
void ConvertValueToField(PlayerProfile_Struct *m_pp, std::string field, std::string value)
|
|
{
|
|
} |