mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
Merge branch 'master' of https://github.com/EQEmu/Server into trade_stacking
Conflicts: changelog.txt
This commit is contained in:
+4
-3
@@ -608,10 +608,11 @@ bool Database::StoreCharacter(uint32 account_id, PlayerProfile_Struct* pp, Inven
|
||||
for (int16 i=EmuConstants::EQUIPMENT_BEGIN; i<=EmuConstants::BANK_BAGS_END;)
|
||||
{
|
||||
const ItemInst* newinv = inv->GetItem(i);
|
||||
if (!newinv)
|
||||
if (newinv)
|
||||
{
|
||||
invquery = StringFormat("INSERT INTO inventory SET charid=%0u, slotid=%0d, itemid=%0u, charges=%0d, color=%0u",
|
||||
charid, i, newinv->GetItem()->ID,newinv->GetCharges(), newinv->GetColor());
|
||||
invquery = StringFormat("INSERT INTO `inventory` (charid, slotid, itemid, charges, color) VALUES (%u, %i, %u, %i, %u)",
|
||||
charid, i, newinv->GetItem()->ID, newinv->GetCharges(), newinv->GetColor());
|
||||
|
||||
auto results = QueryDatabase(invquery);
|
||||
|
||||
if (!results.RowsAffected())
|
||||
|
||||
+9
-8
@@ -60,17 +60,17 @@ LOG_TYPE( UCS, PACKETS, DISABLED)
|
||||
|
||||
LOG_CATEGORY( QUERYSERV )
|
||||
LOG_TYPE( QUERYSERV, INIT, ENABLED )
|
||||
LOG_TYPE( QUERYSERV, ERROR, ENABLED )
|
||||
LOG_TYPE( QUERYSERV, ERROR, ENABLED )
|
||||
LOG_TYPE( QUERYSERV, CLIENT, DISABLED )
|
||||
LOG_TYPE( QUERYSERV, TRACE, DISABLED )
|
||||
LOG_TYPE( QUERYSERV, PACKETS, DISABLED)
|
||||
|
||||
LOG_CATEGORY(SOCKET_SERVER)
|
||||
LOG_TYPE(SOCKET_SERVER, INIT, ENABLED)
|
||||
LOG_TYPE(SOCKET_SERVER, ERROR, ENABLED)
|
||||
LOG_TYPE(SOCKET_SERVER, CLIENT, DISABLED)
|
||||
LOG_TYPE(SOCKET_SERVER, TRACE, DISABLED)
|
||||
LOG_TYPE(SOCKET_SERVER, PACKETS, DISABLED)
|
||||
LOG_CATEGORY( SOCKET_SERVER)
|
||||
LOG_TYPE( SOCKET_SERVER, INIT, ENABLED)
|
||||
LOG_TYPE( SOCKET_SERVER, ERROR, ENABLED)
|
||||
LOG_TYPE( SOCKET_SERVER, CLIENT, DISABLED)
|
||||
LOG_TYPE( SOCKET_SERVER, TRACE, DISABLED)
|
||||
LOG_TYPE( SOCKET_SERVER, PACKETS, DISABLED)
|
||||
|
||||
LOG_CATEGORY( SPAWNS )
|
||||
LOG_TYPE( SPAWNS, MAIN, DISABLED )
|
||||
@@ -108,6 +108,7 @@ LOG_CATEGORY( FACTION )
|
||||
|
||||
LOG_CATEGORY( ZONE )
|
||||
LOG_TYPE( ZONE, GROUND_SPAWNS, DISABLED )
|
||||
LOG_TYPE( ZONE, SPAWNS, ENABLED)
|
||||
LOG_TYPE( ZONE, INIT, ENABLED )
|
||||
LOG_TYPE( ZONE, INIT_ERR, ENABLED )
|
||||
LOG_TYPE( ZONE, WORLD, ENABLED )
|
||||
@@ -116,7 +117,7 @@ LOG_TYPE( ZONE, WORLD_TRACE, DISABLED )
|
||||
|
||||
LOG_CATEGORY( TASKS )
|
||||
LOG_TYPE( TASKS, GLOBALLOAD, DISABLED )
|
||||
LOG_TYPE( TASKS, CLIENTLOAD, DISABLED )
|
||||
LOG_TYPE( TASKS, CLIENTLOAD, DISABLED )
|
||||
LOG_TYPE( TASKS, UPDATE, DISABLED )
|
||||
LOG_TYPE( TASKS, CLIENTSAVE, DISABLED )
|
||||
LOG_TYPE( TASKS, PACKETS, DISABLED )
|
||||
|
||||
+16
-2
@@ -558,14 +558,28 @@ RULE_INT ( Console, SessionTimeOut, 600000 ) // Amount of time in ms for the con
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY( QueryServ )
|
||||
RULE_BOOL( QueryServ, PlayerChatLogging, false) // Logs Player Chat
|
||||
RULE_BOOL( QueryServ, PlayerLogChat, false) // Logs Player Chat
|
||||
RULE_BOOL( QueryServ, PlayerLogTrades, false) // Logs Player Trades
|
||||
RULE_BOOL( QueryServ, PlayerLogHandins, false) // Logs Player Handins
|
||||
RULE_BOOL( QueryServ, PlayerLogNPCKills, false) // Logs Player NPC Kills
|
||||
RULE_BOOL( QueryServ, PlayerLogDeletes, false) // Logs Player Deletes
|
||||
RULE_BOOL( QueryServ, PlayerLogMoves, false) // Logs Player Moves
|
||||
RULE_BOOL( QueryServ, MerchantLogTransactions, false) // Logs Merchant Transactions
|
||||
RULE_BOOL( QueryServ, PlayerLogMerchantTransactions, false) // Logs Merchant Transactions
|
||||
RULE_BOOL( QueryServ, PlayerLogPCCoordinates, false) // Logs Player Coordinates with certain events
|
||||
RULE_BOOL( QueryServ, PlayerLogDropItem, false) // Logs Player Drop Item
|
||||
RULE_BOOL( QueryServ, PlayerLogZone, false) // Logs Player Zone Events
|
||||
RULE_BOOL( QueryServ, PlayerLogDeaths, false) // Logs Player Deaths
|
||||
RULE_BOOL( QueryServ, PlayerLogConnectDisconnect, false) // Logs Player Connect Disconnect State
|
||||
RULE_BOOL( QueryServ, PlayerLogLevels, false) // Logs Player Leveling/Deleveling
|
||||
RULE_BOOL( QueryServ, PlayerLogAARate, false) // Logs Player AA Experience Rates
|
||||
RULE_BOOL( QueryServ, PlayerLogQGlobalUpdate, false) // Logs Player QGlobal Updates
|
||||
RULE_BOOL( QueryServ, PlayerLogTaskUpdates, false) // Logs Player Task Updates
|
||||
RULE_BOOL( QueryServ, PlayerLogKeyringAddition, false) // Log PLayer Keyring additions
|
||||
RULE_BOOL( QueryServ, PlayerLogAAPurchases, false) // Log Player AA Purchases
|
||||
RULE_BOOL( QueryServ, PlayerLogTradeSkillEvents, false) // Log Player Tradeskill Transactions
|
||||
RULE_BOOL( QueryServ, PlayerLogIssuedCommandes, false ) // Log Player Issued Commands
|
||||
RULE_BOOL( QueryServ, PlayerLogMoneyTransactions, false) // Log Player Money Transaction/Splits
|
||||
RULE_BOOL( QueryServ, PlayerLogAlternateCurrencyTransactions, false) // Log Ploayer Alternate Currency Transactions
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY( Inventory )
|
||||
|
||||
+8
-2
@@ -184,9 +184,11 @@
|
||||
#define ServerOP_QSPlayerLogNPCKills 0x4012
|
||||
#define ServerOP_QSPlayerLogDeletes 0x4013
|
||||
#define ServerOP_QSPlayerLogMoves 0x4014
|
||||
#define ServerOP_QSMerchantLogTransactions 0x4015
|
||||
#define ServerOP_QSPlayerLogMerchantTransactions 0x4015
|
||||
#define ServerOP_QSSendQuery 0x4016
|
||||
|
||||
enum { QSG_LFGuild = 0 };
|
||||
/* Query Serv Generic Packet Flag/Type Enumeration */
|
||||
enum { QSG_LFGuild = 0 };
|
||||
enum { QSG_LFGuild_PlayerMatches = 0, QSG_LFGuild_UpdatePlayerInfo, QSG_LFGuild_RequestPlayerInfo, QSG_LFGuild_UpdateGuildInfo, QSG_LFGuild_GuildMatches,
|
||||
QSG_LFGuild_RequestGuildInfo };
|
||||
|
||||
@@ -1219,6 +1221,10 @@ struct QSMerchantLogTransaction_Struct {
|
||||
QSTransactionItems_Struct items[0];
|
||||
};
|
||||
|
||||
struct QSGeneralQuery_Struct {
|
||||
char QueryString[0];
|
||||
};
|
||||
|
||||
struct CZMessagePlayer_Struct {
|
||||
uint32 Type;
|
||||
char CharName[64];
|
||||
|
||||
+40
-1
@@ -53,10 +53,11 @@ const std::string vStringFormat(const char* format, va_list args)
|
||||
return "";
|
||||
}
|
||||
else if ((unsigned int)characters_used > output.capacity()) {
|
||||
output.resize(characters_used+1);
|
||||
output.resize(characters_used + 1);
|
||||
va_copy(tmpargs,args);
|
||||
characters_used = vsnprintf(&output[0], output.capacity(), format, tmpargs);
|
||||
va_end(tmpargs);
|
||||
output.resize(characters_used);
|
||||
|
||||
if (characters_used < 0) {
|
||||
// We shouldn't have a format error by this point, but I can't imagine what error we
|
||||
@@ -72,6 +73,8 @@ const std::string vStringFormat(const char* format, va_list args)
|
||||
characters_used = vsnprintf(&output[0], output.capacity(), format, tmpargs);
|
||||
va_end(tmpargs);
|
||||
|
||||
output.resize(characters_used);
|
||||
|
||||
if (characters_used < 0) {
|
||||
// We shouldn't have a format error by this point, but I can't imagine what error we
|
||||
// could have by this point. Still, return empty string;
|
||||
@@ -380,6 +383,42 @@ std::string EscapeString(const std::string &s) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::string EscapeString(const char *src, size_t sz) {
|
||||
std::string ret;
|
||||
|
||||
for(size_t i = 0; i < sz; ++i) {
|
||||
char c = src[i];
|
||||
switch(c) {
|
||||
case '\x00':
|
||||
ret += "\\x00";
|
||||
break;
|
||||
case '\n':
|
||||
ret += "\\n";
|
||||
break;
|
||||
case '\r':
|
||||
ret += "\\r";
|
||||
break;
|
||||
case '\\':
|
||||
ret += "\\\\";
|
||||
break;
|
||||
case '\'':
|
||||
ret += "\\'";
|
||||
break;
|
||||
case '\"':
|
||||
ret += "\\\"";
|
||||
break;
|
||||
case '\x1a':
|
||||
ret += "\\x1a";
|
||||
break;
|
||||
default:
|
||||
ret.push_back(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool isAlphaNumeric(const char *text)
|
||||
{
|
||||
for (unsigned int charIndex=0; charIndex<strlen(text); charIndex++) {
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
const std::string vStringFormat(const char* format, va_list args);
|
||||
const std::string StringFormat(const char* format, ...);
|
||||
std::string EscapeString(const std::string &s);
|
||||
std::string EscapeString(const char *src, size_t sz);
|
||||
|
||||
const char *MakeLowerString(const char *source);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user