Imladris production
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Imladris production

Le forum français de création de cartes et de mods pour Bataille pour la Terre du Milieu
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

 

 Quelques astuces anti-bug WorldBuilder

Aller en bas 
AuteurMessage
Denescor
Moddeur confirmé
Moddeur confirmé
Denescor


Nombre de messages : 378
Age : 28
Location : Forodwaith... mais plus pour longtemps
Add-On : oui, ne travaille que sur l'Add-On mais je ne possède pas BFME I
Date d'inscription : 28/05/2013

Quelques astuces anti-bug WorldBuilder Empty
MessageSujet: Quelques astuces anti-bug WorldBuilder   Quelques astuces anti-bug WorldBuilder Icon_minitimeDim 9 Mar - 15:55

Bonjour à tous, dans ce tutoriel je vais vous lister les "bug" de WorldBuilder les plus courrant et vous expliquer comment les éviter.  Smile 

Tout d'abord, par "bug" j'entends tout les scripts (ou autre) qui ne se comportent pas comme on l'attendrait et comme il serait normal qu'il se comporte
Je vais lister pour le moment 3 bugs.

*****************************************************************************************************************************

I - le bug du PlyrNeutral
1) principe du bug
Ce bug empêche de changer l'allégeance de toutes unités appartenant au joueur PlyrNeutral. Il peut s'avérer gênant lorsque vous voulez transférer une unité anciennement neutre (appartenant à ce joueur) pour le donner à un autre

2) résolution: utilisation du joueur PlyrCivilian
 Arrow Il n'y a pas de technique magique pour le résoudre, je préconise juste de na pas utiliser ce joueur et de préférer le joueur PlyrCivilian, joueur également neutre mais avec qui les transfert se feront sans aucun problème




II - le bug des Teams
1) principe du bug
Principale bug de WolrdBuilder selon moi, il peut facilement empêcher le bon déroulement d'une partie où vous utiliserez plusieurs Teams
Je ne reviendrais pas sur ce qu'est une Team mais sachez qu'il peut être très pratique dans une map de séparer les troupes/bâtiments de l'IA en plusieurs Teams pour facilité la gestion de l'IA (et vous aurez alors surement à faire à ce bug)

Il intervient lorsque vous souhaitez vérifié si plusieurs Teams sont détruites (cela peut être utilise si vous voulez terminé la partie une fois l'IA entièrement vaincu et donc toutes ses Teams détruites)
Pour ce faire vous utiliseriez un script de ce type

**********IF***********
"Team1" is destroyed
AND "Team2" is destroyed
AND "Team3" is destroyed
etc...

********THEN***********
Show 'Victorious' windows and end game (fin de la partie vous avez gagné)


Sauf que ce script ne fonctionnera pas, vous aurez beau tuer toutes les Teams votre "Victoire" ne s'affichera jamais, à cause du bug des Teams.

En effet, pour WoldBuilder, lorsque vous dîtes "Si la Team 1 est détruite et si la Team 2 est détruite" lui comprend "Si la Team 1 et la Team 2 sont détruites SIMULTANEMENT"

Il faudrait donc que vous détruisiez toutes les Teams en même temps pour gagner ce qui physiquement impossible. Votre script ne peut donc jamais se réaliser (à moi que vous provoquiez la mort de ces Teams par un autre script)


2) Résolution: la Méthode du Compteur
 Arrow La solution est assez simple, comprenant l'origine du bug vous n'avez plus qu'à faire en sorte que seul la mort d'une Team à la fois soit vérifié et on arrive donc à la méthode du compteur.

 Arrow Pour cela il faut que vous initialisiez un compteur, exemple: Set 'compteur1' to 0 (c'est vous qui choisissez le nom de votre compteur)

 Arrow Ce compteur servira à compter le nombre de Teams mortes. Vous devez donc maintenant crée les scripts pour compter ce nombre de mort. Il doit ressembler à ceci:

**********IF***********
"Team1" is destroyed

********THEN***********
Add 1 to 'compteur1'


 Arrow Vous faîtes ceci pour toutes les Team qui doivent mourrir pour votre script et il ne vous reste plus qu'à conclure. Le compteur doit avoir un certain nombre en mémoire pour réaliser le script final qui sera le nombre de Team qui doivent être détruites
Ainsi si trois Team doivent être détruite, on obtient:

**********IF***********
'compteur1' is Greater than or Equal to 3

********THEN***********
Show 'Victorious' windows and end game


 Arrow Votre script fonctionne parfaitement à présent et lorsque vous tuerez vos 3 Teams, vous aurez bien "Victoire" qui s'affichera

 Idea NB: noté l'utilisation du "Greater than or Equal", il est préférable de l'utiliser à "Equal" car il vous empêchera les bug, si votre compteur monte trop haut "Equal" vous buggera le script alors que "Greater than or Equal" fera fonctionner le script Wink




III - le bug des CommandButton
1) Principe du bug
Le bug est très simple, il intervient lorsque vous voulez ajouter ou supprimer une commande à l'aide du script "Command button -- add to an object type" ou "Command button -- remove from an object type"

Je ne m'étendrais pas sur le script "Command button -- add to an object type" car je il est difficile à utiliser mais cette méthode fonctionne très bien pour le deuxième cas, qu'il est plus courant d'utiliser

Dans ces deux cas, vous avez accès à une liste de commandes (qui correspondent à celle sur les CommandSet des objets) et vous pouvez les supprimer ou les ajouter à certains objets:
exemple: vous voulez supprimer la commande de construction de la Forteresse au bâtisseur des Hommes, vous utiliserez alors:

**********IF***********
True (ça le fera dès le début)

********THEN***********
Command button: 'Command_PorterConstructMenFortress' is remove from all objects of type 'MenPorter'


Sauf que si vous rentrez ce script tel quel, le batisseur pourra toujours construire la forteresse car les commandes proposées sont fausses (inexistantes dans l'INI)

2) Résolution: petite manip sur le nom
Les commandes proposées sont fausses car WorldBuilder rajoute un caractère à la fin de la commande (caractère non prit en compte et traduit par un carrée quand on le voit)
On peut se rendre compte de ce caractère en validant l'action, le script apparaîtra alors comme ça:

**********IF***********
True

********THEN***********
Command button: 'Command_PorterConstructMenFortress
' is remove from all objects of type 'MenPorter'


 Arrow La seule chose à faire pour résoudre le problème est donc de retirer le caractère, pour ça, une fois la commande choisi vous vous placez à la fin du nom de la commande et supprimer le caractère le plus en arrière.
Si tout se passe correctement vous ne devriez pas voir de différence au premier abord mais une fois la condition validé, vous aurez:

**********IF***********
True

********THEN***********
[???] Command button: 'Command_PorterConstructMenFortress' is remove from all objects of type 'MenPorter'


 Arrow un warning vous dira que la commande 'Command_PorterConstructMenFortress' n'existe pas, ignorez-le. Votre commande est alors fonctionnel et le batisseur ne pourra plus construire de forteresse

 Arrow Si vous supprimer un caractère visible, annulez votre saisi et laissez la commande tel quelle, le bug ne s'applique pas à cette commande et elle fonctionnera très bien

 Idea NB: Vous aurez noté que j'ai utilisé la commande 'Command_PorterConstructMenFortress' alors qu'il existe 'Command_ConstructMenFortress' (pour certains bâtiments, la forteresse des Hommes n'en fait pas forcemment partie). Les commandes 'Porter' sont spécifiques aux bâtisseurs, si vous en utilisez d'autres, elles n'affecteront pas les batisseurs

**************************************************************************************************************

Je n'ai pour le moment aucun autres bug à préciser, il s'agit là des plus courant.
J'espère que ce tutoriel vous permettra d'éviter de nombreux bug lors du développement de vos partie Very Happy
Revenir en haut Aller en bas
 
Quelques astuces anti-bug WorldBuilder
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Worldbuilder avec mod
» Tuto WorldBuilder
» Probleme worldbuilder
» probleme worldbuilder
» Aide WorldBuilder

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Imladris production :: WorldBuilder :: Tutoriaux-
Sauter vers: