Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=229f6f5b24acc57cefd1041f27797f72Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

[Gui] Textes flottants tout simples
Aller à la page Précédente  1, 2, 3  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 29/11/08 12:59    Sujet du message: Citer

Ayane a écrit:
Keitaro_Ura a écrit:
En gui tu ajoutes l'évènement A unit Subit des dégâts à un déclencheur à chaque fois qu'une unité entre dans la map (A unit enters (Playable map area)), ce déclencheur affichera le texte.

Le seul défaut c'est que l'événement n'est pas supprimé lorsque l'unité est retiré, sur les cartes où les unités sont souvent "recyclées" il faut recréer le déclencheur de temps en temps afin d'éviter d'avoir une liste énorme d'événement, ce qui joue sur les performances.


C'est vrai cela ?
Je pensais que les event n'était tout simplement plus pris en compte.
Pour éviter les leak (oui je sais ce n'est pas directement liés aux performances) il faut créer un trigger par unité et le supprimer quand l'unit est remove de la partie, en ayant supprimé les actions du trigger auparavant.
Il est inutile de supprimer les conditions d'un trigger et TriggerClearActions empêche simplement les actions ajoutées ultérieurement de s'exécuter, mais ca ne libère pas la mémoire pour autant.

Sinon on peut vraiment recycler les unités en empêchant leur mort mais bon ca devient complexe ...
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 29/11/08 13:20    Sujet du message: Citer

Ayane a écrit:
Le seul défaut c'est que l'événement n'est pas supprimé lorsque l'unité est retiré, sur les cartes où les unités sont souvent "recyclées" il faut recréer le déclencheur de temps en temps afin d'éviter d'avoir une liste énorme d'événement, ce qui joue sur les performances.

Ah bon ? J'étais persuadé que quelqu'un m'avait dit que non Surprised
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Keitaro_Ura
Floodozaurus


Inscrit le: 21 Aoû 2007
Messages: 2073
Sujets: 38
Spécialité en worldedit: Oui
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #2 (Quantité : 1)

MessagePosté le: 29/11/08 14:28    Sujet du message: Citer

Suffit de pas avoir 10k unités sur la map.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 29/11/08 14:50    Sujet du message: Citer

Keitaro_Ura a écrit:
Suffit de pas avoir 10k unités sur la map.

Sauf que l'on ne parle pas d'unité simultanément sur la map mais d'events ajoutés.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Keitaro_Ura
Floodozaurus


Inscrit le: 21 Aoû 2007
Messages: 2073
Sujets: 38
Spécialité en worldedit: Oui
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #2 (Quantité : 1)

MessagePosté le: 29/11/08 14:53    Sujet du message: Citer

C'est bien de quoi je parlais.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 29/11/08 17:04    Sujet du message: Citer

Keitaro_Ura a écrit:
C'est bien de quoi je parlais.

C'est bien ce que je pensais, mais c'est juste que tu l'avais mal formulé Razz

PS : Quand je dis un trigger par unité c'est pire que cela, c'est plutôt un event par trigger.

Spour cela que s'il n'y a pas de souci réel de performance il vaut mieux utiliser les event player unit quand c'est possible (quasiment tous les event unités), avec éventuellement des groupes d'unités.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 29/11/08 17:18    Sujet du message: Citer

Sauf que c'est pas possible un event player de damage unit : /
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 29/11/08 18:17    Sujet du message: Citer

Rommstein60 a écrit:
Sauf que c'est pas possible un event player de damage unit : /

D'où le
Citation:
quand c'est possible
et
Citation:
quasiment tout les event
...
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 30/11/08 13:18    Sujet du message: Citer

Et comme je suis un gentil garçon voilà la version française. Sachant que j'ai du passer par l'option "enable UNSWE puisque mon cher éditeur original refusait d'ouvrir ma map^^.


I/ Introduction

Voici quelques modèles tout fait pour créer des textes flottants.
Un texte flottant, c'est un texte (et oui...) qui s'affiche à un endroit de la carte.
Ici, je vais vous donner un modèle de déclencheur tout simple.

II/ Le déclencheur modèle

Gui:
Trigger:
SLS event
Collapse Evénements
Unité - A unit Commence le lancement d'une compétence
Conditions
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Ability being cast) Différent de (!=) Hero inventory
(Ability being cast) Différent de (!=) Bag inventory
(Ability being cast) Différent de (!=) SS-System
(Ability being cast) Différent de (!=) SS-Str Gain
(Ability being cast) Différent de (!=) SS-Agility Gain
(Ability being cast) Différent de (!=) SS-Intelligence Gain
Collapse Alors - Actions
Set SLS_Tempoint = (Position of (Triggering unit))
Texte flottant - Create floating text that reads (Name of (Ability being cast)) at SLS_Tempoint with Z offset 40.00, using font size 10.00, color (5.00%, 5.00%, 100.00%), and 10.00% transparency
Texte flottant - Change (Last created floating text): Désactiver permanence
Texte flottant - Set the velocity of (Last created floating text) to 30.00 towards 90.00 degrees
Texte flottant - Change the lifespan of (Last created floating text) to 2.00 seconds
Texte flottant - Change the fading age of (Last created floating text) to 2.00 seconds
Texte flottant - Montrer (Last created floating text) for (All players)
Custom script:   call RemoveLocation( udg_SLS_Tempoint )
Collapse Sinon - Actions



III/ Pas à Pas: explications

Ce déclencheur vous permet ici d'afficher le nom de la compétence lancée par n'importe quelle unité.

Il se déclenche donc au lancement d'un sort avec l'évènement

Gui:
Trigger:
Unit - A unit Begins casting an ability


Ensuite, les conditions, données ici à titre d'exemple:

Gui:
Trigger:
Si - Conditions
(Ability being cast) Différent de (!=) Hero inventory
(Ability being cast) Différent de (!=) Bag inventory
(Ability being cast) Différent de (!=) SS-System
(Ability being cast) Différent de (!=) SS-Str Gain
(Ability being cast) Différent de (!=) SS-Agility Gain
(Ability being cast) Différent de (!=) SS-Intelligence Gain


Ce sont des exemples. Dans la carte qui me sert de modèle, ce sont des compétences qui permettent d'utiliser l'inventaire à 12 slots et d'augmenter les attributs du héros. Comme on a pas forcément envie de voir s'afficher le petit texte "Hero inventory" à chaque fois que le joueur bascule son inventaire, idem pour les attributs, on les enlève des textes qui seront affichés.

Gui:
Trigger:
Set SLS_Tempoint = (Position of (Triggering unit))


SLS_Tempoint
est ce qu'on appelle une variable Point (Location en anglais). Cette opération enregistre donc, au moment où l'unité lance un sort, sa position. C'est le (Position of (Triggering unit))

Pour plus de précisions, vous pouvez le remplacer par Set SLS_Tempoint = (Position of (Casting unit))

Dans les deux cas, triggering ou casting unit, il s'agit bien de l'unité qui est à l'origine du déclencheur, le lanceur de sort.

Gui:
Trigger:
Texte flottant - Create floating text that reads (Name of (Ability being cast)) at SLS_Tempoint with Z offset 40.00, using font size 10.00, color (5.00%, 5.00%, 100.00%), and 10.00% transparency


Le plus important: cette ligne que l'on trouve en "action>Texte flottant - Create Floating Text at point" va créer un texte selon les paramètres:

that reads (Name of(Ability being cast)) : le texte va afficher le nom du sort lancé.

at SLS_Tempoint
: le texte sera affiché au dessus de la position de l'unité qui lance le sort (c'est pourquoi on a enregistré cette variable au début du déclencher).

with Z offset 40.00 : le texte sera affiché avec une distance verticale (axe Z) de 40 au dessus de l'unité qui lance le sort.

using font size 10.00: le texte sera affiché en taille 10.00

, color (5.00%, 5.00%, 100.00%): la couleur du texte sera 5% en en rouge, 5% en vert, 100% en bleu.

and 10.00% transparency : le texte affiché sera transparent à 10% (donc presque non-transparent.

Gui:
Trigger:
Texte flottant - Change (Last created floating text): Désactiver permanence



Ce code est assez explicite: on empêche le texte flottant de rester en permanence au dessus de l'unité.

Gui:
Trigger:
Texte flottant - Set the velocity of (Last created floating text) to 30.00 towards 90.00 degrees



Cette fois, on règle la vitesse et l'orientation du texte: ici, 30.00 est la vitesse du texte, 90.00 degrees implique que le texte va monter au dessus de l'unité qui lance le sort a une vitesse de 30 et perpendiculairement à l'unité. En gros, vers le haut.
Gui:
Trigger:
Texte flottant - Change the lifespan of (Last created floating text) to 2.00 seconds



Il suffit de traduire: le texte flottant a été réglé pour avoir une durée de vie de 2 secondes.
Gui:
Trigger:
Texte flottant - Change the fading age of (Last created floating text) to 2.00 seconds


Idem: La disparition en fondu du texte se fera sur 2 secondes.

Gui:
Trigger:
Texte flottant - Montrer (Last created floating text) for (All players)



On permet enfin à tout les joueurs de visualiser ce texte flottant. Il suffit de modifier le "all players" pour régler cette ligne.

Gui:
Trigger:
Custom script: call RemoveLocation( udg_SLS_Tempoint )



A recopier tel quel; ce code personnalisé permet tout simplement d'être sûr que le texte flottant a bien été supprimé, et d'éviter ainsi les fuites de mémoires (memory leak).

Simple non?

IV/ Je veux afficher d'autres choses!

Voici quelques suggestions.

Pour un RPG par exemple, certains affichent l'expérience gagnée par le héros.

Le problème de Frozen Throne, c'est que l'expérience est très difficile à calculer. Le plus simple est donc de la désactiver dans les constantes du jeu. Et ensuite, de créer un déclencheur qui va ajouter "à la main" l'expérience du héros.
Gui:
Trigger:
Collapse Evénements
Unité - A unit owned by Neutre Hostile Meurt
Conditions
Collapse Actions
Set XPS_xpgagnee = ((Level of (Dying unit)) x 10)
Héros - Add XPS_xpgagnee experience to Hero[(Player number of (Owner of (Killing unit)))], Montrer level-up graphics
Set XPS_Temppoint = (Position of (Killing unit))
Texte flottant - Create floating text that reads ((+  + (String(XPS_xpgagnee))) +  xp) at XPS_Temppoint with Z offset 5.00, using font size 9.00, color (50.00%, 100.00%, 5.00%), and 10.00% transparency
Texte flottant - Change (Last created floating text): Désactiver permanence
Texte flottant - Set the velocity of (Last created floating text) to 70.00 towards 40.00 degrees
Texte flottant - Change the lifespan of (Last created floating text) to 1.50 seconds
Texte flottant - Change the fading age of (Last created floating text) to 1.50 seconds
Texte flottant - Montrer (Last created floating text) for (All players)
Custom script:   call RemoveLocation( udg_XPS_Temppoint )


Vous l'aurez compris, le principe est le même. Ici, ce qui a changé, c'est qu'on ajoute donc l'expérience du héros à la main en fonction du niveau de l'unité tuée, multipliée par un facteur 10. Et cette variable (XPS_xpgagnée) sera affichée comme texte flottant.

On peut faire plein de textes flottants! Libre à votre imagination.

V/ Comment afficher les dégâts?

Là, le problème, c'est que le mieux est de passer par du Jass. Si comme moi, vous n'y arrivez jamais de toute votre vie de mappeur, faites du bête recopiage de w3ccampaign, d'ici ou de thehiveworkshop Smile

Bon mappage.
_________________
Revenir en haut
 jk2pach
Invité








MessagePosté le: 11/12/08 20:25    Sujet du message: Citer

Ahem.

Vous le validez ou pas?^^
_________________
Revenir en haut
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 11/12/08 20:28    Sujet du message: Citer

Kei essaie de voir ça stp, là j'ai pas le temps et après je vais oublier.
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 15/12/08 14:56    Sujet du message: Citer

J'oubliais, la map exemple:

Télécharger la map
_________________
Revenir en haut
 Keitaro_Ura
Floodozaurus


Inscrit le: 21 Aoû 2007
Messages: 2073
Sujets: 38
Spécialité en worldedit: Oui
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #2 (Quantité : 1)

MessagePosté le: 18/12/08 18:45    Sujet du message: Citer

Passé en officiel.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 DaKanibal
Membre a fort taux de post


Inscrit le: 12 Sep 2009
Messages: 801
Sujets: 64
Spécialité en worldedit: Ne pas.


MessagePosté le: 01/10/10 21:30    Sujet du message: Citer

Personnellement pour les dégâts j'ai fait ça :
Gui:
Trigger:
TxtVie
Collapse Evénements
Unité - A unit Est attaqué
Conditions
Collapse Actions
Texte flottant - Create floating text that reads (- + (String(((Vie Max of (Triggering unit)) - (Vie of (Triggering unit)))))) at (Position of (Triggering unit)) with Z offset 0.00, using font size 10.00, color (100.00%, 50.00%, 50.00%), and 20.00% transparency
Texte flottant - Change (Last created floating text): Désactiver permanence
Texte flottant - Set the velocity of (Last created floating text) to 70.00 towards 90.00 degrees
Texte flottant - Change the lifespan of (Last created floating text) to 4.00 seconds
Texte flottant - Change the fading age of (Last created floating text) to 2.00 seconds
Texte flottant - Montrer (Last created floating text) for (All players)

Le seul problème, c'est que lorsque l'unité est attaquée pour la première fois, ça marquera -0.000.
Et le second problème tout seul, c'est que ça n'affiche pas les dégâts qui viennent d'être subis, mais les dégâts subis au total. (Vie max - Vie actuelle)
_________________
||**||
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 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...)
Rédacteur de tuto #3 (Quantité : 1) Grand décorateur (Quantité : 2)

MessagePosté le: 01/10/10 23:35    Sujet du message: Citer

Lors de l'utilisation de l'évènement "A units est attaqué", les actions se font légèrement avant les dégâts. C'est pour ça que tu as 0.00. "A unit subit des dégâts" est probablement mieux. Cependant, vu ton deuxième problème, il vaudrait mieux continuer à utiliser cet évènement mais faire plusieurs déclencheurs avec un petit temps d'attente entre l'évènement d'attaque et le run du déclo du floating text. Ensuite, stocker la vie de la cible dans une variable et ne pas utiliser vie max.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3  Suivante
Page 2 sur 3
La question posée dans ce topic a été résolue !

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com