Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

Questionnement sur le fonctionnement de l'opcode 12

Répondre
Selphira
Adepte de Grondemarteau
Blême
Messages : 942
Enregistré le : dim. 25 juil. 2004, 21:28
Contact :
Statut : Hors ligne

Questionnement sur le fonctionnement de l'opcode 12

.

Message par Selphira »

Bonjour,

Dans le cadre du développement de mon mod sur l'uniformisation des descriptions, je suis tombée sur un cas que je ne suis pas certaine de comprendre.

L'opcode 12 est celui qui permet d'ajouter des dégâts d'un certain type à la cible. Par exemple, voici les différentes valeurs pour des dégâts magiques
4194304 Magic
4194305 Magic Set to Value
4194306 Magic Set to Percentage
4194307 Magic Reduce by Percentage
Le 1er cas est le plus simple et le plus courant, il permet d'ajouter (ou soustraire) xx points de dégâts lors d'une attaque réussie.

Le 3ème infligerait xx% de dégâts magiques, le pourcentage étant basé sur les points de vie actuels
Le 4ème infligerait xx% de dégâts magiques, le pourcentage étant cette fois basé sur les points de vie maximum de la cible.

Par contre pour le 2ème, je sèche totalement. Il modifierait la vie de la cible à la valeur indiquée ? Pouvant soigner la cible si sa vie est en dessous de ce chiffre ?
Cela me semble vraiment étrange comme comportement.

Si quelqu'un a la réponse, je suis tout ouïe !
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Je vais te répondre parce que j'utilise souvent cet opcode pour "tuer" une cible immunisée à la mort ^^

Effet 12, paramètre 2 : magic set to value -> je me cette valeur à 2, la monstre va prendre assez de dégâts pour fixer sa valeur actuelle à 2.
En l’occurrence, j'utilise dans mes sorts les plus bourrins l'opcode 12 avec "magic set to value" : 0, ça fixe les pvs de la créature à 0 -> mort.

le paramètre 3 fonctionne de la même manière : set to % = avec paramètre 20, la créature va subir assez de dégâts pour voir sa vie fixée à 20% du maximum.
Le paramètre 4 inflige x% de dégâts basés sur les points de vie maximum de la cible : set to 20%, chaque frappe fait des dégâts à la cible égaux à 20% de son total de point de vie maximum.

(hors topic : ne venez pas hurler au grobillisme cheaté, les opcodes "modifier la force/dextérité/constitution/charisme/sagesse/intelligence, set value to 0, ça tue aussi, et l'archer en sait quelque chose :) )
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Selphira
Adepte de Grondemarteau
Blême
Messages : 942
Enregistré le : dim. 25 juil. 2004, 21:28
Contact :
Statut : Hors ligne
.

Message par Selphira »

Merci pour cette réponse très claire.

Je vois que j'avais mal compris le 3ème cas, mais cela veut bien dire que la cible pourrait être soignée si le pourcentage dans l'opcode est plus grand que le pourcentage actuel de sa vie ?
Et comment les résistances entrent en jeu pour le 2ème et 3ème cas ?
J'imagine qu'avec une résistance à 100%, il n'y a pas d'ambiguïté et les dégâts ne sont pas infligés, mais pour une résistance à 50% ?

Créature avec 50 pv restant, opcode avec un set = 2
Sans résistance, elle va se prendre 48 de dégâts, avec 50% de résistance elle va s'en prendre que 24 ?

Ca va bien m'aider pour la suite !
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

J'ai profité d'une sauvegarde spéciale programmation pour tester, et ...... la résistance ne s'applique que face au paramètre 0. Pour les paramètres 1,2 et 3, la résistance est ignorée.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message par deratiseur »

Deuxième test, sur le paramètre 2 (3ème cas, Magic Set to Percentage). dans le cas d'une valeur positive, par exemple 200, les dommages rendent 100% des points de vie actuels de la cible. La cible à 3 pvs, l'effet lui en rend 3. La cible à 6 pvs, l'effet lui en rend 6. L'effet est donc à lire comme ceci : set to x% des pvs actuels. (dans l’exemple, la valeur 200 c'est "set to 200% des pvs actuels")
C'est finalement très spécial puisque les valeurs agressives (inférieurs à 100%) prennent en compte le nombre de points de vie maximum alors que les valeurs bénéfiques (supérieures à 100%) prennent en compte les points de vie actuels.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Selphira
Adepte de Grondemarteau
Blême
Messages : 942
Enregistré le : dim. 25 juil. 2004, 21:28
Contact :
Statut : Hors ligne
.

Message par Selphira »

Merci pour ces renseignements ! Je vais garder précieusement ce fil de discussion pour améliorer les descriptions de cet effet qui est bien plus complexe qu'il n'y parait !
rivvers
Ours brun
Messages : 300
Enregistré le : sam. 21 janv. 2012, 14:36
Statut : Hors ligne
.

Message par rivvers »

Hello,

j'ai passé beaucoup de temps à décrypter les opcodes il y a quelques années car je n'étais pas du tout convaincu par les bibles en tout genre.
L'opcode 12 est particulièrement dense.

Il y a une chose à comprendre c'est que certains opcodes ont évolué avec le temps et les mises à jour mais personne ne sait vraiment quand ou comment (ou même pourquoi).
Le n°12 fait parti de ceux-là.
Aussi mes résultats diffèrent de ceux de deratiseur pour autant il est possible que nous ayons tous les deux raison, ou tord.

Grosse-modo les résultats que j'obtiens sont ceux que tu présentent : et les tests ig les confirment (en version 2.5).

Code : Tout sélectionner

	1 : Dégâts subis = Valeur
	2 : PV actuels = min(Valeur, PV maximums)
	3 : PV actuels = floor(PV actuels * Valeur / 100)
	4 : PV actuels = PV actuels - floor(PV maximums * Valeur / 100)
Avec une valeur à 20 et un perso à 86/98 pv. Chaque effet est lancé à deux reprises, voici les résultats :
1 : Il perd 20pv, puis 20pv.
2 : Il passe à 20pv (-66) puis à 20pv (0).
3 : Il passe à 17pv (-69) puis à 3pv (-14).
4 : Il passe à 67pv (-19) puis à 48pv (-19).

Les modes 1, 2 et 3 écrasent les points de vie actuels de la cible, c'est pourquoi aucune résistance n'est permise.
De fait ils sont partiellement incompatibles avec les Flags des bits 8 et 9.

edit :
Apparement ils ont pensé au problème : les flags des bits 8 et 9 ne fonctionnent qu'avec le mode 0
Répondre

Retourner vers « Modding et Outils de développement »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités