| Sondage | | | Quel est votre model préféré ? | | X | | 21% | [ 7 ] | | Zx | | 12% | [ 4 ] | | Hx | | 26% | [ 9 ] | | Px | | 0% | [ 0 ] | | Fx | | 3% | [ 1 ] | | Lx | | 6% | [ 2 ] | | Ox | | 18% | [ 6 ] | | A | | 3% | [ 1 ] | | a | | 12% | [ 4 ] |
| | Total des votes : 34 |
|
| Prochaines sorties | 
Megaman Legends 3 Nintendo 3DS
  Annulé

Megaman Universe PlayStation 3, Xbox 360
  Annulé |
| Les posteurs les plus actifs de la semaine | |
| | | Trucs et astuces pour RPG Maker XP | |
| |
| Auteur | Message |
|---|
Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:14 | |
| Avoir de l'ombre sur tout dans le jeu Remplacez Sprite_Character par ceci: Code: | Code: | #============================================================================== # ■ Sprite_Character modifié (See Sprite_Shadow and Sprite_Sun) #==============================================================================
class Sprite_Character < RPG::Sprite
attr_accessor :character
def initialize(viewport, character = nil) super(viewport) @character = character #------Sun edit---------- @sunlist=[] if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["sun"]) if (character.list[1]!=nil and character.list[1].code == 108) @self_angle=character.list[1].parameters[0] else @self_angle=45 end if (character.list[2]!=nil and character.list[2].code == 108) @self_opacity=character.list[2].parameters[0] else @self_opacity=128 end for i in $game_map.events.keys.sort if ($game_map.events[i].is_a?(Game_Event) and $game_map.events[i].list!=nil and $game_map.events[i].list[0].code == 108 and $game_map.events[i].list[0].parameters == ["o"]) @sunlist[i+1] = Sprite_Sun.new(viewport, $game_map.events[i],@self_angle,@self_opacity) end end @sunlist[1] = Sprite_Sun.new(viewport, $game_player,@self_angle,@self_opacity) end #------/Sun edit---------- #------Shadows edit--------- @ombrelist=[] if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"]) if (character.list[1]!=nil and character.list[1].code == 108) @anglemin=character.list[1].parameters[0] end if (character.list[2]!=nil and character.list[2].code == 108) @anglemax=character.list[2].parameters[0] end if (character.list[3]!=nil and character.list[3].code == 108) @distancemax=character.list[3].parameters[0] end for i in $game_map.events.keys.sort if ($game_map.events[i].is_a?(Game_Event) and $game_map.events[i].list!=nil and $game_map.events[i].list[0].code == 108 and $game_map.events[i].list[0].parameters == ["o"]) @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events[i],self,@anglemin,@anglemax,@distancemax) end end @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax) end #------/Shadows edit---------- update end
def update super if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_hue != @character.character_hue @tile_id = @character.tile_id @character_name = @character.character_name @character_hue = @character.character_hue if @tile_id >= 384 self.bitmap = RPG::Cache.tile($game_map.tileset_name, @tile_id, @character.character_hue) self.src_rect.set(0, 0, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue) @cw = bitmap.width / 4 @ch = bitmap.height / 4 self.ox = @cw / 2 self.oy = @ch end end self.visible = (not @character.transparent) if @tile_id == 0 sx = @character.pattern * @cw sy = (@character.direction - 2) / 2 * @ch self.src_rect.set(sx, sy, @cw, @ch) end self.x = @character.screen_x self.y = @character.screen_y self.z = @character.screen_z(@ch) self.opacity = @character.opacity self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth if @character.animation_id != 0 animation = $data_animations[@character.animation_id] animation(animation, true) @character.animation_id = 0 end #------Shadows edit---------- if @ombrelist!=[] for i in 1..@ombrelist.size if @ombrelist[i]!=nil @ombrelist[i].update end end end #------/Shadows edit---------- #------Shadows edit---------- if @sunlist!=[] for i in 1..@sunlist.size if @sunlist[i]!=nil @sunlist[i].update end end end #------/Shadows edit---------- end end
Ensuite faites un nouveau script en dessous de Sprite_Character et nommé le Sprite_Shadow et collez s'y ceci:
Code: #============================================================================== # ■ Sprit_Ombre (Sprite_Ombre ) # Based on Genzai Kawakami's shadows, dynamisme by Rataime, extra features Boushy #==============================================================================
class Sprite_Shadow < RPG::Sprite
attr_accessor :character # キャラクター
def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0) super(viewport) @anglemin=anglemin.to_f @anglemax=anglemax.to_f @distancemax=distancemax.to_f @character = character @source = source update end
def update super if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_hue != @character.character_hue @tile_id = @character.tile_id @character_name = @character.character_name @character_hue = @character.character_hue if @tile_id >= 384 self.bitmap = RPG::Cache.tile($game_map.tileset_name, @tile_id, @character.character_hue) self.src_rect.set(0, 0, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue) @cw = bitmap.width / 4 @ch = bitmap.height / 4 self.ox = @cw / 2 self.oy = @ch end end self.visible = (not @character.transparent) if @tile_id == 0 sx = @character.pattern * @cw @direct=@character.direction if self.angle>90 or angle<-90 if @direct== 6 sy = ( 4- 2) / 2 * @ch end if @direct== 4 sy = ( 6- 2) / 2 * @ch end if @direct != 4 and @direct !=6 sy = (@character.direction - 2) / 2 * @ch end else sy = (@character.direction - 2) / 2 * @ch end self.src_rect.set(sx, sy, @cw, @ch) end self.x = @character.screen_x self.y = @character.screen_y-5 self.z = @character.screen_z(@ch)-1 self.opacity = @character.opacity self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth if @character.animation_id != 0 animation = $data_animations[@character.animation_id] animation(animation, true) @character.animation_id = 0 end @deltax=@source.x-self.x @deltay= @source.y-self.y self.angle = 57.3*Math.atan2(@deltax, @deltay ) @angle_trigo=self.angle+90 if @angle_trigo<0 @angle_trigo=360+@angle_trigo end self.color = Color.new(0, 0, 0) @distance = ((@deltax ** 2) + (@deltay ** 2)) self.opacity = 1200000/(@distance+6000) @distance = @distance ** 0.5 if @distancemax !=0 and @distance>=@distancemax self.opacity=0 end if @anglemin !=0 or @anglemax !=0 if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and @anglemin<@anglemax self.opacity=0 end if (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and @anglemin>@anglemax self.opacity=0 end end end end
Et pour finir, fait un nouveau script au dessus de Main nommé Sprite_Sun et collez ca:
Code: #============================================================================== # ■ Sprite_Sun # # Based on Sprite_Shadow, modified by Rataime #==============================================================================
class Sprite_Sun < RPG::Sprite attr_accessor :character
def initialize(viewport, character = nil, self_angle = 45,self_opacity = 128) super(viewport) @character = character @self_angle=self_angle @self_opacity=self_opacity update end
def update super if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_hue != @character.character_hue @tile_id = @character.tile_id @character_name = @character.character_name @character_hue = @character.character_hue if @tile_id >= 384 self.bitmap = RPG::Cache.tile($game_map.tileset_name, @tile_id, @character.character_hue) self.src_rect.set(0, 0, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue) @cw = bitmap.width / 4 @ch = bitmap.height / 4 self.ox = @cw / 2 self.oy = @ch end end self.visible = (not @character.transparent)
if @tile_id == 0 sx = @character.pattern * @cw @direct=@character.direction if self.angle>90 or angle<-90 if @direct== 6 sy = ( 4- 2) / 2 * @ch#@character.direction end if @direct== 4 sy = ( 6- 2) / 2 * @ch end if @direct != 4 and @direct !=6 sy = (@character.direction - 2) / 2 * @ch end else sy = (@character.direction - 2) / 2 * @ch end self.src_rect.set(sx, sy, @cw, @ch) end self.x = @character.screen_x self.y = @character.screen_y-5 self.z = @character.screen_z(@ch)-1 self.opacity = @character.opacity self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth if @character.animation_id != 0 animation = $data_animations[@character.animation_id] animation(animation, true) @character.animation_id = 0 end self.angle = @self_angle-90 self.color = Color.new(0, 0, 0) self.opacity = @self_opacity end end |
Voila !!! : pour l'utilisation: Tout fonctionne avec un commentaire.
Alors, tout les palce que vous volez avoir votre lumière, vous palcer un évènement qui a comme commentaire s.
Pour donner à un évènement une ombre, ajoutez un commentaire o.
Pour l'imiter la source, ajoutez s'y 2 autre commentaire avec chacun un chiffre qui définie un angle. C'est l'angle de la lumière proecté. Par exemple un lumière qui donne de la lumière seulement vers la droite et non vers la gauche.
Et un 4ème commentaire qui est écrit un chiffre entre 500 et 1000, qui son la longueur en pixel pour l'ombre.
Pour l'extérieur ne faites que placé un commentaire sun. Pour limiter le soleil, le degré c'est encore la même chose et pour le focé ou pâle, ces entre 30 et 200, dont 200 ces très claire.
PS: Le héro a déja son ombre.
Si vous mettez pas de degré ni de longueur, il va s'adapté à celle par défaut dans le script qui est déja bien
Dernière édition par le Dim 28 Aoû 2005 - 23:24, édité 2 fois |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:16 | |
| World Map à téléportation Ce script vous permet d'éviter de dessiner une carte du monde. Alors vous utilisez un menu avec images. Voir les images pour comprendre. Faite un nouveau script au dessus de Main appelé Worldmap90 puis coller ce code: Code: | Code: | #======================================================================= # ■ Scene_Worldmap v0.9 #-------------------------------------------------------------------------------------------------------------------------------- # Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr # Nécessite : le scrîpt Window_world # Description : # Ce scrîpt permet d'afficher un menu de carte du monde/téléporteur comportant dans une # première fenêtre à gauche une liste de choix (les destinations), chacun des choix est # accompagné d'une image qui apparaitra à droite, et probablement dans une prochaine version # d'une description dans la fenêtre de bienvenu, un choix peut être ajouté/enlevé ou désactivé # à l'aide de variables ou de switchs. # Utilisation : # Il y a trois endroits où vous devez modifier ce scrîpt pour qu'il fonctionne, pour cela faites # comme dans les exemples, ils sont à mon avis assez explicites. # # Modifications 1 : C'est là que vous mettrez le nom de la destination (dans la variable @s[i], # où i est la position de ce choix, 0 = première position, 1 = 2nde position ou 1ère position si # le choix 0 n'est pas disponible et ainsi de suite) et le nom de l'image du dossier Pictures lui # correspondant dans la variable @ni[i] (le nom doit être entre crochets (exemple "Ville"), et ne # doit PAS contenir le nom de l'extension (.jpg). # # Modifications 2 : Optionnel, si vous voullez qu'à un moment le joueur ne puisse pas aller # quelquepart mais que le choix soit tout de même visible, c'est là qu'il faut le mettre, à l'aide # de la commande : @command_window.disable_item("nom du l'endroit") # # Modifications 3 : Entrer ici les conséquences du choix, générallement la téléportion complète # de l'équipe. Pour téléporter l'équipe vous pouvez utiliser la commande : # téléportation(id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) # Je ne me rappelle plus des différentes direction du héros, il me semble que ce chiffre peut # une valeur entre 0 et 3, 0 et 3 étant compris. Cela permet en tout cas que le héro regarde # vers le haut ou la droite par exemple, après s'être téléporté. # # Notes importantes : L'image doit être au format jpg (c'est le seul que j'ai testé, je ne sais pas # si les autres sont acceptés). Son format conseillé est de 368x352, si l'image est plus petite, # elle sera automatiquement centré au milieu de la fenêtre, de même si elle est trop grande, on # verra son milieu, et non son côté. # Pour appeller cette carte du monde, utliser la ligne de scrîpt suivante : # $scene = Scene_Worldmap.new # à partir de n'importe quel évènement ou scrîpt. #======================================================================= class Scene_Worldmap def initialize(menu_index = 0) @menu_index = menu_index end
def main @s = [] @ni = [] ############### Modifications 1 ################ @s[0] = "Mines" #Nom du premier choix @ni[0] = "image_Mines1" #Nom de l'image du premier choix ds votre dossier Pictures (sans l'extension) @s[1] = "Ville du desert" #@ni[1] = "Ville du desert" #Le nom de l'image étant identique à celui du lieu, on peut négliger de la préciser if $game_switches[1] == true # Exemple avec un switch : @s[2] = "Test" # Le choix "Test" n'apparaitra que si @ni[2] = "image_test" # le switch 1 est activé end if $game_variables[80] > 3 # Exemple avec une variable : @s[3] = "AZERTY" # Le choix "AZERTY" n'apparaitra que si @ni[3] = "blablabla" # la variable 80 est supérieur à 3 end for i in 0...@s.size if @ni[i] == nil and @s[i] != nil # Si aucun nom d'image n'a été attribué alors que le lieu existe @ni[i] = @s[i] # Alors le nom du lieu devient le nom de l'image end end @s.compact! # Enlève les espaces vides possibles. @ni.compact! #Création de la fenêtre de bienvenue => (coordonnée x, coordonnée y, largeur, hauteur) largeur = 640 hauteur = 96 @bienvenue_window = Window_Base.new(0,0,largeur,hauteur) @bienvenue_window.contents = Bitmap.new(largeur-32, hauteur-32) @bienvenue_window.contents.font.name = $fontface #si vous voullez modifier la police d'écriture @bienvenue_window.contents.font.size = $fontsize #ou sa taille c'est ici. message1 = "Bienvenu sur la World Map." message2 = "Veuillez choisir votre destination." align = 1 #(0 = texte aligné à gauche ; 1 = texte centré ; 2 = aligné à droite) @bienvenue_window.contents.draw_text(0, 0, largeur, 32, message1, align) @bienvenue_window.contents.draw_text(0, 32, largeur, 32, message2, align) largeur2 = 240 #(largeur de la fenêtre des choix) @command_window = Window_World.new(largeur2, @s) @command_window.x = 0 # position x de la fenêtre des choix @command_window.y = 96 # position y de la fenêtre des choix @command_window.index = @menu_index # Fenêtre qui contiendra l'image => (position x, position y, largeur, hauteur) @image_window = Window_Base.new(240, 96, 400, 480-96) ############### Modifications 2 ################ # Liste des choix non selectionnables, ils sont visibles en grisé par le joueur. if $game_switches[2] == true # Exemple avec un switch : @command_window.disable_item("Ville du desert") # Le choix "Ville du desert" sera grisé end # et non selectionnable si le switch 2 est activé if $game_variables[66] < 4 # Exemple avec une variable : Le choix "Mines" @command_window.disable_item("Mines") # sera grisé et non selectionnable end # tant que la variable 66 est inférieur à 4. Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose end
def update @command_window.update if @image_window.active update_image end if @command_window.active update_command return end end
def update_command if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @bienvenue_window.dispose @image_window.dispose $scene = Scene_Map.new return end if Input.trigger?(Input::C) case @s[@command_window.index] ############### Modifications 3 ################ when "Mines" # Ce qui se passe si le joueur choisit "Mines" if not @command_window.disable_item?("Mines") # Le choix n'est pas validé s'il est désactivé (grisé). téléportation(2, 1, 1, 2) # téléportation de l'équipe # rappel : (id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) end when "Ville du desert" if not @command_window.disable_item?("Ville du desert") téléportation(4, 8, 10) end when "Test" if not @command_window.disable_item?("Test") téléportation(2, 1, 1) end end if $scene == self # Si la scene est encore celle-ci, le choix n'était pas bon, donc on $game_system.se_play($data_system.buzzer_se) # joue un bruit de buzzer else $game_system.se_play($data_system.decision_se) end return end end def téléportation(map_id, coord_x, coord_y, héro_direction=0) @bienvenue_window.dispose @image_window.dispose $game_temp.player_transferring = true $game_temp.player_new_map_id = map_id $game_temp.player_new_x = coord_x $game_temp.player_new_y = coord_y $game_temp.player_new_direction = héro_direction Graphics.freeze $game_temp.transition_processing = true $game_temp.transition_name = "" $scene = Scene_Map.new end def update_image i =@command_window.index if @ni[i] != nil and i != @vieuxi @image_window.contents = Bitmap.new(400-32, 480-96-32) bitmap = RPG::Cache.picture(@ni[i]) cw = bitmap.width ch = bitmap.height if cw > 368 # Ce qui suit sert à centrer l'image si elle est trop petite ou trop grande. aw = (cw - 368) / 2 bw = 0 else aw = 0 bw = (368 - cw) / 2 end if ch > 352 ah = (ch - 352) / 2 bh =0 else ah = 0 bh = (352 - ch) / 2 end src_rect = Rect.new(aw, ah, cw, ch) @image_window.contents.blt(bw, bh, bitmap, src_rect) @vieuxi = i end end end
#======================================================================= # ■ Window_World v0.9 #-------------------------------------------------------------------------------------------------------------------------------- # Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr # Nécessite : le scrîpt Scene_Worldmap # Toutes les explications sont dans le scrîpt Scene_Worldmap, il ne devrait rien avoir à faire # dans celui-ci. #======================================================================= class Window_World < Window_Selectable def initialize(width, commands) @item_désactivé =[] if commands.size > 11 hauteur = 11 else hauteur = commands.size end super(0, 0, width, hauteur * 32 + 32) @item_max = commands.size @commands = commands self.contents = Bitmap.new(width - 32, @item_max * 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize refresh self.index = 0 end
def refresh self.contents.clear for i in 0...@item_max draw_item(i, normal_color) end end
def draw_item(index, color) self.contents.font.color = color rect = Rect.new(4, 32 * index, self.contents.width - 8, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) self.contents.draw_text(rect, @commands[index]) @item_désactivé[index] = 0 end
def disable_item(nom) if indexde(nom) != false draw_item(indexde(nom), disabled_color) @item_désactivé[indexde(nom)] = 1 end end def disable_item?(nom) if @item_désactivé[indexde(nom)] == 1 return true else return false end end def indexde(nom) for i in 0...@commands.size if @commands[i] == nom return i end end return false end end
Ensuite, pour le faire marcher:
Citation:
# à l'aide de variables ou de switchs / intérupteur. # Utilisation : # Il y a trois endroits où vous devez modifier ce scrîpt pour qu'il fonctionne, pour cela faites # comme dans les exemples, ils sont à mon avis assez explicites. # # Modifications 1 : C'est là que vous mettrez le nom de la destination (dans la variable @s[i], # où i est la position de ce choix, 0 = première position, 1 = 2nde position ou 1ère position si # le choix 0 n'est pas disponible et ainsi de suite) et le nom de l'image du dossier Pictures lui # correspondant dans la variable @ni[i] (le nom doit être entre crochets (exemple "Ville"), et ne # doit PAS contenir le nom de l'extension (.jpg). # # Modifications 2 : Optionnel, si vous voullez qu'à un moment le joueur ne puisse pas aller # quelquepart mais que le choix soit tout de même visible, c'est là qu'il faut le mettre, à l'aide # de la commande : @command_window.disable_item("nom du l'endroit") # # Modifications 3 : Entrer ici les conséquences du choix, générallement la téléportion complète # de l'équipe. Pour téléporter l'équipe vous pouvez utiliser la commande : # téléportation(id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel) # Je ne me rappelle plus des différentes direction du héros, il me semble que ce chiffre peut # une valeur entre 0 et 3, 0 et 3 étant compris. Cela permet en tout cas que le héro regarde # vers le haut ou la droite par exemple, après s'être téléporté. # # Notes importantes : L'image doit être au format jpg (c'est le seul que j'ai testé, je ne sais pas # si les autres sont acceptés). Son format conseillé est de 368x352, si l'image est plus petite, # elle sera automatiquement centré au milieu de la fenêtre, de même si elle est trop grande, on # verra son milieu, et non son côté. # Pour appeller cette carte du monde, utliser la ligne de scrîpt suivante : # $scene = Scene_Worldmap.new # à partir de n'importe quel évènement ou scrîpt. #======================================================================= |
Pour appeller un script, vous devez faire un évènement qui lui appellera le script:
Code:
| Code: | $scene = Scene_Worldmap.new |
Les modifications montre l'endroit dans le script à regarder.
Dernière édition par le Dim 28 Aoû 2005 - 23:25, édité 2 fois |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:17 | |
| Une video Ce script vous permet de faire jouer une video dans rmxp. Faites F11 pour lancer l'éditeur de script. Dans la colonne de gauche, Faites un clic droit puis "Nouveau script". Appelez ce script "modul_movieplayer". Code: | Code: | #==================================================== # ? Lecteur Vidéo #------------------------------------------------------------------------------ # By: dgam3z # Date: 18/10/04 # http://www.zone-freegames.fr.tc/ #=====================================================
module MoviePlayer
#-------------------------------------------------------------------------- # ? les attr_acessor for les jolies fonctions de ce module: #------------------------------------------------------------------------- class<<self attr_accessor(:X,:y,:z,:width,:height,:opacity) end
#-------------------------------------------------------------------------- # ? Initialisation des constantes #------------------------------------------------------------------------- MULTIFILE = 1 ONEFILE = 2
#-------------------------------------------------------------------------- # ? Initialisation. #-------------------------------------------------------------------------
@loaded = false
#-------------------------------------------------------------------------- # ? Charger le fichier. # In: name, frames, @loaded # Out: @rmm_name, @rmm_type, @rmm_width, @rmm_height, @loaded, @rmm_frames #------------------------------------------------------------------------- def self.load(name,frames=0) if not @loaded then #Checks if the movie is ONEFILE. if FileTest.exists?("Movies/"+name+".png") then if frames != 0 @rmm_frames = frames else if $DEBUG then print "Debug: Nombre de frames necessaire pour ce film." end return 3 #Error 3: Need the number of frames. end
@rmm = Sprite.new @rmm_name = name @rmm_type = ONEFILE @rmm_x = 0 @rmm_y = 0 @rmm_z = 4000 @rmm_width = 0 @rmm_height = 0 @frame_counter = 0
#Verifier la taille du fichier. @rmm_width = Bitmap.new("Movies/"+@rmm_name+".png").width/@rmm_frames @rmm_height = Bitmap.new("Movies/"+@rmm_name+".png").height @loaded = true return 0 #No Errors: Everything wen't fine. end #Regarder si le film est MULTIFILE. if FileTest.exists?("Movies/"+name+"/"+name+"_0.png") then
@rmm = Sprite.new @rmm_name = name @rmm_type = MULTIFILE @rmm_frames = 0 @rmm_x = 0 @rmm_y = 0 @rmm_z = 4000 @rmm_width = 0 @rmm_height = 0 @frame_counter = 0
#Demande les Hauteurs/Largeurs. @rmm_width = Bitmap.new("Movies/"+@rmm_name+"/"+@rmm_name+"_0.png").width @rmm_height = Bitmap.new("Movies/"+@rmm_name+"/"+@rmm_name+"_0.png").height
i = 0 while FileTest.exist?("Movies/"+@rmm_name+"/"+@rmm_name+"_#{i}.png") i = i + 1 end #And get the number of frames. @rmm_frames = i - 1 @loaded = true return 0 #No Errors: Everything wen't fine. end if $DEBUG then print "Debug: Fichier non trouvé. Rendez vous sur le Forum http://www.zone-freegames.fr.tc/ pour plus d'informations." end return 2 #Error 2: File not found. end if $DEBUG then print "Debug: Dernier fichier non trouvé. Rendez vous sur http://www.zone-freegames.fr.tc/ pour plus d'informations" end return 1 #Error 1: Needs to unload last movie first. end
#-------------------------------------------------------------------------- # ? Starts a movie. #------------------------------------------------------------------------- def self.start(trans=40) if not @loaded then if $DEBUG then print "Debug: Impossible d'ouvrir un fichier non chargé. Pour plus d'informations, allez sur http://www.zone-freegames.fr.tc/" end return 1 #Error 1: Not loaded. end
Graphics.freeze
if @rmm_type == ONEFILE then @rmm.bitmap = Bitmap.new("Movies/"+@rmm_name+".png") @rmm.src_rect.set(@rmm_width*@frame_counter, 0, @rmm_width, @rmm_height) end
if @rmm_type == MULTIFILE then @rmm.bitmap = Bitmap.new("Movies/"+@rmm_name+"/"+@rmm_name+"_0.png") @rmm.src_rect.set(0, 0, @rmm.bitmap.width, @rmm.bitmap.height) end
@frame_counter = 1
#Makes the transition. Graphics.transition(trans) end
#-------------------------------------------------------------------------- # ? Mise a jour du film (Passe a la prochaine frames) #------------------------------------------------------------------------- def self.update if @loaded == true then if @rmm_type == ONEFILE then @rmm.src_rect.set(@rmm_width*@frame_counter, 0, @rmm_width, @rmm_height) end if @rmm_type == MULTIFILE then @rmm.bitmap = Bitmap.new("Movies/"+@rmm_name+"/"+@rmm_name+"_#{@frame_counter}.png") @rmm.src_rect.set(0, 0, @rmm.bitmap.width, @rmm.bitmap.height) end Graphics.update @frame_counter = @frame_counter + 1 if @frame_counter == @rmm_frames @frame_counter = 0 return true else return false end end end
#-------------------------------------------------------------------------- # ? Sets et retrieves les coordonnées du film. #------------------------------------------------------------------------- def self.x; return @rmm.x; end def self.x=(tx); @rmm.x = tx; end def self.y; return @rmm.y; end def self.y=(ty); @rmm.y = ty; end def self.z; return @rmm.z; end def self.z=(tz); @rmm.z = tz; end
#-------------------------------------------------------------------------- # ? Retrieves la taille du film. #------------------------------------------------------------------------- def self.width; return @rmm_width; end def self.height; return @rmm_height; end
#-------------------------------------------------------------------------- # ? Sets et retrieves la transparance.du film #------------------------------------------------------------------------- def self.opacity; return @rmm.opacity; end def self.opacity=(topacity); @rmm.opacity = topacity; end
#-------------------------------------------------------------------------- # ? Vérifie si un film est chargé #------------------------------------------------------------------------- def self.loaded? return @loaded end
#-------------------------------------------------------------------------- # ? Cherche dans quelle frame le film est actuellement #------------------------------------------------------------------------- def self.frame? if @loaded then return @frame_counter end end
#-------------------------------------------------------------------------- # ? Caractéristiques faciles de la lecture du film (aka Newbie Definition). #------------------------------------------------------------------------- def self.play(movie, loops=1, wait=2, trans=0, x=nil, y=nil, z=4000, opacity=255) MoviePlayer.load(movie) if x != nil then MoviePlayer.x = x; else MoviePlayer.x = 320 - @rmm_width/2; end if y != nil then MoviePlayer.y = y; else MoviePlayer.y = 240 - @rmm_height/2; end MoviePlayer.z = z MoviePlayer.start(trans) for i in 1..loops begin for i in 0..wait Graphics.update end end while MoviePlayer.update == false end MoviePlayer.stop(trans) end
#-------------------------------------------------------------------------- # ? Stop et décharge le film. #------------------------------------------------------------------------- def self.stop(trans=40) if not @loaded then if $DEBUG then print "Debug: Can't stop, movie not loaded : http://www.zone-freegames.fr.tc/" end return 1 #Error 1: Not loaded. end
Graphics.freeze
@rmm.bitmap.dispose
@loaded = false
#Makes the transition. Graphics.transition(trans) end end |
Pour l'utiliser, vous devez utilisez cette fonction : MoviePlayer.play(movie, loops, wait, trans, x, y, z, opacity)
- loops : Combien de fois voulez vous rejouer le film. Default: 1 - movie : Le fichier à jouer. Doit être dans un repertoire nommé " movies". - wait : Attente de passage d'une frame à l'autre. Default: 2 - trans : Frames de transition au début et fin du film. Default: 40 - x,y,z : Ou jouer à l'écran le film. Default: Centrer à l'écran et z=4000 - opacity : L'opacité de l'animation.
Il y a aussi les propriétés et fonctions avancées : MoviePlayer.load(movie, frames) : Charge le film. "movie" est le film à charger et "frames" et le nombre de frames que le fichier possède, "frames" peut seulement être utilisé pour 1 seul fichier. MoviePlayer.start(trans) : Le film commence, "trans" est la frame de transition. MoviePlayer.update : Mise à jour de la nouvelle prochaine frame, retourne "true" lorsqu'il arrive à la dernière. MoviePlayer.stop(trans) : Arrête le film, "trans" est la frame de transition.
MoviePlayer.x et MoviePlayer.y et MoviePlayer.z : Ces coordonnées sont les endroits ou la vidéo va être jouée à l'écran. Elles peuvent être changées même pendant la partie.
MoviePlayer.width et MoviePlayer.height : Cela lit seulement les propriétés en rapport avec la taille de l'animation.
MoviePlayer.frame? : Cela recherche quelle frame est en cours
MoviePlayer.loaded? : Cela renvoit true si un fichier est en train d'être joué.
Dernière édition par le Dim 28 Aoû 2005 - 23:26, édité 1 fois |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:18 | |
| Afficher l'argent sur la map Tout est écrit dans le titre, l'argent cera afficher permanant à l'écran. Dans le script 'Scene_Map', en dessous de la ligne 15 (@message_window = Window_Message.new), collez le code suivant : Code: | Code: | @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416 |
Changez les valeurs de X et Y pour l'afficher à l'endroit désiré.
Vous pouvez ajouter juste en dessous le code :
Code:
| Code: | @gold_window.back_opacity = 0 |
Pour que le fond de la fenêtre de l'argent soit transparent.
Ensuite, à la ligne 36, collez en dessous du code | Code: | @message_window.dispose | , celui-ci :
Code:
| Code: | @gold_window.dispose |
Et enfin, à la ligne 47, collez en dessous du code def update, celui-ci :
Code:
| Code: | @gold_window.refresh |
Dernière édition par le Lun 29 Aoû 2005 - 20:43, édité 2 fois |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:19 | |
| Window_Map_Name Ce script permet d'afficher le nom de l'endroit où l'on se situe sur chaque carte. De base, il s'affiche en haut à droite et ce script prend en fait le nom que vous avez donné à la map pour l'afficher. Ouvrez l'éditeur de script et créez en un nouveau au dessus de 'Main' qui portera le nom de 'XRXS20' et collez le code ci-dessous: Code: | Code: | module XRXS20_Config SCENE_BATTLE_TO_SCENE_MAP = true end
#============================================================================== # Window_Map_Name #============================================================================== class Window_Map_Name < Window_Base
def initialize super(8, -8, 640, 64) self.contents = Bitmap.new(self.width - 32, self.height - 32) self.contents.font.name = "Tahoma" @align = 1 @showing_time = 0 @text_color = Color.new(255, 255, 0, 255) end #-------------------------------------------------------------------------- def set_text(text, align = 2) if text != @text or align != @align @text = text @align = align if text.empty? or text =~ /^\./ @showing_time = -1 self.contents_opacity = 0 self.visible = false else @showing_time = 100 self.contents_opacity = 255 self.visible = true self.contents.clear x = 4 y = 0 width = self.contents.width - 8 str = "-"+@text+"-" self.contents.font.color = Color.new( 0, 0, 0, 192) self.contents.draw_text(x+2, y+2, width, 32, str, @align) self.contents.font.color = Color.new( 64, 64, 64, 192) self.contents.draw_text(x-1, y-1, width, 32, str, @align) self.contents.draw_text(x+1, y-1, width, 32, str, @align) self.contents.draw_text(x-1, y+1, width, 32, str, @align) self.contents.draw_text(x+1, y+1, width, 32, str, @align) self.contents.font.color = @text_color self.contents.draw_text(x, y, width, 32, str, @align) end end end #-------------------------------------------------------------------------- def update return if @showing_time < 0 @showing_time -= 0 if @showing_time < 16 self.contents_opacity = @showing_time * 16 if @showing_time == 0 self.visible = false self.contents.clear return end end end end #============================================================================== class Scene_Map def initialize_map_name_window(text = nil) if @map_name_window.nil? @map_name_window = Window_Map_Name.new @map_name_window.opacity = 0 @map_name_window.text = text if not text.nil? end end #-------------------------------------------------------------------------- alias xrxs20_main main def main initialize_map_name_window xrxs20_main @map_name_window.dispose end #-------------------------------------------------------------------------- alias xrxs20_update update def update @map_name_window.set_text($game_map.name) @map_name_window.update xrxs20_update end end
#============================================================================== class Scene_Title #-------------------------------------------------------------------------- alias xrxs20_main main def main $map_infos = load_data("Data/MapInfos.rxdata") for key in $map_infos.keys $map_infos[key] = $map_infos[key].name end xrxs20_main end end #============================================================================== class Game_Map #-------------------------------------------------------------------------- def name $map_infos[@map_id] end end #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- alias xrxs20_main main def main xrxs20_main if $scene.is_a?(Scene_Map) and (not XRXS20_Config::SCENE_BATTLE_TO_SCENE_MAP) $scene.initialize_map_name_window($game_map.name) end end end |
Dernière édition par le Lun 29 Aoû 2005 - 20:44, édité 1 fois |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 21:23 | |
| Dash_Mode Ce tutorial vous permet de faire courir votre personnage en appuyant sur la touche Z pour une durée limitée tant que vous tenez cette touche enfoncée. Dans le coin en bas à gauche, vous avez une image composée de 5 bars. Cela représente la durée du dash. S'il n'y a plus de barres, votre personnage ne peut plus courir. Ensuite, il y a un temps mort entre l'épuisement du dash et sa réacivation. Et enfin, il y a un total de 5 barres qui représente donc le niveau d'épuisement du dash et il faut un certain entre chaque barre pour que le niveau revienne au maximum. Allez dans l'éditeur de script et insérer en un nouveau au dessus de 'Main' et nommez-le Dash_Mode, puis collez le code suivant : Code: | Code: | #============================================================================== # ■ Dash Mode #------------------------------------------------------------------------------ # Near Fantastica # 09/12/04 #=============================================================================
class Game_Player #-------------------------------------------------------------------------- # ● Refer Update to Game Player #-------------------------------------------------------------------------- alias game_player_update update #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update if Input.press?(Input::A) if moving? # If A Key press enter dash mode # reduce dash level @move_speed=5 @restore = false if @reduce == false @timer = 50 # Initial time off set @reduce = true else @timer-= 1 end @sec = (@timer / Graphics.frame_rate)%60 if @sec == 0 if @dash_level != 0 @dash_level -= 1 @timer = 45 # Timer Count end end if @dash_level == 0 @move_speed=4 end $dash_bar.update(@dash_level) end else # restore dash level @move_speed=4 @reduce = false if @restore == false @timer = 80 # Initial time off set @restore = true else @timer-= 1 end @sec = (@timer / Graphics.frame_rate)%60 if @sec == 0 if @dash_level != 5 @dash_level+= 1 @timer = 60 # Timer Count end end $dash_bar.update(@dash_level) end game_player_update end end
#============================================================================== # ■ Bar Sprite #------------------------------------------------------------------------------ # Used for Dash Mode displays bar pictures to screen #=============================================================================
class Bar_Sprite < Sprite #-------------------------------------------------------------------------- # ● Initialization #-------------------------------------------------------------------------- def initialize super self.x = 10 self.y = 460 self.z = 500 end #-------------------------------------------------------------------------- # ● Update Dash Bar Level #-------------------------------------------------------------------------- def update(number) @number = number case number when 0 self.bitmap = RPG::Cache.picture("bar 0") when 1 self.bitmap = RPG::Cache.picture("bar 1") when 2 self.bitmap = RPG::Cache.picture("bar 2") when 3 self.bitmap = RPG::Cache.picture("bar 3") when 4 self.bitmap = RPG::Cache.picture("bar 4") when 5 self.bitmap = RPG::Cache.picture("bar 5") end end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose self.bitmap.dispose end end
#============================================================================== # ■ Game Character #------------------------------------------------------------------------------ # Add Initialization of Dash Mode Varibles #=============================================================================
class Game_Character #-------------------------------------------------------------------------- # ● Refer Initialization to Game Character #-------------------------------------------------------------------------- alias dash_mode_initialize initialize #-------------------------------------------------------------------------- # ● Initialization #-------------------------------------------------------------------------- def initialize @restore = false @reduce= false @timer = 0 @dash_level = 5 @sec = 0 $dash_bar = Bar_Sprite.new dash_mode_initialize end end
#============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # Check for $dash_bar.dispose condition #=============================================================================
class Scene_Map #-------------------------------------------------------------------------- # ● Refer Update to Scene Map #-------------------------------------------------------------------------- alias scene_map_call_battle call_battle alias scene_map_call_shop call_shop alias scene_map_call_name call_name alias scene_map_call_menu call_menu alias scene_map_call_save call_save alias scene_map_call_debug call_debug #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is Battle called #-------------------------------------------------------------------------- def call_battle $dash_bar.dispose scene_map_call_battle end #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is called #-------------------------------------------------------------------------- def call_shop $dash_bar.dispose scene_map_call_shop end #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is Name called #-------------------------------------------------------------------------- def call_name $dash_bar.dispose scene_map_call_name end #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is Menu called #-------------------------------------------------------------------------- def call_menu $dash_bar.dispose scene_map_call_menu end #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is Save called #-------------------------------------------------------------------------- def call_save $dash_bar.dispose scene_map_call_save end #-------------------------------------------------------------------------- # ● Dispose of $dash_bar is Debug called #-------------------------------------------------------------------------- def call_debug $dash_bar.dispose scene_map_call_debug end end |
Il y a 3 choses que vous pouviez modifier.
| Code: | @timer = 45 # Timer Count
|
- Ligne 33 : Vous permettera de choisir la durée du dash donc si vous mettez un nombre plus élevé que 45, votre perso pourra courir plus longtemps.
| Code: | @timer = 80 # Initial time off set |
- Ligne 46 Cette ligne sert à définir le temps qu'il y aura entre l'épuisement du dash et sa réactivation.
| Code: | @timer = 60 # Timer Count
| - Ligne 55 Et cette ligne définit le temps de réactivation de chacune des barres.
Pour pouvoir activer et désactiver le mode Dash sur les maps désirée, il vous suffit de changer la ligne : if Input.press?(Input::A)
Par celle-ci : if Input.press?(Input::A) and $game_switches[x] == true
x étant le numéro du bouton que vous avez sélectionné. Ensuite, vous devez créer un event qui activera le bouton et il vous suffira alors de créer un autre event qui désactivera le bouton et du même coup le mode Dash.
Dernière édition par le Lun 29 Aoû 2005 - 20:44, édité 1 fois |
|  | | Hunter Pirez 
Maverick Hunter rang C

 Age: 21
Messages: 1812
Localisation: La lueur de mon passé
M-Chips: 0
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Lun 25 Juil 2005 - 22:17 | |
| oui et ?... Si on sais coment utiliser RPG MAker XP? |
|  | | Sephi 
Ultimate Rockposter

 JE SUIS UNE FOUGEEEEEEEEEEEEEERE !!!!!! Age: 24
Messages: 11479
Localisation: S'toi la localisation
M-Chips: 12114 GQM: Amateur
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mar 26 Juil 2005 - 12:52 | |
| _________________ A GENOUX ! Montre moi ton visage implorant mon pardon !  |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mar 26 Juil 2005 - 13:45 | |
| pour vole les sprite dans visual boy advance
1)ctrl 1 2 3 4 5----------> enlever le decor 2)ctrl p----------->pause 3)impr écran--------->pour capturer l'image 4) ouvret paint 5)ctrl v et la il ne vous reste que de sauvegarder l'image (le carre blanc, il faut clicker sur gestionnaire des ressources pour enlever le blanc) |
|  | | Sephi 
Ultimate Rockposter

 JE SUIS UNE FOUGEEEEEEEEEEEEEERE !!!!!! Age: 24
Messages: 11479
Localisation: S'toi la localisation
M-Chips: 12114 GQM: Amateur
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mar 26 Juil 2005 - 19:06 | |
| Et ainsi tu peut piquer des decors pour les inserer dans un jeu ? _________________ A GENOUX ! Montre moi ton visage implorant mon pardon !  |
|  | | Legaulas 
Maverick Hunter rang A 
 Messages: 87
M-Chips: 13
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mar 26 Juil 2005 - 19:54 | |
| tu as parfaitement compri  |
|  | | Sephi 
Ultimate Rockposter

 JE SUIS UNE FOUGEEEEEEEEEEEEEERE !!!!!! Age: 24
Messages: 11479
Localisation: S'toi la localisation
M-Chips: 12114 GQM: Amateur
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mer 27 Juil 2005 - 12:59 | |
| Il me semble que c'est aussi faisable sur l'emulateur de super nes non ? _________________ A GENOUX ! Montre moi ton visage implorant mon pardon !  |
|  | | zitz 
Maverick Hunter rang GA 
 Messages: 136
M-Chips: 3
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mer 27 Juil 2005 - 13:49 | |
| oui c'est faiissable avec toutes les anciennes console mais tes pas obliger de les faire, par toi meme il existe des site ou tu peu les telecharger ces sprites |
|  | | Sephi 
Ultimate Rockposter

 JE SUIS UNE FOUGEEEEEEEEEEEEEERE !!!!!! Age: 24
Messages: 11479
Localisation: S'toi la localisation
M-Chips: 12114 GQM: Amateur
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mer 27 Juil 2005 - 19:20 | |
| Tu as une adresse ? _________________ A GENOUX ! Montre moi ton visage implorant mon pardon !  |
|  | | jinzo59 
Maverick Hunter rang B 
 Messages: 68
M-Chips: 0
 | Sujet: Re: Trucs et astuces pour RPG Maker XP Mer 27 Juil 2005 - 19:29 | |
| auriez vous dans l'idée de créer un megaman avec rpg maker ?  |
|  | | | | Trucs et astuces pour RPG Maker XP | |
|
Sujets similaires |  |
|
Sujets similaires |  |
| |
| Page 1 sur 3 | Aller à la page : 1, 2, 3  |
| | Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |