Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Skyzen Membre actif
Inscrit le: 07 Jan 2017 Messages: 119 Sujets: 16 Spécialité en worldedit: Tout en Gui, rien en Jass : This is my random life.
|
Posté le: 07/01/17 20:35 Sujet du message: Afficher une variable dans un texte descriptif |
|
|
Salut ^^ Donc voilà dans mon projet de map on incarne un héros que l'on contrôle comme dans un MobA (genre DotA), avec des sorts (Avec raccourcis E/R/T et Y pour l'ultime), bref vous connaissez surement le principe !
Les compétences des héros peuvent être boostés par leurs caractéristiques, par exemple :
Coup de tonnerre de Muradin inflige 250 de dégat + la force de Muradin x4 (bonus stuff inclus). Donc pour un Muradin qui a disont 150 force, les dégats du sort serons de 250+600=850.
Donc c'est cool ça permet de différencier les mécaniques d'un même héros en fonction de l'orientation que prends le joueur dans ses stuff (Genre jouer un personnage soit Intelligence, soit Force, soit Agilité, bref vous avez compris).
ET C'EST MAINTENANT QUE J'AI BESOIN DE VOUS :
Bref dans la description du sort de Muradin (On continus avec le même exemple), j'indique que le sort inflige 250(+forcex4) mais on va s'avouez, c'est pas se qu'il y a de plus pratique que de s'amuser à faire le calcule à chaque fois qu'on lance un sort x)
Le bonus de dégats du sort en fonction des caractéristiques du héros (Dans l'exemple notre fameux (+forcex4) ^^) sont enregistrés au travers d'une variable "Réel" et appliqué au sort via déclo.
J'aimerais donc savoir s'il existe un moyen d'afficher dans le descriptif des sorts la valeur d'une variable qui correspondrait au dégats du sort exact (bonus compris) et donc afficher un nombre "qui change" en fonction des caractéristique du héros.
Concrètement je veux que quand je chope un stuff +100 force avec Muradin la description du sort change et affiche 250(+la nouvelle force de Muradin x4) ^^
Voilà merci des réponses que vous pourriez m'apporter ! _________________
|
|
Revenir en haut |
|
|
Crowolf Animateur
Inscrit le: 21 Avr 2008 Messages: 1607 Sujets: 81 Spécialité en worldedit: Utiliser le travail des autres Médailles: 3 (En savoir plus...)
|
Posté le: 07/01/17 21:56 Sujet du message: |
|
|
Oui c'est possible. Je vois une solution, mais ce serait assez long.
Les compétences ont des données que tu peux modifier (dégâts, hp, vitesse etc.). Pour afficher ces données tu utilises un code du genre <Ahtc,DataA1>. Ici, Ahtc est le code de la compétence (visible en faisant ctrl+D dans l'éditeur d'objet) et DataA1 le code des dégâts au niveau 1.
Tu peux afficher les données d'une autre compétence dans la description d'un sort.
En gros, la compétence apprise ne serait pas la compétence que le héros utiliserait après. Il faut jouer à cacher les boutons et à ajouter les compétences manuellement.
Il faudrait créer une compétence Coup de tonnerre avec 1000 niveaux (ou le même nombre de niveaux que la force max) et pour chaque niveau, tu modifies la desciption pour afficher les dégâts en fonction de la force. Niveau 1 = 1 force; niveau 2 = 2 force etc.
Tu peux modifier automatiquement la description des tooltips.
Le niveau max des compétences est de 100 normalement, mais tu peux le modifier en appuyant sur MAJ avant de double clic sur la ligne "niveau" d'une compétence.
Admettons que Muradin puisse apprendre 4 niveaux de Coup de tonnerre, il faudrait 4 compétences à 1000 niveaux.
Compétence 1: 60 dégâts + 4x la fois la force
Compétence 2: 100 dégâts + 4x la force etc. _________________
|
|
Revenir en haut |
|
|
DarK™ Membre actif
Inscrit le: 29 Aoû 2011 Messages: 197 Sujets: 15 Spécialité en worldedit: Système/Déclencheurs [GUI]
|
Posté le: 07/01/17 23:50 Sujet du message: |
|
|
Impossible.
Ce que tu demandes n'est pas faisable dans Warcraft. On ne peut pas intégrer de variables dans un texte, un texte de description est statique, il ne changera pas, même en utilisant <A001,DataA1>, le texte est écrit en remplaçant <A001,DataA1> par la valeur qui lui correspond dans l'éditeur d'objet.
Les textes sont stockés dans un fichier de la map "war3map.wts" et n'est pas éditable durant la partie. _________________
|
|
Revenir en haut |
|
|
Karbok Membre actif
Inscrit le: 29 Oct 2014 Messages: 181 Sujets: 8 Spécialité en worldedit: les gauffres au nutella
|
Posté le: 08/01/17 00:16 Sujet du message: |
|
|
La question est plus interressante qu'il n'y paraît
Il faut savoir que les sorts à 1000 niveaux sont très gourmands en CPU la première fois qu'ils apparaissent en jeu (en plus d'imposer une limite aux stats). Donc il faut les pré-charger à l'initialisation de la partie , c'est-à-dire créer un dummy, lui ajouter tous les sorts et le supprimer Cela peut augmenter considérablement le temps de chargement de la partie (ayant déjà eu recours à cette technique pour des sorts à 100 niveaux, j'en avais pour plusieurs secondes de chargement supplémentaires...).
A part ça, Blizzard n'a malheureusement pas prévu de fonctionnalité permettant de modifier dynamiquement les tooltips, notammant à cause du fait que le jeu n'écrit qu'une seule fois le tooltip en mémoire, et donc que toutes les instances du sort vont lire au même endroit pour afficher leurs tooltips, ce qui poserait problème si il y a plusieurs Muradin par exemple. En réalité, il existe une méthode qui permet de le faire, mais elle est basée sur un bug-exploit qui a été fixé au dernier patch (1.27b). Pour faire simple, l'exploit accède directement à la mémoire du jeu et réécrit un nouveau tooltip à l'endroit où est stocké l'ancien. (Pour info, l'exploit permet aussi entres autres de prendre le contrôle de n'importe quel ordinateur qui aurait le malheur de démarrer une partie contenant un virus, mais il sera prochainement utilisé intensivement dans DotA car il donne les pleins pouvoirs au map-maker !) _________________
Mon pseudo Battle.net : Dragonflamm |
|
Revenir en haut |
|
|
Skyzen Membre actif
Inscrit le: 07 Jan 2017 Messages: 119 Sujets: 16 Spécialité en worldedit: Tout en Gui, rien en Jass : This is my random life.
|
Posté le: 08/01/17 00:43 Sujet du message: |
|
|
Je n'avais pas penser à utilisé un "sort facade" possédant infinité de niveau, mais sachant que chaque sort de base possède 19 niveau (18 pour ultime) et que certains sorts peuvent être augmentés via plusieurs variables, ca rend la chose compliqué...
Effectivement, ca marcherais pour coup de tonnerre de Muradin, mais qu'en serait-il pour un sort possédant plusieurs lignes de dégats via déclencheurs ? Comme un sort qui infligerais tout d'abord 100(+intelx2) puis 2 seconde après 200(+agilitéx6) ?
Cela rend ton astuces impossible, et malheureusement se genre de sort est déjà inclus sur certains champions de ma map (Car c'est bon pour le game play ^^).
Sinon si l'on ne peux que faire référence à l'éditeur d'objet dans les textes descriptifs, es que l'on ne peux pas modifié directement via déclo les valeurs présentes dans un texte ???? Sans passer par ce que l'on écrit dans l'éditeur d'objet ??
EDIT : Ah et donc le bug, il est encore exploitable ? _________________
|
|
Revenir en haut |
|
|
DarK™ Membre actif
Inscrit le: 29 Aoû 2011 Messages: 197 Sujets: 15 Spécialité en worldedit: Système/Déclencheurs [GUI]
|
Posté le: 08/01/17 00:48 Sujet du message: |
|
|
Non, impossible sans utiliser ce fameux memory hack.
Néanmoins tu dois savoir que c'est très récent, peu user-friendly, et en JASS. Je n'ai pas regardé toute la procédure pour pouvoir s'en servir, mais il me semble que c'est pas très simple.
Tu peux regarder par ici : http://www.hiveworkshop.com/threads/memory-hack.289508/ _________________
|
|
Revenir en haut |
|
|
Skyzen Membre actif
Inscrit le: 07 Jan 2017 Messages: 119 Sujets: 16 Spécialité en worldedit: Tout en Gui, rien en Jass : This is my random life.
|
Posté le: 08/01/17 02:23 Sujet du message: |
|
|
Ouaaa j'ai regarder ca à l'air assez compliqué effectivement ! N'empèche je suis content de savoir que c'est possible et que je vais pouvoir m'y atteler ! Je vais chercher a comprendre puis je donnerais un retour ^^ _________________
|
|
Revenir en haut |
|
|
Crowolf Animateur
Inscrit le: 21 Avr 2008 Messages: 1607 Sujets: 81 Spécialité en worldedit: Utiliser le travail des autres Médailles: 3 (En savoir plus...)
|
Posté le: 08/01/17 11:51 Sujet du message: |
|
|
C'est possible avec ma méthode, je l'ai déjà fait sur un AoE. Les sorts étaient améliorés par des gemmes d'éléments que le héros ramassait ou les objets qu'il collectait.
C'est juste un peu long et mes sorts n'avaient que 4 niveaux max. Je ne savait pas qu'on pouvait avoir plus de 100 niveaux donc je faisais plusieurs compétences de 100 niveaux ou j'utilisais DataA1, DataB1, DataC1.
"Comme un sort qui infligerais tout d'abord 100(+intelx2) puis 2 seconde après 200(+agilitéx6) ?"
En utilisant des DataA1 et DataB1 ou 2 sorts de façade différents.
Au final c'était trop long à gérer pour 25 héros donc je laissais les descriptions de base. _________________
|
|
Revenir en haut |
|
|
Skyzen Membre actif
Inscrit le: 07 Jan 2017 Messages: 119 Sujets: 16 Spécialité en worldedit: Tout en Gui, rien en Jass : This is my random life.
|
Posté le: 08/01/17 12:24 Sujet du message: |
|
|
Bien vu tu as raison ^^ Mais avec 19 niveaux par sorts je crois que finalement je vais juste laisser le (4 x force) ou attendre d'être mieux renseigné sur l'exploitation en Jass du fameux bug. _________________
|
|
Revenir en haut |
|
|
|