hg/feature/sound
Matt Raykowski 15 years ago
commit 6eb4cfa546

@ -23,8 +23,9 @@ Temp
save_shard save_shard
last_loaded_char.bin last_loaded_char.bin
*.binprim *.binprim
default_c
*.string_cache *.string_cache
graphs_output
default_c
# Windows compile # Windows compile
*.exe *.exe
@ -42,6 +43,7 @@ default_c
*.so *.so
*.so.* *.so.*
*_debug *_debug
core
# Log dump files # Log dump files
report_refused report_refused
@ -56,6 +58,10 @@ log.txt
*.dlm *.dlm
*.dlu *.dlu
#makeall build
.mode_static
#cmake build files & directories #cmake build files & directories
CMakeFiles CMakeFiles
*.cmake *.cmake
@ -95,10 +101,12 @@ ipch
*.sdf *.sdf
# Ryzom server garbage # Ryzom server garbage
aes_alias_name.cfg
aes_nagios_report.txt aes_nagios_report.txt
aes_state.txt aes_state.txt
*.launch_ctrl *.launch_ctrl
*.state *.state
*.start_count
# Vim and kwrite cache # Vim and kwrite cache
*~ *~
@ -123,6 +131,12 @@ moc_*.cpp
*.7z *.7z
external external
# build
code/nel/build/*
code/nelns/build/*
code/snowballs/build/*
code/ryzom/build/*
# Linux nel compile # Linux nel compile
code/nel/build/nel-config code/nel/build/nel-config
code/nel/config.status code/nel/config.status

@ -1,5 +0,0 @@
syntax: glob
code/nel/build/*
code/nelns/build/*
code/snowballs/build/*
code/ryzom/build/*

@ -726,8 +726,8 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
{ {
uint dicIndex; uint dicIndex;
// add a new dictionnary entry // add a new dictionnary entry
dicIndex = dictionnary.size(); dicIndex = (uint)dictionnary.size();
dictionnaryIndex.insert(std::make_pair(filename, dictionnary.size())); dictionnaryIndex.insert(std::make_pair(filename, (NLMISC::TSStringId)dictionnary.size()));
dictionnary.push_back(filename); dictionnary.push_back(filename);
// add the dependency index // add the dependency index
@ -793,7 +793,7 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
ofile.serialCont(dictionnary); ofile.serialCont(dictionnary);
// write the dependencies data // write the dependencies data
uint32 depSize = dependencies.size(); uint32 depSize = (uint32)dependencies.size();
ofile.serial(depSize); ofile.serial(depSize);
std::map<NLMISC::CSheetId, std::vector<uint32> >::iterator first(dependencies.begin()), last(dependencies.end()); std::map<NLMISC::CSheetId, std::vector<uint32> >::iterator first(dependencies.begin()), last(dependencies.end());
for (; first != last; ++first) for (; first != last; ++first)
@ -811,7 +811,7 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
ofile.seek(endBlockSize, NLMISC::IStream::begin); ofile.seek(endBlockSize, NLMISC::IStream::begin);
// write the sheet data // write the sheet data
uint32 nbEntries = sheetIds.size(); uint32 nbEntries = (uint32)sheetIds.size();
uint32 ver = T::getVersion (); uint32 ver = T::getVersion ();
ofile.serial (nbEntries); ofile.serial (nbEntries);
ofile.serial (ver); ofile.serial (ver);

@ -1504,7 +1504,7 @@ private:
} }
else else
{ {
len= cont.size(); len= (sint32)cont.size();
serial(len); serial(len);
__iterator it= cont.begin(); __iterator it= cont.begin();
@ -1667,7 +1667,7 @@ private:
} }
else else
{ {
len= cont.size(); len= (sint32)cont.size();
serial(len); serial(len);
__iterator it= cont.begin(); __iterator it= cont.begin();

@ -147,7 +147,7 @@ uint8 CBitmap::readPNG( NLMISC::IStream &f )
// read rest of file, and get additional chunks in info_ptr // read rest of file, and get additional chunks in info_ptr
png_read_end(png_ptr, info_ptr); png_read_end(png_ptr, info_ptr);
uint32 dstChannels, firstChannel, lastChannel; uint32 dstChannels = 0, firstChannel = 0, lastChannel = 0;
if (iColorType == PNG_COLOR_TYPE_RGBA || iColorType == PNG_COLOR_TYPE_RGB || iColorType == PNG_COLOR_TYPE_PALETTE) if (iColorType == PNG_COLOR_TYPE_RGBA || iColorType == PNG_COLOR_TYPE_RGB || iColorType == PNG_COLOR_TYPE_PALETTE)
{ {

@ -206,7 +206,7 @@ void NLPACS::CGlobalRetriever::check() const
} }
if (chain.getRight()>=(sint)retriever.getSurfaces().size() || if (chain.getRight()>=(sint)retriever.getSurfaces().size() ||
chain.getRight()<=CChain::getDummyBorderChainId() && !CChain::isBorderChainId(chain.getRight())) (chain.getRight()<=CChain::getDummyBorderChainId() && !CChain::isBorderChainId(chain.getRight())))
{ {
nlwarning("retriever %d, chain %d: reference on right surface is not valid", instance.getRetrieverId(), j); nlwarning("retriever %d, chain %d: reference on right surface is not valid", instance.getRetrieverId(), j);
} }
@ -313,7 +313,7 @@ void NLPACS::CGlobalRetriever::getBorders(const CAABBox &sbox, std::vector<std::
bool luw = (lsurface.getFlags() & (1 << CRetrievableSurface::IsUnderWaterBit)) != 0; bool luw = (lsurface.getFlags() & (1 << CRetrievableSurface::IsUnderWaterBit)) != 0;
bool ruw = (rsurface.getFlags() & (1 << CRetrievableSurface::IsUnderWaterBit)) != 0; bool ruw = (rsurface.getFlags() & (1 << CRetrievableSurface::IsUnderWaterBit)) != 0;
if (luw && !ruw || !luw && ruw) if (luw != ruw)
chainType = 3; chainType = 3;
} }
@ -1461,7 +1461,7 @@ void NLPACS::CGlobalRetriever::testCollisionWithCollisionChains(CCollisionSurfac
//======================== //========================
float t=0.0, tMin=1; float t=0.0, tMin=1;
CVector2f normal, normalMin; CVector2f normal, normalMin(0.0f, 0.0f);
// run list of edge. // run list of edge.
sint32 curEdge= colChain.FirstEdgeCollide; sint32 curEdge= colChain.FirstEdgeCollide;
while(curEdge!=(sint32)0xFFFFFFFF) while(curEdge!=(sint32)0xFFFFFFFF)

@ -1415,7 +1415,7 @@ void NLPACS::CLocalRetriever::snapToInteriorGround(NLPACS::ULocalPosition &posit
CVector posh = pos+CVector(0.0f, 0.0f, 1.0f); CVector posh = pos+CVector(0.0f, 0.0f, 1.0f);
CVector2f pos2d = position.Estimation; CVector2f pos2d = position.Estimation;
float bestDist = 1.0e10f; float bestDist = 1.0e10f;
CVector best; CVector best(0.0f, 0.0f, 0.0f);
vector<uint32>::iterator it; vector<uint32>::iterator it;
snapped = false; snapped = false;
for (it=selection.begin(); it!=selection.end(); ++it) for (it=selection.begin(); it!=selection.end(); ++it)
@ -1483,7 +1483,7 @@ float NLPACS::CLocalRetriever::getHeight(const NLPACS::ULocalPosition &position)
CVector pos = position.Estimation; CVector pos = position.Estimation;
CVector posh = pos+CVector(0.0f, 0.0f, 1.0f); CVector posh = pos+CVector(0.0f, 0.0f, 1.0f);
float bestDist = 1.0e10f; float bestDist = 1.0e10f;
CVector best; CVector best(0.0f, 0.0f, 0.0f);
vector<uint32>::iterator it; vector<uint32>::iterator it;
for (it=selection.begin(); it!=selection.end(); ++it) for (it=selection.begin(); it!=selection.end(); ++it)
{ {
@ -1580,7 +1580,7 @@ float NLPACS::CLocalRetriever::getInteriorHeightAround(const ULocalPosition &pos
CVector pos = position.Estimation; CVector pos = position.Estimation;
CVector posh = pos+CVector(0.0f, 0.0f, 1.0f); CVector posh = pos+CVector(0.0f, 0.0f, 1.0f);
float bestDist = 1.0e10f; float bestDist = 1.0e10f;
CVector best; CVector best(0.0f, 0.0f, 0.0f);
vector<uint32>::iterator it; vector<uint32>::iterator it;
for (it=selection.begin(); it!=selection.end(); ++it) for (it=selection.begin(); it!=selection.end(); ++it)
{ {

@ -1183,7 +1183,7 @@ void CPrimitiveWorldImage::reaction (CPrimitiveWorldImage& second, const CCollis
collisionPosition+=_Speed*desc.ContactTime; collisionPosition+=_Speed*desc.ContactTime;
// Calc new speed // Calc new speed
CVectorD newSpeed; CVectorD newSpeed(0.0, 0.0, 0.0);
// Obstacle ? // Obstacle ?
if (collision) if (collision)

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9,00" Version="9.00"
Name="admin_service" Name="admin_service"
ProjectGUID="{AA03E539-FE77-4B63-BE0E-DE637635E5A9}" ProjectGUID="{AA03E539-FE77-4B63-BE0E-DE637635E5A9}"
RootNamespace="admin_service" RootNamespace="admin_service"
@ -20,8 +20,8 @@
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2" CharacterSet="2"
> >
@ -68,7 +68,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="mysqlclient.lib" AdditionalDependencies="mysqlclient.lib"
OutputFile="$(RootNamespace)_d.exe"
SuppressStartupBanner="true" SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="msvcrt" IgnoreDefaultLibraryNames="msvcrt"
GenerateDebugInformation="true" GenerateDebugInformation="true"
@ -101,8 +100,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2" CharacterSet="2"
> >
@ -150,7 +149,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="mysqlclient.lib" AdditionalDependencies="mysqlclient.lib"
OutputFile="$(RootNamespace)_d.exe"
SuppressStartupBanner="true" SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="" IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true" GenerateDebugInformation="true"
@ -183,8 +181,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2" CharacterSet="2"
> >
@ -231,7 +229,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="winmm.lib odbc32.lib odbccp32.lib ws2_32.lib libxml2.lib zlib.lib freetype.lib mysqlclient.lib" AdditionalDependencies="winmm.lib odbc32.lib odbccp32.lib ws2_32.lib libxml2.lib zlib.lib freetype.lib mysqlclient.lib"
OutputFile="$(RootNamespace)_r.exe"
SuppressStartupBanner="true" SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libc;libcmt;libcmtd;msvcrtd" IgnoreDefaultLibraryNames="libc;libcmt;libcmtd;msvcrtd"
ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb" ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
@ -265,8 +262,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2" CharacterSet="2"
> >
@ -314,7 +311,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="winmm.lib odbc32.lib odbccp32.lib ws2_32.lib libxml2.lib zlib.lib freetype.lib mysqlclient.lib" AdditionalDependencies="winmm.lib odbc32.lib odbccp32.lib ws2_32.lib libxml2.lib zlib.lib freetype.lib mysqlclient.lib"
OutputFile="$(RootNamespace)_r.exe"
SuppressStartupBanner="true" SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libc;libcmt;libcmtd;msvcrtd" IgnoreDefaultLibraryNames="libc;libcmt;libcmtd;msvcrtd"
ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb" ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

@ -145,11 +145,16 @@ void CEventsListener::operator()(const CEvent& event)
// Event from the Mouse (ANGLE) // Event from the Mouse (ANGLE)
if(event == EventGDMouseMove) if(event == EventGDMouseMove)
{ {
#ifdef NL_OS_WINDOWS
CGDMouseMove* mouseEvent=(CGDMouseMove*)&event; CGDMouseMove* mouseEvent=(CGDMouseMove*)&event;
// Mouse acceleration // Mouse acceleration
sint dX = mouseEvent->X; sint dX = mouseEvent->X;
sint dY = ClientCfg.FreeLookInverted ? -mouseEvent->Y : mouseEvent->Y; sint dY = ClientCfg.FreeLookInverted ? -mouseEvent->Y : mouseEvent->Y;
updateFreeLookPos((float) dX, (float) dY); updateFreeLookPos((float) dX, (float) dY);
#else
// just to make sure that there is no game device implementation un unix
nlerror("not expecting EventGDMouseMove on unix");
#endif
} }
// Event from the Mouse (MOVE) // Event from the Mouse (MOVE)
else if(event == EventMouseMoveId) else if(event == EventMouseMoveId)

@ -65,6 +65,11 @@ bool SetMousePosFirstTime = true;
// mask for mouse buttons that are known to be down // mask for mouse buttons that are known to be down
uint DownMouseButtons = 0; uint DownMouseButtons = 0;
#ifdef NL_OS_UNIX
// on X11, store whether the mouse was captured or not
bool MouseCapture = false;
#endif
////////////// //////////////
// FUNCTION // // FUNCTION //
////////////// //////////////
@ -244,6 +249,13 @@ void SetMouseFreeLook ()
} }
UpdateMouse (); UpdateMouse ();
} }
#ifdef NL_OS_UNIX
// on X11 the mouse needs to get pulled into the middle each update, else
// the cursor would reach the border of the window / desktop
// and freelook would hang
Driver->setMousePos(0.5f, 0.5f);
#endif
} }
//********************************************************************************* //*********************************************************************************
@ -360,24 +372,28 @@ void CaptureSystemCursor()
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = (HWND) Driver->getDisplay();
if (!drvWnd) return; if (!drvWnd) return;
SetCapture(drvWnd); SetCapture(drvWnd);
#else
// on X11, set driver mouse capture on and store it locally as well
Driver->setCapture(MouseCapture = true);
#endif #endif
} }
//********************************************************************************* //*********************************************************************************
void ReleaseSystemCursor() void ReleaseSystemCursor()
{ {
if (!IsSystemCursorCaptured()) return;
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
if (IsSystemCursorCaptured()) // if hardware mouse and not in client area, then force to update its aspect by updating its pos
if (!IsSystemCursorInClientArea())
{ {
// if hardware mouse and not in client area, then force to update its aspect by updating its pos // force update
if (!IsSystemCursorInClientArea()) ShowCursor(FALSE);
{ ShowCursor(TRUE);
// force update
ShowCursor(FALSE);
ShowCursor(TRUE);
}
ReleaseCapture();
} }
ReleaseCapture();
#else
// on X11, set driver mouse capture off and store it locally as well
Driver->setCapture(MouseCapture = false);
#endif #endif
} }
@ -388,7 +404,7 @@ bool IsSystemCursorCaptured()
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
return GetCapture() == (HWND) Driver->getDisplay(); return GetCapture() == (HWND) Driver->getDisplay();
#else #else
return false; return MouseCapture;
#endif #endif
} }

@ -2625,7 +2625,7 @@ void CGroupHTML::handle ()
_URL = home(); _URL = home();
string finalUrl; string finalUrl;
lookupLocalFile (finalUrl, _URL.c_str(), true); bool isLocal = lookupLocalFile (finalUrl, _URL.c_str(), true);
// Reset the title // Reset the title
if(_TitlePrefix.empty()) if(_TitlePrefix.empty())
@ -2664,7 +2664,12 @@ void CGroupHTML::handle ()
C3WSmartPtr uri = HTParse(finalUrl.c_str(), NULL, PARSE_ALL); C3WSmartPtr uri = HTParse(finalUrl.c_str(), NULL, PARSE_ALL);
// Create an anchor // Create an anchor
#ifdef NL_OS_WINDOWS
if ((_LibWWW->Anchor = HTAnchor_findAddress(uri)) == NULL) if ((_LibWWW->Anchor = HTAnchor_findAddress(uri)) == NULL)
#else
// temporarily disable local URL's until LibWWW can be replaced.
if (isLocal || ((_LibWWW->Anchor = HTAnchor_findAddress(uri)) == NULL))
#endif
{ {
browseError((string("The page address is malformed : ")+(const char*)uri).c_str()); browseError((string("The page address is malformed : ")+(const char*)uri).c_str());
} }

@ -66,7 +66,7 @@ static string getWebAuthKey()
void addWebIGParams (string &url) void addWebIGParams (string &url)
{ {
if(!UserEntity) return; if(!UserEntity || (NetMngr.getConnectionState() < CNetworkConnection::Connected)) return;
uint32 cid = NetMngr.getLoginCookie().getUserId() * 16 + PlayerSelectedSlot; uint32 cid = NetMngr.getLoginCookie().getUserId() * 16 + PlayerSelectedSlot;
url += ((url.find('?') != string::npos) ? "&" : "?") + url += ((url.find('?') != string::npos) ? "&" : "?") +

@ -31,9 +31,15 @@
#undef assert #undef assert
#define assert nlassert #define assert nlassert
#include <luabind/luabind.hpp> #include <luabind/luabind.hpp>
// in luabind > 0.6, LUABIND_MAX_ARITY is set to 10
#if LUABIND_MAX_ARITY == 10 #if LUABIND_MAX_ARITY == 10
# include <luabind/version.hpp>
# include <luabind/operator.hpp> # include <luabind/operator.hpp>
# include <luabind/version.hpp>
# ifndef LUABIND_VERSION
// luabind 0.7 doesn't define LUABIND_VERSION
# define LUABIND_VERSION 700
# endif
// luabind 0.6 doesn't define LUABIND_VERSION but LUABIND_MAX_ARITY is set to 5
#elif LUABIND_MAX_ARITY == 5 #elif LUABIND_MAX_ARITY == 5
# define LUABIND_VERSION 600 # define LUABIND_VERSION 600
#else #else
@ -289,8 +295,10 @@ bool CLuaIHM::getUCStringOnStack(CLuaState &ls, sint index, ucstring &dest)
void CLuaIHM::push(CLuaState &ls, const ucstring &value) void CLuaIHM::push(CLuaState &ls, const ucstring &value)
{ {
//H_AUTO(Lua_CLuaIHM_push) //H_AUTO(Lua_CLuaIHM_push)
#if LUABIND_VERSION > 600
luabind::detail::push(ls.getStatePointer(), value);
#else
luabind::object obj(ls.getStatePointer(), value); luabind::object obj(ls.getStatePointer(), value);
#if LUABIND_VERSION == 600
obj.pushvalue(); obj.pushvalue();
#endif #endif
} }
@ -647,16 +655,22 @@ void CLuaIHM::luaValueFromReflectedProperty(CLuaState &ls, CReflectable &reflect
break; break;
case CReflectedProperty::UCString: case CReflectedProperty::UCString:
{ {
luabind::object obj(ls.getStatePointer(), (reflectedObject.*(property.GetMethod.GetUCString))() ); ucstring str = (reflectedObject.*(property.GetMethod.GetUCString))();
#if LUABIND_VERSION == 600 #if LUABIND_VERSION > 600
luabind::detail::push(ls.getStatePointer(), str);
#else
luabind::object obj(ls.getStatePointer(), str);
obj.pushvalue(); obj.pushvalue();
#endif #endif
} }
break; break;
case CReflectedProperty::RGBA: case CReflectedProperty::RGBA:
{ {
luabind::object obj(ls.getStatePointer(), (reflectedObject.*(property.GetMethod.GetRGBA))()); CRGBA color = (reflectedObject.*(property.GetMethod.GetRGBA))();
#if LUABIND_VERSION == 600 #if LUABIND_VERSION > 600
luabind::detail::push(ls.getStatePointer(), color);
#else
luabind::object obj(ls.getStatePointer(), color);
obj.pushvalue(); obj.pushvalue();
#endif #endif
} }
@ -1131,17 +1145,17 @@ int CLuaIHM::getClientCfgVar(CLuaState &ls)
ls.newTable(); ls.newTable();
CLuaObject result(ls); CLuaObject result(ls);
uint count = 0; uint count = 0;
for(uint i = 0; (sint)i<v->StrValues.size(); i++) for(uint i = 0; i<v->StrValues.size(); i++)
{ {
result.setValue(toString(count).c_str(), v->StrValues[i]); result.setValue(toString(count).c_str(), v->StrValues[i]);
count++; count++;
} }
for(uint i = 0; (sint)i<v->IntValues.size(); i++) for(uint i = 0; i<v->IntValues.size(); i++)
{ {
result.setValue(toString(count).c_str(), (double)v->IntValues[i]); result.setValue(toString(count).c_str(), (double)v->IntValues[i]);
count++; count++;
} }
for(uint i = 0; (sint)i<v->RealValues.size(); i++) for(uint i = 0; i<v->RealValues.size(); i++)
{ {
result.setValue(toString(count).c_str(), (double)v->RealValues[i]); result.setValue(toString(count).c_str(), (double)v->RealValues[i]);
count++; count++;
@ -1994,7 +2008,7 @@ void CLuaIHM::unpauseBGDownloader()
// *************************************************************************** // ***************************************************************************
void CLuaIHM::requestBGDownloaderPriority(uint priority) void CLuaIHM::requestBGDownloaderPriority(uint priority)
{ {
if (priority < 0 || priority >= BGDownloader::ThreadPriority_Count) if (priority >= BGDownloader::ThreadPriority_Count)
{ {
throw NLMISC::Exception("requestBGDownloaderPriority() : invalid priority"); throw NLMISC::Exception("requestBGDownloaderPriority() : invalid priority");
} }
@ -2668,8 +2682,10 @@ int CLuaIHM::runExprAndPushResult(CLuaState &ls, const std::string &expr)
// push a ucstring? // push a ucstring?
if(mustUseUCString) if(mustUseUCString)
{ {
luabind::object obj(ls.getStatePointer(), ucstr ); #if LUABIND_VERSION > 600
#if LUABIND_VERSION == 600 luabind::detail::push(ls.getStatePointer(), ucstr);
#else
luabind::object obj(ls.getStatePointer(), ucstr);
obj.pushvalue(); obj.pushvalue();
#endif #endif
} }
@ -2681,10 +2697,11 @@ int CLuaIHM::runExprAndPushResult(CLuaState &ls, const std::string &expr)
} }
case CInterfaceExprValue::RGBA: case CInterfaceExprValue::RGBA:
{ {
luabind::object obj(ls.getStatePointer(), value.getRGBA()); CRGBA color = value.getRGBA();
#if LUABIND_VERSION > 600 #if LUABIND_VERSION > 600
obj.push(ls.getStatePointer()); luabind::detail::push(ls.getStatePointer(), color);
#else #else
luabind::object obj(ls.getStatePointer(), color);
obj.pushvalue(); obj.pushvalue();
#endif #endif
break; break;

@ -431,6 +431,11 @@ void CUserControls::getMouseAngleMove(float &dx, float &dy)
// The mouse may still "StandardMove" ie through a CEventMouseMove // The mouse may still "StandardMove" ie through a CEventMouseMove
// This can happens cause DirectInputDisabled, or because of the "Rotation Anti-Lag system" // This can happens cause DirectInputDisabled, or because of the "Rotation Anti-Lag system"
// which start to rotate before the mouse is hid and message mode passed to RawMode // which start to rotate before the mouse is hid and message mode passed to RawMode
//
// If we are not on Windows; on X11 there is always StandardMove/CEventMouseMove.
// Currently, there is only a direct input IMouseDevice, not available on X11.
#ifdef NL_OS_WINDOWS
extern IMouseDevice *MouseDevice; extern IMouseDevice *MouseDevice;
if (MouseDevice) if (MouseDevice)
{ {
@ -446,6 +451,35 @@ void CUserControls::getMouseAngleMove(float &dx, float &dy)
EventsListener.updateFreeLookPos(dmpx, dmpy); EventsListener.updateFreeLookPos(dmpx, dmpy);
} }
} }
#else
// On X11, do the thing without IMouseDevice implementation
if( EventsListener.getMousePosX() != _LastFrameMousePosX ||
EventsListener.getMousePosY() != _LastFrameMousePosY )
{
float dmpx, dmpy;
// On X11 in free look mode, the mouse is pulled back to (0.5, 0.5)
// every update to prevent reaching a border and get stuck.
if(IsMouseFreeLook())
{
dmpx = EventsListener.getMousePosX() - 0.5;
dmpy = EventsListener.getMousePosY() - 0.5;
}
else
{
dmpx = EventsListener.getMousePosX() - _LastFrameMousePosX;
dmpy = EventsListener.getMousePosY() - _LastFrameMousePosY;
}
// TODO: read desktop mouse speed value on X11 / implement X11MouseDevice
dmpx *= 450.0f;
dmpy *= 450.0f;
if(ClientCfg.FreeLookInverted) dmpy = -dmpy;
// update free look
EventsListener.updateFreeLookPos(dmpx, dmpy);
}
#endif
// If the mouse move on the axis X, with a CGDMouseMove // If the mouse move on the axis X, with a CGDMouseMove
if(EventsListener.isMouseAngleX()) if(EventsListener.isMouseAngleX())

@ -1078,7 +1078,7 @@ function r2.activities:initActivityMenu()
activityMenu:addSubMenu(activitiesNb) activityMenu:addSubMenu(activitiesNb)
local zonesMenu = activityMenu:getSubMenu(activitiesNb) local zonesMenu = activityMenu:getSubMenu(activitiesNb)
local zonesTable = r2.Scenario:getAllInstancesByType(zone) local zonesTable = r2.Scenario:getAllInstancesByType(zone)
for key, z in zonesTable do for key, z in pairs(zonesTable) do
uc_activity:fromUtf8(z.Name) uc_activity:fromUtf8(z.Name)
zonesMenu:addLine(uc_activity, "lua", "r2.activities:setActivityType('"..actType.."', '".. z.InstanceId .."')", z.InstanceId) zonesMenu:addLine(uc_activity, "lua", "r2.activities:setActivityType('"..actType.."', '".. z.InstanceId .."')", z.InstanceId)
end end

@ -502,7 +502,7 @@ end
-- default is to look recursively in the 'son select bar container' -- default is to look recursively in the 'son select bar container'
function baseClass.getFirstSelectBarSon(this) function baseClass.getFirstSelectBarSon(this)
local sons = this:getSelectBarSons() local sons = this:getSelectBarSons()
if not sons then return nil end if not sons then return nil end
for k, v in specPairs(sons) do for k, v in specPairs(sons) do
if v:displayInSelectBar() then if v:displayInSelectBar() then
return v return v

@ -380,7 +380,7 @@ function r2.events:filterEvents(logicEntityId)
end end
table.insert(allLogicEntities, r2.Scenario) table.insert(allLogicEntities, r2.Scenario)
for k0, entity in allLogicEntities do for k0, entity in pairs(allLogicEntities) do
local behavior = self:getBehavior(entity) local behavior = self:getBehavior(entity)
if not self.memberManagement then -- TEMP if not self.memberManagement then -- TEMP

@ -248,7 +248,7 @@ end
function component.initLogicEntitiesInstancesMenu(this, subMenu, calledFunction) function component.initLogicEntitiesInstancesMenu(this, subMenu, calledFunction)
local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name) local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name)
for key, entity in entitiesTable do for key, entity in pairs(entitiesTable) do
local uc_name = ucstring() local uc_name = ucstring()
uc_name:fromUtf8(entity.Name) uc_name:fromUtf8(entity.Name)
subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId) subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId)

@ -786,7 +786,7 @@ Logic.Components.ChatSequence = {
initLogicEntitiesInstancesMenu = function(this, subMenu, calledFunction) initLogicEntitiesInstancesMenu = function(this, subMenu, calledFunction)
local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name) local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name)
for key, entity in entitiesTable do for key, entity in pairs(entitiesTable) do
local uc_name = ucstring() local uc_name = ucstring()
uc_name:fromUtf8(entity.Name) uc_name:fromUtf8(entity.Name)
subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId) subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId)

@ -298,7 +298,7 @@ end
--function logicEntity.initLogicEntitiesInstancesMenu(this, subMenu, calledFunction) --function logicEntity.initLogicEntitiesInstancesMenu(this, subMenu, calledFunction)
-- --
-- local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name) -- local entitiesTable = r2.Scenario:getAllInstancesByType(this.Name)
-- for key, entity in entitiesTable do -- for key, entity in pairs(entitiesTable) do
-- local uc_name = ucstring() -- local uc_name = ucstring()
-- uc_name:fromUtf8(entity.Name) -- uc_name:fromUtf8(entity.Name)
-- subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId) -- subMenu:addLine(uc_name, "lua", calledFunction.."('".. entity.InstanceId .."')", entity.InstanceId)

@ -83,7 +83,7 @@ function r2.ContextualCommands:update()
end end
-- if one of the command is highlighted, let it highlighted after the toolbar has been rebuilt -- if one of the command is highlighted, let it highlighted after the toolbar has been rebuilt
--local highlightedCommand --local highlightedCommand
--for index, button in self.IndexToButton do --for index, button in pairs(self.IndexToButton) do
-- if button == r2.ToolUI:getActiveToolUI() then -- if button == r2.ToolUI:getActiveToolUI() then
-- debugInfo("highlighted command found") -- debugInfo("highlighted command found")
-- highlightedCommand = self.CurrentCommands[index] -- highlightedCommand = self.CurrentCommands[index]

@ -2193,7 +2193,7 @@ function r2:updateEquipment(instance, init)
comboBox:resetTexts() comboBox:resetTexts()
for k1, v1 in v do for k1, v1 in pairs(v) do
comboBox:addText(ucstring(v1.trad)) comboBox:addText(ucstring(v1.trad))
end end
end end

@ -722,7 +722,7 @@ r2.ActUIDisplayer.LastSelfCreatedActInstanceId = nil -- id of the last act creat
for i = 0, r2:getMaxNumberOfAdditionnalActs() - 1 do for i = 0, r2:getMaxNumberOfAdditionnalActs() - 1 do
local tree = self:getContainer():find(treeName .. tostring(i)) local tree = self:getContainer():find(treeName .. tostring(i))
local used = false local used = false
for index, entry in self:getActTable() do for index, entry in pairs(self:getActTable()) do
local entryTree = entry.Tree local entryTree = entry.Tree
if macroTree==true then entryTree = entry.MacroTree end if macroTree==true then entryTree = entry.MacroTree end
if entryTree == tree then if entryTree == tree then

@ -1889,7 +1889,7 @@ function r2:buildAllPropertySheetsAndForms()
--debugInfo('building forms') --debugInfo('building forms')
if r2.Forms ~= nil then if r2.Forms ~= nil then
for formName, form in r2.Forms do for formName, form in pairs(r2.Forms) do
local mustRebuild = true local mustRebuild = true
if r2FormsCache[formName] ~= nil then if r2FormsCache[formName] ~= nil then
if isEqualIgnoreFunctions(r2FormsCache[formName], form.Prop) then if isEqualIgnoreFunctions(r2FormsCache[formName], form.Prop) then

@ -903,7 +903,7 @@ function r2:openActivityMenu()
-- activityMenu:addSubMenu(6) -- activityMenu:addSubMenu(6)
-- local regionsMenu = activityMenu:getSubMenu(6) -- local regionsMenu = activityMenu:getSubMenu(6)
-- local regionsTable = r2.Scenario:getAllInstancesByType("Region") -- local regionsTable = r2.Scenario:getAllInstancesByType("Region")
-- for key, region in regionsTable do -- for key, region in pairs(regionsTable) do
-- regionsMenu:addLine(ucstring(region.Name), "lua", "r2:setActivity('Deploy', '".. region.InstanceId .."')", region.InstanceId) -- regionsMenu:addLine(ucstring(region.Name), "lua", "r2:setActivity('Deploy', '".. region.InstanceId .."')", region.InstanceId)
-- end -- end
-- if table.getn(regionsTable) == 0 then -- if table.getn(regionsTable) == 0 then

@ -14,9 +14,13 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
/*
* Completely implemented in xml_auto_ptr.h
*/
#include "stdpch.h" #include "stdpch.h"
/*
#include "xml_auto_ptr.h" #include "xml_auto_ptr.h"
#include <libxml/parser.h> #include <libxml/parser.h>
@ -45,10 +49,4 @@ CXMLAutoPtr &CXMLAutoPtr::operator = (const char *other)
return *this; return *this;
} }
*/

