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=d98013d5fc8c9f1c05a197ca35760226Mé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

Le Marché aux Bugs
Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/08/10 15:55    Sujet du message: Citer

Ha, tu veux dire comme ça?

Jass:
function CreateItem2 takes integer itemid, real x, real y returns item
   set itemid = 'ajen'
   return CreateItem(itemid,x,y)
endfunction


Dans ce cas, ça fait la même chose Confused . Y'a que le prototype10 qui change :
Jass:
function sa___prototype10_CreateItem2 takes nothing returns boolean
 local integer itemid=f__arg_integer1
 local real x=f__arg_real1
 local real y=f__arg_real2

   set itemid='ajen'
    set f__result_item= h__CreateItem(itemid, x, y)
    return true
endfunction

En particulier, la fonction h__CreateItem ne change pas...

J'ai peur que ce soit rappé. Tant pis... faudra rajouter la remarque qu'il faut utiliser l'autre fonction ou la version qui ne déleake que les powerups.
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 07/08/10 16:01    Sujet du message: Citer

Inutilisable si tu créés un objet en GUI Surprised
Le mieux serait de rechercher les occurrences de CreateItem dans le scrip final et des les remplacer par la fonction custom, comme le fait Vexo avec PolledWait et PolledWait2 avec wc3mapotpimizer.
Tu te sens chaud pour faire un add-on ? :p
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/08/10 16:15    Sujet du message: Citer

Hum, tu veux dire un add-on de jasshelper pour créer un hook qui remplacerait les instances dans le script final comme on veut? Je veux bien mais il faut le code source de jasshelper pour ça, non? Où on peut le trouver?
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 07/08/10 16:22    Sujet du message: Citer

Le code source de jasshelper est disponible quand tu le télécharges, c'est du pascal.
Mais je parlais d'un add-on de grimoire, mais ne me demande rien à ce sujet je n'y connais strictement rien.

Tout ce que je peux te dire c'est que c'est humainement faisable.
ex de pré-processeur :
http://www.wc3c.net/showthread.php?t=108314
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/08/10 16:28    Sujet du message: Citer

Okay, je vais voir si c'est suffisamment simple pour moi Laughing .
Sinon, bha ça peut pas me faire de mal.

EDIT : Bha, c'est trop compliqué pour moi Embarassed .
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 jk2pach
Invité








MessagePosté le: 10/08/10 09:54    Sujet du message: Citer

J'ai passé ton marche aux bugs - objet en annonce.
_________________
Revenir en haut
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 11/08/10 13:27    Sujet du message: Citer

Haha, tu vas rire, Troll-Brain, mais y'a du nouveau sur les objets.
Il est tout bonnement impossible de détruire les objets s'ils sont morts Idea .

Blizzard avait bien besoin de nous faire un coup comme ça. C'est sûr que c'était indispensable.

Lorsque tu détruis un objet qui est "mort", son modèle n'est plus affiché, ça règle donc le problème du lag. Mais l'handle existe toujours bel et bien.

Incroyable? La preuve en map :
Télécharger la map

Sinon, j'avais complétement oublié mais y'a une fonction Enum pour les items. On peut donc faire une fonction périodique qui prend tous les objets morts sur la map pour les détruire après. Perso, j'aime moins cette méthode (surtout qu'elle va enum les objets pseudo-détruits à chaque fois) mais elle elle a le mérite d'être utilisable par un GUI user.

EDIT : ouf, si on change la vie d'un objet sur plus de 0.405 après sa mort, on peut de nouveau le supprimer correctement.
J'ai modifié les fonctions en conséquence.
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 25/08/10 18:58    Sujet du message: Citer

Fiou, je viens de finir des tests sur les compétences des objets. Ça ouvre pas mal de portes puisque un objet un objet est censé n'avoir qu'une compétence active et que ça bug bien quand on en met d'autres.

En particulier, on peut :
montrer le message "Mana insuffisant" lorsqu'on valide la cible,
montrer une icône désactivée (Mana insuffisant) tout en pouvant lancer le sort quand même,
montrer un faux coût en mana,
lancer différents sorts selon la cible,
utiliser plusieurs cooldowns différents sur un même objet.

et tout ça sans le moindre trigger !

EDIT : Tenez, une map de test.
Télécharger la map
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 12/09/10 16:34    Sujet du message: Citer

Hum, j'ai souvent vu que détruire des triggers pouvait faire crasher W3 (lorsqu'ils ont des actions). Mais jusqu'à présent, je détruisait plein de triggers sur ma map sans bug de ce côté là (j'en ai eu quelques uns récemment et je me dis que ça vient p-e de là).

Donc question : est-ce que quelqu'un pourrait m'expliquer comment et pourquoi détruire un trigger est mauvais?
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 10/10/10 11:52    Sujet du message: Citer

J'ai remis en route mon JNGP pour un temps indéterminé (du moins pour ce week end), j'ai voulu testé ce que tu as dit pour les item.
Comme je le pensai c'est un problème de variable pointant sur un handle fantôme.

Essaye ceci :

Jass:
function func takes nothing returns nothing
    call BJDebugMsg("aha")
endfunction

function test takes nothing returns nothing
    call SetItemLifeBJ(udg_TheObjet,0.)
    call RemoveItem(udg_TheObjet)
    call EnumItemsInRect(GetWorldBounds(),null,function func)
endfunction

//===========================================================================
function InitTrig_testouille takes nothing returns nothing
    set gg_trg_testouille = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_testouille, 2 )
    call TriggerAddAction( gg_trg_testouille, function test )
endfunction


Ton objet est bien détruit, il n'est pas énuméré, et en effet donner de la vie après avoir tué l'item supprime les donnés tel que le type d'objet sur l'handle TheOjet.
Mais c'est juste une preuve de plus qu'il est préférable de nullifier un handle quand l'objet associé est détruit.

Concernant les destructions de trigger, il y a une corruption d'handle avérée quand on fait un peu n'importe quoi avec TriggerSleepAction.
http://www.wc3c.net/showpost.php?p=999565&postcount=31
Blizzard aussi n'utilise jamais DestroyTrigger, ce qui en soit ne veut pas dire grand chose mais peut rajouter à la paranoïa.
Ex les filtres des TriggerRegister clairement inachevés et non utilisés par blizzard.j.

Je crois (pas certain et la flemme de regarder le code) que Dota utilise les triggers dynamiques à la pelle, donc même si ca bug ca doit être rarissime.
De toute façon les actions de triggers et TriggerSleepAction c'est pour les n44b !
Go timers et conditions de triggers.
La seule utilité de TriggerSleepAction c'est que son décompte continue quand le jeu est en pause, et donc si tu veux mettre en pause, puis reprendre le jeu après un certain temps, t'es un peu obligé de l'utiliser.

Pour tes exploits de bugs je jetterais un oeil plus tard.

C'est dommage que tu ne te sois pas intéressé à l'éditeur quelques années auparavant Sad
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 10/10/10 13:55    Sujet du message: Citer

Quand je test ton code, mon objet est bien énuméré (même en nullifiant la variable ou en rajoutant des waits, etc...).

Merci pour les destructions de triggers ; avec tous les cris d'hystéries que je lis sur THW par rapport à ça, j'avais l'impression que c'était un truc super handicapant ^^". En effet, DotA utilise les triggers dynamiques mais rajoute assez peu d'actions de triggers (en plus de ne pas mettre de waits de façon improbable).
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 10/10/10 15:48    Sujet du message: Citer

Pour les triggers dynamiques hormis pour certains events, on peut utiliser des player unit event à la place, voir d'autres tricks.
Il est difficile d'expliquer un phénomène de foule, mais cela explique une partie du rejet massif de tels triggers.
Ça et probablement car des membres "éminents" sont contre une telle pratique, point de vue évidemment relayé par des personnes moins compétentes subjuguées mais complètement sans fondement.
Juste de bon perroquets sans cervelles.

Pour les item :

Ok au temps pour moi, je me suis trompé.

Je propose une solution vJass pour pallier à ce genre de problème, totalement transparente pour l'utilisateur qui ne doit pas s'en soucier mais 100 % usine à gaz :

Jass:
function RemoveItem2 takes item whichItem returns nothing
     call SetWidgetLife(whichItem,1.)
endfunction

hook RemoveItem RemoveItem2


Pas testé, mais étant donné qu'un hook s'exécute juste avant la fonction hookée (et non Hooker), ca devrait fonctionner.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 16/10/10 10:04    Sujet du message: Citer

Ouais, ça devrait marcher, mais j'ai posté une librairie qui résout (quasiment) tous les problèmes de remove d'objets, sans hook. Y'en a une autre sur THW qu'a fait Bribe et qui utilise TimerUtils à la place de la hashtable.
Je pensais l'avoir remplacé ici mais, finalement, je préfère ma librairie donc j'en laisse une trace quelque part Razz .
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 17/10/10 13:49    Sujet du message: Citer

Tirlititi a écrit:
Ouais, ça devrait marcher, mais j'ai posté une librairie qui résout (quasiment) tous les problèmes de remove d'objets, sans hook. Y'en a une autre sur THW qu'a fait Bribe et qui utilise TimerUtils à la place de la hashtable.
Je pensais l'avoir remplacé ici mais, finalement, je préfère ma librairie donc j'en laisse une trace quelque part Razz .


Mouai, tu utilises une hashtable rien que pour cela et donc contribue à atteindre la limite des 256 hashtables simultanées au maximum, au lieu d'utiliser un système d'attachement de donnée à un timer ultra utilisé via la librairie TimerUtils (qui soit en dit en passant, la version bleu ne fait pas ce qu'elle dit, elle faillit si on atteint le nombre maximum de timer : QUANTITY )

De toute façon je ne suis vraiment pas fan de cette méthode, l'idéal serait de gérer au cas pas cas avec des hook (et surtout pas de fonction custom) et carrément de remove les item powerup dès leur mort, mais de jouer un effet spécial de leur mort.
Bien que cela nécessiterait bien trop d'outils à utiliser, ne serait ce que pour savoir combien de temps dure l'animation de mort et laquelle est ce pour chaque type d'objet.
Bien que c'est faisable ca serait l'uber ultra usine à gaz.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Batt
Membre honoraire


Inscrit le: 25 Jan 2009
Messages: 392
Sujets: 43



MessagePosté le: 29/10/10 00:26    Sujet du message: Citer

La librairie sur les leaks objets me donne un message d'erreur sur cette ligne:
set ClearItems___CleanItemCode = Filter(function ClearItems___CleanItem)


Functions passed to filter or condition must return bo0lean

Il y a quelque chose à faire de particulié ou cette librairie est obsolète ?
_________________
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 -> Autre Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
Page 3 sur 6

 
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