Changed: #1469 StringId conversion to SheetId for sounds V2 (DOES NOT COMPILE YET)

--HG--
branch : gsoc2012-fabien
This commit is contained in:
Fabien_HENON 2012-05-26 19:21:19 +02:00
parent 5174e15521
commit f70bdc4032
23 changed files with 686 additions and 74 deletions

View file

@ -93,9 +93,9 @@ public:
//@{
/// @name IStringMapperProvider implementation
/// map a string
NLMISC::CSheetId map(const std::string &str) { return NLMISC::CSheetId(str);/*NLMISC::CStringMapper::map(str);*/}
NLMISC::TStringId map(const std::string &str) { return NLMISC::CStringMapper::map(str);}
/// unmap a string
const std::string &unmap(const NLMISC::CSheetId &stringId) { return stringId.toString();/*NLMISC::CStringMapper::unmap(stringId);*/}
const std::string &unmap(const NLMISC::TStringId &stringId) { return NLMISC::CStringMapper::unmap(stringId);}
//@}
@ -321,8 +321,8 @@ public:
void incPlayingSourceMuted() { ++_PlayingSourcesMuted; };
void decPlayingSourceMuted() { --_PlayingSourcesMuted; };
void setUserVar(NLMISC::CSheetId varName, float value);
float getUserVar(NLMISC::CSheetId varName);
void setUserVar(NLMISC::TStringId varName, float value);
float getUserVar(NLMISC::TStringId varName);
// music
virtual bool playMusic(const std::string &fileName, uint xFadeTime= 0, bool async= true, bool loop=true);
@ -352,7 +352,7 @@ public:
/// Add a reverb environment.
void addEnvironment(const std::string &name, const IReverbEffect::CEnvironment &environment);
/// Set the current reverb environment.
void setEnvironment(NLMISC::CSheetId environmentName, float roomSize);
void setEnvironment(NLMISC::TStringId environmentName, float roomSize);
/// Set the current reverb environment.
inline void setEnvironment(const std::string &environmentName, float roomSize) { setEnvironment(NLMISC::CStringMapper::map(environmentName), roomSize); }
/// Get a reverb environment
@ -410,8 +410,8 @@ public:
/// Read all user controled var sheets
void initUserVar();
void addUserControledSource(CSourceCommon *source, NLMISC::CSheetId varName);
void removeUserControledSource(CSourceCommon *source, NLMISC::CSheetId varName);
void addUserControledSource(CSourceCommon *source, NLMISC::TStringId varName);
void removeUserControledSource(CSourceCommon *source, NLMISC::TStringId varName);
virtual void startDriverBench();
@ -441,7 +441,7 @@ private:
struct CControledSources
{
/// The user var name
NLMISC::CSheetId Name;
NLMISC::TStringId Name;
/// Witch parameter to control
TControledParamId ParamId;
/// The controled sounds names.
@ -473,7 +473,7 @@ protected:
/// Fill a vector of position and mute flag for all playing sound source.
virtual void getPlayingSoundsPos(bool virtualPos, std::vector<std::pair<bool, NLMISC::CVector> > &pos);
typedef CHashMap<NLMISC::CSheetId, CControledSources, NLMISC::CStringIdHashMapTraits> TUserVarControlsContainer;
typedef CHashMap<NLMISC::TStringId, CControledSources, NLMISC::CStringIdHashMapTraits> TUserVarControlsContainer;
/// Container for all user controler and currently controled playing source
TUserVarControlsContainer _UserVarControls;

View file

@ -282,7 +282,7 @@ private:
struct TFxZone
{
/// Name of the env fx
NLMISC::CSheetId FxName;
NLMISC::TStringId FxName;
/// The vector of points compositing the primitive
std::vector<NLMISC::CVector> Points;
/// The min vector of the bounding box
@ -295,7 +295,7 @@ private:
/// Container for the fx primitive.
std::vector<TFxZone> _FxZones;
/// Last setted env fx. Used when clustered sound is not active
NLMISC::CSheetId _LastEnv;
NLMISC::TStringId _LastEnv;
//@}
};

View file

@ -249,11 +249,12 @@ private:
/// The segment of all the audio path.
std::vector<std::pair<NLMISC::CVector, NLMISC::CVector> > _AudioPath;
typedef CHashMap<NLMISC::CSheetId, CClusterSound, NLMISC::CStringIdHashMapTraits> TClusterSoundCont;
typedef CHashMap<NLMISC::CSheetId, CClusterSound, NLMISC::CSheetIdHashMapTraits> TClusterSoundCont;
/// The current cluster playing source indexed with sound group id
TClusterSoundCont _Sources;
typedef CHashMap<NLMISC::CSheetId, NLMISC::CSheetId, NLMISC::CStringIdHashMapTraits> TStringStringMap;
//typedef CHashMap<NLMISC::CSheetId, NLMISC::CSheetId, NLMISC::CSheetIdHashMapTraits> TStringStringMap;
typedef CHashMap<NLMISC::TStringId, NLMISC::TStringId, NLMISC::CStringIdHashMapTraits> TStringStringMap;
/// The sound_group to sound assoc
TStringStringMap _SoundGroupToSound;
};

View file

@ -118,7 +118,7 @@ public:
virtual void serial(NLMISC::IStream &s);
NLMISC::CSheetId getUserVarControler() { return _UserVarControler; }
NLMISC::TStringId getUserVarControler() { return _UserVarControler; }
bool operator<( const CSound& otherSound ) const
{
@ -146,7 +146,7 @@ protected:
// Sound name.
NLMISC::CSheetId _Name;
/// An optional user var controler.
NLMISC::CSheetId _UserVarControler;
NLMISC::TStringId _UserVarControler;
/// The group controller, always exists, owned by the audio mixer
CGroupController *_GroupController;

View file

@ -86,10 +86,10 @@ private:
typedef CHashSet<class CSimpleSound*, THashPtr<CSimpleSound*> > TSimpleSoundContainer;
// typedef std::hash_map<std::string, TSimpleSoundContainer > TBufferAssocContainer;
typedef CHashMap<NLMISC::CSheetId, TSimpleSoundContainer, NLMISC::CStringIdHashMapTraits> TBufferAssocContainer;
typedef CHashMap<NLMISC::TStringId, TSimpleSoundContainer, NLMISC::CStringIdHashMapTraits> TBufferAssocContainer;
/// Sound names hash map
// typedef std::hash_map<std::string, CSound*> TSoundTable;
typedef CHashMap<NLMISC::CSheetId, CSound*, NLMISC::CStringIdHashMapTraits> TSoundTable;
typedef CHashMap<NLMISC::CSheetId, CSound*, NLMISC::CSheetIdHashMapTraits> TSoundTable;
/// Assoc from buffer to sound. Used for sound unloading.
TBufferAssocContainer _BufferAssoc;

View file

@ -150,7 +150,7 @@ protected:
NL3D::CCluster *_Cluster;
/// An optional user var controler.
NLMISC::CSheetId _UserVarControler;
NLMISC::TStringId _UserVarControler;
/// Group controller for gain
CGroupController *_GroupController;

View file

@ -382,9 +382,9 @@ public:
* Binding from user var to sound parameter is done in
* one or more georges sheet .user_var_binding.
*/
virtual void setUserVar(NLMISC::CSheetId varName, float value) =0;
virtual void setUserVar(NLMISC::TStringId varName, float value) =0;
/// Return the current value of a user var.
virtual float getUserVar(NLMISC::CSheetId varName) =0;
virtual float getUserVar(NLMISC::TStringId varName) =0;
//@}
//@{

View file

@ -100,7 +100,7 @@ USource *OnAddSource( const char *name, float x, float y, float z )
/*
* Create a source with sound 'name', and set some of its initial properties, if successful
*/
USource *source = AudioMixer->createSource( CStringMapper::map(name) );
USource *source = AudioMixer->createSource( /*CStringMapper::map(name)*/ CSheetId(name) );
if ( source != NULL )
{
source->setPos( CVector(x,y,z) );

View file

@ -97,7 +97,7 @@ static void initSample()
//NLMISC::CHTimer::startBench();
s_Source = s_AudioMixer->createSource(CStringMapper::map("stream_file"));
s_Source = s_AudioMixer->createSource(/*CStringMapper::map("stream_file")*/ CSheetId("stream_file"));
nlassert(s_Source);
s_StreamFileSource = dynamic_cast<CStreamFileSource *>(s_Source);
nlassert(s_StreamFileSource);

View file

@ -87,7 +87,7 @@ static void initSample()
//NLMISC::CHTimer::startBench();
USource *source = s_AudioMixer->createSource(CStringMapper::map("default_stream"));
USource *source = s_AudioMixer->createSource(CSheetId("default_stream")/*CStringMapper::map("default_stream")*/);
nlassert(source);
s_StreamSource = dynamic_cast<UStreamSource *>(source);
nlassert(s_StreamSource);

View file

@ -1052,7 +1052,7 @@ public:
items->getArrayValue(soundName, i);
soundName = soundName.substr(0, soundName.find(".sound"));
cs.SoundNames.push_back(CStringMapper::map(soundName));
cs.SoundNames.push_back(CSheetId(soundName)/*CStringMapper::map(soundName)*/);
}
if (!cs.SoundNames.empty())
@ -1102,7 +1102,7 @@ void CAudioMixerUser::initUserVar()
TUserVarControlsContainer::iterator first(_UserVarControls.begin()), last(_UserVarControls.end());
for(; first != last; ++first)
{
std::vector<NLMISC::TStringId>::iterator first2(first->second.SoundNames.begin()), last2(first->second.SoundNames.end());
std::vector<NLMISC::CSheetId>::iterator first2(first->second.SoundNames.begin()), last2(first->second.SoundNames.end());
for (; first2 != last2; ++first2)
{
CSound *sound = getSoundId(*first2);
@ -1133,7 +1133,7 @@ void CAudioMixerUser::CControledSources::serial(NLMISC::IStream &s)
for (uint i=0; i<size; ++i)
{
s.serial(soundName);
SoundNames.push_back(CStringMapper::map(soundName));
SoundNames.push_back(CSheetId(soundName)/*CStringMapper::map(soundName)*/);
}
}
else
@ -1147,7 +1147,7 @@ void CAudioMixerUser::CControledSources::serial(NLMISC::IStream &s)
for (uint i=0; i<size; ++i)
{
soundName = CStringMapper::unmap(SoundNames[i]);
soundName = SoundNames[i].toString();/*CStringMapper::unmap(SoundNames[i])*/;
s.serial(soundName);
}
}
@ -1158,7 +1158,7 @@ void CAudioMixerUser::CControledSources::serial(NLMISC::IStream &s)
// ******************************************************************
void CAudioMixerUser::setUserVar(NLMISC::CSheetId varName, float value)
void CAudioMixerUser::setUserVar(NLMISC::TStringId varName, float value)
{
TUserVarControlsContainer::iterator it(_UserVarControls.find(varName));
if (it != _UserVarControls.end())
@ -1191,7 +1191,7 @@ void CAudioMixerUser::setUserVar(NLMISC::CSheetId varName, float value)
// ******************************************************************
float CAudioMixerUser::getUserVar(NLMISC::CSheetId varName)
float CAudioMixerUser::getUserVar(NLMISC::TStringId varName)
{
TUserVarControlsContainer::iterator it(_UserVarControls.find(varName));
if (it != _UserVarControls.end())
@ -1204,7 +1204,7 @@ float CAudioMixerUser::getUserVar(NLMISC::CSheetId varName)
// ******************************************************************
void CAudioMixerUser::addUserControledSource(CSourceCommon *source, NLMISC::CSheetId varName)
void CAudioMixerUser::addUserControledSource(CSourceCommon *source, NLMISC::TStringId varName)
{
TUserVarControlsContainer::iterator it(_UserVarControls.find(varName));
if (it != _UserVarControls.end())
@ -1228,7 +1228,7 @@ void CAudioMixerUser::addUserControledSource(CSourceCommon *source, NLMISC::CShe
// ******************************************************************
void CAudioMixerUser::removeUserControledSource(CSourceCommon *source, NLMISC::CSheetId varName)
void CAudioMixerUser::removeUserControledSource(CSourceCommon *source, NLMISC::TStringId varName)
{
TUserVarControlsContainer::iterator it(_UserVarControls.find(varName));
if (it != _UserVarControls.end())
@ -1895,7 +1895,7 @@ retrySound:
if (invalid)
{
nlwarning("The sound %s contain an infinite recursion !", CStringMapper::unmap(id->getName()).c_str());
nlwarning("The sound %s contain an infinite recursion !", id->getName().toString()/*CStringMapper::unmap(id->getName()).c_str()*/);
return NULL;
}
@ -2768,7 +2768,7 @@ void CAudioMixerUser::addEnvironment(const std::string &environmentName, const I
}
/// Set the current reverb environment
void CAudioMixerUser::setEnvironment(NLMISC::CSheetId environmentName, float roomSize)
void CAudioMixerUser::setEnvironment(NLMISC::TStringId environmentName, float roomSize)
{
if (_ReverbEffect)
{
@ -2777,7 +2777,7 @@ void CAudioMixerUser::setEnvironment(NLMISC::CSheetId environmentName, float roo
}
/// Get a reverb environment
const IReverbEffect::CEnvironment &CAudioMixerUser::getEnvironment(NLMISC::CSheetId environmentName)
const IReverbEffect::CEnvironment &CAudioMixerUser::getEnvironment(NLMISC::TStringId environmentName)
{
TEnvironments::iterator it(_Environments.find(environmentName));
if (it == _Environments.end())

View file

@ -465,7 +465,7 @@ void CBackgroundSoundManager::addFxZone(const std::string &fxName, const std::ve
{
TFxZone fxZone;
fxZone.FxName = /*CStringMapper::map(fxName)*/ NLMISC::CSheetId(fxName);
fxZone.FxName = CStringMapper::map(fxName);
fxZone.Points.resize (points.size());
for (uint j=0; j<points.size(); j++)
{
@ -893,7 +893,7 @@ void CBackgroundSoundManager::updateBackgroundStatus()
if (rootCluster)
{
// use the cluster system
rootCluster->setEnvironmentFx(first->FxName.toString());
rootCluster->setEnvironmentFx(first->FxName);
}
else
{
@ -1461,11 +1461,11 @@ void CBackgroundSoundManager::TFxZone::serial(NLMISC::IStream &s)
if (s.isReading())
{
s.serial(str);
FxName= NLMISC::CSheetId(str);/*NLMISC::CStringMapper::map(str)*/;
FxName= NLMISC::CStringMapper::map(str);
}
else
{
s.serial(const_cast<std::string&>(FxName.toString()/*NLMISC::CStringMapper::unmap(FxName)*/));
s.serial(const_cast<std::string&>(NLMISC::CStringMapper::unmap(FxName)));
}
s.serialCont(Points);

View file

@ -292,7 +292,7 @@ void CClusteredSound::update(const CVector &listenerPos, const CVector &/* view
TStringStringMap::iterator it2(_SoundGroupToSound.find(soundGroup));
if (it2 != _SoundGroupToSound.end())
{
NLMISC::CSheetId soundName = it2->second;
NLMISC::TStringId soundName = it2->second;
CClusterSound cs;
// nldebug("Found the sound [%s] for sound group [%s]", CStringMapper::unmap(soundName).c_str(), CStringMapper::unmap(soundGroup).c_str());

View file

@ -115,7 +115,7 @@ CSound::CSound() :
_Looping(false),
_MinDist(1.0f),
_MaxDist(1000000.0f),
_UserVarControler(NLMISC::CSheetId::Unknown),
_UserVarControler(CStringMapper::emptyId()),
_GroupController(NULL)
{
}

View file

@ -152,10 +152,10 @@ public:
{}
// load the values using the george sheet (called by GEORGE::loadForm)
void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const std::string &name)
void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const NLMISC::CSheetId &name)
{
// just call the sound creation method with the xml form.
Sound = CSound::createSound(name, form->getRootNode());
Sound = CSound::createSound(name.toString(), form->getRootNode());
// success ?
// if (_Sound != 0)

View file

@ -102,7 +102,7 @@ void CSourceCommon::play()
_Playing = true;
_PlayStart = CTime::getLocalTime();
if (_UserVarControler != NLMISC::CSheetId::Unknown/*CStringMapper::emptyId()*/)
if (_UserVarControler != CStringMapper::emptyId())
CAudioMixerUser::instance()->addUserControledSource(this, _UserVarControler);
}
@ -114,7 +114,7 @@ void CSourceCommon::stop()
CAudioMixerUser::instance()->decPlayingSource();
_Playing = false;
if (_UserVarControler != NLMISC::CSheetId::Unknown/*CStringMapper::emptyId()*/)
if (_UserVarControler != CStringMapper::emptyId())
CAudioMixerUser::instance()->removeUserControledSource(this, _UserVarControler);
}

View file

@ -419,7 +419,7 @@ CClientConfig::CClientConfig()
// only force patching under Windows by default
#ifdef NL_OS_WINDOWS
PatchWanted = true;
PatchWanted = false;//true;
#else
PatchWanted = false;
#endif

View file

@ -5055,14 +5055,14 @@ NLMISC_COMMAND(reloadFogMaps, "Force to reload all the fog maps", "<>")
NLMISC_COMMAND(dumpSounds, "Dump names of all loaded sound", "<>")
{
if (!args.empty()) return false;
std::vector<NLMISC::TStringId> sounds;
std::vector<NLMISC::CSheetId> sounds;
extern CSoundManager *SoundMngr;
if (!SoundMngr) return false;
if (!SoundMngr->getMixer()) return false;
SoundMngr->getMixer()->getSoundNames(sounds);
for(uint k = 0; k < sounds.size(); ++k)
{
nlinfo(NLMISC::CStringMapper::unmap(sounds[k]).c_str());
nlinfo(sounds[k].toString()/*NLMISC::CStringMapper::unmap(sounds[k])*/.c_str());
}
return true;
}

View file

@ -624,7 +624,7 @@ void CSoundManager::init(IProgressCallback *progressCallBack)
// add a new source to the world, attached to the specified entity
// return 0 if creation failed, sound id if creation was successful
//-----------------------------------------------
CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position, bool play, bool loop, const CEntityId &id)
CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position, bool play, bool loop, const CEntityId &id)
{
uint32 retValue = 0;
@ -634,7 +634,7 @@ CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soun
// If the source is valid.
if(pSource == 0)
{
nlwarning("Sound '%s' not found !", CStringMapper::unmap(soundName).c_str());
nlwarning("Sound '%s' not found !", /*CStringMapper::unmap(soundName).c_str()*/soundName.toString().c_str());
return retValue;
}
@ -672,7 +672,7 @@ CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soun
// spawn a new source to the world
// return false if creation failed, true if creation was successful
//-----------------------------------------------
bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContext &context)
bool CSoundManager::spawnSource(const NLMISC::CSheetId &soundName, CSoundContext &context)
{
if (!_PlaySound) return false;
@ -683,7 +683,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContex
// If the source is valid.
if(pSource == 0)
{
nlwarning("Sound '%s' not found !", soundName);
nlwarning("Sound '%s' not found !", soundName.toString().c_str());
return false;
}
@ -702,7 +702,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContex
// spawn a new source to the world
// return false if creation failed, true if creation was successful
//-----------------------------------------------
bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, const NLMISC::CVector &position)
bool CSoundManager::spawnSource(const NLMISC::CSheetId &soundName, const NLMISC::CVector &position)
{
if (!_PlaySound) return false;
@ -712,7 +712,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, const NLMISC
// If the source is valid.
if(pSource == 0)
{
nlwarning("Sound '%s' not found !", CStringMapper::unmap(soundName).c_str ());
nlwarning("Sound '%s' not found !", /*CStringMapper::unmap(soundName).c_str ()*/soundName.toString().c_str());
return false;
}

View file

@ -32,6 +32,7 @@
// sound
#include "nel/sound/u_audio_mixer.h"
#include "nel/sound/u_listener.h"
#include "nel/misc/sheet_id.h"
extern class CSoundManager *SoundMngr;
@ -88,13 +89,13 @@ public:
/// Return the audio mixer instance pointer.
NLSOUND::UAudioMixer *getMixer();
TSourceId addSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position, bool play = true , bool loop = false, const NLMISC::CEntityId &id = NLMISC::CEntityId::Unknown );
TSourceId addSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position, bool play = true , bool loop = false, const NLMISC::CEntityId &id = NLMISC::CEntityId::Unknown );
/// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished
bool spawnSource (const NLMISC::TStringId &soundName, NLSOUND::CSoundContext &context);
bool spawnSource (const NLMISC::CSheetId &soundName, NLSOUND::CSoundContext &context);
/// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished
bool spawnSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position );
bool spawnSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position );
/**
* remove a source

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<PRIMITIVES VERSION="1">
<ROOT_PRIMITIVE TYPE="CPrimNode">
<ALIAS LAST_GENERATED="1256"/>
<ALIAS LAST_GENERATED="1269"/>
<CHILD TYPE="CPrimZone">
<PROPERTY TYPE="string">
<NAME>class</NAME>
@ -126,6 +126,10 @@
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>solo</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>player_replay_timer : 10</STRING>
<STRING>global_replay_timer : 10</STRING>
<STRING>mission_icon : tets</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
@ -138,7 +142,7 @@
<STRING>mission_title : WELCOME_RYZOM_CORE_TITLE</STRING>
<STRING>mission_desc : WELCOME_RYZOM_CORE_DESC</STRING>
<STRING># step_4</STRING>
<STRING>kill_fauna : chdfa1 3</STRING>
<STRING>kill_fauna : chdfa1 1</STRING>
<STRING>recv_money : 10000</STRING>
<STRING></STRING>
</PROPERTY>
@ -154,6 +158,157 @@
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>HUNTING_GROUNDS</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'urban_newbieland.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>guild</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>player_replay_timer : 10</STRING>
<STRING>global_replay_timer : 10</STRING>
<STRING>mission_icon : test</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING>req_guild</STRING>
<STRING>req_grade : Leader</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : WELCOME_RYZOM_CORE_DESC</STRING>
<STRING>mission_desc : WELCOME_RYZOM_CORE_TITLE</STRING>
<STRING># step_4</STRING>
<STRING>spawn_mission : WELCOME_RYZOM_CORE : chiang_the_strong : guild</STRING>
<STRING>set_obj : MIS_DO_MISSION</STRING>
<STRING>mission : WELCOME_RYZOM_CORE 2</STRING>
<STRING>kill_fauna : chdfa1 2</STRING>
<STRING>recv_money : 100000</STRING>
<STRING>recv_money : 20: guild</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1262"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>GUILD_MISSION</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'guild_missions.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>guild</STRING>
<STRING>mission_category : Killing</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING>req_guild</STRING>
<STRING>req_grade : Leader</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : GUILD_MISSION_TITLE</STRING>
<STRING>mission_desc : GUILD_MISSION_DESC</STRING>
<STRING># step</STRING>
<STRING>spawn_mission : SOLO_GUILD_MISSION : chiang_the_strong : guild</STRING>
<STRING>set_obj : MIS_DO_MISSION</STRING>
<STRING>mission : SOLO_GUILD_MISSION 2</STRING>
<STRING>kill_fauna : chdfa1 2</STRING>
<STRING>recv_money : 100: guild</STRING>
<STRING>recv_money : 50</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1268"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>SOLO_GUILD_MISSION</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'guild_missions.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>solo</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>not_proposed</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : SOLO_GUILD_MISSION_TITLE</STRING>
<STRING>mission_desc : SOLO_GUILD_MISSION_DESC</STRING>
<STRING># step</STRING>
<STRING>kill_fauna : chdfa1 1</STRING>
<STRING>recv_money : 20</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1269"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
@ -317,6 +472,46 @@
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimPoint">
<PT X="10213.500977" Y="-11784.600586" Z="0.000000"/>
<PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME>
<STRING>shop:guild_creator</STRING>
<STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_bot</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>equipment</NAME>
<STRING>CU: 4</STRING>
<STRING>CL: 4</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>is_stuck</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>creator</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>sheet_client</NAME>
<STRING>fyhc3old</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1257"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
@ -396,19 +591,8 @@
<ANGLE VALUE="3.504839"/>
<PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME>
<STRING>shop : NEWBIELAND_LARMOR_ALL</STRING>
<STRING>item : icmalb.sitem 10</STRING>
<STRING>item : icmalb.sitem 20</STRING>
<STRING>item : icmalb.sitem 50</STRING>
<STRING>item : icfalb.sitem 10</STRING>
<STRING>item : icfalb.sitem 20</STRING>
<STRING>item : icfalb.sitem 50</STRING>
<STRING>item : ictalb.sitem 10</STRING>
<STRING>item : ictalb.sitem 20</STRING>
<STRING>item : ictalb.sitem 50</STRING>
<STRING>item : iczalb.sitem 10</STRING>
<STRING>item : iczalb.sitem 20</STRING>
<STRING>item : iczalb.sitem 50</STRING>
<STRING>shop:guild_creator</STRING>
<STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
@ -444,6 +628,119 @@
</CHILD>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_folder</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Guild creator</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1264"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimZone">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_zone</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Npc Zone</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1265"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>bot_sheet_client</NAME>
<STRING>maha2</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_group</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Group</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_group_parameters</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>parameters</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1266"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimPoint">
<PT X="10315.800781" Y="-11736.200195" Z="0.000000"/>
<PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME>
<STRING>shop:guild_creator</STRING>
<STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_bot</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>equipment</NAME>
<STRING>CU: 4</STRING>
<STRING>CL: 4</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>guild_creator</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>sheet_client</NAME>
<STRING>fyhc3old</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1267"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
@ -455,14 +752,38 @@
<STRING>missions_editor</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>audience</NAME>
<STRING>solo</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>auto_remove_from_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>automatic</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission_tree</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>fail_if_inventory_is_full</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>giver_primitive</NAME>
<STRING>urban_newbieland.primitive</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>global_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_category</NAME>
<STRING>Killing</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_description</NAME>
<STRING>WELCOME_RYZOM_CORE_DESC</STRING>
@ -471,10 +792,18 @@
<NAME>mission_giver</NAME>
<STRING>$givervar@fullname$</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_icon</NAME>
<STRING>tets</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_title</NAME>
<STRING>WELCOME_RYZOM_CORE_TITLE</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mono_instance</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>WELCOME_RYZOM_CORE</STRING>
@ -483,10 +812,34 @@
<NAME>need_validation</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>non_abandonnable</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_in_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_proposed</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>phrase_auto_menu</NAME>
<STRING>TEST</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>player_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>replayable</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>run_only_once</NAME>
<STRING>false</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
@ -571,7 +924,7 @@
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>fauna/quantity</NAME>
<STRING>chdfa1 3</STRING>
<STRING>chdfa1 1</STRING>
</PROPERTY>
</CHILD>
</CHILD>
@ -597,6 +950,263 @@
</CHILD>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>audience</NAME>
<STRING>guild</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>auto_remove_from_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>automatic</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission_tree</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>fail_if_inventory_is_full</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>giver_primitive</NAME>
<STRING>urban_newbieland.primitive</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>global_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_category</NAME>
<STRING>Killing</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_description</NAME>
<STRING>WELCOME_RYZOM_CORE_TITLE</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_giver</NAME>
<STRING>$givervar@fullname$</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_icon</NAME>
<STRING>test</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_title</NAME>
<STRING>WELCOME_RYZOM_CORE_DESC</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mono_instance</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>HUNTING_GROUNDS</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>need_validation</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>non_abandonnable</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_in_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_proposed</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>phrase_auto_menu</NAME>
<STRING>TEST</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>player_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>replayable</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>run_only_once</NAME>
<STRING>false</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>variables</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>variables</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>var_npc</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>npc_function</NAME>
<STRING>fct_ranger_leader</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>npc_name</NAME>
<STRING>chiang_the_strong</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>var_name</NAME>
<STRING>givervar</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>pre_requisite</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>pre_requisite</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>require_guild_grade</NAME>
<STRING>Leader</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>require_guild_membership</NAME>
<STRING>true</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1258"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>step</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>step_4</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>actions</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>pre_actions</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>spawn_mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>giver_name</NAME>
<STRING>chiang_the_strong</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>guild</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_name</NAME>
<STRING>WELCOME_RYZOM_CORE</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission_objectives</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>objectives</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>do_mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_names</NAME>
<STRING>WELCOME_RYZOM_CORE 2</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>overload_objective</NAME>
<STRING>MIS_DO_MISSION</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>kill</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>fauna/quantity</NAME>
<STRING>chdfa1 2</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>kill chdfa1 2</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>actions</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>post_actions</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>amount</NAME>
<STRING>100000</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>recv_money</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>amount</NAME>
<STRING>20</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>recv_money</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>guild</NAME>
<STRING>true</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</ROOT_PRIMITIVE>
</PRIMITIVES>

View file

@ -6,7 +6,7 @@
BandwidthRatio = 1;
FSUDPPort = 47851;
FSListenHost = "open.ryzom.com";
FSListenHost = "192.168.1.112";
#include "frontend_service_default.cfg"

View file

@ -3,7 +3,7 @@
REM This script will start all the services with good parameters
REM set MODE=Debug
set MODE=..\..\build\bin\Release
set MODE=..\..\build\bin\Debug
rem AS
start %MODE%\ryzom_admin_service.exe --fulladminname=admin_executor_service --shortadminname=AES