@ -28,7 +28,7 @@ class CXMLAutoPtr
public: public:
CXMLAutoPtr(const char *value = NULL) : _Value(value) {} CXMLAutoPtr(const char *value = NULL) : _Value(value) {}
CXMLAutoPtr(const unsigned char *value) : _Value((const char *) value) {} CXMLAutoPtr(const unsigned char *value) : _Value((const char *) value) {}
~CXMLAutoPtr(); ~CXMLAutoPtr() { destroy(); }
operator const char *() const { return _Value; } operator const char *() const { return _Value; }
operator bool() const { return _Value != NULL; } operator bool() const { return _Value != NULL; }
operator std::string() const { return std::string(_Value); } operator std::string() const { return std::string(_Value); }
@ -36,7 +36,14 @@ public:
operator const unsigned char *() const { return (const unsigned char *) _Value; } operator const unsigned char *() const { return (const unsigned char *) _Value; }
const char operator * () const { nlassert(_Value); return *_Value; } const char operator * () const { nlassert(_Value); return *_Value; }
/// NB : This remove previous owned pointer with xmlFree /// NB : This remove previous owned pointer with xmlFree
CXMLAutoPtr &operator = (const char *other); CXMLAutoPtr &operator = (const char *other)
{
if (other == _Value) return *this;
destroy();
_Value = other;
return *this;
}
CXMLAutoPtr &operator = (const unsigned char *other) CXMLAutoPtr &operator = (const unsigned char *other)
{ {
*this = (const char *) other; *this = (const char *) other;
@ -47,7 +54,15 @@ public:
private: private:
const char *_Value; const char *_Value;
private: private:
void destroy(); void destroy()
{
if (_Value)
{
xmlFree(const_cast<char *>(_Value));
_Value = NULL;
}
}
// We'd rather avoid problems // We'd rather avoid problems
CXMLAutoPtr(const CXMLAutoPtr &/* other */) CXMLAutoPtr(const CXMLAutoPtr &/* other */)
{ {

@ -1,57 +1,16 @@
#include "admin_executor_service_default.cfg" // Use with commandline: ryzom_admin_service -A. -C. -L. --nobreak --fulladminname=admin_executor_service --shortadminname=AES
// I'm the AES, I'll not connect to myself!
DontUseAES = 1;
// I don't need a connection to a naming service
DontUseNS = 1;
#include "admin_executor_service_default.cfg"
AESAliasName= "aes"; // ---- config local variables
// // Address of the admin service (default port is 49996)
DontUseStdIn = 0;
// Address ofthe admin service (default port is 49996)
ASHost = "localhost"; ASHost = "localhost";
ASPort="46701";
// Config for AES // ---- service NeL variables (used by ConfigFile class)
AESPort = "46702";
AESHost = "localhost";
ASPort = "46701";
// in second, -1 for not restarting
RestartDelay = 60;
// how many second before aborting the request if not finished
RequestTimeout = 5;
// log path for advanced log report
LogPath = "/.";
// setup for deployment environment with exeternal configuration system responsible for launching apps and
// for configuring AES services
DontLaunchServicesDirectly = 1;
UseExplicitAESRegistration = 1;
KillServicesOnDisconnect = 1;
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 0;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// how to sleep between to network update
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
#include "./aes_alias_name.cfg" AESAliasName= "aes_open";
StartCommands= StartCommands=
{ {
@ -73,7 +32,6 @@ StartCommands=
"gw_aes.transportAdd L3Client aes_l3c", "gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr="+AESHost+":"+AESPort+")", "gw_aes.transportCmd aes_l3c(connect addr="+AESHost+":"+AESPort+")",
// create the admin executor service module // create the admin executor service module
"moduleManager.createModule AdminExecutorService aes", "moduleManager.createModule AdminExecutorService aes",
@ -93,11 +51,31 @@ StartCommands=
// plug the as // plug the as
"aes.plug asc_gw", "aes.plug asc_gw",
"aes.plug aes_gw", "aes.plug aes_gw",
};
StartCommands +=
{
"aes.addRegisteredService bms_master open",
// "aes.addRegisteredService bms_pd_master open",
"aes.addRegisteredService egs open",
"aes.addRegisteredService gpms open",
"aes.addRegisteredService ios open",
"aes.addRegisteredService rns open",
"aes.addRegisteredService rws open",
"aes.addRegisteredService ts open",
"aes.addRegisteredService ms open",
"aes.addRegisteredService ais_newbyland open",
"aes.addRegisteredService mfs open",
"aes.addRegisteredService su open",
"aes.addRegisteredService fes open",
"aes.addRegisteredService sbs open",
"aes.addRegisteredService lgs open",
// "aes.addRegisteredService mos open",
// "aes.addRegisteredService pdss open",
"aes.addRegisteredService ras open",
}; };
ShardName="dev";
bms_master = { "./", "/home/nevrax/dev/live/service_backup_service/backup_service", "-C. -L. --nobreak --writepid -P49990" }; bms_master = { "./", "/home/nevrax/dev/live/service_backup_service/backup_service", "-C. -L. --nobreak --writepid -P49990" };
bms_pd_master = { "./", "/home/nevrax/dev/live/service_backup_service/backup_service", "-C. -L. --nobreak --writepid -P49992" }; bms_pd_master = { "./", "/home/nevrax/dev/live/service_backup_service/backup_service", "-C. -L. --nobreak --writepid -P49992" };
egs = { "./", "/home/nevrax/dev/live/service_entities_game_service/entities_game_service", "-C. -L. --nobreak --writepid" }; egs = { "./", "/home/nevrax/dev/live/service_entities_game_service/entities_game_service", "-C. -L. --nobreak --writepid" };
@ -139,24 +117,33 @@ RegisteredServices=
"ras", "ras",
}; };
StartCommands += //
{ DontUseStdIn = 0;
"aes.addRegisteredService bms_master open",
// "aes.addRegisteredService bms_pd_master open", // ---- service NeL variables (used by CVariable class)
"aes.addRegisteredService egs open",
"aes.addRegisteredService gpms open", // If the update loop is too slow, a thread will produce an assertion.
"aes.addRegisteredService ios open", // By default, the value is set to 10 minutes.
"aes.addRegisteredService rns open", // Set to 0 for no assertion.
"aes.addRegisteredService rws open", UpdateAssertionThreadTimeout = 0;
"aes.addRegisteredService ts open",
"aes.addRegisteredService ms open", // ---- service custom variables (used by ConfigFile class)
"aes.addRegisteredService ais_newbyland open",
"aes.addRegisteredService mfs open", // ---- service custom variables (used by CVariable class)
"aes.addRegisteredService su open",
"aes.addRegisteredService fes open", // in second, -1 for not restarting
"aes.addRegisteredService sbs open", RestartDelay = 60;
"aes.addRegisteredService lgs open",
// "aes.addRegisteredService mos open", // how many second before aborting the request if not finished
// "aes.addRegisteredService pdss open", RequestTimeout = 5;
"aes.addRegisteredService ras open",
}; // log path for advanced log report
LogPath = "/.";
// setup for deployment environment with exeternal configuration system responsible for launching apps and
// for configuring AES services
DontLaunchServicesDirectly = 1;
UseExplicitAESRegistration = 1;
KillServicesOnDisconnect = 1;
ShardName="dev";

@ -1 +1,7 @@
#include "common.cfg" #include "common.cfg"
// I'm the AES, I'll not connect to myself!
DontUseAES = 1;
// I don't need a connection to a naming service
DontUseNS = 1;

@ -1,298 +1,22 @@
// Use with commandline: ryzom_admin_service --fulladminname=ryzom_admin_service --shortadminname=AS -C. -L. --nobreak --writepid // Use with commandline: ryzom_admin_service --fulladminname=ryzom_admin_service --shortadminname=AS -C. -L. --nobreak --writepid
AESAliasName= "ras";
// ---- config local variables
ASWebPort="46700"; ASWebPort="46700";
ASPort="46701"; ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
};
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "admin_service_default.cfg" #include "admin_service_default.cfg"
Mainlands = { // ---- service NeL variables (used by ConfigFile class)
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; AESAliasName= "ras";
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { Paths = {
".", ".",
}; };
// ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
// ---- service custom variables (used by CVariable class)

@ -1,3 +0,0 @@
AESAliasName= "aes_open";
AESPort="46702";
ASPort="46701";

@ -1,312 +1,69 @@
// Use with commandline: ai_service -C. -L. --nobreak --writepid -mCommon:Newbieland:Post // Use with commandline: ai_service -C. -L. --nobreak --writepid -mCommon:Newbieland:Post
AESAliasName= "ais_newbyland";
ASWebPort="46700"; // ---- config local variables
ASPort="46701";
AESPort="46702";
SUPort = 50505; SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost"; SUHost = "localhost";
MFSHost = "localhost"; // SU - listen address of the SU service (for L5 connections)
BSHost = "localhost:49990"; SUAddress = SUHost+":"+SUPort;
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "db1.ryzom.com";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service #include "ai_service_default.cfg"
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway // ---- service NeL variables (used by ConfigFile class)
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service AESAliasName= "ais_newbyland";
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...) Paths = {
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO "" ".",
* Only log analyser must have the $shard parameter to find all shards root directory "../common/data_common",
*/ "../common/data_leveldesign",
PDRootDirectory = ""; };
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- service NeL variables (used by CVariable class)
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- service custom variables (used by ConfigFile class)
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file #include "used_continents.cfg"
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail // Mirror limits
MSWStrictMode=0; DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// This is the mapping for logical continent to physical one // define the primitives configuration used. (AIS, EGS)
ContinentNameTranslator = UsedPrimitives =
{ {
"matis_newbie", "matis", "newbieland_all",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour // the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader // of the packed sheet reader
GeorgePaths = { "" }; GeorgePaths = { "" };
// Disable nel net verbose logging // ---- service custom variables (used by CVariable class)
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "/home/nevrax/live/save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path? NbPlayersLimit = PlayerLimit;
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS) // Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4; NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000; NbFaunaLimit = 50000;
NbNpcLimit = 20000; NbNpcLimit = 20000;
NbFxLimit = 500; NbFxLimit = 500;
// This is the list of continent to use with their unique instance number #include "backup_service_interface.cfg"
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "ai_service_default.cfg"
WriteFilesDirectory= "data_shard";
GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "../rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; // Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
RingRPEnabled=0; IsRingShard = 0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // Disable ryzom verbose logging
".", VerboseMIRROR = 0;
"../common/data_common",
"../common/data_leveldesign",
};

@ -1,169 +1,19 @@
// Use with commandline: backup_service -C. -L. --nobreak --writepid -P49990 // Use with commandline: backup_service -C. -L. --nobreak --writepid -P49990
AESAliasName= "bms_master";
ASWebPort="46700"; #include "backup_service_default.cfg"
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- config local variables
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file // ---- service NeL variables (used by ConfigFile class)
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail AESAliasName = "bms_master";
MSWStrictMode=0;
// This is the mapping for logical continent to physical one Paths = {
ContinentNameTranslator = ".",
{ "../common/data_leveldesign",
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// ---- service NeL variables (used by CVariable class)
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot // Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = ""; SaveFilesDirectory = "";
@ -171,135 +21,14 @@ SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet) // where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard"; WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path? // ---- service custom variables (used by ConfigFile class)
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to WebPort = 49970;
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into // ---- service custom variables (used by CVariable class)
LogChatDirectory = "data_shard_local";
// MFS - Directories // BS - Root directory where data are backuped to
WebRootDirectory = "../www"; IncrementalBackupDirectory = "../incremental_backup";
// Root directory where data from shards are stored into // Root directory where data from shards are stored into
SaveShardRoot = "save_shard/"; SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "backup_service_default.cfg"
ListeningPort = 49990;
L3ListeningPort = 49950;
WebPort = 49970;
BSReadState = 1;
SaveShardRoot = "save_shard";
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = {
".",
"../common/data_leveldesign",
};

@ -1,23 +1,31 @@
#include "common.cfg" #include "common.cfg"
// ---- service NeL variables (used by ConfigFile class)
DontUseNS = 1;
DontUseNS = BSDontUseNS; // ---- service NeL variables (used by CVariable class)
NSHost = BSNSHost;
ListeningPort = 49990; ListeningPort = 49990;
// ---- service custom variables (used by ConfigFile class)
// Listening port for the Web server to connect in
WebPort = 49898;
BSReadState = 1;
// ---- service custom variables (used by CVariable class)
// Port for the Layer 3 interface of the backup service // Port for the Layer 3 interface of the backup service
L3ListeningPort = 49950; L3ListeningPort = 49950;
// Listening port for the Web server to connect in
WebPort = 49898;
// template path from SaveShardRoot to find character saves // template path from SaveShardRoot to find character saves
SaveTemplatePath = "$shard/characters/account_$userid_$charid$ext"; SaveTemplatePath = "$shard/characters/account_$userid_$charid$ext";
// character saves possible extension list // character saves possible extension list
SaveExtList = "_pdr.bin _pdr.xml .bin"; SaveExtList = "_pdr.bin _pdr.xml .bin";
BSReadState = 1;
//BSFilePrefix = "R:/code/ryzom/r2_shard/"; //BSFilePrefix = "R:/code/ryzom/r2_shard/";
//BSFileSubst = "r2_shard/"; //BSFileSubst = "r2_shard/";

@ -0,0 +1,5 @@
L3BSPort = "49950";
BSHost = "localhost:49990";
UseBS = 1;
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";

@ -1,2 +1,99 @@
// ---- config local variables
// Used by ConfigFile in EGS and WS
ShardId = 302;
// Used by CVariable in WS
PlayerLimit = 5000;
// Used to connect to AES (this file) and to set up AES service (admin_executor_service.cfg)
AESPort="46702";
AESHost="localhost";
// ---- service NeL variables (used by ConfigFile class)
WindowStyle = "WIN"; WindowStyle = "WIN";
// don't connect to the old NeLNS AES
DontUseAES = 1;
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr="+AESHost+":"+AESPort+")",
};
NSHost = "localhost";
// A list of vars to graph for any service
GraphVars +=
{
"ProcessUsedMemory", "60000", // every minute
};
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
// ---- service NeL variables (used by CVariable class)
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// ---- service custom variables (used by ConfigFile class)
// ---- service custom variables (used by CVariable class)

@ -1,282 +1,94 @@
// Use with commandline: entities_game_service -C. -L. --nobreak --writepid // Use with commandline: entities_game_service -C. -L. --nobreak --writepid
AESAliasName= "egs";
ASWebPort="46700"; // ---- config local variables
ASPort="46701";
#define DONT_USE_LGS_SLAVE
AESPort="46702"; AESPort="46702";
SUPort = 50505; SUPort = 50505;
SUGlobalPort = 50503; SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292; L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993; L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost"; SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost"; MasterLGSHost = "localhost";
SlaveLGSHost = "localhost"; SlaveLGSHost = "localhost";
LGSBSHost = "localhost"; // SU - listen address of the SU service (for L5 connections)
DBHost = "localhost"; SUAddress = SUHost+":"+SUPort;
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log #include "entities_game_service_default.cfg"
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- service NeL variables (used by ConfigFile class)
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file AESAliasName= "egs";
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one StartCommands += {
ContinentNameTranslator = "moduleManager.createModule AnimSessionManager asm",
{ "asm.plug gw",
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded // start commands for setting up the exchange level caps of different ryzom shards
WaitForBSThreshold=0; StartCommands += { "setShardExchangeLimit 302 250" };
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot StartCommands += { "displayShardExchangeLimits" };
SaveFilesDirectory = ""; StartCommands += { "EnableStlAllocatorChecker 0" };
// where to save generic shard data (ie: packed_sheet) GraphVars += { "CharacterLoadPerTick", "0" };
WriteFilesDirectory = "data_shard"; GraphVars += { "CharacterLoadPerTick", "60000" };
GraphVars += { "CharacterSavePerTick", "0" };
GraphVars += { "CharacterSavePerTick", "60000" };
GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
// Will SaveFilesDirectory will be converted to a full path? NSHost = "localhost";
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to Paths = {
IncrementalBackupDirectory = "../incremental_backup"; ".",
"../common/data_common",
"../common/data_leveldesign",
};
PathsNoRecurse= {"."};
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into // ---- service NeL variables (used by CVariable class)
LogChatDirectory = "data_shard_local";
// MFS - Directories // ---- service custom variables (used by ConfigFile class)
WebRootDirectory = "../www";
// Root directory where data from shards are stored into WebSrvHost = "http://localhost:55555/";
SaveShardRoot = "save_shard/";
// SU Specifics -------------------------------------------------------------------------- NbPlayersLimit = PlayerLimit;
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000; NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS) // Entity Limits (EGS)
NbObjectsLimit = 2000; NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000; NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000; NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000; NbToxicCloudsLimit = 5000;
// AIS Specifics -------------------------------------------------------------------------- #include "used_continents.cfg"
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number // define the primitives configuration used.
UsedContinents = UsedPrimitives =
{ {
"newbieland", "20", "newbieland_all",
}; };
// define the primitives configuration used. // the following variable must be defined but should be empty - it's presence is used to change the behaviour
UsedPrimitives = // of the packed sheet reader
GeorgePaths = { "" };
HomeMainlandNames =
{ {
"newbieland_all", "302", "Open", "open",
}; };
//UsedContinents = { "dummy", "10000" };
#include "entities_game_service_default.cfg"
PathsNoRecurse= {"."};
NeverAggroPriv = ":OBSERVER:G:SG:GM:SGM:EM:";
AlwaysInvisiblePriv = ":OBSERVER:EM:";
TimeBeforeDisconnection = 300;
/* /*
UsedContinents += UsedContinents +=
{ {
@ -328,54 +140,64 @@ UsedPrimitives =
}; };
*/ */
StartCommands += { // Mirror limits
"moduleManager.createModule AnimSessionManager asm", DatasetSizefe_temp = 600000;
"asm.plug gw", DatasetSizefame = 26000;
};
GraphVars += { "NbPlayers", "60000" }; // ---- service custom variables (used by CVariable class)
GraphVars += { "CharacterLoadPerTick", "0" };
GraphVars += { "CharacterLoadPerTick", "60000" }; RingRPEnabled=0;
GraphVars += { "CharacterSavePerTick", "0" };
GraphVars += { "CharacterSavePerTick", "60000" };
GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
RingRPXPRequiredPerAction=700; RingRPXPRequiredPerAction=700;
RingRPXPRequiredPerTimeSlice=700; RingRPXPRequiredPerTimeSlice=700;
MaxXPGainPerPlayer = 30.0; MaxXPGainPerPlayer = 30.0;
DeathXPFactor = 0.1; DeathXPFactor = 0.1;
CachePrims = 1;
CorrectInvalidPlayerPositions = 1;
WebSrvHost = "http://localhost:55555/";
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; MFSHost = "localhost";
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // Use Shard Unifier or not
".", DontUseSU = 0;
"../common/data_common",
"../common/data_leveldesign", // Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
}; IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
FixedSessionId = ShardId;
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
#include "backup_service_interface.cfg"
XMLSave = 0;

@ -1,7 +1,5 @@
#include "common.cfg" #include "common.cfg"
#ifndef DONT_USE_LGS_SLAVE
StartCommands += StartCommands +=
{ {
// L5 connect to the shard unifier // L5 connect to the shard unifier
@ -24,64 +22,22 @@ StartCommands +=
"lgs_gw.transportAdd L3Client masterL3c", "lgs_gw.transportAdd L3Client masterL3c",
// open the transport // open the transport
"lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")", "lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
};
#ifndef DONT_USE_LGS_SLAVE
StartCommands +=
{
// add a layer 3 server transport for slave logger service // add a layer 3 server transport for slave logger service
"lgs_gw.transportAdd L3Client slaveL3c", "lgs_gw.transportAdd L3Client slaveL3c",
// open the transport // open the transport
"lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")", "lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")",
};
// Create a shard unifier client module
"moduleManager.createModule ShardUnifierClient suc",
// Create a client commands forwader module
"moduleManager.createModule ClientCommandForwader ccf",
// Create a characer control module
"moduleManager.createModule CharacterControl cc",
// Create a guild unifier module
"moduleManager.createModule GuildUnifier gu",
//Create a shard unifier name mapper
"moduleManager.createModule CharNameMapperClient cnmc",
// Create the logger service client module
"moduleManager.createModule LoggerServiceClient lsc",
"suc.plug gw",
"ccf.plug gw",
"cc.plug gw",
"gu.plug glob_gw",
"cnmc.plug gw",
"lsc.plug lgs_gw",
};
#endif #endif
#ifdef DONT_USE_LGS_SLAVE
StartCommands += StartCommands +=
{ {
// L5 connect to the shard unifier
"unifiedNetwork.addService ShardUnifier ( address="+SUAddress+" sendId external autoRetry )",
// Create a gateway for global interconnection
// modules from different shard are visible to each other if they connect to
// this gateway. SU Local module have no interest to be plugged here.
"moduleManager.createModule StandardGateway glob_gw",
// add a layer 3 server transport
"glob_gw.transportAdd L3Client l3c",
// open the transport
"glob_gw.transportCmd l3c(connect addr="+SUHost+":"+SUGlobalPort+")",
// Create a gateway for logger service connection
"moduleManager.createModule StandardGateway lgs_gw",
// add a layer 3 server transport for master logger service
"lgs_gw.transportAdd L3Client masterL3c",
// open the transport
"lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
// Create a shard unifier client module // Create a shard unifier client module
"moduleManager.createModule ShardUnifierClient suc", "moduleManager.createModule ShardUnifierClient suc",
// Create a client commands forwader module // Create a client commands forwader module
@ -105,7 +61,6 @@ StartCommands +=
"gu.plug glob_gw", "gu.plug glob_gw",
"cnmc.plug gw", "cnmc.plug gw",
"lsc.plug lgs_gw", "lsc.plug lgs_gw",
}; };
#endif #endif

@ -1,280 +1,18 @@
// Use with commandline: frontend_service -C. -L. --nobreak --writepid // Use with commandline: frontend_service -C. -L. --nobreak --writepid
AESAliasName= "fes";
//AcceptInvalidCookie = 1;
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
};
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into // ---- config local variables
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "open.ryzom.com";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth // Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1; BandwidthRatio = 1;
// EGS Specifics -------------------------------------------------------------------------- FSUDPPort = 47851;
// Entity Limits (EGS) FSListenHost = "open.ryzom.com";
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics -------------------------------------------------------------------------- #include "frontend_service_default.cfg"
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number // ---- service NeL variables (used by ConfigFile class)
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used. AESAliasName= "fes";
UsedPrimitives =
{
"newbieland_all",
};
FSUDPPort = 47851;
#include "frontend_service_default.cfg"
GraphVars += { "TickSpeedLoop", "0" }; GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" }; GraphVars += { "TickSpeedLoop", "60000" };
@ -286,28 +24,29 @@ GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" }; GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" }; GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" }; GraphVars += { "MirrorCallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { Paths = {
"../common/data_common", "../common/data_common",
".", ".",
"../common/data_leveldesign", "../common/data_leveldesign",
}; };
// ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
//AcceptInvalidCookie = 1;
ClientLimit = 1000;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// ---- service custom variables (used by CVariable class)
// Disable ryzom verbose logging
VerboseMIRROR = 0;
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";

