Skip to content

Commit 7d2159a

Browse files
Merge pull request #31 from SWG-Source/feature/configurable-entertainer-captcha
Added a server-side parameter to control the entertainer captcha percent on the client. The default remains 40. To disable the entertainer captcha, set the value to zero: [GameServer] entertainerCaptchaPercent=0
2 parents e52f3f2 + 28af3bb commit 7d2159a

5 files changed

Lines changed: 32 additions & 5 deletions

File tree

engine/server/library/serverGame/src/shared/core/Client.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,8 @@ Client::Client(ConnectionServerConnection &connection, const NetworkId &characte
383383
}
384384

385385
// Send server-specific settings to the client
386-
ParametersMessage const msg(ConfigServerGame::getWeatherUpdateSeconds());
386+
ParametersMessage const msg(ConfigServerGame::getWeatherUpdateSeconds(),
387+
ConfigServerGame::getEntertainerCaptchaPercent());
387388
send(msg, true);
388389

389390
ObjectTracker::addPlayer();

engine/server/library/serverGame/src/shared/core/ConfigServerGame.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ void ConfigServerGame::install(void)
170170
KEY_STRING (defaultVendorItemRestrictionFile, "datatables/commodity/vendor_item_restriction_default.iff");
171171
KEY_STRING (defaultVendorItemRestrictionRejectionMessage, "@ui_auc:reject_restricted_item");
172172
KEY_INT (weatherUpdateSeconds, 15*60);
173+
KEY_INT (entertainerCaptchaPercent, 40);
174+
data->entertainerCaptchaPercent = std::max(0, std::min(100, data->entertainerCaptchaPercent));
175+
173176
KEY_STRING (instrumentDataTableFilename, "datatables/tangible/instrument_datatable.iff");
174177
KEY_STRING (performanceDataTableFilename, "datatables/performance/performance.iff");
175178
KEY_INT (createQueueScheduleTime, 75);

engine/server/library/serverGame/src/shared/core/ConfigServerGame.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ class ConfigServerGame
229229
const char * defaultVendorItemRestrictionRejectionMessage;
230230

231231
int weatherUpdateSeconds;
232+
int entertainerCaptchaPercent;
232233

233234
const char * instrumentDataTableFilename;
234235
const char * performanceDataTableFilename;
@@ -768,6 +769,7 @@ class ConfigServerGame
768769
static const char * getDefaultVendorItemRestrictionRejectionMessage();
769770

770771
static int getWeatherUpdateSeconds();
772+
static int getEntertainerCaptchaPercent();
771773
static const char * getInstrumentDataTableFilename(void);
772774
static const char * getPerformanceDataTableFilename(void);
773775
static const int getCreateQueueScheduleTime(void);
@@ -2006,6 +2008,13 @@ inline int ConfigServerGame::getWeatherUpdateSeconds(void)
20062008
return data->weatherUpdateSeconds;
20072009
}
20082010

2011+
2012+
inline int ConfigServerGame::getEntertainerCaptchaPercent(void)
2013+
{
2014+
return data->entertainerCaptchaPercent;
2015+
}
2016+
2017+
20092018
// ----------------------------------------------------------------------
20102019

20112020
inline const char * ConfigServerGame::getInstrumentDataTableFilename(void)

engine/shared/library/sharedNetworkMessages/src/shared/clientGameServer/ParametersMessage.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,24 @@
1010

1111
// ======================================================================
1212

13-
ParametersMessage::ParametersMessage(int weatherUpdateInterval) :
13+
ParametersMessage::ParametersMessage(int weatherUpdateInterval, int entertainerCaptchaPercent) :
1414
GameNetworkMessage("ParametersMessage"),
15-
m_weatherUpdateInterval(weatherUpdateInterval)
15+
m_weatherUpdateInterval(weatherUpdateInterval),
16+
m_entertainerCaptchaPercent(entertainerCaptchaPercent)
1617
{
1718
addVariable(m_weatherUpdateInterval);
19+
addVariable(m_entertainerCaptchaPercent);
1820
}
1921

2022
//-----------------------------------------------------------------------
2123

2224
ParametersMessage::ParametersMessage(Archive::ReadIterator & source) :
2325
GameNetworkMessage("ParametersMessage"),
24-
m_weatherUpdateInterval()
26+
m_weatherUpdateInterval(),
27+
m_entertainerCaptchaPercent()
2528
{
2629
addVariable(m_weatherUpdateInterval);
30+
addVariable(m_entertainerCaptchaPercent);
2731

2832
unpack(source);
2933
}

engine/shared/library/sharedNetworkMessages/src/shared/clientGameServer/ParametersMessage.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@
3131
class ParametersMessage : public GameNetworkMessage
3232
{
3333
public:
34-
ParametersMessage(int weatherUpdateInterval);
34+
ParametersMessage(int weatherUpdateInterval, int entertainerCaptchaPercent);
3535
explicit ParametersMessage(Archive::ReadIterator & source);
3636
virtual ~ParametersMessage();
3737

3838
public:
3939
int getWeatherUpdateInterval() const;
40+
int getEntertainerCaptchaPercent() const;
4041

4142
private:
4243
Archive::AutoVariable<int> m_weatherUpdateInterval;
44+
Archive::AutoVariable<int> m_entertainerCaptchaPercent;
4345

4446
ParametersMessage();
4547
ParametersMessage(const ParametersMessage&);
@@ -53,6 +55,14 @@ inline int ParametersMessage::getWeatherUpdateInterval() const
5355
return m_weatherUpdateInterval.get();
5456
}
5557

58+
inline int ParametersMessage::getEntertainerCaptchaPercent() const
59+
{
60+
return m_entertainerCaptchaPercent.get();
61+
}
62+
63+
64+
5665
// ======================================================================
5766

5867
#endif
68+

0 commit comments

Comments
 (0)