L'ombre du Behemoth
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

L'ombre du Behemoth

L'ombre du Behemoth est un forum destiné à tous les amoureux de grands espaces et d'aventures extraordinaires. Partagez vos passions et exprimez vous librement sur divers thèmes et sous-thèmes.
 
AccueilDernières imagesRechercherS'enregistrerConnexion
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

 Script : RPG-Man Plate-formes

Aller en bas 
2 participants
AuteurMessage
RPG-Man
Amateur
Amateur
RPG-Man


Nombre de messages : 185
Age : 30
Localisation : Devant mon ordi, réfléchis! :p
Date d'inscription : 11/01/2009

Feuille de personnage
Connaissances:
Script : RPG-Man Plate-formes Left_bar_bleue85/250Script : RPG-Man Plate-formes Empty_bar_bleue  (85/250)
Création:
Script : RPG-Man Plate-formes Left_bar_bleue150/250Script : RPG-Man Plate-formes Empty_bar_bleue  (150/250)
RPGMaker:
Script : RPG-Man Plate-formes Left_bar_bleue75/250Script : RPG-Man Plate-formes Empty_bar_bleue  (75/250)

Script : RPG-Man Plate-formes Empty
MessageSujet: Script : RPG-Man Plate-formes   Script : RPG-Man Plate-formes Icon_minitimeMer 14 Jan - 17:34

Certains le savent peut-être, mais ça fait un petit moment que je m'intéresse au ruby, et que je crée Super Bouboule Bros... à un certain moment (dès le début pratiquement) il m'a fallut le modifier, car il ne me convenait pas, mais, il y avait dedans des bases intéressantes, j'ai donc rasé la construction, mais laissé les quelques bases.
Alors, je me suis dit que plutôt que de garder ce script pour moi, je pourrais en faire profiter les autres.
Donc, voilà, j'ai modifié (on peut carrément dire recréé tellement on ne le reconnait plus) recréé, un script de plate-formes de XRXS50, que je trouvais faiblard à mon goût.
Il permet plein de fonctions maintenant:
-Choisir les Maps dans lesquelles le script de plate-formes sera actif
-Insérer et choisir un son émis lors du saut
-Déterminer la hauteur du saut
o Soit dans le script (valeur fixe)
o Soit en déterminant dans le script l'ID de la variable de RPG Maker où sera déterminée la hauteur du saut.
-Déterminer la hauteur du saut, une fois la gravité modifiée.
-Déterminer la hauteur du saut en God_Mode
-Déterminer la longueur du saut, de la même façon que la hauteur.

Voilà pour la modif de variables, ensuite, pour les interrupteurs et autres:

-Activer/Désactiver le contrôle de la descente
-Activer/Désactiver le bruit du saut
o Choisir le bruit du saut
-Activer/Désactiver la gravité modifiée
o Choisir l'interrupteur de la modification de gravité
-Activer/Désactiver la détermination des paramètres de saut dans des variables RM
-Activer/désactiver le mode "saut en avant uniquement" selon une interrupteur RM
o Choisir ledit interrupteur

=============================================================================
Le script : A placer au dessus du script "Main" et le nommer "RPG-Man_Plate_Formes"

Code:

=begin
=====================================================================
RPG-Man_Plate_Formes
=====================================================================
Sript de départ de XRXS50 modifié, refondu, adapté... refait par Josué Alvarez (RPG-Man)
J'ai rajouté dans ce script pas tip top à la base, (mais dont il y avait pas mal de bonnes
bases) plein de fonctions et j'ai modifié beaucoup de choses et aussi créé et recréé pas mal de
choses qu'il y avait à refaire
Tout a été refait sauf l'alias update, l'alias main,
la méthode xrxs50_enable_check -modifié seulement-  la classe
game_player < Game character, l'alias transfer_player, les alias turn_left et turn_right
qui n'avaient besoin d'aucune modification :D
Certifié sans bug, sauf, UN SEUL:
Une fois sur 10 millions le script plante au chargement d'une partie ou alors,
lorsqu'on fait F12 pour recommencer le jeu, et que l'on charge ou joue une nouvelle
partie, le jeu plante et se ferme... sinon, Il est parfaitement fonctionnel In-Game
Je viens de commencer le ruby ne soyez pas surpris si vous voyez des trucs bizarres,
je programme comme ça me pète... lol
Bon making et bon jeu!
=======================================================================
Principaux paramètres modifiables :
-----------------------------
●MAPS_ACTIVES : entrez dans les crochets les id des maps dans lequelle ce script aura effet
-----------------------------
●DESCENTE_CONTROLEE : Si true, la descente du saut peut être contrôlée
-----------------------------
●DIRECTION_PREDEFINIE : Avec true si on saute sans appuyer sur aucune touche,
on saute vers l'avant (direction du héros)
-----------------------------
●BRUIT_SAUT : Si true, active le bruit du saut.
-----------------------------
-----------------------------
●HAUTEURS_SAUTS_DANS_VARIABLES_RM : Si true, les hauteurs et longueurs
des sauts seront spécifiées dans les variables RM que vous aurez choisies plus bas :
dans "Hauteur saut 1" ; "Hauteur saut 2" ; "Longueur saut"
-----------------------------
Les autres paramètres modifiables sont indiqueés plus bas.
=======================================================================
=end

#======================================================
# □ Principaux paramètres modifiables
#======================================================
class PARAMETRES
MAPS_ACTIVES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
DESCENTE_CONTROLEE = true
DIRECTION_PREDEFINIE = false
BRUIT_SAUT = true
HAUTEURS_SAUTS_DANS_VARIABLES_RM = false
end


#======================================================
# □ Variables modifiables
#======================================================
#======================================================
#■bruit_saut
#======================================================
def bruit_saut
  @bruit_saut = "015-Jump01" #Ici le nom du son que vous voulez entendre lors du saut
  #(doit se trouver dans "Audio\SE" ) Conseillés :  015-Jump01 ; 065-Swing04
end


#======================================================
#■ Hauteur saut 1
#======================================================
#Les nombres spécifiés doivent être NEGATIFS!!
#Si vous avez entrepris de stocker la hauteur des sauts dans des variables RM
#Modifiez la partie qui est comme ceci:
#@hauteur_saut_1 = $game_variables[x]  avec x l'ID de la variable
def hauteur_saut_1
  if PARAMETRES::HAUTEURS_SAUTS_DANS_VARIABLES_RM == false
  #Config du script
    @hauteur_saut_1 = -3                                          #saut normal
 else
  #Config dans variable RM
  @hauteur_saut_1 = $game_variables[1]  #remplacez 1 par l'ID de la variable que vous voulez
 end
end


#======================================================
#■ Hauteur saut 2
#======================================================
#Les nombres spécifiés doivent être NEGATIFS!!
#Si vous avez entrepris de stocker la hauteur des sauts dans des variables RM
#Modifiez la partie qui est comme ceci:
#@hauteur_saut_2 = $game_variables[x]  avec x l'ID de la variable
def hauteur_saut_2
  if PARAMETRES::HAUTEURS_SAUTS_DANS_VARIABLES_RM == false
  #Config du script
    @hauteur_saut_2 = -2                                #gravité modifiée
  else
    #Config dans variable RM
  @hauteur_saut_2 = $game_variables[2]  #remplacez 2 par l'ID de la variable que vous voulez
  end
 end
#======================================================
#■ Hauteur saut god_mode
#======================================================
#ID de l'interrupteur activant le God_Mode
def id_switch_activation_god_mode
@id_switch_activation_god_mode = 39
end

#Hauteur saut en God_Mode
def hauteur_saut_god_mode
  if $game_switches[id_switch_activation_god_mode] == true
  @hauteur_saut_god_mode = -4
  end
  end
 
#======================================================
#■ Longueur saut
#======================================================
#Il est préférable de mettre un nombre PAIR à cause
#de la conversion en flottants qui est foireuse : un coup la longueur sera de
#3 carreaux, un coup de 4 (si le choix est 3 par exemple)
#Modifiez la partie qui est comme ceci:
#@hauteur_saut_2 = $game_variables[y]  avec y l'ID de la variable
def longueur_saut
if PARAMETRES::HAUTEURS_SAUTS_DANS_VARIABLES_RM == false
#Config du script
if $game_switches[id_switch_gravite] == false
longueur_saut = 2        # Longueur du saut normal
elsif $game_switches[id_switch_gravite] == true                             
  longueur_saut = 2        #Longueur du saut quand la gravité est modifiée
  end