@ -1,311 +1,44 @@
// Use with commandline: gpm_service -C. -L. --nobreak --writepid // Use with commandline: gpm_service -C. -L. --nobreak --writepid
AESAliasName= "gpms";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service #include "gpm_service_default.cfg"
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- config local variables
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- service NeL variables (used by ConfigFile class)
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file AESAliasName= "gpms";
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail GraphVars += { "TickSpeedLoop", "0" };
MSWStrictMode=0; GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
// This is the mapping for logical continent to physical one Paths = {
ContinentNameTranslator = ".",
{ "../common/data_common",
"matis_newbie", "matis", "../common/data_leveldesign",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded // ---- service NeL variables (used by CVariable class)
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics -------------------------------------------------------------------------- // ---- service custom variables (used by ConfigFile class)
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot #include "used_continents.cfg"
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits // Mirror limits
DatasetSizefe_temp = 600000; DatasetSizefe_temp = 600000;
DatasetSizefame = 26000; DatasetSizefame = 26000;
// FS Specifics -------------------------------------------------------------------------- // ---- service custom variables (used by CVariable class)
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number // Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
UsedContinents = IsRingShard = 0;
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
//#include "../live/cfg/gpm_service_mainland.cfg"
#include "gpm_service_default.cfg"
GraphVars += { "TickSpeedLoop", "0" };
GraphVars += { "TickSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
GraphVars += { "MirrorCallbackCount", "0" };
GraphVars += { "MirrorCallbackCount", "60000" };
GraphVars += { "MirrorCallbackTime", "0" };
GraphVars += { "MirrorCallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // Disable ryzom verbose logging
".", VerboseMIRROR = 0;
"../common/data_common",
"../common/data_leveldesign",
};

@ -1,5 +1,5 @@
#include "common.cfg" #include "common.cfg"
CheckPlayerSpeed = 0; CheckPlayerSpeed = 0;
SecuritySpeedFactor = 1.5; SecuritySpeedFactor = 1.5;

@ -1,180 +1,70 @@
// Use with commandline: input_output_service -C. -L. --nobreak --writepid // Use with commandline: input_output_service -C. -L. --nobreak --writepid
AESAliasName= "ios";
ASWebPort="46700"; // ---- config local variables
ASPort="46701";
#define DONT_USE_LGS_SLAVE
AESPort="46702"; AESPort="46702";
SUPort = 50505; SUPort = 50505;
SUGlobalPort = 50503; SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292; L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993; L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost"; SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost"; MasterLGSHost = "localhost";
SlaveLGSHost = "localhost"; SlaveLGSHost = "localhost";
LGSBSHost = "localhost"; // SU - listen address of the SU service (for L5 connections)
DBHost = "localhost"; SUAddress = SUHost+":"+SUPort;
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log #include "input_output_service_default.cfg"
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file // ---- service NeL variables (used by ConfigFile class)
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail AESAliasName= "ios";
MSWStrictMode=0;
// This is the mapping for logical continent to physical one // Create a char name mapper
ContinentNameTranslator = StartCommands +=
{ {
"matis_newbie", "matis", "moduleManager.createModule CharNameMapper cnm",
"zorai_newbie", "zorai", "cnm.plug gw",
"terre", "terre_oubliee", "moduleManager.createModule IOSRingModule iosrm",
"sources", "sources_interdites" "iosrm.plug gw",
}; };
// Block the system in the tick service that provokes stalls when overloaded Paths = {
WaitForBSThreshold=0; ".",
"../common/data_common",
"../common/data_leveldesign",
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" }; };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios // ---- service NeL variables (used by CVariable class)
FreeTrialSkillLimit=21;
// Level limit for newb scenarios // ---- service custom variables (used by ConfigFile class)
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS // Mirror limits
MaxNpcs = 300; DatasetSizefe_temp = 600000;
MaxStaticObjects = 200; DatasetSizefame = 26000;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour // the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader // of the packed sheet reader
GeorgePaths = { "" }; GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not // Use Shard Unifier or not
DontUseSU = 0; DontUseSU = 0;
// the domain's set of useful addresses HomeMainlandNames =
LSHost = SUHost; {
RSMHost = SUHost; "302", "Open", "open",
};
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot // ---- service custom variables (used by CVariable class)
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet) // Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
WriteFilesDirectory = "data_shard"; IsRingShard = 0;
// Will SaveFilesDirectory will be converted to a full path? // Disable ryzom verbose logging
ConvertSaveFilesDirectoryToFullPath = 0; VerboseMIRROR = 0;
// BS - Root directory where data are backuped to #include "backup_service_interface.cfg"
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file // IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local"; StringManagerCacheDirectory = "data_shard_local";
@ -182,132 +72,10 @@ StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into // IOS - Directory to log chat into
LogChatDirectory = "data_shard_local"; LogChatDirectory = "data_shard_local";
// MFS - Directories ReadTranslationWork = 1;
WebRootDirectory = "../www"; TranslationWorkPath = "";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "input_output_service_default.cfg"
VerboseStringManager = 0; VerboseStringManager = 0;
VerboseStringManagerParser = 0; VerboseStringManagerParser = 0;
VerboseChat = 0; VerboseChat = 0;
VerboseChatManagement = 0; VerboseChatManagement = 0;
VerboseNameTranslation = 0; VerboseNameTranslation = 0;
// Create a char name mapper
StartCommands +=
{
"moduleManager.createModule CharNameMapper cnm",
"cnm.plug gw",
"moduleManager.createModule IOSRingModule iosrm",
"iosrm.plug gw",
};
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = {
".",
"../common/data_common",
"../common/data_leveldesign",
};

@ -1,6 +1,6 @@
#include "common.cfg" #include "common.cfg"
#ifndef DONT_USE_LGS_SLAVE // ---- service NeL variables (used by ConfigFile class)
StartCommands += StartCommands +=
{ {
@ -23,52 +23,25 @@ StartCommands +=
"lgs_gw.transportAdd L3Client masterL3c", "lgs_gw.transportAdd L3Client masterL3c",
// open the transport // open the transport
"lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")", "lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
};
#ifndef DONT_USE_LGS_SLAVE
StartCommands +=
{
// add a layer 3 server transport for slave logger service // add a layer 3 server transport for slave logger service
"lgs_gw.transportAdd L3Client slaveL3c", "lgs_gw.transportAdd L3Client slaveL3c",
// open the transport // open the transport
"lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")", "lgs_gw.transportCmd slaveL3c(connect addr="+SlaveLGSHost+":"+L3SlaveLGSPort+")",
};
// Create a chat unifier client
"moduleManager.createModule ChatUnifierClient cuc",
// and plug it on the gateway to reach the SU ChatUnifierServer
"cuc.plug glob_gw",
"cuc.plug gw",
// Create the logger service client module
"moduleManager.createModule LoggerServiceClient lsc",
"lsc.plug lgs_gw",
};
#endif #endif
#ifdef DONT_USE_LGS_SLAVE
StartCommands += StartCommands +=
{ {
// L5 connect to the shard unifier
"unifiedNetwork.addService ShardUnifier ( address="+SUAddress+" sendId external autoRetry )",
// Create a gateway for global interconnection
// modules from different shard are visible to each other if they connect to
// this gateway. SU Local module have no interest to be plugged here.
"moduleManager.createModule StandardGateway glob_gw",
// add a layer 3 server transport
"glob_gw.transportAdd L3Client l3c",
// open the transport
"glob_gw.transportCmd l3c(connect addr="+SUHost+":"+SUGlobalPort+")",
// Create a gateway for logger service connection
"moduleManager.createModule StandardGateway lgs_gw",
// add a layer 3 server transport for master logger service
"lgs_gw.transportAdd L3Client masterL3c",
// open the transport
"lgs_gw.transportCmd masterL3c(connect addr="+MasterLGSHost+":"+L3MasterLGSPort+")",
// Create a chat unifier client // Create a chat unifier client
"moduleManager.createModule ChatUnifierClient cuc", "moduleManager.createModule ChatUnifierClient cuc",
// and plug it on the gateway to reach the SU ChatUnifierServer // and plug it on the gateway to reach the SU ChatUnifierServer
"cuc.plug glob_gw", "cuc.plug glob_gw",
"cuc.plug gw", "cuc.plug gw",
@ -76,36 +49,36 @@ StartCommands +=
// Create the logger service client module // Create the logger service client module
"moduleManager.createModule LoggerServiceClient lsc", "moduleManager.createModule LoggerServiceClient lsc",
"lsc.plug lgs_gw", "lsc.plug lgs_gw",
}; };
#endif #endif
DisableMonotonicClock = 1; // ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
// a list of system command that can be run with "sysCmd" service command. // a list of system command that can be run with "sysCmd" service command.
SystemCmd = {}; SystemCmd = {};
// IOS don't use work directory by default // IOS don't use work directory by default
ReadTranslationWork = 0; ReadTranslationWork = 0;
TranslationWorkPath = "translation/work"; TranslationWorkPath = "translation/work";
// Global shard bot name translation file. You sould overide this // Global shard bot name translation file. You sould overide this
// in input_output_service.cfg to specialize the file // in input_output_service.cfg to specialize the file
// depending on the shard main language. // depending on the shard main language.
BotNameTranslationFile = "bot_names.txt"; BotNameTranslationFile = "bot_names.txt";
// Global shard event faction translation file. You sould override this // Global shard event faction translation file. You sould override this
// in input_output_service.cfg to specialize the file // in input_output_service.cfg to specialize the file
// depending on the shard main language. // depending on the shard main language.
EventFactionTranslationFile = "event_factions.txt"; EventFactionTranslationFile = "event_factions.txt";
// ---- service custom variables (used by CVariable class)
// Activate/deactivate debugging of missing paremeter replacement // Activate/deactivate debugging of missing paremeter replacement
DebugReplacementParameter = 1; DebugReplacementParameter = 1;
// Id of database for PDS Chat Logging
DatabaseId = 1;
// Default verbose debug flags: // Default verbose debug flags:
//----------------------------- //-----------------------------

@ -1,317 +1,50 @@
// Use with commandline: logger_service -C. -L. --nobreak --writepid // Use with commandline: logger_service -C. -L. --nobreak --writepid
#include "logger_service_default.cfg" #include "logger_service_default.cfg"
AESAliasName= "lgs"; // ---- config local variables
ASWebPort="46700"; LGSL3Port = 41292;
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "db1.ryzom.com";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service // ---- service NeL variables (used by ConfigFile class)
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway AESAliasName= "lgs";
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service StartCommands +=
GraphVars =
{ {
"ProcessUsedMemory", "60000", // every minute "moduleManager.createModule LoggerService ls",
"moduleManager.createModule StandardGateway lgs_gw",
"ls.plug lgs_gw",
"lgs_gw.transportAdd L3Server l3s",
"lgs_gw.transportOptions l3s(PeerInvisible)",
"lgs_gw.transportCmd l3s(open port="+ LGSL3Port +")",
}; };
DontUseNS = 1;
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...) Paths = {
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO "" ".",
* Only log analyser must have the $shard parameter to find all shards root directory "../common/data_leveldesign",
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded // ---- service NeL variables (used by CVariable class)
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "/home/nevrax/live/save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot // Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = ""; SaveFilesDirectory = "save_shard/";
// where to save generic shard data (ie: packed_sheet) // where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "r2_shard/data_shard"; WriteFilesDirectory = "r2_shard/data_shard";
// Will SaveFilesDirectory will be converted to a full path? // ---- service custom variables (used by ConfigFile class)
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_dev";
// Nel DB user
DBNelUser = "su_dev";
// Ring DB user
DBRingUser = "su_dev";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch) // Use Shard Unifier or not
IsRingShard = 0; DontUseSU = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "logger_service_default.cfg"
LogQueryResultFile = "log_query_result.txt";
SaveFilesDirectory = "save_shard/";
BSHost = LGSBSHost+":"+LGSBSPort;
L3BSPort = LGSBSPort;
DontUseNS = 1;
StartCommands +=
{
"moduleManager.createModule LoggerService ls",
"moduleManager.createModule StandardGateway lgs_gw",
"ls.plug lgs_gw",
"lgs_gw.transportAdd L3Server l3s",
"lgs_gw.transportOptions l3s(PeerInvisible)",
"lgs_gw.transportCmd l3s(open port="+ LGSL3Port +")",
};
SaveShardRoot = "save_shard";
SaveFilesDirectory = "save_shard/";
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames = HomeMainlandNames =
{ {
"302", "Open", "open", "302", "Open", "open",
}; };
RRDVarPath = "../rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; // ---- service custom variables (used by CVariable class)
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { #include "backup_service_interface.cfg"
".",
"../common/data_leveldesign",
};

@ -1,299 +1,19 @@
// Use with commandline: mail_forum_service -C. -L. --nobreak --writepid // Use with commandline: mail_forum_service -C. -L. --nobreak --writepid
AESAliasName= "mfs";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "db1.ryzom.com";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
};
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not #include "mail_forum_service_default.cfg"
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "/home/nevrax/live/save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "r2_shard/data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_dev";
// Nel DB user
DBNelUser = "su_dev";
// Ring DB user
DBRingUser = "su_dev";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics -------------------------------------------------------------------------- // ---- config local variables
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics -------------------------------------------------------------------------- // ---- service NeL variables (used by ConfigFile class)
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number AESAliasName= "mfs";
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used. Paths = {
UsedPrimitives = ".",
{
"newbieland_all",
}; };
#include "mail_forum_service_default.cfg"
WriteFilesDirectory="data_shard";
Mainlands = { // ---- service NeL variables (used by CVariable class)
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "../rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; // ---- service custom variables (used by ConfigFile class)
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // ---- service custom variables (used by CVariable class)
".",
};

@ -1,7 +1,16 @@
#include "common.cfg" #include "common.cfg"
// ---- service NeL variables (used by ConfigFile class)
DontUseNS = 1;
// ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
// ---- service custom variables (used by CVariable class)
WebRootDirectory = "save_shard/www"; WebRootDirectory = "save_shard/www";
DontUseNS = 1;
// Set if Hall of Fame generator is enabled // Set if Hall of Fame generator is enabled
HoFEnableGenerator = 1; HoFEnableGenerator = 1;

@ -1,306 +1,38 @@
// Use with commandline: mirror_service -C. -L. --nobreak --writepid // Use with commandline: mirror_service -C. -L. --nobreak --writepid
AESAliasName= "ms";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service #include "mirror_service_default.cfg"
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- config local variables
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- service NeL variables (used by ConfigFile class)
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file AESAliasName= "ms";
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail GraphVars += { "UserSpeedLoop", "0" };
MSWStrictMode=0; GraphVars += { "UserSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
// This is the mapping for logical continent to physical one Paths = {
ContinentNameTranslator = ".",
{ "../common/data_common",
"matis_newbie", "matis", "../common/data_leveldesign",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded // ---- service NeL variables (used by CVariable class)
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" }; // ---- service custom variables (used by ConfigFile class)
// If the update loop is too slow, a thread will produce an assertion. // Mirror limits
// By default, the value is set to 10 minutes. DatasetSizefe_temp = 600000;
// Set to 0 for no assertion. DatasetSizefame = 26000;
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small) // MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000; MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates // ---- service custom variables (used by CVariable class)
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging // Disable ryzom verbose logging
VerboseMIRROR = 0; VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "mirror_service_default.cfg"
GraphVars += { "UserSpeedLoop", "0" };
GraphVars += { "UserSpeedLoop", "60000" };
GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = {
".",
"../common/data_common",
"../common/data_leveldesign",
};

@ -1,4 +1,6 @@
#include "common.cfg" #include "common.cfg"
// ---- service custom variables (used by ConfigFile class)
// Linux only // Linux only
DestroyGhostSegments = 1; DestroyGhostSegments = 1;

@ -1,298 +1,21 @@
// Use with commandline: ryzom_naming_service -C. -L. --nobreak --writepid // Use with commandline: ryzom_naming_service -C. -L. --nobreak --writepid
AESAliasName= "rns";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...) #include "naming_service_default.cfg"
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log // ---- config local variables
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file // ---- service NeL variables (used by ConfigFile class)
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail AESAliasName= "rns";
MSWStrictMode=0;
// This is the mapping for logical continent to physical one Paths = {
ContinentNameTranslator = "data_www"
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
}; };
// Block the system in the tick service that provokes stalls when overloaded // ---- service NeL variables (used by CVariable class)
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config // ---- service custom variables (used by ConfigFile class)
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000; BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics -------------------------------------------------------------------------- // ---- service custom variables (used by CVariable class)
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics --------------------------------------------------------------------------
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
#include "naming_service_default.cfg"
Mainlands = {
"302", "Open", "(Open Developer Community)", "en",
};
HomeMainlandNames =
{
"302", "Open", "open",
};
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1;
RingRPEnabled=0;
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = {
"data_www"
};

@ -1,279 +1,19 @@
// Use with commandline: session_browser_server -C. -L. --nobreak --writepid // Use with commandline: session_browser_server -C. -L. --nobreak --writepid
AESAliasName= "sbs";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
};
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not #include "session_browser_server_default.cfg"
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics --------------------------------------------------------------------------
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into // ---- config local variables
LogChatDirectory = "data_shard_local";
// MFS - Directories #include "sql.cfg"
WebRootDirectory = "../www";
// Root directory where data from shards are stored into SBSPort = 48851;
SaveShardRoot = "save_shard/";
// SU Specifics -------------------------------------------------------------------------- SUHost = "localhost";
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics --------------------------------------------------------------------------
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics -------------------------------------------------------------------------- // ---- service NeL variables (used by ConfigFile class)
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number AESAliasName= "sbs";
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used.
UsedPrimitives =
{
"newbieland_all",
};
FSUDPPort = 47851;
SBSPort = FSUDPPort+1000;
DontUseNS = 0;
StartCommands += StartCommands +=
{ {
"moduleManager.createModule SessionBrowserServerMod sbs suAddr="+SUHost+":49999 listenPort="+SBSPort+" ring_db(host="+DBHost+" user="+DBRingUser+" password="+DBRingPass+" base="+DBRingName+")", "moduleManager.createModule SessionBrowserServerMod sbs suAddr="+SUHost+":49999 listenPort="+SBSPort+" ring_db(host="+DBHost+" user="+DBRingUser+" password="+DBRingPass+" base="+DBRingName+")",
@ -286,26 +26,24 @@ GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" }; GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" }; GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" }; GraphVars += { "L5CallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en", Paths = {
".",
}; };
// ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
// Use Shard Unifier or not
DontUseSU = 0;
HomeMainlandNames = HomeMainlandNames =
{ {
"302", "Open", "open", "302", "Open", "open",
}; };
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; // The max number of ring points (aka ring access) for each ecosystem
RingRPEnabled=0; MaxRingPoints = "A1:D7:F7:J8:L6:R13";
DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // ---- service custom variables (used by CVariable class)
".",
};

@ -12,7 +12,7 @@ bind K kill
bind I login on bind I login on
bind O login off bind O login off
chdir "~/code/ryzom/server" chdir $RYZOM_PATH/server
screen -t aes /bin/sh service_launcher.sh aes src/ryzom_admin_service/ryzom_admin_service -A. -C. -L. --nobreak --fulladminname=admin_executor_service --shortadminname=AES screen -t aes /bin/sh service_launcher.sh aes src/ryzom_admin_service/ryzom_admin_service -A. -C. -L. --nobreak --fulladminname=admin_executor_service --shortadminname=AES

@ -1,277 +1,16 @@
// Use with commandline: shard_unifier_service -C. -L. --nobreak --writepid // Use with commandline: shard_unifier_service -C. -L. --nobreak --writepid
AESAliasName= "su";
ASWebPort="46700";
ASPort="46701";
AESPort="46702";
SUPort = 50505;
SUGlobalPort = 50503;
L3BSPort = "49950";
L3MasterLGSPort = 41292;
L3SlaveLGSPort = 49993;
LGSBSPort = 49990;
L3LGSBSPort = 49990;
LGSL3Port = L3MasterLGSPort;
SUHost = "localhost";
MFSHost = "localhost";
BSHost = "localhost:49990";
MasterLGSHost = "localhost";
SlaveLGSHost = "localhost";
LGSBSHost = "localhost";
DBHost = "localhost";
#define DONT_USE_LGS_SLAVE
// Configure module gateway for layer 5 module comm
StartCommands +=
{
// Create a gateway module
"moduleManager.createModule StandardGateway gw",
// add a layer 5 transport
"gw.transportAdd L5Transport l5",
// open the transport
"gw.transportCmd l5(open)",
/// Create default connection with admin executor service
// Create a gateway module
"moduleManager.createModule StandardGateway gw_aes",
// create the admin executor service module
"moduleManager.createModule AdminExecutorServiceClient aes_client",
"aes_client.plug gw_aes",
// create a layer 3 client to connect to aes gateway
"gw_aes.transportAdd L3Client aes_l3c",
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
};
/// A list of vars to graph for any service
GraphVars =
{
"ProcessUsedMemory", "60000", // every minute
};
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
* Only log analyser must have the $shard parameter to find all shards root directory
*/
PDRootDirectory = "";
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableLog = 1;
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
PDEnableStringLog = 0;
// Number of seconds between 2 logs to file
PDLogUpdate = 10;
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;
// This is the mapping for logical continent to physical one
ContinentNameTranslator =
{
"matis_newbie", "matis",
"zorai_newbie", "zorai",
"terre", "terre_oubliee",
"sources", "sources_interdites"
};
// Block the system in the tick service that provokes stalls when overloaded
WaitForBSThreshold=0;
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
// If the update loop is too slow, a thread will produce an assertion.
// By default, the value is set to 10 minutes.
// Set to 0 for no assertion.
UpdateAssertionThreadTimeout = 6000000;
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
DefaultMaxSentBlockSize = 200000000; // 200 M !
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
MaxOutBandwidth = 100000000;
// how to sleep between 2 network updates
// 0 = pipe
// 1 = usleep
// 2 = nanosleep
// 3 = sched_yield
// 4 = nothing
UseYieldMethod = 0;
// The privileges needed to access any ring session
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
// The max number of ring points (aka ring access) for each ecosystem
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
// Level limit for newb scenarios
FreeTrialSkillLimit=21;
// Level limit for newb scenarios
DefaultInterShardExchangeLevelCap=0;
// Configureation for DSS
MaxNpcs = 300;
MaxStaticObjects = 200;
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
// of the packed sheet reader
GeorgePaths = { "" };
// Disable nel net verbose logging
VerboseNETTC = 0;
VerboseLNETL0 = 0;
VerboseLNETL1 = 0;
VerboseLNETL2 = 0;
VerboseLNETL3 = 0;
VerboseLNETL4 = 0;
VerboseLNETL5 = 0;
VerboseLNETL6 = 0;
// Disable ryzom verbose logging
VerboseMIRROR = 0;
VerboseRingRPLog = 0;
VerboseCDBGroup = 0;
// What to do with characters coming from another mainland shard?
// 0: teleport to the stored session id
// 1: let the character play anyway, but leave the stored session id unchanged
// 2: assign the stored session id with FixedSessionId and let play
AllowCharsFromAllSessions = 0;
// Use Shard Unifier or not
DontUseSU = 0;
// the domain's set of useful addresses
LSHost = SUHost;
RSMHost = SUHost;
// MFS config // ---- config local variables
WebSrvUsersDirectory = "";
WebRootDirectory = "save_shard/www";
HoFHDTDirectory = "/local/www/hof/hdt";
// BS Specifics -------------------------------------------------------------------------- SUGlobalPort = 50503;
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
// to other services by the Layer 5, i.e. the services sending requests to BS have
// to know its/their address(es) by another mean)
BSDontUseNS = 1;
// BS - set the host of the naming service where the BS register
BSNSHost = "localhost";
UseBS = 1;
XMLSave = 0;
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
SaveFilesDirectory = "";
// where to save generic shard data (ie: packed_sheet)
WriteFilesDirectory = "data_shard";
// Will SaveFilesDirectory will be converted to a full path?
ConvertSaveFilesDirectoryToFullPath = 0;
// BS - Root directory where data are backuped to
IncrementalBackupDirectory = "../incremental_backup";
// IOS - Directory to store ios.string_cache file
StringManagerCacheDirectory = "data_shard_local";
// IOS - Directory to log chat into
LogChatDirectory = "data_shard_local";
// MFS - Directories
WebRootDirectory = "../www";
// Root directory where data from shards are stored into
SaveShardRoot = "save_shard/";
// SU Specifics --------------------------------------------------------------------------
// SU - set to 1 if SU didn't use a naming service
SUDontUseNS = 1;
// SU - host for the NS used by SU
SUNSHost = "localhost";
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
// SU - nel and ring database names
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// WS Specifics --------------------------------------------------------------------------
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
DontUseLSService = 1;
// Global config --------------------------------------------------------------------------
// set to 0 if you want to use the admin system
DontUseAES = 1;
// Disable generation / display of nldebug messages
DisableNLDebug = 1;
FSListenHost = "localhost";
DBPass="";
ShardId = 302;
BasePort = 51000;
SaveFilesDirectory="";
NSHost = "localhost";
// Player limits (AIS, EGS, WS, FS)
NbPlayersLimit = 5000;
NbGuildLimit = 15000;
PlayerLimit = NbPlayersLimit;
ClientLimit = 1000;
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
IsRingShard = 0;
// Set a mainland SessionId.
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
// Dev: Can be non-zero to initially connect a client to a ring shard
NoWSShardId = ShardId;
FixedSessionId = ShardId;
// Mirror limits
DatasetSizefe_temp = 600000;
DatasetSizefame = 26000;
// FS Specifics --------------------------------------------------------------------------
// Client bandwidth ratio, set to 1 for standard opration, more than one allocate more bandwidth
BandwidthRatio = 1;
// EGS Specifics -------------------------------------------------------------------------- #include "sql.cfg"
// Entity Limits (EGS)
NbObjectsLimit = 2000;
NbNpcSpawnedByEGSLimit = 5000;
NbForageSourcesLimit = 10000;
NbToxicCloudsLimit = 5000;
// AIS Specifics -------------------------------------------------------------------------- #include "shard_unifier_service_default.cfg"
// Entity Limits (AIS)
NbPetLimit = NbPlayersLimit*4;
NbFaunaLimit = 50000;
NbNpcLimit = 20000;
NbFxLimit = 500;
// This is the list of continent to use with their unique instance number // ---- service NeL variables (used by ConfigFile class)
UsedContinents =
{
"newbieland", "20",
};
// define the primitives configuration used. AESAliasName= "su";
UsedPrimitives =
{
"newbieland_all",
};
#include "shard_unifier_service_default.cfg"
// Create a command executor // Create a command executor
StartCommands += StartCommands +=
@ -279,6 +18,7 @@ StartCommands +=
"moduleManager.createModule CommandExecutor ce", "moduleManager.createModule CommandExecutor ce",
"ce.plug gw", "ce.plug gw",
}; };
GraphVars += { "TotalConcurentUser", "60000" }; GraphVars += { "TotalConcurentUser", "60000" };
GraphVars += { "NetSpeedLoop", "0" }; GraphVars += { "NetSpeedLoop", "0" };
GraphVars += { "NetSpeedLoop", "60000" }; GraphVars += { "NetSpeedLoop", "60000" };
@ -286,26 +26,28 @@ GraphVars += { "L5CallbackCount", "0" };
GraphVars += { "L5CallbackCount", "60000" }; GraphVars += { "L5CallbackCount", "60000" };
GraphVars += { "L5CallbackTime", "0" }; GraphVars += { "L5CallbackTime", "0" };
GraphVars += { "L5CallbackTime", "60000" }; GraphVars += { "L5CallbackTime", "60000" };
Mainlands = {
"302", "Open", "(Open Developer Community)", "en", Paths = {
".",
}; };
// ---- service NeL variables (used by CVariable class)
// ---- service custom variables (used by ConfigFile class)
// Use Shard Unifier or not
DontUseSU = 0;
HomeMainlandNames = HomeMainlandNames =
{ {
"302", "Open", "open", "302", "Open", "open",
}; };
RRDVarPath = "save_shard/rrd_graphs";
ReadTranslationWork = 1;
TranslationWorkPath = "";
DontUseAES=1; // ---- service custom variables (used by CVariable class)
RingRPEnabled=0;
DomainName = "ryzom_open"; DomainName = "ryzom_open";
EnableStlAllocatorChecker = 0;
// start commands for setting up the exchange level caps of different ryzom shards
StartCommands += { "setShardExchangeLimit 301 250" };
StartCommands += { "displayShardExchangeLimits" };
StartCommands += { "EnableStlAllocatorChecker 0" };
Paths = { // The privileges needed to access any ring session
".", PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
};
#include "backup_service_interface.cfg"

