Alors voila, je voudrai un script permettant de faire un Cristarium (FF13) (Pour se qui ne savent pas de quoi il s'agit c'est un menu ou il y a des competences a debloquer [img][/img]
Il y a des points speciaux a crée (que l'on obtiendras sur des monstres) apellé comme on le souhaite qui permeterons d'aller a un des ronds (ex: 500points pour aller a un rond rouge),des rond qui feront office de murs (ex: si le joueur n'est pas arrivée a une certaine zone la variable a = 0 donc imposssible mais si la variable = 1 alors on peut passer) tout serait modulable et chaque personnage doit avoir le sien.
Voici un exemple de menu
Menu(perso,equipement,magie et tout + Cristarium) On vas dans cristarium est la on voit : Des images des perso On vas sur l'un des perso et la on voit son cristarium: Avec a gauche le cristarium et a droites : (de haut en bas) Le nom du personage,Son niveau,Ses HP,Ses MP;Ses Point de cristariums,sa force ect...
Je sais sa fait beaucoup mais c'est sa le cristarium merci a tous j'espere que vous me le ferez se serait sympa ^^.
Au fait mon projet n'est pas encore totalement concus donc je peut pas vous dire quest ce que c'est ^^ aller a plus...
n3m0
Citadin Lv.7
Age : 29 Inscrit le : 09/11/2009 Messages : 204
Sujet: Re: Cristarium Mer 30 Juin 2010 - 20:29
Euh... Les script c'est pas mon fort mais ça doit être possible en évènement Communs... Si t'est intéressé, je peut essayer de te faire quelque-chose.
Tiroflan
Illusionniste Lv.12
Age : 34 Inscrit le : 14/02/2010 Messages : 796
Sujet: Re: Cristarium Mer 30 Juin 2010 - 20:36
Je pense que le tutoriel expliqué ici peut constituer une bonne base pour ton système (un espèce de sphérier si j'ai bien compris)
Bon courage :p
n3m0
Citadin Lv.7
Age : 29 Inscrit le : 09/11/2009 Messages : 204
Sujet: Re: Cristarium Mer 30 Juin 2010 - 20:38
Oah, j'avait pas vu Donc je me retire, je suis sur que ça lui convient ! Merci Tiroflan
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 8:31
j'ai le script qui te faut attend je le cherche.
EDIT: TADA! http://www.mediafire.com/?ywzriwyuy5c
Dernière édition par Mitsarugi le Ven 2 Juil 2010 - 9:19, édité 2 fois
WoWquest
Poulet trizo Lv.3
Inscrit le : 16/11/2009 Messages : 30
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 9:18
Mitsarugi a écrit:
j'ai le script qui te faut attend je le cherche.
EDIT: TADA! http://www.mediafire.com/?ywzriwyuy5c
Si c'est un telechargement peut tu le mettre ur un autre ebergeur MU de preference car la il y a rien sur ton lien
Euh sinon Oui c'est bien sa mais je voudrai en script car en event se serait très compliquer vu le nombre de choses (meme en script mais en script on peut retoucher un peut ^^ mince j'ai fait un "^^" Yuko vas me tuer XD)
Zangther
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 9:48
Y'a bien une démo hein, suffit juste de cliquer sur le rond...
http://www.mediafire.com/?ywzriwyuy5c
N'importe quoi...
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 11:12
Zangther a écrit:
Y'a bien une démo hein, suffit juste de cliquer sur le rond...
http://www.mediafire.com/?ywzriwyuy5c
N'importe quoi...
de quoi tu parle quelle rond?
Zangther
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 11:52
Bah en fait il dit que dans ton lien y'a rien, c'est juste qu'il n'a pas cliqué et qu'il n'est pas arrivé à la démo.
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 11:54
ah, okay je le met sur mon compte MU.....
EDIT: voila http://www.megaupload.com/?d=NCYFFKW3
Dernière édition par Mitsarugi le Jeu 1 Juil 2010 - 11:58, édité 1 fois
Zangther
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 11:57
Nan mais le lien marche ne t'inquiete pas.
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 11:58
Zangther a écrit:
Nan mais le lien marche ne t'inquiete pas.
trop tard c'est fait en moins d'un minute ^^
WoWquest
Poulet trizo Lv.3
Inscrit le : 16/11/2009 Messages : 30
Sujet: Re: Cristarium Jeu 1 Juil 2010 - 13:12
Merci pour le lien Mu plus qu'as testé ^^
Operationnel mais existe t'il une traduction francaise??? car je comprend rien la
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 8:35
d.s.l je parle anglais, hollandais, français et allemand j'avais pas pensé je verrais ce que je peut faire ^^
WoWquest
Poulet trizo Lv.3
Inscrit le : 16/11/2009 Messages : 30
Sujet: Re: Cristarium Ven 2 Juil 2010 - 9:51
Ok mais si c'est toi qui a fait le script peut tu rajouter une fonction stp Celle de faire un barrage au quel si le perso n'a pas faire activer une variable ou interrupteur le cristarium ne peut pas augmenter
exemple [img][/img]
Ici le carré blanc est le point de départ et les points noirs bloques les accés au otre car un interrupteur n'est pas activé mais si l'interrupteur est activé alors les points noirs deviennent des carré blanc et on peut passé au niveau suvant et ainsi de suite
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 12:43
WoWquest a écrit:
Ok mais si c'est toi qui a fait le script peut tu rajouter une fonction stp Celle de faire un barrage au quel si le perso n'a pas faire activer une variable ou interrupteur le cristarium ne peut pas augmenter
exemple [img][/img]
Ici le carré blanc est le point de départ et les points noirs bloques les accés au otre car un interrupteur n'est pas activé mais si l'interrupteur est activé alors les points noirs deviennent des carré blanc et on peut passé au niveau suvant et ainsi de suite
non ce n'est pas moi qui l'as fait c'est Omega7 qui l'as fait ^^ je vais voir si'il y a un truc pour faire sa
WoWquest
Poulet trizo Lv.3
Inscrit le : 16/11/2009 Messages : 30
Sujet: Re: Cristarium Ven 2 Juil 2010 - 14:44
Ok sa serait sympa donc voila les 2 choses que je voudrait : Un traduction en francais et un systeme de blocage
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 14:52
WoWquest a écrit:
Ok sa serait sympa donc voila les 2 choses que je voudrait : Un traduction en francais et un systeme de blocage
traduction je peut le faire, blocage..... je vais voir.
Matsuo Kaito
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
Sujet: Re: Cristarium Ven 2 Juil 2010 - 15:15
Ce n'est pas pour marcher sur tes plate-bandes, Mitsa, mais je me débrouille en anglais et d'autant mieux en Français, donc j'ai commencé la traduc' :
Spoiler:
Code:
# ============================================================================= # OmegaX Skill & Stat Grid System # ============================================================================= # Author: Omegas7 # Traduction française : Matsuo Kaito # Version: 0.1. # Site: www.myrpgmaker.com || Blog: omegas7.wordpress.com # ============================================================================= # Ce script permettra au joueur d'augmenter ses statistiques et d'apprendre des nouvelles compétences # via une grille spéciale. Chaque personnage peut avoir "sa" grille. # L'objectif de cette grille est de partir du point de départ et d'atteindre # la compétence/statistique désirée sur la grille. Pour se faire, le joueur devra # dépenser des "Points de Grille" pour faire un pas dans une direction. # Vous obtenez des "Points de Grille" en gagnant de l'Exp par n'importe quel moyen. # ============================================================================= # Instructions : # Allez dans le script " Grid System Config "and travaillez avec les objets ci-dessous. # Ci-dessous, vous pouvez customiser les caractéristiques du système. # ============================================================================= # F.A.Q # Q. Comment appeller le Grid System ? # A. Utilisez un appel de script ( en event ) appelé : '$scene = Omega_Grid.new' # # Q. Pourquoi le Grid System n'apparait-il pas dans le menu ? # A. Ce serait trop fouilli. Utilisez le Yanfly's Menu Scene ReDux. # # Q. Je ne veux pas que le prix s'accroisse lorsqu'on va plus loin ! # A. Vérifiez que le Depth_Increase soit égale à 0 ci-dessous. # ============================================================================= # Notes ( originale ): # Sorry for the super messy script below, I was tired =/... # =============================================================================
module Omegas7 module Character_Grid # Le nom de l'image de la grille ( dans le dossier "System" ) Grid = 'Grid' # Le nom du background de la grille ( System ). Background = 'Grid_Background' # La "tuile de progression" ( System ). Progress_Square = 'Progress_Square' # Le nom du cursor ( System ). Cursor = 'Cursor' # La position de départ dans la grille ( mieux vaut ne pas la modifier ). Starting_Tile = [8,0] # Le nom de la grille Grid_Name = 'Skill & Stat Grid' # Le prix de base pour avancer d'une case Base_Price = 25 # Le prix va augmenter de ce chiffre lorsque l'on va plus bas dans la grille ( 0 = désactivé ) Depth_Increase = 8 end end
class Omega_Grid < Scene_Base include Omegas7::Character_Grid def initialize @none = false commands = [] @actors = [] if $game_party.members.size > 0 for i in 0...$game_party.members.size commands.push($game_party.members[i].name) @actors.push($game_party.members[i].id) end else @none = true end commands.push('Cancel') @help = Window_Base.new(0,0,544,50) @help.contents.font.size = 18 @help.contents.draw_text(0,0,530,20,Grid_Name.to_s,1) @window = Window_Command.new(220,commands) @window.y = 50 @window.contents.font.size = 16 @window.refresh end def update @window.update if Input.trigger?(Input::C) if @none || (@window.index == (@actors.size)) close else @help.dispose @window.dispose $scene = Omega_Char_Grid.new(@actors[@window.index]) end end end def close @help.dispose @window.dispose $scene = Scene_Map.new end end
class Omega_Char_Grid < Scene_Base include Omegas7::Character_Grid attr_accessor :cursor attr_accessor :hud attr_accessor :cursor_moved attr_accessor :grid def initialize(actor) @actor = $game_actors[actor] @grid = Character_Grid.new(actor) @cursor = Character_Grid_Cursor.new @cursor_moved = true @hud = Grid_HUD.new(actor) @price = 0 end def update @cursor.update @hud.update @grid.update if @price != @grid.price @price = @grid.price @hud.refresh_help(@price) end if Input.trigger?(Input::C) if @actor.grid_points[0] >= @price if @grid.can_advance?(@cursor.sprite.x/32,@cursor.sprite.y/32) @grid.add_progress(@cursor.sprite.x,@cursor.sprite.y) @actor.grid_points[0] -= @price @hud.refresh end end end if Input.trigger?(Input::B) @grid.finish @cursor.finish @hud.finish $scene = Scene_Map.new end end end
class Character_Grid include Omegas7::Character_Grid attr_accessor :id def initialize(id) @id = id @tiles = [] @progress = [] @objects = [] @global_y = 0 create_grid load_existing_data load_objects end def update if $scene.cursor_moved $scene.cursor_moved = false x = $scene.cursor.sprite.x + 4 y = $scene.cursor.sprite.y + 4 if object_here(x,y) != nil object = Objects[object_here(x,y)] if object[0] == 'stat' text = 'Increase ' + object[1].to_s + ' by ' + object[2].to_s elsif object[0] == 'skill' text = 'Learn ' + $data_skills[object[1]].name end $scene.hud.show_current(text) else $scene.hud.show_current(nil) end end end def refresh_movement cursor = $scene.cursor.sprite y = 0 if $scene.cursor.moved_to == 'down' && cursor.y >= 208 for i in 0...@objects.size if @objects[i][0].y > y y = @objects[i][0].y end end if y >= 416 for i in 0...@progress.size @progress[i].y -= 32 end for i in 0...@objects.size @objects[i][0].y -= 32 end @global_y -= 32 cursor.y -= 32 end end if $scene.cursor.moved_to == 'up' && cursor.y < 208 if @global_y < 0 for i in 0...@progress.size @progress[i].y += 32 end for i in 0...@objects.size @objects[i][0].y += 32 end @global_y += 32 cursor.y += 32 end end end def create_grid @background = Sprite_Base.new @background.bitmap = Cache.system(Background) @background.z = 50 @grid = Sprite_Base.new @grid.bitmap = Cache.system(Grid) @grid.z = 100 end def load_existing_data @loaded_data = nil @loaded_data = $game_actors[@id].grid_data if @loaded_data != nil for i in 0...@loaded_data.size @progress.push(Sprite_Base.new) @progress[@progress.size - 1].bitmap = Cache.system(Progress_Square) @progress[@progress.size - 1].z = 99 @progress[@progress.size - 1].x = @loaded_data[i][0] * 32 @progress[@progress.size - 1].y = @loaded_data[i][1] * 32 end end end def load_objects if Actors[@id] != nil for i in 0...Actors[@id].size @objects.push([Sprite_Base.new,Objects[Actors[@id][i][0]][3],Actors[@id][i][0]]) bitmap = Cache.system("Iconset") if Objects[Actors[@id][i][0]][0] == 'stat' rect = Rect.new(Objects[Actors[@id][i][0]][3] % 16 * 24, Objects[Actors[@id][i][0]][3] / 16 * 24, 24, 24) elsif Objects[Actors[@id][i][0]][0] == 'skill' rect = Rect.new(Objects[Actors[@id][i][0]][2] % 16 * 24, Objects[Actors[@id][i][0]][2] / 16 * 24, 24, 24) end @objects[@objects.size - 1][0].z = 100 @objects[@objects.size - 1][0].x = Actors[@id][i][1] * 32 + 4 @objects[@objects.size - 1][0].y = Actors[@id][i][2] * 32 + 4 @objects[@objects.size - 1][0].bitmap = Bitmap.new(32,32) @objects[@objects.size - 1][0].bitmap.blt(0, 0, bitmap, rect) end end end def add_progress(x,y) @progress.push(Sprite_Base.new) @progress[@progress.size - 1].bitmap = Cache.system(Progress_Square) @progress[@progress.size - 1].z = 99 @progress[@progress.size - 1].x = x @progress[@progress.size - 1].y = y x = @progress[@progress.size - 1].x + 4 y = @progress[@progress.size - 1].y + 4 if object_here(x,y) != nil Grid_Effect_Executer.execute(object_here(x,y),@id) end end def object_here(x,y) for i in 0...@objects.size if @objects[i][0].x == x && @objects[i][0].y == y return @objects[i][2] end end return nil end def can_advance?(x,y) if space_advanced?(x,y - 1) || space_advanced?(x,y + 1) || space_advanced?(x - 1,y) || space_advanced?(x + 1,y) if !(space_advanced?(x,y)) return true end end return false end def space_advanced?(x,y) for i in 0...@progress.size if @progress[i].x/32 == x && @progress[i].y/32 == y return true end end return false end def price @price = Float.induced_from(Base_Price) if Depth_Increase > 0 @price += (Depth_Increase * ($scene.cursor.sprite.y/32)) end return @price.to_i end def finish @background.dispose @grid.dispose $game_actors[@id].grid_data.clear for i in 0...@progress.size @progress[i].y += (@global_y).abs $game_actors[@id].grid_data.push([@progress[i].x/32,@progress[i].y/32]) @progress[i].dispose end for i in 0...@objects.size @objects[i][0].dispose end end end
class Character_Grid_Cursor include Omegas7::Character_Grid attr_accessor :sprite attr_accessor :moved_to def initialize @sprite = Sprite_Base.new @sprite.bitmap = Cache.system(Cursor) @sprite.x = Starting_Tile[0] * 32 @sprite.y = Starting_Tile[1] * 32 @sprite.z = 101 @moved_to = 'nowhere' end def update if Input.repeat?(Input::UP) && @sprite.y >= 32 Sound.play_cursor @sprite.y -= 32 @moved_to = 'up' $scene.cursor_moved = true $scene.grid.refresh_movement end if Input.repeat?(Input::DOWN) && @sprite.y <= (416 - 64) Sound.play_cursor @sprite.y += 32 @moved_to = 'down' $scene.cursor_moved = true $scene.grid.refresh_movement end if Input.repeat?(Input::RIGHT) && @sprite.x <= (544 - 64) Sound.play_cursor @sprite.x += 32 $scene.cursor_moved = true end if Input.repeat?(Input::LEFT) && @sprite.x >= 32 Sound.play_cursor @sprite.x -= 32 $scene.cursor_moved = true end end def finish @sprite.dispose end end
class Game_Actor < Game_Battler include Omegas7::Character_Grid alias omega_character_grid_initialize initialize alias omega_character_grid_change_exp change_exp attr_accessor :grid_data attr_accessor :grid_points def initialize(actor_id) omega_character_grid_initialize(actor_id) @grid_data = [ Starting_Tile ] @grid_points = [0,0] end def change_exp(exp, show) @grid_points[0] += (@exp - exp).abs @grid_points[1] += (@exp - exp).abs omega_character_grid_change_exp(exp, show) end end
class Grid_Effect_Executer include Omegas7::Character_Grid def self.execute(object,actor) actor = $game_actors[actor] if Objects[object][0] == 'stat' value = Objects[object][2] elsif Objects[object][0] == 'skill' value = Objects[object][1] end if Objects[object][0] == 'stat' case Objects[object][1] when 'maxhp' actor.maxhp += value when 'maxmp' actor.maxmp += value when 'attack' actor.atk += value when 'defense' actor.def += value when 'spirit' actor.spi += value when 'agility' actor.agi += value end elsif Objects[object][0] == 'skill' actor.learn_skill(value) end end end
class Grid_HUD include Omegas7::Character_Grid def initialize(actor) @actor = actor @name = Window_Base.new(0,0,160,43) @points = Window_Base.new(544 - 180,0,180,43) @help = Window_Base.new(0,416 - 45,544,45) @current = Window_Base.new(0,43,544,43) @current.opacity = @current.contents_opacity = 0 @name.z = @points.z = @help.z = @current.z = 200 @name.contents.font.size = @points.contents.font.size = @help.contents.font.size = @current.contents.font.size = 14 refresh end def refresh @name.contents.clear @points.contents.clear @name.contents.draw_text(0,-6,150,20,$game_actors[@actor].name) @points.contents.draw_text(0,-6,170,20, $game_actors[@actor].grid_points[0].to_s + ' / ' + $game_actors[@actor].grid_points[1].to_s) end def refresh_help(value) @help.contents.clear @help.contents.draw_text(0,0,520,14,'Advance here for ' + value.to_s + ' points.') end def show_current(text = nil) if text != nil @current.opacity = @current.contents_opacity = 255 @current.contents.clear @current.contents.draw_text(0,-3,520,14,text.to_s) else @current.opacity = @current.contents_opacity = 0 end end def finish @name.dispose @points.dispose @help.dispose @current.dispose end def update update_visible_window(@name) update_visible_window(@points) update_visible_window(@help) update_help end def update_visible_window(window) cursor = $scene.cursor.sprite if ((cursor.x <= (window.x + window.width)) && ((cursor.x + cursor.width) >= window.x)) && ((cursor.y <= (window.y + window.height)) && ((cursor.y + cursor.height) >= window.y)) window.opacity = 160 if window.opacity >= 255 window.contents_opacity = 160 if window.contents_opacity >= 255 else window.opacity = 255 if window.opacity < 255 window.contents_opacity = 255 if window.contents_opacity < 255 end end def update_help cursor = $scene.cursor.sprite if @help.opacity <= 254 && @help.y == 416 - 45 @help.y = 86 @help.opacity = @help.contents_opacity = 254 elsif @help.opacity == 255 && @help.y == 86 && cursor.y < (416 - 90) @help.y = 416 - 45 end end end
Je veux bien également traduire le second script et les events de la démo avant de tout recompiler > ré-héberger, pas de problème ( je m'ennuie sec xD )
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 15:37
Matsuo Kaito a écrit:
Ce n'est pas pour marcher sur tes plate-bandes, Mitsa, mais je me débrouille en anglais et d'autant mieux en Français, donc j'ai commencé la traduc' :
Spoiler:
Code:
# ============================================================================= # OmegaX Skill & Stat Grid System # ============================================================================= # Author: Omegas7 # Traduction française : Matsuo Kaito # Version: 0.1. # Site: www.myrpgmaker.com || Blog: omegas7.wordpress.com # ============================================================================= # Ce script permettra au joueur d'augmenter ses statistiques et d'apprendre des nouvelles compétences # via une grille spéciale. Chaque personnage peut avoir "sa" grille. # L'objectif de cette grille est de partir du point de départ et d'atteindre # la compétence/statistique désirée sur la grille. Pour se faire, le joueur devra # dépenser des "Points de Grille" pour faire un pas dans une direction. # Vous obtenez des "Points de Grille" en gagnant de l'Exp par n'importe quel moyen. # ============================================================================= # Instructions : # Allez dans le script " Grid System Config "and travaillez avec les objets ci-dessous. # Ci-dessous, vous pouvez customiser les caractéristiques du système. # ============================================================================= # F.A.Q # Q. Comment appeller le Grid System ? # A. Utilisez un appel de script ( en event ) appelé : '$scene = Omega_Grid.new' # # Q. Pourquoi le Grid System n'apparait-il pas dans le menu ? # A. Ce serait trop fouilli. Utilisez le Yanfly's Menu Scene ReDux. # # Q. Je ne veux pas que le prix s'accroisse lorsqu'on va plus loin ! # A. Vérifiez que le Depth_Increase soit égale à 0 ci-dessous. # ============================================================================= # Notes ( originale ): # Sorry for the super messy script below, I was tired =/... # =============================================================================
module Omegas7 module Character_Grid # Le nom de l'image de la grille ( dans le dossier "System" ) Grid = 'Grid' # Le nom du background de la grille ( System ). Background = 'Grid_Background' # La "tuile de progression" ( System ). Progress_Square = 'Progress_Square' # Le nom du cursor ( System ). Cursor = 'Cursor' # La position de départ dans la grille ( mieux vaut ne pas la modifier ). Starting_Tile = [8,0] # Le nom de la grille Grid_Name = 'Skill & Stat Grid' # Le prix de base pour avancer d'une case Base_Price = 25 # Le prix va augmenter de ce chiffre lorsque l'on va plus bas dans la grille ( 0 = désactivé ) Depth_Increase = 8 end end
class Omega_Grid < Scene_Base include Omegas7::Character_Grid def initialize @none = false commands = [] @actors = [] if $game_party.members.size > 0 for i in 0...$game_party.members.size commands.push($game_party.members[i].name) @actors.push($game_party.members[i].id) end else @none = true end commands.push('Cancel') @help = Window_Base.new(0,0,544,50) @help.contents.font.size = 18 @help.contents.draw_text(0,0,530,20,Grid_Name.to_s,1) @window = Window_Command.new(220,commands) @window.y = 50 @window.contents.font.size = 16 @window.refresh end def update @window.update if Input.trigger?(Input::C) if @none || (@window.index == (@actors.size)) close else @help.dispose @window.dispose $scene = Omega_Char_Grid.new(@actors[@window.index]) end end end def close @help.dispose @window.dispose $scene = Scene_Map.new end end
class Omega_Char_Grid < Scene_Base include Omegas7::Character_Grid attr_accessor :cursor attr_accessor :hud attr_accessor :cursor_moved attr_accessor :grid def initialize(actor) @actor = $game_actors[actor] @grid = Character_Grid.new(actor) @cursor = Character_Grid_Cursor.new @cursor_moved = true @hud = Grid_HUD.new(actor) @price = 0 end def update @cursor.update @hud.update @grid.update if @price != @grid.price @price = @grid.price @hud.refresh_help(@price) end if Input.trigger?(Input::C) if @actor.grid_points[0] >= @price if @grid.can_advance?(@cursor.sprite.x/32,@cursor.sprite.y/32) @grid.add_progress(@cursor.sprite.x,@cursor.sprite.y) @actor.grid_points[0] -= @price @hud.refresh end end end if Input.trigger?(Input::B) @grid.finish @cursor.finish @hud.finish $scene = Scene_Map.new end end end
class Character_Grid include Omegas7::Character_Grid attr_accessor :id def initialize(id) @id = id @tiles = [] @progress = [] @objects = [] @global_y = 0 create_grid load_existing_data load_objects end def update if $scene.cursor_moved $scene.cursor_moved = false x = $scene.cursor.sprite.x + 4 y = $scene.cursor.sprite.y + 4 if object_here(x,y) != nil object = Objects[object_here(x,y)] if object[0] == 'stat' text = 'Increase ' + object[1].to_s + ' by ' + object[2].to_s elsif object[0] == 'skill' text = 'Learn ' + $data_skills[object[1]].name end $scene.hud.show_current(text) else $scene.hud.show_current(nil) end end end def refresh_movement cursor = $scene.cursor.sprite y = 0 if $scene.cursor.moved_to == 'down' && cursor.y >= 208 for i in 0...@objects.size if @objects[i][0].y > y y = @objects[i][0].y end end if y >= 416 for i in 0...@progress.size @progress[i].y -= 32 end for i in 0...@objects.size @objects[i][0].y -= 32 end @global_y -= 32 cursor.y -= 32 end end if $scene.cursor.moved_to == 'up' && cursor.y < 208 if @global_y < 0 for i in 0...@progress.size @progress[i].y += 32 end for i in 0...@objects.size @objects[i][0].y += 32 end @global_y += 32 cursor.y += 32 end end end def create_grid @background = Sprite_Base.new @background.bitmap = Cache.system(Background) @background.z = 50 @grid = Sprite_Base.new @grid.bitmap = Cache.system(Grid) @grid.z = 100 end def load_existing_data @loaded_data = nil @loaded_data = $game_actors[@id].grid_data if @loaded_data != nil for i in 0...@loaded_data.size @progress.push(Sprite_Base.new) @progress[@progress.size - 1].bitmap = Cache.system(Progress_Square) @progress[@progress.size - 1].z = 99 @progress[@progress.size - 1].x = @loaded_data[i][0] * 32 @progress[@progress.size - 1].y = @loaded_data[i][1] * 32 end end end def load_objects if Actors[@id] != nil for i in 0...Actors[@id].size @objects.push([Sprite_Base.new,Objects[Actors[@id][i][0]][3],Actors[@id][i][0]]) bitmap = Cache.system("Iconset") if Objects[Actors[@id][i][0]][0] == 'stat' rect = Rect.new(Objects[Actors[@id][i][0]][3] % 16 * 24, Objects[Actors[@id][i][0]][3] / 16 * 24, 24, 24) elsif Objects[Actors[@id][i][0]][0] == 'skill' rect = Rect.new(Objects[Actors[@id][i][0]][2] % 16 * 24, Objects[Actors[@id][i][0]][2] / 16 * 24, 24, 24) end @objects[@objects.size - 1][0].z = 100 @objects[@objects.size - 1][0].x = Actors[@id][i][1] * 32 + 4 @objects[@objects.size - 1][0].y = Actors[@id][i][2] * 32 + 4 @objects[@objects.size - 1][0].bitmap = Bitmap.new(32,32) @objects[@objects.size - 1][0].bitmap.blt(0, 0, bitmap, rect) end end end def add_progress(x,y) @progress.push(Sprite_Base.new) @progress[@progress.size - 1].bitmap = Cache.system(Progress_Square) @progress[@progress.size - 1].z = 99 @progress[@progress.size - 1].x = x @progress[@progress.size - 1].y = y x = @progress[@progress.size - 1].x + 4 y = @progress[@progress.size - 1].y + 4 if object_here(x,y) != nil Grid_Effect_Executer.execute(object_here(x,y),@id) end end def object_here(x,y) for i in 0...@objects.size if @objects[i][0].x == x && @objects[i][0].y == y return @objects[i][2] end end return nil end def can_advance?(x,y) if space_advanced?(x,y - 1) || space_advanced?(x,y + 1) || space_advanced?(x - 1,y) || space_advanced?(x + 1,y) if !(space_advanced?(x,y)) return true end end return false end def space_advanced?(x,y) for i in 0...@progress.size if @progress[i].x/32 == x && @progress[i].y/32 == y return true end end return false end def price @price = Float.induced_from(Base_Price) if Depth_Increase > 0 @price += (Depth_Increase * ($scene.cursor.sprite.y/32)) end return @price.to_i end def finish @background.dispose @grid.dispose $game_actors[@id].grid_data.clear for i in 0...@progress.size @progress[i].y += (@global_y).abs $game_actors[@id].grid_data.push([@progress[i].x/32,@progress[i].y/32]) @progress[i].dispose end for i in 0...@objects.size @objects[i][0].dispose end end end
class Character_Grid_Cursor include Omegas7::Character_Grid attr_accessor :sprite attr_accessor :moved_to def initialize @sprite = Sprite_Base.new @sprite.bitmap = Cache.system(Cursor) @sprite.x = Starting_Tile[0] * 32 @sprite.y = Starting_Tile[1] * 32 @sprite.z = 101 @moved_to = 'nowhere' end def update if Input.repeat?(Input::UP) && @sprite.y >= 32 Sound.play_cursor @sprite.y -= 32 @moved_to = 'up' $scene.cursor_moved = true $scene.grid.refresh_movement end if Input.repeat?(Input::DOWN) && @sprite.y <= (416 - 64) Sound.play_cursor @sprite.y += 32 @moved_to = 'down' $scene.cursor_moved = true $scene.grid.refresh_movement end if Input.repeat?(Input::RIGHT) && @sprite.x <= (544 - 64) Sound.play_cursor @sprite.x += 32 $scene.cursor_moved = true end if Input.repeat?(Input::LEFT) && @sprite.x >= 32 Sound.play_cursor @sprite.x -= 32 $scene.cursor_moved = true end end def finish @sprite.dispose end end
class Game_Actor < Game_Battler include Omegas7::Character_Grid alias omega_character_grid_initialize initialize alias omega_character_grid_change_exp change_exp attr_accessor :grid_data attr_accessor :grid_points def initialize(actor_id) omega_character_grid_initialize(actor_id) @grid_data = [ Starting_Tile ] @grid_points = [0,0] end def change_exp(exp, show) @grid_points[0] += (@exp - exp).abs @grid_points[1] += (@exp - exp).abs omega_character_grid_change_exp(exp, show) end end
class Grid_Effect_Executer include Omegas7::Character_Grid def self.execute(object,actor) actor = $game_actors[actor] if Objects[object][0] == 'stat' value = Objects[object][2] elsif Objects[object][0] == 'skill' value = Objects[object][1] end if Objects[object][0] == 'stat' case Objects[object][1] when 'maxhp' actor.maxhp += value when 'maxmp' actor.maxmp += value when 'attack' actor.atk += value when 'defense' actor.def += value when 'spirit' actor.spi += value when 'agility' actor.agi += value end elsif Objects[object][0] == 'skill' actor.learn_skill(value) end end end
class Grid_HUD include Omegas7::Character_Grid def initialize(actor) @actor = actor @name = Window_Base.new(0,0,160,43) @points = Window_Base.new(544 - 180,0,180,43) @help = Window_Base.new(0,416 - 45,544,45) @current = Window_Base.new(0,43,544,43) @current.opacity = @current.contents_opacity = 0 @name.z = @points.z = @help.z = @current.z = 200 @name.contents.font.size = @points.contents.font.size = @help.contents.font.size = @current.contents.font.size = 14 refresh end def refresh @name.contents.clear @points.contents.clear @name.contents.draw_text(0,-6,150,20,$game_actors[@actor].name) @points.contents.draw_text(0,-6,170,20, $game_actors[@actor].grid_points[0].to_s + ' / ' + $game_actors[@actor].grid_points[1].to_s) end def refresh_help(value) @help.contents.clear @help.contents.draw_text(0,0,520,14,'Advance here for ' + value.to_s + ' points.') end def show_current(text = nil) if text != nil @current.opacity = @current.contents_opacity = 255 @current.contents.clear @current.contents.draw_text(0,-3,520,14,text.to_s) else @current.opacity = @current.contents_opacity = 0 end end def finish @name.dispose @points.dispose @help.dispose @current.dispose end def update update_visible_window(@name) update_visible_window(@points) update_visible_window(@help) update_help end def update_visible_window(window) cursor = $scene.cursor.sprite if ((cursor.x <= (window.x + window.width)) && ((cursor.x + cursor.width) >= window.x)) && ((cursor.y <= (window.y + window.height)) && ((cursor.y + cursor.height) >= window.y)) window.opacity = 160 if window.opacity >= 255 window.contents_opacity = 160 if window.contents_opacity >= 255 else window.opacity = 255 if window.opacity < 255 window.contents_opacity = 255 if window.contents_opacity < 255 end end def update_help cursor = $scene.cursor.sprite if @help.opacity <= 254 && @help.y == 416 - 45 @help.y = 86 @help.opacity = @help.contents_opacity = 254 elsif @help.opacity == 255 && @help.y == 86 && cursor.y < (416 - 90) @help.y = 416 - 45 end end end
Je veux bien également traduire le second script et les events de la démo avant de tout recompiler > ré-héberger, pas de problème ( je m'ennuie sec xD )
cool merci, j'ai fait le configuration ^^ je vais finir le demo maintenant stp laisse moi faire je m'entrain en Francais ^^
Spoiler:
Code:
# ================================================= ============================ # Omega configuration de grille de Status/compétences de caractères # ================================================= ============================ # Ceci est le script de configuration pour OmegaX de caractères du système de grille. # Les instructions semble assez grand, et je sais que personne ne les lit, et se # Ne sera pas ma faute si vous avez un échec épique. # ================================================= ============================ # Instructions : # Une grille a des objets qui peuvent débloquer des compétences et des mises à niveau stat. # Ces objets peuvent être placés n'importe où sur la grille, et nécessitent d'être atteint # Pour être déverrouillé avec succès. # Il ya deux types d'objets: Status et compétence. # Un objet stat augmente une stat par un montant X, et le modèle est # ######doit etre en anglais###### # Objects [ID] = ['stat', 'name', la valeur, Icon] # ID est juste l'endroit de cet objet dans le système. Assurez-vous qu'il est # Unique et consécutifs. A partir de 0. # 'Stat' est ce qui définit cet objet sera un objet de type stat. # "Nom" est le nom stat, qui peut être 'maxhp' 'maxmp' 'attack' 'defense' # 'spirit' ou 'agility' # La valeur est le montant qui doit être augmenté. # Icon est l'indice icône pour représenter cet objet sur la grille. # # Ensuite, sont les objets de type de compétences, qui enseignent un savoir-faire. # Le modèle est: # ######doit etre en anglais###### # Objects [ID] = ['skill', la valeur, Icon] # ID, à nouveau, est un numéro unique utilisé uniquement par le script. # 'Compétence' est ce qui définit cet objet d'être un objet de type de compétences. # La valeur est l'habileté d'identification dans la base de données. # Icon est l'indice icône pour représenter cet objet sur la grille. # ================================================= ============================ # Une fois que vous avez créé votre objets désirés, il est temps de les placer sur le # grilles de vos acteurs. # Le modèle est la suivante: # # Acteurs [ID] = [[Obj_ID, X, Y], [Obj_ID, X, Y], [Obj_ID, X, Y] ...] # ID est l'ID acteur trouve dans la base de données. 1 étant Ralph, et ainsi de suite ... # L'intérieur des premier crochets [], vous allez placer vos objets ici, par l'insertion, # [Obj_ID, X, Y] # Obj_ID étant le numéro d'identification de l'objet désiré. # X étant la position de tile X de l'objet sur la grille. # Y étant la position de tile Y de l'objet sur la grille. Peut être> 13. # # N'oubliez pas de mettre un *des virgules entre les éléments*. # Plus d'aide: Regardez la démo pour un exemple. # ================================================= ============================
# ID Acteur 1. donc Ralph. Actors[1] = [ [0,3,4] , # <- MaxPV + 50 sur X3, Y4 [1,6,4] , # <- MaxPM + 30 sur X6, Y4 [2,5,8] , # <- Attaque + 15 sur X5, Y8 [2,8,9] , # N'oubliez pas de mettre un *des virgules entre les éléments*. [7,14,9] , # <- apprend feu II sur X14, Y9 [8,14,14] , [9,14,22] , [10,9,5] , # <- apprend glace sur X9, Y5 [11,7,9] , # et ainsi de suite ... [12,9,14] , [13,12,20] # pas de virgules apres dernier object ]
# ID Acteur 2. donc Ulrika. Actors[2] = [ [2,5,4] , # <- Attaque + 15 sur X5, Y4 [3,6,4] , # <- Défense + 12 sur X6, Y4 [2,6,8] , # <- Attaque + 15 sur X6, Y8 [4,11,7] , # N'oubliez pas de mettre un *des virgules entre les éléments*. [10,9,5] , # <- apprend glace sur X9, Y5 [11,10,9] , # et ainsi de suite ... [12,11,14] , [13,9,21] # pas de virgules apres dernier object ]
end end
EDIT: fini et toi?
voila! http://www.mediafire.com/?mm4dxyy2oym
Dernière édition par Mitsarugi le Ven 2 Juil 2010 - 15:57, édité 2 fois
Matsuo Kaito
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
Sujet: Re: Cristarium Ven 2 Juil 2010 - 15:48
J'ai vu ton message après avoir fini ma trad', désolé ._. Mais rien ne t'empêche de partager également la tienne, vu que je suis sans doute meilleur en français et toi en anglais, les deux se combineront peut-être.
Donc voici la démo de l'Omega Grid VFr façon Mat's : http://www.mediafire.com/?itzntkgnqy2
Dernière édition par Matsuo Kaito le Ven 2 Juil 2010 - 16:07, édité 1 fois
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 15:59
Matsuo Kaito a écrit:
J'ai vu ton message après avoir fini ma trad', désolé ._. Mais rien ne t'empêche de partager également la tienne, vu que je suis sans doute meilleur en français et toi en anglais, les deux se combineront peut-être.
Donc voici la démo de l'Omega Grid VFr façon Mat's : http://www.mediafire.com/?2jwnmwnwnym
je test le tient ^^
Matsuo Kaito
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
Sujet: Re: Cristarium Ven 2 Juil 2010 - 16:09
Voici la nouvelle version : http://www.mediafire.com/?itzntkgnqy2
J'ai corrigé les petites imperfections et surtout, j'ai traduis la partie que j'avais oubliée xD J'ai donc changé "Increase "nom de la stat en anglais" by X" par "Augmenter votre stat : "nom de la stat ( traduite )" de X", etc x)
Mitsarugi
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
Sujet: Re: Cristarium Ven 2 Juil 2010 - 16:11
Matsuo Kaito a écrit:
Voici la nouvelle version : http://www.mediafire.com/?itzntkgnqy2
J'ai corrigé les petites imperfections et surtout, j'ai traduis la partie que j'avais oubliée xD J'ai donc changé "Increase "nom de la stat en anglais" by X" par "Augmenter votre stat : "nom de la stat ( traduite )" de X", etc x)
je ris fortement je suis entrain de le faire Trop tard, comme dirait l'autre
je vais faire un add-on que tu sait pas faire XD M'en fiche, ma traduc' elle est trop belle d'abord 8D
^^ te la pet pas parce que t'est mieux en francais que moi , moi je suis mieux en anglais, hollandais, et peut-etre meme en allemand Ca t'en sais juste rien, pas la peine de le prendre comme ça xD
sa m'amuse la course de traduction , on defrait en faire plus souvent t'en dit quoi d'un script Jap? ^^
EDIT: version add-on http://www.mediafire.com/?yqmeilcumrm
je peut meme te mettre l'option de activer un interrupteur avant que sa s'affiche ^^
WoWquest
Poulet trizo Lv.3
Inscrit le : 16/11/2009 Messages : 30
Sujet: Re: Cristarium Ven 2 Juil 2010 - 17:47
Avec tous vos messages je sais pas trop quoi faire alors pourriez vous me dire le quel telecharger et si vous avez reussi a mettre un systeme de bloquage? merci