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=0dbdbb583b50a7d5f265cf1394683794Mé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

Problème avec le Bribe'Unit Indexer

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 11/04/12 18:42    Sujet du message: Problème avec le Bribe'Unit Indexer Citer

Voilà mon problème, j'ai décidé d'utiliser le Bribe Unit Indexer pour une map, donc je met le système aucun problème, je teste un sort, rien ne se passe, je relance le sort, rien non plus, je réessaye plusieurs fois: toujours rien donc j'aimerai savoir d'où vient le problème: Voilà tous les déclencheurs concernés:

Le cast du sort
Secret:

Gui:
Trigger:
Burning Heat
Collapse Evénements
Unité - Une unité Initie l'effet d'une compétence
Collapse Conditions
(Compétence étant utilisée) Egal à  Brûlure
Collapse Actions
-------- On crée un dummy pour le sort --------
Définir Burning_Heat_Target_Point = (Point ciblé par la compétence étant utilisée/lancée)
Unité - Créer 1   (projectile) pour le (Joueur déclencheur) au point TargetPoint ; orientation = (Angle d'orientation de (Unité utilisant la capacité)) degrés.
-------- La variable ID represente le lancement du sort --------
Définir TempUnit = (Dernière unité créée)
Définir Burning_Heat_ID = (Valeur Personnalisée de TempUnit)
-------- On utilise la variable ID avec array pour sauvegarder les données --------
-------- Voilà  les variables --------
Définir dummy_burning_heat[Burning_Heat_ID] = TempUnit
Définir Burning_Heat_Caster[Burning_Heat_ID] = (Unité utilisant la capacité)
Définir dummy_burning_heat_distance[Burning_Heat_ID] = (Distance entre (Position de dummy_burning_heat[Burning_Heat_ID]) et Burning_Heat_Target_Point)
Définir dummy_burning_heat_angle[Burning_Heat_ID] = 315.00
Définir dummy_burning_heat_integer[Burning_Heat_ID] = 0
-------- On définit les dégâts --------
Unité - Régler le niveau de Burning Heat Damage  pour dummy_burning_heat[Burning_Heat_ID] à  (Niveau de Brûlure  pour Burning_Heat_Caster[Burning_Heat_ID]).
-------- Si le groupe est vide on active le déclencheur loop --------
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
(Burning_Heat_Group est vide) Egal à  VRAI
Collapse Alors - Actions
Déclencheur - Activer le déclencheur Burning Heat Loop <gen>.
Sinon - Actions
-------- On ajoute le dummy au groupe --------
Groupe unité - Ajouter dummy_burning_heat[Burning_Heat_ID] à  Burning_Heat_Group.
-------- On retire les leaks --------
Texte personnalisé: call RemoveLocation(udg_Burning_Heat_Target_Point)
-------- C'est fini --------



Le loop du sort
Secret:

Gui:
Trigger:
Burning Heat Loop
Collapse Evénements
Temps - Toutes les 0.03 secondes de temps de jeu.
Conditions
Collapse Actions
Collapse Groupe unité - Considérer toutes unités présentes dans Burning_Heat_Group et exécuter les (Actions).
Collapse Boucle - Actions
Définir TempUnit = (Unités considérées)
Définir ID = (Valeur Personnalisée de TempUnit)
-------- This next chunk of code is just for the demo - change it to what you want your spell to be like --------
Définir TempPlayer = (Propriétaire de TempUnit)
Définir Burning_Heat_Point_1 = (Position de TempUnit)
Définir Burning_Heat_Point_2 = (Burning_Heat_Point_1 décalé de 20.00 et orienté de (Angle d'orientation de TempUnit) degrés)
Unité - Déplacer instantanément TempUnit au point Burning_Heat_Point_2.
Texte personnalisé: call RemoveLocation(udg_CenterPoint)
Texte personnalisé: call RemoveLocation(udg_Burning_Heat_Point_1)
Texte personnalisé: call RemoveLocation(udg_Burning_Heat_Point_2)
-------- When the duration reaches 0 it means the spell is done --------
Définir dummy_burning_heat_distance[Burning_Heat_ID] = (dummy_burning_heat_distance[Burning_Heat_ID] - 20.00)
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
dummy_burning_heat_distance[Burning_Heat_ID] Inférieur ou égal à  0.00
Collapse Alors - Actions
-------- Clean up any data attached to this spell --------
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
dummy_burning_heat_integer[Burning_Heat_ID] Inférieur à  8
Collapse Alors - Actions
Définir TempUnit = (Unités considérées)
Définir ID = (Valeur Personnalisée de TempUnit)
Définir TempPlayer = (Propriétaire de TempUnit)
Définir CenterPoint = (Position de TempUnit)
Définir dummy_burning_heat_integer[Burning_Heat_ID] = (dummy_burning_heat_integer[Burning_Heat_ID] + 1)
Définir dummy_burning_heat_angle[Burning_Heat_ID] = (dummy_burning_heat_angle[Burning_Heat_ID] + 45.00)
Unité - Créer 1   (effect) pour le TempPlayer au point (CenterPoint décalé de 90.00 et orienté de dummy_burning_heat_angle[Burning_Heat_ID] degrés) ; orientation = Orientation bâtiment par défaut degrés.
Unité - Ajouter un temps de désinvocation de 2.00 secondes et de type Générique pour (Dernière unité créée).
Déclencheur - Ajouter au déclencheur Burning Heat Damage <gen> l'évènement suivant : (Unité - Une unité entre dans un cercle de rayon 90.00 qui à  pour centre (Dernière unité créée).).
Unité - Régler le niveau de Burning Heat Damage  pour (Dernière unité créée) à  (Niveau de Burning Heat Damage  pour TempUnit).
Sinon - Actions
-------- Remove the dummy from the group and from the game --------
Groupe unité - Retirer TempUnit de Burning_Heat_Group.
Unité - Retirer TempUnit du jeu.
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
(Burning_Heat_Group est vide) Egal à  VRAI
Collapse Alors - Actions
-------- Turn off this trigger as it's currently doing nothing --------
Déclencheur - Désactiver le déclencheur Burning Heat Loop <gen>.
Sinon - Actions
Collapse Sinon - Actions



Les dégâts du sort
Secret:

Gui:
Trigger:
Burning Heat Damage
Evénements
Collapse Conditions
(Propriétaire de (Unité déclencheuse)) Différent de (Propriétaire de (Dernière unité créée))
Collapse Actions
Unité - Faire que (Dernière unité créée) cause des dommages à  (Unité déclencheuse), répartissant (50.00 x (Réel((Niveau de Burning Heat Damage  pour (Dernière unité créée))))) points de dégâts de type Sorts et dommages de type Normal.


Le "préloading" du sort
Secret:

Gui:
Trigger:
Preload Spells
Collapse Evénements
Partie - UnitIndexEvent devient Egal à  3.00
Conditions
Collapse Actions
Définir UnitIndexerEnabled = FAUX
Définir CenterPoint = (Centre de (Zone jouable de la carte))
Unité - Créer 1   (indexer) pour le Neutre Passif au point CenterPoint ; orientation = Orientation bâtiment par défaut degrés.
Définir TempUnit = (Dernière unité créée)
-------- To preload abilities and/or buffs, just add them to TempUnit --------
Unité - Ajouter la compétence Brûlure  à  TempUnit.
-------- The dummy unit's task is now done, it can be removed from the game --------
Unité - Retirer TempUnit du jeu.
Texte personnalisé: call RemoveLocation(udg_CenterPoint)
Définir UnitIndexerEnabled = VRAI



Et l'Unit Indexer
Secret:

Gui:
Trigger:
Unit Indexer
Collapse Evénements
Initialisation de la carte
Conditions
Collapse Actions
Texte personnalisé:     call ExecuteFunc("InitializeUnitIndexer")
Texte personnalisé: endfunction
-------- This is the most important function - it provides an index for units as they enter the map --------
Texte personnalisé: function IndexUnit takes nothing returns boolean
Texte personnalisé:     local integer pdex = udg_UDex
-------- You can use the boolean UnitIndexerEnabled to protect some of your undesirable units from being indexed --------
-------- - Example: --------
-------- -- Set UnitIndexerEnabled = False --------
-------- -- Unit - Create 1 Dummy for (Triggering player) at TempLoc facing 0.00 degrees --------
-------- -- Set UnitIndexerEnabled = True --------
-------- You can also customize the following block - if conditions are false the (Matching unit) won't be indexed. --------
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
UnitIndexerEnabled Egal à  VRAI
Collapse Alors - Actions
-------- Generate a unique integer index for this unit --------
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
UDexRecycle Egal à  0
Collapse Alors - Actions
Définir UDex = (UDexGen + 1)
Définir UDexGen = UDex
Collapse Sinon - Actions
Définir UDex = UDexRecycle
Définir UDexRecycle = UDexNext[UDex]
-------- Link index to unit, unit to index --------
Définir UDexUnits[UDex] = (Unité respectant la condition)
Unité - Régler la valeur personnalisée de UDexUnits[UDex] à  UDex.
-------- Use a doubly-linked list to store all active indexes --------
Définir UDexPrev[UDexNext[0]] = UDex
Définir UDexNext[UDex] = UDexNext[0]
Définir UDexNext[0] = UDex
-------- Fire index event for UDex --------
Définir UnitIndexEvent = 0.00
Définir UnitIndexEvent = 1.00
Définir UnitIndexEvent = 0.00
Texte personnalisé: set udg_UDex = pdex
Sinon - Actions
Texte personnalisé:     return false
Texte personnalisé: endfunction
-------- The next function is called each time a unit enters the map --------
Texte personnalisé: function IndexNewUnit takes nothing returns boolean
Texte personnalisé:     local integer pdex = udg_UDex
Texte personnalisé:     local integer ndex
-------- Recycle indices of units no longer in-play every (15) units created --------
Définir UDexWasted = (UDexWasted + 1)
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
UDexWasted Egal à  15
Collapse Alors - Actions
Définir UDexWasted = 0
Définir UDex = UDexNext[0]
Texte personnalisé: loop
Texte personnalisé:     exitwhen udg_UDex == 0
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
(Valeur Personnalisée de UDexUnits[UDex]) Egal à  0
Collapse Alors - Actions
-------- Remove index from linked list --------
Texte personnalisé: set ndex = udg_UDexNext[udg_UDex]
Texte personnalisé: set udg_UDexNext[udg_UDexPrev[udg_UDex]] = ndex
Texte personnalisé: set udg_UDexPrev[ndex] = udg_UDexPrev[udg_UDex]
Définir UDexPrev[UDex] = 0
-------- Fire deindex event for UDex --------
Définir UnitIndexEvent = 2.00
Définir UnitIndexEvent = 0.00
-------- Recycle the index for later use --------
Définir UDexUnits[UDex] = Pas d'unité
Définir UDexNext[UDex] = UDexRecycle
Définir UDexRecycle = UDex
Texte personnalisé: set udg_UDex = ndex
Collapse Sinon - Actions
Définir UDex = UDexNext[UDex]
Texte personnalisé: endloop
Texte personnalisé: set udg_UDex = pdex
Sinon - Actions
-------- Handle the entering unit (Matching unit) --------
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Collapse Si - Conditions
(Valeur Personnalisée de (Unité respectant la condition)) Egal à  0
Collapse Alors - Actions
Texte personnalisé: call IndexUnit()
Sinon - Actions
Texte personnalisé:     return false
Texte personnalisé: endfunction
-------- The next function initializes the core of the system --------
Texte personnalisé: function InitializeUnitIndexer takes nothing returns nothing
Texte personnalisé:     local integer i = 0
Texte personnalisé:     local region re = CreateRegion()
Texte personnalisé:     local rect r = GetWorldBounds()
Définir UnitIndexerEnabled = VRAI
Texte personnalisé:     call RegionAddRect(re, r)
Texte personnalisé:     call TriggerRegisterEnterRegion(CreateTrigger(), re, Filter(function IndexNewUnit))
Texte personnalisé:     call RemoveRect(r)
Texte personnalisé:     set re = null
Texte personnalisé:     set r = null
Texte personnalisé:     loop
Texte personnalisé:         call GroupEnumUnitsOfPlayer(bj_lastCreatedGroup, Player(i), Filter(function IndexUnit))
Texte personnalisé:         set i = i + 1
Texte personnalisé:         exitwhen i == 16
Texte personnalisé:     endloop
-------- This is the "Unit Indexer Initialized" event, use it instead of "Map Initialization" for best results --------
Définir UnitIndexEvent = 3.00
Définir UnitIndexEvent = 0.00



Avant quand je rajoutais l'event "Unit - Unit enters "playable map area" La map se stoppait dans tous les sens du terme et war3 buggait.Maintenant que j'ai enlevé l'event,il ne se passe plus rien au niveau des sorts.
_________________
Inactif(Enfn presque)
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 -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
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