diff --git a/code/ryzom/common/src/game_share/server_animation_module.cpp b/code/ryzom/common/src/game_share/server_animation_module.cpp index fbeb5516f..f16d7c9d8 100644 --- a/code/ryzom/common/src/game_share/server_animation_module.cpp +++ b/code/ryzom/common/src/game_share/server_animation_module.cpp @@ -1002,30 +1002,38 @@ IPrimitive* CServerAnimationModule::getAction(CObject* action, const std::string if(param.splitLines(result) ) { - if (result.size() == 0) - { - nlwarning("ERROR: npc_say but no parameters !!! %d in session ", scenarioId.asInt()); - } + std::vector res; - if(result.size()>=1) + if (result.empty()) { - NLMISC::CSString name(result[0]); - if(name.find(":",0)!=string::npos) + nlwarning("ERROR: npc_say but no parameters !!! %u in session ", scenarioId.asInt()); + } + else + { + res.resize(result.size()); + + if (result.size() >= 1) { - result[0] = prefix+result[0]; + std::string name(result[0]); + + if (name.find(":", 0) != string::npos) + { + res[0] = prefix + name; + } + + if (result.size() >= 2) + { + res[1] = toString("DSS_%u %s", scenarioId.asInt(), result[1].c_str()); + + for (uint32 i = 2, len = result.size(); i=2) - result[1] = "DSS_"+toString(scenarioId)+" "+result[1].c_str(); - if(result.size()>=3) - { - for(uint32 i=2;iaddPropertyByName("parameters", new CPropertyStringArray( (std::vector &)result )); + pAction->addPropertyByName("parameters", new CPropertyStringArray(res)); } }