Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
XaMaRo Amateur de graphisme
Inscrit le: 28 Aoû 2007 Messages: 280 Sujets: 29 Spécialité en worldedit: Je cherche encore ...
|
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 14/09/07 22:24 Sujet du message: |
|
|
En gros l'idée c'est de créer une unité invisible, à l'emplacement de ton héros, et qui lance un sort, pour faire croire que le lanceur est le héro lui même.
On utilise des "dummy unit" dans plusieurs cas dont les principaux sont :
- lancement d'un "sort de masse", ex: bloodlust sur plusieurs unités en même temps.
- transformation d'un sort à cible en sort instantané : on utilise un sort qui ne fait rien, instantané (pas de cible), on détecte par trigger son lancement, et ensuite le dummy lance le sort réel (feu intérieur par exemple) sur l'unité choisie (le héros par exemple).
- pour enchainer des lancements de sorts très rapidement (le lancement d'un sort prend toujours un temps minimum où le héros est bloqué sur place (même quand on règle la durée à 0), du coup on créé plusieurs unités pour lancer ces sorts séparément.
Ce n'est que quelques exemple mais avec un peu d'imagination tu peux réussir à en trouver plein d'autres
En ce qui concerne les triggers, le principe est très simple :
Ce trigger marche, bien qu'il y ait plusieurs choses qui puissent être améliorées, comme le "memory leak" sur la location (Position of (Casting unit)) ou un système de recyclage des dummy unit, pour éviter d'en créer et supprimer à chaque fois des nouveaux, mais bon, c'est plus par chichi qu'autre chose car vu la fréquence de lancement des sorts, c'est gadget et ça ne causera pas d'amélioration de performances réel.
(Certains disent que les unités leak, mais ce n'est probablement pas le cas )
Ce que tu as à créer pour ce genre de trigger, c'est :
1 unité "dummy unit" :
Personnelement je prend la ferme des humains car elle ne se déplace pas, n'attaque pas, etc.. mais n'importe laquelle fera l'affaire (sauf un héros bien sur). Il faut juste faire attention à certains paramètres :
- ajouter le sort Infestation à cette unité, qui la rendra insélectionnable et invulnérable.
- supprimer son modèle en mettant comme modèle utilisé un simple _
- supprimer son ombre ("image ombre batiment" pour la ferme, etc...)
- éventuellement décocher la case "est un bâtiment"
- mettre à 0 sa portée de vue de jour et de nuit
Avec tout cela, tu as normalement une unité quasi "inexistante" sur la map.
1 sort Feu intérieur (dummy) :
A partir du sort Canaliser (Channel en anglais) : Neutre hostile > Héros
Quelques réglages à faire sur ce sort :
* Stats - Compétence héros = FALSE
* Stats - Niveaux = 1
* Donnée - Durée graphisme = 0.00
* Donnée - Désactiver autres compétences = FALSE (si tu ne veux pas que tous les sorts disparaissent du panneau de commande pendant le lancement du sort, utile dans certain cas, mais même le mouvement est impossible si on laisse à TRUE)
* Donnée - ID ordre de base (tu peux changer l'ordre si tu utilises plusieurs sorts basés sur Canaliser pour éviter toute interférence entre eux)
* Donnée - Options : la case "obligatoire" est visible, sinon l'icone sera masquée, "image de visée" si tu veux un sort de zone comme Blizzard de l'archimage), "Sort physique" pour en faire un sort physique justement c'est à dire qu'il ne sera pas désactivé par un silence, "Sort universel" il me semble que si cette case est cochée, ce sort sera lançable sur une unité invulnérable à la magie, notez que c'est aussi le cas avec les sorts physiques, "Incantation unique" je n'ai pas encore réussi à savoir ce que cette option fait, peut être un rapport avec l'option suivre dans la durée mais je n'ai pas testé.
* Donnée - Suivre dans la durée : il s'agit du temps de canalisation du sort, met le à 0.00 si tu ne fais pas un sort de genre "drain".
* Donnée - Type de cible : là tu mets ce dont tu as besoin, dans notre cas "Instantané (Pas de cible)"
* Stats - Compétence de héros = FALSE
1 sort (réel) :
Ici pas grand chose à modifier, si ce n'est une portée de 99999 (pour éviter des éventuels problèmes mais qui ne devrait pas arriver), et SURTOUT, mettre le coût de mana à 0 (la ferme n'a pas de mana !).
Bien penser aussi à supprimer tout prérequis (Arbre des technologies - Conditions)
Mettre en sort d'unité si ce n'est pas déjà le cas.
Voila voila, si j'ai oublié quelque chose fait le moi savoir, je me ferais un plaisir de corriger le tir _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Dernière édition par profet le 15/09/07 14:07; édité 1 fois |
|
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...)
|
Posté le: 15/09/07 07:48 Sujet du message: |
|
|
Justemant profet tu n'a pas vu mes messages d'avant, il vaut mieux créér des dummys dès le début en haut de la Map avec 99999999 de portée de sort.
Je vous donne le déclo... Veuillez patienter... ... ... ... ...
Merci d'avoir patienté...
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain » |
|
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...)
|
|
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...)
|
Posté le: 15/09/07 08:08 Sujet du message: |
|
|
Si ça sert ==> moins de leak --'
De plus je ne peux pas utiliser les variables locales pour ça oO
Ou alors donne moi le déclo ^_^ _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain » |
|
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...)
|
Posté le: 15/09/07 13:37 Sujet du message: |
|
|
Les unités ça fait pas du leak (en dummy) si tu les fait mourir >< _________________
|
|
Revenir en haut |
|
|
XaMaRo Amateur de graphisme
Inscrit le: 28 Aoû 2007 Messages: 280 Sujets: 29 Spécialité en worldedit: Je cherche encore ...
|
|
Revenir en haut |
|
|
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...)
|
Posté le: 15/09/07 13:55 Sujet du message: |
|
|
Keitaro_Ura a écrit: | Les unités ça fait pas du leak (en dummy) si tu les fait mourir >< |
copie colle dans un trigger nommé test et observe la mémoire.
Il faut appuyer sur la touche echap.
c'est certes mineur comme leak mais plusieurs fois utilisés ca peut devenir génant
Jass: | function Trig_test_Actions takes nothing returns nothing
local unit u = null
local integer i = 0
local location loc = Location(0,0)
loop
set i = i + 1
set u = CreateUnitAtLoc(Player(0),'hpea',loc,0.0)
call RemoveUnit(u)
set u = null
exitwhen i == 50
call RemoveLocation(loc)
set loc = null
endloop
endfunction
//===========================================================================
function InitTrig_test takes nothing returns nothing
set gg_trg_test = CreateTrigger( )
call TriggerRegisterPlayerEventEndCinematic( gg_trg_test, Player(0) )
call TriggerAddAction( gg_trg_test, function Trig_test_Actions )
endfunction |
et si tu remplaces RemoveUnit par :
Jass: | call UnitApplyTimedLife(u,'BTLF',1.0) | c'est beaucoup plus flagrant (même aprés que le cadavre se soit décomposé totalement).
et quand bien même il n'y aurait pas de leak c'est plus performant d'utiliser déjà des unités existantes, que d'en créer/supprimer à chaque fois _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 15/09/07 14:06 Sujet du message: |
|
|
Rommstein60 a écrit: | Justemant profet tu n'a pas vu mes messages d'avant, il vaut mieux créér des dummys dès le début en haut de la Map avec 99999999 de portée de sort. |
Le problème avec ta méthode c'est que tu crées 30 unités qui ne servent à rien dès le début, qui surchargent la map pour rien.
De plus ton deuxième trigger est ...
Le principe de recyclage de dummy dont je parlais serait un systeme de fonctions et de globales qui permetteraient de creer si besoin et de stocker des dummy inutilisés en les réutilisant quand on en aurait besoin.
Mais c'est pas très utile, en tout cas dans votre cas.
Keitaro_Ura a écrit: | Et profet, moi j'ai déja fait un dummy hero, et ça pose aucun problème ^^ | Ca marche, sans aucun doute, mais si tu donnes le héros au joueur une icône apparaitra sur la gauche, ce qui ne rend pas l'unité réellement "invisible".
De plus il n'y a pas de grand intérêt à ca pour un dummy caster _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Dernière édition par profet le 15/09/07 14:13; édité 1 fois |
|
Revenir en haut |
|
|
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...)
|
|
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...)
|
Posté le: 15/09/07 15:07 Sujet du message: |
|
|
Oui désolé profet, le délencheur est pas dans l'élément du sujet.
Le sort : Le Héros a 5% de chances que l'unité qui l'attaque soit prise par des sarments.
Enfin bon le système est là et ça fait beaucoup moins de leak en mettant 30 unités dès l'initialisation que si tu créé un dummy chaque fois que le sort est activé.
Enfin tu dois te poser des questions sur le "Entier_quelconque[100]", c'est pour faire une ptite compression de variable. _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain » |
|
Revenir en haut |
|
|
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...)
|
Posté le: 15/09/07 15:09 Sujet du message: |
|
|
Citation: | Le sort : Le Héros a 5% de chances que l'unité qui l'attaque soit prise par des sarments. |
Et ce même si l'attaque est abandonnée hihi
Citation: | Enfin tu dois te poser des questions sur le "Entier_quelconque[100]", c'est pour faire une ptite compression de variable |
Euh ouai ... _________________
Le violet, c'est moche. |
|
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...)
|
|
Revenir en haut |
|
|
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...)
|
Posté le: 15/09/07 15:20 Sujet du message: |
|
|
Citation: | Quant à l'attaque, tu crois pas qu'on s'en fout un peu dans une Footy, où t'as des centaines d'unités qui attaquent -_- |
Bah justement oho ca a beaucoup plus de chance de se produire.
en plus se faire sermenter avant de subir des dégâts c'est pas trés fair play ^^
Le seul moyen plus ou moins fiable est d'utiliser un buff trés court.
Lorsque l'unité subit des dégâts on vérifie si elle possède le buff, et on sait qui est l'attaquant _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
profet Instanton Gravitationnel Singulier
Inscrit le: 21 Aoû 2007 Messages: 1633 Sujets: 53 Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...) Médailles: 2 (En savoir plus...)
|
Posté le: 15/09/07 21:40 Sujet du message: |
|
|
@troll: ouai enfin "la flemme" n'est pas un avantage :p
Rommstein60 a écrit: | Oui désolé profet, le délencheur est pas dans l'élément du sujet.
Le sort : Le Héros a 5% de chances que l'unité qui l'attaque soit prise par des sarments. |
Pour ça tu pourrais plus intelligemment utiliser le sort d'orbe de foudre, avec comme sort sarment et comme chance de lancer 5%...
Rommstein60 a écrit: | Enfin bon le système est là et ça fait beaucoup moins de leak en mettant 30 unités dès l'initialisation que si tu créé un dummy chaque fois que le sort est activé. |
Avant d'avancer des choses comme ça il faudrait que tu saches de quoi tu parles...
Le peu de leak que des dummy casters créeraient (si leak il y a), est ridicule, de plus créer quelques unités pour un lancement de sort n'est pas spécialement très gourmand en ressources.
Ce n'est pas inutile d'avoir un recyclage de dummy, mais ta méthode n'en est pas une et est terriblement horrible si l'on réfléchi a ce que peut engendrer 30 unités de plus sur certaines map (surtout qu'elles seront pour la plupart inutiles).
Et ton truc avec ta variable et tes random int sont complètement farfelus.
Rommstein60 a écrit: | Enfin tu dois te poser des questions sur le "Entier_quelconque[100]", c'est pour faire une ptite compression de variable. | o_O _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
|