commit
dd91970e9e
File diff suppressed because it is too large
Load Diff
@ -1,19 +0,0 @@
|
||||
TITLE 1_export.py
|
||||
1_export.py
|
||||
TITLE 2_build.py
|
||||
2_build.py
|
||||
TITLE 3_install.py
|
||||
3_install.py
|
||||
TITLE 4_worldedit_data.py
|
||||
4_worldedit_data.py
|
||||
TITLE 5_client_dev.py
|
||||
5_client_dev.py
|
||||
TITLE 6_client_patch.py
|
||||
6_client_patch.py -bo
|
||||
TITLE 7_client_install.py
|
||||
7_client_install.py
|
||||
TITLE 8_shard_data.py
|
||||
8_shard_data.py
|
||||
PAUSE
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
title Ryzom Core: 1_export.py
|
||||
1_export.py
|
||||
title Ryzom Core: 2_build.py
|
||||
2_build.py
|
||||
title Ryzom Core: 3_install.py
|
||||
3_install.py
|
||||
title Ryzom Core: a1_worldedit_data.py
|
||||
a1_worldedit_data.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
@ -0,0 +1,93 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file b2_shard_data.py
|
||||
# \brief Install shard data
|
||||
# \date 2009-02-18 16:19GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install shard data
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010 Winch Gate Property Limited
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install shard data")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
for dir in InstallShardDataDirectories:
|
||||
printLog(log, "SHARD PACKAGE " + dir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
printLog(log, "FROM " + dir)
|
||||
mkPath(log, InstallDirectory + "/" + dir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, ShardInstallDirectory + "/" + dir)
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, package[1])
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM " + srcDir)
|
||||
mkPath(log, InstallDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
for srcDir in multiDir[1]:
|
||||
printLog(log, "FROM PRIMITIVES " + srcDir)
|
||||
mkPath(log, PrimitivesDirectory + "/" + srcDir)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
copyFilesNoTreeIfNeeded(log, PrimitivesDirectory + "/" + srcDir, ShardInstallDirectory + "/" + dstDir + "/" + srcDir)
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
mkPath(log, LinuxServiceExecutableDirectory)
|
||||
mkPath(log, PatchmanCfgDefaultDirectory)
|
||||
mkPath(log, InstallDirectory)
|
||||
mkPath(log, ShardInstallDirectory + "/" + dstDir)
|
||||
printLog(log, "SHARD PACKAGE " + dstDir)
|
||||
copyFileIfNeeded(log, LinuxServiceExecutableDirectory + "/" + execDir[1][1], ShardInstallDirectory + "/" + dstDir + "/" + execDir[1][0])
|
||||
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardInstallDirectory + "/" + dstDir, execDir[2])
|
||||
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardInstallDirectory + "/" + dstDir, execDir[3])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("b2_shard_data.log"):
|
||||
os.remove("b2_shard_data.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_data.log")
|
||||
shutil.move("log.log", "b2_shard_data.log")
|
@ -0,0 +1,109 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file c1_shard_patch.py
|
||||
# \brief Create a new patch for the patchman bridge
|
||||
# \date 2014-02-20 00:27GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Create a new patch for the patchman bridge
|
||||
#
|
||||
# NeL - MMORPG Framework <http://www.ryzomcore.org/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util, tarfile
|
||||
sys.path.append("configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
|
||||
sys.path.append(WorkspaceDirectory)
|
||||
from projects import *
|
||||
|
||||
# Log error
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Create a new patch for the patchman bridge")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# List the directories that will be used
|
||||
archiveDirectories = [ ]
|
||||
for dir in InstallShardDataDirectories:
|
||||
if not dir in archiveDirectories:
|
||||
archiveDirectories += [ dir ]
|
||||
for package in InstallShardDataFiles:
|
||||
dstDir = package[0]
|
||||
if not dstDir in archiveDirectories:
|
||||
archiveDirectories += [ dstDir ]
|
||||
for multiDir in InstallShardDataMultiDirectories:
|
||||
dstDir = multiDir[0]
|
||||
if not dstDir in archiveDirectories:
|
||||
archiveDirectories += [ dstDir ]
|
||||
for multiDir in InstallShardDataPrimitivesDirectories:
|
||||
dstDir = multiDir[0]
|
||||
if not dstDir in archiveDirectories:
|
||||
archiveDirectories += [ dstDir ]
|
||||
for execDir in InstallShardDataExecutables:
|
||||
dstDir = execDir[0]
|
||||
if not dstDir in archiveDirectories:
|
||||
archiveDirectories += [ dstDir ]
|
||||
|
||||
printLog(log, ">>> Archive new admin_install.tgz <<<")
|
||||
mkPath(log, PatchmanBridgeServerDirectory)
|
||||
adminInstallTgz = PatchmanBridgeServerDirectory + "/admin_install.tgz"
|
||||
patchmanExecutable = LinuxServiceExecutableDirectory + "/ryzom_patchman_service"
|
||||
if needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/bin", adminInstallTgz) or needUpdateDirNoSubdirFile(log, PatchmanCfgAdminDirectory + "/patchman", adminInstallTgz) or needUpdate(log, patchmanExecutable, adminInstallTgz):
|
||||
printLog(log, "WRITE " + adminInstallTgz)
|
||||
if os.path.isfile(adminInstallTgz):
|
||||
os.remove(adminInstallTgz)
|
||||
tar = tarfile.open(adminInstallTgz, "w:gz")
|
||||
tar.add(PatchmanCfgAdminDirectory + "/bin", arcname = "bin")
|
||||
tar.add(PatchmanCfgAdminDirectory + "/patchman", arcname = "patchman")
|
||||
tar.add(patchmanExecutable, arcname = "patchman/ryzom_patchman_service")
|
||||
tar.close()
|
||||
else:
|
||||
printLog(log, "SKIP " + adminInstallTgz)
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Create new version <<<")
|
||||
newVersion = 1
|
||||
vstr = str(newVersion).zfill(6)
|
||||
vpath = PatchmanBridgeServerDirectory + "/" + vstr
|
||||
while os.path.exists(vpath):
|
||||
newVersion = newVersion + 1
|
||||
vstr = str(newVersion).zfill(6)
|
||||
vpath = PatchmanBridgeServerDirectory + "/" + vstr
|
||||
mkPath(log, vpath)
|
||||
for dir in archiveDirectories:
|
||||
mkPath(log, ShardInstallDirectory + "/" + dir)
|
||||
tgzPath = vpath + "/" + dir + ".tgz"
|
||||
printLog(log, "WRITE " + tgzPath)
|
||||
tar = tarfile.open(tgzPath, "w:gz")
|
||||
tar.add(ShardInstallDirectory + "/" + dir, arcname = dir)
|
||||
tar.close()
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("c1_shard_patch.log"):
|
||||
os.remove("c1_shard_patch.log")
|
||||
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_patch.log")
|
||||
shutil.move("log.log", "c1_shard_patch.log")
|
@ -0,0 +1,7 @@
|
||||
title Ryzom Core: 3_install.py (EXECUTABLES)
|
||||
3_install.py -ipj common/gamedev common/exedll common/cfg
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
@ -1,31 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010 Winch Gate Property Limited
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
subprocess.call([ "python", "5_client_dev.py" ])
|
||||
|
@ -1,31 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file export_build_install.py
|
||||
# \brief Run all processes
|
||||
# \date 2009-02-18 15:28GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Run all processes
|
||||
#
|
||||
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010 Winch Gate Property Limited
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import shutil, subprocess
|
||||
|
||||
subprocess.call([ "python", "3_install.py" ])
|
||||
subprocess.call([ "python", "8_shard_data.py" ])
|
||||
|
@ -1,4 +1,9 @@
|
||||
title Ryzom Core: 1_export.py (INTERFACE)
|
||||
1_export.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
|
||||
title Ryzom Core: 2_build.py (INTERFACE)
|
||||
2_build.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
|
||||
title Ryzom Core: 3_install.py (INTERFACE)
|
||||
3_install.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
|
||||
5_client_dev.py
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: Ready
|
||||
|
@ -1,5 +1,11 @@
|
||||
1_export.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg
|
||||
2_build.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg
|
||||
3_install.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg
|
||||
5_client_dev.py
|
||||
8_shard_data.py
|
||||
title Ryzom Core: 1_export.py (LEVELDESIGN)
|
||||
1_export.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
|
||||
title Ryzom Core: 2_build.py (LEVELDESIGN)
|
||||
2_build.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
|
||||
title Ryzom Core: 3_install.py (LEVELDESIGN)
|
||||
3_install.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
|
||||
title Ryzom Core: b1_client_dev.py (LEVELDESIGN)
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py (LEVELDESIGN)
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
||||
|
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup sheets
|
||||
# \date 2014-02-19 22:39GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup shard sheets
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../../configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Setup shard sheets")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Setup source directories
|
||||
printLog(log, ">>> Setup source directories <<<")
|
||||
mkPath(log, LeveldesignDirectory)
|
||||
mkPath(log, LeveldesignDfnDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + VisualSlotTabBuildDirectory)
|
||||
mkPath(log, DataShardDirectory + "/mirror_sheets") # FIXME: Hardcoded path mirror_sheets
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SheetsShardBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + SheetsShardInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 1_export.py
|
||||
# \brief Export sheets
|
||||
# \date 2014-02-19 22:39GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Export shard sheets
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../../configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Export shard sheets")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 2_build.py
|
||||
# \brief Build sheets
|
||||
# \date 2014-02-19 22:39GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Build shard sheets
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2010-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../../configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Build sheets")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Find tools
|
||||
SheetsPackerShard = findTool(log, ToolDirectories, SheetsPackerShardTool, ToolSuffix)
|
||||
printLog(log, "")
|
||||
|
||||
# For each sheets directory
|
||||
printLog(log, ">>> Build shard sheets <<<")
|
||||
if SheetsPackerShard == "":
|
||||
toolLogFail(log, SheetsPackerShardTool, ToolSuffix)
|
||||
else:
|
||||
mkPath(log, LeveldesignDirectory)
|
||||
mkPath(log, LeveldesignDfnDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + VisualSlotTabBuildDirectory)
|
||||
mkPath(log, DataShardDirectory + "/mirror_sheets") # FIXME: Hardcoded path mirror_sheets
|
||||
mkPath(log, ExportBuildDirectory + "/" + SheetsShardBuildDirectory)
|
||||
# sheets_packer_shard <leveldesign> <dfn> <datasets> <tab> <build_packed_sheets>
|
||||
subprocess.call([ SheetsPackerShard, LeveldesignDirectory, LeveldesignDfnDirectory, DataShardDirectory + "/mirror_sheets", ExportBuildDirectory + "/" + VisualSlotTabBuildDirectory, ExportBuildDirectory + "/" + SheetsShardBuildDirectory ])
|
||||
printLog(log, "")
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \author Lukasz Kolasa (Maczuga)
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
os.chdir(TranslationDirectory)
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Clean string diff")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||
try:
|
||||
subprocess.call([ TranslationTools, "clean_string_diff" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("e1_clean_string_diff.log"):
|
||||
os.remove("e1_clean_string_diff.log")
|
||||
shutil.copy("log.log", "e1_clean_string_diff_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||
shutil.move("log.log", "e1_clean_string_diff.log")
|
||||
|
||||
raw_input("PRESS ANY KEY TO EXIT")
|
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \author Lukasz Kolasa (Maczuga)
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
os.chdir(TranslationDirectory)
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Clean words diff")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||
try:
|
||||
subprocess.call([ TranslationTools, "clean_words_diff" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("e2_clean_words_diff.log"):
|
||||
os.remove("e2_clean_words_diff.log")
|
||||
shutil.copy("log.log", "e2_clean_words_diff_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||
shutil.move("log.log", "e2_clean_words_diff.log")
|
||||
|
||||
raw_input("PRESS ANY KEY TO EXIT")
|
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \author Lukasz Kolasa (Maczuga)
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
os.chdir(TranslationDirectory)
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Clean clause diff")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||
try:
|
||||
subprocess.call([ TranslationTools, "clean_clause_diff" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("e3_clean_clause_diff.log"):
|
||||
os.remove("e3_clean_clause_diff.log")
|
||||
shutil.copy("log.log", "e3_clean_clause_diff_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||
shutil.move("log.log", "e3_clean_clause_diff.log")
|
||||
|
||||
raw_input("PRESS ANY KEY TO EXIT")
|
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \author Lukasz Kolasa (Maczuga)
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../configuration")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from tools import *
|
||||
os.chdir(TranslationDirectory)
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Clean phrase diff")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
TranslationTools = findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
|
||||
try:
|
||||
subprocess.call([ TranslationTools, "clean_phrase_diff" ])
|
||||
except Exception, e:
|
||||
printLog(log, "<" + processName + "> " + str(e))
|
||||
printLog(log, "")
|
||||
|
||||
|
||||
log.close()
|
||||
if os.path.isfile("e4_clean_phrase_diff.log"):
|
||||
os.remove("e4_clean_phrase_diff.log")
|
||||
shutil.copy("log.log", "e4_clean_phrase_diff_" + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + ".log")
|
||||
shutil.move("log.log", "e4_clean_phrase_diff.log")
|
||||
|
||||
raw_input("PRESS ANY KEY TO EXIT")
|
@ -0,0 +1,65 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// 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/>.
|
||||
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "user_agent.h"
|
||||
|
||||
#include "game_share/ryzom_version.h"
|
||||
|
||||
#ifdef HAVE_REVISION_H
|
||||
#include "revision.h"
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_X86_64)
|
||||
#define RYZOM_ARCH "x64"
|
||||
#elif defined(HAVE_X86)
|
||||
#define RYZOM_ARCH "x86"
|
||||
#elif defined(HAVE_ARM)
|
||||
#define RYZOM_ARCH "arm"
|
||||
#else
|
||||
#define RYZOM_ARCH "unknown"
|
||||
#endif
|
||||
#if defined(NL_OS_WINDOWS)
|
||||
#define RYZOM_SYSTEM "windows"
|
||||
#elif defined(NL_OS_MAC)
|
||||
#define RYZOM_SYSTEM "mac"
|
||||
#elif defined(NL_OS_UNIX)
|
||||
#define RYZOM_SYSTEM "unix"
|
||||
#else
|
||||
#define RYZOM_SYSTEM "unknown"
|
||||
#endif
|
||||
|
||||
std::string getUserAgent()
|
||||
{
|
||||
static std::string s_userAgent;
|
||||
|
||||
if (s_userAgent.empty())
|
||||
{
|
||||
char buffer[256];
|
||||
|
||||
#ifdef REVISION
|
||||
sprintf(buffer, "%s.%s-%s-%s", RYZOM_VERSION, REVISION, RYZOM_SYSTEM, RYZOM_ARCH);
|
||||
#else
|
||||
sprintf(buffer, "%s-%s-%s", RYZOM_VERSION, RYZOM_SYSTEM, RYZOM_ARCH);
|
||||
#endif
|
||||
|
||||
s_userAgent = buffer;
|
||||
}
|
||||
|
||||
return s_userAgent;
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// 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/>.
|
||||
|
||||
#ifndef CL_USER_AGENT_H
|
||||
#define CL_USER_AGENT_H
|
||||
|
||||
std::string getUserAgent();
|
||||
|
||||
#endif // CL_USER_AGENT_H
|
||||
|
||||
/* End of user_agent.h */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,184 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// 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/>.
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "send_chat.h"
|
||||
|
||||
/**
|
||||
* Send a chat line from system to a player that will be displayed as a normal chat sentence
|
||||
* Sentence will be formated using "<ServiceName:ServiceId>" as prefix of chat string
|
||||
*/
|
||||
void chatToPlayer(const NLMISC::CEntityId &id, const std::string &chatString)
|
||||
{
|
||||
NLNET::CMessage msgout("CHAT");
|
||||
bool talkToPlayer = true;
|
||||
msgout.serial(talkToPlayer, const_cast<NLMISC::CEntityId&>(id), const_cast<std::string&>(chatString));
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a chat line from system to a group of player that will be displayed as a normal chat sentence
|
||||
* Sentence will be formated using "<ServiceName:ServiceId>" as prefix of chat string
|
||||
*/
|
||||
void chatToGroup(const NLMISC::CEntityId &id, const std::string &chatString)
|
||||
{
|
||||
NLNET::CMessage msgout("CHAT");
|
||||
bool talkToPlayer = false;
|
||||
msgout.serial(talkToPlayer, const_cast<NLMISC::CEntityId&>(id), const_cast<std::string&>(chatString));
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a chat line from a bot (mainly NPC) in a chat channel (know as chat group).
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* phraseId is a phrase identifier in the phrase translation file.
|
||||
* param are the parameter of the phrase
|
||||
*/
|
||||
void npcChatParamToChannel(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, const std::string &phraseId, const std::vector<STRING_MANAGER::TParam> ¶ms)
|
||||
{
|
||||
NLNET::CMessage msgout("NPC_CHAT_PARAM");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(const_cast<std::string&>(phraseId));
|
||||
|
||||
uint32 size = (uint32)params.size();
|
||||
msgout.serial(size);
|
||||
// params.resize(size);
|
||||
for ( uint i = 0; i < size; i++ )
|
||||
{
|
||||
uint8 type8 = params[i].Type;
|
||||
msgout.serial( type8 );
|
||||
const_cast<STRING_MANAGER::TParam&>(params[i]).serialParam( false, msgout, (STRING_MANAGER::TParamType) type8 );
|
||||
}
|
||||
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a chat line from a bot (mainly NPC) in a chat channel (know as chat group).
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* phraseId is a phrase identifier in the phrase translation file.
|
||||
*/
|
||||
void npcChatToChannel(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, const std::string &phraseId)
|
||||
{
|
||||
NLNET::CMessage msgout("NPC_CHAT");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(const_cast<std::string&>(phraseId));
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a chat line from a bot (mainly NPC) in a chat channel (know as chat group).
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* phraseId is a phrase identifier in the phrase translation file.
|
||||
*/
|
||||
void npcChatToChannelEx(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, uint32 phraseId)
|
||||
{
|
||||
NLNET::CMessage msgout("NPC_CHAT_EX");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(phraseId);
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a chat line from a bot (mainly NPC) in a chat channel (know as chat group).
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* sentence is the sentence to be sent.
|
||||
*/
|
||||
void npcChatToChannelSentence(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, ucstring& sentence)
|
||||
{
|
||||
NLNET::CMessage msgout("NPC_CHAT_SENTENCE");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(sentence);
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Request to the DSS to send a chat line from a bot in a chat channel
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* sentenceId is the id of the sentence that must be sent by the DSS
|
||||
*/
|
||||
void forwardToDss(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, std::string& sentenceId,uint32 scenarioId)
|
||||
{
|
||||
nlinfo( ("forwarding to DSS : id: "+sentenceId).c_str());
|
||||
NLNET::CMessage msgout("translateAndForward");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(sentenceId);
|
||||
msgout.serial(scenarioId);
|
||||
NLNET::CUnifiedNetwork::getInstance()->send("DSS",msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Request to the DSS to send a chat line from a bot in a chat channel
|
||||
* Chat group can be constructed from CChatGroup class.
|
||||
* sentenceId is the id of the sentence that must be sent by the DSS
|
||||
*/
|
||||
void forwardToDssArg(const TDataSetRow &senderId, CChatGroup::TGroupType groupType, std::string& sentenceId,uint32 scenarioId,std::vector<float>& argValues)
|
||||
{
|
||||
nlinfo( ("forwarding to DSS : id: "+sentenceId).c_str());
|
||||
NLNET::CMessage msgout("translateAndForwardArg");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serialEnum(groupType);
|
||||
msgout.serial(sentenceId);
|
||||
msgout.serial(scenarioId);
|
||||
uint32 size=(uint32)argValues.size(),i=0;
|
||||
msgout.serial(size);
|
||||
for(;i<size;++i)
|
||||
{
|
||||
msgout.serial(argValues[i]);
|
||||
}
|
||||
NLNET::CUnifiedNetwork::getInstance()->send("DSS",msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a tell line from a bot (mainly NPC) to a player
|
||||
* phraseId is a phrase identifier in the phrase translation file.
|
||||
*/
|
||||
void npcTellToPlayer(const TDataSetRow &senderId, const TDataSetRow &receiverId, const std::string &phraseId, bool needSenderNpc)
|
||||
{
|
||||
NLNET::CMessage msgout;
|
||||
if ( needSenderNpc )
|
||||
{
|
||||
msgout.setType("NPC_TELL");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
}
|
||||
else
|
||||
{
|
||||
msgout.setType("GHOST_TELL");
|
||||
}
|
||||
msgout.serial(const_cast<TDataSetRow&>(receiverId));
|
||||
msgout.serial(const_cast<std::string&>(phraseId));
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a tell line from a bot (mainly NPC) to a player. Accept parametered strings
|
||||
* phraseId is a phrase id obtained through the string manager
|
||||
*/
|
||||
void npcTellToPlayerEx(const TDataSetRow &senderId, const TDataSetRow &receiverId, uint32 phraseId)
|
||||
{
|
||||
NLNET::CMessage msgout("NPC_TELL_EX");
|
||||
msgout.serial(const_cast<TDataSetRow&>(senderId));
|
||||
msgout.serial(const_cast<TDataSetRow&>(receiverId));
|
||||
msgout.serial(phraseId);
|
||||
sendMessageViaMirror("IOS", msgout);
|
||||
}
|
||||
|
||||
/* End of send_chat.cpp */
|
@ -0,0 +1,468 @@
|
||||
// shop category
|
||||
ShopCategory = {
|
||||
"no_bot_chat",
|
||||
|
||||
"missions",
|
||||
"guild_creator",
|
||||
"characteristics_seller",
|
||||
|
||||
"harvest_action",
|
||||
"craft_action",
|
||||
"magic_action",
|
||||
"fight_action",
|
||||
|
||||
// Limited to 20 differents level
|
||||
"LEVEL",
|
||||
"L1",
|
||||
"L10",
|
||||
"L20",
|
||||
"L50",
|
||||
"L100",
|
||||
"L150",
|
||||
"L200",
|
||||
"L250",
|
||||
"L300",
|
||||
"END_LEVEL",
|
||||
|
||||
// Quality of item, 5 quality from 'A' to 'E'
|
||||
"QUALITY",
|
||||
"Q20", // energy de 0 à 20
|
||||
"Q35", // energy de 21 à 35
|
||||
"Q50", // energy de 36 à 50
|
||||
"Q65", // energy de 51 à 65
|
||||
"Q80", // energy de 66 à 80 (et plus)
|
||||
"END_QUALITY",
|
||||
|
||||
// LEVEL must be defined before items
|
||||
"ITEM_CATEGORY",
|
||||
"DAGGER",
|
||||
"SWORD",
|
||||
"MACE",
|
||||
"AXE",
|
||||
"SPEAR",
|
||||
"STAFF",
|
||||
"TWO_HAND_SWORD",
|
||||
"TWO_HAND_AXE",
|
||||
"PIKE",
|
||||
"TWO_HAND_MACE",
|
||||
"AUTOLAUCH",
|
||||
"BOWRIFLE",
|
||||
"LAUNCHER",
|
||||
"PISTOL",
|
||||
"BOWPISTOL",
|
||||
"RIFLE",
|
||||
"AUTOLAUNCH_AMMO",
|
||||
"BOWRIFLE_AMMO",
|
||||
"LAUNCHER_AMMO",
|
||||
"PISTOL_AMMO",
|
||||
"BOWPISTOL_AMMO",
|
||||
"RIFLE_AMMO",
|
||||
"SHIELD",
|
||||
"BUCKLER",
|
||||
"LIGHT_BOOTS",
|
||||
"LIGHT_GLOVES",
|
||||
"LIGHT_PANTS",
|
||||
"LIGHT_SLEEVES",
|
||||
"LIGHT_VEST",
|
||||
"MEDIUM_BOOTS",
|
||||
"MEDIUM_GLOVES",
|
||||
"MEDIUM_PANTS",
|
||||
"MEDIUM_SLEEVES",
|
||||
"MEDIUM_VEST",
|
||||
"HEAVY_BOOTS",
|
||||
"HEAVY_GLOVES",
|
||||
"HEAVY_PANTS",
|
||||
"HEAVY_SLEEVES",
|
||||
"HEAVY_VEST",
|
||||
"HEAVY_HELMET",
|
||||
"ANKLET",
|
||||
"BRACELET",
|
||||
"DIADEM",
|
||||
"EARING",
|
||||
"PENDANT",
|
||||
"RING",
|
||||
"SHEARS",
|
||||
"ArmorTool",
|
||||
"AmmoTool",
|
||||
"MeleeWeaponTool",
|
||||
"RangeWeaponTool",
|
||||
"JewelryTool",
|
||||
"ToolMaker",
|
||||
"MEKTOUB_PACKER_TICKET",
|
||||
"MEKTOUB_MOUNT_TICKET",
|
||||
"MAGICIAN_STAFF",
|
||||
"HAIR_MALE",
|
||||
"HAIRCOLOR_MALE",
|
||||
"TATOO_MALE",
|
||||
"HAIR_FEMALE",
|
||||
"HAIRCOLOR_FEMALE",
|
||||
"TATOO_FEMALE",
|
||||
"FOOD",
|
||||
"SERVICE_STABLE",
|
||||
"JOB_ELEMENT",
|
||||
|
||||
|
||||
|
||||
"END_ITEM_CATEGORY",
|
||||
|
||||
"RM_ITEM_PART",
|
||||
"MPL", //A (Blade)
|
||||
"MPH", //B MpH (Hammer)
|
||||
"MPP", //C MpP (Point)
|
||||
"MPM", //D MpM (Shaft)
|
||||
"MPG", //E MpG (Grip)
|
||||
"MPC", //F MpC (Counterweight)
|
||||
"MPGA", //G MpGA (Trigger)
|
||||
"MPPE", //H MpPE (Firing pin)
|
||||
"MPCA", //I MpCA (Barrel)
|
||||
"MPE", //J MpE (Explosive)
|
||||
"MPEN", //K MpEN (Ammo jacket)
|
||||
"MPPR", //L MpPR (Ammo bullet)
|
||||
"MPCR", //M MpCR (Armor shell)
|
||||
"MPRI", //N MpRI (Armor interior coating)
|
||||
"MPRE", //O MpRE (Armor interieur stuffing)
|
||||
"MPAT", //P MpAT (Armor clip)
|
||||
"MPSU", //Q MpSU (Jewel stone support)
|
||||
"MPED", //R MpED (Jewel stone)
|
||||
"MPBT", //S MpBT (Blacksmith tool)
|
||||
"MPPES", //T MpPES (Pestle tool)
|
||||
"MPSH", //U MpSH (Sharpener tool)
|
||||
"MPTK", //V MpTK (Tunneling Knife)
|
||||
"MPJH", //W MpJH (Jewelry hammer)
|
||||
"MPCF", //X MpCF (Campfire)
|
||||
"MPVE", //Y MpVE (Clothes)
|
||||
"MPMF", //Z MpMF (Magic Focus)
|
||||
"END_RM_ITEM_PART",
|
||||
|
||||
"TELEPORT",
|
||||
"KAMI_TP",
|
||||
"KARAVAN_TP",
|
||||
"END_TELEPORT",
|
||||
|
||||
"ECOSYSTEM",
|
||||
"CommonEcosystem",
|
||||
"Desert",
|
||||
"Forest",
|
||||
"Lacustre",
|
||||
"Jungle",
|
||||
"Goo",
|
||||
"PrimaryRoot",
|
||||
"END_ECOSYSTEM",
|
||||
|
||||
"ORIGIN",
|
||||
"Common",
|
||||
"Fyros",
|
||||
"Matis",
|
||||
"Tryker",
|
||||
"Zorai",
|
||||
"Karavan",
|
||||
"Tribe",
|
||||
"Refugee",
|
||||
"END_ORIGIN",
|
||||
|
||||
"TOOLS_TYPE",
|
||||
"CRAFTING_TOOL",
|
||||
"HARVEST_TOOL",
|
||||
"TAMING_TOOL",
|
||||
"TRAINING_TOOL",
|
||||
"END_TOOLS_TYPE",
|
||||
|
||||
"SHOP_TYPE",
|
||||
"STATIC_SHOP", // Sell NPC Items
|
||||
"DYNAMIC_SHOP", // Sell Player character Items
|
||||
"STATIC_DYNAMIC_SHOP", // Sell NPC & Player character Items
|
||||
"END_SHOP_TYPE",
|
||||
};
|
||||
|
||||
// friendly versions of shop names
|
||||
ShopNameAliases=
|
||||
{
|
||||
"MOUNT: unknown for this time",
|
||||
|
||||
//definition of item group aliases
|
||||
//armor groups
|
||||
"LARMOR: LIGHT_BOOTS: LIGHT_GLOVES: LIGHT_PANTS: LIGHT_SLEEVES: LIGHT_VEST",
|
||||
"MARMOR: MEDIUM_BOOTS: MEDIUM_GLOVES: MEDIUM_PANTS: MEDIUM_SLEEVES: MEDIUM_VEST",
|
||||
"HARMOR: HEAVY_BOOTS: HEAVY_GLOVES: HEAVY_PANTS: HEAVY_SLEEVES: HEAVY_VEST: HEAVY_HELMET",
|
||||
"LARMORSHIELD: LIGHT_BOOTS: LIGHT_GLOVES: LIGHT_PANTS: LIGHT_SLEEVES: LIGHT_VEST: BUCKLER",
|
||||
"MARMORSHIELD: MEDIUM_BOOTS: MEDIUM_GLOVES: MEDIUM_PANTS: MEDIUM_SLEEVES: MEDIUM_VEST: BUCKLER: SHIELD",
|
||||
"HARMORSHIELD: HEAVY_BOOTS: HEAVY_GLOVES: HEAVY_PANTS: HEAVY_SLEEVES: HEAVY_VEST: HEAVY_HELMET: BUCKLER: SHIELD",
|
||||
|
||||
//weapon groups
|
||||
"SHIELDS: SHIELD: BUCKLER",
|
||||
"MELEE_WEAPON: DAGGER: SWORD: MACE: AXE: SPEAR: STAFF: TWO_HAND_SWORD: TWO_HAND_AXE: PIKE: TWO_HAND_MACE: MAGICIAN_STAFF:",
|
||||
"MELEE: SHIELDS: MELEE_WEAPON",
|
||||
"MELEE_WEAPON_1H: DAGGER: SWORD: MACE: AXE: SPEAR: STAFF",
|
||||
"MELEE_WEAPON_2H: TWO_HAND_SWORD: TWO_HAND_AXE: PIKE: TWO_HAND_MACE: MAGICIAN_STAFF",
|
||||
"NEWBIELAND_WEAPON_MATIS: DAGGER: SWORD: SPEAR : MAGICIAN_STAFF",
|
||||
"NEWBIELAND_WEAPON_ZORAI: DAGGER: STAFF: MACE : MAGICIAN_STAFF",
|
||||
"NEWBIELAND_WEAPON_FYROS: DAGGER: AXE: MACE : MAGICIAN_STAFF",
|
||||
"NEWBIELAND_WEAPON_TRYKER: DAGGER: STAFF: SWORD : MAGICIAN_STAFF",
|
||||
"MELEE_WEAPON_NEWBIELAND_ALL: DAGGER: SWORD: MACE: AXE", //NEW newbieland
|
||||
"MELEE_WEAPON_2H_NEWBIELAND_ALL: TWO_HAND_SWORD: TWO_HAND_AXE: PIKE: TWO_HAND_MACE: MAGICIAN_STAFF", //NEW Newbieland
|
||||
"AMMO: BOWRIFLE_AMMO: PISTOL_AMMO: BOWPISTOL_AMMO: RIFLE_AMMO: AUTOLAUNCH_AMMO: LAUNCHER_AMMO",
|
||||
"RANGE_WEAPON: BOWRIFLE: PISTOL: BOWPISTOL: RIFLE: AUTOLAUCH: LAUNCHER",
|
||||
"RANGE: RANGE_WEAPON: AMMO",
|
||||
"RANGE_BOW: RANGE_WEAPON: AMMO",
|
||||
"RANGE_PISTOLRIFLE: RANGE_WEAPON: AMMO",
|
||||
|
||||
//tool groups
|
||||
"CRAFTING_TOOL: ArmorTool: AmmoTool: MeleeWeaponTool: RangeWeaponTool: JewelryTool: ToolMaker",
|
||||
"HARVEST_TOOL: SHEARS",
|
||||
"TOOL: CRAFTING_TOOL: HARVEST_TOOL",
|
||||
"TOOLS_NOOB : ArmorTool: AmmoTool: MeleeWeaponTool: RangeWeaponTool: JewelryTool : HARVEST_TOOL", //NEW Newbieland
|
||||
|
||||
//cosmetic groups
|
||||
"HAIRDRESSING_MALE: HAIR_MALE: HAIRCOLOR_MALE",
|
||||
"HAIRDRESSING_FEMALE: HAIR_FEMALE: HAIRCOLOR_FEMALE",
|
||||
|
||||
|
||||
//jewel group
|
||||
"JEWEL: ANKLET: BRACELET: DIADEM: EARING: PENDANT: RING",
|
||||
//end of definition of item group aliases
|
||||
|
||||
//definition of quality alias
|
||||
"QUALITY_A: Q20",
|
||||
"QUALITY_B: Q35",
|
||||
"QUALITY_C: Q50",
|
||||
"QUALITY_D: Q65",
|
||||
"QUALITY_E: Q80",
|
||||
|
||||
//definition of level level aliases
|
||||
//newbieland
|
||||
"REFUGEE_LEVEL: L1: QUALITY_A",
|
||||
"NEWBIELAND_LEVEL: L10: L20: L50: QUALITY_A",
|
||||
"RM_NEWBIELAND_LEVEL: L10: L20: L50: QUALITY_A", //only for raw material
|
||||
|
||||
|
||||
//villages
|
||||
"VILLAGE_LOW_LEVEL: L10: L20: L50: L100: L150: QUALITY_A",
|
||||
"VILLAGE_MED_LEVEL: L10: L20: L50: L100: L150: L200: QUALITY_A",
|
||||
"VILLAGE_HIGH_LEVEL: L10: L20: L50: L100: L150: L200: L250: L300: QUALITY_A",
|
||||
"VILLAGE_LEVEL: L10: L20: L50: QUALITY_A",
|
||||
"RM_VILLAGE_LEVEL: L10: L20: L50: QUALITY_A", //only for raw material
|
||||
"RM_VILLAGE_HIGH_LEVEL: L10: L20: L50: L100: L150: L200: L250: L300: QUALITY_A", //only for raw material
|
||||
|
||||
//town
|
||||
"TOWN_LOW_LEVEL: L10: L20: L50: QUALITY_A",
|
||||
"TOWN_HIGH_LEVEL: L10: L20: L50: L100: QUALITY_A",
|
||||
"RM_TOWN_LEVEL: L10: L20: L50: L100: L150: QUALITY_A", //only for raw material
|
||||
|
||||
//tribe
|
||||
"TRIBE_LEVEL: L10: L20: L50: L100: L150: L200: L250: L300: QUALITY_A",
|
||||
|
||||
//end of definition of level aliases
|
||||
|
||||
//definition of regional aliases
|
||||
//armor
|
||||
"MATIS_LARMOR: Matis: LARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_MARMOR: Matis: MARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_HARMOR: Matis: HARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
"TRYKER_LARMOR: Tryker: LARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_MARMOR: Tryker: MARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_HARMOR: Tryker: HARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
"ZORAI_LARMOR: Zorai: LARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_MARMOR: Zorai: MARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_HARMOR: Zorai: HARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_LARMOR: Fyros: LARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_MARMOR: Fyros: MARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_HARMOR: Fyros: HARMORSHIELD: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
"NEWBIELAND_LARMOR_MATIS: NEWBIELAND_LEVEL: Matis: LARMORSHIELD: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_LARMOR_ZORAI: NEWBIELAND_LEVEL: Zorai: LARMORSHIELD: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_LARMOR_FYROS: NEWBIELAND_LEVEL: Fyros: LARMORSHIELD: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_LARMOR_TRYKER: NEWBIELAND_LEVEL: Tryker: LARMORSHIELD: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_MARMOR: NEWBIELAND_LEVEL: MARMORSHIELD: DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_HARMOR: NEWBIELAND_LEVEL: HARMORSHIELD: DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_LARMOR_ALL : NEWBIELAND_LEVEL: LARMOR: DYNAMIC_SHOP", //NEW newbieland
|
||||
"NEWBIELAND_MARMOR_ALL : NEWBIELAND_LEVEL: MARMOR: DYNAMIC_SHOP", //NEW newbieland
|
||||
|
||||
//weapon
|
||||
"MATIS_MELEE: Common : Matis: MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_MELEE: Common : Fyros: MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_MELEE: Common : Zorai: MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_MELEE: Common : Tryker: MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_MELEE_WEAPON_1H: Common : Matis : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_MELEE_WEAPON_1H: Common : Fyros : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_MELEE_WEAPON_1H: Common : Zorai : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_MELEE_WEAPON_1H: Common : Tryker : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_MELEE_WEAPON_2H: Common : Matis : MELEE_WEAPON_2H: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_MELEE_WEAPON_2H: Common : Fyros : MELEE_WEAPON_2H: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_MELEE_WEAPON_2H: Common : Zorai : MELEE_WEAPON_2H: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_MELEE_WEAPON_2H: Common : Tryker : MELEE_WEAPON_2H: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_NEWBIELAND_WEAPON_MATIS: NEWBIELAND_LEVEL: Common : Matis : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"FYROS_NEWBIELAND_WEAPON_FYROS: NEWBIELAND_LEVEL: Common : Fyros : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"ZORAI_NEWBIELAND_WEAPON_ZORAI: NEWBIELAND_LEVEL: Common : Zorai : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"TRYKER_NEWBIELAND_WEAPON_TRYKER: NEWBIELAND_LEVEL: Common : Tryker : MELEE_WEAPON_1H: STATIC_DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_MELEE_WEAPON_2H: NEWBIELAND_LEVEL: MELEE_WEAPON_2H: DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_RANGE_WEAPON: NEWBIELAND_LEVEL: RANGE: DYNAMIC_SHOP", //only for newbieland
|
||||
"NEWBIELAND_WEAPON_ALL: NEWBIELAND_LEVEL: MELEE_WEAPON_NEWBIELAND_ALL: STATIC_DYNAMIC_SHOP", //NEW newbieland
|
||||
"MELEE_WEAPON_2H_NEWBIELAND: NEWBIELAND_LEVEL: MELEE_WEAPON_2H_NEWBIELAND_ALL: DYNAMIC_SHOP", //NEW newbieland
|
||||
|
||||
|
||||
"MATIS_RANGE: Common : Matis : RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_RANGE: Common : Fyros : RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_RANGE: Common : Zorai : RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_RANGE: Common : Tryker : RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_RANGE_BOW: Common : Matis : RANGE_BOW: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_RANGE_BOW: Common : Fyros : RANGE_BOW: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_RANGE_BOW: Common : Zorai : RANGE_BOW: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_RANGE_BOW: Common : Tryker : RANGE_BOW: STATIC_DYNAMIC_SHOP",
|
||||
"MATIS_RANGE_PISTOLRIFLE: Common : Matis : RANGE_PISTOLRIFLE: STATIC_DYNAMIC_SHOP",
|
||||
"FYROS_RANGE_PISTOLRIFLE: Common : Fyros : RANGE_PISTOLRIFLE: STATIC_DYNAMIC_SHOP",
|
||||
"ZORAI_RANGE_PISTOLRIFLE: Common : Zorai : RANGE_PISTOLRIFLE: STATIC_DYNAMIC_SHOP",
|
||||
"TRYKER_RANGE_PISTOLRIFLE: Common : Tryker : RANGE_PISTOLRIFLE: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
//tool
|
||||
"COMMON_TOOL: Common : TOOL: STATIC_DYNAMIC_SHOP",
|
||||
"NEWBIELAND_TOOL : Common : TOOLS_NOOB: STATIC_DYNAMIC_SHOP", // NEW Newbieland
|
||||
|
||||
//job elements
|
||||
"COMMON_JOB: Common : JOB_ELEMENT: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
//jewel
|
||||
"MATIS_JEWEL: Matis: JEWEL: DYNAMIC_SHOP",
|
||||
"TRYKER_JEWEL: Tryker: JEWEL: DYNAMIC_SHOP",
|
||||
"ZORAI_JEWEL: Zorai: JEWEL: DYNAMIC_SHOP",
|
||||
"FYROS_JEWEL: Fyros: JEWEL: DYNAMIC_SHOP",
|
||||
"MATIS_NEWBIELAND_JEWEL:MATIS_JEWEL:NEWBIELAND_LEVEL",
|
||||
"TRYKER_NEWBIELAND_JEWEL:TRYKER_JEWEL:NEWBIELAND_LEVEL",
|
||||
"ZORAI_NEWBIELAND_JEWEL:ZORAI_JEWEL:NEWBIELAND_LEVEL",
|
||||
"FYROS_NEWBIELAND_JEWEL:FYROS_JEWEL:NEWBIELAND_LEVEL",
|
||||
"NEWBIELAND_JEWEL_ALL: NEWBIELAND_LEVEL: JEWEL: DYNAMIC_SHOP", //NEW Newbieland
|
||||
|
||||
//cosmetic
|
||||
"MATIS_HAIRDRESSING_MALE: Matis: HAIRDRESSING_MALE: STATIC_SHOP",
|
||||
"MATIS_HAIRDRESSING_FEMALE: Matis: HAIRDRESSING_FEMALE: STATIC_SHOP",
|
||||
"MATIS_TATOO_MALE: Matis: TATOO_MALE: STATIC_SHOP",
|
||||
"MATIS_TATOO_FEMALE: Matis: TATOO_FEMALE: STATIC_SHOP",
|
||||
"TRYKER_HAIRDRESSING_MALE: Tryker: HAIRDRESSING_MALE: STATIC_SHOP",
|
||||
"TRYKER_HAIRDRESSING_FEMALE: Tryker: HAIRDRESSING_FEMALE: STATIC_SHOP",
|
||||
"TRYKER_TATOO_MALE: Tryker: TATOO_MALE: STATIC_SHOP",
|
||||
"TRYKER_TATOO_FEMALE: Tryker: TATOO_FEMALE: STATIC_SHOP",
|
||||
"ZORAI_HAIRDRESSING_MALE: Zorai: HAIRDRESSING_MALE: STATIC_SHOP",
|
||||
"ZORAI_HAIRDRESSING_FEMALE: Zorai: HAIRDRESSING_FEMALE: STATIC_SHOP",
|
||||
"ZORAI_TATOO_MALE: Zorai: TATOO_MALE: STATIC_SHOP",
|
||||
"ZORAI_TATOO_FEMALE: Zorai: TATOO_FEMALE: STATIC_SHOP",
|
||||
"FYROS_HAIRDRESSING_MALE: Fyros: HAIRDRESSING_MALE: STATIC_SHOP",
|
||||
"FYROS_HAIRDRESSING_FEMALE: Fyros: HAIRDRESSING_FEMALE: STATIC_SHOP",
|
||||
"FYROS_TATOO_MALE: Fyros: TATOO_MALE: STATIC_SHOP",
|
||||
"FYROS_TATOO_FEMALE: Fyros: TATOO_FEMALE: STATIC_SHOP",
|
||||
|
||||
|
||||
|
||||
// Item part per item family
|
||||
"RM_ITEM_PART_MELEE: MPL: MPH: MPP: MPM: MPG: MPC: MPMF: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_RANGE: MPGA: MPPE: MPCA: MPM: MPE: MPEN: MPPR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_ARMOR: MPCR: MPRI: MPRE: MPAT: MPVE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_JEWEL: MPSU: MPED: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_MAGIC_FOCUS: MPMF: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_CLOTH: MPVE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_ITEM_PART_TOOLS: MPBT: MPPES: MPSH: MPTK: MPJH: MPCF: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
// Item part per craftgroup
|
||||
"RM_CRAFTGROUP_AC: MPL: MPP",
|
||||
"RM_CRAFTGROUP_BF: MPH: MPC",
|
||||
"RM_CRAFTGROUP_RZ: MPED: MPMF",
|
||||
"RM_CRAFTGROUP_IM: MPCA: MPCR",
|
||||
"RM_CRAFTGROUP_HP: MPPE: MPAT",
|
||||
"RM_CRAFTGROUP_DL: MPM: MPPR",
|
||||
"RM_CRAFTGROUP_GQ: MPGA: MPSU",
|
||||
"RM_CRAFTGROUP_EY: MPG: MPVE",
|
||||
"RM_CRAFTGROUP_KN: MPEN: MPRI",
|
||||
"RM_CRAFTGROUP_JO: MPE: MPRE",
|
||||
|
||||
// All Item parts sold by merchants
|
||||
"RM_ITEM_PART_SOLD: MPL: MPP: MPH: MPC: MPED: MPMF: MPCA: MPCR: MPPE: MPAT: MPM: MPPR: MPGA: MPSU: MPG: MPVE: MPEN: MPRI: MPE: MPRE: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
|
||||
//forest ecosystem
|
||||
"RM_FOREST_0: Forest: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_1: Forest: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_2: Forest: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_3: Forest: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_4: Forest: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_5: Forest: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_FOREST_6: Forest: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//jungle ecosystem
|
||||
"RM_JUNGLE_0: Jungle: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_1: Jungle: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_2: Jungle: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_3: Jungle: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_4: Jungle: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_5: Jungle: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_JUNGLE_6: Jungle: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//desert ecosystem
|
||||
"RM_DESERT_0: Desert: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_1: Desert: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_2: Desert: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_3: Desert: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_4: Desert: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_5: Desert: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_DESERT_6: Desert: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//lake ecosystem
|
||||
"RM_LAKE_0: Lacustre: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_1: Lacustre: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_2: Lacustre: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_3: Lacustre: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_4: Lacustre: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_5: Lacustre: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_LAKE_6: Lacustre: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//goo ecosystem
|
||||
"RM_GOO_0: Goo: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_1: Goo: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_2: Goo: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_3: Goo: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_4: Goo: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_5: Goo: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_GOO_6: Goo: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//primary root ecosystem
|
||||
"RM_PRIMROOT_0: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_MELEE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_1: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_RANGE: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_2: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_ARMOR: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_3: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_JEWEL: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_4: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_MAGIC_FOCUS: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_5: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_CLOTH: STATIC_DYNAMIC_SHOP",
|
||||
"RM_PRIMROOT_6: PrimaryRoot: CommonEcosystem: RM_ITEM_PART_TOOLS: STATIC_DYNAMIC_SHOP", //not used in craft at this time
|
||||
|
||||
//Stable boys items:
|
||||
"STABLE_BOY_MATIS: Common: Matis: SERVICE_STABLE: FOOD: MEKTOUB_PACKER_TICKET: MEKTOUB_MOUNT_TICKET: STATIC_DYNAMIC_SHOP",
|
||||
"STABLE_BOY_ZORAI: Common: Zorai: SERVICE_STABLE: FOOD: MEKTOUB_PACKER_TICKET: MEKTOUB_MOUNT_TICKET: STATIC_DYNAMIC_SHOP",
|
||||
"STABLE_BOY_FYROS: Common: Fyros: SERVICE_STABLE: FOOD: MEKTOUB_PACKER_TICKET: MEKTOUB_MOUNT_TICKET: STATIC_DYNAMIC_SHOP",
|
||||
"STABLE_BOY_TRYKER: Common: Tryker: SERVICE_STABLE: FOOD: MEKTOUB_PACKER_TICKET: MEKTOUB_MOUNT_TICKET: STATIC_DYNAMIC_SHOP",
|
||||
|
||||
//end of definition of regional aliases
|
||||
|
||||
|
||||
"KAMI_TP_FOREST: KAMI_TP: Forest",
|
||||
"KAMI_TP_JUNGLE: KAMI_TP: Jungle",
|
||||
"KARAVAN_TP_FOREST: KARAVAN_TP: Forest",
|
||||
"KARAVAN_TP_JUNGLE: KARAVAN_TP: Jungle",
|
||||
|
||||
"FYROS_HARVEST_ACTION: Common : Fyros: harvest_action",
|
||||
"FYROS_CRAFT_ACTION: Common : Fyros: craft_action",
|
||||
"FYROS_MAGIC_ACTION: Common : Fyros: magic_action",
|
||||
"FYROS_FIGHT_ACTION: Common : Fyros: fight_action",
|
||||
|
||||
"MATIS_HARVEST_ACTION: Common : Matis: harvest_action",
|
||||
"MATIS_CRAFT_ACTION: Common : Matis: craft_action",
|
||||
"MATIS_MAGIC_ACTION: Common : Matis: magic_action",
|
||||
"MATIS_FIGHT_ACTION: Common : Matis: fight_action",
|
||||
|
||||
"TRYKER_HARVEST_ACTION: Common: Tryker: harvest_action",
|
||||
"TRYKER_CRAFT_ACTION: Common :Tryker: craft_action",
|
||||
"TRYKER_MAGIC_ACTION: Common :Tryker: magic_action",
|
||||
"TRYKER_FIGHT_ACTION: Common :Tryker: fight_action",
|
||||
|
||||
"ZORAI_HARVEST_ACTION: Common : Zorai: harvest_action",
|
||||
"ZORAI_CRAFT_ACTION: Common :Zorai: craft_action",
|
||||
"ZORAI_MAGIC_ACTION: Common :Zorai: magic_action",
|
||||
"ZORAI_FIGHT_ACTION: Common :Zorai: fight_action",
|
||||
};
|
@ -0,0 +1,741 @@
|
||||
<?xml version="1.0"?>
|
||||
<FORM Revision="$Revision: 1.2 $" State="modified">
|
||||
<STRUCT>
|
||||
<ARRAY Name="properties">
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Civilisation"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Guild"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="FameMemory"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_0"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_1"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_2"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_3"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_4"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_5"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_6"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_7"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_8"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_9"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_10"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_11"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_12"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_13"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_14"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_15"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_16"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_17"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_18"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_19"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_20"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_21"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_22"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_23"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_24"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_25"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_26"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_27"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_28"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_29"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_30"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_31"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_32"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_33"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_34"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_35"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_36"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_37"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_38"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_39"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_40"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_41"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_42"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_43"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_44"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_45"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_46"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_47"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_48"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_49"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_50"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_51"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_52"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_53"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_54"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_55"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_56"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_57"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_58"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_59"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_60"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_61"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_62"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_63"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_64"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_65"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_66"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_67"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_68"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_69"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_70"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_71"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_72"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_73"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_74"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_75"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_76"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_77"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_78"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_79"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_80"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_81"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_82"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_83"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_84"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_85"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_86"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_87"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_88"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_89"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_90"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_91"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_92"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_93"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_94"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_95"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_96"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_97"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_98"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fame_99"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
</ARRAY>
|
||||
<ATOM Name="max number of rows or entities" Value="1000"/>
|
||||
<ARRAY Name="entity types">
|
||||
<ATOM Value="player"/>
|
||||
<ATOM Value="guild"/>
|
||||
<ATOM Value="civilisation"/>
|
||||
<ATOM Value="fame_memory"/>
|
||||
</ARRAY>
|
||||
</STRUCT>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<LOG>Fri Dec 12 14:17:11 2003 (saffray) .entity types[1] = 13
|
||||
Fri Dec 12 14:17:11 2003 (saffray) .entity types[2] = 14</LOG>
|
||||
</FORM>
|
@ -0,0 +1,365 @@
|
||||
<?xml version="1.0"?>
|
||||
<FORM Revision="$Revision: 1.37 $" State="modified">
|
||||
<STRUCT>
|
||||
<ARRAY Name="properties">
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Sheet"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="10"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="SheetServer"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="10"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="X"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Y"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Z"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Theta"/>
|
||||
<ATOM Name="type" Value="float"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="AIInstance"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Mode"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="8"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Behaviour"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="5"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="NameIndex"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="2"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Target"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="2"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="VisualPropertyA"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="VisualPropertyB"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="VisualPropertyC"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="EntityMounted"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="RiderEntity"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="TickPos"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="LocalX"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="4"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="LocalY"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="4"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="LocalZ"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="4"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="ContextualProperty"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="AvailableImpulseBitSize"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Cell"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="VisionCounter"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CombatState"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CurrentHitPoints"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="MaxHitPoints"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="BestRole"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="BestRoleLevel"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CurrentRunSpeed"/>
|
||||
<ATOM Name="type" Value="float"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CurrentWalkSpeed"/>
|
||||
<ATOM Name="type" Value="float"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Stunned"/>
|
||||
<ATOM Name="type" Value="boolean"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="WhoSeesMe"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Bars"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="TeamId"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="ActionFlags"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="TargetList"/>
|
||||
<ATOM Name="type" Value="sint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
<ATOM Name="is a list" Value="true"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="VisualFX"/>
|
||||
<ATOM Name="type" Value="sint16"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="GuildSymbol"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="GuildNameId"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="EventFactionId"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="PvpMode"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="PvpClan"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Fuel"/>
|
||||
<ATOM Name="type" Value="boolean"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="InOutpostZoneAlias"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="InOutpostZoneSide"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="true"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="OwnerPeople"/>
|
||||
<ATOM Name="type" Value="uint8"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="3"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="OutpostInfos"/>
|
||||
<ATOM Name="type" Value="uint16"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="NPCAlias"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
</ARRAY>
|
||||
<ATOM Name="max number of rows or entities" Value="15000"/>
|
||||
<ARRAY Name="entity types">
|
||||
<ATOM Value="player"/>
|
||||
<ATOM Value="object"/>
|
||||
<ATOM Value="npc"/>
|
||||
<ATOM Value="creature"/>
|
||||
<ATOM Value="forageSource"/>
|
||||
<ATOM Value="fx_entity"/>
|
||||
</ARRAY>
|
||||
</STRUCT>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<LOG></LOG>
|
||||
</FORM>
|
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0"?>
|
||||
<FORM Revision="$Revision: 1.1 $" State="modified">
|
||||
<STRUCT>
|
||||
<ARRAY Name="properties">
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="ItemId"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CreatureSheet"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="OwnerIndex"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="CreatureIndex"/>
|
||||
<ATOM Name="type" Value="uint32"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="name" Value="Order"/>
|
||||
<ATOM Name="type" Value="uint64"/>
|
||||
<ATOM Name="persistant" Value="false"/>
|
||||
<ATOM Name="mirror" Value="true"/>
|
||||
<ATOM Name="weight" Value="1"/>
|
||||
</STRUCT>
|
||||
</ARRAY>
|
||||
<ATOM Name="max number of rows or entities" Value="1"/>
|
||||
<ARRAY Name="entity types">
|
||||
<ATOM Value="4"/>
|
||||
</ARRAY>
|
||||
</STRUCT>
|
||||
<LOG></LOG>
|
||||
</FORM>
|
@ -1,196 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<FORM Revision="$Revision: 1.4 $" State="modified">
|
||||
<STRUCT>
|
||||
<ARRAY Name="PropertyArray">
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="0"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="PropertyName" Value="X"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="1"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="PropertyName" Value="Y"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="2"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="PropertyName" Value="Z"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="3"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="PropertyName" Value="Theta"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
<ATOM Name="DistThreshold" Value="50000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="4"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="Sheet"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint32"/>
|
||||
<ATOM Name="DistThreshold" Value="500000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="5"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="Behaviour"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint32"/>
|
||||
<ATOM Name="DistThreshold" Value="60000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="6"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="NameIndex"/>
|
||||
<ATOM Name="ServiceOwner" Value="IOS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint32"/>
|
||||
<ATOM Name="DistThreshold" Value="25000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="7"/>
|
||||
<ATOM Name="NbBits" Value="64"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="Target"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="Sid"/>
|
||||
<ATOM Name="DistThreshold" Value="20000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="8"/>
|
||||
<ATOM Name="NbBits" Value="8"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="Mode"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint8"/>
|
||||
<ATOM Name="DistThreshold" Value="500000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="9"/>
|
||||
<ATOM Name="NbBits" Value="64"/>
|
||||
<ATOM Name="PropertyName" Value="VisualPropertyA"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint64"/>
|
||||
<ATOM Name="DistThreshold" Value="500000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="10"/>
|
||||
<ATOM Name="NbBits" Value="40"/>
|
||||
<ATOM Name="PropertyName" Value="VisualPropertyB"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint64"/>
|
||||
<ATOM Name="DistThreshold" Value="20000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="11"/>
|
||||
<ATOM Name="NbBits" Value="44"/>
|
||||
<ATOM Name="PropertyName" Value="VisualPropertyC"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint64"/>
|
||||
<ATOM Name="DistThreshold" Value="10000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="12"/>
|
||||
<ATOM Name="NbBits" Value="64"/>
|
||||
<ATOM Name="PropertyName" Value="EntityMounted"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="Sid"/>
|
||||
<ATOM Name="DistThreshold" Value="500000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="13"/>
|
||||
<ATOM Name="NbBits" Value="64"/>
|
||||
<ATOM Name="PropertyName" Value="RiderEntity"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="Sid"/>
|
||||
<ATOM Name="DistThreshold" Value="500000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="14"/>
|
||||
<ATOM Name="NbBits" Value="16"/>
|
||||
<ATOM Name="PropertyName" Value="ContextualProperty"/>
|
||||
<ATOM Name="ServiceOwner" Value="EGS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint16"/>
|
||||
<ATOM Name="DistThreshold" Value="100000"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="-1"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="false"/>
|
||||
<ATOM Name="PropertyName" Value="TickPos"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="uint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="-3"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="Union" Value="true"/>
|
||||
<ATOM Name="Shift" Value="32"/>
|
||||
<ATOM Name="PropertyName" Value="LocalX"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="-4"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="Union" Value="true"/>
|
||||
<ATOM Name="Shift" Value="32"/>
|
||||
<ATOM Name="PropertyName" Value="LocalY"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
<STRUCT>
|
||||
<ATOM Name="PropertyId" Value="-5"/>
|
||||
<ATOM Name="NbBits" Value="32"/>
|
||||
<ATOM Name="Continuous" Value="true"/>
|
||||
<ATOM Name="Union" Value="true"/>
|
||||
<ATOM Name="Shift" Value="32"/>
|
||||
<ATOM Name="PropertyName" Value="LocalZ"/>
|
||||
<ATOM Name="ServiceOwner" Value="GPMS"/>
|
||||
<ATOM Name="UpdateFrequency" Value="1"/>
|
||||
<ATOM Name="PropertyType" Value="sint32"/>
|
||||
</STRUCT>
|
||||
</ARRAY>
|
||||
</STRUCT>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<STRUCT/>
|
||||
<LOG>Fri Jan 24 14:13:14 2003 (saffray) formName Resized = 19
|
||||
Fri Jan 24 14:17:14 2003 (saffray) formName Deleted = </LOG>
|
||||
</FORM>
|
@ -0,0 +1,16 @@
|
||||
|
||||
shard_ctrl_definitions.txt: Contains all macros for various shard services and shard configurations.
|
||||
|
||||
shard_ctrl_mini01.txt: Example configuration for a development domain with a single mainland and a single ring shard running on one machine.
|
||||
|
||||
terminal_mini01: Contains the terminal to control the patch managers of the mini01 domain. To deploy the shard configuration, install the patchman services on all services, run the terminal and hit Deploy. You may need to hit Deploy a second time if it gives an error. To install the patch version 1, run 'terminal.install mini01 1', this can be done while a previous version is still running. To launch the new version, stop the shard, then run 'terminal.launch mini01 1', this will swap the live version with the next version, and launch the shard immediately.
|
||||
|
||||
shard_ctrl_std01.txt: Example configuration for a full blown domain with multiple shards.
|
||||
|
||||
terminal_std01: Contains the terminal to control the patch managers of the mini01 domain.
|
||||
|
||||
default: Contains base configuration files of the services containing per-service non-domain non-shard specific values.
|
||||
|
||||
cfg: Contains base configuration files with domain and shard type specific values.
|
||||
|
||||
admin_install: Contains the scripts to launch the patch manager and the shard. This directory is built into admin_install.tgz by the build pipeline. Subdirectory patchman requires addition of the ryzom_patchman_service executable on the server, the build pipeline adds this file into the tgz archive automatically, do not add it manually. The patchman_service_local.cfg file must be installed manually per server to contain the hostname of the server. The contents of the admin_install.tgz must be installed manually to the server the first time a server is deployed. The working directory is assumed to be /srv/core, which will contain /srv/core/bin and /srv/core/patchman. The configurations under patchman must be modified to match your own domains. Launch /srv/core/bin/startup to launch the patchman services. Run '/srv/core/bin/admin stop' to stop the patchman services. There is one bridge server, which is tied to one domain, but is used by the other domains as well. The bridge server has a folder /srv/core/bridge_server, which is generated by the build pipeline when creating a new server patch.
|
@ -0,0 +1,129 @@
|
||||
#!/bin/sh
|
||||
|
||||
CMD=$*
|
||||
|
||||
if [ "$CMD" = "" ]
|
||||
then
|
||||
|
||||
echo
|
||||
echo Screen sessions currently running:
|
||||
screen -list
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " 'start' to start the admin"
|
||||
echo " 'stop' to stop the admin"
|
||||
echo " 'join' to join the admin's screen session"
|
||||
echo " 'share' to join the admin if session is shared mode"
|
||||
echo
|
||||
printf "Enter a command: "
|
||||
read CMD
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "stop" ]
|
||||
then
|
||||
for s in $(screen -list | grep "\.admin.*" | awk '{ print $1 }'); do screen -drR $s -X quit; done
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "start" ]
|
||||
then
|
||||
# force the ulimit just in case (so that we can generate cores)
|
||||
ulimit -c unlimited
|
||||
|
||||
# stop any admin sessions that were already up
|
||||
for s in $(screen -list | grep "\.admin.*" | awk '{ print $1 }'); do screen -drR $s -X quit; done
|
||||
|
||||
# start the main admin session
|
||||
screen -d -m -S admin -c /srv/core/bin/admin.screen.rc
|
||||
|
||||
# decide which hostname to use...
|
||||
HOSTNAME=$(hostname)
|
||||
if [ $(grep $HOSTNAME /srv/core/patchman/special_patchman_list | wc -w) = 0 ]
|
||||
then
|
||||
HOSTNAME=$(hostname -s)
|
||||
fi
|
||||
|
||||
# if this machine has associated special admin functins then start the appropriate admin sessions
|
||||
echo Looking for sessions for host: $HOSTNAME
|
||||
for ROLE in $(grep $HOSTNAME /srv/core/patchman/special_patchman_list | awk '{ print $1 }')
|
||||
do
|
||||
ROLE_DIR=/srv/core/$ROLE
|
||||
SRC_CFG_FILE=/srv/core/patchman/patchman_service.$ROLE.cfg
|
||||
|
||||
# make sure the cfg file exists for the patchman we're to launch
|
||||
if [ -e $SRC_CFG_FILE ]
|
||||
then
|
||||
# preliminary setup prior to launching special admin patchman
|
||||
CFG_FILE=$ROLE_DIR/patchman_service.cfg
|
||||
SCREEN_NAME=admin_$ROLE
|
||||
mkdir -p $ROLE_DIR
|
||||
cp -v $SRC_CFG_FILE $CFG_FILE
|
||||
|
||||
# wait 2 seconds before launching the next admin to reduce system conflict
|
||||
sleep 2
|
||||
|
||||
# start the next patchman in its own screen session
|
||||
pushd $ROLE_DIR > /dev/null
|
||||
echo STARTING $SCREEN_NAME \($ROLE\)
|
||||
screen -d -m -S $SCREEN_NAME /bin/sh /srv/core/patchman/loop_special_patchman.sh /srv/core/patchman/ryzom_patchman_service -L. -C.
|
||||
popd > /dev/null
|
||||
|
||||
else
|
||||
# the patchman\'s cfg couln\'t be found so complain and ignore
|
||||
echo FILE NOT FOUND: $SRC_CFG_FILE
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
# try launching the screen sessions that correspond to the machine type that we have...
|
||||
|
||||
# get the domain list
|
||||
cd /srv/core/patchman/
|
||||
if [ $(grep $(hostname) auto_start_domain_list |wc -l) -gt 0 ]
|
||||
then
|
||||
DOMAIN_LIST=$(grep $(hostname) auto_start_domain_list | cut -d\ -f2-)
|
||||
elif [ $(grep $(hostname -s) auto_start_domain_list |wc -l) -gt 0 ]
|
||||
then
|
||||
DOMAIN_LIST=$(grep $(hostname -s) auto_start_domain_list | cut -d\ -f2-)
|
||||
elif [ $(grep $(hostname -d) auto_start_domain_list |wc -l) -gt 0 ]
|
||||
then
|
||||
DOMAIN_LIST=$(grep $(hostname -d) auto_start_domain_list | cut -d\ -f2-)
|
||||
else
|
||||
echo "There are no domains to be autostarted here"
|
||||
DOMAIN_LIST=none
|
||||
fi
|
||||
|
||||
# if we have a domain list for this machine then deal with it...
|
||||
if [ "$DOMAIN_LIST" != none ]
|
||||
then
|
||||
# iterate over the domain list...
|
||||
for f in $DOMAIN_LIST
|
||||
do
|
||||
# see if we're setup to run this domain
|
||||
if [ -e /srv/core/${f}.screen.rc ] && [ -e /srv/core/bin/${f} ]
|
||||
then
|
||||
# see whether the domain is alredy running
|
||||
if [ $( screen -list | grep \( | cut -f2 | cut -d. -f2| grep \^$f\$ | wc -l) == 0 ]
|
||||
then
|
||||
# the domain isn't running yet so start it
|
||||
echo '****' starting domain: $f '****'
|
||||
/srv/core/bin/$f batchstart
|
||||
else
|
||||
echo '****' Domain is already running: $f '****'
|
||||
fi
|
||||
else
|
||||
echo skipping domain: $f
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "join" ]
|
||||
then
|
||||
screen -r -S admin
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "share" ]
|
||||
then
|
||||
screen -r -x -S admin
|
||||
fi
|
||||
|
@ -0,0 +1,19 @@
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# SCREEN KEYBINDINGS
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Remove some stupid / dangerous key bindings
|
||||
bind ^k
|
||||
#bind L
|
||||
bind ^\
|
||||
# Make them better
|
||||
bind \\ quit
|
||||
bind K kill
|
||||
bind I login on
|
||||
bind O login off
|
||||
|
||||
# patchman
|
||||
chdir "/srv/core/patchman/"
|
||||
screen -t patchman /bin/sh ./loop_patchman.sh
|
||||
|
@ -0,0 +1,7 @@
|
||||
|
||||
if [ -z $1 ]
|
||||
then
|
||||
ps -edf | grep _service | grep -v grep
|
||||
else
|
||||
ps -edf | grep _service | grep -v grep | grep $*
|
||||
fi
|
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
while true
|
||||
do
|
||||
|
||||
if [ "$2" == "" ]
|
||||
then
|
||||
echo
|
||||
echo USAGE: $0 sleep_time command_line
|
||||
echo
|
||||
echo example:
|
||||
echo $0 3 echo hello world
|
||||
echo waits 3 seconds then displays 'hello world' repeatedly, asking player to hit enter between each line
|
||||
echo
|
||||
break
|
||||
fi
|
||||
|
||||
sleep $1
|
||||
shift
|
||||
CMD=$*
|
||||
|
||||
while [ "$CMD" != "" ]
|
||||
do
|
||||
eval $CMD
|
||||
echo "press enter"
|
||||
read toto
|
||||
done
|
||||
|
||||
break
|
||||
done
|
@ -0,0 +1,88 @@
|
||||
#!/bin/sh
|
||||
|
||||
CMD=$1
|
||||
DOMAIN=$(pwd|sed s%/srv/core/%%)
|
||||
|
||||
if [ "$CMD" = "" ]
|
||||
then
|
||||
|
||||
echo
|
||||
echo Screen sessions currently running:
|
||||
screen -list
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " 'start' to start the shard"
|
||||
echo " 'stop' to stop the ${DOMAIN}"
|
||||
echo " 'join' to join the ${DOMAIN}'s screen session"
|
||||
echo " 'share' to join the screen session in shared mode"
|
||||
echo " 'state' to view state information for the ${DOMAIN}"
|
||||
echo
|
||||
printf "Enter a command: "
|
||||
read CMD
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "stop" ]
|
||||
then
|
||||
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||||
then
|
||||
echo Cannot stop domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||||
screen -list
|
||||
else
|
||||
screen -d -r $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//') -X quit> /dev/null
|
||||
rm -v */*.state
|
||||
rm -v */*launch_ctrl ./global.launch_ctrl
|
||||
fi
|
||||
fi
|
||||
|
||||
STARTARGS=
|
||||
if [ "$CMD" = "batchstart" ]
|
||||
then
|
||||
STARTARGS='-d -m'
|
||||
CMD='start'
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "start" ]
|
||||
then
|
||||
ulimit -c unlimited
|
||||
screen -wipe > /dev/null
|
||||
if [ $( screen -list | grep \\\.${DOMAIN} | wc -w ) != 0 ]
|
||||
then
|
||||
echo Cannot start domain \'${DOMAIN}\' because this domain is already started
|
||||
screen -list | grep $DOMAIN
|
||||
else
|
||||
screen $STARTARGS -S ${DOMAIN} -c /srv/core/${DOMAIN}.screen.rc
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "join" ]
|
||||
then
|
||||
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||||
then
|
||||
echo Cannot join domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||||
screen -list
|
||||
else
|
||||
screen -r $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//')
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "share" ]
|
||||
then
|
||||
if [ $(screen -list | grep \\\.${DOMAIN} | wc -l) != 1 ]
|
||||
then
|
||||
echo Cannot join domain \'${DOMAIN}\' because no screen by that name appears to be running
|
||||
screen -list
|
||||
else
|
||||
screen -r -x $(screen -list | grep \\\.${DOMAIN}| sed 's/(.*)//')
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CMD" = "state" ]
|
||||
then
|
||||
echo State of domain ${DOMAIN}:
|
||||
if [ $(echo */*.state) = "*/*.state" ]
|
||||
then
|
||||
echo - No state files found
|
||||
else
|
||||
grep RUNNING *state
|
||||
fi
|
||||
fi
|
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd /srv/core/mini01
|
||||
/bin/sh /srv/core/bin/ryzom_domain_screen_wrapper.sh $*
|
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd /srv/core
|
||||
rm */*.state */*/*.launch_ctrl */*/*.state
|
||||
/bin/bash /srv/core/bin/admin start
|
||||
|
||||
# special case for the "ep1.std01.ryzomcore.org" machine - start the admin tool graph sync script
|
||||
if [ $(hostname) = "ep1.std01.ryzomcore.org" ]
|
||||
then
|
||||
nohup /bin/sh /srv/core/bin/sync_rrd_graphs.sh &
|
||||
fi
|
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo Launched: $(date)
|
||||
while true
|
||||
do
|
||||
# retrieve ATS files from ATS admin tool machine
|
||||
rsync -t ep1.std01.ryzomcore.org:ats/graph_datas/* /srv/core/mini01/rrd_graphs/
|
||||
|
||||
# deal with live files - duplicate files that correspond to unique services to aid with graphing of su & co
|
||||
cd /srv/core/std01/rrd_graphs/
|
||||
for f in $(ls *rrd | awk '/^[^_]*\./'); do cp $f $(cut -d. -f1)_unifier.$(cut -d. -f2-); done
|
||||
rsync -t /srv/core/std01/rrd_graphs/* csr:std01_rrd_graphs/
|
||||
|
||||
# deal with test files files - see comment regarding live files above
|
||||
cd /srv/core/mini01/rrd_graphs/
|
||||
for f in $(ls *rrd | awk '/^[^_]*\./'); do cp $f $(echo $f|cut -d. -f1)_unifier.$(echo $f|cut -d. -f2-); done
|
||||
rsync -t /srv/core/mini01/rrd_graphs/* csr:mini01_rrd_graphs/
|
||||
|
||||
# display a groovy message
|
||||
echo Finished rsync: $(date)
|
||||
sleep 60
|
||||
done
|
@ -0,0 +1,99 @@
|
||||
// I'm the AES, I'll not connect to myself!
|
||||
DontUseAES = 1;
|
||||
// I don't need a connection to a naming service
|
||||
DontUseNS = 1;
|
||||
DontLog = 1;
|
||||
|
||||
AESAliasName= "aes";
|
||||
|
||||
//
|
||||
DontUseStdIn = 0;
|
||||
|
||||
// Adress ofthe admin service (default port is 49996)
|
||||
ASHost = "ep1.mini01.ryzomcore.org";
|
||||
|
||||
// Config for AES
|
||||
AESPort = "46712";
|
||||
AESHost = "localhost";
|
||||
ASPort = "46711";
|
||||
|
||||
|
||||
// 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 external 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;
|
||||
|
||||
NegFiltersDebug = { "REQUEST", "GRAPH", "ADMIN", "NET", "ADMIN", "MIRROR", "NC", "PATH", "BSIF" };
|
||||
NegFiltersInfo = { "REQUEST", "GRAPH", "ADMIN", "NET", "ADMIN", "MIRROR", "NC", "CF", " ping", " pong" };
|
||||
NegFiltersWarning = { "CT_LRC" };
|
||||
|
||||
#include "./aes_alias_name.cfg"
|
||||
|
||||
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+")",
|
||||
|
||||
|
||||
// create the admin executor service module
|
||||
"moduleManager.createModule AdminExecutorService aes",
|
||||
|
||||
// create a gateway to connect to as
|
||||
"moduleManager.createModule StandardGateway asc_gw",
|
||||
// create a layer 3 client
|
||||
"asc_gw.transportAdd L3Client l3c",
|
||||
"asc_gw.transportCmd l3c(connect addr="+ASHost+":"+ASPort+")",
|
||||
|
||||
// create a gateway for services to connect
|
||||
"moduleManager.createModule StandardGateway aes_gw",
|
||||
// create a layer 3 server
|
||||
"aes_gw.transportAdd L3Server l3s",
|
||||
"aes_gw.transportOptions l3s(PeerInvisible)",
|
||||
"aes_gw.transportCmd l3s(open port="+AESPort+")",
|
||||
|
||||
// plug the as
|
||||
"aes.plug asc_gw",
|
||||
"aes.plug aes_gw",
|
||||
|
||||
};
|
@ -0,0 +1,99 @@
|
||||
// I'm the AES, I'll not connect to myself!
|
||||
DontUseAES = 1;
|
||||
// I don't need a connection to a naming service
|
||||
DontUseNS = 1;
|
||||
DontLog = 1;
|
||||
|
||||
AESAliasName= "aes";
|
||||
|
||||
//
|
||||
DontUseStdIn = 0;
|
||||
|
||||
// Adress ofthe admin service (default port is 49996)
|
||||
ASHost = "ep1.std01.ryzomcore.org";
|
||||
|
||||
// Config for AES
|
||||
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 external 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;
|
||||
|
||||
NegFiltersDebug = { "REQUEST", "GRAPH", "ADMIN", "NET", "ADMIN", "MIRROR", "NC", "PATH", "BSIF" };
|
||||
NegFiltersInfo = { "REQUEST", "GRAPH", "ADMIN", "NET", "ADMIN", "MIRROR", "NC", "CF", " ping", " pong" };
|
||||
NegFiltersWarning = { "CT_LRC" };
|
||||
|
||||
#include "./aes_alias_name.cfg"
|
||||
|
||||
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+")",
|
||||
|
||||
|
||||
// create the admin executor service module
|
||||
"moduleManager.createModule AdminExecutorService aes",
|
||||
|
||||
// create a gateway to connect to as
|
||||
"moduleManager.createModule StandardGateway asc_gw",
|
||||
// create a layer 3 client
|
||||
"asc_gw.transportAdd L3Client l3c",
|
||||
"asc_gw.transportCmd l3c(connect addr="+ASHost+":"+ASPort+")",
|
||||
|
||||
// create a gateway for services to connect
|
||||
"moduleManager.createModule StandardGateway aes_gw",
|
||||
// create a layer 3 server
|
||||
"aes_gw.transportAdd L3Server l3s",
|
||||
"aes_gw.transportOptions l3s(PeerInvisible)",
|
||||
"aes_gw.transportCmd l3s(open port="+AESPort+")",
|
||||
|
||||
// plug the as
|
||||
"aes.plug asc_gw",
|
||||
"aes.plug aes_gw",
|
||||
|
||||
};
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1,18 @@
|
||||
#!/bin/sh -
|
||||
|
||||
DOMAIN=$(pwd |sed "s%/srv/core/%%")
|
||||
|
||||
while(true)
|
||||
do
|
||||
echo AESAliasName= \"aes_$(hostname -s)\"\; > ./aes_alias_name.cfg
|
||||
|
||||
if [ $(grep "AESPort[ \t]*=" */*cfg | grep -v debug | sed "s/.*=[ \t]*//" | sort -u | wc -l) != 1 ] ; then echo - FIXME: services don\'t agree on AESPort ; read ; fi
|
||||
echo AESPort=$(grep "AESPort[ \t]*=" */*cfg| grep -v debug | sed "s/.*=[ \t]*//" | sort -u) >> ./aes_alias_name.cfg
|
||||
|
||||
if [ $(grep "ASPort[ \t]*=" */*cfg | grep -v debug | sed "s/.*=[ \t]*//" | sort -u | wc -l) != 1 ] ; then echo - FIXME: services don\'t agree on ASPort ; read ; fi
|
||||
echo ASPort=$(grep "ASPort[ \t]*=" */*cfg| grep -v debug | sed "s/.*=[ \t]*//" | sort -u) >> ./aes_alias_name.cfg
|
||||
|
||||
./live/service_ryzom_admin_service/ryzom_admin_service -A. -C. -L. --nobreak --fulladminname=admin_executor_service --shortadminname=AES
|
||||
sleep 2
|
||||
done
|
||||
|
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
|
||||
while true
|
||||
do
|
||||
cd /srv/core/
|
||||
if [ -e /srv/core/admin_install.tgz ]
|
||||
then
|
||||
tar xvzf admin_install.tgz
|
||||
chmod 775 bin/admin 2> /dev/null
|
||||
chmod 775 bin/ps_services 2> /dev/null
|
||||
chmod 775 bin/run_forever 2> /dev/null
|
||||
chmod 775 bin/shard 2> /dev/null
|
||||
chmod 775 bin/startup 2> /dev/null
|
||||
chmod 775 bin/*.sh 2> /dev/null
|
||||
chmod 775 patchman/*_service 2> /dev/null
|
||||
chmod 775 patchman/*.sh 2> /dev/null
|
||||
fi
|
||||
|
||||
cd /srv/core/patchman/
|
||||
if [ $(grep $(hostname) patchman_list |wc -l) -gt 0 ]
|
||||
then
|
||||
export SERVER_TYPE=$(grep $(hostname) patchman_list | awk '{ print $1 }')
|
||||
elif [ $(grep $(hostname -s) patchman_list |wc -l) -gt 0 ]
|
||||
then
|
||||
export SERVER_TYPE=$(grep $(hostname -s) patchman_list | awk '{ print $1 }')
|
||||
elif [ $(grep $(hostname -d) patchman_list |wc -l) -gt 0 ]
|
||||
then
|
||||
export SERVER_TYPE=$(grep $(hostname -d) patchman_list | awk '{ print $1 }')
|
||||
else
|
||||
export SERVER_TYPE=default
|
||||
echo "ERROR: Neither \'hostname\' \($(hostname)\) nor \'hostname -s\' \($(hostname -s)\) nor \'hostname -d\' \($(hostname -d)\) found in $(pwd)/patchman_list"
|
||||
fi
|
||||
CFGFILENAME=patchman_service.${SERVER_TYPE}.cfg
|
||||
|
||||
if [ ! -e $CFGFILENAME ]
|
||||
then
|
||||
echo ERROR: Failed to locate the following file: $CFGFILENAME
|
||||
echo using default files
|
||||
export SERVER_TYPE=default
|
||||
CFGFILENAME=patchman_service.${SERVER_TYPE}.cfg
|
||||
|
||||
if [ ! -e $CFGFILENAME ]
|
||||
then
|
||||
echo ERROR: Failed to locate the following DEFAULT file: $CFGFILENAME
|
||||
echo "press enter"
|
||||
read toto
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ssh keys file: $KEYSFILENAME
|
||||
echo cfg file: $CFGFILENAME
|
||||
|
||||
/bin/sh loop_patchman_once.sh
|
||||
done
|
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
CFGFILENAME=patchman_service.${SERVER_TYPE}.cfg
|
||||
echo cfg file: $CFGFILENAME
|
||||
|
||||
AESCFGFILENAME=admin_executor_service_default.${SERVER_TYPE}.cfg
|
||||
echo aes cfg file: $AESCFGFILENAME
|
||||
|
||||
cd /srv/core/patchman
|
||||
if [ -e $CFGFILENAME ]
|
||||
then
|
||||
|
||||
# setup the config file for the patchman
|
||||
echo Using configuration file: $CFGFILENAME
|
||||
cp $CFGFILENAME patchman_service.cfg
|
||||
|
||||
# setup the config file for the admin executor service
|
||||
echo Using aes configuration file: $AESCFGFILENAME
|
||||
if [ -e $AESCFGFILENAME ] ; then cp $AESCFGFILENAME admin_executor_service_default.cfg ; fi
|
||||
|
||||
# start the patchman service
|
||||
echo Launching patchman...
|
||||
./ryzom_patchman_service -C. -L.
|
||||
|
||||
sleep 2
|
||||
if [ -e core* ]
|
||||
then
|
||||
if [ -e dont_keep_cores ]
|
||||
then
|
||||
rm core*
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
echo ERROR: Failed to locate config file: $CFGFILENAME
|
||||
echo trying again in a few seconds...
|
||||
sleep 10
|
||||
fi
|
||||
cd -
|
@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$1" == "" ]
|
||||
then
|
||||
echo
|
||||
echo USAGE: $0 command_line
|
||||
echo
|
||||
echo example:
|
||||
echo $0 echo hello world
|
||||
echo displays 'hello world' repeatedly, delaying 3 seconds between repeats
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
while true
|
||||
do
|
||||
sleep 3
|
||||
eval $*
|
||||
done
|
@ -0,0 +1,110 @@
|
||||
#! /bin/sh -
|
||||
|
||||
# note: this script should be run from a domain directory such as /srv/core/std01 or /srv/core/mini01
|
||||
DOMAIN=$(pwd |sed 's/\/srv\/core\///')
|
||||
if [ "patchman" = "$DOMAIN" ]; then DOMAIN= ; fi
|
||||
if [ "bin" = "$DOMAIN" ]; then DOMAIN= ; fi
|
||||
if [ "$DOMAIN" != $(echo $DOMAIN|sed 's/\///g') ]; then DOMAIN= ; fi
|
||||
if [ _"${DOMAIN}"_ = __ ]
|
||||
then
|
||||
echo This is not a valid directory for running this script
|
||||
exit
|
||||
fi
|
||||
|
||||
# tell the aes to shut everybody down
|
||||
printf "0" > ./global.launch_ctrl
|
||||
|
||||
# before entering the 'Waiting for Services' loop, get rid of the ras/ras.state file because the ras doesn't stop properly otherwise
|
||||
if [ -f ras/ras.state ]
|
||||
then
|
||||
rm ras/ras.state
|
||||
fi
|
||||
|
||||
# while there are still services running, wait
|
||||
while [ $(grep -i RUNNING . */*.state|wc -l) != 0 ]
|
||||
do
|
||||
echo $DOMAIN: Waiting for $(grep -i RUNNING . */*.state|wc -l) Services to stop
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# stop the screen for the shard (if there is one)
|
||||
screen -drR -S $DOMAIN -X quit> /dev/null
|
||||
sleep 1
|
||||
|
||||
# rename any old core files
|
||||
for COREFILE in */core*
|
||||
do
|
||||
mv $COREFILE $(echo $COREFILE|sed "s%/.*%%")/v$(cat live/version)_$(echo $COREFILE|sed "s%.*/%%")
|
||||
done
|
||||
|
||||
# rename any old log files
|
||||
for LOGFILE in */log*.log
|
||||
do
|
||||
mv $LOGFILE $(echo $LOGFILE|sed "s%/.*%%")/v$(cat live/version)_$(echo $LOGFILE|sed "s%.*/%%")
|
||||
done
|
||||
|
||||
# swap the live and next directories
|
||||
rm -r old_live/* 2> /dev/null
|
||||
echo next=$(cat next/version) live=$(cat live/version)
|
||||
mv live old_live
|
||||
echo next=$(cat next/version) old_live=$(cat old_live/version)
|
||||
mv next live
|
||||
echo old_live=$(cat old_live/version) live=$(cat live/version)
|
||||
mv old_live next
|
||||
echo next=$(cat next/version) live=$(cat live/version)
|
||||
|
||||
# restore any old log files in case of return to previous version
|
||||
for LOGFILE in */v$(cat live/version)_log*.log
|
||||
do
|
||||
mv $LOGFILE $(echo $LOGFILE|sed "s%/.*%%")/$(echo $LOGFILE|sed "s%.*/.*_%%")
|
||||
done
|
||||
|
||||
# make the ryzom services executable
|
||||
chmod 775 live/service_*/*_service 2> /dev/null
|
||||
chmod 775 live/service_*/*_server 2> /dev/null
|
||||
|
||||
# make directory for rrd_graphs
|
||||
mkdir -p rrd_graphs
|
||||
|
||||
# special case to deal with www files that need a local cfg file to be properly setup
|
||||
if [ -e ./live/data_www/config.php ]
|
||||
then
|
||||
echo \<?php >./live/data_www/config.php
|
||||
echo >>./live/data_www/config.php
|
||||
echo \$USERS_DIR = \'$(pwd)/www\'\; >>./live/data_www/config.php
|
||||
echo \$TEMPLATE_DIR = \'./template\'\; >>./live/data_www/config.php
|
||||
echo >>./live/data_www/config.php
|
||||
echo \?\> >>./live/data_www/config.php
|
||||
mkdir -p $(pwd)/save_shard/www
|
||||
fi
|
||||
|
||||
# remove any launch ctrl files that are floating about
|
||||
rm -v */*.*launch_ctrl *.*launch_ctrl 2> /dev/null
|
||||
|
||||
# initialise the state files for the new services to "xxxxx" and remove directories that are no longer of interest
|
||||
for D in $(ls */log.log | sed "s%/.*%%" | sort -u)
|
||||
do
|
||||
if [ $(grep \"$D\" admin_executor_service.cfg | wc -l) == 1 ]
|
||||
then
|
||||
printf "xxxxx" > $D/$D.state
|
||||
else
|
||||
mkdir -p old
|
||||
mv $D old/
|
||||
fi
|
||||
done
|
||||
|
||||
# tell the aes to launch everybody...
|
||||
printf "1" > ./global.launch_ctrl
|
||||
|
||||
# create a script for accessing the screen for this shard
|
||||
SCRIPT_FILE=/srv/core/bin/${DOMAIN}
|
||||
echo "#!/bin/sh" > $SCRIPT_FILE
|
||||
echo "cd "$(pwd) >> $SCRIPT_FILE
|
||||
echo '/bin/sh /srv/core/bin/ryzom_domain_screen_wrapper.sh $*' >> $SCRIPT_FILE
|
||||
chmod +x $SCRIPT_FILE
|
||||
|
||||
# launch the screen again now that were all done (aes will launch everybody when he comes online)
|
||||
cp /srv/core/$DOMAIN/${DOMAIN}.screen.rc /srv/core/${DOMAIN}.screen.rc
|
||||
#screen -S $DOMAIN -d -m -c /srv/core/${DOMAIN}.screen.rc
|
||||
$SCRIPT_FILE batchstart
|
||||
|
@ -0,0 +1,23 @@
|
||||
// default values for different sites
|
||||
|
||||
mini01 ep1.mini01.ryzomcore.org
|
||||
std01 ep1.std01.ryzomcore.org
|
||||
std01 su1.std01.ryzomcore.org
|
||||
std01 pd1.std01.ryzomcore.org
|
||||
std01 pd2.std01.ryzomcore.org
|
||||
std01 pd3.std01.ryzomcore.org
|
||||
std01 pd4.std01.ryzomcore.org
|
||||
std01 mla1.std01.ryzomcore.org
|
||||
std01 mla2.std01.ryzomcore.org
|
||||
std01 mla3.std01.ryzomcore.org
|
||||
std01 mla4.std01.ryzomcore.org
|
||||
std01 mla5.std01.ryzomcore.org
|
||||
std01 mlb1.std01.ryzomcore.org
|
||||
std01 mlb2.std01.ryzomcore.org
|
||||
std01 mlb3.std01.ryzomcore.org
|
||||
std01 mlb4.std01.ryzomcore.org
|
||||
std01 mlb5.std01.ryzomcore.org
|
||||
std01 rra1.std01.ryzomcore.org
|
||||
std01 rra2.std01.ryzomcore.org
|
||||
std01 rrb1.std01.ryzomcore.org
|
||||
std01 rrb2.std01.ryzomcore.org
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue