Sujet n°8409
Posté par Suicune31 le 7 Nov - 17:00 (2010)
Titre : Choisir une couleur de police pour chaque zones
Bonjour cher membre de PSP  42 .

J'aurais encore besoin de votre aide mais cette fois-ci, ça concerne le MAPPANEL.
J'aimerais savoir si il était possible de changer la couleur de la police pour certaines zones ?

Expemple : Le fond de base est blanc et l'écriture noire, si je met un panel sombre, c'est illisible, comment remédié à ça ? Clin d'œil foireux .


J'aimerais donc changer la couleur depuis le fichier "Data_zone.txt", pourvoir spécifier la couleur pour chaque zones
et redéfinir automatiquement la couleur de base si la couleur n'est pas préciser sur une zone Imbécile heureux .

Merci de votre attention Clin d'œil foireux , en espèrent avoir une aide le plus tôt possible :p.

Posté par Slash le 12 Nov - 15:45 (2010)
Pour ce faire cela se passe dans le script MAPANEL

tu a ses quelque lignes vers la fin du script.


 
Code:

if $data_mapzone[new_map_id][2] == "panel6.png"
      @panel.draw_text_mappanel(10, 6, 96*3, 36, $data_mapzone[new_map_id][1], 0)  
      else
      @panel.draw_text_mappanel(10, 5, 96*3, 36, $data_mapzone[new_map_id][1], 0)
      end


tu devra ajouté qq ligne de code pour modifier ta couleur de txt

par exemple :

Code
if $data_mapzone[new_map_id][2] == "panel6.png"
   @panel.draw_text_mappanel(10, 6, 96*3, 36, $data_mapzone[new_map_id][1], 0) 
else
   if new_map_id == 1 or  new_map_id ==2 # si on a le panel 1 ou le panel 2
     
color = Color.new(255,255,255) # code couleur
   end # et on repete ses 3 lignes pour chaque couleur souhaité

   @panel.draw_text_mappanel(10, 5, 96*3, 36, $data_mapzone[new_map_id][1], 0,color)
end


comme tu peut le voir c'est assez simple
par contre , parametre bien tout tes pannel a la suite car si tu en oubli, sa buggera

Posté par Suicune31 le 14 Nov - 21:49 (2010)
Merci Slash, je n'ai pas l'occasion de le tester maintenant.
Mais je met résolu, étant persuader que ça fonctionne Imbécile heureux .

J'éditerais pour les personne que ça intéresse Clin d'œil foireux .

EDIT : Il n'y aurait pas un moyen de faire une condition en fonction du nom du Panel?
          Parce que j'ai plus de 200 Zones ><.
          Et dernier truc, La couleur de police ne change pas :s.

Posté par Slash le 16 Nov - 19:52 (2010)
bah normalement, new-map id , c'est le numéro du pannel
Slash vérifie ........
2min plus tard ah non tite erreur

essaye de remplacer les ligne de mon precedent post par cela et dit moi si sa marche
if $data_mapzone[new_map_id][2] == "panel6.png"
   @panel.draw_text_mappanel(10, 6, 96*3, 36, $data_mapzone[new_map_id][1], 0) 
else
   if $data_mapzone[new_map_id][2] == "panel1.png" or  $data_mapzone[new_map_id][2] =="panel2.png" # si on a le panel 1 ou le panel 2
      color = Color.new(255,255,255) # code couleur ds ce cas present, le blanc
   end # et on repete ses 3 lignes pour chaque couleur souhaité

   @panel.draw_text_mappanel(10, 5, 96*3, 36, $data_mapzone[new_map_id][1], 0,color)
end

 

Posté par Suicune31 le 16 Nov - 20:26 (2010)
Erreur ^^.

Log.txt

Spoiler
 
Code:


 ---------- Erreur de script : Window_Base* ----------
----- Type
TypeError

----- Message
can't convert NilClass into Color

----- Position dans Window_Base*
Ligne 105

----- Backtrace
Script : Window_Base* | Ligne : 105 | Méthode : in `color='
Script : Window_Base* | Ligne : 105 | Méthode : in `draw_text_mappanel'
Script : MAPPANEL* | Ligne : 163 | Méthode : in `panel_determination'
Script : MAPPANEL* | Ligne : 80 | Méthode : in `setup'
Script : Scene_Map | Ligne : 169 | Méthode : in `transfer_player'
Script : Scene_Map | Ligne : 61 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 52 | Méthode : in `loop'
Script : Scene_Map | Ligne : 65 | Méthode : in `alias_update'
Script : MAPPANEL* | Ligne : 89 | Méthode : in `oldUpdate'
Script : Bouton_Rouge* | Ligne : 98 | Méthode : in `update'
Script : Scene_Map | Ligne : 26 | Méthode : in `main'
Script : Scene_Map | Ligne : 21 | Méthode : in `loop'
Script : Scene_Map | Ligne : 33 | Méthode : in `main'
Script : Main | Ligne : 62





EDIT : je pense qu"il faut modifier ce code pour la couleur du texte mais je comprend rien il y a trop de chiffre 42 .
Code:

       @panel = Window_Base.new(1, -122, 96*3+32, 36*3+32)


Posté par Slash le 21 Nov - 12:09 (2010)
@panel = Window_Base.new(1, -122, 96*3+32, 36*3+32) 
NON CE CODE SERT A DEFINIR LA POSITION DE LA FENETRE DE PANEL ET SA TAILLE

pour la couleur sa doit etre un code de type color = Color.new(R,V,B,opacity)
et si y'a pas d'opacity alors il est directement egal a 255

c'est pour ca que je trouve etrange que le code que je t'ai passé ne fonctionne pas

selon ton log, il y'a une erreur de valeur nulle dans ton color essaye de verifier les valeur que tu a entré
et voi si tu n'a pas oblier de configurer des panel ds ton script car si c'est le cas alors ce type d'erreur est parfaitement logique