From Ryzom Forge Wiki
Règles et informations utiles pour la création de missions.
Propriétés
Règle générale : Le système vous permet de créer un PNJ personnalisé sans créer de nouvelles George Sheet. Engros, un user_model est un script dans lequel vous décrivez les propriétés du PNJ et leurs valeurs. Les user_models sont chargés et déchargés avec les primitives qui les contiennent. Si le modèle contient une erreur, il sera quand même appliqué (à part la ligne qui contient l'erreur) et le nom du PNJ personnalisé sera visuellement remplacé par "< ERROR > userModelId".
name : identifiant du user_model. Il doit être unique : si deux user_model ont le même identifiant, le second ne sera pas pris en compte. Cette identifiant est utilisé pour assigner le modèle à un PNJ. Pour cela, taper "USER_MODEL: " suivi de l'identifiant du modèle dans les paramètres à équiper du PNJ.
script : script décrivant quels attributs seront redéfinis par le modèle. La syntaxe est : "Category.attribute value". Ce script gère les commentaires de type C. Les catégories et les attributs sont décrits ci-dessous.
Basics category
Donne accès aux principaux attributs d'un PNJ. La syntaxe est Basics.attr value
. Les attributs pour cette catégorie sont :
- life : entier sans signe, valeur minimum 1 (si c'est 0, on applique la valeur 100 par défaut)
- liferegen : valeur décimale (flottante ?) positive (ex: 10.6)
- attackspeed : valeur décimale (flottante ?) positive, correspondant à la latence, en secondes, entre chaque attaque
- attacklevel : entier sans signe
- defenselevel : entier sans signe
- attackable : booléen (0, 1, true, false, on, off)
- selectable : booléen (0, 1, true, false, on, off)
- lhstate : NONE, LOOTABLE, HARVESTABLE, LOOTABLE_HARVESTABLE (aucun, dépeçable, récoltable, dépeçable et récoltable)
- race : nom de la race (matis, fyros, tryker, zorai) -> n'aura aucun impact visuel
- gender : genre, booléen (0, 1) -> n'aura aucun impact visuel
- size : entier sans signe -> n'aura aucun impact visuel
- nbplayers : entier sans signe, entre 1 et 254 (au-delà de ces limites, la valeur 1 sera appliquée par défaut)
- playerhplevel : entier non signé
- nbhittokillplayer : valeur décimale (flottante ?) positive
- ecosystem : lacs, forêt, jungle, désert ou prime racines -> n'aura aucun impact visuel
- type : inconnu
- fame : kami, karavan, fyros, matis, tryker, zorai
- famebykill : entier signé, quantité de renommée gagnée pour chaque mise à mort de ce bot
- xplevel : entier non signé
- tauntlevel : entier non signé
- meleereachvalue : entier non signé
- xpgainoncreature : valeur décimale (flottante ?) positive
- dodgeasdefense : booléen (0, 1, true, false, on, off)
- walkspeed : valeur décimale (flottante ?) positive
- runspeed : valeur décimale (flottante ?) positive
Protections
Permet de redéfinir les valeurs de protection pour le PNJ. Il faut définir une valeur maximale et un facteur de protection pour chatque type de protecion. La syntaxe est "Protections.attr max value" et "Protections.attr factor value". Le facteur est une valeur flottante (?) d'un pourcentage (12 for 12%) et le maximum est un entier non signé. Les attributs de protection sont :
- piercing : perforant
- slashing : tranchant
- blunt : contondant
- rot : pourriture
- acid : acide
- cold : froid
- fire : feu
- poison : poison
- electricity : électricité
- shock : ondes de choc
Resists
Permet de redéfinir les valeurs de résistance du PNJ. La syntaxe est "Resists.attr value". Toutes les valeurs sont des entiers non signés. Les attributs de résistance sont :
- fear : peur
- sleep : sommeil
- stun : étourdissement
- root :enracinement
- snare :attaque lente
- slow : mouvement lent
- madness : folie
- blind : aveuglement
- acid : acide
- cold : froid
- electricity : électricité
- fire : feu
- poison : poison
- rot : pourriture
- shockwave : onde de choc
sheet_client : C'est la feuille dont sont extraits tous les attributs non modifiés pour le bot personnalisé. NB : toutes les informations visuelles restent extraites de la feuille originale du bot.
Pour les autres possibilités de personnalisation, voir aussi la page custom_loot_table.
Comment changer les dégâts de la créature : DégâtsFaitsParLaCréatureParCoupSansParadeNiEsquive = uint32( (100*playerHpLevel) / nbHitToKillPlayer );
En donnant la valeur 100 à nbhittokillplayer
, le dégât minimum fait par le PNJ ou la créature sera ’playerhplevel’.
Modèle : Copiez/collez ce qui suit et apportez-y les changements nécessaires
//bandit faible, solotable, de niveau 6
basics.life 40
basics.LifeRegen 0.1
basics.xpgainoncreature 5
resists.acid 5
resists.cold 5
basics.attacklevel 6
basics.nbhittokillplayer 100
basics.defenselevel 2
basics.playerhplevel 8
//immunisé contre les dégâts perforants de mêlée
protections.piercing factor 100
protections.piercing max 10000
76 pages in K_primitives ryzom_core