|
Bonjour à tous, je me suis mis en tête récemment de créer un Tower Defense. Après avoir parcouru plusieurs forum et vu quelques tuto (notamment ceux youtube de VisionElf :p) j'ai créer un TD basique.
Afin de le faire évoluer je voudrais pouvoir faire évoluer une tour spécifique (durant le jeu). Techniquement je créer une capacité lié à un effet de type "appliquer un comportement", le dit comportement donne un bonus de dégâts. Si j'ajoute à l'acteur de ma tour un événement qui se déclenche lorsque mon effet démarre et qui joue une action "définir la nuance de couleur" ça fonctionne. En jeu lorsque je déclenche la capacité j'ai bien le bonus de dégât d'une part et le changement de couleur. Mon problème c'est que je voudrais pouvoir faire plusieurs "amélioration" (activation de la capacité pour être exact) avec à chaque fois un bonus des dégâts (ça, ça fonctionne en modifiant le nombre cumulable du comportement) et modifier la couleur de la tour à chaque "amélioration" (ne fonctionne pas). Savez-vous comment faire ? PS : d'autres petit trucs lié à cette capacité que j'aimerais pouvoir modifier
Modifié par DarkWolf le 13/02/2012 22:26 CET
|
|
Bonsoir,
Tu dois tout bêtement "effacer la couleur de teinte" avant d'appliquer une autre action "définir la nuance de couleur" dans tes évènements d'acteurs. --- Dans tes déclencheurs, tu peux associer un message d'acteur de type signal à l'acteur pour qu'il effectue la tâche correspondante. Dans tes évènements d'acteurs, ajoutes un évènement "Signal" et un nom que tu veux (je prends "Clear" dans mon exemple). En action de cet évènement, tu indiques "Effacer la couleur de teinte". Bien entendu, il faut qu'il y ait une "Teinte1" d'appliqué avant d'effacer. Enfin, dans ton déclencheur, tu envoies un message d'acteur à un acteur de type "Signal" avec le nom que tu as spécifié ("Clear"). En outre, dans tes déclencheurs, pour appliquer une seconde teinte, tu envoies un signal "Clear" et juste après, un signal "Teinte2".
Modifié par Ouchon le 13/02/2012 23:17 CET
|
|
Merci de ta réponse rapide mais ça ne marche pas. Je détaille ce que j'ai (mal ?) fait :
j'ai pour l'événement Effect.BonusDegat.Start l'action "effacer la couleur de teinte" et dessous pour le même événement l'action "définir la nuance de couleur". Lorsque je déclenche une première fois la capacité la tour change de couleur (avec un message d'avertissement puisqu'il n'y a aucune couleur à enlever). Lorsque je redéclenche la capacité la couleur ne change pas (et plus de warning puisque la couleur existe bien). Je pense qu'il a envelé puis réappliquer la même puisque je ne sais pas lui dire d'utiliser d'abord un bleu puis un vert puis un jaune pis de boucler par exemple. Je pense qu'il faudrait conditionner les événements mais je vois pas sur quoi me baser (l'idéal serait de lui dire d'appliquer une couleur plus clair mais je ne vois pas non plus comment utiliser de variable la dedans) |
|
J'ai modifié mon précédent message.
Il s'agît d'une solution parmi une autre. Je sais qu'elle fonctionne. EDIT : N'oublies pas de donner un nom au champ "Label" ("Teinte1", "Teinte2" par exemples). Ensuite tu références ces mêmes labels pour l'effacement (je crois que ce n'est pas obligatoire pour l'effacement et pour l'application d'une teinte, je ne sais pas mais il vaut mieux en mettre un).
Modifié par Ouchon le 13/02/2012 23:20 CET
|
|
Autre chose, ce que tu cherches à faire est indépendant des déclencheurs.
A ce moment là, il faudrait que tu aies un évènement d'acteur commun pour effacer cette teinte. Tu pourras jouer sur les "Status" qui portent un sous-nom ET une valeur. Selon cette valeur, tu pourrais appliquer la teinte que tu veux. Cependant, pour effacer, il faut que tu trouves quelque chose d'unique (effet, comportement, capacité ...) qui soit exécuté à chaque fois. Cette chose DOIT impliquer la modification de teinte.
Modifié par Ouchon le 13/02/2012 23:25 CET
|
|
A force de te relire je commence à entrevoir les prémices d'un début de compréhension ;)
De ce que je comprend tu me conseilles de faire un déclencheur qui s'active sur l'effet qui m’intéresse. Il enverrait un message à l'acteur concerné pour effacer la couleur puis un autre message avec la bonne couleur à appliquer. C'est ça ? Demain j'essaierais de créer le déclencher et les envois / réceptions de signaux. En admettant que j'arrive à faire ça il reste un problème. Comment savoir le "niveau" de ma tour ? Il y a un moyen de récupérer le nombre de fois que la capacité a été utiliser sur l'unité ? Dans le déclencheur je vois bien une action pour définir le niveau de la capacité (mais pas comment le connaitre). |
|
Je t'ai donné deux solutions :
- La première consiste effectivement de passer par les déclencheurs. - La seconde à rester exclusivement (ou plutôt inclusivement) dans les évènements d'acteur. La première méthode est la plus claire et la plus simple. A contrario de la seconde. Note : Je rappelle que le signal "Clear" a pour action d'acteur "Effacer la couleur de teinte" et le signal "Teinte1" a pour action d'acteur "Définir la couleur de teinte". --- Pour résoudre ton problème, il vaudrait mieux que tu passes par un objet de données appelée "Amélioration". Ces dernières te permettent d'appliquer des effets (d'amélioration) à tes unités (spécifiées). Une image pour illustrer : http://sd-5.archive-host.com/membres/images/151307787413145835/SC2_-_Teinte_et_amelioration.png (Désolé de "teaser" un peu mais c'est image prise depuis la carte du Mod sur lequel je travaille et j'ai pas vu certains textes à cacher. ^^') Tu dois au minimum paramétrer : * Amélioration : Effets + * Amélioration : Matrice d'unité affectée + * Amélioration : Niveau maximum En fait, il faudrait que tu aies un déclencheur qui attende (= évènement(s)) que c'est la capacité "Améliorer ma tour" qui est lancée. Cela implique que l'on va vérifier (= condition(s)) que c'est la bonne capacité lancée. Et par conséquent, on exécute (= action(s)) les instructions que l'on veut. NOTE : Pour l'évènement, soit tu fais comme suit ; soit tu indiques que le déclencheur attend "N'importe quelle commande de capacité" ET dans les conditions, tu fais vérifier que (d'après mon exemple) l'ordre déclencheur est égal à la commande de capacité TA_CAPACITE. Voilà, normalement, tu as tout. --- BONUS : Tu peux jouer sur le système de pré-requis à employer pour ta capacité selon le niveau de l'amélioration TON_AMELIORATION du joueur. Cela empêchera le joueur de cliquer s'il ne possède pas les entités qui permettent de déverrouiller le niveau suivant de la capacité (et donc de l'amélioration). Attention, ce n'est pas une chose aisée, il y a quelques petites choses à savoir sur les pré-requis.
|
|
Merci j'ai compris la théorie mais je péche sur son application. J'ai créer l'amélioration et le déclencheur et utiliser l'action "envoyer un message à l'acteur de l'unité " . En message je choisis "définir la nuance de couleur" en prenant une couleur (je ferais un switch sur le niveau de l'amélioration plus tard).
Côté acteur (qui à obligatoirement le modèle :/ ) je ne sais pas quoi mettre. Si en événement je met signal en spécifiant en nom mon unité l'action ne se déclenche pas. Par ailleurs vu que le message contient l'action à appliquer existe-il une action qui appliquerai directement le message reçu ? Ps . Je sens que je vais devoir créer nombre de tour x nombre de niveau voulu amélioration avec les coût qui vont bien... Il existe un moyen de faire plus simple pour modifier le coût ? |
|
Stop.
Recommençons. Il faut savoir distinguer les évènements d'acteurs de l'acteur sélectionné qui se trouvent dans l'éditeur de données et les évènements du déclencheur donné dans l'éditeur de déclencheur. En fait, tu configures ton acteur pour qu'il ait un truc de ce type :
Note : LABEL est optionnel. Puis, et seulement après, tu fais ce que je t'ai écrit plus haut. Note : Tu dois utiliser l'action "Envoyer un message d'acteur". Pour les coûts, si disponible (car normalement, une capacité qui a un coût doit pouvoir être dans les effets d'amélioration), tu peux ajouter un effet (d'amélioration) qui ajoute un certain montant à la ressource qui doit subir une augmentation de coût.
Modifié par Ouchon le 14/02/2012 15:53 CET
|
|
Toujours un problème...
Dans mon déclencheur j'utilise l'action "Envoyer un message d'acteur" avec pour message "Signal clear" pour "l'unité déclencheuse" du déclencheur. Puis une seconde action avec "Signal teinte1". Dans mon acteur j'ai un événement "signal.*.clear" avec en action "ClearTintColor 0.000000 LABEL" et un autre événement "signal.*.teinte1" avec en action "SetTintColor {255, 0, 0 4.000000} 2.000000 OneShot LABEL 200" Lorsque j'utilise l'amélioration, le déclencheur s'active (visible dans le debugguer et grace à un "coucou") mais la tour ne change pas de couleur... une idée de ce que j'ai mal fait ? PS : j'ai bien compris qu'il y a des événement d'acteur (mon 2nd §) et des événement de déclencheur (mon 1er §), de même pour les actions. Pour mon information peux-tu me dire où mon vocabulaire prête à confusion ? edit : j'ai également essayer de mettre en message "définir le texte" avec teinte1 mais ça ne marche pas plus
Modifié par DarkWolf le 14/02/2012 19:24 CET
|
Pour l' "Unité déclencheuse" ? A ce moment là, j'aimerai connaître l'évènement que tu as mis dans ton déclencheur. En fait, si tu fais référence à "Unité déclencheuse", ça veut dire que c'est une unité qui a déclenché un évènement de type 'Unité'. Or, je t'avais dit que c'est le joueur qui clique sur une capacité. Donc l'évènement ne correspond pas avec ce que Blizzard appelle "Réponse d'évènement" (et je suis d'accord avec eux) comme "Unité déclencheuse", "Région déclencheuse" etc etc. Tu devrais avoir, normalement, une variable de type "Unité" qui permet de stocker une unité. Définies ta variable (A) comme stockant ton unité et utilises cette variable dans l'action "Envoyer un message d'acteur" pour ton acteur d'unité (A). |
|
2 captures d'écrans valent mieux qu'un long discours :)
déclencheur : http://dark11wolf.free.fr/ftp/SC2/Declencheur.png acteur : http://dark11wolf.free.fr/ftp/SC2/acteur.png |
|
Plusieurs erreurs.
Déclencheur : L'évènement n'est pas le bon si et seulement si ta capacité n'est pas une capacité de type "Rechercher", sinon l'évènement est bon. En fait, si tu lis l'aide qui figure en bas de la fenêtre lorsque tu sélectionnes ton évènement, tu verras que la "Réponse évènement" que tu as défini dans ta variable "uniteCourante" n'apparait pas. Ceci signifie que ça n'aura pas d'effet (cela peut mener à un avertissement via le débogueur pour signaler un problème). Tu dois savoir que le paramètre "Unité" de cet évènement est l'unité qui est en train d'effectuer cette recherche (via la capacité de type "Rechercher" qui permet d'augmenter de 1 le niveau de l' "Amélioration" liée à cette recherche). Je te propose de résoudre ça comme ça : Si j'ai bien compris, c'est la tour qui possède la capacité permettant de s'améliorer elle-même. Donc normalement, pas de soucis au niveau de ce déclencheur. --- Acteur : Je t'avais écrit ceci : Signal.*.Teinte1 Et je t'avais parlé du label (ici : LABEL). Ce que tu dois savoir, c'est que : - Définir un label pour ta teinte est optionnel. - Définir un label pour effacer (une teinte ou autre) ordonne à l'action d'acteur de trouver une action d'acteur qui porte le label que tu as spécifié. Si je lis tes évènements d'acteur, le signal "Clear" cherche une action d'acteur qui porte un label LABEL. Or il ne risque pas d'effacer une teinte où aucune de ces teintes portent ce même label LABEL. |
|
Oki merci, ça fonctionne. Lorsque j'ai renseigné ma variable je n'ai pas vu unité déclencheuse (en gris).
Un gros merci en tout cas :) |
|
De rien !
Surtout, n'hésites pas à poser tes autres questions sur ce forum ! ;) |
|
Bonjour,
J'ai une petite question, enfaîte quand je joue à starcraft 2 sur la mini-map et sur mon écran toutes les unités et les bâtiments adverses sont en rouge, toutes les unités alliées sont en jaune et toutes les miennes sont en vert a chaque fois et bon sa commence a être un peut gonflant. si quelqu'un peut m'aider ce serait cool. Merci. |
|
@Nalayi
Tu as un bouton à coté de la minimap avec des pauv'mains qui se serrent. Tu es en fait en vue par alliance là.
Modifié par Darkblob le 01/05/2012 18:06 CEST
|
Menaces de violences. Nous les prenons très au sérieux et alerterons les autorités compétentes.
Les messages contenant des informations personnelles sur d’autres joueurs. Ceci inclut notamment les adresses postales et e-mail, les numéros de téléphone et les photos et vidéos inconvenantes.
Harcèlement et discriminations. Nous ne tolérons pas ces comportements.