mirror of
https://port.numenaute.org/aleajactaest/khanat-code-old.git
synced 2024-12-28 03:10:54 +00:00
merge aquatic to lirria
This commit is contained in:
commit
d6ef802487
30 changed files with 300 additions and 203 deletions
|
@ -405,8 +405,8 @@ IBackupServiceInterfaceImplementation::~IBackupServiceInterfaceImplementation()
|
|||
// backupInterfaceSingletonInstantiator
|
||||
//
|
||||
// This object provokes instantiation of our singleton at service startup
|
||||
// The instantiation of the signleton provokes registration in the singleton registry
|
||||
// menaing that the init() routine gets called properly in service init, etc.
|
||||
// The instantiation of the singleton provokes registration in the singleton registry
|
||||
// meaning that the init() routine gets called properly in service init, etc.
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
class CBackupInterfaceSingletonInstantiator
|
||||
|
|
|
@ -501,7 +501,7 @@ void CSpawnBotFauna::getBestTarget()
|
|||
if ( canMove()
|
||||
&& !player->isAggressive()
|
||||
&& entity->wpos().isValid()
|
||||
&& (entity->wpos().getFlags()&entity->getAStarFlag())==0)
|
||||
&& isPlaceAllowed(entity->getAStarFlag(), entity->wpos().getFlags()))
|
||||
{
|
||||
// Suppose we can go to him
|
||||
bool canChange = true;
|
||||
|
@ -706,7 +706,7 @@ void CSpawnBotFauna::getBestTarget()
|
|||
if ( profile
|
||||
&& profile->getAIProfileType()==ACTIVITY_CORPSE
|
||||
&& botCreat->wpos().isValid()
|
||||
&& !(botCreat->wpos().getFlags()&botCreat->getAStarFlag())
|
||||
&& isPlaceAllowed(botCreat->getAStarFlag(), botCreat->wpos().getFlags())
|
||||
)
|
||||
{
|
||||
CCorpseFaunaProfile *corpseProfile=NLMISC::safe_cast<CCorpseFaunaProfile*>(profile);
|
||||
|
@ -951,7 +951,7 @@ void CMovementMagnet::getNewDestination(RYAI_MAP_CRUNCH::CWorldPosition const& a
|
|||
continue;
|
||||
|
||||
if ( !faunaBot->wpos().isValid()
|
||||
|| (faunaBot->wpos().getFlags()&denyFlag)!=0)
|
||||
|| !isPlaceAllowed(denyFlag, faunaBot->wpos().getFlags()))
|
||||
continue;
|
||||
|
||||
// can be optimize by in avoid inversion.
|
||||
|
@ -990,7 +990,7 @@ void CMovementMagnet::getNewDestination(RYAI_MAP_CRUNCH::CWorldPosition const& a
|
|||
|
||||
// check if its a nogo and water proof position.
|
||||
if ( !wRndPos.isValid()
|
||||
|| (wRndPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlag)!=0 )
|
||||
|| !isPlaceAllowed(denyFlag, wRndPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
continue;
|
||||
|
||||
#if !FINAL_VERSION
|
||||
|
@ -1126,7 +1126,7 @@ CReturnMovementMagnet::CReturnMovementMagnet(RYAI_MAP_CRUNCH::CWorldPosition con
|
|||
|
||||
void CReturnMovementMagnet::getNewDestination(RYAI_MAP_CRUNCH::CWorldPosition const& alternativePos, RYAI_MAP_CRUNCH::TAStarFlag denyFlag)
|
||||
{
|
||||
if (_ForcedDest.isValid() && (_ForcedDest.getTopologyRef().getCstTopologyNode().getFlags()&denyFlag)==0)
|
||||
if (_ForcedDest.isValid() && isPlaceAllowed(denyFlag, _ForcedDest.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
_PathCont.setDestination(_ForcedDest);
|
||||
else
|
||||
CMovementMagnet::getNewDestination(alternativePos, denyFlag);
|
||||
|
|
|
@ -309,7 +309,7 @@ void CBotProfileFlee::updateProfile(uint ticksSinceLastUpdate)
|
|||
{
|
||||
RYAI_MAP_CRUNCH::CWorldPosition wpos=rootCell->getWorldPosition(_Bot->getPersistent().getChildIndex()&3);
|
||||
if ( wpos.isValid()
|
||||
&& (wpos.getFlags()&_DenyFlags)==0 ) // verify that we got some compatible flags ..
|
||||
&& isPlaceAllowed(_DenyFlags, wpos.getFlags())) // verify that we got some compatible flags ..
|
||||
{
|
||||
_LastDir=startDir;
|
||||
_LastStartPos=_Bot->wpos();
|
||||
|
|
|
@ -374,7 +374,7 @@ bool s_move(
|
|||
0.5f);
|
||||
// If we can't follow the path or the computed pos is invalid
|
||||
if ( status==CFollowPath::FOLLOW_NO_PATH
|
||||
|| (_Bot->wpos().isValid() && (_Bot->wpos().getFlags()&_Bot->getAStarFlag())!=0))
|
||||
|| (_Bot->wpos().isValid() && !isPlaceAllowed(_Bot->getAStarFlag(), _Bot->wpos().getFlags())))
|
||||
{
|
||||
// Restore position
|
||||
_Bot->setPos(lastPos);
|
||||
|
@ -605,7 +605,7 @@ static void s_updateProfile(
|
|||
_AtAttackDist = norm < _RangeMax;
|
||||
|
||||
// Check if target can be attacked
|
||||
bool const targetInForbiddenZone = ((!target->wpos().isValid())||(target->wpos().getFlags()&_Bot->getAStarFlag())!=0);
|
||||
bool const targetInForbiddenZone = ((!target->wpos().isValid())||!isPlaceAllowed(_Bot->getAStarFlag(), target->wpos().getFlags()));
|
||||
|
||||
/****************************************************************************/
|
||||
/* Profile main processing */
|
||||
|
|
|
@ -836,7 +836,7 @@ bool CGrpFauna::spawnPop(uint popVersion)
|
|||
if (!places()[i]->worldValidPos().isValid())
|
||||
return false;
|
||||
const RYAI_MAP_CRUNCH::TAStarFlag flags=places()[i]->worldValidPos().getTopologyRef().getCstTopologyNode().getFlags();
|
||||
if ((flags&getAStarFlag())!=0)
|
||||
if(!isPlaceAllowed(getAStarFlag(), flags)) // if place is not allowed - we now deal with creatures that can't go on the ground
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -97,12 +97,37 @@ IAliasCont* CMgrFauna::getAliasCont(TAIType type)
|
|||
|
||||
CAliasTreeOwner* CMgrFauna::createChild(IAliasCont* cont, CAIAliasDescriptionNode* aliasTree)
|
||||
{
|
||||
RYAI_MAP_CRUNCH::TAStarFlag flags = RYAI_MAP_CRUNCH::Nothing;
|
||||
// this hack is to retrieve the AStar flags from the fauna group. We expect the groupname to be as follows : groupname:AStarFlag[|AStarFlag]
|
||||
std::string key, tail;
|
||||
std::string p = NLMISC::toLower(this->getAliasFullName()); // force lowercase
|
||||
|
||||
AI_SHARE::stringToKeywordAndTail(p, key, tail);
|
||||
int bAstarFlags = 0;
|
||||
if (!tail.empty()){ //AStarFlags were provided
|
||||
bAstarFlags = 1;
|
||||
vector<string> sFlags;
|
||||
NLMISC::splitString(tail, "|", sFlags);
|
||||
FOREACHC(it, vector<string>, sFlags){
|
||||
TAStarFlag tmpflag = RYAI_MAP_CRUNCH::toAStarFlag(*it);
|
||||
if( (tmpflag == TAStarFlag::Nothing) &&
|
||||
it->compare("nothing")){ // this is not a valid AStarFlags => Let's preserve the default way the fauna is handled
|
||||
bAstarFlags = 0;
|
||||
break;
|
||||
}
|
||||
flags = RYAI_MAP_CRUNCH::TAStarFlag( flags | tmpflag);
|
||||
}
|
||||
}
|
||||
|
||||
if(!bAstarFlags){
|
||||
flags = WaterAndNogo;
|
||||
}
|
||||
CAliasTreeOwner* child = NULL;
|
||||
|
||||
switch (aliasTree->getType())
|
||||
{
|
||||
case AITypeGrp:
|
||||
child = new CGrpFauna(this, aliasTree, WaterAndNogo);
|
||||
child = new CGrpFauna(this, aliasTree, flags);
|
||||
break;
|
||||
case AITypeEvent:
|
||||
child = new CAIEventReaction(getStateMachine(), aliasTree);
|
||||
|
|
|
@ -1531,6 +1531,9 @@ bool CCellZone::findRestAndFoodFaunaZoneInCellList(CFaunaZone const*& rest, CPro
|
|||
activities[CCellChoice::FOOD_ZONE_SCORE].merge(foodActivity);
|
||||
activities[CCellChoice::REST_ZONE_SCORE].merge(restActivity);
|
||||
|
||||
CPossibleTAStarFlags PossibleTAStarFlags; // possible TAStarFlags
|
||||
const int nFlags = PossibleTAStarFlags.buildTAStarFlagsList(denyflags); // we build the list according to the deny flags
|
||||
|
||||
// Look for a conveninent zone in a convenient cell.
|
||||
if (extensiveDebug) nldebug("ED0001.02: cells.size()=%d", cells.size());
|
||||
// For each cell
|
||||
|
@ -1586,22 +1589,15 @@ bool CCellZone::findRestAndFoodFaunaZoneInCellList(CFaunaZone const*& rest, CPro
|
|||
continue;
|
||||
}
|
||||
|
||||
TAStarFlag const flags = (TAStarFlag)(wpos.getFlags()&GroundFlags); // Erase unused flags.
|
||||
|
||||
float const score = faunaZone->getFreeAreaScore();
|
||||
|
||||
for (TAStarFlag possibleFlag=Nothing;possibleFlag<=GroundFlags;possibleFlag=(TAStarFlag)(possibleFlag+2)) // tricky !! -> to replace with a defined list of flags to checks.
|
||||
{
|
||||
const uint32 incompatibilityFlags=possibleFlag&denyflags&GroundFlags; // Erase unused flags.
|
||||
if (incompatibilityFlags)
|
||||
{
|
||||
if (extensiveDebug) nldebug("ED0001.06: incompatibilityFlags");
|
||||
continue;
|
||||
}
|
||||
|
||||
for(int i = 0;i < nFlags;i++){
|
||||
TAStarFlag possibleFlag = PossibleTAStarFlags.get(i);
|
||||
const uint32 masterTopo=wpos.getTopologyRef().getCstTopologyNode().getMasterTopo(possibleFlag);
|
||||
if (masterTopo==~0)
|
||||
if(masterTopo==CTopology::TTopologyId::UNDEFINED_TOPOLOGY)
|
||||
{
|
||||
if (extensiveDebug) nldebug("ED0001.07: masterTopo==~0");
|
||||
if (extensiveDebug) nldebug("ED0001.07: CTopology::TTopologyId::UNDEFINED_TOPOLOGY");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1611,7 +1607,7 @@ bool CCellZone::findRestAndFoodFaunaZoneInCellList(CFaunaZone const*& rest, CPro
|
|||
continue;
|
||||
}
|
||||
|
||||
CCellChoice::CZoneScore &zoneScore=searchMap[possibleFlag][masterTopo].zones[typeZone];
|
||||
CCellChoice::CZoneScore &zoneScore=searchMap[possibleFlag & WaterAndNogo][masterTopo].zones[typeZone];
|
||||
|
||||
if (score<zoneScore.score)
|
||||
{
|
||||
|
@ -1662,8 +1658,8 @@ bool CCellZone::findRestAndFoodFaunaZoneInCellList(CFaunaZone const*& rest, CPro
|
|||
#if !FINAL_VERSION
|
||||
const RYAI_MAP_CRUNCH::TAStarFlag restFlags=rest->worldValidPos().getTopologyRef().getCstTopologyNode().getFlags();
|
||||
const RYAI_MAP_CRUNCH::TAStarFlag foodFlags=food->worldValidPos().getTopologyRef().getCstTopologyNode().getFlags();
|
||||
nlassert((restFlags&denyflags)==0);
|
||||
nlassert((foodFlags&denyflags)==0);
|
||||
nlassert(isPlaceAllowed(denyflags, restFlags));
|
||||
nlassert(isPlaceAllowed(denyflags, foodFlags));
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
@ -1740,7 +1736,7 @@ const CFaunaZone *CCellZone::lookupFaunaZone(const CPropertySet &activity, TASta
|
|||
}
|
||||
|
||||
const RYAI_MAP_CRUNCH::TAStarFlag flags=faunaZone->worldValidPos().getTopologyRef().getCstTopologyNode().getFlags();
|
||||
if (flags&denyflags)
|
||||
if (!isPlaceAllowed(denyflags, flags))
|
||||
continue;
|
||||
|
||||
const float score=faunaZone->getFreeAreaScore();
|
||||
|
|
|
@ -34,6 +34,9 @@ NL_BEGIN_STRING_CONVERSION_TABLE (TAStarFlag)
|
|||
NL_STRING_CONVERSION_TABLE_ENTRY(NoGo)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(WaterAndNogo)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(GroundFlags)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(Ground)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(GroundAndNogo)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(GroundAndWaterAndNogo)
|
||||
NL_END_STRING_CONVERSION_TABLE(TAStarFlag, AStarFlagConversion, Nothing)
|
||||
|
||||
const std::string& toString(TAStarFlag flag)
|
||||
|
@ -781,14 +784,14 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosS();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isESlotValid())
|
||||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosE();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -798,7 +801,7 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosE();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isSSlotValid())
|
||||
|
@ -819,14 +822,14 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosN();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isESlotValid())
|
||||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosE();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -836,7 +839,7 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosE();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isNSlotValid())
|
||||
|
@ -856,14 +859,14 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosN();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isWSlotValid())
|
||||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosW();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -873,7 +876,7 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosW();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isNSlotValid())
|
||||
|
@ -893,14 +896,14 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosS();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isWSlotValid())
|
||||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosW();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -910,7 +913,7 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
return false;
|
||||
|
||||
tmpPos=tmpPos.getPosW();
|
||||
if ((tmpPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0)
|
||||
if (!isPlaceAllowed(denyFlags, tmpPos.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
return false;
|
||||
|
||||
if (!tmpPos.getCellLinkage().isSSlotValid())
|
||||
|
@ -1348,28 +1351,20 @@ void CWorldMap::countCells(uint &compute, uint &white, uint &simple, uint &multi
|
|||
|
||||
const CTopology &startTopoNode=startPos.getTopologyRef().getCstTopologyNode();
|
||||
const CTopology &endTopoNode=endPos.getTopologyRef().getCstTopologyNode();
|
||||
TAStarFlag startFlag=(TAStarFlag)(startTopoNode.getFlags()&WaterAndNogo);
|
||||
// if (!allowStartRestriction)
|
||||
startFlag=Nothing;
|
||||
|
||||
CPossibleTAStarFlags PossibleTAStarFlags; // build a list of possible flags given the denyflags
|
||||
const int nFlags = PossibleTAStarFlags.buildTAStarFlagsList(denyflags);
|
||||
|
||||
for (TAStarFlag possibleFlag=Nothing;possibleFlag<=WaterAndNogo;possibleFlag=(TAStarFlag)(possibleFlag+2)) // tricky !! -> to replace with a defined list of flags to checks.
|
||||
{
|
||||
const uint32 incompatibilityFlags=(possibleFlag&(denyflags&~startFlag))&WaterAndNogo;
|
||||
|
||||
if (incompatibilityFlags)
|
||||
for(int i = 0;i < nFlags;i++){ // for each possible flag
|
||||
TAStarFlag possibleFlag = PossibleTAStarFlags.get(i);
|
||||
uint32 startMasterTopo=startTopoNode.getMasterTopo(possibleFlag);
|
||||
uint32 endMasterTopo=endTopoNode.getMasterTopo(possibleFlag);
|
||||
if( (startMasterTopo^endMasterTopo)!=0 ||
|
||||
(startMasterTopo == CTopology::TTopologyId::UNDEFINED_TOPOLOGY)){ // if not same masterTopo or invalid masterTopo then continue
|
||||
continue;
|
||||
|
||||
const uint32 startMasterTopo=startTopoNode.getMasterTopo(possibleFlag);
|
||||
const uint32 endMasterTopo=endTopoNode.getMasterTopo(possibleFlag);
|
||||
if ( (startMasterTopo^endMasterTopo)!=0
|
||||
|| startMasterTopo == std::numeric_limits<uint32>::max()) // if not same masterTopo or invalid masterTopo then bypass ..
|
||||
continue;
|
||||
|
||||
}
|
||||
res.set(possibleFlag, startMasterTopo);
|
||||
res.setValid();
|
||||
|
||||
if (((possibleFlag&denyflags)&WaterAndNogo)==0) // it was the optimal case ?
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1665,7 +1660,7 @@ bool CWorldMap::findAStarPath(const CTopology::TTopologyId &start, const CTopolo
|
|||
const CTopology &ntp = next.getCstTopologyNode();
|
||||
|
||||
// don't examine not accessible nodes
|
||||
if ((ntp.Flags & denyflags) != 0)
|
||||
if (!isPlaceAllowed(denyflags,(RYAI_MAP_CRUNCH::TAStarFlag) ntp.Flags))
|
||||
continue;
|
||||
|
||||
// compute actual node distance
|
||||
|
@ -1821,7 +1816,7 @@ bool CWorldMap::findInsideAStarPath(CWorldPosition const& start, CWorldPosition
|
|||
continue;
|
||||
|
||||
// If that point's flags are not compatible skip it
|
||||
if ((denyflags & mv.getTopologyRef().getCstTopologyNode().getFlags()) != 0)
|
||||
if (!isPlaceAllowed(denyflags, mv.getTopologyRef().getCstTopologyNode().getFlags()))
|
||||
continue;
|
||||
|
||||
// Build an A* node
|
||||
|
@ -1927,7 +1922,7 @@ bool CWorldMap::move(CWorldPosition &pos, CAStarPath &path, uint ¤tstep) c
|
|||
bool CWorldMap::move(CWorldPosition& pos, CMapPosition const& end, TAStarFlag const denyFlags) const
|
||||
{
|
||||
CWorldPosition tempPos(pos);
|
||||
BOMB_IF((tempPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0, "Error in CWorldMap::mode, invalid flag "<<RYAI_MAP_CRUNCH::toString(tempPos.getTopologyRef().getCstTopologyNode().getFlags())
|
||||
BOMB_IF(!isPlaceAllowed(denyFlags, tempPos.getTopologyRef().getCstTopologyNode().getFlags()), "Error in CWorldMap::mode, invalid flag "<<RYAI_MAP_CRUNCH::toString(tempPos.getTopologyRef().getCstTopologyNode().getFlags())
|
||||
<<"on world pos "<<pos.toString()<<" while going to map pos "<<end.toString()<<" with denyflags "<<RYAI_MAP_CRUNCH::toString(denyFlags), return false);
|
||||
// not optimum but it will be rewrite for each specialized rootcell type.
|
||||
const sint32 x0 = pos.x();
|
||||
|
@ -1945,7 +1940,7 @@ bool CWorldMap::move(CWorldPosition& pos, CMapPosition const& end, TAStarFlag co
|
|||
|
||||
|
||||
if ( !move(tempPos, CDirection(dx,dy))
|
||||
|| (tempPos.getTopologyRef().getCstTopologyNode().getFlags()&denyFlags)!=0) // Arghh !!
|
||||
|| !isPlaceAllowed(denyFlags, tempPos.getTopologyRef().getCstTopologyNode().getFlags())) // Arghh !!
|
||||
return false;
|
||||
pos=tempPos;
|
||||
}
|
||||
|
|
|
@ -52,18 +52,74 @@ enum TAStarFlag
|
|||
Water = 2,
|
||||
NoGo = 4,
|
||||
WaterAndNogo = 6,
|
||||
GroundFlags = WaterAndNogo
|
||||
GroundFlags = WaterAndNogo,
|
||||
Ground = 8,
|
||||
GroundAndNogo = 12,
|
||||
GroundAndWaterAndNogo = 14
|
||||
};
|
||||
|
||||
const std::string& toString(TAStarFlag flag);
|
||||
TAStarFlag toAStarFlag(const std::string& str);
|
||||
|
||||
inline int isPlaceAllowed(TAStarFlag denyFlags, TAStarFlag flags){ // check if the place is allowed given the denyFlags and flags
|
||||
if(denyFlags & Ground){ // in case of ground is denied
|
||||
return ((flags & denyFlags) == 0) && // denied flags against the current flags
|
||||
(flags & Water); // check the current flag is in the water
|
||||
} else {
|
||||
return (flags & denyFlags) == 0; // denied flags against the current flags
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint const WorldMapGridSize = 256;
|
||||
double const WorldGridResolution = 1.;
|
||||
NLMISC::CVectorD const WorldStartOffset = NLMISC::CVectorD(0., 0., 0.);
|
||||
|
||||
typedef sint TLevel;
|
||||
|
||||
class CPossibleTAStarFlags { // class to create a list of possible TAStarFlags
|
||||
private:
|
||||
uint8 nFlags;
|
||||
uint8 aFlags[3];
|
||||
public:
|
||||
CPossibleTAStarFlags() : nFlags(0){ // default constructor
|
||||
}
|
||||
int buildTAStarFlagsList(const TAStarFlag denyflags){
|
||||
nFlags = 0;
|
||||
if(denyflags & Ground){ // ground forbidden
|
||||
if(!(denyflags & Water)){ // Water possible
|
||||
aFlags[nFlags++] = (uint8)(Water | Ground);
|
||||
if(!(denyflags & NoGo)){ // Water and NoGo possible
|
||||
aFlags[nFlags++] = (uint8)(Water | NoGo | Ground);
|
||||
}
|
||||
}
|
||||
} else { // ground possible
|
||||
aFlags[nFlags++] = (uint8)(Nothing);
|
||||
if(!(denyflags & Water)){ // Ground and Water possible
|
||||
aFlags[nFlags++] = (uint8)(Water);
|
||||
if(!(denyflags & NoGo)){ // Ground, Water and NoGo possible
|
||||
aFlags[nFlags++] = (uint8)(Water | NoGo);
|
||||
}
|
||||
} else {
|
||||
if(!(denyflags & NoGo)){ // Ground and NoGo possible
|
||||
aFlags[nFlags++] = (uint8)(NoGo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return nFlags;
|
||||
}
|
||||
int size(){ // returns the size of the list of possible TAStarFlags
|
||||
return nFlags;
|
||||
}
|
||||
|
||||
TAStarFlag get(int nIndex){ // returns a possible TAStarFlag
|
||||
return (TAStarFlag)aFlags[nIndex];
|
||||
}
|
||||
|
||||
CPossibleTAStarFlags(const TAStarFlag denyflags){ //constructor, build a possible TAStarFlag list
|
||||
buildTAStarFlagsList(denyflags);
|
||||
}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -1573,7 +1629,7 @@ void CTopology::updateTopologyRef(CWorldMap* worldMapPtr)
|
|||
inline
|
||||
uint32 CTopology::getMasterTopo(TAStarFlag const& flags) const
|
||||
{
|
||||
switch (flags&WaterAndNogo)
|
||||
switch (flags&(WaterAndNogo | Ground))
|
||||
{
|
||||
case Nothing:
|
||||
default:
|
||||
|
@ -1584,6 +1640,12 @@ uint32 CTopology::getMasterTopo(TAStarFlag const& flags) const
|
|||
return MasterTopLN;
|
||||
case WaterAndNogo:
|
||||
return MasterTopLNW;
|
||||
case Water|Ground:
|
||||
return (MasterTopL == TTopologyId::UNDEFINED_TOPOLOGY) ? MasterTopLW : TTopologyId::UNDEFINED_TOPOLOGY;
|
||||
case Water|Ground|NoGo:
|
||||
return (MasterTopL == TTopologyId::UNDEFINED_TOPOLOGY) ? MasterTopLNW : TTopologyId::UNDEFINED_TOPOLOGY;
|
||||
case NoGo|Ground:
|
||||
return TTopologyId::UNDEFINED_TOPOLOGY;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -41,10 +41,10 @@ NLMISC::CCmdArgs Args;
|
|||
|
||||
int main(sint32 argc, char **argv)
|
||||
{
|
||||
NLMISC::CApplicationContext applicationContext;
|
||||
|
||||
QApplication app(argc, argv);
|
||||
|
||||
NLMISC::CApplicationContext applicationContext;
|
||||
|
||||
// parse command-line arguments
|
||||
Args.setDescription("Ryzom Configuration");
|
||||
Args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default");
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -27344,7 +27344,12 @@ uiKeyPARAGRAPH [Paragraph]
|
|||
// INDEX 6488
|
||||
uiKeyOEM_102 [Vergleichszeichen < >]
|
||||
|
||||
// HASH_VALUE 39C742C862CB934B
|
||||
// HASH_VALUE 61B9BCDD9CF5F488
|
||||
// INDEX 6489
|
||||
uiFilterMenuDynamic [%s @{T8}/%s]
|
||||
uiFilterMenuDynamic [%channel @{T8}/%shortcut]
|
||||
|
||||
// displayed in System/Windows/Communication
|
||||
// HASH_VALUE 6588A87B1E781483
|
||||
// INDEX 6490
|
||||
uiwmAppZone [AppZone]
|
||||
|
||||
|
|
|
@ -27325,6 +27325,11 @@ uiKeyPARAGRAPH [Paragraph]
|
|||
// INDEX 6488
|
||||
uiKeyOEM_102 [OEM 102]
|
||||
|
||||
// HASH_VALUE 39C742C862CB934B
|
||||
// HASH_VALUE 61B9BCDD9CF5F488
|
||||
// INDEX 6489
|
||||
uiFilterMenuDynamic [%s @{T8}/%s]
|
||||
uiFilterMenuDynamic [%channel @{T8}/%shortcut]
|
||||
|
||||
// HASH_VALUE 6588A87B1E781483
|
||||
// INDEX 6490
|
||||
uiwmAppZone [AppZone]
|
||||
|
||||
|
|
Binary file not shown.
|
@ -765,7 +765,7 @@ toolToolMaker [Outil de création d'outils]
|
|||
|
||||
// HASH_VALUE EA19107FE4B2E658
|
||||
// INDEX 191
|
||||
toolMeleeWeaponTool [Outil de Création d'armes de mêlée]
|
||||
toolMeleeWeaponTool [Outil de création d'armes de mêlée]
|
||||
|
||||
// HASH_VALUE E546D4771C56E06C
|
||||
// INDEX 192
|
||||
|
@ -889,7 +889,7 @@ mpfq [Bien %p]
|
|||
|
||||
// HASH_VALUE B396C73030654FFA
|
||||
// INDEX 222
|
||||
mpfqQuite [Très Bien %p]
|
||||
mpfqQuite [Très bien %p]
|
||||
|
||||
// HASH_VALUE 6914F36AAB34C391
|
||||
// INDEX 223
|
||||
|
@ -1017,7 +1017,7 @@ mpstat17 [Protection contre le Feu]
|
|||
|
||||
// HASH_VALUE AC07A397E967CF92
|
||||
// INDEX 254
|
||||
mpstat18 [Protection contre les Ondes de Choc]
|
||||
mpstat18 [Protection contre les Ondes de choc]
|
||||
|
||||
// HASH_VALUE ACC9848051C5D4AA
|
||||
// INDEX 255
|
||||
|
@ -1185,35 +1185,35 @@ mpstatItemQualifier25 [de résistance aux Primes Racines]
|
|||
|
||||
// HASH_VALUE A3A16AB7AB88EC56
|
||||
// INDEX 296
|
||||
mpstatItemQualifier26 [de vitesse Élémentaire]
|
||||
mpstatItemQualifier26 [de vitesse élémentaire]
|
||||
|
||||
// HASH_VALUE 22F4C8AFA3949C0D
|
||||
// INDEX 297
|
||||
mpstatItemQualifier27 [de puissance Élémentaire]
|
||||
mpstatItemQualifier27 [de puissance élémentaire]
|
||||
|
||||
// HASH_VALUE 66D6F9F695A9A80F
|
||||
// INDEX 298
|
||||
mpstatItemQualifier28 [de vitesse Débilitante]
|
||||
mpstatItemQualifier28 [de vitesse débilitante]
|
||||
|
||||
// HASH_VALUE A216A09E44081861
|
||||
// INDEX 299
|
||||
mpstatItemQualifier29 [de puissance Débilitante]
|
||||
mpstatItemQualifier29 [de puissance débilitante]
|
||||
|
||||
// HASH_VALUE A4D6F9F695A9A80E
|
||||
// INDEX 300
|
||||
mpstatItemQualifier30 [de vitesse Neutralisante]
|
||||
mpstatItemQualifier30 [de vitesse neutralisante]
|
||||
|
||||
// HASH_VALUE E016A09E44081860
|
||||
// INDEX 301
|
||||
mpstatItemQualifier31 [de puissance Neutralisante]
|
||||
mpstatItemQualifier31 [de puissance neutralisante]
|
||||
|
||||
// HASH_VALUE 20632F838D25C418
|
||||
// INDEX 302
|
||||
mpstatItemQualifier32 [de vitesse Curative]
|
||||
mpstatItemQualifier32 [de vitesse curative]
|
||||
|
||||
// HASH_VALUE 1F85B46C4578A417
|
||||
// INDEX 303
|
||||
mpstatItemQualifier33 [de puissance Curative]
|
||||
mpstatItemQualifier33 [de puissance curative]
|
||||
|
||||
// HASH_VALUE 6418F40C6418F40C
|
||||
// INDEX 304
|
||||
|
@ -1233,7 +1233,7 @@ ptFire [Feu]
|
|||
|
||||
// HASH_VALUE A1075C8FA47754A5
|
||||
// INDEX 308
|
||||
ptShockwave [Ondes de Choc]
|
||||
ptShockwave [Ondes de choc]
|
||||
|
||||
// HASH_VALUE 2E2700782D96FC97
|
||||
// INDEX 309
|
||||
|
@ -3729,7 +3729,7 @@ uittChooseLabColor [Choisir la couleur de l'en-tête "Orientation"]
|
|||
|
||||
// HASH_VALUE 46BB036084B05DC2
|
||||
// INDEX 931
|
||||
uittChooseMemColor [Choisir la couleur de l'en-tête "Guilde & Equipe"]
|
||||
uittChooseMemColor [Choisir la couleur de l'en-tête "Guilde & Équipe"]
|
||||
|
||||
// HASH_VALUE E986833A969EB864
|
||||
// INDEX 932
|
||||
|
@ -5704,21 +5704,21 @@ uittFameAllegianceCiv4 [Vous avez prêté allégeance aux @{2F2F}Fyros@{FFFF}.\n
|
|||
// HASH_VALUE F3701FA45695A3EA
|
||||
// INDEX 1399
|
||||
uittFameAllegianceCiv5 [Vous avez prêté allégeance aux @{2F2F}Matis@{FFFF}.\n
|
||||
Ceci vous permet d'avoir une renommée Matis plus grande, mais votre guilde doit aussi être d'allégeance Matis.\n
|
||||
Ceci vous permet d'avoir une renommée Matis plus grande, mais votre guilde doit aussi être d'allégeance matis.\n
|
||||
Pour renier votre allégeance, vous pouvez aller voir un @{2F2F}magistrat@{FFFF} dans une capitale.\n
|
||||
Vous perdrez automatiquement votre allégeance si votre renommée @{2F2F}Matis@{FFFF} atteint 0.]
|
||||
|
||||
// HASH_VALUE 9F69A500FA32081B
|
||||
// INDEX 1400
|
||||
uittFameAllegianceCiv6 [Vous avez prêté allégeance aux @{2F2F}Trykers@{FFFF}.\n
|
||||
Ceci vous permet d'avoir une renommée Tryker plus grande, mais votre guilde doit aussi être d'allégeance Tryker.\n
|
||||
Ceci vous permet d'avoir une renommée Tryker plus grande, mais votre guilde doit aussi être d'allégeance tryker.\n
|
||||
Pour renier votre allégeance, vous pouvez aller voir un @{2F2F}magistrat@{FFFF} dans une capitale.\n
|
||||
Vous perdrez automatiquement votre allégeance si votre renommée @{2F2F}Tryker@{FFFF} atteint 0.]
|
||||
|
||||
// HASH_VALUE F8AF33A2D5666BFE
|
||||
// INDEX 1401
|
||||
uittFameAllegianceCiv7 [Vous avez prêté allégeance aux @{2F2F}Zoraïs@{FFFF}.\n
|
||||
Ceci vous permet d'avoir une renommée Zoraï plus grande, mais votre guilde doit aussi être d'allégeance Zoraï.\n
|
||||
Ceci vous permet d'avoir une renommée Zoraï plus grande, mais votre guilde doit aussi être d'allégeance zoraï.\n
|
||||
Pour renier votre allégeance, vous pouvez aller voir un @{2F2F}magistrat@{FFFF} dans une capitale.\n
|
||||
Vous perdrez automatiquement votre allégeance si votre renommée @{2F2F}Zoraï@{FFFF} atteint 0.]
|
||||
|
||||
|
@ -5769,28 +5769,28 @@ uittFameAllegianceCivGuild1 [Votre guilde est @{2F2F}apatride@{FFFF}.\n
|
|||
// HASH_VALUE 48B5E21ED594D35A
|
||||
// INDEX 1408
|
||||
uittFameAllegianceCivGuild4 [Votre guilde a prêté allégeance aux @{2F2F}Fyros@{FFFF}.\n
|
||||
Cela lui permet d'avoir une renommée Fyros plus grande, et d'enrôler des membres d'allégeance Fyros ou Neutre (apatrides).\n
|
||||
Cela lui permet d'avoir une renommée Fyros plus grande, et d'enrôler des membres d'allégeance fyros ou Neutre (apatrides).\n
|
||||
Pour renier son allégeance, le chef de guilde peut aller voir un @{2F2F}magistrat@{FFFF} de guilde dans une capitale.\n
|
||||
Votre guilde perdra automatiquement son allégeance si sa renommée @{2F2F}Fyros@{FFFF} atteint 0. Les membres auront alors une allégeance indéterminée.]
|
||||
|
||||
// HASH_VALUE 0AB5CA14D1A21342
|
||||
// INDEX 1409
|
||||
uittFameAllegianceCivGuild5 [Votre guilde a prêté allégeance aux @{2F2F}Matis@{FFFF}.\n
|
||||
Cela lui permet d'avoir une renommée Matis plus grande, et d'enrôler des membres d'allégeance Matis ou Neutre (apatrides).\n
|
||||
Cela lui permet d'avoir une renommée Matis plus grande, et d'enrôler des membres d'allégeance matis ou Neutre (apatrides).\n
|
||||
Pour renier son allégeance, le chef de guilde peut aller voir un @{2F2F}magistrat@{FFFF} de guilde dans une capitale.\n
|
||||
Votre guilde perdra automatiquement son allégeance si sa renommée @{2F2F}Matis@{FFFF} atteint 0. Les membres auront alors une allégeance indéterminée.]
|
||||
|
||||
// HASH_VALUE 527303AF879765CE
|
||||
// INDEX 1410
|
||||
uittFameAllegianceCivGuild6 [Votre guilde a prêté allégeance aux @{2F2F}Trykers@{FFFF}.\n
|
||||
Cela lui permet d'avoir une renommée Tryker plus grande, et d'enrôler des membres d'allégeance Tryker ou Neutre (apatrides).\n
|
||||
Cela lui permet d'avoir une renommée Tryker plus grande, et d'enrôler des membres d'allégeance tryker ou Neutre (apatrides).\n
|
||||
Pour renier son allégeance, le chef de guilde peut aller voir un @{2F2F}magistrat@{FFFF} de guilde dans une capitale.\n
|
||||
Votre guilde perdra automatiquement son allégeance si sa renommée @{2F2F}Tryker@{FFFF} atteint 0. Les membres auront alors une allégeance indéterminée.]
|
||||
|
||||
// HASH_VALUE 4D145A02D0B37350
|
||||
// INDEX 1411
|
||||
uittFameAllegianceCivGuild7 [Votre guilde a prêté allégeance aux @{2F2F}Zoraïs@{FFFF}.\n
|
||||
Cela lui permet d'avoir une renommée Zoraï plus grande, et d'enrôler des membres d'allégeance Zoraï ou Neutre (apatrides).\n
|
||||
Cela lui permet d'avoir une renommée Zoraï plus grande, et d'enrôler des membres d'allégeance zoraï ou Neutre (apatrides).\n
|
||||
Pour renier son allégeance, le chef de guilde peut aller voir un @{2F2F}magistrat@{FFFF} de guilde dans une capitale.\n
|
||||
Votre guilde perdra automatiquement son allégeance si sa renommée @{2F2F}Zoraï@{FFFF} atteint 0. Les membres auront alors une allégeance indéterminée.]
|
||||
|
||||
|
@ -5884,7 +5884,7 @@ uiFame_tribe_beachcombers [Déferlants]
|
|||
|
||||
// HASH_VALUE 63266F61E5443E8A
|
||||
// INDEX 1430
|
||||
uiFame_tribe_black_circle [Cercle Noir]
|
||||
uiFame_tribe_black_circle [Cercle noir]
|
||||
|
||||
// HASH_VALUE 6299CC93A9E6F0B5
|
||||
// INDEX 1431
|
||||
|
@ -5944,7 +5944,7 @@ uiFame_tribe_goo_heads [Illuminés]
|
|||
|
||||
// HASH_VALUE 67556F6D56E56F7F
|
||||
// INDEX 1445
|
||||
uiFame_tribe_green_seed [Graines Vertes]
|
||||
uiFame_tribe_green_seed [Graines vertes]
|
||||
|
||||
// HASH_VALUE D468F810D8A85C6F
|
||||
// INDEX 1446
|
||||
|
@ -6016,11 +6016,11 @@ uiFame_tribe_sacred_sap [Sève Sacrée]
|
|||
|
||||
// HASH_VALUE 448B505B94DA7C4F
|
||||
// INDEX 1463
|
||||
uiFame_tribe_sap_gleaners [Sèves Sèches]
|
||||
uiFame_tribe_sap_gleaners [Sèves sèches]
|
||||
|
||||
// HASH_VALUE D9A8DC6C1887837B
|
||||
// INDEX 1464
|
||||
uiFame_tribe_sap_slaves [Esclaves de la Sève]
|
||||
uiFame_tribe_sap_slaves [Esclaves de la sève]
|
||||
|
||||
// HASH_VALUE 2398709DE739B4A7
|
||||
// INDEX 1465
|
||||
|
@ -6064,7 +6064,7 @@ uiFame_tribe_tutors [Tuteurs]
|
|||
|
||||
// HASH_VALUE 964B349BA5369B7D
|
||||
// INDEX 1475
|
||||
uiFame_tribe_water_breakers [Dresseurs d'Eau]
|
||||
uiFame_tribe_water_breakers [Dresseurs d'eau]
|
||||
|
||||
// HASH_VALUE 1DA4D48A5C4617C9
|
||||
// INDEX 1476
|
||||
|
@ -6311,12 +6311,12 @@ uiPvPEffect_region_enchantedisle_Malus [@{FE7F}Le foyer de l'Ile Enchanté @{FFF
|
|||
|
||||
// HASH_VALUE 0B3FED53BD64ED63
|
||||
// INDEX 1527
|
||||
uiPvPEffect_region_thefount_Bonus [@{FE7F}Le foyer de la Source @{FFFF}:\n
|
||||
uiPvPEffect_region_thefount_Bonus [@{FE7F}Le foyer de la source @{FFFF}:\n
|
||||
Augmente la dextérité de @{2F2F}%n]
|
||||
|
||||
// HASH_VALUE 49F4A45BF1E083F6
|
||||
// INDEX 1528
|
||||
uiPvPEffect_region_thefount_Malus [@{FE7F}Le foyer de la Source @{FFFF}:\n
|
||||
uiPvPEffect_region_thefount_Malus [@{FE7F}Le foyer de la source @{FFFF}:\n
|
||||
Réduit la dextérité de @{2F2F}%n]
|
||||
|
||||
// HASH_VALUE 72242B6AE273F26C
|
||||
|
@ -6522,7 +6522,7 @@ uiPvPEffect_region_nexus_Malus [@{FE7F}Le foyer du Nexus @{FFFF}:\n
|
|||
// HASH_VALUE AA1DC3C4FD396774
|
||||
// INDEX 1569
|
||||
uiHPDesc [@{6F6F}HP@{FFFF},\n
|
||||
les Points de Vie mesurent le montant des dommages qu'un personnage peut supporter avant de mourir.]
|
||||
les Points de vie mesurent le montant des dommages qu'un personnage peut supporter avant de mourir.]
|
||||
|
||||
// HASH_VALUE 08CF5A4F3BBC8D17
|
||||
// INDEX 1570
|
||||
|
@ -6567,7 +6567,7 @@ uiMetaDesc [@{6F6F}Métabolisme@{FFFF},\n
|
|||
// HASH_VALUE 9DF5C8519F10DD99
|
||||
// INDEX 1578
|
||||
uiWisDesc [@{6F6F}Sagesse@{FFFF},\n
|
||||
détermine le temps de régénération de la Sève, l'énergie utilisée pour faire de la magie.]
|
||||
détermine le temps de régénération de la sève, l'énergie utilisée pour faire de la magie.]
|
||||
|
||||
// HASH_VALUE DFFD9B8BE269FBC5
|
||||
// INDEX 1579
|
||||
|
@ -8386,7 +8386,7 @@ uiMagicEditDifficulty [Difficulté]
|
|||
|
||||
// HASH_VALUE 5BCAE043B3D90C45
|
||||
// INDEX 2031
|
||||
uiMagicEditNotEnoughSap [Attention ! Pas assez de Sève !]
|
||||
uiMagicEditNotEnoughSap [Attention ! Pas assez de sève !]
|
||||
|
||||
// HASH_VALUE 36B251FFFAE39E10
|
||||
// INDEX 2032
|
||||
|
@ -10229,7 +10229,7 @@ uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF}%origi
|
|||
@{FFF9}@{HuittInfoArmorQuality}Qualité :@{H}@{T14}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T14}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T14}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
%cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
\n
|
||||
@{FFF9}@{HuittInfoArmorType}Type d'armure :@{H}@{T22}@{FFFF}%armor %armor_bonus\n
|
||||
|
@ -10248,7 +10248,7 @@ uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T17}@{FFFF}
|
|||
@{FFF9}@{HuittInfoWeaponQuality}Qualité :@{H}@{T17}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T17}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T17}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T17}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T17}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoWeaponSapLoad}Charge en Sève :@{H}@{T17}@{FFFF}%sap / %sapmax\n
|
||||
@{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T17}@{FFFF}%skill\n
|
||||
%cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T17}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
|
@ -10270,7 +10270,7 @@ uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}
|
|||
@{FFF9}@{HuittInfoWeaponQuality}Qualité :@{H}@{T12}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T12}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T12}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoWeaponSapLoad}Charge en Sève :@{H}@{T12}@{FFFF}%sap / %sapmax\n
|
||||
@{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T12}@{FFFF}%skill\n
|
||||
%cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
|
@ -10291,7 +10291,7 @@ uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}%origin
|
|||
@{FFF9}@{HuittInfoWeaponQuality}Qualité :@{H}@{T12}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T12}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T12}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T12}@{FFFF}%skill\n
|
||||
%cansell\n
|
||||
@{FFF9}@{HuittInfoAmmoMagazine}Chargeur :@{H}@{T12}@{FFFF}%magazine\n
|
||||
|
@ -10385,7 +10385,7 @@ uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}%orig
|
|||
@{FFF9}@{HuittInfoArmorQuality}Qualité :@{H}@{T12}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T12}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T12}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
%cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
\n
|
||||
@{FFF9}@{HuittInfoShieldCat}Catégorie :@{H}@{T12}@{FFFF}%cat\n
|
||||
|
@ -10404,7 +10404,7 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF
|
|||
@{FFF9}@{HuittInfoToolQuality}Qualité :@{H}@{T14}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T14}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T14}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittToolCraftType}Type d'outil :@{H}@{T14}@{FFFF}%tool\n
|
||||
%cansell\n
|
||||
@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
|
@ -10419,7 +10419,7 @@ uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF}
|
|||
@{FFF9}@{HuittInfoToolQuality}Qualité :@{H}@{T14}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T14}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T14}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
%cansell\n
|
||||
@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
%buffs\n
|
||||
|
@ -10433,7 +10433,7 @@ uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}%
|
|||
@{FFF9}@{HuittInfoToolQuality}Qualité :@{H}@{T12}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T12}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T12}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T12}@{FFFF}%skill\n
|
||||
%cansell\n
|
||||
@{FFF9}Portée de la commande :@{T12}@{FFFF}%cmdrange\n
|
||||
|
@ -10447,7 +10447,7 @@ uihelpItemJewelFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF}%origi
|
|||
@{FFF9}@{HuittInfoJewelryQuality}Qualité :@{H}@{T14}@{FFFF}%quality\n
|
||||
@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T14}@{FFFF}%weight Kg\n
|
||||
@{FFF9}@{HuittInfoBulk}Volume :@{H}@{T14}@{FFFF}%bulk\n
|
||||
@{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
@{FFF9}@{HuittInfoHP}Points de vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n
|
||||
%cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n
|
||||
\n
|
||||
%magic_protection%magic_resistance%buffs%desc%custom_text]
|
||||
|
@ -10748,7 +10748,7 @@ uihelpPhraseProcEnchantment [@{FFFF}Avec cette action, vous pouvez utiliser l'en
|
|||
// HASH_VALUE 0B663B02619E27B2
|
||||
// INDEX 2533
|
||||
uihelpPactFormat [@{FFF9}Niveau :@{T12}@{FFFF}%lvl\n
|
||||
@{FFF9}Points de Vie consommés :@{T12}@{FFFF}%hp\n
|
||||
@{FFF9}Points de vie consommés :@{T12}@{FFFF}%hp\n
|
||||
@{FFF9}Endurance consommée :@{T12}@{FFFF}%sta\n
|
||||
@{FFF9}Sève consommée :@{T12}@{FFFF}%sap\n
|
||||
@{FFF9}Compétences consommées :@{T12}@{FFFF}%skill\n
|
||||
|
@ -12406,7 +12406,7 @@ region_hereticshovel [Masure de l'Hérétique]
|
|||
|
||||
// HASH_VALUE 2BFA2C144E17C8B4
|
||||
// INDEX 2937
|
||||
region_nland [Forêt Matisienne]
|
||||
region_nland [Forêt matis]
|
||||
|
||||
// HASH_VALUE 2948B49724A9A0A3
|
||||
// INDEX 2938
|
||||
|
@ -13599,7 +13599,7 @@ uiBubbleTL [En haut à droite]
|
|||
|
||||
// HASH_VALUE B54C279E920E61A6
|
||||
// INDEX 3234
|
||||
uiTryton1 [Depuis plusieurs siècles, je voyage parmi les couloirs trop paisibles de Ryzom. Je fus témoin de la Poussée Verte d'Atys et de la naissance de l'hominité. J'assistai à leur lutte pour survivre dans un monde sans merci peuplé de plantes tueuses et de monstres rampants. Pire encore, retranchés dans leur ignorance primale, ils firent couler le sang par soif de pouvoir. Affaiblis par une guerre interraciale et reclus sur leur territoire suite à une ségrégation qu'ils s'étaient imposée, ils furent victimes d'une effroyable invasion de Kitins.]
|
||||
uiTryton1 [Depuis plusieurs siècles, je voyage parmi les couloirs trop paisibles de Ryzom. Je fus témoin de la Poussée verte d'Atys et de la naissance de l'hominité. J'assistai à leur lutte pour survivre dans un monde sans merci peuplé de plantes tueuses et de monstres rampants. Pire encore, retranchés dans leur ignorance primale, ils firent couler le sang par soif de pouvoir. Affaiblis par une guerre interraciale et reclus sur leur territoire suite à une ségrégation qu'ils s'étaient imposée, ils furent victimes d'une effroyable invasion de Kitins.]
|
||||
|
||||
// HASH_VALUE DF28A0BE35A6586F
|
||||
// INDEX 3235
|
||||
|
@ -13770,7 +13770,7 @@ uittPhraseEditNewOptional [Ajouter option]
|
|||
|
||||
// HASH_VALUE 5746BC52D6E4AB51
|
||||
// INDEX 3276
|
||||
uittPhraseEditNewCredit [AAjouter crédit]
|
||||
uittPhraseEditNewCredit [Ajouter crédit]
|
||||
|
||||
// HASH_VALUE F9D59C404BD6CC4E
|
||||
// INDEX 3277
|
||||
|
@ -14403,7 +14403,7 @@ Dodge [Esquive]
|
|||
|
||||
// HASH_VALUE A7323C8FD5E8F394
|
||||
// INDEX 3431
|
||||
MagicDefense [Défense magique]
|
||||
MagicDefense [Défense contre la magie]
|
||||
|
||||
// HASH_VALUE 6C77A78BD888CF81
|
||||
// INDEX 3432
|
||||
|
@ -14507,7 +14507,7 @@ uiHP [Vie]
|
|||
|
||||
// HASH_VALUE 81CF12CA2FCAC592
|
||||
// INDEX 3457
|
||||
uittHP [Affichez les points de Vie au-dessus du personnage.]
|
||||
uittHP [Affichez les points de vie au-dessus du personnage.]
|
||||
|
||||
// HASH_VALUE 4C5054504C505450
|
||||
// INDEX 3458
|
||||
|
@ -14639,7 +14639,7 @@ uiSAP [Sève du personnage]
|
|||
|
||||
// HASH_VALUE DF3C16CBBFAB2ADA
|
||||
// INDEX 3490
|
||||
uittSAP [Afficher la barre de Sève du personnage au-dessus de lui]
|
||||
uittSAP [Afficher la barre de sève du personnage au-dessus de lui]
|
||||
|
||||
// HASH_VALUE A797BF3DDF08009C
|
||||
// INDEX 3491
|
||||
|
@ -14647,7 +14647,7 @@ uiFOC [Concentration du personnage]
|
|||
|
||||
// HASH_VALUE DFBD9AD6A191CEEC
|
||||
// INDEX 3492
|
||||
uittFocus [Afficher la barre de Concentration du personnage au-dessus de lui]
|
||||
uittFocus [Afficher la barre de concentration du personnage au-dessus de lui]
|
||||
|
||||
// HASH_VALUE 698737366867538A
|
||||
// INDEX 3493
|
||||
|
@ -16128,7 +16128,7 @@ mpfam27 [Feuille de Carlea]
|
|||
|
||||
// HASH_VALUE 2969382CE442B08E
|
||||
// INDEX 3862
|
||||
mpfam28 [Carapace Championne]
|
||||
mpfam28 [Carapace championne]
|
||||
|
||||
// HASH_VALUE 1AE5E445A8F7C08A
|
||||
// INDEX 3863
|
||||
|
@ -16136,7 +16136,7 @@ mpfam30 [Bourgeon de Crocifissa]
|
|||
|
||||
// HASH_VALUE 2FC76837E803B843
|
||||
// INDEX 3864
|
||||
mpfam31 [Carapace Mignonne]
|
||||
mpfam31 [Carapace mignonne]
|
||||
|
||||
// HASH_VALUE A9255768D7B58383
|
||||
// INDEX 3865
|
||||
|
@ -16192,7 +16192,7 @@ mpfam44 [Peau de Gingo]
|
|||
|
||||
// HASH_VALUE AD78643FA6C3F48A
|
||||
// INDEX 3878
|
||||
mpfam45 [Lin Magnifique]
|
||||
mpfam45 [Lin magnifique]
|
||||
|
||||
// HASH_VALUE EBB78035E4234845
|
||||
// INDEX 3879
|
||||
|
@ -16224,7 +16224,7 @@ mpfam52 [Carapace de Héros]
|
|||
|
||||
// HASH_VALUE 0E0A743F6EF59BA7
|
||||
// INDEX 3886
|
||||
mpfam53 [Carapace Cornée]
|
||||
mpfam53 [Carapace cornée]
|
||||
|
||||
// HASH_VALUE 6DF4AB4E98F4C36C
|
||||
// INDEX 3887
|
||||
|
@ -16404,11 +16404,11 @@ mpfam98 [Champignon de Paddooa]
|
|||
|
||||
// HASH_VALUE 1F53678422B76B62
|
||||
// INDEX 3931
|
||||
mpfam99 [Noeud de Bois de Patee]
|
||||
mpfam99 [Noeud de bois de Patee]
|
||||
|
||||
// HASH_VALUE 2083678422C60358
|
||||
// INDEX 3932
|
||||
mpfam100 [Noeud de Bois de Patee]
|
||||
mpfam100 [Noeud de bois de Patee]
|
||||
|
||||
// HASH_VALUE 29D8FC482726FFB0
|
||||
// INDEX 3933
|
||||
|
@ -16432,7 +16432,7 @@ mpfam107 [Peau de Ragus]
|
|||
|
||||
// HASH_VALUE 638374426463C886
|
||||
// INDEX 3938
|
||||
mpfam109 [Sève Ardente]
|
||||
mpfam109 [Sève ardente]
|
||||
|
||||
// HASH_VALUE 93778393264A2497
|
||||
// INDEX 3939
|
||||
|
@ -18792,7 +18792,7 @@ mpfam714 [Médaille du Mérite Karavan]
|
|||
|
||||
// HASH_VALUE 92D31B96ABEB704B
|
||||
// INDEX 4528
|
||||
mpfam715 [Cristal de Sève]
|
||||
mpfam715 [Cristal de sève]
|
||||
|
||||
// HASH_VALUE A3070C5ECDD2AFB4
|
||||
// INDEX 4529
|
||||
|
@ -18940,7 +18940,7 @@ mpfam751 [Gomme de Rubbarn modifiée]
|
|||
|
||||
// HASH_VALUE 29E834214D63ACA2
|
||||
// INDEX 4565
|
||||
mpfam752 [Pollen d'Egiros modifié]
|
||||
mpfam752 [Pollen d'Égiros modifié]
|
||||
|
||||
// HASH_VALUE 4E96D47763E88497
|
||||
// INDEX 4566
|
||||
|
@ -18956,7 +18956,7 @@ mpfam755 [Gomme de Rubbarn purifiée]
|
|||
|
||||
// HASH_VALUE 12C678A125288C83
|
||||
// INDEX 4569
|
||||
mpfam756 [Pollen d'Egiros purifié]
|
||||
mpfam756 [Pollen d'Égiros purifié]
|
||||
|
||||
// HASH_VALUE 708ADF59E705B4AF
|
||||
// INDEX 4570
|
||||
|
@ -19384,11 +19384,11 @@ uittForageTime [Temps restant pour l'extraction]
|
|||
|
||||
// HASH_VALUE 6BBAD4ABE2843044
|
||||
// INDEX 4676
|
||||
uittForageContent [Contenu de la Source]
|
||||
uittForageContent [Contenu de la source]
|
||||
|
||||
// HASH_VALUE 23A79F965FF43058
|
||||
// INDEX 4677
|
||||
uittForageLife [Vie de la Source]
|
||||
uittForageLife [Vie de la source]
|
||||
|
||||
// HASH_VALUE E295EB9AA4E7D8A0
|
||||
// INDEX 4678
|
||||
|
@ -19400,7 +19400,7 @@ uittForageKami [Tolérance Kami dans cette zone]
|
|||
|
||||
// HASH_VALUE 5EC0486AA3B48067
|
||||
// INDEX 4680
|
||||
uittQualityAbbrev [de Qlt]
|
||||
uittQualityAbbrev [de qualité]
|
||||
|
||||
// HASH_VALUE D71A56541260A0AA
|
||||
// INDEX 4681
|
||||
|
@ -19900,7 +19900,7 @@ uiCP_Job_F1 [1- Dague\n
|
|||
// HASH_VALUE 40E73E605EC2B540
|
||||
// INDEX 4803
|
||||
uiCP_Job_M1 [1 - Amplificateur magique de niveau 10\n
|
||||
2 - Action Dégât d'Acide 1]
|
||||
2 - Action dégât d'acide 1]
|
||||
|
||||
// HASH_VALUE 5A7A17E4438FD999
|
||||
// INDEX 4804
|
||||
|
@ -19923,7 +19923,7 @@ uiCP_Job_F2 [1- Dague\n
|
|||
// HASH_VALUE ED1E72C4E8AFEB0A
|
||||
// INDEX 4807
|
||||
uiCP_Job_M2 [1 - Amplificateur magique de niveau 10\n
|
||||
2 - Action Dégât d'Acide 1\n
|
||||
2 - Action dégât d'acide 1\n
|
||||
3 - Action Peur 1]
|
||||
|
||||
// HASH_VALUE A99CAAD8499430C9
|
||||
|
@ -19934,7 +19934,7 @@ uiCP_Job_G2 [1 - Pioche\n
|
|||
|
||||
// HASH_VALUE 886490FD3F0A7D2F
|
||||
// INDEX 4809
|
||||
uiCP_Job_C2 [1 - Outil de Création d'armure\n
|
||||
uiCP_Job_C2 [1 - Outil de création d'armure\n
|
||||
2 - 100 Matières premières génériques de qualité 10\n
|
||||
3 - 1ère action pour créer une armure de votre race\n
|
||||
4 - Plan de création de bottes\n
|
||||
|
@ -22199,7 +22199,7 @@ gn_matis_officer [Officier Matis]
|
|||
|
||||
// HASH_VALUE 261B94C1EA4A88BB
|
||||
// INDEX 5286
|
||||
gn_matis_voluteer [Volontaire Matis]
|
||||
gn_matis_voluteer [Milicien Matis]
|
||||
|
||||
// HASH_VALUE E9DAB4A4ABF9A4A1
|
||||
// INDEX 5287
|
||||
|
@ -22219,7 +22219,7 @@ gn_zorai_officer [Officier Zoraï]
|
|||
|
||||
// HASH_VALUE 245AACCC6BFBC0BE
|
||||
// INDEX 5291
|
||||
gn_zorai_voluteer_f [Volontaire Zoraï]
|
||||
gn_zorai_voluteer_f [Milicien Zoraï]
|
||||
|
||||
// HASH_VALUE 10F0B412CEB0AC10
|
||||
// INDEX 5292
|
||||
|
@ -22280,7 +22280,7 @@ uiTask7 [Tâche du rituel 7: Tâche donnée par PNJ...]
|
|||
|
||||
// HASH_VALUE 245AACCC6BFBC0BE
|
||||
// INDEX 5306
|
||||
gn_zorai_voluteer_m [Volontaire Zoraï]
|
||||
gn_zorai_voluteer_m [Milicien Zoraï]
|
||||
|
||||
// HASH_VALUE 3E67E4291FBB3642
|
||||
// INDEX 5307
|
||||
|
@ -22591,7 +22591,7 @@ uiProtect_Electricity [Électricité]
|
|||
|
||||
// HASH_VALUE A1075C8FAC79D4A5
|
||||
// INDEX 5382
|
||||
uiProtect_Shockwave [Ondes de Choc]
|
||||
uiProtect_Shockwave [Ondes de choc]
|
||||
|
||||
// HASH_VALUE 049B1C4DD74B2041
|
||||
// INDEX 5383
|
||||
|
@ -22599,31 +22599,31 @@ uiProtect_MaxAbsorb [Absorption max.]
|
|||
|
||||
// HASH_VALUE 7259CAAC235FEE16
|
||||
// INDEX 5384
|
||||
uittProtect_Rot [Absorption des dommages de Pourriture: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Rot [Absorption des dommages de pourriture: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE CB53C08014A3833C
|
||||
// INDEX 5385
|
||||
uittProtect_Acid [Absorption des dommages d'Acide: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Acid [Absorption des dommages d'acide: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE 0C53B980D4F39B4B
|
||||
// INDEX 5386
|
||||
uittProtect_Cold [Absorption des dommages de Froid: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Cold [Absorption des dommages de froid: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE A7CA8DB65D5E0B80
|
||||
// INDEX 5387
|
||||
uittProtect_Fire [Absorption des dommages de Feu: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Fire [Absorption des dommages de feu: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE 6CC982F5CCA8356D
|
||||
// INDEX 5388
|
||||
uittProtect_Poison [Absorption des dommages de Poison: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Poison [Absorption des dommages de poison: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE C10039287A9472FB
|
||||
// INDEX 5389
|
||||
uittProtect_Electricity [Absorption des dommages d'Électricité: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Electricity [Absorption des dommages d'électricité: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE 56A951A06FA9108A
|
||||
// INDEX 5390
|
||||
uittProtect_Shockwave [Absorption des dommages d'Ondes de Choc: @{6F6F}%v%@{FFFF} %max]
|
||||
uittProtect_Shockwave [Absorption des dommages d'ondes de choc: @{6F6F}%v%@{FFFF} %max]
|
||||
|
||||
// HASH_VALUE DB00AE336D4AC0AF
|
||||
// INDEX 5391
|
||||
|
@ -22642,7 +22642,7 @@ uiResistsTable [RÉSISTANCES]
|
|||
// INDEX 5394
|
||||
uittMagicResistTable [Les sorts des créatures et des personnages peuvent être complètement @{6F6F}résistés@{FFFF}.\n
|
||||
Le @{6F6F}pourcentage de chance@{FFFF} de résistance dépend :\n
|
||||
@{T4}- de la @{6F6F}puissance@{FFFF} du sort lancé si c'est un sort d'Affliction\n
|
||||
@{T4}- de la @{6F6F}puissance@{FFFF} du sort lancé si c'est un sort d'affliction\n
|
||||
@{T4}- du @{6F6F}niveau de compétence@{FFFF} du mage si c'est un sort élémentaire\n
|
||||
@{T4}- de votre @{6F6F}score de résistance@{FFFF} dans le @{6F6F}domaine de magie@{FFFF} du sort lancé\n
|
||||
@{T0}Votre @{6F6F}score de résistance@{FFFF} est la somme :\n
|
||||
|
@ -22675,7 +22675,7 @@ uiResist_PrimRoot [Domaine des Prime Racines]
|
|||
// INDEX 5400
|
||||
uittResist_Desert [Résistance contre les sorts du domaine de magie du Désert : @{6F6F}%v@{FFFF} %max\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T0}Ce domaine regroupe les types de magie suivant :\n
|
||||
@{T4}- @{6F6F}Feu@{FFFF}\n
|
||||
@{T4}- @{6F6F}Aveuglement@{FFFF}\n
|
||||
|
@ -22686,7 +22686,7 @@ uittResist_Desert [Résistance contre les sorts du domaine de magie du Désert :
|
|||
// INDEX 5401
|
||||
uittResist_Forest [Résistance contre les sorts du domaine de magie de la Forêt : @{6F6F}%v@{FFFF} %max\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T0}Ce domaine regroupe les types de magie suivant :\n
|
||||
@{T4}- @{6F6F}Poison@{FFFF}\n
|
||||
@{T4}- @{6F6F}Sommeil@{FFFF}\n
|
||||
|
@ -22697,10 +22697,10 @@ uittResist_Forest [Résistance contre les sorts du domaine de magie de la Forêt
|
|||
// INDEX 5402
|
||||
uittResist_Lacustre [Résistance contre les sorts du domaine de magie des Lacs : @{6F6F}%v@{FFFF} %max\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T0}Ce domaine regroupe les types de magie suivant :\n
|
||||
@{T4}- @{6F6F}Froid@{FFFF}\n
|
||||
@{T4}- @{6F6F}Onde de Choc@{FFFF}\n
|
||||
@{T4}- @{6F6F}Onde de choc@{FFFF}\n
|
||||
@{T4}- @{6F6F}Étourdissement@{FFFF}\n
|
||||
]
|
||||
|
||||
|
@ -22708,7 +22708,7 @@ uittResist_Lacustre [Résistance contre les sorts du domaine de magie des Lacs :
|
|||
// INDEX 5403
|
||||
uittResist_Jungle [Résistance contre les sorts du domaine de magie de la Jungle : @{6F6F}%v@{FFFF} %max\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n
|
||||
@{T0}Ce domaine regroupe les types de magie suivant :\n
|
||||
@{T4}- @{6F6F}Électricité@{FFFF}\n
|
||||
@{T4}- @{6F6F}Enracinement@{FFFF}\n
|
||||
|
@ -22719,7 +22719,7 @@ uittResist_Jungle [Résistance contre les sorts du domaine de magie de la Jungle
|
|||
// INDEX 5404
|
||||
uittResist_PrimRoot [Résistance contre les sorts du domaine de magie des Prime Racines : @{6F6F}%v@{FFFF} %max\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n
|
||||
@{T4}- Chances de résister un sort de @{6F6F}magie d'affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n
|
||||
@{T0}Ce domaine regroupe les types de magie suivant :\n
|
||||
@{T4}- @{6F6F}Acide@{FFFF}\n
|
||||
@{T4}- @{6F6F}Pourriture@{FFFF}\n
|
||||
|
@ -23579,19 +23579,19 @@ uiItemConsumableEffectModPrimaryRootForageSuccess [Modifie votre compétence de
|
|||
|
||||
// HASH_VALUE 789B903E4FE50883
|
||||
// INDEX 5613
|
||||
uiItemConsumableEffectStaminaAura [@{2F2F}Aura d'Endurance@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
uiItemConsumableEffectStaminaAura [@{2F2F}Aura d'endurance@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
%minutes:%secondes min sur %radius m\n
|
||||
Désactivations : cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.]
|
||||
|
||||
// HASH_VALUE 659C9459CECD5FFB
|
||||
// INDEX 5614
|
||||
uiItemConsumableEffectSapAura [@{2F2F}Aura de Sève@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
uiItemConsumableEffectSapAura [@{2F2F}Aura de sève@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
%minutes:%secondes min sur %radius m\n
|
||||
Désactivations : cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.]
|
||||
|
||||
// HASH_VALUE 1B38899A63140B67
|
||||
// INDEX 5615
|
||||
uiItemConsumableEffectLifeAura [@{2F2F}Aura de Vie@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
uiItemConsumableEffectLifeAura [@{2F2F}Aura de vie@{FFFF} de @{2F2F}%modifier@{FFFF}\n
|
||||
%minutes:%secondes min sur %radius m\n
|
||||
Désactivations : Cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.]
|
||||
|
||||
|
@ -24022,47 +24022,47 @@ uittIdentityInfo [Permet de connaître tout ce qui a été nécessaire pour déb
|
|||
|
||||
// HASH_VALUE CC9875537F4EABA4
|
||||
// INDEX 5718
|
||||
uittIdentityHP [@{6F6F}Points de Vie @{FFFF}: %n\n
|
||||
Lorsque vos points de Vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.]
|
||||
uittIdentityHP [@{6F6F}Points de vie @{FFFF}: %n\n
|
||||
Lorsque vos points de vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.]
|
||||
|
||||
// HASH_VALUE E62E03C44CC6CCDF
|
||||
// INDEX 5719
|
||||
uittIdentitySap [@{6F6F}Points de Sève @{FFFF}: %n\n
|
||||
Lorsque votre niveau de Sève est faible, vous ne pouvez pas jeter de sorts.]
|
||||
uittIdentitySap [@{6F6F}Points de sève @{FFFF}: %n\n
|
||||
Lorsque votre niveau de sève est faible, vous ne pouvez pas jeter de sorts.]
|
||||
|
||||
// HASH_VALUE 96475BB346DF4BF2
|
||||
// INDEX 5720
|
||||
uittIdentitySta [@{6F6F}Points d'Endurance @{FFFF}: %n\n
|
||||
Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.]
|
||||
uittIdentitySta [@{6F6F}Points d'endurance @{FFFF}: %n\n
|
||||
Lorsque votre niveau d'endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.]
|
||||
|
||||
// HASH_VALUE 5429E1693D81762D
|
||||
// INDEX 5721
|
||||
uittIdentityFoc [@{6F6F}Points de Concentration @{FFFF}: %n\n
|
||||
Lorsque votre niveau de Concentration est faible, vous ne pouvez plus réaliser d'actions de forage.]
|
||||
uittIdentityFoc [@{6F6F}Points de concentration @{FFFF}: %n\n
|
||||
Lorsque votre niveau de concentration est faible, vous ne pouvez plus réaliser d'actions de forage.]
|
||||
|
||||
// HASH_VALUE 98A8D5EC1A1065BF
|
||||
// INDEX 5722
|
||||
uittIdentityHPReg [@{6F6F}Régénération Vie @{FFFF}: %n\n
|
||||
Points de Vie régénérés en 10 secondes.]
|
||||
Points de vie régénérés en 10 secondes.]
|
||||
|
||||
// HASH_VALUE 0DA80D1162D9EB76
|
||||
// INDEX 5723
|
||||
uittIdentitySapReg [@{6F6F}Régénération Sève @{FFFF}: %n\n
|
||||
Points de Sève régénérés en 10 secondes.]
|
||||
uittIdentitySapReg [@{6F6F}Régénération sève @{FFFF}: %n\n
|
||||
Points de sève régénérés en 10 secondes.]
|
||||
|
||||
// HASH_VALUE CBC3826C632A9CB8
|
||||
// INDEX 5724
|
||||
uittIdentityStaReg [@{6F6F}Régénération Endurance @{FFFF}: %n\n
|
||||
Points d'Endurance régénérés en 10 secondes.]
|
||||
uittIdentityStaReg [@{6F6F}Régénération endurance @{FFFF}: %n\n
|
||||
Points d'endurance régénérés en 10 secondes.]
|
||||
|
||||
// HASH_VALUE 5D4AE956019C7A23
|
||||
// INDEX 5725
|
||||
uittIdentityFocReg [@{6F6F}Régénération Concentration @{FFFF}: %n\n
|
||||
Points de Concentration régénérés en 10 secondes.]
|
||||
uittIdentityFocReg [@{6F6F}Régénération concentration @{FFFF}: %n\n
|
||||
Points de concentration régénérés en 10 secondes.]
|
||||
|
||||
// HASH_VALUE 45CB3DCB2618D3E3
|
||||
// INDEX 5726
|
||||
uittIdentityCons [Détermine la valeur maximum de vos @{6F6F}points de Vie@{FFFF}.]
|
||||
uittIdentityCons [Détermine la valeur maximum de vos @{6F6F}points de vie@{FFFF}.]
|
||||
|
||||
// HASH_VALUE 0AF967701E2A651C
|
||||
// INDEX 5727
|
||||
|
@ -24078,7 +24078,7 @@ uittIdentityDex [Détermine la valeur maximum de votre @{6F6F}Concentration@{FFF
|
|||
|
||||
// HASH_VALUE 697AE7D97DF4582E
|
||||
// INDEX 5730
|
||||
uittIdentityMeta [Détermine le taux de @{6F6F}régénération @{FFFF}de vos @{6F6F}points de Vie@{FFFF}.]
|
||||
uittIdentityMeta [Détermine le taux de @{6F6F}régénération @{FFFF}de vos @{6F6F}points de vie@{FFFF}.]
|
||||
|
||||
// HASH_VALUE 618C7912422282D3
|
||||
// INDEX 5731
|
||||
|
@ -24147,22 +24147,22 @@ uittGaugesActionBar [Indique la progression de l'@{6F6F}action @{FFFF}en cours d
|
|||
// HASH_VALUE 4D1DFC058F6A8F05
|
||||
// INDEX 5746
|
||||
uittGaugesHP [@{6F6F}Points de vie@{FFFF}:\n
|
||||
Lorsque vos points de Vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.]
|
||||
Lorsque vos points de vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.]
|
||||
|
||||
// HASH_VALUE 3218DC16D5185B23
|
||||
// INDEX 5747
|
||||
uittGaugesSap [@{6F6F}Points de sève@{FFFF}:\n
|
||||
Lorsque votre niveau de Sève est faible, vous ne pouvez pas jeter de sorts.]
|
||||
Lorsque votre niveau de sève est faible, vous ne pouvez pas jeter de sorts.]
|
||||
|
||||
// HASH_VALUE BCFAB72720F87E38
|
||||
// INDEX 5748
|
||||
uittGaugesSta [@{6F6F}Points d'Endurance@{FFFF}:\n
|
||||
Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.]
|
||||
uittGaugesSta [@{6F6F}Points d'endurance@{FFFF}:\n
|
||||
Lorsque votre niveau d'endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.]
|
||||
|
||||
// HASH_VALUE 21A49D1370B3A93A
|
||||
// INDEX 5749
|
||||
uittGaugesFoc [@{6F6F}Points de Concentration@{FFFF}:\n
|
||||
Lorsque votre niveau de Concentration est faible, vous ne pouvez plus réaliser d'actions de forage.]
|
||||
uittGaugesFoc [@{6F6F}Points de concentration@{FFFF}:\n
|
||||
Lorsque votre niveau de concentration est faible, vous ne pouvez plus réaliser d'actions de forage.]
|
||||
|
||||
// HASH_VALUE 1AC7CE1C76B16FB8
|
||||
// INDEX 5750
|
||||
|
@ -24288,8 +24288,8 @@ uittGuildMemberOffline [Non connecté]
|
|||
|
||||
// HASH_VALUE 2E70DEE13D796052
|
||||
// INDEX 5776
|
||||
uittTargetHp [@{6F6F}Points de Vie @{FFFF}de la cible.\n
|
||||
La cible meurt lorsque ses @{6F6F}points de Vie @{FFFF}tombent à 0.]
|
||||
uittTargetHp [@{6F6F}Points de vie @{FFFF}de la cible.\n
|
||||
La cible meurt lorsque ses @{6F6F}points de vie @{FFFF}tombent à 0.]
|
||||
|
||||
// HASH_VALUE 9E118F8DA4E4C858
|
||||
// INDEX 5777
|
||||
|
@ -24379,17 +24379,17 @@ uittInfoArmorProtection [@{6F6F}Protection @{FFFF}:\n
|
|||
// HASH_VALUE D0A9618CFFCA51BE
|
||||
// INDEX 5795
|
||||
uittInfoArmorSlash [@{6F6F}Max vs coup tranchant @{FFFF}:\n
|
||||
Points de Vie maximum absorbés pour un coup tranchant.]
|
||||
Points de vie maximum absorbés pour un coup tranchant.]
|
||||
|
||||
// HASH_VALUE CDBA2D92024ABDBD
|
||||
// INDEX 5796
|
||||
uittInfoArmorPierc [@{6F6F}Max vs coup perforant @{FFFF}:\n
|
||||
Points de Vie maximum absorbés pour un coup perforant.]
|
||||
Points de vie maximum absorbés pour un coup perforant.]
|
||||
|
||||
// HASH_VALUE 4FB40368338D138F
|
||||
// INDEX 5797
|
||||
uittInfoArmorBlunt [@{6F6F}Max vs coup contondant @{FFFF}:\n
|
||||
Points de Vie maximum absorbés pour un coup contondant.]
|
||||
Points de vie maximum absorbés pour un coup contondant.]
|
||||
|
||||
// HASH_VALUE 3AB07105106EBD5F
|
||||
// INDEX 5798
|
||||
|
@ -27298,7 +27298,12 @@ uiKeyPARAGRAPH [Paragraphe]
|
|||
// INDEX 6488
|
||||
uiKeyOEM_102 [OEM 102]
|
||||
|
||||
// HASH_VALUE 39C742C862CB934B
|
||||
// HASH_VALUE 61B9BCDD9CF5F488
|
||||
// INDEX 6489
|
||||
uiFilterMenuDynamic [%s @{T12}/%s]
|
||||
uiFilterMenuDynamic [%channel @{T12}/%shortcut]
|
||||
|
||||
// displayed in System/Windows/Communication
|
||||
// HASH_VALUE 6588A87B1E781483
|
||||
// INDEX 6490
|
||||
uiwmAppZone [AppZone]
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -27550,8 +27550,12 @@ uiKeyPARAGRAPH [Paragraph]
|
|||
// INDEX 6488
|
||||
uiKeyOEM_102 [OEM 102]
|
||||
|
||||
// used to format dynamic chats filters
|
||||
// HASH_VALUE 39C742C862CB934B
|
||||
// HASH_VALUE 61B9BCDD9CF5F488
|
||||
// INDEX 6489
|
||||
uiFilterMenuDynamic [%s @{T8}/%s]
|
||||
uiFilterMenuDynamic [%channel @{T8}/%shortcut]
|
||||
|
||||
// displayed in System/Windows/Communication
|
||||
// HASH_VALUE 6588A87B1E781483
|
||||
// INDEX 6490
|
||||
uiwmAppZone [AppZone]
|
||||
|
||||
|
|
|
@ -13487,7 +13487,7 @@ uiKeyPARAGRAPH [Paragraph]
|
|||
uiKeyOEM_102 [OEM 102]
|
||||
|
||||
// used to format dynamic chats filters
|
||||
uiFilterMenuDynamic [%s @{T8}/%s]
|
||||
uiFilterMenuDynamic [%channel @{T8}/%shortcut]
|
||||
// displayed in System/Windows/Communication
|
||||
uiwmAppZone [AppZone]
|
||||
uimwAppZone [AppZone]
|
||||
|
||||
|
|
Loading…
Reference in a new issue