@ -1,11 +1,7 @@
#include "common.cfg" #include "common.cfg"
NSHost = SUNSHost; DontUseNS = 1;
DontUseNS = SUDontUseNS;
// SU - listen address of the SU service (for L5 connections)
SUAddress = SUHost+":"+SUPort;
StartCommands += StartCommands +=
{ {
// Create a gateway for global interconnection // Create a gateway for global interconnection

@ -0,0 +1,14 @@
DBHost = "localhost";
DBNelName = "nel";
DBRingName = "ring_open";
// Nel DB user
DBNelUser = "shard";
// Ring DB user
DBRingUser = "shard";
// SU - password to access to the nel database with DBNelUseruser (default is no password)
DBNelPass = "";
// SU - password to access to the ring database with DBRingUser (default is no password)
DBRingPass = "";
// MySQL wrapper strict mode - controls use of asserts if SQL requests fail
MSWStrictMode=0;

@ -21,8 +21,8 @@
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
> >
@ -85,8 +85,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
> >
@ -150,8 +150,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"
@ -219,8 +219,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"

@ -809,7 +809,7 @@ namespace ADMIN
// read the text from the file - note that the number of bytes read may be less than the // read the text from the file - note that the number of bytes read may be less than the
// number of bytes requested because we've opened the file in text mode and not binary mode // number of bytes requested because we've opened the file in text mode and not binary mode
uint32 bytesRead= fread(&txt[0],1,fileSize,f); uint32 bytesRead= (uint32)fread(&txt[0],1,fileSize,f);
txt.resize(bytesRead); txt.resize(bytesRead);
fclose(f); fclose(f);
@ -833,7 +833,7 @@ namespace ADMIN
// read the text from the file - note that the number of bytes read may be less than the // read the text from the file - note that the number of bytes read may be less than the
// number of bytes requested because we've opened the file in text mode and not binary mode // number of bytes requested because we've opened the file in text mode and not binary mode
uint32 bytesRead= fread(&txt[0],1,fileSize,f); uint32 bytesRead= (uint32)fread(&txt[0],1,fileSize,f);
txt.resize(bytesRead); txt.resize(bytesRead);
fclose(f); fclose(f);
@ -859,7 +859,7 @@ namespace ADMIN
// read the text from the file - note that the number of bytes read may be less than the // read the text from the file - note that the number of bytes read may be less than the
// number of bytes requested because we've opened the file in text mode and not binary mode // number of bytes requested because we've opened the file in text mode and not binary mode
uint32 bytesRead= fread(&txt[0],1,fileSize,f); uint32 bytesRead= (uint32)fread(&txt[0],1,fileSize,f);
txt.resize(bytesRead); txt.resize(bytesRead);
fclose(f); fclose(f);

@ -919,7 +919,7 @@ void CMovementMagnet::getNewDestination(RYAI_MAP_CRUNCH::CWorldPosition const& a
{ {
// first, try to take the same way as another bot of the group with the same comportment. // first, try to take the same way as another bot of the group with the same comportment.
CCont<CBot > &bots = _BotFauna.spawnGrp().bots(); CCont<CBot > &bots = _BotFauna.spawnGrp().bots();
uint32 nbBots=bots.size(); uint32 nbBots=(uint32)bots.size();
float bestScore=0.f; float bestScore=0.f;
CAIVector bestDest; CAIVector bestDest;

@ -496,7 +496,7 @@ void CBotNpc::calcSpawnPos(RYAI_MAP_CRUNCH::CWorldMap const& worldMap)
std::vector<CShape::TPosition> const& posList = state->shape().getGeometry(); std::vector<CShape::TPosition> const& posList = state->shape().getGeometry();
do do
{ {
const uint32 a=CAIS::rand16(posList.size()); const uint32 a=CAIS::rand16((uint32)posList.size());
const uint32 b=(a+1)%posList.size(); const uint32 b=(a+1)%posList.size();
const double weight=CAIS::frand(); const double weight=CAIS::frand();
_StartPos.setXY(posList[a].toAIVector()+(posList[b].toAIVector()-posList[a].toAIVector())*weight); _StartPos.setXY(posList[a].toAIVector()+(posList[b].toAIVector()-posList[a].toAIVector())*weight);
@ -973,7 +973,7 @@ void CBotNpc::setColours(std::string input)
if (NLMISC::nlstricmp(colour,colourNames[i][j])==0) if (NLMISC::nlstricmp(colour,colourNames[i][j])==0)
{ {
// found an entry so add to the results vector // found an entry so add to the results vector
results.push_back(i); results.push_back((uint32)i);
done=true; done=true;
} }
} }
@ -1003,7 +1003,7 @@ void CBotNpc::setColours(std::string input)
{ {
// upper body colour // upper body colour
generator.srand(seed+975*0x10000); generator.srand(seed+975*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorArms(val); _Sheet->setColorArms(val);
_Sheet->setColorHands(val); _Sheet->setColorHands(val);
_Sheet->setColorBody(val); _Sheet->setColorBody(val);
@ -1012,7 +1012,7 @@ void CBotNpc::setColours(std::string input)
{ {
// lower body colour // lower body colour
generator.srand(seed+977*0x10000); generator.srand(seed+977*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorLegs(val); _Sheet->setColorLegs(val);
_Sheet->setColorFeets(val); _Sheet->setColorFeets(val);
} }
@ -1020,49 +1020,49 @@ void CBotNpc::setColours(std::string input)
{ {
// hair colour, mapped to head // hair colour, mapped to head
generator.srand(seed+976*0x10000); generator.srand(seed+976*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorHead(val); _Sheet->setColorHead(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CHEAD")==0) else if ( NLMISC::nlstricmp(keyword,"CHEAD")==0)
{ {
// head color // head color
generator.srand(seed+979*0x10000); generator.srand(seed+979*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorHead(val); _Sheet->setColorHead(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CARMS")==0) else if ( NLMISC::nlstricmp(keyword,"CARMS")==0)
{ {
// arms color // arms color
generator.srand(seed+981*0x10000); generator.srand(seed+981*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorArms(val); _Sheet->setColorArms(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CHANDS")==0) else if ( NLMISC::nlstricmp(keyword,"CHANDS")==0)
{ {
// arms color // arms color
generator.srand(seed+983*0x10000); generator.srand(seed+983*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorHands(val); _Sheet->setColorHands(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CBODY")==0) else if ( NLMISC::nlstricmp(keyword,"CBODY")==0)
{ {
// arms color // arms color
generator.srand(seed+985*0x10000); generator.srand(seed+985*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorBody(val); _Sheet->setColorBody(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CLEGS")==0) else if ( NLMISC::nlstricmp(keyword,"CLEGS")==0)
{ {
// arms color // arms color
generator.srand(seed+987*0x10000); generator.srand(seed+987*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorLegs(val); _Sheet->setColorLegs(val);
} }
else if ( NLMISC::nlstricmp(keyword,"CFEETS")==0) else if ( NLMISC::nlstricmp(keyword,"CFEETS")==0)
{ {
// arms color // arms color
generator.srand(seed+989*0x10000); generator.srand(seed+989*0x10000);
uint8 val = (uint8)results[generator.rand(results.size()-1)]; uint8 val = (uint8)results[generator.rand((uint16)results.size()-1)];
_Sheet->setColorFeets(val); _Sheet->setColorFeets(val);
} }
} }

@ -583,7 +583,7 @@ inline const CAIEntityMatrixIteratorTblRandom::iterator CAIEntityMatrixIteratorT
inline uint32 CAIEntityMatrixIteratorTblRandom::size() const inline uint32 CAIEntityMatrixIteratorTblRandom::size() const
{ {
return _tbl.size(); return (uint32)_tbl.size();
} }
@ -631,7 +631,7 @@ inline const CAIEntityMatrixIteratorTblLinear::iterator CAIEntityMatrixIteratorT
inline uint32 CAIEntityMatrixIteratorTblLinear::size() const inline uint32 CAIEntityMatrixIteratorTblLinear::size() const
{ {
return _tbl.size(); return (uint32)_tbl.size();
} }

@ -305,7 +305,7 @@ public:
//@{ //@{
virtual void addHealer(IAIEntityPhysicalHealer* healer) { _Healers.insert(healer); if (healer) healer->healerAdded(this); } virtual void addHealer(IAIEntityPhysicalHealer* healer) { _Healers.insert(healer); if (healer) healer->healerAdded(this); }
virtual void delHealer(IAIEntityPhysicalHealer* healer) { _Healers.erase(healer); if (healer) healer->healerRemoved(this); } virtual void delHealer(IAIEntityPhysicalHealer* healer) { _Healers.erase(healer); if (healer) healer->healerRemoved(this); }
virtual int getHealerCount() { return _Healers.size(); } virtual int getHealerCount() { return (int)_Healers.size(); }
//@} //@}
static int _PlayerVisibilityDistance; static int _PlayerVisibilityDistance;

@ -81,7 +81,7 @@ static bool s_attack(CAIEntityPhysical const& target, float const& dist,
if (action->SelfAction() == self) if (action->SelfAction() == self)
phraseList.push_back(action); phraseList.push_back(action);
} }
uint32 const size = phraseList.size(); uint32 const size = (uint32)phraseList.size();
if (size>0) if (size>0)
{ {
nlassert(target.getRyzomType()!=debugCheckedType); nlassert(target.getRyzomType()!=debugCheckedType);

@ -334,7 +334,7 @@ void CSpawnGroup::incSpawnedBot(CBot& spawnBot)
{ {
#if !FINAL_VERSION #if !FINAL_VERSION
uint32 botIndex = spawnBot.getChildIndex(); uint32 botIndex = spawnBot.getChildIndex();
for (uint32 i=_BotsToRespawn.size(); i--; ) for (uint32 i=(uint32)_BotsToRespawn.size(); i--; )
{ {
if (_BotsToRespawn[i].getBotIndex()==botIndex) if (_BotsToRespawn[i].getBotIndex()==botIndex)
{ {
@ -344,7 +344,7 @@ void CSpawnGroup::incSpawnedBot(CBot& spawnBot)
_BotsToRespawn.pop_back(); _BotsToRespawn.pop_back();
} }
} }
for (uint32 i=_BotsToDespawn.size(); i--; ) for (uint32 i=(uint32)_BotsToDespawn.size(); i--; )
{ {
if (_BotsToDespawn[i].getBotIndex()==botIndex) if (_BotsToDespawn[i].getBotIndex()==botIndex)
{ {

@ -135,9 +135,9 @@ public:
uint32 nbSpawnedBot() const { return _NbSpawnedBot; } uint32 nbSpawnedBot() const { return _NbSpawnedBot; }
uint32 nbBotToRespawn() const { return _BotsToRespawn.size(); } uint32 nbBotToRespawn() const { return (uint32)_BotsToRespawn.size(); }
uint32 nbBotToDespawn() const { return _BotsToDespawn.size(); } uint32 nbBotToDespawn() const { return (uint32)_BotsToDespawn.size(); }
bool isGroupAlive(uint32 const nbMoreKilledBot = 0) const; bool isGroupAlive(uint32 const nbMoreKilledBot = 0) const;

@ -1008,7 +1008,7 @@ void CGrpFauna::setCyles(std::string const& cycles)
{ {
if (curCycle==~0) if (curCycle==~0)
{ {
curCycle = _Cycles.size(); curCycle = (uint32)_Cycles.size();
_Cycles.push_back(Cycle()); _Cycles.push_back(Cycle());
} }
Cycle& CycleRef = _Cycles[curCycle]; Cycle& CycleRef = _Cycles[curCycle];
@ -1067,7 +1067,7 @@ void CGrpFauna::allocateBots()
CPopulation* pop = *(it); CPopulation* pop = *(it);
uint count=0; uint count=0;
for (sint j=pop->size()-1;j>=0;j--) for (sint j=(sint)pop->size()-1;j>=0;j--)
count+=(*pop)[j].getBotCount(getCountMultiplierFlag()); count+=(*pop)[j].getBotCount(getCountMultiplierFlag());
if (count>maxPopulation) if (count>maxPopulation)

@ -103,7 +103,7 @@ void CSpawnGroupNpc::resetSlowUpdateCycle()
// Find the lowest bucket // Find the lowest bucket
vector<uint32>::iterator it = std::min_element(_SlowUpdateBuckets.begin(), _SlowUpdateBuckets.end()); vector<uint32>::iterator it = std::min_element(_SlowUpdateBuckets.begin(), _SlowUpdateBuckets.end());
// Assign it to the group // Assign it to the group
_SlowUpdateCycle = it - _SlowUpdateBuckets.begin(); _SlowUpdateCycle = (uint32)(it - _SlowUpdateBuckets.begin());
// Fill the bucket with the group // Fill the bucket with the group
*it += bots().size(); *it += bots().size();
} }

@ -94,7 +94,7 @@ void CAIInstance::updateZoneTrigger(CBotPlayer* player)
FOREACH(it, CCont<CManager>, _Managers) FOREACH(it, CCont<CManager>, _Managers)
{ {
std::string name = it->getName(); std::string name = it->getName();
uint32 size = name.size(); uint32 size = (uint32)name.size();
const uint32 extensionSize = 13; // strlen(".zone_trigger"); const uint32 extensionSize = 13; // strlen(".zone_trigger");
if (size >= 13 && name.substr(size - extensionSize, extensionSize) == ".zone_trigger" ) if (size >= 13 && name.substr(size - extensionSize, extensionSize) == ".zone_trigger" )
{ {

@ -837,7 +837,7 @@ void COutpost::createSquad(CGroupDesc<COutpostSquadFamily> const* groupDesc, COu
// FOREACH(itState, CCont<CAIState>, stateMachine->states()) // FOREACH(itState, CCont<CAIState>, stateMachine->states())
for (size_t i=0; i<stateMachine->cstStates().size(); ++i) for (size_t i=0; i<stateMachine->cstStates().size(); ++i)
{ {
CAIState* state = stateMachine->cstStates()[i]; CAIState* state = stateMachine->cstStates()[(uint32)i];
if (state->getName()==initialStateName) if (state->getName()==initialStateName)
initialState = state; initialState = state;
} }

@ -217,7 +217,7 @@ bool CBotPlayer::isAggressive() const
void CBotPlayer::addAggroer(TDataSetRow const& row) void CBotPlayer::addAggroer(TDataSetRow const& row)
{ {
#if !FINAL_VERSION #if !FINAL_VERSION
for (sint32 i=_AggroerList.size()-1;i>=0;i--) for (sint32 i=(sint32)_AggroerList.size()-1;i>=0;i--)
nlassert(_AggroerList[i]!=row); nlassert(_AggroerList[i]!=row);
#endif #endif
_AggroerList.push_back(row); _AggroerList.push_back(row);
@ -225,7 +225,7 @@ void CBotPlayer::addAggroer(TDataSetRow const& row)
void CBotPlayer::removeAggroer(TDataSetRow const& row) void CBotPlayer::removeAggroer(TDataSetRow const& row)
{ {
for (sint32 i=_AggroerList.size()-1;i>=0;i--) for (sint32 i=(sint32)_AggroerList.size()-1;i>=0;i--)
{ {
if (_AggroerList[i]==row) if (_AggroerList[i]==row)
{ {
@ -407,7 +407,7 @@ void CManagerPlayer::getTeamIds(std::vector<uint16>& teamIds)
void CBotPlayer::forgotAggroForAggroer() void CBotPlayer::forgotAggroForAggroer()
{ {
for (sint32 i=_AggroerList.size()-1; i>=0; --i) for (sint32 i=(sint32)_AggroerList.size()-1; i>=0; --i)
{ {
CAIEntityPhysical* const phys = CAIS::instance().getEntityPhysical(_AggroerList[i]); CAIEntityPhysical* const phys = CAIS::instance().getEntityPhysical(_AggroerList[i]);
if (!phys) if (!phys)

@ -946,7 +946,7 @@ void CGrpProfileGuard::updateProfile(uint ticksSinceLastUpdate)
static uint32 s_maxBotsVisible = 0; static uint32 s_maxBotsVisible = 0;
static double s_maxBotsVisionTime = 0.0; static double s_maxBotsVisionTime = 0.0;
uint32 numBotsVisible = GuardVision.bots().size(); uint32 numBotsVisible = (uint32)GuardVision.bots().size();
double deltaVisionTime = CTime::ticksToSecond(endVisionTime-startVisionTime); double deltaVisionTime = CTime::ticksToSecond(endVisionTime-startVisionTime);
bool bTellUs = false; bool bTellUs = false;
if( s_maxBotsVisible < numBotsVisible ) if( s_maxBotsVisible < numBotsVisible )
@ -1443,7 +1443,7 @@ void CGrpProfileGoToPoint::calcRatios()
if (_Shape!=SHAPE_RECTANGLE) if (_Shape!=SHAPE_RECTANGLE)
return; return;
const uint32 nbbots=_NpcList.size(); const uint32 nbbots=(uint32)_NpcList.size();
_NbRange = (uint32) sqrt(_Ratio*nbbots); _NbRange = (uint32) sqrt(_Ratio*nbbots);
if (_NbRange==0) if (_NbRange==0)
@ -1922,7 +1922,7 @@ void CGrpProfileFollowRoute::calcRatios ()
if (_Shape!=SHAPE_RECTANGLE) if (_Shape!=SHAPE_RECTANGLE)
return; return;
const uint32 nbbots=_NpcList.size(); const uint32 nbbots=(uint32)_NpcList.size();
_NbRange = (uint32) sqrt(_Ratio*nbbots); _NbRange = (uint32) sqrt(_Ratio*nbbots);
if (_NbRange==0) if (_NbRange==0)
@ -2574,8 +2574,8 @@ void CGrpProfileWander::updateProfile(uint ticksSinceLastUpdate)
if (!_DestinationReachedAll) if (!_DestinationReachedAll)
{ {
uint32 npcSize = pgrp.bots().size(); uint32 npcSize = (uint32)pgrp.bots().size();
uint32 reachedSize = _NpcDestinationReached.size(); uint32 reachedSize = (uint32)_NpcDestinationReached.size();
if (reachedSize!= npcSize) if (reachedSize!= npcSize)
{ {
_NpcDestinationReached.resize(npcSize); _NpcDestinationReached.resize(npcSize);
@ -2600,7 +2600,7 @@ void CGrpProfileWander::updateProfile(uint ticksSinceLastUpdate)
if (!vision.players().empty()) if (!vision.players().empty())
{ {
// there are some player near, look at one if it is not behin us // there are some player near, look at one if it is not behin us
uint index = CAIS::rand16(vision.players().size()); uint index = CAIS::rand16((uint32)vision.players().size());
CAngle angle(CAngle::pi()); CAngle angle(CAngle::pi());
while (index < vision.players().size() && !target) while (index < vision.players().size() && !target)
@ -2619,7 +2619,7 @@ void CGrpProfileWander::updateProfile(uint ticksSinceLastUpdate)
if (!target && !vision.bots().empty()) if (!target && !vision.bots().empty())
{ {
// there are some bots near, look at one if it is not behin us // there are some bots near, look at one if it is not behin us
uint index = CAIS::rand16(vision.bots().size()); uint index = CAIS::rand16((uint32)vision.bots().size());
CAngle angle(CAngle::pi()); CAngle angle(CAngle::pi());
while (index < vision.bots().size() && !target) while (index < vision.bots().size() && !target)
@ -2726,7 +2726,7 @@ void CGrpProfileWander::updateProfile(uint ticksSinceLastUpdate)
pgrp.processStateEvent(pgrp.mgr().EventDestinationReachedFirst); pgrp.processStateEvent(pgrp.mgr().EventDestinationReachedFirst);
} }
uint32 first=0, last=_NpcDestinationReached.size(); uint32 first=0, last=(uint32)_NpcDestinationReached.size();
for ( ; first != last && _NpcDestinationReached[first]; ++first) {} for ( ; first != last && _NpcDestinationReached[first]; ++first) {}
if (first == last) if (first == last)
@ -2912,7 +2912,7 @@ void CGrpProfileWanderNoPrim::updateProfile(uint ticksSinceLastUpdate)
if (!vision.players().empty()) if (!vision.players().empty())
{ {
// there are some player near, look at one if it is not behin us // there are some player near, look at one if it is not behin us
uint index = CAIS::rand16(vision.players().size()); uint index = CAIS::rand16((uint32)vision.players().size());
CAngle angle(CAngle::pi()); CAngle angle(CAngle::pi());
while (index < vision.players().size() && !target) while (index < vision.players().size() && !target)
@ -2931,7 +2931,7 @@ void CGrpProfileWanderNoPrim::updateProfile(uint ticksSinceLastUpdate)
if (!target && !vision.bots().empty()) if (!target && !vision.bots().empty())
{ {
// there are some bots near, look at one if it is not behin us // there are some bots near, look at one if it is not behin us
uint index = CAIS::rand16(vision.bots().size()); uint index = CAIS::rand16((uint32)vision.bots().size());
CAngle angle(CAngle::pi()); CAngle angle(CAngle::pi());
while (index < vision.bots().size() && !target) while (index < vision.bots().size() && !target)

@ -11,8 +11,8 @@ using namespace NLMISC;
void explodeSubStrings(const std::string &str, vector<std::string> &strings, sint32 parenthesis=0) void explodeSubStrings(const std::string &str, vector<std::string> &strings, sint32 parenthesis=0)
{ {
const std::string separators("(),"); const std::string separators("(),");
uint32 current=0; string::size_type current=0;
uint32 nextCurrent=current; string::size_type nextCurrent=current;
strings.clear(); strings.clear();
nextCurrent=str.find_first_of(separators.c_str(), current); nextCurrent=str.find_first_of(separators.c_str(), current);
@ -989,7 +989,7 @@ public:
vector<string> params; vector<string> params;
explodeSubStrings(inStr, params, -1); explodeSubStrings(inStr, params, -1);
const uint32 nbSubScript=params.size(); const uint32 nbSubScript=(uint32)params.size();
std::vector<CSmartPtr<CFightScriptComp> > scriptComps; std::vector<CSmartPtr<CFightScriptComp> > scriptComps;
try try
@ -1060,7 +1060,7 @@ CFightScriptComp *CFightScriptCompReader::createScriptComp (const string &str) t
{ {
string scriptCompName; string scriptCompName;
{ {
const uint32 index=str.find_first_of("()", 0); const string::size_type index=str.find_first_of("()", 0);
if (index==string::npos) if (index==string::npos)
throw ReadFightActionException("ScriptComp Creation of :"+str+" Failed because of bad Syntax"); throw ReadFightActionException("ScriptComp Creation of :"+str+" Failed because of bad Syntax");
scriptCompName=str.substr(0,index); scriptCompName=str.substr(0,index);

@ -21,8 +21,8 @@
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
> >
@ -98,8 +98,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
> >
@ -146,8 +146,9 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libxml2.lib zlib.lib mysqlclient.lib" AdditionalDependencies="mysqlclient.lib"
LinkIncremental="2" LinkIncremental="2"
IgnoreDefaultLibraryNames="msvcrt.lib"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
TargetMachine="17" TargetMachine="17"
@ -176,8 +177,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="..\..\obj\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"
@ -261,8 +262,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="..\..\obj64\$(ConfigurationName)\$(ProjectName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"

@ -282,7 +282,7 @@ public:
static uint size() static uint size()
{ {
if (!initialised()) init(); if (!initialised()) init();
return Stack.size(); return (uint)Stack.size();
} }
static void pop() static void pop()

@ -35,8 +35,8 @@ void stripWhitespaces(std::string& str)
{ {
if(str.empty()) return; if(str.empty()) return;
int startIndex = str.find_first_not_of(" "); string::size_type startIndex = str.find_first_not_of(" ");
int endIndex = str.find_last_not_of(" "); string::size_type endIndex = str.find_last_not_of(" ");
std::string tmp = str; std::string tmp = str;
str.erase(); str.erase();
@ -46,7 +46,7 @@ void stripWhitespaces(std::string& str)
std::string removeComment(const std::string &str) std::string removeComment(const std::string &str)
{ {
uint newPos= str.find("//",0); string::size_type newPos= str.find("//",0);
if (newPos != string::npos) if (newPos != string::npos)
{ {

@ -463,7 +463,7 @@ uint32 CCont<TChld>::getFirstFreeChild()
if (!_Childs[index]) if (!_Childs[index])
break; break;
} }
return index; return (uint32)index;
} }
template <class TChld> template <class TChld>

@ -823,7 +823,7 @@ public:
fb->setModifier (_value, nrjIndex); fb->setModifier (_value, nrjIndex);
return; return;
} }
fb->setModifier (_value, _index); fb->setModifier (_value, (uint32)_index);
} }
virtual void doOnCellZone(CCellZone *cz) const virtual void doOnCellZone(CCellZone *cz) const
@ -2874,7 +2874,7 @@ static int const MULTI_LINE_FORMATER_maxn = 78;
void MULTI_LINE_FORMATER::pushTitle(std::vector<std::string>& container, std::string const& text) void MULTI_LINE_FORMATER::pushTitle(std::vector<std::string>& container, std::string const& text)
{ {
int const maxn = MULTI_LINE_FORMATER_maxn; int const maxn = MULTI_LINE_FORMATER_maxn;
int n = maxn - text.length() - 4; int n = maxn - (int)text.length() - 4;
container.push_back(" _/"); container.push_back(" _/");
container.back() += text; container.back() += text;
container.back() += "\\" + std::string(n, '_'); container.back() += "\\" + std::string(n, '_');

@ -800,7 +800,7 @@ bool CContinent::spawn()
// Spawn regions // Spawn regions
for (size_t i=0; i<_Regions.size(); ++i) for (size_t i=0; i<_Regions.size(); ++i)
{ {
CRegion* region = _Regions[i]; CRegion* region = _Regions[(uint32)i];
if (!region) if (!region)
continue; continue;
region->spawn(); region->spawn();
@ -808,7 +808,7 @@ bool CContinent::spawn()
// Spawn outposts // Spawn outposts
for (size_t i=0; i<_Outposts.size(); ++i) for (size_t i=0; i<_Outposts.size(); ++i)
{ {
COutpost* outpost = _Outposts[i]; COutpost* outpost = _Outposts[(uint32)i];
if (!outpost) if (!outpost)
continue; continue;
outpost->spawn(); outpost->spawn();
@ -822,7 +822,7 @@ bool CContinent::despawn()
// Despawn regions // Despawn regions
for (size_t i=0; i<_Regions.size(); ++i) for (size_t i=0; i<_Regions.size(); ++i)
{ {
CRegion* region = _Regions[i]; CRegion* region = _Regions[(uint32)i];
if (!region) if (!region)
continue; continue;
region->despawn(); region->despawn();
@ -830,7 +830,7 @@ bool CContinent::despawn()
// Despawn outposts // Despawn outposts
for (size_t i=0; i<_Outposts.size(); ++i) for (size_t i=0; i<_Outposts.size(); ++i)
{ {
COutpost* outpost = _Outposts[i]; COutpost* outpost = _Outposts[(uint32)i];
if (!outpost) if (!outpost)
continue; continue;
outpost->despawn(); outpost->despawn();
@ -1113,7 +1113,7 @@ bool CRegion::spawn()
// Spawn cellzones // Spawn cellzones
for (size_t j=0; j<_CellZones.size(); ++j) for (size_t j=0; j<_CellZones.size(); ++j)
{ {
CCellZone* cellZone = _CellZones[j]; CCellZone* cellZone = _CellZones[(uint32)j];
if (!cellZone) if (!cellZone)
continue; continue;
cellZone->spawn(); cellZone->spawn();
@ -1127,7 +1127,7 @@ bool CRegion::despawn()
// Despawn cellzones // Despawn cellzones
for (size_t j=0; j<_CellZones.size(); ++j) for (size_t j=0; j<_CellZones.size(); ++j)
{ {
CCellZone* cellZone = _CellZones[j]; CCellZone* cellZone = _CellZones[(uint32)j];
if (!cellZone) if (!cellZone)
continue; continue;
cellZone->despawn(); cellZone->despawn();
@ -1760,7 +1760,7 @@ const CFaunaZone *CCellZone::lookupFaunaZone(const CPropertySet &activity, TASta
} }
} }
if (candidates.size()>0) if (candidates.size()>0)
return candidates[CAIS::rand16(candidates.size())]; return candidates[CAIS::rand16((uint32)candidates.size())];
return NULL; return NULL;
} }
@ -1868,7 +1868,7 @@ const CNpcZone *CCellZone::lookupNpcZone(const CPropertySet &activity, size_t re
} }
if (candidates.size()>0) if (candidates.size()>0)
return candidates[CAIS::rand16(candidates.size())]; return candidates[CAIS::rand16((uint32)candidates.size())];
// warning only once // warning only once
{ {
@ -2099,7 +2099,7 @@ const CNpcZone *CCellZone::lookupNpcZoneScorer (std::vector<CCell*> cells, const
} }
if (candidates.size()>0) if (candidates.size()>0)
return candidates[CAIS::rand16(candidates.size())]; return candidates[CAIS::rand16((uint32)candidates.size())];
return NULL; return NULL;
} }
@ -2108,7 +2108,7 @@ bool CCellZone::spawn()
// Spawn families // Spawn families
for (size_t k=0; k<_Families.size(); ++k) for (size_t k=0; k<_Families.size(); ++k)
{ {
CFamilyBehavior* familyBehavior = _Families[k]; CFamilyBehavior* familyBehavior = _Families[(uint32)k];
if (!familyBehavior) if (!familyBehavior)
continue; continue;
familyBehavior->spawn(); familyBehavior->spawn();
@ -2122,7 +2122,7 @@ bool CCellZone::despawn()
// Despawn families // Despawn families
for (size_t k=0; k<_Families.size(); ++k) for (size_t k=0; k<_Families.size(); ++k)
{ {
CFamilyBehavior* familyBehavior = _Families[k]; CFamilyBehavior* familyBehavior = _Families[(uint32)k];
if (!familyBehavior) if (!familyBehavior)
continue; continue;
familyBehavior->despawn(); familyBehavior->despawn();

@ -339,9 +339,9 @@ inline
CNpcZone* CCell::npcZone(size_t index) CNpcZone* CCell::npcZone(size_t index)
{ {
if (index<_NpcZonePlaces.size()) if (index<_NpcZonePlaces.size())
return _NpcZonePlaces[index]; return _NpcZonePlaces[(uint32)index];
else else
return _NpcZoneShapes[index]; return _NpcZoneShapes[(uint32)index];
} }
inline inline
@ -455,7 +455,7 @@ bool CGroupDesc<FamilyT>::setSheet(std::string const& sheetName)
{ {
for (size_t i=0; i<_MultiLevelSheetCount; ++i) for (size_t i=0; i<_MultiLevelSheetCount; ++i)
{ {
char letter = (i/4) + 'b'; char letter = char(i/4) + 'b';
char number = (i%4) + '1'; char number = (i%4) + '1';
std::string sheetNameLevel = sheetName+letter+number; std::string sheetNameLevel = sheetName+letter+number;
// Compute sheet id // Compute sheet id
@ -1240,7 +1240,7 @@ void CBotDesc<FamilyT>::setSheet(std::string const& sheetName)
{ {
for (size_t i=0; i<_MultiLevelSheetCount; ++i) for (size_t i=0; i<_MultiLevelSheetCount; ++i)
{ {
char letter = (i/4) + 'b'; char letter = char(i/4) + 'b';
char number = (i%4) + '1'; char number = (i%4) + '1';
std::string sheetNameLevel = sheetName+letter+number; std::string sheetNameLevel = sheetName+letter+number;
// Compute sheet id // Compute sheet id

@ -195,7 +195,7 @@ public:
nlwarning("begin_state failed because state list is empty"); nlwarning("begin_state failed because state list is empty");
return false; return false;
} }
uint i=CAIS::rand16(_states.size()); uint i=CAIS::rand16((uint32)_states.size());
entity->getDebugHistory()->addHistory("GRP State Change: %s => %s", entity->getDebugHistory()->addHistory("GRP State Change: %s => %s",
entity->getState()->getAliasNode()->fullName().c_str(), entity->getState()->getAliasNode()->fullName().c_str(),
@ -458,7 +458,7 @@ public:
bool result=true; bool result=true;
const uint32 nbActions=_subActions.size(); const uint32 nbActions=(uint32)_subActions.size();
for (uint32 i=0;i<nbActions;i++) for (uint32 i=0;i<nbActions;i++)
{ {
if(_subActions[i]==NULL) if(_subActions[i]==NULL)
@ -513,7 +513,7 @@ public:
nlwarning("begin_punctual_state failed because state list is empty"); nlwarning("begin_punctual_state failed because state list is empty");
return false; return false;
} }
entity->setNextPunctualState(_states[CAIS::rand16(_states.size())]); entity->setNextPunctualState(_states[CAIS::rand16((uint32)_states.size())]);
entity->getDebugHistory()->addHistory("GRP BeginPunctual State: %s", entity->getDebugHistory()->addHistory("GRP BeginPunctual State: %s",
entity->getNextPunctualState()->getAliasNode()->fullName().c_str()); entity->getNextPunctualState()->getAliasNode()->fullName().c_str());
return true; return true;
@ -587,7 +587,7 @@ public:
nlwarning("random_select failed because sub-action list is empty"); nlwarning("random_select failed because sub-action list is empty");
return false; return false;
} }
_subActions[CAIS::rand16(_subActions.size())]->executeAction(entity,event); _subActions[CAIS::rand16((uint32)_subActions.size())]->executeAction(entity,event);
return true; return true;
} }
@ -1193,7 +1193,7 @@ static CGroup* findGroup(const std::string& groupName,CStateMachine *stateMachin
{ {
CGroup *igroup=NULL; CGroup *igroup=NULL;
// Check if theres a group with the good name in the same stateMachine (and only one). // Check if theres a group with the good name in the same stateMachine (and only one).
for (sint32 grpIndex=grps.size()-1;grpIndex>=0;grpIndex--) for (sint32 grpIndex=(sint32)grps.size()-1;grpIndex>=0;grpIndex--)
{ {
if (grps[grpIndex]->getManager().getStateMachine()!=stateMachine) if (grps[grpIndex]->getManager().getStateMachine()!=stateMachine)
continue; continue;
@ -1376,7 +1376,7 @@ public:
{ {
CGroup *igroup=NULL; CGroup *igroup=NULL;
// Check if theres a group with the good name in the same stateMachine (and only one). // Check if theres a group with the good name in the same stateMachine (and only one).
for (sint32 grpIndex=grps.size()-1;grpIndex>=0;grpIndex--) for (sint32 grpIndex=(sint32)grps.size()-1;grpIndex>=0;grpIndex--)
{ {
if (grps[grpIndex]->getManager().getStateMachine()!=stateMachine) if (grps[grpIndex]->getManager().getStateMachine()!=stateMachine)
continue; continue;
@ -1822,7 +1822,7 @@ public:
// r2 mode groupename:botname // r2 mode groupename:botname
if (_R2) if (_R2)
{ {
uint first(0), last(_Groups.size()); uint first = 0, last = (uint)_Groups.size();
for (; first != last; ++first) for (; first != last; ++first)
{ {
CGroup *grp = _Groups[first]; CGroup *grp = _Groups[first];
@ -2165,7 +2165,7 @@ public:
{ {
// this line treated first ... in case we bomb out in one of the if(...) { ... return; } cases // this line treated first ... in case we bomb out in one of the if(...) { ... return; } cases
uint32 nbArgs = args.size(); uint32 nbArgs = (uint32)args.size();
if (nbArgs==0) if (nbArgs==0)
{ {
nlwarning("switch_actions (%s) need an argument !", eventNode->fullName().c_str()); nlwarning("switch_actions (%s) need an argument !", eventNode->fullName().c_str());
@ -2943,7 +2943,7 @@ public:
if(cstring=="DSS_") if(cstring=="DSS_")
{ {
_Id=true; _Id=true;
NLMISC::CSString tmp = NLMISC::CSString (_Sentence).right(_Sentence.length()-4); NLMISC::CSString tmp = NLMISC::CSString (_Sentence).right((unsigned int)_Sentence.length()-4);
NLMISC::CSString tmp2 = tmp.strtok(" ",false,false,false,false); NLMISC::CSString tmp2 = tmp.strtok(" ",false,false,false,false);
_ScenarioId = atoi(tmp2.c_str()); _ScenarioId = atoi(tmp2.c_str());
_Sentence = tmp; _Sentence = tmp;
@ -3021,7 +3021,7 @@ public:
else else
{ {
float val; float val;
uint32 size=_Vars.size(),i=0; uint32 size=(uint32)_Vars.size(),i=0;
std::vector<float> values; std::vector<float> values;
for(;i<size;++i) for(;i<size;++i)
{ {

@ -136,9 +136,9 @@ void CGrpProfileDynFollowPath::updateProfile(uint ticksSinceLastUpdate)
_FollowRoute.setAIProfile(fr); _FollowRoute.setAIProfile(fr);
// faire gaffe à l'init du CGrpProfileFollowRouteSpawn dans le cadre statique .. :\ (adapter?) // faire gaffe à l'init du CGrpProfileFollowRouteSpawn dans le cadre statique .. :\ (adapter?)
#ifdef NL_DEBUG #ifdef NL_DEBUG
nlassert(_CurrentZone==_CurrentRoad->startZone() || _CurrentZone==_CurrentRoad->endZone()) nlassert(_CurrentZone==_CurrentRoad->startZone() || _CurrentZone==_CurrentRoad->endZone());
#endif #endif
fr->setDirection(_CurrentRoad->startZone()==_CurrentZone); // CurrentZone); fr->setDirection(_CurrentRoad->startZone()==_CurrentZone); // CurrentZone);
} }
else else

@ -87,7 +87,7 @@ void CKnapsackSolver::optimizeOptimal()
for (size_t i=0; i<size(); ++i) for (size_t i=0; i<size(); ++i)
take[i] = false; take[i] = false;
// Run the optimization recursion // Run the optimization recursion
optimizeOptimalRec(size()-1, _WMax, 0, take); optimizeOptimalRec((int)size()-1, _WMax, 0, take);
// Delete temporary solution // Delete temporary solution
delete [] take; delete [] take;
} }
@ -129,7 +129,7 @@ void CKnapsackSolver::optimizeOptimalRec(int i, float w, float v, bool* take)
void CKnapsackSolver::optimizeAddCheck() void CKnapsackSolver::optimizeAddCheck()
{ {
H_AUTO(CKnapsackSolver_optimizeAddCheck); H_AUTO(CKnapsackSolver_optimizeAddCheck);
int i = size()-1; int i = (int)size()-1;
float w = _WMax - _WBest; float w = _WMax - _WBest;
while (i>=0) while (i>=0)
{ {
@ -149,7 +149,7 @@ void CKnapsackSolver::optimizeAddCheck()
void CKnapsackSolver::optimizeFullAddCheck() void CKnapsackSolver::optimizeFullAddCheck()
{ {
H_AUTO(CKnapsackSolver_optimizeFullAddCheck); H_AUTO(CKnapsackSolver_optimizeFullAddCheck);
int i = size()-1; int i = (int)size()-1;
float w = _WMax - _WBest; float w = _WMax - _WBest;
while (i>=0) while (i>=0)
{ {
@ -168,7 +168,7 @@ void CKnapsackSolver::optimizeFullAddCheck()
void CKnapsackSolver::optimizeFastAddCheck() void CKnapsackSolver::optimizeFastAddCheck()
{ {
H_AUTO(CKnapsackSolver_optimizeFastAddCheck); H_AUTO(CKnapsackSolver_optimizeFastAddCheck);
int i = size()-1; int i = (int)size()-1;
float w = _WMax - _WBest; float w = _WMax - _WBest;
while (i>=0) while (i>=0)
{ {
@ -192,7 +192,7 @@ void CKnapsackSolver::optimizeFullSingleReplace()
{ {
optimizeFullAddCheck(); optimizeFullAddCheck();
H_AUTO(CKnapsackSolver_optimizeFullSingleReplace); H_AUTO(CKnapsackSolver_optimizeFullSingleReplace);
int i = size()-1; int i = (int)size()-1;
while (i>=0) while (i>=0)
{ {
// For each not taken ith element // For each not taken ith element
@ -202,7 +202,7 @@ void CKnapsackSolver::optimizeFullSingleReplace()
float v = value(i); float v = value(i);
int worst = i; int worst = i;
// Find the worst element that ith element can replace // Find the worst element that ith element can replace
int j = size()-1; int j = (int)size()-1;
while (j>=0) while (j>=0)
{ {
if (i!=j && _Take[j] && w<=weight(j) && v>value(j)) if (i!=j && _Take[j] && w<=weight(j) && v>value(j))
@ -239,7 +239,7 @@ void CKnapsackSolver::optimizeSingleReplace()
if (_VBest > vBest) if (_VBest > vBest)
return; return;
H_AUTO(CKnapsackSolver_optimizeSingleReplace); H_AUTO(CKnapsackSolver_optimizeSingleReplace);
int i = size()-1; int i = (int)size()-1;
while (i>=0) while (i>=0)
{ {
// For each not taken ith element // For each not taken ith element
@ -249,7 +249,7 @@ void CKnapsackSolver::optimizeSingleReplace()
float v = value(i); float v = value(i);
int worst = i; int worst = i;
// Find the worst element that ith element can replace // Find the worst element that ith element can replace
int j = size()-1; int j = (int)size()-1;
while (j>=0) while (j>=0)
{ {
if (i!=j && _Take[j] && w<=weight(j) && v>value(j)) if (i!=j && _Take[j] && w<=weight(j) && v>value(j))
@ -286,7 +286,7 @@ void CKnapsackSolver::optimizeFastSingleReplace()
if (_VBest > vBest) if (_VBest > vBest)
return; return;
H_AUTO(CKnapsackSolver_optimizeFastSingleReplace); H_AUTO(CKnapsackSolver_optimizeFastSingleReplace);
int i = size()-1; int i = (int)size()-1;
while (i>=0) while (i>=0)
{ {
// For each not taken ith element // For each not taken ith element
@ -296,7 +296,7 @@ void CKnapsackSolver::optimizeFastSingleReplace()
float v = value(i); float v = value(i);
int worst = i; int worst = i;
// Find the worst element that ith element can replace // Find the worst element that ith element can replace
int j = size()-1; int j = (int)size()-1;
while (j>=0) while (j>=0)
{ {
if (i!=j && _Take[j] && w<=weight(j) && v>value(j)) if (i!=j && _Take[j] && w<=weight(j) && v>value(j))
@ -334,7 +334,7 @@ void CKnapsackSolver::optimizeVeryFastSingleReplace()
if (_VBest > vBest) if (_VBest > vBest)
return; return;
H_AUTO(CKnapsackSolver_optimizeVeryFastSingleReplace); H_AUTO(CKnapsackSolver_optimizeVeryFastSingleReplace);
int i = size()-1; int i = (int)size()-1;
while (i>=0) while (i>=0)
{ {
// For each not taken ith element // For each not taken ith element
@ -344,7 +344,7 @@ void CKnapsackSolver::optimizeVeryFastSingleReplace()
float v = value(i); float v = value(i);
int worst = i; int worst = i;
// Find the worst element that ith element can replace // Find the worst element that ith element can replace
int j = size()-1; int j = (int)size()-1;
while (j>=0) while (j>=0)
{ {
if (i!=j && _Take[j] && w<=weight(j) && v>value(j)) if (i!=j && _Take[j] && w<=weight(j) && v>value(j))
@ -377,7 +377,7 @@ void CKnapsackSolver::optimizeTakeAll()
H_AUTO(CKnapsackSolver_optimizeTakeAll); H_AUTO(CKnapsackSolver_optimizeTakeAll);
_WBest = 0; _WBest = 0;
_VBest = 0; _VBest = 0;
int i = size()-1; int i = (int)size()-1;
while (i>=0) while (i>=0)
{ {
_Take[i] = true; _Take[i] = true;

@ -785,7 +785,7 @@ void CAIAskForInfosOnEntityImp::callback (const std::string &name, NLNET::TServi
void CChangeActionFlagMsgImp::callback (const std::string &name, NLNET::TServiceId id) void CChangeActionFlagMsgImp::callback (const std::string &name, NLNET::TServiceId id)
{ {
const uint32 size = Entities.size(); const uint32 size = (uint32)Entities.size();
nlassert( size == ActionFlags.size() && size == Values.size()); nlassert( size == ActionFlags.size() && size == Values.size());
for (uint32 i = 0 ; i < size ; ++i) for (uint32 i = 0 ; i < size ; ++i)

@ -928,7 +928,7 @@ void getGroupTemplateWithFlags_sss_s(CStateInstance* entity, CScriptStack& stack
return; return;
} }
CGroupDesc<CGroupFamily> const* groupDesc = groupDescs[CAIS::rand16(groupDescs.size())]; CGroupDesc<CGroupFamily> const* groupDesc = groupDescs[CAIS::rand16((uint32)groupDescs.size())];
stack.push(groupDesc->getFullName()); stack.push(groupDesc->getFullName());
return; return;
} }

@ -2109,7 +2109,7 @@ void npcSay_css_(CStateInstance* entity, CScriptStack& stack)
if(prefix=="DSS_") if(prefix=="DSS_")
{ {
NLMISC::CSString phrase = NLMISC::CSString (text).right(text.length()-4); NLMISC::CSString phrase = NLMISC::CSString (text).right((unsigned int)text.length()-4);
NLMISC::CSString idStr = phrase.strtok(" ",false,false,false,false); NLMISC::CSString idStr = phrase.strtok(" ",false,false,false,false);
uint32 scenarioId = atoi(idStr.c_str()); uint32 scenarioId = atoi(idStr.c_str());
forwardToDss(spawnBot->dataSetRow(), CChatGroup::say, phrase, scenarioId); forwardToDss(spawnBot->dataSetRow(), CChatGroup::say, phrase, scenarioId);
@ -2118,7 +2118,7 @@ void npcSay_css_(CStateInstance* entity, CScriptStack& stack)
if (prefix=="RAW ") if (prefix=="RAW ")
{ {
NLMISC::CSString phrase = NLMISC::CSString (text).right(text.length()-4); NLMISC::CSString phrase = NLMISC::CSString (text).right((unsigned int)text.length()-4);
npcChatToChannelSentence(spawnBot->dataSetRow(),CChatGroup::say, phrase); npcChatToChannelSentence(spawnBot->dataSetRow(),CChatGroup::say, phrase);
return; return;
} }

@ -135,8 +135,8 @@ public:
void doOnFamily(CFamilyBehavior* fb) const void doOnFamily(CFamilyBehavior* fb) const
{ {
float value = fb->getModifier(_IndexSrc); float value = fb->getModifier((uint32)_IndexSrc);
fb->setModifier(value, _IndexDest); fb->setModifier(value, (uint32)_IndexDest);
} }
void doOnCellZone(CCellZone* cz) const { } void doOnCellZone(CCellZone* cz) const { }
@ -167,7 +167,7 @@ public:
fb->setModifier (_value, nrjIndex); fb->setModifier (_value, nrjIndex);
return; return;
} }
fb->setModifier (_value, _index); fb->setModifier (_value, (uint32)_index);
} }
void doOnCellZone(CCellZone *cz) const { } void doOnCellZone(CCellZone *cz) const { }

@ -68,15 +68,15 @@ void setEvent_f_(CStateInstance* entity, CScriptStack& stack)
if (IsRingShard.get()) if (IsRingShard.get())
{ {
if ( entity->isUserEventBlocked( eventIndex) ) { return; } // Do not allow uservent recursion on ring shard if ( entity->isUserEventBlocked( (uint32)eventIndex) ) { return; } // Do not allow uservent recursion on ring shard
entity->blockUserEvent(eventIndex); entity->blockUserEvent((uint32)eventIndex);
} }
entity->processStateEvent(entity->getPersistentStateInstance()->getEventContainer().EventUserEvent[eventIndex]); entity->processStateEvent(entity->getPersistentStateInstance()->getEventContainer().EventUserEvent[eventIndex]);
if (IsRingShard.get()) if (IsRingShard.get())
{ {
entity->unblockUserEvent(eventIndex); entity->unblockUserEvent((uint32)eventIndex);
} }
} }
@ -118,7 +118,7 @@ void setTimer_ff_(CStateInstance* si, CScriptStack& stack)
nlassert(false); nlassert(false);
} }
si->timerUser(timerId).set(deltaTime); si->timerUser((uint)timerId).set((uint32)deltaTime);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -183,7 +183,7 @@ void timerSetRyzomDaytime_fff_(CStateInstance* si, CScriptStack& stack)
return; return;
} }
si->timerUser(timerId).set(timeTicks); si->timerUser((uint)timerId).set((uint32)timeTicks);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -222,7 +222,7 @@ void timerIsEnabled_f_f(CStateInstance* si, CScriptStack& stack)
return; return;
} }
float isEnabled = si->timerUser(timerId).isEnabled(); float isEnabled = si->timerUser((uint)timerId).isEnabled();
stack.push(isEnabled); stack.push(isEnabled);
} }
@ -262,7 +262,7 @@ void timerIsSuspended_f_f(CStateInstance* si, CScriptStack& stack)
return; return;
} }
float isSuspended = si->timerUser(timerId).isSuspended(); float isSuspended = si->timerUser((uint)timerId).isSuspended();
stack.push(isSuspended); stack.push(isSuspended);
} }
@ -301,7 +301,7 @@ void timerSuspend_f_(CStateInstance* si, CScriptStack& stack)
return; return;
} }
si->timerUser(timerId).suspend(); si->timerUser((uint)timerId).suspend();
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -339,7 +339,7 @@ void timerDisable_f_(CStateInstance* si, CScriptStack& stack)
return; return;
} }
si->timerUser(timerId).disable(); si->timerUser((uint)timerId).disable();
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -377,7 +377,7 @@ void timerResume_f_(CStateInstance* si, CScriptStack& stack)
return; return;
} }
si->timerUser(timerId).resume(); si->timerUser((uint)timerId).resume();
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -423,12 +423,12 @@ void timerAdd_ff_(CStateInstance* si, CScriptStack& stack)
if (dt > 0) if (dt > 0)
{ {
uint32 dt2 = static_cast<uint32>(dt); uint32 dt2 = static_cast<uint32>(dt);
si->timerUser(timerId).add(dt2); si->timerUser((uint)timerId).add(dt2);
} }
else else
{ {
uint32 dt2 = static_cast<uint32>(-dt); uint32 dt2 = static_cast<uint32>(-dt);
si->timerUser(timerId).sub(dt2); si->timerUser((uint)timerId).sub(dt2);
} }
} }

@ -698,7 +698,7 @@ bool CPathCont::getPathForSource(CPathPosition& pathPos, RYAI_MAP_CRUNCH::CWorld
if (topoItFind!=topoItEnd) if (topoItFind!=topoItEnd)
{ {
pathPos._Index = topoItFind-topoItBegin; pathPos._Index = (uint)(topoItFind-topoItBegin);
pathPos._Path = *it; pathPos._Path = *it;
return true; return true;
} }
@ -834,7 +834,7 @@ RYAI_MAP_CRUNCH::CTopology::TTopologyRef const& CPathPosition::getNextTopology()
bool CPathPosition::isFinished() const bool CPathPosition::isFinished() const
{ {
uint32 size = _Path->topologiesPath().size(); uint32 size = (uint32)_Path->topologiesPath().size();
return (size==0 || _Index==size-1); return (size==0 || _Index==size-1);
} }

@ -1117,7 +1117,7 @@ void CCompiler::dumpByteCode (const string &sourceCode, const string &fullName,
{ {
// Build a valid filename // Build a valid filename
string tmp = fullName; string tmp = fullName;
int pos; string::size_type pos;
while ((pos=tmp.find (':')) != string::npos) while ((pos=tmp.find (':')) != string::npos)
tmp[pos] = '-'; tmp[pos] = '-';
@ -2168,7 +2168,7 @@ bool compileExternalScript (const char *filename, const char *outputFilename)
string content; string content;
char buffer[512]; char buffer[512];
int read; int read;
while ((read = fread (buffer, 1, sizeof(buffer)-1, file)) == sizeof(buffer)-1) while ((read = (int)fread (buffer, 1, sizeof(buffer)-1, file)) == sizeof(buffer)-1)
{ {
buffer[read] = 0; buffer[read] = 0;
content += buffer; content += buffer;

@ -48,7 +48,7 @@ size_t makeStringId (const char *str)
void addSignature (char *dest, char s) void addSignature (char *dest, char s)
{ {
uint size = strlen (dest); uint size = (uint)strlen (dest);
if (size+1 < (uint)(AICOMP_MAX_SIGNATURE)) if (size+1 < (uint)(AICOMP_MAX_SIGNATURE))
{ {
dest[size] = s; dest[size] = s;
@ -58,8 +58,8 @@ void addSignature (char *dest, char s)
void addSignature (char *dest, char *src) void addSignature (char *dest, char *src)
{ {
uint size0 = strlen (dest); uint size0 = (uint)strlen (dest);
uint size1 = strlen (src); uint size1 = (uint)strlen (src);
if (size0+size1+1 < (uint)(AICOMP_MAX_SIGNATURE)) if (size0+size1+1 < (uint)(AICOMP_MAX_SIGNATURE))
strcat (dest, src); strcat (dest, src);
} }

@ -58,7 +58,7 @@ bool aiCompile (std::vector<size_t> &dest, const char *script, const char *scrip
aiLine = 1; aiLine = 1;
aiErrorCount = 0; aiErrorCount = 0;
aiInputScript = script; aiInputScript = script;
aiInputScriptLength = strlen (script); aiInputScriptLength = (uint)strlen (script);
strcpy (aiFile, scriptName); strcpy (aiFile, scriptName);
aiRoot = NULL; aiRoot = NULL;
@ -189,7 +189,7 @@ uint getChildrenByteCodeSize (const list<vector<size_t> * > *l)
list<vector<size_t> * >::const_iterator ite = l->begin(); list<vector<size_t> * >::const_iterator ite = l->begin();
while (ite != l->end()) while (ite != l->end())
{ {
size += (*ite)->size (); size += (uint)(*ite)->size ();
ite++; ite++;
} }
return size; return size;
@ -229,7 +229,7 @@ uint getChildrenByteCodeSize (const map<size_t, CCase *> *l)
map<size_t, CCase *>::const_iterator ite = l->begin (); map<size_t, CCase *>::const_iterator ite = l->begin ();
while (ite != l->end ()) while (ite != l->end ())
{ {
size += ite->second->ByteCode->size(); size += (uint)ite->second->ByteCode->size();
ite ++; ite ++;
} }
return size; return size;
@ -528,22 +528,22 @@ statement: openStatement { $$ = $1; }
openStatement: TOKEN_IF TOKEN_LP condition TOKEN_RP statement openStatement: TOKEN_IF TOKEN_LP condition TOKEN_RP statement
{ {
int sizeToJump = $5.ByteCode->size() + 1; // 1 jump instruction to escape int sizeToJump = (int)$5.ByteCode->size() + 1; // 1 jump instruction to escape
NODE4 ($$, $3, CScriptVM::JE, sizeToJump, $5); NODE4 ($$, $3, CScriptVM::JE, sizeToJump, $5);
} }
| TOKEN_IF TOKEN_LP condition statement {ERROR_DETECTED ($$, "missing ')' at the end of the if condition");} | TOKEN_IF TOKEN_LP condition statement {ERROR_DETECTED ($$, "missing ')' at the end of the if condition");}
| TOKEN_IF condition TOKEN_RP statement {ERROR_DETECTED ($$, "missing '(' at the begining of the if condition");} | TOKEN_IF condition TOKEN_RP statement {ERROR_DETECTED ($$, "missing '(' at the begining of the if condition");}
| TOKEN_IF TOKEN_LP condition TOKEN_RP closedStatement TOKEN_ELSE openStatement | TOKEN_IF TOKEN_LP condition TOKEN_RP closedStatement TOKEN_ELSE openStatement
{ {
int sizeToJump0 = $5.ByteCode->size() + 3; // 2 jump instructions to escape int sizeToJump0 = (int)$5.ByteCode->size() + 3; // 2 jump instructions to escape
int sizeToJump1 = $7.ByteCode->size() + 1; // 1 jump instruction to escape int sizeToJump1 = (int)$7.ByteCode->size() + 1; // 1 jump instruction to escape
NODE7 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1, $7); NODE7 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1, $7);
} }
| TOKEN_IF TOKEN_LP condition closedStatement TOKEN_ELSE openStatement { ERROR_DETECTED ($$, "missing ')' at the end of the if condition");} | TOKEN_IF TOKEN_LP condition closedStatement TOKEN_ELSE openStatement { ERROR_DETECTED ($$, "missing ')' at the end of the if condition");}
| TOKEN_IF condition TOKEN_RP closedStatement TOKEN_ELSE openStatement { ERROR_DETECTED ($$, "missing '(' at the begining of the if condition");} | TOKEN_IF condition TOKEN_RP closedStatement TOKEN_ELSE openStatement { ERROR_DETECTED ($$, "missing '(' at the begining of the if condition");}
| TOKEN_WHILE TOKEN_LP condition TOKEN_RP openStatement | TOKEN_WHILE TOKEN_LP condition TOKEN_RP openStatement
{ {
int sizeToJump0 = $5.ByteCode->size() + 3; // 2 jump instructions to escape int sizeToJump0 = (int)$5.ByteCode->size() + 3; // 2 jump instructions to escape
int sizeToJump1 = -(int)$5.ByteCode->size() - 3 - (int)$3.ByteCode->size(); // 1 jump instruction to escape int sizeToJump1 = -(int)$5.ByteCode->size() - 3 - (int)$3.ByteCode->size(); // 1 jump instruction to escape
NODE6 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1); NODE6 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1);
} }
@ -552,15 +552,15 @@ openStatement: TOKEN_IF TOKEN_LP condition TOKEN_RP statement
closedStatement:TOKEN_IF TOKEN_LP condition TOKEN_RP closedStatement TOKEN_ELSE closedStatement closedStatement:TOKEN_IF TOKEN_LP condition TOKEN_RP closedStatement TOKEN_ELSE closedStatement
{ {
int sizeToJump0 = $5.ByteCode->size() + 3; // 2 jump instructions to escape int sizeToJump0 = (int)$5.ByteCode->size() + 3; // 2 jump instructions to escape
int sizeToJump1 = $7.ByteCode->size() + 1; // 1 jump instruction to escape int sizeToJump1 = (int)$7.ByteCode->size() + 1; // 1 jump instruction to escape
NODE7 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1, $7); NODE7 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1, $7);
} }
| TOKEN_IF TOKEN_LP condition closedStatement TOKEN_ELSE closedStatement { ERROR_DETECTED ($$, "missing ')' at the end of the if condition");} | TOKEN_IF TOKEN_LP condition closedStatement TOKEN_ELSE closedStatement { ERROR_DETECTED ($$, "missing ')' at the end of the if condition");}
| TOKEN_IF condition TOKEN_RP closedStatement TOKEN_ELSE closedStatement { ERROR_DETECTED ($$, "missing '(' at the end of the if condition");} | TOKEN_IF condition TOKEN_RP closedStatement TOKEN_ELSE closedStatement { ERROR_DETECTED ($$, "missing '(' at the end of the if condition");}
| TOKEN_WHILE TOKEN_LP condition TOKEN_RP closedStatement | TOKEN_WHILE TOKEN_LP condition TOKEN_RP closedStatement
{ {
int sizeToJump0 = $5.ByteCode->size() + 3; // 2 jump instructions to escape int sizeToJump0 = (int)$5.ByteCode->size() + 3; // 2 jump instructions to escape
int sizeToJump1 = -(int)$5.ByteCode->size() - 3 - (int)$3.ByteCode->size(); // 1 jump instruction to escape int sizeToJump1 = -(int)$5.ByteCode->size() - 3 - (int)$3.ByteCode->size(); // 1 jump instruction to escape
NODE6 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1); NODE6 ($$, $3, CScriptVM::JE, sizeToJump0, $5, CScriptVM::JUMP, sizeToJump1);
} }
@ -697,7 +697,7 @@ switch: TOKEN_SWITCH TOKEN_LP expression TOKEN_RP TOKEN_LA cases TOKEN_RA
addNode ($$, _case->Case); addNode ($$, _case->Case);
addNode ($$, sizeToJump); addNode ($$, sizeToJump);
sizeToJump += _case->ByteCode->size (); sizeToJump += (uint)_case->ByteCode->size ();
sizeToJump += 1; // One for the RET sizeToJump += 1; // One for the RET
sizeToJump -= 1; // One for the case key sizeToJump -= 1; // One for the case key
sizeToJump -= 1; // One for the offset sizeToJump -= 1; // One for the offset

@ -913,7 +913,7 @@ void CScriptVM::interpretCode(
IScriptContext* const sc = stack.top(); IScriptContext* const sc = stack.top();
stack.pop(); stack.pop();
string const& funcName = CStringMapper::unmap(*((TStringId*)&opcodes[++index])); string const& funcName = CStringMapper::unmap(*((TStringId*)&opcodes[++index]));
int mode = opcodes[++index]; int mode = (int)opcodes[++index];
string const& inParamsSig = CStringMapper::unmap(*((TStringId*)&opcodes[++index])); string const& inParamsSig = CStringMapper::unmap(*((TStringId*)&opcodes[++index]));
string const& outParamsSig = CStringMapper::unmap(*((TStringId*)&opcodes[++index])); string const& outParamsSig = CStringMapper::unmap(*((TStringId*)&opcodes[++index]));
if (sc) if (sc)
@ -949,7 +949,7 @@ void CScriptVM::interpretCode(
continue; continue;
case RAND: case RAND:
{ {
const size_t randIndex=rand32(opcodes[index+1]); // rand(RANDCOUNT) const size_t randIndex=rand32((uint32)opcodes[index+1]); // rand(RANDCOUNT)
index+=3; // pass RAND + RANDCOUNT + 1 index+=3; // pass RAND + RANDCOUNT + 1
stack.push((int)(index+opcodes[index])); // push the absolute address for RET. stack.push((int)(index+opcodes[index])); // push the absolute address for RET.

@ -167,7 +167,7 @@ void AISHEETS::CActionList::serial(NLMISC::IStream& s)
} }
else else
{ {
uint32 nbSheet = _Actions.size(); uint32 nbSheet = (uint32)_Actions.size();
s.serial(nbSheet); s.serial(nbSheet);
for (uint32 i=0; i<nbSheet; ++i) for (uint32 i=0; i<nbSheet; ++i)
{ {
@ -777,7 +777,7 @@ void AISHEETS::CCreature::serial(NLMISC::IStream &s)
} }
else else
{ {
uint32 nbScript = _ScriptCompList.size(); uint32 nbScript = (uint32)_ScriptCompList.size();
s.serial(nbScript); s.serial(nbScript);
for (uint32 index=0; index<nbScript; ++index) for (uint32 index=0; index<nbScript; ++index)
{ {
@ -968,7 +968,7 @@ uint32 AISHEETS::CSheets::getGroupPropertiesIndex(std::string groupIndexName)
std::map<string, uint32>::iterator it = _NameToGroupIndex.find(groupIndexName); std::map<string, uint32>::iterator it = _NameToGroupIndex.find(groupIndexName);
if (it==_NameToGroupIndex.end()) if (it==_NameToGroupIndex.end())
{ {
uint32 groupIndex = _NameToGroupIndex.size(); uint32 groupIndex = (uint32)_NameToGroupIndex.size();
_NameToGroupIndex.insert(make_pair(groupIndexName, groupIndex)); _NameToGroupIndex.insert(make_pair(groupIndexName, groupIndex));
#if !FINAL_VERSION #if !FINAL_VERSION
nldebug("GroupIndex Entry: %s %d", groupIndexName.c_str(), groupIndex); nldebug("GroupIndex Entry: %s %d", groupIndexName.c_str(), groupIndex);

@ -116,7 +116,7 @@ public:
bool hasPoints () const { return _Geometry.size()!=0; } bool hasPoints () const { return _Geometry.size()!=0; }
// accessors for path & patat geometry - whichever of the 2 exists // accessors for path & patat geometry - whichever of the 2 exists
uint32 numPoints() { return _Geometry.size(); } uint32 numPoints() { return (uint32)_Geometry.size(); }
const TPosition *point(uint32 idx) { return idx<_Geometry.size()? &_Geometry[idx]: NULL; } const TPosition *point(uint32 idx) { return idx<_Geometry.size()? &_Geometry[idx]: NULL; }
const std::vector<TPosition> &getGeometry() const { return _Geometry; } const std::vector<TPosition> &getGeometry() const { return _Geometry; }

@ -105,7 +105,7 @@ I16x16Layer *I16x16Layer::compress(I16x16Layer *layer, sint32 blank)
++((*it).second); ++((*it).second);
} }
uint msize = count.size(); uint msize = (uint)count.size();
if (msize == 1) if (msize == 1)
{ {

@ -267,7 +267,7 @@ public:
if (index>=data.size()) if (index>=data.size())
{ {
nlwarning("Unexpected end of input data in serialFromString()"); nlwarning("Unexpected end of input data in serialFromString()");
index=data.size()+1; index=(uint)data.size()+1;
return CArg(); return CArg();
} }
} }
@ -279,7 +279,7 @@ public:
if (index>data.size()) if (index>data.size())
{ {
nlwarning("Unexpected end of input data in serialFromString()"); nlwarning("Unexpected end of input data in serialFromString()");
index=data.size()+1; index=(uint)data.size()+1;
return CArg(); return CArg();
} }
return CArg(bool(data[index] == 1)); return CArg(bool(data[index] == 1));
@ -289,7 +289,7 @@ public:
if (index>data.size()) if (index>data.size())
{ {
nlwarning("Unexpected end of input data in serialFromString()"); nlwarning("Unexpected end of input data in serialFromString()");
index=data.size()+1; index=(uint)data.size()+1;
return CArg(); return CArg();
} }
return CArg(((sint32 *)&data[index])[-1]); return CArg(((sint32 *)&data[index])[-1]);
@ -299,7 +299,7 @@ public:
if (index>data.size()) if (index>data.size())
{ {
nlwarning("Unexpected end of input data in serialFromString()"); nlwarning("Unexpected end of input data in serialFromString()");
index=data.size()+1; index=(uint)data.size()+1;
return CArg(); return CArg();
} }
return CArg(((float *)&data[index])[-1]); return CArg(((float *)&data[index])[-1]);
@ -315,7 +315,7 @@ public:
break; break;
} }
nlwarning("Unexpected type in serialFromString()"); nlwarning("Unexpected type in serialFromString()");
index=data.size()+1; index=(uint)data.size()+1;
return CArg(); return CArg();
} }

@ -113,7 +113,7 @@ public:
const NLMISC::CSmartPtr<CAIAliasDescriptionNode> &getParent () const { return _parent; } const NLMISC::CSmartPtr<CAIAliasDescriptionNode> &getParent () const { return _parent; }
// tree parse and search routines // tree parse and search routines
uint32 getChildCount () const { nlassert(this!=NULL); return _children.size(); } uint32 getChildCount () const { nlassert(this!=NULL); return (uint32)_children.size(); }
CAIAliasDescriptionNode * const &getChild (uint32 idx) const { return _children[idx]; } CAIAliasDescriptionNode * const &getChild (uint32 idx) const { return _children[idx]; }
const CAIAliasDescriptionNode *lookupAlias (uint32 alias) const const CAIAliasDescriptionNode *lookupAlias (uint32 alias) const
{ {

@ -82,7 +82,7 @@ struct CAiEventReport
inline void addDelta(AI_EVENT_REPORT::TAIReportStat stat, sint32 delta) inline void addDelta(AI_EVENT_REPORT::TAIReportStat stat, sint32 delta)
{ {
const uint size = AffectedStats.size(); const uint size = (uint)AffectedStats.size();
for (uint i = 0; i < size; ++i) for (uint i = 0; i < size; ++i)
{ {
if (AffectedStats[i] == stat) if (AffectedStats[i] == stat)

@ -86,7 +86,7 @@ namespace AI_SHARE
keyword=input.substr(i,k-i); keyword=input.substr(i,k-i);
// find the end of the tail text // find the end of the tail text
for (k=input.size();k>j && isWhiteSpace(input[k-1]);) --k; // k points to character after end of tail text for (k=(uint)input.size();k>j && isWhiteSpace(input[k-1]);) --k; // k points to character after end of tail text
// find start of tail text // find start of tail text
do { ++j; } while(j<k && isWhiteSpace(input[j])); // j points to start of tail text do { ++j; } while(j<k && isWhiteSpace(input[j])); // j points to start of tail text
@ -122,7 +122,7 @@ namespace AI_SHARE
word=input.substr(i,j-i); word=input.substr(i,j-i);
// find the end of the tail text // find the end of the tail text
for (i=input.size();i>j && isWhiteSpace(input[i-1]);) --i; // i points to character after end of tail text for (i=(uint)input.size();i>j && isWhiteSpace(input[i-1]);) --i; // i points to character after end of tail text
// find start of tail text // find start of tail text
do { ++j; } while(j<i && isWhiteSpace(input[j])); // j points to start of tail text do { ++j; } while(j<i && isWhiteSpace(input[j])); // j points to start of tail text

@ -22,7 +22,7 @@
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
> >
@ -88,7 +88,7 @@
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
> >
@ -155,7 +155,7 @@
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"
@ -226,7 +226,7 @@
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj64\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="1" CharacterSet="1"
WholeProgramOptimization="0" WholeProgramOptimization="0"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save