else
#config dans variable RM
longueur_saut = $game_variables[3]  #remplacez 3 par l'ID de la variable que vous voulez
end
end

#======================================================
# □ Interrupteurs modifiables
#======================================================
#======================================================
#■ Changement de gravité
#======================================================
# Numéro de l'interrupteur qui une fois activé utilise la valeur "hauteur saut 2" pour
#  déterminer la hauteur et "longueur_saut 2" pour la longueur du saut
# NE PAS METTRE "nil"!!
def id_switch_gravite
  @id_switch_gravite = 23
end


#======================================================
#■ Saut en avant uniquement
#======================================================
#ID de l'interrupteur qui fait sauter le héros toujours
#en avant même s'il appuie sur droite, gauche ou sur rien... utile pour une séquence plate-forme
#dans une voiture oligée d'avancer et de sauter vers l'avant!
# NE PAS METTRE "nil"!!
def id_switch_saut_avant
  @id_switch_saut_avant = 23
  end

 
 
 
#======================================================
# □ DEBUT DU SCRIPT : PAS TOUCHER!
#======================================================
#====================================================
# ■ Game_Player
#======================================================
class Game_Player < Game_Character

attr_writer :direction_fix
attr_accessor :walk_anime

attr_accessor :now_jumps
attr_writer :xrxs50_direction_sidefix
#------------------------------------------------------
# Max jumps
#------------------------------------------------------
def max_jumps
return 1
end

#------------------------------------------------------
# ● tourner droite
#------------------------------------------------------
alias xrxs50_turn_left turn_left
def turn_left
if @xrxs50_direction_sidefix
@direction = 4
else
xrxs50_turn_left
end
end
#------------------------------------------------------
# ● tourner gauche
#------------------------------------------------------
alias xrxs50_turn_right turn_right
def turn_right
if @xrxs50_direction_sidefix
@direction = 6
else
xrxs50_turn_right
end
end
end

#======================================================
# ■ Scene_Map
#======================================================
class Scene_Map
#------------------------------------------------------
# ● main alias
#------------------------------------------------------
alias xrxs50_main main
def main
# チェック
xrxs50_enable_check
# 呼び戻す
xrxs50_main
end
#------------------------------------------------------
# ● alias update
#------------------------------------------------------
alias xrxs50_update update
def update
xrxs50_update
if @xrxs50_enable
update_coordinates
end
end
#------------------------------------------------------
# Update_coordinates
#------------------------------------------------------
def update_coordinates
if $game_player.passable?($game_player.x,$game_player.y,2)
unless $game_player.moving?
if PARAMETRES::DESCENTE_CONTROLEE and
Input.press?(Input::RIGHT) and
$game_player.passable?($game_player.x,$game_player.y,2)
$game_player.move_lower_right
@direction = 6 ##
elsif PARAMETRES::DESCENTE_CONTROLEE and
Input.press?(Input::LEFT) and
$game_player.passable?($game_player.x,$game_player.y,2)
if $game_switches[id_switch_saut_avant] == false
$game_player.move_lower_left
@direction = 4 ##
else
$game_player.move_lower_right
@direction = 6 ##
end
else
if $game_switches[id_switch_saut_avant] == false
  $game_player.move_down
else
  $game_player.move_lower_right
  @direction = 6 ##
  end
  end
end
else
$game_player.move_down
$game_player.walk_anime = true unless $game_player.walk_anime
$game_player.now_jumps = 0
if Input.trigger?(Input::L) and
  $game_player.now_jumps < $game_player.max_jumps
  if PARAMETRES::BRUIT_SAUT
  Audio.se_play("Audio/SE/" + bruit_saut, 100, 100)
  end
if PARAMETRES::DIRECTION_PREDEFINIE
direction = $game_player.direction == 4 ? -1 : 1
else
if Input.press?(Input::RIGHT)

 
  direction = longueur_saut
plus_1 = 1

if $game_switches[id_switch_activation_god_mode] == true
  direction = 4
  plus_1 = direction/2
  end


elsif Input.press?(Input::LEFT)
 
 
  if $game_switches[id_switch_saut_avant] == false
  direction = -longueur_saut
  plus_1 = direction/2
else
  direction =longueur_saut
  plus_1 = direction/2
end

if $game_switches[id_switch_activation_god_mode] == true
  direction = -4
  plus_1 = direction/2
  end

else                        #AUCUNE touche pressée
 
  if $game_switches[id_switch_saut_avant] == false
  direction = 0 
  plus_1 = 0
else
  direction = longueur_saut
  plus_1 = direction/2
end

end
end

#------------------------------------------------------
# ● Sauts
#------------------------------------------------------

if $game_switches[id_switch_activation_god_mode] == true  #Inclut jeu normal
$game_player.jump(direction -plus_1, hauteur_saut_god_mode + 1)
$game_player.jump(direction -plus_1, -1)
$game_player.now_jumps += 1
$game_player.walk_anime = true
elsif $game_switches[id_switch_gravite] == false                      #Sinon si jeu normal
$game_player.jump(direction - plus_1, hauteur_saut_1 + 1)
$game_player.jump(direction - plus_1, -1) 
$game_player.now_jumps += 1
$game_player.walk_anime = false
elsif $game_switches[id_switch_gravite] == true                      #Gravité modifiée
$game_player.jump(direction -plus_1, hauteur_saut_2 + 1)
$game_player.jump(direction -plus_1, -1)
$game_player.now_jumps += 1
$game_player.walk_anime = true
end

end
end
end

#------------------------------------------------------
# ● alias transfer player
#------------------------------------------------------
alias xrxs50_transfer_player transfer_player
def transfer_player
# 呼び戻す
xrxs50_transfer_player
# チェック
xrxs50_enable_check
end

#------------------------------------------------------
# ○ Activation
#------------------------------------------------------
def xrxs50_enable_check
if PARAMETRES::MAPS_ACTIVES.include?($game_map.map_id) 
$game_player.now_jumps = 0 if $game_player.now_jumps.nil?
@xrxs50_enable = true
$game_player.direction_fix = true
$game_player.xrxs50_direction_sidefix = true
else
@xrxs50_enable = false
$game_player.direction_fix = false
$game_player.xrxs50_direction_sidefix = false
end
end
end


Dernière édition par RPG-Man le Mer 14 Jan - 17:46, édité 1 fois
Revenir en haut Aller en bas
RPG-Man
Amateur
Amateur
RPG-Man


Nombre de messages : 185
Age : 30
Localisation : Devant mon ordi, réfléchis! :p
Date d'inscription : 11/01/2009

Feuille de personnage
Connaissances:
Script : RPG-Man Plate-formes Left_bar_bleue85/250Script : RPG-Man Plate-formes Empty_bar_bleue  (85/250)
Création:
Script : RPG-Man Plate-formes Left_bar_bleue150/250Script : RPG-Man Plate-formes Empty_bar_bleue  (150/250)
RPGMaker:
Script : RPG-Man Plate-formes Left_bar_bleue75/250Script : RPG-Man Plate-formes Empty_bar_bleue  (75/250)

Script : RPG-Man Plate-formes Empty
MessageSujet: Re: Script : RPG-Man Plate-formes   Script : RPG-Man Plate-formes Icon_minitimeMer 14 Jan - 17:45

(Désolé pour le double-post, mais on message était trop long au départ)

Juste pour info, au départ, c'était ça le script:
Spoiler:
Voyez que y'a beaucoup plus de fonctions dans le mien non? ^^


Dernière édition par RPG-Man le Mer 14 Jan - 18:16, édité 2 fois
Revenir en haut Aller en bas
yakzawik
Admin
Admin
yakzawik


Nombre de messages : 232
Age : 33
Localisation : Coin paumé
Date d'inscription : 07/01/2009

Feuille de personnage
Connaissances:
Script : RPG-Man Plate-formes Left_bar_bleue120/250Script : RPG-Man Plate-formes Empty_bar_bleue  (120/250)
Création:
Script : RPG-Man Plate-formes Left_bar_bleue0/250Script : RPG-Man Plate-formes Empty_bar_bleue  (0/250)
RPGMaker:
Script : RPG-Man Plate-formes Left_bar_bleue100/250Script : RPG-Man Plate-formes Empty_bar_bleue  (100/250)

Script : RPG-Man Plate-formes Empty
MessageSujet: Re: Script : RPG-Man Plate-formes   Script : RPG-Man Plate-formes Icon_minitimeMer 14 Jan - 17:45

Bien, j'aurai juste quelques truc à dire :

- Donne nous quelques explications sur le langage Ruby :

Par exemple :

=> Pourquoi tous ces @
=> Tous les §
=> Comment ça se construit tout simplement ...
=> Comment ça marche ? Lorsque tu mets "True" alors il se passe ça, mais si tu mets "False" alors ...
Pour les numéros de map ...

Voila, ce serait surement très intéressant et surtout très instructif ^^

PS : Ah oui, j'ai oublié de dire un troisième truc : C'est géant ^^
Revenir en haut Aller en bas
https://ouroboros-gilgamesh.forumgaming.fr
RPG-Man
Amateur
Amateur
RPG-Man


Nombre de messages : 185
Age : 30
Localisation : Devant mon ordi, réfléchis! :p
Date d'inscription : 11/01/2009

Feuille de personnage
Connaissances:
Script : RPG-Man Plate-formes Left_bar_bleue85/250Script : RPG-Man Plate-formes Empty_bar_bleue  (85/250)
Création:
Script : RPG-Man Plate-formes Left_bar_bleue150/250Script : RPG-Man Plate-formes Empty_bar_bleue  (150/250)
RPGMaker:
Script : RPG-Man Plate-formes Left_bar_bleue75/250Script : RPG-Man Plate-formes Empty_bar_bleue  (75/250)

Script : RPG-Man Plate-formes Empty
MessageSujet: Re: Script : RPG-Man Plate-formes   Script : RPG-Man Plate-formes Icon_minitimeMer 14 Jan - 17:57

Alors, ces @ c'est pour des appels de variables locales, je suis pas obligé de les mettre, mais il me semble qu'elles ne fonctionnent que dans la classe où elles sont => Moins de mémoire utilisée, elle s'efface quand il n'utilise pas la classe
Ensuite, les $ (et non pas §) c'est pour déclarer des variables GLOBALES présentes dans tout le programme.
Comment marche le "MAPS_ACTIVES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"?
Alors, tout d'abord, ceci est un TABLEAU, c'est à dire une variable qui en contient plusieurs.
A quoi ça sert? Vous aurez remarqué à la fin le :
"if PARAMETRES::MAPS_ACTIVES.include?($game_map.map_id)"
Celà signifie que SI une des valeurs de mon tableau est égale à l'ID de la Map, la condition est respectée et on passe à la suite.
Et la suite, c'est on active (true) un boléen (interrupteur) qui ensuite va se retrouver en condition de déclenchement de la méthode "update_coordinate" (consistant à vérifier la passabilité et d'autres paramètres pour la descente et pas mal de choses pour le saut, notamment la direction du héros, la touche pressée, si le mode "Saut en avant" est activé...).

Et bien, pour l'histoire du true et du false, c'est un peu comme on et off (sauf qu'on a aussi "nil" qui veut dire indéterminé), après, on met des conditions "si gnagnagna == true (ou false)" voilà à quoi ça sert...

Si tu as des questions plus précises ou d'autres pose les moi je te répondrais ^^

PS: script compaptible et fonctionnel sur RMXP, je sais pas pour VX (les noms des classes, des méthodes et des variables sont pas toujours les mêmes)

Et, ah, oui, je dois vous dire un truc à propos du copier coller
CTRL + CLIC GAUCHE DANS LE CADRE "CODE" POUR SELECTIONNER TOUT LE SCRIPT
Revenir en haut Aller en bas
Contenu sponsorisé





Script : RPG-Man Plate-formes Empty
MessageSujet: Re: Script : RPG-Man Plate-formes   Script : RPG-Man Plate-formes Icon_minitime

Revenir en haut Aller en bas
 
Script : RPG-Man Plate-formes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» RPGMan Plate-formes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
L'ombre du Behemoth :: RPG Maker :: Projets RMK-
Sauter vers: