Page 3 of 8

Re: Aide sur le langage des .menu

PostPosted: 27 Sep 2011, 08:06
by manutoo
Ok, ton image semble correcte. Essaye de créer un shader pour elle avec NoMipmap, pour virer la création des Mip Maps.

Re: Aide sur le langage des .menu

PostPosted: 27 Sep 2011, 23:45
by kersou
Tu as raison : ça vient bien du shader !
Pour le scoreboard, j'utilise le shader de "base" qui a déjà le NoMipMap
Code: Select all
Ico      // every shader request beginning with "Ico/" will use this shader
{
   {
      NoMipMap
      map Menu/Art/Ico/Toto NoLoad   // Toto will be replaced by the name of the request
      rgbGen Entity
      alphaGen Entity
      blendFunc blend
      AddressMode Border 0x00000000
   }
}

J'ai créé un nouveau shader et en procédant pas à pas je me suis aperçu que le "pb" est lié à la fonction AddressMode.
Si je mets cette ligne en commentaire, je n'ai plus le fameux trait !
Ca te semble normal ?

En fait, je n'y connais vraiment rien en shader : aurais-tu un site ou une doc à me conseiller ?
Merci dans tous les cas !

Re: Aide sur le langage des .menu

PostPosted: 28 Sep 2011, 09:41
by manutoo
J'ai oublié de packer la mini-doc pour les shaders dans le .pak ; c'est un système que j'ai créé, donc non-standard, quoique dérivé de celui de Quake 3, donc assez proche d'une série de jeux sortie au début des années 2000... :P

Pour ton prb actuel, vire la ligne avec Border ; le mode par défaut fera ce que tu souhaites, et si ce n'est pas le cas, tente avec un Clamp au lieu de Border.

Et voici la mini-doc (la 2e partie est en Français)

Re: Aide sur le langage des .menu

PostPosted: 28 Sep 2011, 11:21
by kersou
Ah Quake, Doom, que de bons souvenirs... :crybaby:
Merci pour la doc et effectivement le mode par défaut fonctionne !

Re: Aide sur le langage des .menu

PostPosted: 03 Oct 2011, 07:58
by kersou
Manutoo,

Encore une question sur les shaders :
pour le scoreboard de la Coupe Davis (topic29-4661.php?start=300#p75694), j'aimerais changer la forme des drapeaux (elliptique au lieu de rectangulaire).
Je suppose que je dois pouvoir faire ça avec un shader (qq chose du style : charger la texture du drapeau et appliquer un masque elliptique dessus).
Peux-tu m'aider si ce n'est pas trop long ? Est-ce déjà fait dans le jeu ?

Merci

Re: Aide sur le langage des .menu

PostPosted: 03 Oct 2011, 10:18
by manutoo
Kersou,
humm, je ne pense pas avoir fait qqchose comme ça dans le jeu... :thinking:
C'est p'tet possible de faire ça avec un shader à 2 maps : la 1ère est un cercle (ie: channel RGB = tout blanc, channel alpha = cercle blanc sur fond noir), et la 2e map est en /Toto NoLoad avec un BlendFunc Blend.
Par contre, j'ai un gros doute sur le fait que le NoLoad marche ou pas avec la 2e map au lieu de la 1ère... :fear:

....

Bon, ça ne marchera pas à cause de ImageFlag qui modif le drapeau sur la 1ère map en dur, donc ça n'ira rien chercher sur la 2e... Donc ce n'est pas possible, à moins que tu ne rajoutes un channel Alpha à toutes les images des drapeaux... :sweat:

Re: Aide sur le langage des .menu

PostPosted: 03 Oct 2011, 22:14
by kersou
Merci !
Bon, j'ai rajouté un channel Alpha à toutes les images des drapeaux (par script bien-sûr...).
Je tente maintenant le shader à 2 maps.

Re: Aide sur le langage des .menu

PostPosted: 03 Oct 2011, 23:33
by kersou
bon ça marche pas!
En même temps, je viens de relire ton post et comme je suis un peu lent à la détente, en fait tu me dis que ce n'est pas possible avec une shader à 2 maps et que je dois modifier les images des drapeaux pour leur donner une forme elliptique (via des masques...)
C'est ça ou je suis bien à côté de la plaque ?
Merci de ton aide.

Re: Aide sur le langage des .menu

PostPosted: 04 Oct 2011, 18:41
by manutoo
oui, c'est bon comme ça.
Maintenant, rajoute au Shader pour le flag un "BlendFunc Blend" pour que ça prenne en compte le channel Alpha, et ça devrait être bon (avec une seule map donc ;) ).

Re: Aide sur le langage des .menu

PostPosted: 07 Oct 2011, 08:37
by kersou
Salut,

J'ai un petit souci avec ma fonction qui calcule le nombre de sets gagnés par chaque joueur.
Les compteurs ne sont pas mis à jour automatiquement durant la partie : il faut que je ferme et que je recharge la partie pour avoir mes variables OK !
J'ai donc un souci de rafraichissement qui est peut-être lié à la boucle sur les sets.
Voici le code :
Code: Select all
def   $s1   StatTeam1Set1
def   $s2   StatTeam2Set1

item FuncGetNbWinnerSet
{
   OnAction
   {
      SetCfg $s1 $StatTeam1Set$1
      SetCfg $s2 $StatTeam2Set$1   
   }
   OnActionIf /$s1/Score /$s2/Score 999999
   {
      MulAddMulCfg /Intern/NbSetTeam1 1 1   
   }
   OnActionIf /$s2/Score /$s1/Score 999999
   {
      MulAddMulCfg /Intern/NbSetTeam2 1 1   
   }
   Invisible
}

item
{
   OnEnter

   OnAction
   {
      SetCfg /Intern/NbSetTeam1 0
      SetCfg /Intern/NbSetTeam2 0
   }

   Invisible
}

// Computation of the number of winning sets
def Num 1
LoopMacro 5
item
{
   OnEnter
   OnActionIf /Intern/CurrentSet Num+1 /Intern/NbSet
   {
      Function FuncGetNbWinnerSet Num
   }
   add Num 1
   Invisible
}
LoopEnd


Si tu as le temps de m'éclairer, c'est sympa !

Re: Aide sur le langage des .menu

PostPosted: 08 Oct 2011, 14:47
by manutoo
OnEnter n'est appelé que lorsqu'on rentre dans un menu, lorsqu'il est ouvert initialement.

Tu vas probablement pouvoir t'en sortir avec OnRender et un appel de function supplémentaire...
J'essayerai de te rajouter une variable comptant tout ça, pour éviter les calculs dans les menus (la fonction Function peut être assez lente, donc il faut les éviter si possible sur les trucs qui se font à chaque Frame).

Re: Aide sur le langage des .menu

PostPosted: 09 Oct 2011, 20:26
by kersou
Ok donc d'avance merci :
- pour l'ajout d'une nouvelle variable (compteur de set)
- pour la possibilité de formatter l'affichage des noms dans les scoreboards
- et le rang des têtes de série

Allez pour le plaisir le scoreboard de la Coupe Davis avec les drapeaux "elliptiques" :
sb_DavisCup_in_TE.jpg
sb_DavisCup_in_TE.jpg (21.47 KiB) Viewed 1408 times

Re: Aide sur le langage des .menu

PostPosted: 17 Oct 2011, 08:43
by manutoo
kersou,
ça te dirait que je te rajoute le paramètre "CustomScoreBoard" à chaque Catégorie de Tournoi, et à chaque Tournoi..?
Ça servirait à afficher un Score Board qui remplacerait celui par défaut.
Si rien n'est indiqué dans la Catégorie ni dans le Tournoi, ça prendrait celui par défaut.
Si rien n'est indiqué dans le Tournoi, ça prendrait celui de la catégorie.
Ça éviterait de faire plein d'item ShowIf avec le n° en dur pour tous les Tournois..!
Je pourrais mettre intégrer le nom pour chaque tournoi/catégorie à la version officielle, comme ça les gens n'auraient qu'à ajouter tes .menu et images et ça marcherait direct...

Re: Aide sur le langage des .menu

PostPosted: 17 Oct 2011, 11:13
by kersou
Oui merci c'est une très bonne idée !
Donc si j'ai bien compris, tu rajoutes ce nouveau paramètre dans les fichiers de configuration ATPtour et ATPCat.
Ce paramètre vaut-il :
- 1 ou 0 ou rien
- ou directement le nom (ou un numéro) du scoreboard à utiliser
Et ensuite comment se fait le lien avec les fichiers menu ?
En gros est-ce que je peux garder ma nomenclature des points d'entrée : A1000_hudabove.menu, WIM_hudabove.menu, ...?
Bien-sûr aucun problème s'il faut changer les noms !

Et pour le mode Training Club & Online, actuellement, on choisit le scoreboard parmi ceux disponibles via un paramètre que j'ai rajouté dans hud.def (topic29-4661.php?start=315#p76585).
Avec le nouveau système, est-ce que ça va marcher ou y aura t il un moyen simple de le faire ?

Re: Aide sur le langage des .menu

PostPosted: 17 Oct 2011, 14:51
by kersou
J'ai un petit problème sur la prochaine nouveauté des scoreboards (the "key points alert" ! ;-)).
J'arrive bien à filtrer parmi toutes les alertes et n'afficher que les points de break/set/match, soit au-dessus du scoreboard (Grand Chelem) soit à droite pour les autres tournois.
Dans ce dernier cas, mon souci est que je dois afficher le message en face du bon joueur et donc savoir si c'est le joueur 1 ou le joueur 2 qui mène dans le jeu.
Donc je suis parti à fond sur une comparaison entre /StatTeam1Set0/Score et /StatTeam2Set0/Score : ça marche bien quand il y a 40/0, 40/15, 40/30 mais ça marche beaucoup moins bien quand il y a "AD" !!!
As-tu une idée ?
Merci !