kill00man > Grand artiste
Nombre de messages : 285 Age : 43 Localisation : Derrière-toi, prêt a t'assassiner ! Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p Quels sont vos projets ? : The Strom Of Chrono Date d'inscription : 03/05/2007
Fiche Créateur Points de Créativité: (0/50) Commentaires:
| Sujet: [Ruby] Les bases du RGSS Mer 30 Mai - 12:27 | |
| Voilà, ce sont les bases du ruby, tout repose sur ça, ceci n'est pas a proprement parler d'un cours mais d'une initialisation au RGSS (Ruby pour RMxp), il vous est donc possible de poser des questions ici. Je vous conseil aussi d'imprimer cette page et de l'apprendre car sans elle, le ruby vous sera totalement inaccessible au départ. Vous avez tous ce qu'il vous faut comme base ci-dessous, votre prof, M@th... ################# Apprendre à programmer Sous RPG maker XP ################# PAR SUNMAT ET OJIRO Tous les scripts chargés d’afficher une fenêtre fonctionnent sur le même principe, généralement il s’agit des scripts Window_X ou X est le sujet du script, ce qu’il est chargé d’afficher. Ils possèdent tous dans leur fonction principale (def main) la fonction super qui gère les données de position sur l’écran de cette façon : - Code:
-
super(x, y, largeur, hauteur) x et y sont les coordonnées du coin haut - gauche du rectangle qui contient la fenêtre. largeur correspond à la largeur de la fenêtre. hauteur correspond à la hauteur de la fenêtre. Par exemple : - Code:
-
super(10, 20, 120,200) Cette fonction créé une fenêtre dans un rectangle situé à 10 pixels du bord gauche, à 20 pixels du bord haut, et de dimensions 120pixels/200pixels. ATTENTION en informatique, ce n’est pas comme en maths ; le coin haut – gauche d’une fenêtre a pour coordonnées 0,0 alors qu’en maths, les graphiques partent du coin bas – gauche. Voilà, il vous est donc à présent possible de modifier n’importe quelle fenêtre ! Remarque : pour ceux qui se lancent dans la création pure de script, sachez que la fonction super est définie dans Window_Base et dans Window_Selectable, donc il faut inclure l’un de ces scriptes de cette façon lors de la déclaration de votre script : - Code:
-
class Window_X<Window_Base En fonction de ce que vous voulez afficher, on n’utilisera pas le même script et on préférera Window_Base plutôt que Window_Selectable, ou inversement. Mais n’entrons pas dans des détails que je ne saurai pas même expliquer ! Script sur les héros : Voilà maintenant l’ensemble des choses à savoir pour qu’un script puisse gérer les données des personnages. D’abord, sachez qu’un héro est défini par cette syntaxe : - Code:
-
$data_actors[héro_ID] Cette syntaxe définie un héro dans l’ordre ou vous l’avez créé, c'est-à-dire que l’ID est celui qui est à gauche du héro dans votre base de donnée. - Code:
-
$game_actors[héro_ID] Cette syntaxe définie un héro de votre équipe actuelle. Si votre équipe change, la seconde fonction ne fera plus référence au même héro qu’avant le changement. Récapitulons : si vous voulez chercher les données d’un héro précis quelque soit le moment du jeu, qu’il soit dans l’équipe ou non, vous utilisez la première syntaxe. Si vous voulez afficher, par exemple, le nom du leader actuel, vous utiliserez la seconde syntaxe. Mais ces syntaxes ne vous serviront à rien si elles sont utilisées seules. Il faut y ajouter un suffixe qui déterminera de ce que vous voulez savoir ou modifier sur le héro défini. Les chaînes de caractères sont entre guillemets. Replacez héro_ID par le nombre que vous voulez, correspondant au héro que vous voulez. - Code:
-
$data_actors[héro_ID].name = « nom du héro » $game_actors[héro_ID].name = « nom du héro » - Code:
-
$data_actors[héro_ID].character_name = « nom du charset du héro » $game_actors[héro_ID].character_name = « nom du charset du héro » - Code:
-
$data_actors[héro_ID].character_hue = valeur de la couleur du charset $game_actors[héro_ID].character_hue = valeur de la couleur du charset - Code:
-
$data_actors[héro_ID].battler_name = « nom du fichier battler » $game_actors[héro_ID]. battler_name = « nom du fichier battler » - Code:
-
$data_actors[héro_ID].battler_hue = valeur de la couleur du battler $game_actors[héro_ID]. battler_hue = valeur de la couleur du battler - Code:
-
$data_actors[héro_ID].class_id = ID de la classe du héro $game_actors[héro_ID].class_id = ID de la classe du héro - Code:
-
$data_classes[$data_actors[héro_ID].class_id].name = « nom de la classe du héro » $game_actors[héro_ID].class_name = « nom de la classe du héro » - Code:
-
$data_actors[héro_ID].weapon_id = ID de l’arme du héro $game_actors[héro_ID].weapon_id = ID de l’arme du héro $data_weapons[$data_actors[héro_ID].weapon_id].name = « nom de l’arme du héro » $data_weapons[$game_actors[héro_ID].weapon_id].name = « nom de l’arme du héro » - Code:
-
$data_actors[héro_ID].armor1_id = ID du bouclier du héro $game_actors[héro_ID].armor1_id = ID du bouclier du héro - Code:
-
$data_actors[héro_ID].armor2_id = ID du casque du héro $game_actors[héro_ID].armor2_id = ID du casque du héro - Code:
-
$data_actors[héro_ID].armor3_id = ID de l’armure du héro $game_actors[héro_ID].armor3_id = ID de l’armure du héro - Code:
-
$data_armors[$data_actors[héro_ID].armor1_id].name = « nom du bouclier du héro » $data_armors[$game_actors[héro_ID].armor1_id].name = « nom du bouclier du héro » - Code:
-
$data_armors[$data_actors[héro_ID].armor2_id].name = « nom du casque du héro » $data_armors[$game_actors[héro_ID].armor2_id].name = « nom du casque du héro » - Code:
-
$data_armors[$data_actors[héro_ID].armor3_id].name = « nom de l’armure du héro » $data_armors[$game_actors[héro_ID].armor3_id].name = « nom de l’armure du héro » - Code:
-
$data_actors[héro_ID].armor4_id = ID de l’accessoire du héro $game_actors[héro_ID].armor4_id = ID de l’accessoire du héro - Code:
-
$data_armors[$data_actors[héro_ID].armor4_id].name = « nom de l’accessoire du héro » $data_armors[$game_actors[héro_ID].armor4_id].name = « nom de l’accessoire du héro » - Code:
-
$data_actors[héro_ID].initial_level = niveau initial du héro - Code:
-
$data_actors[héro_ID].parameters[status_id, level] = valeur du paramètre dont l’ID est status_id et en fonction du niveau du héro. Les ID des statuts sont les suivants : HP max = 0 SP max = 1 Force = 2 Dextérité = 3 Agilité = 4 Intelligence = 5 Par exemple, si vous souhaitez connaître l’agilité du héro n°2 au niveau 64, vous écrivez : - Code:
-
$data_actors[2].parameters[4, 64] Autres outils plus simples pour le maniement des paramètres : - Code:
-
$game_actors[héro_ID].hp = HP actuels du héro - Code:
-
$game_actors[héro_ID].maxhp = HP max du héro - Code:
-
$game_actors[héro_ID].sp = SP actuels du héro - Code:
-
$game_actors[héro_ID].level = niveau du héro - Code:
-
$game_actors[héro_ID].exp = expérience du héro - Code:
-
$game_actors[héro_ID].str = force du héro - Code:
-
$game_actors[héro_ID].dex = dextérité du héro - Code:
-
$game_actors[héro_ID].agi = agilité du héro - Code:
-
$game_actors[héro_ID].int = intelligence du héro - Code:
-
$game_actors[héro_ID].atk = attaque du héro - Code:
-
$game_actors[héro_ID].pdef = défense physique du héro - Code:
-
$game_actors[héro_ID].mdef = défence magique du héro - Code:
-
$game_actors[héro_ID].eva = taux d’évasion du héro Activer un bouton en Ruby $game_switches[x] = true True ou False pour => Vrai ou Faux "x" est a remplacer par le numéro du Bouton. Activer un interrupteur local $game_self_switches = {[MAP-ID, EVENT-ID, "LOCAL-SWITCH"] => flag value} MAP-ID : ID de la map sur lequel est placé l'event EVENT-ID : ID de l'event qui contient le switch local "LOCAL-SWITCH" : caractère du Switch ( "A", "B", "C", "D") attention à ne pas oublier les guillemets. flag value : remplacer par true ou false Pour qu'une modification de variable ou de switch prène effet, il faut ajouter la commande : - Code:
-
$game_map.need_refresh = true Modifier la valeur d'une variable : - Code:
-
$game_variables[x] = 0 "x" est a remplacer par le numéro de la variable. La Valeur qui suit le égal est le numéro qu'adoptera la variable. - Code:
-
if Input.trigger?(Input::C) end Traduction : Si Bouton C est appuyé entre If et End mettre le code que l'on veut. Opérandes - Code:
-
• == Si égal à • > Si supérieur à • < Si inférieur à • >= Si supérieur ou égal à • <= Si inférieur ou égal à • != Si différent de • && AND (Et) • || OR (Ou bien)
[color=orange]Opérateurs [/color]• = Rendre égal à • += Ajouter • -= Soustraire • *= Multiplier • /= Diviser • %= Modulo (Reste de la division) • ** Elever à un Exposant Affichage Character • - Code:
-
draw_actor_graphic(actor, x, y) => pour afficher l'image du character (celui vue de devant du menu) actor : Numéro d'ID du char x : Position x de l'image en partant de l'origine du pixel haut gauche. y : Position y de l'image en partant de l'origine du pixel haut gauche. Image - Code:
-
• show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) => pas sûr je crois que c'est afficher une image. Alors la j'ai pas tout compris -_- mais je crois que c'est ça : name : nom de l'image (dans le dossier picture obligatoirement) origin : pixel haut-gauche ou centre, je sais pas trop ce qu'il faut mettre en anglais... Center ou Right-hand corner j'en sais rien du tout. x : position x de l'image par rapport a l'origine y : position y de l'image par rapport a l'origine zoom_x : c'est explicite aggrandissement de l'image en x. zoom_y : aggrandissement de l'image en y opacity : transparence blend_type : type de transparence : je crois que c'est ADD ou SUB et un autre qui fait normal mais je sais pas c'est quoi Icone [/color - Code:
-
]• bitmap = RPG::Cache.icon(NOM) self.contents.blt(x, y, bitmap, Rect.new(0, 0, 24, 24)) [color=red]=> Voilà pour l'icone il faut remplacer NOM entre parenthèse par le nom de l'image de l'icone qui doit etre placée dans le dossier des icones. x : position x de l'icone y : position y de l'icone bitmap : a ne pas modifier Rect.new : a ne pas modifier Battler - Code:
-
• bitmap = RPG::Cache.battler(actor[?].battler_name, actor[?].battler_hue) actor[?].battler_name : le point d'interrogation est a modifier par l'ID du personnage. actor[?].battler_hue : le point d'interrogation est a modifier par l'ID du personnage. Tout ceci est a confirmer si cela fonctionne. jouer une musique en BGM : - Code:
-
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, 100) remplacez bgm.name par le nom du fichier entre " ", n'oubliez pas l'extension ! remplacez bgm.volume par un nombre entre 1 et 100. je n'ai pas encore trouvé à quoi correspondait le 100 à la fin. arrêter le BGM : - Code:
-
Audio.bgm_stop arrêter progressivement le BGM : - Code:
-
Audio.bgm_fade(time * 1000) remplacez time par le nombre de secondes. mémoriser le BGM joué : - Code:
-
Game_System.bgm_memorize restaurer le BGM mémorisé : - Code:
-
Game_System.bgm_restore jouer un BGS : - Code:
-
Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume, 100) c'est pareil que pour jouer un BGM, sauf que vous remplacez bgs.name par le nom du BGS, et bgs.volume par le volume de 0 à 100. arrêter un BGS : - Code:
-
Audio.bgs_stop arrêter progressivement un BGS : - Code:
-
Audio.bgs_fade(time * 1000) remplacez time par le nombre de secondes. mémoriser le BGS joué : - Code:
-
Game_System.bgs_memorize restaurer le BGS mémorisé : - Code:
-
Game_System.bgs_restore jouer un ME : - Code:
-
Audio.me_play("Audio/ME/" + me.name, me.volume, 100) je pense que vous commencez à comprendre comment ça marche... arrêter un ME : - Code:
-
Audio.me_stop jouer un SE : - Code:
-
Audio.se_play("Audio/SE/" + se.name, se.volume, 100) Dois-je expliquer ? arrêter un SE : - Code:
-
Audio.se_stop Ajouter un héro dans l'équipe : - Code:
-
$game_party.add_actor(id) retirer un héro de l'équipe : - Code:
-
$game_party.remove_actor(id) ajouter de l'argent : - Code:
-
$game_party.gain_gold(n) retirer de l'argent : - Code:
-
$game_party.lose_gold(n) ou - Code:
-
$game_party.gain_gold(-n) pour faire une condition : - Code:
-
if (condition)
...
end si tu veux que des autres instructions soient effectuées si la condition n'est pas vrai (TRUE), fait comme ça : - Code:
-
if (condition)
...
else
...
end si tu veux faire un enchaînement de conditions, fait comme cela : - Code:
-
if(condition) ... elsif (condition) ... elsif(condition) ... end pour les conditions, c'est un teste sur variables, par exemple : - Code:
-
a > b a < b pour vérifier deux égalités, ça donne : - Code:
-
a==b (note les 2 =) pour "différent de", c'est : - Code:
-
a != b - Code:
-
a -= Pour soustraire et - Code:
-
a += Pour ajouter Pour activer une def d'une class il faut faire comme ceci : - Code:
-
$class.def Class a remplacer par le nom du script dans l'en tête de celui-ci et def ben par la def. IMPORTANT: Pour utiliser les commandes concernants les personnages, voici la démarche a suivre: draw_text (x,y,h,l,la_commande) Exemple: self.contents.draw_text (0,0,60,160,$game_actors[1].hp) Lien Pratique(déslé pour la Pub mais c'est pour votre bien!: http://rpgcreative.forumpro.fr/viewtopic.forum?t=1046
Dernière édition par le Lun 4 Juin - 12:48, édité 2 fois | |
|
M.L'abeille > Administrateur
Nombre de messages : 317 Age : 34 Localisation : Dans une ruche avec Maya et Pop's Avez vous RPGMXP ? : A ton avis, sinon je serais pas la ... Quels sont vos projets ? : Raklor Chronicle I Date d'inscription : 01/05/2007
Fiche Créateur Points de Créativité: (0/50) Commentaires:
| Sujet: Re: [Ruby] Les bases du RGSS Mer 30 Mai - 12:31 | |
| Je n'ai pas tout lu mais je vais me plonger dedans ces vacances, c'est complets et accessible a tous !! Je pense que tu mérits 5 PA avec tous ces tutos !! | |
|
Rockbert > Modérateur
Nombre de messages : 131 Age : 31 Localisation : J't'en pose des questions ??? Avez vous RPGMXP ? : Oui Quels sont vos projets ? : ... Date d'inscription : 22/11/2006
Fiche Créateur Points de Créativité: (0/50) Commentaires:
| Sujet: Re: [Ruby] Les bases du RGSS Mer 30 Mai - 12:33 | |
| - L'abeille a écrit:
- Je pense que tu mérits 5 PA avec tous ces tutos !!
Et je suis d'accord !! Cela te fait donc 5 PAs en pkus | |
|
Luck > Administrateur
Nombre de messages : 507 Age : 31 Localisation : 35 Avez vous RPGMXP ? : Oui Quels sont vos projets ? : Nightmares of Apocalypsia - Mario Kart XP Date d'inscription : 17/11/2006
Fiche Créateur Points de Créativité: (50/50) Commentaires:
| Sujet: Re: [Ruby] Les bases du RGSS Mer 30 Mai - 12:33 | |
| Je lui en rajoute trois alors ... Je lui en avais déja mis 2 | |
|
kill00man > Grand artiste
Nombre de messages : 285 Age : 43 Localisation : Derrière-toi, prêt a t'assassiner ! Avez vous RPGMXP ? : On dit RMXP et oui, biensûr que je l'ai :p Quels sont vos projets ? : The Strom Of Chrono Date d'inscription : 03/05/2007
Fiche Créateur Points de Créativité: (0/50) Commentaires:
| Sujet: Re: [Ruby] Les bases du RGSS Mer 30 Mai - 12:35 | |
| Bon ba moi je propose de mettre ce sujet en post-it car c'est vraiment important pour mes tutos! ++ | |
|
Contenu sponsorisé
| Sujet: Re: [Ruby] Les bases du RGSS | |
| |
|