Difference between revisions of "ARCC Expert EN"

From Ryzom Forge Wiki

Jump to: navigation, search
 
(64 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{tabLang|EN|DE|ARCC Expert EN|ES|ARCC Expert FR|RU}}
+
{{Migrated to|:en:ARK, expert}}
{{WIP}}
+
{{tabLang|EN|ARCC Expert DE|ARCC Expert EN|ARCC Expert ES|ARCC Expert FR|ARCC Expert RU}}
  
{{ToTrad|DE|DE translation needed please}}
+
{{toTrad|DE}}
{{ToTrad|ES|ES translation needed please}}
+
{{toTrad|EN|To check the quality of the text itself}}
{{ToTrad|EN|FR translation needed please}}
+
{{toTrad|ES}}
 +
{{toTrad|FR|À corriger par rapport à l'anglais. Attendre qu'il n'y ait plus de "WIP" (marques jaunes) }}
 +
{{toTrad|RU}}
  
<big>Manuel d’utilisation de l' '''A.R.C.C.'''</big>
 
*[[ARCC intro EN|Volume I : Guide de démarrage rapide (Quick Start Guide)]]
 
*[[ARCC Guide EN|Volume II : Guide d'utilisation]]
 
*[[ARCC Expert EN|Volume III: Guide d'utilisation avancée]]
 
  
==BBCODE==
+
<big>'''User guide for Ark, short for Ryzom Arkitect.'''</big>
Les BBcode auront toujours la même description:
 
  
[Ryzom_BBCode='''attribut''']''texte''[/Ryzom_BBCode]
+
''For historical reasons, those manuals refers very often, almost always, to '''A.R.C.C.'''.
 +
''This is due to the fact that the full documentation has been started with the initial name, '''ARCC''', meaning '''A'''dvanced '''R'''yzom '''C'''ontent '''C'''reator.
  
Dans les affichages des exemples, nous utilisons le '''caractère gras''' pour l'attribut et l'''italique'' pour le texte.
+
*[[ARCC intro EN|Volume I : Quick Start Guide]]
<hr/>
+
*[[ARCC Guide EN|Volume II : User guide]]
===url===
+
*[[ARCC Expert EN|Volume III: Advanced user guide]]
====Paramètres====
+
 
=====texte=====
+
==Ryzom specific BBCODE==
URL ou titre_à_afficher
 
=====attribut=====
 
URL lorsque le texte n'est pas nul
 
** titre_à_afficher: Nom ou intitulé de l'URL
 
====Exemples====
 
*<nowiki>[url]http://forge.ryzom.com/wiki/ARCC_Expert_EN[/url]</nowiki>
 
*<nowiki>[url=http://forge.ryzom.com/wiki/ARCC_Expert_EN]The ARCC[/url]</nowiki>
 
  
===scripturl===
+
===data===
====Paramètres====
+
====Settings====
*texte: ajoute une extension PHP à L’URL fournie dans l'attribut.
+
*'''text'''
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
*'''attribute'''
*attribut: ne semble pas marcher (un seul caractère parsé). S'il est nul, remonte l'URL du script en cours.
 
</div>
 
 
====Exemples====
 
====Exemples====
*[scripturl]ryform_action=edit&ryform_name=stages%3A0[/scripturl] donne:
+
<hr/>
:'''<nowiki>http://app.ryzom.com/app_arcc/index.php?action=script_Edit&script=2088</nowiki>'''<big>&</big>''ryform_action=edit&ryform_name=stages%3A0''
 
 
 
===imgurl===
 
====Paramètres====
 
*texte:  2 champs poossibles:
 
*# URL de l'image, obligatoire: image clicable;
 
*# Affichage du nom de l'URL au survol de la souri sur l'icone. Précédé du caractère souligné ("_"), il s'agit d'un texte à traduire qui sera entre parenthèses "{}" s'il n'est pas traduit.
 
*attribut: URL
 
  
 +
===date===
 +
''' ''date'' ''' displays date in "human". See also ''[[#time|time]]''.
 +
====Settings====
 +
*'''text''': If empty or zero gives the actual date.
 +
:otherwise, seconds to add to 1970-01-01 00:00.
 +
*'''attribute''': format for the date. By default if empty: "YYYY-MM-DD hh:mm"
 
====Exemples====
 
====Exemples====
*<nowiki>[imgurl=http://forge.ryzom.com/wiki/ARCC_Expert_EN]http://app.ryzom.com//data/icons/32/emotion_tongue.png _The_ARCC[/imgurl]</nowiki>
+
*[date]0[/date] ⇒ 2014-10-24 15:31
[http://forge.ryzom.com/wiki/ARCC_Expert_EN [[file:emotion_tongue.png|The_ARCC]] ]
+
*[date]3600[/date] ⇒ 1970-01-01 02:00
 +
*[date]-3600[/date ] ⇒ 1970-01-01 00:00
  
===db===
+
*[date="%d/%m/%Y %H:%M"]3600[/date] ⇒ "01/01/1970 02:00"
====Paramètres====
+
<hr/>
*texte:
 
*#chargement d'une donnée: ''cellule ='' valeur
 
*#extraction d'une donnée enregistrée: ''cellule''
 
  
:cellule est défini par: ''ligne'': ''colonne''
+
=== db ===
:# ''ligne'' = enregistrement dans la base (peut être nommé ou numéro d'ordre à partir de 0)
+
''' ''db'' ''' store or read a value in a DB.
:# ''colonne'' ou "scope" = domaine d’application:
+
DB is of different kind of rows sets.
:##player
+
For instance, "player" DB will memorize the name of the player in column 0; ARCC DB, will memorize an internal number,...
:##guild
+
Columns can be named, otherwise they are referred by the sequential numeration 0 to n
:##arcc =>  0
+
==== Settings ==== 
:##civ
+
* '''text''': (general form: xxx:xxx:xxx)
:##cult
+
*# store a data in a cell
:##org
+
*# read the contents in a cell
:##race
+
: A cell is defined as: ''line'':''scope'' where:
*attribut: Nom  de la base.
+
# ''line'' is a specific kind of data.
 +
# ''scope'' is associated to the characteristics of the players who are:
 +
## player (by default and equivalent to '0' )
 +
## guild  
 +
## arcc
 +
## civ  
 +
## cult  
 +
## org  
 +
## race  
 +
* '''attribute''': Name of the database.
  
====Exemples====
+
==== Examples ====
*[db=TestDB]0:0=100[/db] chargement d'une valeur (100) dans une DB.
+
*[db=TestDB]0:0=100[/db] load 100 in the cell 0:0 of TestDB.
*[db=TestDB]3:0[/db] RAZ dans une DB.
+
*[db=TestDB]3:0[/db] read the cell 3:0
 
+
<hr/>
===img===
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte: nul ou adresse_de_l_image nom_de_l_image
 
*attribut: significatif si texte est nul
 
** nom_de_l_image (utilisé aussi pour l'affichage de remplacement si est image absente. Éventuellement traduite automatiquement)
 
 
 
====Exemples====
 
*[img]http://app.ryzom.com//data/icons/32/emotion_happy.png[/img]
 
</div>
 
  
 
===div===
 
===div===
====Paramètres====
+
''' ''div'' ''' is the equivalent of the HTML bloc <nowiki><div></nowiki>.
*texte: texte qui sera affiché dans une page HTML dans un bloc "div" HTML. C'est un container qui divise la page en une section contenant ses propres objet et styles.
+
That container can divide the page in sections containing the style and other attributes of a HTML bloc.
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
====Settings====
*attribut: array composé de trois éléments:
+
*'''text''': Any kind of data who can be included in a HTML bloc: text, images... and their format.
 +
*'''attribute''': normaly an array composed by three elements:
 
** class
 
** class
 
** id
 
** id
 
** style
 
** style
</div>
 
 
 
====Exemples====
 
====Exemples====
*[div]Un texte[/div]
+
*<nowiki>[div class="Bepock" id="bepock" style="margin:1em;padding:1em;border:none;background:#fed;color:#300;"]Blabla<br/>blabla<br/>...[/div]</nowiki>
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
displays:
*[div=Classe|identiy|color:#f00;...???]txt[/div]
+
<div style="margin:1em; padding:1em;border: none;background:#fed;color:#300;">Blabla<br/>blabla<br/>...</div>
</div>
+
<hr/>
  
 
===expr===
 
===expr===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
====Settings====
*affichage du calcul
+
*'''text'''
*affichage du résultat
+
*'''attribute'''
</div>
 
===map===
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
*[map]18176,-29492[/map]
+
 
===link===
+
===func===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
''' ''func'' ''' allow the execution of some functions known in Ryzom.
====Paramètres====
+
====Settings====
*texte:  
+
*'''text''': (general form: <1st_part_of_text>|<2nd_part_of_text>|...). Parameters for the functions (except if function has no parameters, in that cas could be the function itself).
*attribut: significatif si texte est nul
+
*'''attribute''':one of the next functions:
**  
+
**now: internal server time in tics
 +
**rand: random value in a range of two limits.
 +
**sqrt: square root.
 +
**log: natural logarithm.
 +
**pow: power of <1st_number_in_text> by <2nd_number_in_text>.
 +
**round: round of a number.
 +
**floor: floor of a number.
 +
**min: min between two numbers.
 +
**max: max between two numbers.
 +
**find: find in the <1st_string_in_text> the <2nd_string_in_text>: return 1 if found, otherwise, 0.
 +
**split: split the <1st_part_of_text> (a string) by the <2nd_part_of_text> (a char) and return the nth element of the split gift by the <3rd_part_of_text> (a number), if define otherwise the first element counting from 0.
 +
**substr: extract a substring from the <1st_part_of_text> (a string) begininh at the <2nd_part_of_text> (a number) till the <3rd_part_of_text> (a number), if define otherwise till the end of the given string. Chars are counted from 0.
 +
**unset_url_param: unset parameters.
 +
**building: include if not already defined an alias to the  <1st_string_in_text>.
 +
 
====Exemples====
 
====Exemples====
</div>
+
*now: [func]now[/func] or [func=now]100[/func]
*[link][/link] &rArr; http://app.ryzom.com/app_arcc/index.php?action=script_Edit&event=211&script=1929
+
*rand: [func=rand]0|10[/func]
:http://app.ryzom.com/app_arcc/index.php?action=scripts_Main&event=211 (A.R.C.C. » TESTS » Bepock » UserGuide » NewEvent »  Nouvel event )
+
*sqrt: [func=sqrt]64[/func] = 8
*[link]GrimSon[/link] &rArr; http://app.ryzom.com/app_arcc/index.php?action=script_Edit&event=211&script=1936
+
*log: [func=log]10[/func] = 2.302585092994
:http://app.ryzom.com/app_arcc/index.php?action=script_Edit&script=1936&version=0 (A.R.C.C. » TESTS » Bepock » UserGuide » NewEvent » NewEvent »  GrimSon)
+
*pow: [func=pow]10|2[/func] = 100
*[link]#weGPlayerInfos_BBCodeTest[/link] &rArr; http://app.ryzom.com/app_arcc/index.php?action=script_Edit&script=2088&select=weGPlayerInfos_BBCodeTest
+
*round: [func=round]2.85092994[/func] = 3
:http://app.ryzom.com/app_arcc/index.php?message=recipe_updated&action=script_Edit&script=2088&ryform_action=&ryform_name= (
+
*floor: [func=floor]2.85092994[/func] = 2
A.R.C.C. » TESTS » Bepock » UserGuide » NewEvent » NewEvent »  BBCODE: stage weGPlayerInfos_BBCodeTest)
+
*min: [func=min]10|2[/func] = 2
===validate===
+
*max: [func=max]10|2[/func] = 10
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
*find:  
====Paramètres====
+
**[func=find]AZERTYUIOP|Y[/func] = 1
*texte:  
+
**[func=find]azertyuiop|Y[/func] = 0
*attribut: significatif si texte est nul
+
*split:  
**
+
**[func=split]A_B_C_D|_[/func] = A
 +
**[func=split]A_B_C_D|_|2[/func] = C
 +
*substr:
 +
**[func=substr]A_B_C_D|2[/func] = B_C_D
 +
**[func=substr]A_B_C_D|2|4[/func] = B_C_
 +
<hr/>
 +
 
 +
===gender===
 +
''' ''gender'' ''' returns a text according to the gender.
 +
====Settings====
 +
*'''text''': text to display if the char has the gender of the attribute.
 +
*'''attribute''': '''''m''''' or '''''f'''''
 
====Exemples====
 
====Exemples====
</div>
+
''We assume that the player is male.''
===trad===
+
*[gender=m]Sir![/gender] returns '''''Sir!'''''
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
*[gender=f]Miss![/gender] returns nothing.
====Paramètres====
+
<hr/>
*texte:  
+
 
*attribut: significatif si texte est nul
+
===get===
**
+
====Settings====
 +
*'''text''':  
 +
*'''attribute''': None.
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===t===
+
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
===hack===
====Paramètres====
+
Empty function!
*texte:  
+
<hr/>
*attribut: significatif si texte est nul
+
 
**
+
===if===
 +
''' ''if'' ''' displays a text if attribute is OK
 +
====Settings====
 +
*'''text''': text to display if attribute is OK
 +
*'''attribute''': math evaluation.
 +
<hr/>
 +
 
 +
===ifnot===
 +
''' ''ifnot'' ''' displays a text if attribute is NOT OK
 +
====Settings====
 +
*'''text''': text to display if attribute is NOT OK
 +
*'''attribute''': math evaluation.
 +
<hr/>
 +
 
 +
===img===
 +
''' ''img'' ''' displays an image.
 +
''Something is wrong because, I (Bepock) obtain always a '' " title="" /> '' after the image. Use [imgurl] instead: it works fine.''
 +
====Settings====
 +
*'''text''': image_URL
 +
*'''attribute''': does not work
 +
 
 
====Exemples====
 
====Exemples====
</div>
+
*<nowiki>[img]http://app.ryzom.com//data/icons/32/emotion_happy.png[/img]</nowiki>
===math===
+
displays:
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
:http://app.ryzom.com//data/icons/32/emotion_happy.png  " title="" />
====Paramètres====
+
<hr/>
*texte:  
+
 
*attribut: significatif si texte est nul
+
===imgurl===
**  
+
''' ''imgurl'' ''' displays an image linking to an URL.
 +
====Settings====
 +
*'''text''': (general form: xxx xxx xxx). 2 kinds of data:
 +
*# URL of the image, mandatory: clickable image;
 +
*# Display name of the URL when mouse goes over the image. Preceded by the underscore character ("_"), it is a text that will be translated. It remains enclosed by brackets "{}" if it is not translated.
 +
*'''attribute''': URL
 +
 
 
====Exemples====
 
====Exemples====
</div>
+
*<nowiki>[imgurl=http://forge.ryzom.com/wiki/ARCC_Expert_EN]http://app.ryzom.com//data/icons/32/emotion_tongue.png _The_ARCC[/imgurl]</nowiki>
@process randint(0, 100)
+
displays:
 +
:[http://forge.ryzom.com/wiki/ARCC_Expert_EN [[file:emotion_tongue.png|The_ARCC]] ]
 +
<hr/>
  
===timer===
+
===itemicon===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
''' ''itemicon'' ''' displays a thumbnail of an item.
 
====Paramètres====
 
====Paramètres====
*texte:  
+
*'''text''': the item ([[Sitem|SITEM file]])
*attribut: significatif si texte est nul
+
*'''attribute''': None.
**
 
 
====Exemples====
 
====Exemples====
</div>
+
*[itemicon]teddyubo.sitem[/itemicon] or
===date===
+
*[itemicon]teddyubo[/itemicon] displays: http://api.ryzom.com/data/cache/item_icons/0cf49e1620be972028c29a613d11ef2a.png
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
 
====Paramètres====
+
An anexistant or erroneous file such [itemicon]NoExist[/itemicon] displays : http://api.ryzom.com/data/cache/item_icons/c37962969910e09734d859a89e32085c.png
*texte:
+
<hr>
*attribut: significatif si texte est nul
+
 
**  
+
===link===
 +
''' ''link'' ''' builds a internal link.
 +
====Settings====
 +
*'''attribute'''
 +
** if "#", the text is the url name.
 +
** if empty, the text is a list of selected parameters in the script.
 
====Exemples====
 
====Exemples====
</div>
+
''We assume that the number of the script is 2124.''
===func===
+
*<nowiki>[link=#]A name for that link[/link] ⇒ displays a link with the name "A name for that link" to the URL http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&select=0</nowiki>
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
*<nowiki>[link]#A B Cl[/link] ⇒ displays the </nowiki>'''text'''<nowiki> (not a link) http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&select=A+B+C</nowiki>
====Paramètres====
+
<hr/>
*texte:  
+
 
*attribut: significatif si texte est nul
+
===lua===
**
+
''' ''lua'' ''' passes the ''text'' to the [[Ryzom Lua]] interpreter.
 +
====Settings====
 +
*'''text''': Lua script.
 +
*'''attribute''': None.
 +
<hr/>
 +
 
 +
===map===
 +
''' ''map'' ''' displays a square map of 2000 units around a given point marked by a magenta flag.
 +
====Settings====
 +
*'''text''' : name of a point (for instance city name) or Ryzom coordinates.
 +
*'''attribute''': '' "flags" '' displays with green flags all outposts.
 
====Exemples====
 
====Exemples====
 +
<div style="overflow: hidden">
 +
[[File:mapLoria.jpeg|200px|thumb|left|Loria map]]
 +
<nowiki>[map]18176,-29492[/map]</nowiki>
 
</div>
 
</div>
===itemicon===
+
<div style="overflow: hidden">
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
[[File:mapPyr.jpeg|200px|thumb|left|Pyr map]]
====Paramètres====
+
<nowiki>[map flags=markers]pyr[map]</nowiki>
*texte:  
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
 
</div>
 
</div>
===lua===
+
<hr/>
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
 
====Paramètres====
+
===math===
*texte:  
+
''' ''math'' ''' calculates basic calculations.
*attribut: significatif si texte est nul
+
====Settings====
**
+
*'''text''' : a basic calculations with the four arithmetical operators: +, -, *,  /.
 +
*'''attribute''': no significative.
 
====Exemples====
 
====Exemples====
</div>
+
*[math]1+2*3-4/6[/math] = 6.3333333333333
 +
*[math=toto][/math] and [math=toto]1+2*3-4/6t[/math] ⇒ no output
 +
 
 +
*[math][func=round]6.45[/func][/math] = 6
 +
*[math][func=round]6.45[/func]*2[/math] = 12
 +
<hr/>
 +
 
 
===param===
 
===param===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
====Settings====
====Paramètres====
+
*'''text'''
*texte:
+
*'''attribute'''
*attribut: significatif si texte est nul
 
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===data===
+
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
===playerbackup===
====Paramètres====
+
====Settings====
*texte:  
+
*'''text''' :
*attribut: significatif si texte est nul
+
*'''attribute''':
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===session===
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
</div>
 
===get===
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
</div>
 
===post===
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
</div>
 
  
 
===playerinfos===
 
===playerinfos===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
''' ''playerinfos'' ''' gives some informations concerning the player.
====Paramètres====
+
====Settings====
*text: is a "pseudo" array with "|" delimiters. It contains:
+
*'''text''': (general form: xxx|xxx|xxx) . One of the next keys: 'name', 'fullname', 'id', 'guild', 'guild_id', 'pvp_points', 'money',  'cid', 'gender' or 'api'.
** first field, one of: 'name', 'fullname', 'id', 'guild', 'guild_id', 'pvp_points', 'money',  'cid', 'gender' or 'api'.
+
** <small>next fields up to 2: values of that key if needed for api.</small>
** next fields up to 2: values of that key if needed.
+
*'''attribute''':
                        if ($attr[0] == "#")
 
                                $name = ryzom_get_param(substr($attr, 1));
 
                        else
 
                                $name = $attr;
 
                       
 
                        $db = ryDB::getInstance('webig');
 
                        $player_infos = $db->querySingle('players', array('name' => strtolower($name), 'deleted' => 0, 'shard' => ryzom_get_param('shard', _user()->shardid)));
 
                        p($player_infos);
 
                        if ($player_infos) {
 
                                $text = explode('|', $text);
 
                                switch ($text[0]) {
 
                                        case 'id':
 
                                                return $player_infos['id'];
 
                                        case 'cid':
 
                                                return $player_infos['cid'];
 
                                        case 'api':
 
                                                return ryzom_player_value($player_infos['id'], $text[1], '$text[2]');
 
*attribut:
 
 
** Empty
 
** Empty
** "#"
+
** #<name>
** <''name''>
+
** <name>
====Exemples====
+
====Exemples tested  by Bepock====
</div>
+
*name: [playerinfos]name[/playerinfos] ⇒ Bepock (for instance)
===gender===
+
*fullname: [playerinfos]fullname[/playerinfos] ⇒ fullname: Bepock(Atys)
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
*id: [playerinfos]id[/playerinfos] ⇒ 19089
 +
*guild: [playerinfos]guild[/playerinfos] ⇒ Animation
 +
*guild_id: [playerinfos]guild_id[/playerinfos] ⇒ 105906345
 +
*money: [lua][playerinfos]money[/playerinfos][/lua]
 +
*cid: [playerinfos]cid[/playerinfos] ⇒ 9765472
 +
*gender: [playerinfos]gender[/playerinfos] ⇒ 1 (male)
 +
<hr/>
 +
 
 +
===playerstat===
 
====Paramètres====
 
====Paramètres====
*texte:  
+
*'''text''': (general form xxx|xxx|xxx)
*attribut: significatif si texte est nul
+
*'''attribute''': None.
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===playerbackup===
+
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
===post===
====Paramètres====
+
====Settings====
*texte:  
+
*'''text''':  
*attribut: significatif si texte est nul
+
*'''attribute''': None.
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===playerstat===
+
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
</div>
 
 
===scriptinfos===
 
===scriptinfos===
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
''' ''scriptinfos'' ''' displays the translations associated to a keyword if it exist in the language of the user (See also the "[[ARCC traductions EN|trad tool]]" of ARK).
 
====Paramètres====
 
====Paramètres====
*texte:  
+
*'''text''': (general form xxx|xxx|xxx)
*attribut: significatif si texte est nul
+
*'''attribute''': None.
**
 
 
====Exemples====
 
====Exemples====
</div>
+
<hr/>
===if===
+
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
===scripturl===
====Paramètres====
+
''' ''scripturl'' ''' cats action, action number and extension to be send to the server.
*texte:  
+
====Settings====
*attribut: significatif si texte est nul
+
*'''text''': add a PHP extension to the URL gift in the attribute.
**  
+
*'''attribute''':  
 +
** Nothing: current action number of the script.
 +
** Otherwise: first letter of the letter field if not "space". In that case add a "+".
 
====Exemples====
 
====Exemples====
</div>
+
Launched from script 2088:
===ifnot===
+
:[scripturl]ryform_action=edit&ryform_name=stages%3A0[/scripturl] donne:
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
:<nowiki>http://app.ryzom.com/app_arcc/index.php?action=script_Edit&script=</nowiki>'''2088'''<big>&</big>''ryform_action=edit&ryform_name=stages%3A0''
====Paramètres====
+
<hr/>
*texte:  
+
 
*attribut: significatif si texte est nul
+
===session===
**  
+
''' ''session'' ''' is the simplest way to memorize data during the session, i.e. the connection. It offers also quicker answer, because it is a temporary memory not stored in the DB server.
 +
 
 +
<small>It can be use also in some condition as a temporary array, when each ''Rows'' are named, because that is the internal behaviour of ''Session''.</small>
 +
====Settings====
 +
*'''text''': depends of the attribute.
 +
*'''attribute''':
 +
** <empty> : ''text'' is the ''raw name'' of ''Session''.
 +
** any ''raw name'' : save the ''text'' in the temporary memory of ''Session''.
 
====Exemples====
 
====Exemples====
</div>
+
*Putting a value:
===hack===
+
**[session=Name_1]Name one[/session]
<div style="margin:0em; padding:0em;border: none;background:yellow;">
+
**[session=Name_2]&rArr;Name two&lArr;[/session]
 +
*Getting the value stored in the session (connection)
 +
**Name_1 = [session]Name_1[/session] displays : "Name one"
 +
**Name_2 = [session]Name_2[/session] displays : "&rArr;Name two&lArr;"
 +
<hr/>
 +
===t===
 +
''' ''t'' ''' displays the translations associated to a keyword if it exist in the language of the user (See also the "[[ARCC traductions EN|trad tool]]" of ARK).
 
====Paramètres====
 
====Paramètres====
*texte:  
+
*'''text''': (general form xxx|xxx|xxx)
*attribut: significatif si texte est nul
+
*'''attribute''': None.
**
 
 
====Exemples====
 
====Exemples====
</div>
+
*[t]yes[/t] ⇒ gives for French user "Oui"
==HTML==
+
*[t]text[/t] ⇒ gives for French user "Texte"
<table>
+
But, because keyword is case sensitive:
 +
*[t]Yes[/t] ⇒ gives {Yes}
 +
*[t]Text[/t] ⇒  gives {Text}
 +
<hr/>
  
<tr style="background-image:url(http://dl.dropbox.com/u/17987525/webig/inner1.png)">
+
===timer===
<td> </td>
+
''' ''timer'' ''' displays time in format "hh:mm:ss".  
<td><img src="http://arcc-ryzom.rhcloud.com/images/prerite/m0385ccmcb01.sitem.png"/></td><td>Alpha :</td><td>([db=TestDB]0:0[/db]+2000)/4000</td><td><img src="http://app.ryzom.com/app_arcc/scripts/events/event_temple/progress_bar.php?value=[db=TestDB]1:0[/db]&value_max=4000+40&rand=[func]now[/func]" /></td></tr>
+
*See also ''[[#date|date]]''.
 +
====Settings====
 +
*'''text''': If empty or zero or "now()" gives the actual time in ''days_of_the_current_year'':''GMT_hour'':''minutes'':''seconds''.
 +
:otherwise, treats the value in the text as number of seconds, and display the equivalent "hour'':''minutes'':''seconds''.
 +
*'''attribute''': None.
 +
====Exemples====
 +
*[timer][/timer] or [timer]now()[/timer] or [timer]0[/timer] ⇒ 296:13:05:18
 +
*[timer]60[/timer] ⇒ 00:01:00
 +
*[timer]3600[/timer] ⇒ 01:00:00
 +
<hr/>
  
<tr style="background-image:url(http://dl.dropbox.com/u/17987525/webig/inner1.png)">
+
===trad===
<td> </td>
+
''' ''trad'' ''' displays one of the translations associated to a keyword if it exist in the language of the user (See also the "[[ARCC traductions EN|trad tool]]" of ARK).
<td><img src="http://arcc-ryzom.rhcloud.com/images/prerite/m0655chsca01.sitem.png" /></td><td>Beta :</td><td> [db=TestDB]1:0[/db]/4000+60</td><td><img src="http://app.ryzom.com/app_arcc/scripts/events/event_temple/progress_bar.php?value=[db=TestDB]4:0[/db]&value_max=4000&rand=[func]now[/func]" /></td></tr>
+
====Settings====
 +
*'''text''': (general form: xxx|xxx|xxx, and internal xxx_xxx_xxx).
 +
*'''attribute''': sens if text empty
 +
====Exemples====
 +
*<nowiki>[trad]Hello[/trad] ⇒ displays the local translation</nowiki>
 +
*<nowiki>[trad=Hello][/trad] ⇒ displays the local translation</nowiki>
 +
<hr/>
  
<tr style="background-image:url(http://dl.dropbox.com/u/17987525/webig/inner1.png)">
+
===url===
<td> </td>
+
''' ''url'' ''' is the standard way to pass an URL. That URL visually  is formatted as usual in Ryzom.
<td><img src="http://arcc-ryzom.rhcloud.com/images/prerite/m0685ccpca01.sitem.png" /></td><td>Gamma :</td><td> [db=TestDB]2:0[/db]/4000</td><td><img src="http://app.ryzom.com/app_arcc/scripts/events/event_temple/progress_bar.php?value=[db=TestDB]2:0[/db]&value_max=4000&rand=[func]now[/func]" /></td></tr>
+
====Settings====
 +
*'''text''' : URL or text to display
 +
*'''attribute''':
 +
**if text=<empty>: URL;
 +
**else, text to be displayed: name, description... of the URL.
 +
====Exemples====
 +
*<nowiki>[url]http://forge.ryzom.com/wiki/ARCC_Expert_EN[/url]</nowiki>
 +
*<nowiki>[url=http://forge.ryzom.com/wiki/ARCC_Expert_EN]The ARCC[/url]</nowiki>
 +
<hr/>
  
 +
===validate===
 +
''' ''validate'' ''' returns a link of the actual stage in the script.
 +
====Settings====
 +
*'''text''': name of the link
 +
*'''attribute''':
 +
====Exemple====
 +
''We assume that the number of the script is 2124.''
  
<tr style="background-image:url(http://dl.dropbox.com/u/17987525/webig/inner1.png)">
+
<nowiki>[validate]==validate==[/validate] ⇒ displays a link with the name "==validate==" to the URL http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&command_13=validate</nowiki>
<td> </td>
+
<hr/>
<td><img src="http://arcc-ryzom.rhcloud.com/images/prerite/m0559ccncb01.sitem.png" /></td><td>Delta :</td><td> [db=TestDB]3:0[/db]/4000</td><td><img src="http://app.ryzom.com/app_arcc/scripts/events/event_temple/progress_bar.php?value=[db=TestDB]3:0[/db]&value_max=4000&rand=[func]now[/func]" /></td></tr>
 
 
 
</table>
 
 
 
[list=1]
 
[*]now:[func]now[/func]
 
[*]rand %:[func=rand]0|100[/func]
 
[*]calc:[math](10*2)[/math]
 
[*]session DATE:[session=DATE][func]now[/func][/session]
 
[*]DATE:[session]DATE[/session]
 
[*]date:[date]DATE[/date]
 
[*]rand*DATE:[math][func=rand]0|100[/func]*[session]DATE[/session][/math]
 
[*]rand*DATE:[math]([func=rand]0|100[/func]*[session]DATE[/session])%100[/math]
 
[*]
 
[/list]
 
 
 
[list]
 
[*]session DATE:[session=DATE][func]now[/func][/session]
 
[*]DATE:[session]DATE[/session]
 
[*]date:[date]DATE[/date]
 
 
 
[*]1 [date shard=atys][/date]
 
[*]2 [date=atys][/date]
 
[*]3 [date shard][/date]
 
[*]4 [date][/date]
 
[*]5 [date]1407426669[/date]
 
[session=DATE][func]now[/func]+1000[/session]
 
[*]6 [time][session]DATE[/session][/time]
 
[*]
 
[*]Samedi 8 Novembre 12:00:00 UTC (dans 3 mois)
 
[*]17h - Tria, Pluvia 15, 3e CA 2580
 
[*][time]2014-11-08 12:00[/time]
 
[*]1:[date shard=atys]2014-11-08 12:00[/date]
 
[*]2:[date=atys]2014-11-08 12:00[/date]
 
[*]3:[date shard]2014-11-08 12:00[/date]
 
[*]4:[date]2014-11-08 12:00[/date]
 
[*]
 
[*]1:[date shard=atys]2014-11-08 12:00[/date]
 
[*]2:[date=atys]2014-11-08 12:00[/date]
 
[*]3:[date shard]2014-11-08 12:00[/date]
 
[*]4:[date]2014-11-08 12:00[/date]
 
[*]
 
[*]1:[shard=atys]2014-11-08 12:00[/shard]
 
[*]2:
 
[*]3:[shard]2014-11-08 12:00[/shard]
 
[*]4:[date]2014-11-08 12:00[/date]
 
[*]
 
[*]1:[date shard=atys=2014-11-08 12:00][/date]
 
[*]2:[date=atys=2014-11-08 12:00][/date]
 
[*]3:[date shard=2014-11-08 12:00][/date]
 
[*]4:[date=2014-11-08 12:00][/date]
 
[*]
 
[*]
 
[*]
 
[*]
 
[*]
 
[*]
 
[*]
 
[*]
 
[/list]
 
 
 
 
 
liste des item .ps et .sitem?
 
 
 
players dans les db permet de différencier et mémoriser chaque players !
 
il doir en etre de meme pour guilde etc...
 
 
 
 
 
<div style="margin:0em; padding:0em;border: none;background:yellow;">
 
====Paramètres====
 
*texte:
 
*attribut: significatif si texte est nul
 
**
 
====Exemples====
 
</div>
 
 
 
&rArr;
 
  
 
==Autre soutils de l'ARCC==
 
==Autre soutils de l'ARCC==
 
*[[ARCC traductions EN|Traduction automatique]]
 
*[[ARCC traductions EN|Traduction automatique]]
  
 
+
'''[[ARCC Guide EN|←ARCC Guide EN]]'''
 +
{{In_Category|ARCC}}
 
{{TPInWikiRyzom‎}}
 
{{TPInWikiRyzom‎}}
 
 
[[Category:Tutorials]]  
 
[[Category:Tutorials]]  
 
[[Category:ARCC]]
 
[[Category:ARCC]]
 
[[Category:EN]]
 
[[Category:EN]]

Latest revision as of 09:33, 14 June 2018

Migration

Please use the migrated document at URL shown below.

Migrated to en:ARK, expert at 2018-06-14

Flag-DE

Übersetzung , bitte.

Flag-EN

To check the quality of the text itself

Flag-ES

Traducción, por favor.

Flag-FR

À corriger par rapport à l'anglais. Attendre qu'il n'y ait plus de "WIP" (marques jaunes)

Flag-RU

перевод, пожалуйста.


User guide for Ark, short for Ryzom Arkitect.

For historical reasons, those manuals refers very often, almost always, to A.R.C.C.. This is due to the fact that the full documentation has been started with the initial name, ARCC, meaning Advanced Ryzom Content Creator.

Ryzom specific BBCODE

data

Settings

  • text
  • attribute

Exemples


date

date displays date in "human". See also time.

Settings

  • text: If empty or zero gives the actual date.
otherwise, seconds to add to 1970-01-01 00:00.
  • attribute: format for the date. By default if empty: "YYYY-MM-DD hh:mm"

Exemples

  • [date]0[/date] ⇒ 2014-10-24 15:31
  • [date]3600[/date] ⇒ 1970-01-01 02:00
  • [date]-3600[/date ] ⇒ 1970-01-01 00:00
  • [date="%d/%m/%Y %H:%M"]3600[/date] ⇒ "01/01/1970 02:00"

db

db store or read a value in a DB. DB is of different kind of rows sets. For instance, "player" DB will memorize the name of the player in column 0; ARCC DB, will memorize an internal number,... Columns can be named, otherwise they are referred by the sequential numeration 0 to n

Settings

  • text: (general form: xxx:xxx:xxx)
    1. store a data in a cell
    2. read the contents in a cell
A cell is defined as: line:scope where:
  1. line is a specific kind of data.
  2. scope is associated to the characteristics of the players who are:
    1. player (by default and equivalent to '0' )
    2. guild
    3. arcc
    4. civ
    5. cult
    6. org
    7. race
  • attribute: Name of the database.

Examples

  • [db=TestDB]0:0=100[/db] load 100 in the cell 0:0 of TestDB.
  • [db=TestDB]3:0[/db] read the cell 3:0

div

div is the equivalent of the HTML bloc <div>. That container can divide the page in sections containing the style and other attributes of a HTML bloc.

Settings

  • text: Any kind of data who can be included in a HTML bloc: text, images... and their format.
  • attribute: normaly an array composed by three elements:
    • class
    • id
    • style

Exemples

  • [div class="Bepock" id="bepock" style="margin:1em;padding:1em;border:none;background:#fed;color:#300;"]Blabla<br/>blabla<br/>...[/div]

displays:

Blabla
blabla
...

expr

Settings

  • text
  • attribute

Exemples


func

func allow the execution of some functions known in Ryzom.

Settings

  • text: (general form: <1st_part_of_text>|<2nd_part_of_text>|...). Parameters for the functions (except if function has no parameters, in that cas could be the function itself).
  • attribute:one of the next functions:
    • now: internal server time in tics
    • rand: random value in a range of two limits.
    • sqrt: square root.
    • log: natural logarithm.
    • pow: power of <1st_number_in_text> by <2nd_number_in_text>.
    • round: round of a number.
    • floor: floor of a number.
    • min: min between two numbers.
    • max: max between two numbers.
    • find: find in the <1st_string_in_text> the <2nd_string_in_text>: return 1 if found, otherwise, 0.
    • split: split the <1st_part_of_text> (a string) by the <2nd_part_of_text> (a char) and return the nth element of the split gift by the <3rd_part_of_text> (a number), if define otherwise the first element counting from 0.
    • substr: extract a substring from the <1st_part_of_text> (a string) begininh at the <2nd_part_of_text> (a number) till the <3rd_part_of_text> (a number), if define otherwise till the end of the given string. Chars are counted from 0.
    • unset_url_param: unset parameters.
    • building: include if not already defined an alias to the <1st_string_in_text>.

Exemples

  • now: [func]now[/func] or [func=now]100[/func]
  • rand: [func=rand]0|10[/func]
  • sqrt: [func=sqrt]64[/func] = 8
  • log: [func=log]10[/func] = 2.302585092994
  • pow: [func=pow]10|2[/func] = 100
  • round: [func=round]2.85092994[/func] = 3
  • floor: [func=floor]2.85092994[/func] = 2
  • min: [func=min]10|2[/func] = 2
  • max: [func=max]10|2[/func] = 10
  • find:
    • [func=find]AZERTYUIOP|Y[/func] = 1
    • [func=find]azertyuiop|Y[/func] = 0
  • split:
    • [func=split]A_B_C_D|_[/func] = A
    • [func=split]A_B_C_D|_|2[/func] = C
  • substr:
    • [func=substr]A_B_C_D|2[/func] = B_C_D
    • [func=substr]A_B_C_D|2|4[/func] = B_C_

gender

gender returns a text according to the gender.

Settings

  • text: text to display if the char has the gender of the attribute.
  • attribute: m or f

Exemples

We assume that the player is male.

  • [gender=m]Sir![/gender] returns Sir!
  • [gender=f]Miss![/gender] returns nothing.

get

Settings

  • text:
  • attribute: None.

Exemples


hack

Empty function!


if

if displays a text if attribute is OK

Settings

  • text: text to display if attribute is OK
  • attribute: math evaluation.

ifnot

ifnot displays a text if attribute is NOT OK

Settings

  • text: text to display if attribute is NOT OK
  • attribute: math evaluation.

img

img displays an image. Something is wrong because, I (Bepock) obtain always a " title="" /> after the image. Use [imgurl] instead: it works fine.

Settings

  • text: image_URL
  • attribute: does not work

Exemples

  • [img]http://app.ryzom.com//data/icons/32/emotion_happy.png[/img]

displays:

emotion_happy.png " title="" />

imgurl

imgurl displays an image linking to an URL.

Settings

  • text: (general form: xxx xxx xxx). 2 kinds of data:
    1. URL of the image, mandatory: clickable image;
    2. Display name of the URL when mouse goes over the image. Preceded by the underscore character ("_"), it is a text that will be translated. It remains enclosed by brackets "{}" if it is not translated.
  • attribute: URL

Exemples

  • [imgurl=http://forge.ryzom.com/wiki/ARCC_Expert_EN]http://app.ryzom.com//data/icons/32/emotion_tongue.png _The_ARCC[/imgurl]

displays:

The_ARCC

itemicon

itemicon displays a thumbnail of an item.

Paramètres

Exemples

  • [itemicon]teddyubo.sitem[/itemicon] or
  • [itemicon]teddyubo[/itemicon] displays: 0cf49e1620be972028c29a613d11ef2a.png

An anexistant or erroneous file such [itemicon]NoExist[/itemicon] displays : c37962969910e09734d859a89e32085c.png


link

link builds a internal link.

Settings

  • attribute
    • if "#", the text is the url name.
    • if empty, the text is a list of selected parameters in the script.

Exemples

We assume that the number of the script is 2124.

  • [link=#]A name for that link[/link] ⇒ displays a link with the name "A name for that link" to the URL http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&select=0
  • [link]#A B Cl[/link] ⇒ displays the text (not a link) http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&select=A+B+C

lua

lua passes the text to the Ryzom Lua interpreter.

Settings

  • text: Lua script.
  • attribute: None.

map

map displays a square map of 2000 units around a given point marked by a magenta flag.

Settings

  • text : name of a point (for instance city name) or Ryzom coordinates.
  • attribute: "flags" displays with green flags all outposts.

Exemples

Loria map

[map]18176,-29492[/map]

Pyr map

[map flags=markers]pyr[map]


math

math calculates basic calculations.

Settings

  • text : a basic calculations with the four arithmetical operators: +, -, *, /.
  • attribute: no significative.

Exemples

  • [math]1+2*3-4/6[/math] = 6.3333333333333
  • [math=toto][/math] and [math=toto]1+2*3-4/6t[/math] ⇒ no output
  • [math][func=round]6.45[/func][/math] = 6
  • [math][func=round]6.45[/func]*2[/math] = 12

param

Settings

  • text
  • attribute

Exemples


playerbackup

Settings

  • text :
  • attribute:

Exemples


playerinfos

playerinfos gives some informations concerning the player.

Settings

  • text: (general form: xxx|xxx|xxx) . One of the next keys: 'name', 'fullname', 'id', 'guild', 'guild_id', 'pvp_points', 'money', 'cid', 'gender' or 'api'.
    • next fields up to 2: values of that key if needed for api.
  • attribute:
    • Empty
    • #<name>
    • <name>

Exemples tested by Bepock

  • name: [playerinfos]name[/playerinfos] ⇒ Bepock (for instance)
  • fullname: [playerinfos]fullname[/playerinfos] ⇒ fullname: Bepock(Atys)
  • id: [playerinfos]id[/playerinfos] ⇒ 19089
  • guild: [playerinfos]guild[/playerinfos] ⇒ Animation
  • guild_id: [playerinfos]guild_id[/playerinfos] ⇒ 105906345
  • money: [lua][playerinfos]money[/playerinfos][/lua]
  • cid: [playerinfos]cid[/playerinfos] ⇒ 9765472
  • gender: [playerinfos]gender[/playerinfos] ⇒ 1 (male)

playerstat

Paramètres

  • text: (general form xxx|xxx|xxx)
  • attribute: None.

Exemples


post

Settings

  • text:
  • attribute: None.

Exemples


scriptinfos

scriptinfos displays the translations associated to a keyword if it exist in the language of the user (See also the "trad tool" of ARK).

Paramètres

  • text: (general form xxx|xxx|xxx)
  • attribute: None.

Exemples


scripturl

scripturl cats action, action number and extension to be send to the server.

Settings

  • text: add a PHP extension to the URL gift in the attribute.
  • attribute:
    • Nothing: current action number of the script.
    • Otherwise: first letter of the letter field if not "space". In that case add a "+".

Exemples

Launched from script 2088:

[scripturl]ryform_action=edit&ryform_name=stages%3A0[/scripturl] donne:
http://app.ryzom.com/app_arcc/index.php?action=script_Edit&script=2088&ryform_action=edit&ryform_name=stages%3A0

session

session is the simplest way to memorize data during the session, i.e. the connection. It offers also quicker answer, because it is a temporary memory not stored in the DB server.

It can be use also in some condition as a temporary array, when each Rows are named, because that is the internal behaviour of Session.

Settings

  • text: depends of the attribute.
  • attribute:
    • <empty> : text is the raw name of Session.
    • any raw name : save the text in the temporary memory of Session.

Exemples

  • Putting a value:
    • [session=Name_1]Name one[/session]
    • [session=Name_2]⇒Name two⇐[/session]
  • Getting the value stored in the session (connection)
    • Name_1 = [session]Name_1[/session] displays : "Name one"
    • Name_2 = [session]Name_2[/session] displays : "⇒Name two⇐"

t

t displays the translations associated to a keyword if it exist in the language of the user (See also the "trad tool" of ARK).

Paramètres

  • text: (general form xxx|xxx|xxx)
  • attribute: None.

Exemples

  • [t]yes[/t] ⇒ gives for French user "Oui"
  • [t]text[/t] ⇒ gives for French user "Texte"

But, because keyword is case sensitive:

  • [t]Yes[/t] ⇒ gives {Yes}
  • [t]Text[/t] ⇒ gives {Text}

timer

timer displays time in format "hh:mm:ss".

Settings

  • text: If empty or zero or "now()" gives the actual time in days_of_the_current_year:GMT_hour:minutes:seconds.
otherwise, treats the value in the text as number of seconds, and display the equivalent "hour:minutes:seconds.
  • attribute: None.

Exemples

  • [timer][/timer] or [timer]now()[/timer] or [timer]0[/timer] ⇒ 296:13:05:18
  • [timer]60[/timer] ⇒ 00:01:00
  • [timer]3600[/timer] ⇒ 01:00:00

trad

trad displays one of the translations associated to a keyword if it exist in the language of the user (See also the "trad tool" of ARK).

Settings

  • text: (general form: xxx|xxx|xxx, and internal xxx_xxx_xxx).
  • attribute: sens if text empty

Exemples

  • [trad]Hello[/trad] ⇒ displays the local translation
  • [trad=Hello][/trad] ⇒ displays the local translation

url

url is the standard way to pass an URL. That URL visually is formatted as usual in Ryzom.

Settings

  • text : URL or text to display
  • attribute:
    • if text=<empty>: URL;
    • else, text to be displayed: name, description... of the URL.

Exemples

  • [url]http://forge.ryzom.com/wiki/ARCC_Expert_EN[/url]
  • [url=http://forge.ryzom.com/wiki/ARCC_Expert_EN]The ARCC[/url]

validate

validate returns a link of the actual stage in the script.

Settings

  • text: name of the link
  • attribute:

Exemple

We assume that the number of the script is 2124.

[validate]==validate==[/validate] ⇒ displays a link with the name "==validate==" to the URL http://app.ryzom.com/app_arcc/index.php?action=mScript_Edit&script=2124&command_13=validate


Autre soutils de l'ARCC

←ARCC Guide EN

63 pages in ARCC

Ryzom Wiki: Ryzom Commons | DE • EN • ESFRRU | Ryzom Forge