La Forge des Rêves
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

 

 [Ruby] Les bases du RGSS

Aller en bas 
4 participants
AuteurMessage
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
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é:
[Ruby] Les bases du RGSS Left_bar_bleue0/50[Ruby] Les bases du RGSS Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Les bases du RGSS Empty
MessageSujet: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitimeMer 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
Revenir en haut Aller en bas
M.L'abeille
> Administrateur
> Administrateur
M.L'abeille


Masculin
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é:
[Ruby] Les bases du RGSS Left_bar_bleue0/50[Ruby] Les bases du RGSS Empty_bar_bleue  (0/50)
Commentaires: createur d\’icones et se demerde en event !!

[Ruby] Les bases du RGSS Empty
MessageSujet: Re: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitimeMer 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 !!
Revenir en haut Aller en bas
Rockbert
> Modérateur
> Modérateur
Rockbert


Masculin
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é:
[Ruby] Les bases du RGSS Left_bar_bleue0/50[Ruby] Les bases du RGSS Empty_bar_bleue  (0/50)
Commentaires: -

[Ruby] Les bases du RGSS Empty
MessageSujet: Re: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitimeMer 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 ok ...
Revenir en haut Aller en bas
Luck
> Administrateur
> Administrateur
Luck


Masculin
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é:
[Ruby] Les bases du RGSS Left_bar_bleue50/50[Ruby] Les bases du RGSS Empty_bar_bleue  (50/50)
Commentaires: Administrateur du forum.

[Ruby] Les bases du RGSS Empty
MessageSujet: Re: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitimeMer 30 Mai - 12:33

Je lui en rajoute trois alors ... Je lui en avais déja mis 2
Revenir en haut Aller en bas
kill00man
> Grand artiste
> Grand artiste
kill00man


Masculin
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é:
[Ruby] Les bases du RGSS Left_bar_bleue0/50[Ruby] Les bases du RGSS Empty_bar_bleue  (0/50)
Commentaires: Touche a tout, absolument tout!!(et en plus bien XD)

[Ruby] Les bases du RGSS Empty
MessageSujet: Re: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitimeMer 30 Mai - 12:35

Bon ba moi je propose de mettre ce sujet en post-it car c'est vraiment important pour mes tutos!
++
Revenir en haut Aller en bas
Contenu sponsorisé





[Ruby] Les bases du RGSS Empty
MessageSujet: Re: [Ruby] Les bases du RGSS   [Ruby] Les bases du RGSS Icon_minitime

Revenir en haut Aller en bas
 
[Ruby] Les bases du RGSS
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Ruby] 2/La Window !
» [Ruby] Changer la police

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
La Forge des Rêves :: > Salle d'apprentissage :: Bibliothèque-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser