| Ancien membre du staff |
 |
 |
Inscrit le: 20 Juil 2008, 00:00 Messages: 1726 Niveau RPG Maker: correct Point(s) Fort(s): polyvalent Sexe: Masculin Points d'aide: 0/60
Créations :
- Création d'un sous menu
- Personnalisation des tailles d'icônes et de curseurs
- Affichages des altérations d'état via des icônes
Voir ses créations
|
Voilà, çà m'a pris beaucoup moins de temps que prévu. - Code: Tout sélectionner
#============================== # ■ Scene_Liste_Monstres v2 par Krazplay #------------------------------ # Ce scrîpt fonctionne avec les scrîpts Window_Monstres et Window_details_monstre. # N'oubliez pas que les variables 4001 à 4000+Nbre de monstres dans votre database # sont utilisées pour mémoriser le nombre de monstres tués de chaque sorte. # Pour appeller ce menu il suffit d'écrire la ligne suivante : # $scene = Scene_Liste_Monstres.new # Si vous venez depuis un menu vous pouvez ajouter cela : # $vientdumenu = 1 # Cela permet de revenir dans le menu et non sur la carte après avoir consulté # le bestiaire. # A propos de @detailspardefaut et @nomspardefaut respectivement ligne 26 et 197 # Ces 2 variables sont mis en vrai par défaut, mais vous pouvez les mettre en # false. Si @detailspardefaut est mis en false vous ne pourrez voir les détails # des ennemis que si vous en avez tué au moins un, si @nomspardefaut est mis # en false vous ne verrez pas le nom des ennemis que vous n'avez jamais tué. # Je remercie aussi celui qui a créé le graphique de défense élémentale, seule # chose que je n'ai pas faite moi-même, j'ai du y opérer quelques modifications # mais il fonctionne parfaitement ;) #============================== # Revu et corrigé par Arnonaud le 21 décembre 2006! Bon Making! #============================== # Modifié et indenté par Albavor le 16 février 2009 # Cette dernière modification change le design du menu et utilise trois ressources # graphiques à placer dans le dossier Pictures du projet. Les deux premières sont # ici appelées picnote2ev7 pour la fenêtre détaillée et bestiairebookbd2 pour la # liste des monstres. Vous pouvez évidemment changer ces images mais il faut # modifier les noms en conséquence. De plus les textes sont positionnés de manière # à correspondre à ces deux images, là encore il faudra modifier beaucoup de choses # si vous voulez changer le fond de ce menu. La troisième image est un curseur # qui apparait dans la liste des monstres. Son nom est ici cursor et sa taille # 32 par 32 pixels. J'ai ajouté ce curseur parce que le curseur rectangulaire # par défaut était invisible sur les fonds choisis pour le menu. Il se peut donc # que pour d'autres fonds, son utilisation soit superflue.
# Je rappelle que pour être opérationnel, ce script nécessite l'ajout en dessous # de la ligne suivante en dessous de la ligne 147 du script Scene_Battle2 (unless enemy.hidden) # $game_variables[4000 + enemy.id] += 1 # pour toute question contactez moi sur rpg creative
class Scene_Liste_Monstres
def initialize @detailspardefaut = false end
def main @monstres_window = Window_Monstres.new(0,0) Graphics.transition @monstres_window.refresh loop do Graphics.update #Efface ce qu'on pourrait voir par transparence Input.update update_command if $scene != self #Si la scène ne doit plus être celle-ci @monstres_window.dispose #On efface la fenêtre des monstres break #On casse la boucle sinon on restera tjs ici end end end #main
def update_command if Input.trigger?(Input::B) #B = Bouton échap $game_system.se_play($data_system.cancel_se) if @monstres_window.active? == 1 if $vientdumenu == 1 $vientdumenu = 0 $scene = Scene_Menu.new(0) #On repart dans le menu (curseur sur Objets) else $scene = Scene_Map.new #On repart sur la carte end Graphics.freeze #Pour éviter une transition trop brutale end if @Window_details_monstre_active == 1 @Window_details_monstre.dispose @Window_details_monstre_active = 0 @monstres_window = Window_Monstres.new(@memo[0], @memo[1]) end end
if Input.trigger?(Input::RIGHT) if @monstres_window.active? == 1 @monstres_window.nettoyage @monstres_window.pageplusun @monstres_window.refresh end if @Window_details_monstre_active == 1 and @monstres_window.selection+@pagetourne < $data_enemies.size-1 if $game_variables[4000 + @monstres_window.selection+@pagetourne+1] != 0 or @detailspardefaut == true @Window_details_monstre.dispose @pagetourne += 1 @Window_details_monstre = Window_details_monstre.new(@monstres_window.selection+@pagetourne) end end end
if Input.trigger?(Input::LEFT) if @monstres_window.active? == 1 @monstres_window.nettoyage @monstres_window.pagemoinsun @monstres_window.refresh end if @Window_details_monstre_active == 1 and @monstres_window.selection+@pagetourne > 1 if $game_variables[4000 + @monstres_window.selection+@pagetourne-1] != 0 or @detailspardefaut == true @Window_details_monstre.dispose @pagetourne -= 1 @Window_details_monstre = Window_details_monstre.new(@monstres_window.selection+@pagetourne) end end end
if Input.trigger?(Input::UP) if @monstres_window.active? == 1 @monstres_window.nettoyage @monstres_window.ligneplusun @monstres_window.refresh end end
if Input.trigger?(Input::DOWN) if @monstres_window.active? == 1 @monstres_window.nettoyage @monstres_window.lignemoinsun @monstres_window.refresh end end
if Input.trigger?(Input::C) #Confirmer if @monstres_window.active? == 1 and @Window_details_monstre_active != 1 if $game_variables[4000 + @monstres_window.selection] != 0 or @detailspardefaut == true @pagetourne = 0 @memo = @monstres_window.inactive @monstres_window.dispose @Window_details_monstre_active = 1 @Window_details_monstre = Window_details_monstre.new(@monstres_window.selection) end end end
end #update_command end #class Scene_Liste_Monstres
#============================== # ■ Window_details_monstre v2 par Krazplay #------------------------------ #Permet de créer une fenêtre avec les détails d'un ennemi #============================== class Window_details_monstre < Window_Base
def initialize(monstre_id) super(-16, -16, 672, 512) self.contents = Bitmap.new(width-32, height-32) self.contents.font.name = "Arial" self.contents.clear image = Bitmap.new("Graphics/Pictures/picnote2ev7") self.contents.blt(0, 0, image, Rect.new(0, 0, 640, 480), 255) draw_actor_battler($data_enemies[monstre_id], 215, 220) self.contents.font.size = 29 self.contents.font.color = Color.new(117, 90, 40, 255) monster_name_width = contents.text_size($data_enemies[monstre_id].name).width self.contents.draw_text(50, 39, 500, 32, $data_enemies[monstre_id].name) self.contents.font.size = 24 self.contents.font.color = Color.new(117, 90, 40, 255) self.contents.draw_text(50, 86, 300, 32, "HP : " + $data_enemies[monstre_id].maxhp.to_s) self.contents.draw_text(50, 118, 300, 32, "MP : " + $data_enemies[monstre_id].maxsp.to_s) self.contents.draw_text(355, 41, 300, 32, "Attaque :") self.contents.draw_text(555, 41, 300, 32, $data_enemies[monstre_id].atk.to_s) self.contents.draw_text(355, 73, 300, 32, "Déf physique :") self.contents.draw_text(555, 73, 300, 32, $data_enemies[monstre_id].pdef.to_s) self.contents.draw_text(355, 105, 300, 32, "Déf magique :") self.contents.draw_text(555, 105, 300, 32, $data_enemies[monstre_id].mdef.to_s) self.contents.draw_text(355, 137, 300, 32, "Force :") self.contents.draw_text(555, 137, 300, 32, $data_enemies[monstre_id].str.to_s) self.contents.draw_text(355, 169, 300, 32, "Dextérité :") self.contents.draw_text(555, 169, 300, 32, $data_enemies[monstre_id].dex.to_s) self.contents.draw_text(355, 201, 300, 32, "Agilité :") self.contents.draw_text(555, 201, 300, 32, $data_enemies[monstre_id].agi.to_s) self.contents.draw_text(355, 233, 300, 32, "Intelligence :") self.contents.draw_text(555, 233, 300, 32, $data_enemies[monstre_id].int.to_s) self.contents.draw_text(50, 329, 300, 30, "Expérience : " + $data_enemies[monstre_id].exp.to_s) self.contents.draw_text(50, 361, 300, 30, "Argent : " + $data_enemies[monstre_id].gold.to_s)
if $data_enemies[monstre_id].weapon_id != 0 bitmap = RPG::Cache.icon($data_weapons[$data_enemies[monstre_id].weapon_id].icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(50, 393, bitmap, Rect.new(0, 0, 24, 24), opacity) #Icône self.contents.draw_text(80, 393, 212, 32, $data_weapons[$data_enemies[monstre_id].weapon_id].name, 0) #nom weapon_name_width = contents.text_size($data_weapons[$data_enemies[monstre_id].weapon_id].name).width self.contents.draw_text(86 + weapon_name_width, 393, 300, 30, $data_enemies[monstre_id].treasure_prob.to_s + "%") end if $data_enemies[monstre_id].armor_id != 0 bitmap = RPG::Cache.icon($data_armors[$data_enemies[monstre_id].armor_id].icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(50, 393, bitmap, Rect.new(0, 0, 24, 24), opacity) #Icône self.contents.draw_text(80, 393, 212, 32, $data_armors[$data_enemies[monstre_id].armor_id].name, 0) #nom armor_name_width = contents.text_size($data_armors[$data_enemies[monstre_id].armor_id].name).width self.contents.draw_text(86 + armor_name_width, 393, 300, 30, $data_enemies[monstre_id].treasure_prob.to_s + "%") end if $data_enemies[monstre_id].item_id != 0 bitmap = RPG::Cache.icon($data_items[$data_enemies[monstre_id].item_id].icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(50, 393, bitmap, Rect.new(0, 0, 24, 24), opacity) #Icône self.contents.draw_text(80, 393, 212, 32, $data_items[$data_enemies[monstre_id].item_id].name, 0) #nom item_name_width = contents.text_size($data_items[$data_enemies[monstre_id].item_id].name).width self.contents.draw_text(86 + item_name_width, 393, 300, 30, $data_enemies[monstre_id].treasure_prob.to_s + "%") end self.draw_enemy_element_radar_graph($data_enemies[monstre_id], 370, 270, radius = 30) end #def initialize end
#============================== # ■ Window_Monstres v2 par Krazplay #------------------------------ #Permet de créer une fenêtre avec le nom de tout les ennemis tués et combien de #fois ils ont été tués. #============================== class Window_Monstres < Window_Base
def initialize(page, ligne) @nomspardefaut = false @active = 1 @page = page @ligne = ligne #Taille du cadre que l'on voie, mais dont on ne peut pas écrire dessus : super(-16, -16, 672, 512) #Image invisible où l'on va pouvoir écrire dessus : self.contents = Bitmap.new(width-32, height-32) self.contents.font.name = "Arial" self.contents.font.size = 24 self.contents.font.color = Color.new(117, 90, 40, 255) self.contents.clear #Call'aile du canard de la dernière page : @dernierepage = Integer($data_enemies.size / 12) + 1 @derniereligne = Integer($data_enemies.size % 12) - 1 refresh end #def initialize
def refresh image = Bitmap.new("Graphics/Pictures/bestiairebookbd2") self.contents.blt(0, 0, image, Rect.new(0, 0, 640, 480), 255) self.contents.draw_text(50, 16, 500, 32, "Noms des monstres :") self.contents.draw_text(450, 16, 500, 32, "Nombres tués :") self.contents.draw_text(550, 440, 500, 32, (@page+1).to_s + " / " + @dernierepage.to_s) self.cursor_rect.set(50, (40 + 32*@ligne), 270, 32) image_curseur = Bitmap.new("Graphics/Pictures/cursor") self.contents.blt(22, (40 + 32*@ligne), image_curseur, Rect.new(0, 0, 32, 32), 255) m = 1 if @page == @dernierepage - 1 monstremoins = 12 - (($data_enemies.size - 1) % 12) else monstremoins = 0 end for i in (1 + 12*@page)...(13 + 12*@page - monstremoins) if $game_variables[4000 + i] != 0 or @nomspardefaut == true self.contents.draw_text(50, (32 * m) + 12, 500, 26, $data_enemies[i].name) else self.contents.draw_text(50, (32 * m) + 12, 500, 26, "???") end self.contents.draw_text(355, (32 * m) + 12, 500, 26, $game_variables[4000 + i].to_s) m += 1 end end #end refresh def pageplusun if @page < @dernierepage -1 @page += 1 end if @ligne > @derniereligne -1 and @page == @dernierepage -1 @ligne = @derniereligne -1 end end def pagemoinsun if @page > 0 @page -= 1 end end def ligneplusun if @ligne > 0 @ligne -= 1 end end def lignemoinsun if @ligne < 11 unless @ligne >= @derniereligne -1 and @page == @dernierepage -1 @ligne += 1 end end end def selection return (@ligne+1) + (@page*12) end def nettoyage self.contents.clear self.contents.draw_text(50, 16, 500, 32, "Noms des monstres :") self.contents.draw_text(450, 16, 500, 32, "Nombres tués :") end def active? return @active end def inactive @active=0 return [@page,@ligne] end end #class Window_Monstres
_________________
|
|