|
| Usine de black974[Pause durée non détérminé] | |
|
+4Le Ziiigg Brandobscure001 S4suk3 Red-seeds 8 participants | |
Auteur | Message |
---|
Red-seeds
Messages : 69
| Sujet: Usine de black974[Pause durée non détérminé] Sam 19 Nov - 13:03 | |
| (Usine ?Il vends des playmobiles ?) *dépoussière cette section* Bonjours, bonsoir ! Afin de m'améliorer dans ce domaine, je poste ici mon usine de script. Dans le titre vous avez pu voir sa: Usine de black974[nb/nbtot/OouF/Pct] nb = le nombre de demande que l'on m'a faite nbtot = le nombre de demande totale que j'accepte 0ouF = Ouvert(O) ou Fermé(F) Pct = Le % du script que j'effectue Vous pourrez faire vos demandes de script (de VX/VX Ace)en respectant ce formulaire: (Et voilà qui nous donne un formulaire, il vends même pas de playmobiles en plus...) - Code:
-
[b]Secteur[/b]:(VX ou VX ace sachant que j'attends la version cracké US de Ace) [b]Votre pseudo[/b]: [b]Sujet concerné[/b]:(écran titre, sauvegarde, menu etc) [b]Description détaillé[/b]:(si vous marqué "bonjours je voudrai un script ou les gentil il combat les méchant, je ne le ferai tout simplement pas) [b]Image[/b]: Je prends que deux demandes à la fois(Dans ce cas je voudrai une menu enfant avec frites s'il-vous-plait). Ah oui, je vous rappelle que je débute dans ce domaine alors ne faites de demande de script de combat delamortquitue. (Ah pff, il c'est même pas faire un script de combat à la ToS, s'qu'il peut être nul...) Je n'ai fait aucun script pour l'instant, mais je connais assez bien ce domaine. Heuuu eh bah voila, je crois.... Ah oui !Je suis allergique aux chats ! (Non je rigole tapez-moi pas !) Demande(s) en cour(s) :
-De : Brandobscure001-Secteur: VX-Demande : Choix du scenario-Pourcentage : 100%- Spoiler:
-A faire:
-Afficher les 3 windows ( texte, histoire , choix):100%
-Afficher l'image du fond:100%
-Gérer window_selectable pour le window de choix:100%
-Afficher les images pour les scénar: 100% -Commentaires: 100%
-Gérer la téléportation de la map en fonction du choix: 100%
-Gérer les interrupteurs: 100% -Configuration "simplifié": 100%
-Texte à afficher: 100%
Demande(s) réalisé(s) : Window_Scenar(VX)Permet d'afficher 3 windows pour vos scenario !Images:- Spoiler:
(Lorsque que le choix est impossible: )(Lorsque qu'un choix est possible(via un interrupteur: ) Press_Start(VX(Version 1.3))Permet d'afficher une image "press start" sur l'écran titre ! Image:- Spoiler:
(La faute, a c'est pas moi qui l'a faite, je vous le confirme =))
Dernière édition par blackdzils le Sam 24 Déc - 10:59, édité 39 fois | |
| | | S4suk3
Messages : 87
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mar 22 Nov - 15:24 | |
| s4suk3 Sujet concernéUtilitaire Description détaillerSalut, tout d'abord merci ! Je voudrais la manière la plus élégante de donner une identité a chaque équipement. Image[/u] | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mar 22 Nov - 15:37 | |
| Je n'ai pas trop compris, précise ! Comment sa "la plus élégante" ? Donner une identité ?Tu veux dire la description ? Au pire fait une image qui schématise ce que tu souhaite... Sans sa, je ne peut pas faire ton script. | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 13:20 | |
| Brandobscure001Sujet concernéSystem. Description détailléUn script qui permt de sélectioné un Scénario ex : 1er niveaus chateaux quand j'ai finis chateaux je débloque scénario 2 ex Manoir. J'aimeré qu'il y ait 3 scénario,New york-manoir-laboratoire. mais que l'on ne puissent retourné au 1er scénario et recommencer le niveaus ImageExplications : 1 = image du scénario+Titre 2 = Descriptions du scénario 3 = Titre du System donc : choisissez votre scénario 4 = Flèche qui permet de passer à côté | |
| | | Le Ziiigg
Messages : 1417
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 13:39 | |
| Si Black aspire à le faire, je ne dirais rien, mais je pense que tu gagnerais à la faire directement en évent, les scripts servent surtout à éditer les fonctions de base pour ne pas à avoir à rentrer trouze milles données, là tu n'as qu'un bête choix de niveaux | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 14:09 | |
| J'ai suivis un Tuto mais rien a faire je ne sait pas le faire marcher | |
| | | Le Ziiigg
Messages : 1417
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 16:58 | |
| C'est ça la vie d'un makeur, persévère, et tu verras qu'il fonctionnera... | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 17:26 | |
| Ouais, sa me parait faisable en évent, mais je peut quand même le faire en script. Après, ce script ne va pas être autant configurable qu'en évent.
J'ai déjà une petite idée de ce que je vais faire. Ce que je peut faire, c'est que pour débloquer une nouveau scénar' il faut activer un interrupteur, ou avec une variable.Lequel tu préfère ? Je pense pouvoir, le faire pour mercredi prochain(si j'ai pas d'exam'). | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 24 Nov - 19:08 | |
| Interupteur c'est mieux Merci ^^ | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 14:24 | |
| Salut, oui le script avance. Mais le seul truc qui me gène, c'est pour téléporter le héros, avec la position X et Y.Je vais faire des p'tite recherche. | |
| | | Le Ziiigg
Messages : 1417
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 15:32 | |
| Ça au pire tu peux demander à ce que le script renvoi une variable contenant le scénario sélectionné, après dans un event tu peux mettre: - Code:
-
Si VARIABLE == 1 Alors Téléporter héros : première map Sinon si VARIABLE == 2 Alors Téléporter héros : deuxième map Sinon si VARIABLE == 3 Alors Téléporter héros : troisième map Fin | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 17:28 | |
| je supose qu'il faudrat des image ? si oui quelle taille ? | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 18:47 | |
| - Citation :
- Ça au pire tu peux demander à ce que le script renvoi une variable
contenant le scénario sélectionné, après dans un event tu peux mettre:
Code: | Si VARIABLE == 1 Alors Téléporter héros : première map Sinon si VARIABLE == 2 Alors Téléporter héros : deuxième map Sinon si VARIABLE == 3 Alors Téléporter héros : troisième map Fin
|
Pas bête, je pense que je vais faire sa.Merci. - Citation :
- je supose qu'il faudrat des image ?
si oui quelle taille ? Je pense que tu pourra mettre des image au format de base (544*416), je vais les réduire automatiquement via mon script. Au pire, je te dirai le format dans script en question. | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 18:49 | |
| ok de toute facon les image je l'ai aie préparé a l'avance ^^ | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Mer 30 Nov - 19:26 | |
| Ok^^. Désolé mais sa risque de prendre un peu plus de temps que prévu, en ce moment, j'ai un bug(pas une erreur de syntaxe, ou autre chose), donc je peut pas tester mon script. Dès que ce bug est réparé, je vais, j'me dépêcherai de faire du vite fait bien fait. En faite, tu peut me montrer une de tes image pour que je verifie le format ?(Par MP si tu veux que les autre ne voyent pas...) | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 1 Déc - 18:03 | |
| ok je t'envoi un MP Edit : pour les image tu en a besoin maintenant ? car j'ai toute les image pour la représentations des scénar | |
| | | Tasslehoff
Messages : 284
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 1 Déc - 21:07 | |
| - Citation :
- Mais le seul truc qui me gène, c'est pour téléporter le héros, avec la position X et Y.Je vais faire des p'tite recherche.
- Code:
-
$game_map.setup(id_map) $game_player.moveto(x, y) $scene = Scene_Map.new | |
| | | Zangther
Messages : 444
| Sujet: Re: Usine de black974[Pause durée non détérminé] Ven 2 Déc - 13:17 | |
| | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Ven 2 Déc - 19:34 | |
| Bah, disons que je sais pas chercher =). Merci. | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Ven 2 Déc - 20:18 | |
| Je le Redit : pour les image tu en a besoin maintenant ? car j'ai toute les image pour la représentations des scénars | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Dim 4 Déc - 19:17 | |
| Bah pour l'instant j'ai un bug, que j'arrive pas à résoudre, donc non. | |
| | | Le Ziiigg
Messages : 1417
| Sujet: Re: Usine de black974[Pause durée non détérminé] Dim 4 Déc - 19:27 | |
| Je le maintiens, tu te ferais moins flic à le faire en event... | |
| | | Red-seeds
Messages : 69
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 15 Déc - 13:30 | |
| Window ScenarVersion : 1.0 Auteur :Black974 Commencement du script :Jeudi 24Novembre 2011(24/11/11) Fin du script : Jeudi 15 Décembre 2011(15/12/11) Remerciment :Zanghter/Tasslehoff (Partage autorisé, si vous indiqué l'auteur, les remerciements et le lien) C'KOI ?
Permet de faire un système de choix pour par exemple, vos scénarios. Elle affiche trois fenêtres: -Une en haut, qui Guide le joueur -Une au milieu, pour que le joueur fasse son choix -Une en bas, qui fait un résumé de votre scenario. La fenêtre du milieu peut contenir trois choix, tous contenu d'une image. Des interrupteurs peuvent être utiliser si vous voulez que le joueur ne peut pas choisir un choix. Si l'interrupteur est activé, le texte et l'image sera afficher. Sinon, une image sera afficher(pour montrer qu'on ne la pas débloqué), ainsi qu'un texte Rouge en Gras(ici, "IMPOSSIBLE POUR LE MOMENT" ). L’opacité de chaque fenêtre est configurable. Les textes sont configurables, ainsi que les interrupteurs et le nom des images. INSTALLATION
Copier/Coller le script ci dessous en dessous de matériel. Pour appeler le script aller dans appel de script et mettez: - Code:
-
$scene = Scene_Scenar.new /!\La largeur maximale du scenario doit être 149 en largeur et 160 en longueur. (Pour éviter le dépassement de fenêtre). Vos images doit-être dans le dossier Graphics/Pictures Vous aurez besoin de 5 images: -Une pour le fond -Trois pour chaque scenario débloqué. -Une pour chaque scenario non débloqué. Une modification ?Un problème ? N'hésitez pas à me contacter par Mp ! Script: - Code:
-
#Posté le jeudi 15 Décembre 2011 #========================================================================================== #=================================Window_Scenar============================================ #========================================================================================== ######Auteur:Black974 ######Commencement du script:Jeudi 24Novembre 2011(24/11/11) ######Fin du script: 15Decembre 2011(15/12/11) ######Remerciment:Zanghter/Tasslehoff # http://rmd2.bbactif.com/forum ######Difficulté:Débutant ######N°1 ######Version:1.0 #(Partage autorisé, si vous indiqué l'auteur, les remerciements et le lien) #========================================================================================== =begin Permet de faire un système de choix pour par exemple, vos scenarios. Elle affiche trois fenêtres: -Une en haut, qui Guide le joueur -Une au milieu, pour que le joueur fasse son choix -Une en bas, qui fait un résumé de votre scenario.
La fenêtre du milieu peut contenir trois choix, tous contenu d'une image. Des interrupteurs peuvent être utiliser si vous voulez que le joueur ne peut pas choisir un choix. Si l'interrupteur est activé, le texte et l'image sera afficher. Sinon, une image sera afficher(pour montrer qu'on ne la pas débloqué), ainsi qu'un texte Rouge en Gras(ici, "IMPOSSIBLE POUR LE MOMENT" ). L'opacite de chaque fenêtre est configurable. Les textes sont configurables, ainsi que les interrupteurs et le nom des images. =end #========================================================================================== #=================================CONFIGURATION=========================================== #========================================================================================== module Modif module Blk #Copier/Coller ce script en dessous de materiel. #Pour appeller le script aller dans appel de script et mettez: # $scene = Scene_Scenar.new #(Sans le "#") #La largeur maximale du scenario doit être #149 en largeur et #160 en longeur. #Vos images doit-être dans le dossier Graphics/Pictures #Aucun largeur maximale requise pour l'image au fond. #Une modification ?Un problème ? #N'hésitez pas à me contacter par Mp ! ###################################Config_Titre/Lignes################################### Msg_H = "Choississez votre scenario" #Titre qui s'affiche au haut de la fenêtre (N'oubliez pas les " ") Text_NonD = "IMPOSSIBLE POUR LE MOMENT" #Texte Qui s'affichera lorsque le scenar ne sera pas débloqué
Ligne1 = #La ligne 1.Attention ce n'est pas l'histoire 1 mais la ligne 1 ! { #A ne pas supprimer ! 1=> "Il y a très longtemps, notre monde était beau.Le coeur des personnes", #Histoire 1: ligne 1 2 => "Ici mettez l'histoire n°2(ligne1)", #Histoire 2: ligne 1 3 => "Ici mettez l'histoire n°3(ligne1)" ,#Histoire 3: ligne 1 } #A ne pas supprimer !
Ligne2 = { #A ne pas supprimer ! #Eviter des mettre trop de texte, sinon la fenêtre va les coupés. 1 => "créa de la verdure; leurs larmes remplissaient les mers,leurs joie créa de la lumière..", #Histoire 1: ligne 2 2 => "Ici mettez l'histoire n°2(ligne2)", #Histoire 2: ligne 2 3 => "Ici mettez l'histoire n°3(ligne2)", #Histoire 3: ligne 2 } #A ne pas supprimer !
Ligne3 = { #A ne pas supprimer ! 1 => "Oui, ce monde était merveilleux, inovent, miraculeux même....Mais un jour...", #Histoire 1: ligne 3 2 => "Ici mettez l'histoire n°2(ligne3)", #Histoire 2: ligne 3 3 => "Ici mettez l'histoire n°3(ligne3)", #Histoire 3: ligne 3 } Ligne4 = { #A ne pas supprimer ! 1 => "Il y avait trop de soleil, de mer, de verdure...Ces conséquences créa les monstres", #Histoire 1: ligne 3 2 => "Ici mettez l'histoire n°2(ligne4)", #Histoire 2: ligne 4 3 => "Ici mettez l'histoire n°3(ligne4)", #Histoire 3: ligne 4 } #A ne pas supprimer ! ##############################Config_Interrupteur &Teleportation##################################* #T_Map = [Choix1,Choix2,Choix3] #Choix1 = Le 1er choix dans la fenêtre(le premier scenario) #Choix2 = Le 2ème choix dans la fenêtre(le deuxième scenario) T_Map = [1, 2, 3] #Id de la map, ou le héros sera téléporté. T_Map_x = [24,8,5]#Dans le même ordre, position x de la map ou le héros sera téléporté T_Map_y = [26,38,32]#Dans le même ordre, postion y de la map ou le héros sera téléporté
Hist_int = [23,2,3]#ID des interrupteurs qui permet d'activer les choix du scenar # Hist_int = [Int_Hist1 , Int_Hist2 , Int_Hist3] #Int_Hist1 = L'ID de l'interrupteur de l'histoire 1.
#Exemple: #Le joueur choisi le 1er choix, si l'interrupteur "23" est activé, # il sera téléporter dans la map"1", donc la position x sera 24 et la position y sera 26 ##############################Config_Image et Opacite######################################### Opaci_fond = 120 #Opacite de l'image de fond. Opaci_hist = 255 #Opacite de la fenêtre qui affiche l'histoire Opaci_msg = 255 #Opacite de la fenêtre qui affiche Le message en haut Opaci_choix = 255 #Opacite de la fenêtre de choix. Image = "I_Scenar" #Nom de l'image de fond Scenar = [ #Ne pas supprimer "Scenario1", #Nom de l'image du scenario1 "Scenario2", #Nom de l'image du scenario2 "Scenario3", #Nom de l'image du scenario2 ]#Ne pas supprimer Scena_V = "ScenarioV" #Nom de l'image du Scenario Non débloqué. #========================================================================================== #==========================FIN DE LA CONFIGURATION ========================================= #==========================================================================================
end end WLH_2 = 165 class Scene_Scenar < Scene_Base #La scene Scenar hérite de la scene_base
include Modif::Blk #On inclue la méthode
def start #Def de départ create_menu_background #On crée un background @commands_scenar = [] #Tableau pour les scenars @choix_scenar = [] #Tableau pour les choix @compteur = -1 #Le compteur sera égale à -1
for x in 1..3 i = nil @commands_scenar.push(i) end @choix_scenar = Window_Command_CS.new(500, @commands_scenar, 3,1,2) @choix_scenar.opacity = Opaci_choix @choix_scenar.x = Graphics.width/2 - 250 @choix_scenar.y = Graphics.height/2 - (50) - WLH_2/2
id = 0 ajout1 = 18 ajout2 = 18 if $game_switches[Hist_int[id]] == true @img1 = Sprite.new @img1.bitmap = Cache.picture(Scenar[id].to_s) @img1.opacity = 255 @img1.x = Graphics.width/2 - 250 + ajout1 @img1.y = Graphics.height/2 - (50) - WLH_2/2 +ajout2 @img1.z = 100 else @img1 = Sprite.new @img1.bitmap = Cache.picture(Scena_V.to_s) @img1.opacity = 240 @img1.x = Graphics.width/2 - 250 +ajout1 @img1.y = Graphics.height/2 - (50) - WLH_2/2 +ajout2 @img1.z = 100 end if $game_switches[Hist_int[1]] == true @img2 = Sprite.new @img2.bitmap = Cache.picture(Scenar[1].to_s) @img2.opacity = 240 @img2.x = Graphics.width/2 - 250 + 173 @img2.y = Graphics.height/2 - (50) - WLH_2/2 +18 @img2.z = 100 else @img2 = Sprite.new @img2.bitmap = Cache.picture(Scena_V.to_s) @img2.opacity = 240 @img2.x = Graphics.width/2 - 250 + 173 @img2.y = Graphics.height/2 - (50) - WLH_2/2 +18 @img2.z = 100 end if $game_switches[Hist_int[2]] == true @img3 = Sprite.new @img3.bitmap = Cache.picture(Scenar[2].to_s) @img3.opacity = 240 @img3.x = Graphics.width/2 - 250 + 165*2 @img3.y = Graphics.height/2 - (50) - WLH_2/2 +18 @img3.z = 100 else @img3 = Sprite.new @img3.bitmap = Cache.picture(Scena_V.to_s) @img3.opacity = 240 @img3.x = Graphics.width/2 - 250 + 165*2 @img3.y = Graphics.height/2 - (50) - WLH_2/2 +18 @img3.z = 100 end
@fond = Sprite.new @fond.bitmap = Cache.picture(Image.to_s) @fond.opacity = Opaci_fond
@fene_msg = Window_Base.new (0,0,544,70) @fene_msg.opacity = Opaci_msg @fene_msg.contents.draw_text(0,0,544,70-24, Msg_H.to_s, 0) @fene_msg.z = 50
@fene_hist = Window_Scenar.new @fene_hist.opacity = Opaci_hist @fene_hist.z = 50
end
#----------------------------------------------------- #------Def Terminate------- #------------------------------------------------------ def terminate @fond.dispose @fene_hist.dispose @fene_msg.dispose @choix_scenar.dispose @img1.dispose @img2.dispose @img3.dispose end #Fin du def terminate #----------------------------------------------------- #------Def Update------- #------------------------------------------------------ def update @choix_scenar.update if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif @fene_hist.set_action(@choix_scenar.index) #Aller à set_action end
end #Fin de def update end#Fin de la class
#============================================================================== #**Window_Scenar #==============================================================================
class Window_Scenar < Window_Base include Modif::Blk #On inclue la méthode def initialize super (0,280,544,139)#280...139) @action = nil refresh end
def set_action(num) @action = num refresh end
def refresh case @action when 0
if Input.trigger?(Input::C) if $game_switches[Hist_int[0]] == true $game_map.setup(T_Map[0]) $game_player.moveto(T_Map_x[0], T_Map_y[0]) $scene = Scene_Map.new else Sound.play_buzzer end #If $game_switches end #If Input if $game_switches[Hist_int[0]] == true ecrire #Jouer la def else ecrire_NonD end #If $game_switches(2)
when 1 if Input.trigger?(Input::C) if $game_switches[Hist_int[1]] == true $game_map.setup(T_Map[1]) $game_player.moveto(T_Map_x[1], T_Map_y[1]) $scene = Scene_Map.new else Sound.play_buzzer end #If $game_switches end #If Input if $game_switches[Hist_int[1]] == true ecrire else ecrire_NonD end #If
when 2 if Input.trigger?(Input::C) if $game_switches[Hist_int[2]] == true $game_map.setup(T_Map[2]) $game_player.moveto(T_Map_x[2], T_Map_y[2]) $scene = Scene_Map.new else Sound.play_buzzer end #If $game_switches end #If Input if $game_switches[Hist_int[2]] == true ecrire else ecrire_NonD end #If
end #When end #Refresh
def ecrire_NonD self.contents.clear self.contents.font.color = Color.new(255,0,0,255) self.contents.font.bold = true self.contents.font.size = 54 self.contents.draw_text(0,0,544,110-15, Text_NonD.to_s, 0) self.contents.font.bold = false self.contents.font.size = 18 self.contents.font.color = Color.new(255,255,255,255) end
def ecrire self.contents.clear self.contents.draw_text(0,0,544,110-70, Ligne1[@action+1].to_s, 0) self.contents.draw_text(0,0,544,110-30, Ligne2[@action+1].to_s, 0) self.contents.draw_text(0,0,544,110+10, Ligne3[@action+1].to_s, 0) self.contents.draw_text(0,0,544,110+50, Ligne4[@action+1].to_s, 0) end
end #Class
#============================================================================== # ** Window_Selectable_Choix_Scenar #==============================================================================
class Window_Selectable_CS < Window_Base
include Modif::Blk #On inclue la méthode #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :item_max # item count attr_reader :column_max # digit count attr_reader :index # cursor position attr_reader :help_window # help window #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate # width : window width # height : window height # spacing : width of empty space when items are arranged horizontally #-------------------------------------------------------------------------- def initialize(x, y, width, height, spacing = 32) @item_max = 1 @column_max = 1 @index = -1 @spacing = spacing super(x, y, width, height) end #-------------------------------------------------------------------------- # * Create Window Contents #-------------------------------------------------------------------------- def create_contents self.contents.dispose self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH_2].max) end #-------------------------------------------------------------------------- # * Set Cursor Position # index : new cursor position #-------------------------------------------------------------------------- def index=(index) @index = index update_cursor call_update_help end #-------------------------------------------------------------------------- # * Get Row Count #-------------------------------------------------------------------------- def row_max return (@item_max + @column_max - 1) / @column_max end #-------------------------------------------------------------------------- # * Get Top Row #-------------------------------------------------------------------------- def top_row return self.oy / WLH_2 end #-------------------------------------------------------------------------- # * Set Top Row # row : row shown on top #-------------------------------------------------------------------------- def top_row=(row) row = 0 if row < 0 row = row_max - 1 if row > row_max - 1 self.oy = row * WLH_2 end #-------------------------------------------------------------------------- # * Get Number of Rows Displayable on 1 Page #-------------------------------------------------------------------------- def page_row_max return (self.height - 32) / WLH_2 end #-------------------------------------------------------------------------- # * Get Number of Items Displayable on 1 Page #-------------------------------------------------------------------------- def page_item_max return page_row_max * @column_max end #-------------------------------------------------------------------------- # * Get bottom row #-------------------------------------------------------------------------- def bottom_row return top_row + page_row_max - 1 end #-------------------------------------------------------------------------- # * Set bottom row # row : Row displayed at the bottom #-------------------------------------------------------------------------- def bottom_row=(row) self.top_row = row - (page_row_max - 1) end #-------------------------------------------------------------------------- # * Get rectangle for displaying items # index : item number #-------------------------------------------------------------------------- def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = (contents.width + @spacing) / @column_max - @spacing rect.height = WLH_2 rect.x = index % @column_max * (rect.width + @spacing) rect.y = index / @column_max * WLH_2 return rect end #-------------------------------------------------------------------------- # * Set Help Window # help_window : new help window #-------------------------------------------------------------------------- def help_window=(help_window) @help_window = help_window call_update_help end #-------------------------------------------------------------------------- # * Determine if cursor is moveable #-------------------------------------------------------------------------- def cursor_movable? return false if (not visible or not active) return false if (index < 0 or index > @item_max or @item_max == 0) return false if (@opening or @closing) return true end #-------------------------------------------------------------------------- # * Move cursor down # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_down(wrap = false) if (@index < @item_max - @column_max) or (wrap and @column_max == 1) @index = (@index + @column_max) % @item_max end end #-------------------------------------------------------------------------- # * Move cursor up # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_up(wrap = false) if (@index >= @column_max) or (wrap and @column_max == 1) @index = (@index - @column_max + @item_max) % @item_max end end #-------------------------------------------------------------------------- # * Move cursor right # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_right(wrap = false) if (@column_max >= 2) and (@index < @item_max - 1 or (wrap and page_row_max == 1)) @index = (@index + 1) % @item_max end end #-------------------------------------------------------------------------- # * Move cursor left # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_left(wrap = false) if (@column_max >= 2) and (@index > 0 or (wrap and page_row_max == 1)) @index = (@index - 1 + @item_max) % @item_max end end #-------------------------------------------------------------------------- # * Move cursor one page down #-------------------------------------------------------------------------- def cursor_pagedown if top_row + page_row_max < row_max @index = [@index + page_item_max, @item_max - 1].min self.top_row += page_row_max end end #-------------------------------------------------------------------------- # * Move cursor one page up #-------------------------------------------------------------------------- def cursor_pageup if top_row > 0 @index = [@index - page_item_max, 0].max self.top_row -= page_row_max end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) cursor_down(Input.trigger?(Input::DOWN)) end if Input.repeat?(Input::UP) cursor_up(Input.trigger?(Input::UP)) end if Input.repeat?(Input::RIGHT) cursor_right(Input.trigger?(Input::RIGHT)) end if Input.repeat?(Input::LEFT) cursor_left(Input.trigger?(Input::LEFT)) end if Input.repeat?(Input::R) cursor_pagedown end if Input.repeat?(Input::L) cursor_pageup end if @index != last_index Sound.play_cursor end end update_cursor call_update_help end #-------------------------------------------------------------------------- # * Update cursor #-------------------------------------------------------------------------- def update_cursor if @index < 0 # If the cursor position is less than 0 self.cursor_rect.empty # Empty cursor else # If the cursor position is 0 or more row = @index / @column_max # Get current row if row < top_row # If before the currently displayed self.top_row = row # Scroll up end if row > bottom_row # If after the currently displayed self.bottom_row = row # Scroll down end rect = item_rect(@index) # Get rectangle of selected item rect.y -= self.oy # Match rectangle to scroll position self.cursor_rect = rect # Refresh cursor rectangle end end #-------------------------------------------------------------------------- # * Call help window update method #-------------------------------------------------------------------------- def call_update_help if self.active and @help_window != nil update_help end end #-------------------------------------------------------------------------- # * Update help window (contents are defined by the subclasses) #-------------------------------------------------------------------------- def update_help end end
#========================================================= #============================================================================== # ** Window_Command_Choix_Scenar #==============================================================================
class Window_Command_CS< Window_Selectable_CS include Modif::Blk #On inclue la méthode attr_reader :commands # command
def initialize(width, commands, column_max = 1, row_max = 1, spacing = 32) super(0, 0, width, row_max * WLH_2 + 32, spacing) @commands = commands @item_max = commands.size @column_max = column_max refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number # enabled : enabled flag. When false, draw semi-transparently. #-------------------------------------------------------------------------- def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(rect, @commands[index]) end end
Dernière édition par blackdzils le Jeu 15 Déc - 19:04, édité 2 fois | |
| | | Brandobscure001
Messages : 52
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 15 Déc - 17:48 | |
| Génial merci | |
| | | Kitu
Messages : 6723
| Sujet: Re: Usine de black974[Pause durée non détérminé] Jeu 15 Déc - 17:52 | |
| Un petit screen serait sympa histoire de voir comment ça rend en jeu. | |
| | | Contenu sponsorisé
| Sujet: Re: Usine de black974[Pause durée non détérminé] | |
| |
| | | | Usine de black974[Pause durée non détérminé] | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |