Modèle:Dv

De ARK: Survival Evolved Wiki
Aller à : navigation, rechercher
Template-info.png Documentation

DV, pour Dinosaur Values (Valeurs des dinosaures), est utilisé comme étape intermédiaire pour les valeurs des données qui changeront régulièrement pendant le développement d'ARK. Il permettra aux éditeurs de n'utiliser qu'un seul modèle au lieu de recréer sans cesse les modèles où les valeurs apparaissent. Ce modèle ne remplacera pas les requêtes Cargo, mais travaillera de concert lorsqu'il s'agit de pages sémantiques.

Base de données

La base de données se trouve à Module:Dv/data et est encapsulée (ou table en langage Lua).

La première clé est le nom d'espèce. La seconde classe contient les paires de valeurs/clés. Une valeur peut aussi être une autre valeur/clé ou une capusle/table, selon une profondeur libre.

Les clés construisent le chemin <attribute path>. Par exemple, le chemin vers la valeur 5 est attaque/1/mêlée/dégât, ou en d'autres termes {{ dv | dodo | attacks/1/melee/damage }}.

-- syntaxe simplifiée pour montrer le mécanisme, pour une syntaxe complète, voir Module:Dv/data

...
|
+- dodo
|  +- commonname: Dodo
|  +- group: Oiseaux
|  +- ...
|  +- stats
|  |  +- health: 40
|  |  +- ...
|  +- attacks
|     +- 1
|        +- name: Mêlée
|        +- ...
|        +- melee
|           +- damage: 5
|
+- dodorex
|  +- ...
...
+- aberrantOverride
|  +- stats  -- quelques stats qui sont différentes chez la plupart des créatures irradiées
|     +- healthtamedmult: -0.04
|     +- ...
+- abberantdodo
   +- inherits: dodo
   +- overridewith: aberrantOverride
   +- commonname: Dodo irradié
   +- ...

On trouve deux clés spéciales, inherits et overridewith, qui ne sont prises en compte que pour la deuxième clé. Si inherits pour une créature, alors les données sont copiées chez la créature dont la valeur a le nom, mais sans alias ni résolution de nom (voir section Résoudre le nom). Les données de la créature en cours sont fusionnées récursivement. Les valeurs des clés en cours seront corrigées, et les données inexistantes seront ajoutées. Mais si overridewith existe, les données seront mises à jour et remplaceront les anciennes.

Dans notre exemple, les valeurs du Dodo irradié sont tirées du Dodo normal, mais comme il a un nom propre, certaines valeurs sont remplacées ou ajoutées comme pour la plupart des créatures irradiées.

Utilisation courante

{{ dv | <name> | <attribute path> }}
{{ dv | <name> / <attribute path> }}
{{ dv | <name> | <attribute path part 1> | <attribute path part 2> }}

Les parties du chemin doivent être séparées avec une oblique / comme séparateur ou avec des valeurs individuelles séparées par une barre |.

Le chemin doit mener à une valeur unique, sinon le texte "pas assez spécifique" est renvoyé.

Si le chemin mène à une clé inexistante, la valeur "rien" est renvoyée.

Résoudre le nom

Le <name> d'une créature est généralement son nom de page. Le Modèle/Module Dv remplace tous les caractères autres que A-Za-z0-9 (par ex. espaces, ponctuation ou caractères accentués) du paramètre <name> et le convertit en minusucle. Ensuite il vérifie si un alias existe dans Module:Dv/aliases. Le résultat doit correspondre à un chemin trouvé dans une capsule/table trouvé dans le Module:Dv/data. Sinon le texte "valeurs de la créature non trouvées" est renvoyé.

Le même processus est utilisé pour les parties de chemin, vérification de l'alias en moins.

Exemples

{{dv|Allosaure|stats/health}} montrera "630"

{{dv|Allosaure|stats|health}} montrera "630"

{{dv|Allosaure|stats}} montrera "path not specific enough: allosaure/stats"

{{dv|Allosaure|stats/fortitude}} montrera ""

{{dv|allo|stats/health}} montrera ""

{{dv|allo saur|stats/health}} montrera ""


{{dv|Rhinocéros laineux|KillXPBase}} montrera "4"

{{dv|ptera|immobilizedby}} montrera ""

{{dv|WYVERNE DE FOUDRE|DLC}} montrera "Scorched Earth, Ragnarok, Genesis: Part 1"

Définir les variables

Vous pouvez également ajouter un paramètre nommé par defineVars avec ou sans préfixe libre (le signe égal est alors obligatoire).

{{ dv | <name> | <attribute path> | defineVars= }}
{{ dv | <name> | <attribute path> | defineVars=prefix }}
{{ dv | <name> | <attribute path part 1> | <attribute path part 2> | defineVars=prefix }}

Si <attribute path> mène à une seule valeur, le comportement est identique à précédemment. S'il mène à une clé inexistante, la valeur rien (champ vide) est retournée. S'il mène à une capsule/table, alors "variables defined" est la valeur retournée. Dasn ce cas, une paire clé-valeur {{#vardefine:key|value}} est exécutée. Si la valeur est une table/capsule, alors la variable avec la clé en cours et le champ "table" est définie; pour chaque entrée, la clé est ajoutée au chemin parent <attribute path> et séparée par une oblique /. En outre, si la clé n'est pas vide, tous les chemins sont préfixés et séparés par une oblique /.

{{#if: {{dv | Dodo | attacks/1 | defineVars=}} |
* Name: {{#var:name}}
{{#if: {{#var:melee}} <!-- contains "table" --> |
* Damage: {{#var:melee/damage}}
}}
}}
  • Name: Mêlée
  • Damage: 5

Dans l'exemple ci-dessus, le texte renvoyé "variables defined" est ignoré, mais doit être là (ou au mieux un champ non vide) pour satisfaire à la condition #if:.

{{#if: {{dv | Dodo | stats | defineVars=prefix}} |
* Health: {{#var:prefix/health}}
}}
  • Health: 40