mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 04:56:20 +00:00
Merge remote-tracking branch 'upstream/master' into Warning_Cleanup
Conflicts: zone/Map.cpp
This commit is contained in:
@@ -30,6 +30,10 @@
|
||||
#ifdef FREEBSD //Timothy Whitman - January 7, 2003
|
||||
#define MSG_NOSIGNAL 0
|
||||
#endif
|
||||
#ifdef DARWIN
|
||||
#define MSG_NOSIGNAL SO_NOSIGPIPE // Corysia Taware - Sept. 27, 2013
|
||||
// See http://lists.apple.com/archives/macnetworkprog/2002/Dec/msg00091.html
|
||||
#endif // DARWIN
|
||||
|
||||
#ifdef _WINDOWS
|
||||
InitWinsock winsock;
|
||||
|
||||
@@ -97,8 +97,12 @@ void BaseTCPServer::ListenNewConnections() {
|
||||
from.sin_family = AF_INET;
|
||||
fromlen = sizeof(from);
|
||||
LockMutex lock(&MSock);
|
||||
#ifndef DARWIN // Corysia - On OSX, 0 is a valid fd.
|
||||
if (!sock)
|
||||
return;
|
||||
#else
|
||||
if (sock == -1) return;
|
||||
#endif
|
||||
|
||||
// Check for pending connects
|
||||
#ifdef _WINDOWS
|
||||
|
||||
+8
-21
@@ -35,29 +35,20 @@ static const char* FileNames[EQEMuLog::MaxLogID] = { "logs/eqemu", "logs/eqemu",
|
||||
static const char* LogNames[EQEMuLog::MaxLogID] = { "Status", "Normal", "Error", "Debug", "Quest", "Command", "Crash" };
|
||||
|
||||
EQEMuLog::EQEMuLog() {
|
||||
// MOpen = new Mutex;
|
||||
// MLog = new Mutex*[MaxLogID];
|
||||
// fp = new FILE*[MaxLogID];
|
||||
// pLogStatus = new uint8[MaxLogID];
|
||||
for (int i=0; i<MaxLogID; i++) {
|
||||
fp[i] = 0;
|
||||
// MLog[i] = new Mutex;
|
||||
#if EQDEBUG >= 2
|
||||
pLogStatus[i] = 1 | 2;
|
||||
#else
|
||||
pLogStatus[i] = 0;
|
||||
#endif
|
||||
logCallbackFmt[i] = nullptr;
|
||||
logCallbackBuf[i] = nullptr;
|
||||
logCallbackPva[i] = nullptr;
|
||||
}
|
||||
// TODO: Make this read from an ini or something, everyone has different opinions on what it should be
|
||||
#if EQDEBUG < 2
|
||||
pLogStatus[Status] = 2;
|
||||
pLogStatus[Error] = 2;
|
||||
pLogStatus[Quest] = 2;
|
||||
pLogStatus[Commands] = 1;
|
||||
#endif
|
||||
|
||||
pLogStatus[Status] = LOG_LEVEL_STATUS;
|
||||
pLogStatus[Normal] = LOG_LEVEL_NORMAL;
|
||||
pLogStatus[Error] = LOG_LEVEL_ERROR;
|
||||
pLogStatus[Debug] = LOG_LEVEL_DEBUG;
|
||||
pLogStatus[Quest] = LOG_LEVEL_QUEST;
|
||||
pLogStatus[Commands] = LOG_LEVEL_COMMANDS;
|
||||
pLogStatus[Crash] = LOG_LEVEL_CRASH;
|
||||
logFileValid = true;
|
||||
}
|
||||
|
||||
@@ -68,10 +59,6 @@ EQEMuLog::~EQEMuLog() {
|
||||
if (fp[i])
|
||||
fclose(fp[i]);
|
||||
}
|
||||
// safe_delete_array(fp);
|
||||
// safe_delete_array(MLog);
|
||||
// safe_delete_array(pLogStatus);
|
||||
// safe_delete(MOpen);
|
||||
}
|
||||
|
||||
bool EQEMuLog::open(LogIDs id) {
|
||||
|
||||
@@ -55,9 +55,21 @@ namespace EQEmu {
|
||||
std::string final_name = name;
|
||||
final_name += ".lock";
|
||||
|
||||
#ifdef __DARWIN
|
||||
#if __DARWIN_C_LEVEL < 200809L
|
||||
imp_->fd_ = open(final_name.c_str(),
|
||||
O_RDWR | O_CREAT,
|
||||
S_IRUSR | S_IWUSR);
|
||||
#else
|
||||
imp_->fd_ = open(final_name.c_str(),
|
||||
O_RDWR | O_CREAT | O_CLOEXEC,
|
||||
S_IRUSR | S_IWUSR);
|
||||
#endif
|
||||
#else
|
||||
imp_->fd_ = open(final_name.c_str(),
|
||||
O_RDWR | O_CREAT | O_CLOEXEC,
|
||||
S_IRUSR | S_IWUSR);
|
||||
#endif
|
||||
|
||||
if(imp_->fd_ == -1) {
|
||||
EQ_EXCEPT("IPC Mutex", "Could not create mutex.");
|
||||
|
||||
@@ -135,6 +135,7 @@ RULE_CATEGORY_END()
|
||||
RULE_CATEGORY( Pets )
|
||||
RULE_REAL( Pets, AttackCommandRange, 150 )
|
||||
RULE_BOOL( Pets, UnTargetableSwarmPet, false )
|
||||
RULE_BOOL( Pets, SwarmPetNotTargetableWithHotKey, false ) //On SOF+ clients this a semi-hack to make swarm pets not F8 targetable.
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY( GM )
|
||||
@@ -307,6 +308,8 @@ RULE_INT ( Spells, SuccorFailChance, 2) //Determines chance for a succor spell n
|
||||
RULE_INT ( Spells, FRProjectileItem_Titanium, 1113) // Item id for Titanium clients for Fire 'spell projectile'.
|
||||
RULE_INT ( Spells, FRProjectileItem_SOF, 80684) // Item id for SOF clients for Fire 'spell projectile'.
|
||||
RULE_INT ( Spells, FRProjectileItem_NPC, 80684) // Item id for NPC Fire 'spell projectile'.
|
||||
RULE_BOOL ( Spells, UseLiveSpellProjectileGFX, false) // Use spell projectile graphics set in the spells_new table (player_1). Server must be using UF+ spell file.
|
||||
RULE_BOOL ( Spells, FocusCombatProcs, false) //Allow all combat procs to receive focus effects.
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY( Combat )
|
||||
@@ -462,6 +465,7 @@ RULE_BOOL ( Chat, ServerWideAuction, true)
|
||||
RULE_BOOL ( Chat, EnableVoiceMacros, true)
|
||||
RULE_BOOL ( Chat, EnableMailKeyIPVerification, true)
|
||||
RULE_BOOL ( Chat, EnableAntiSpam, true)
|
||||
RULE_BOOL ( Chat, SuppressCommandErrors, false) // Do not suppress by default
|
||||
RULE_INT ( Chat, MinStatusToBypassAntiSpam, 100)
|
||||
RULE_INT ( Chat, MinimumMessagesPerInterval, 4)
|
||||
RULE_INT ( Chat, MaximumMessagesPerInterval, 12)
|
||||
|
||||
+3
-5
@@ -677,11 +677,9 @@ bool IsCombatSkill(uint16 spell_id)
|
||||
{
|
||||
if (!IsValidSpell(spell_id))
|
||||
return false;
|
||||
|
||||
//Check if Discipline OR melee proc (from non-castable spell)
|
||||
if ((spells[spell_id].mana == 0 &&
|
||||
(spells[spell_id].EndurCost || spells[spell_id].EndurUpkeep)) ||
|
||||
((spells[spell_id].cast_time == 0) && (spells[spell_id].recast_time == 0) && (spells[spell_id].recovery_time == 0)))
|
||||
|
||||
//Check if Discipline
|
||||
if ((spells[spell_id].mana == 0 && (spells[spell_id].EndurCost || spells[spell_id].EndurUpkeep)))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user