Script de difficulté pour VX
Jeu 4 Déc 2008 - 17:15
Si vous n'avez pas envie de tout lire:
- téléchargez simplement la Démo
- Copiez les scripts "Scene Difficulte" et "Game Enemy"(remplacez celui de base de votre projet), présents dedans, dans votre projet
- Et Remplacez le "Scene_Map.new" par "Scene_Difficulte.new" dans le Scene Title (comme expliqué plus bas)
Bonjour !
Il y a longtemps de cela, alors que je ne m'y connaissais pas en ruby, j'avais trouvé un script pour choisir la difficulté du jeu au début...
Le problème c'est qu'il était pour XP, alors forcément il ne marchait pas dans mon projet...
Or, récemment j'ai repensé à ce script et me suis dit...
Je suis meilleur qu'il y a 3 mois, alors pourquoi ne pas essayer de le traduire en VX ?
Je l'ai fait !
###############
Script pour XP de Luna
Posté ici ! le 17/05/08
Modifié par wilkyo,le 29/11/08
###############
Démo !
Fonction d'origine: Il modifiait pendant un tour le maximum de hp et de mp en étant traduit pour vx...
Mais j'ai réussi à le traduire totalement et à le perfectionner !
Nouvelle Fonction:
Ce script modifie les Hpmax les Mpmax, l'attaque, la défense, l'agilité, l'intelligence, la précision et le taux d'évasion des monstres !
Tout d'abord, ouvrez l'éditeur de scripts et insérez ce script dans Materials (au dessus de Main si vous préférez...)
Ensuite, allez dans le Scene_Title et remplacez (l. 218)
par
Ensuite modifiez le Game_Enemy
Ajoutez
Puis
ligne 37 insérez
Puis à partir de # * Get Basic Maximum HP
remplacez jusqu'à # * Get Evasion Rate (inclu)
par
Attention !
Ici pour le mode facile ça active l'interrupteur 4
et pour difficile le 5
Pour les changer il vous suffit de modifier dans le script de difficulté,
Puis au début du Game Enemy:
Si vous voulez modifiez autre chose du genre l'expérience ou l'argent...
Il vous suffit de faire sur le même model !
Si vous voulez je peux l'inclure !
Bon making !
- téléchargez simplement la Démo
- Copiez les scripts "Scene Difficulte" et "Game Enemy"(remplacez celui de base de votre projet), présents dedans, dans votre projet
- Et Remplacez le "Scene_Map.new" par "Scene_Difficulte.new" dans le Scene Title (comme expliqué plus bas)
Bonjour !
Il y a longtemps de cela, alors que je ne m'y connaissais pas en ruby, j'avais trouvé un script pour choisir la difficulté du jeu au début...
Le problème c'est qu'il était pour XP, alors forcément il ne marchait pas dans mon projet...
Or, récemment j'ai repensé à ce script et me suis dit...
Je suis meilleur qu'il y a 3 mois, alors pourquoi ne pas essayer de le traduire en VX ?
Je l'ai fait !
###############
Script pour XP de Luna
Posté ici ! le 17/05/08
Modifié par wilkyo,le 29/11/08
###############
Démo !
Fonction d'origine: Il modifiait pendant un tour le maximum de hp et de mp en étant traduit pour vx...
Mais j'ai réussi à le traduire totalement et à le perfectionner !
Nouvelle Fonction:
Ce script modifie les Hpmax les Mpmax, l'attaque, la défense, l'agilité, l'intelligence, la précision et le taux d'évasion des monstres !
Tout d'abord, ouvrez l'éditeur de scripts et insérez ce script dans Materials (au dessus de Main si vous préférez...)
- Code:
#==============================================================================
# Scene_Difficulte
#------------------------------------------------------------------------------
# Au dessus de Main
# Pour changer les taux de difficulté de combat, voir la modification de Game_Enemy
# Auteur xp: Luna
# Traducteur vx: wilkyo
#==============================================================================
class Scene_Difficulte
def main
@sprite = Sprite.new
@sprite.bitmap = Cache.system("Title")
# Nom des choix
s1 = "Facile"
s2 = "Normal"
s3 = "Expert"
# Création des fenêtres
@command_window = Window_Command.new(192, [s1, s2, s3])
@aide_window = Window_Aide.new
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
@aide_window.x = 140
@aide_window.y = 180
@aide_window.back_opacity = 0
@aide_window.opacity = 0
# Audio
Audio.bgm_stop
Audio.me_stop
Audio.bgs_stop
Graphics.transition
# Boucle de mise à jour graphique
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
# Placement des graphiques
Graphics.freeze
@command_window.dispose
@aide_window.dispose
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# def update
#--------------------------------------------------------------------------
def update
# Mise à jour
@command_window.update
@aide_window.update
# appuie sur C pour valider et B pour annuler
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Title.new
elsif Input.trigger?(Input::C)
# choix
case @command_window.index
when 0 # facile
command_facile
when 1 # normal
command_normal
when 2 # difficile
command_difficile
end
end
end
#--------------------------------------------------------------------------
# def command_facile
#--------------------------------------------------------------------------
def command_facile
$game_switches[4] = true
general
end
#--------------------------------------------------------------------------
# def command_normal
#--------------------------------------------------------------------------
def command_normal
general
end
#--------------------------------------------------------------------------
# def command_difficile
#--------------------------------------------------------------------------
def command_difficile
$game_switches[5] = true
general
end
#--------------------------------------------------------------------------
# def general
#--------------------------------------------------------------------------
def general
# Données vers la map après le choix
Sound.play_decision
Audio.bgm_stop
Graphics.frame_count = 0
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
# Arrive sur la map
$scene = Scene_Map.new
end
end
# Nouvelle classe : Window_Aide ----------------------------------------------------------------------------
class Window_Aide < Window_Base
#--------------------------------------------------------------------------
# def initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 544, 264)
refresh
end
#--------------------------------------------------------------------------
# def refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color # Mettez "normal_color" pour avoir la couleur par défaut : blanc.
self.contents.draw_text(0,0,300,32,"Choisissez")
self.contents.draw_text(45,30,300,32,"la difficulté")
self.contents.draw_text(70,60,300,32,"des combats :")
end
end
Ensuite, allez dans le Scene_Title et remplacez (l. 218)
- Code:
$scene = Scene_Map.new
par
- Code:
$scene = Scene_Difficulte.new
Ensuite modifiez le Game_Enemy
Ajoutez
- Code:
EASY_SWITCH = 4
HARD_SWITCH = 5
Puis
ligne 37 insérez
- Code:
@facile = 0.5 # 0 < X < 1
#Mettez ici le taux de diminution des stats du (des) monstre(s) pour le niveau facile
@difficile = 1.5 # X >1
#Mettez ici, le taux d'augmentation des stats du (des) monstre(s) pour le niveau difficile
- Code:
@hp = maxhp
@mp = maxmp
Puis à partir de # * Get Basic Maximum HP
remplacez jusqu'à # * Get Evasion Rate (inclu)
par
- Code:
#--------------------------------------------------------------------------
# * Get Basic Maximum HP
#--------------------------------------------------------------------------
def base_maxhp
if $game_switches[EASY_SWITCH] == true
return enemy.maxhp * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.maxhp * @difficile
else
return enemy.maxhp
end
end
#--------------------------------------------------------------------------
# * Get basic Maximum MP
#--------------------------------------------------------------------------
def base_maxmp
if $game_switches[EASY_SWITCH] == true
return enemy.maxmp * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.maxmp * @difficile
else
return enemy.maxmp
end
end
#--------------------------------------------------------------------------
# * Get Basic Attack
#--------------------------------------------------------------------------
def base_atk
if $game_switches[EASY_SWITCH] == true
return enemy.atk * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.atk * @difficile
else
return enemy.atk
end
end
#--------------------------------------------------------------------------
# * Get Basic Defense
#--------------------------------------------------------------------------
def base_def
if $game_switches[EASY_SWITCH] == true
return enemy.def * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.def * @difficile
else
return enemy.def
end
end
#--------------------------------------------------------------------------
# * Get Basic Spirit
#--------------------------------------------------------------------------
def base_spi
if $game_switches[EASY_SWITCH] == true
return enemy.spi * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.spi * @difficile
else
return enemy.spi
end
end
#--------------------------------------------------------------------------
# * Get Basic Agility
#--------------------------------------------------------------------------
def base_agi
if $game_switches[EASY_SWITCH] == true
return enemy.agi * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.agi * @difficile
else
return enemy.agi
end
end
#--------------------------------------------------------------------------
# * Get Hit Rate
#--------------------------------------------------------------------------
def hit
if $game_switches[EASY_SWITCH] == true
return enemy.hit * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.hit * @difficile
else
return enemy.hit
end
end
#--------------------------------------------------------------------------
# * Get Evasion Rate
#--------------------------------------------------------------------------
def eva
if $game_switches[EASY_SWITCH] == true
return enemy.eva * @facile
elsif $game_switches[HARD_SWITCH] == true
return enemy.eva * @difficile
else
return enemy.eva
end
end
Attention !
Ici pour le mode facile ça active l'interrupteur 4
et pour difficile le 5
Pour les changer il vous suffit de modifier dans le script de difficulté,
- Code:
ligne 85
$game_switches[X] = true
X = votre interrupteur pour le facile
ligne 98
$game_switches[Y] = true
Y = votre interrupteur pour le difficile
Puis au début du Game Enemy:
- Code:
EASY_SWITCH = X
HARD_SWITCH = Y
Si vous voulez modifiez autre chose du genre l'expérience ou l'argent...
Il vous suffit de faire sur le même model !
Si vous voulez je peux l'inclure !
Bon making !
- InvitéInvité
Re: Script de difficulté pour VX
Dim 14 Déc 2008 - 10:07
Bien Je dois avoué, c'est surement utile dans mon jeu.
Mais tu pourrais montrer ce que sa donne avec des screen ?
EDIT : Merci pour les images
Wilkyo fait une amélioration de ma démonstration... (Dommage...) Bref, la démo arrive bientôt !
Mais tu pourrais montrer ce que sa donne avec des screen ?
EDIT : Merci pour les images
Wilkyo fait une amélioration de ma démonstration... (Dommage...) Bref, la démo arrive bientôt !
- Jojo la vache AKA la failMembre
- Nombre de messages : 146
Age : 28
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009
Re: Script de difficulté pour VX
Mer 18 Nov 2009 - 19:09
Euh...
On peut le bidouiller, ce script, pour ajouter des difficultés ?
On peut le bidouiller, ce script, pour ajouter des difficultés ?
Re: Script de difficulté pour VX
Mer 18 Nov 2009 - 20:03
Bien sûr ^^
Suffit de chercher un peu dans le Scene_Battle modifié afin de voir comment ça fonctionne, afin de faire pareil pour autre chose (expérience, or... si ce n'est pas déjà fait)
Et en faisant la même manip' dans un autre script (toujours en fonction de cet interrupteur) on peut sûrement modifier d'autres choses...
Oui, si tu veux ajouter un donjon par exemple, souviens toi que le mode difficile est activé avec un interrupteur que tu choisis dans le script.
Si je n'ai pas répondu à ta question, dis moi clairement ce que tu veux.
Suffit de chercher un peu dans le Scene_Battle modifié afin de voir comment ça fonctionne, afin de faire pareil pour autre chose (expérience, or... si ce n'est pas déjà fait)
Et en faisant la même manip' dans un autre script (toujours en fonction de cet interrupteur) on peut sûrement modifier d'autres choses...
Oui, si tu veux ajouter un donjon par exemple, souviens toi que le mode difficile est activé avec un interrupteur que tu choisis dans le script.
Si je n'ai pas répondu à ta question, dis moi clairement ce que tu veux.
- Jojo la vache AKA la failMembre
- Nombre de messages : 146
Age : 28
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009
Re: Script de difficulté pour VX
Mer 2 Déc 2009 - 16:35
Bon voilà : dans ce script il n'y a pas plus de niveaux...
Ah j'oubliais : pour les stats en gros c'est comment ? ( c'est pô marqué...)
Ah j'oubliais : pour les stats en gros c'est comment ? ( c'est pô marqué...)
Re: Script de difficulté pour VX
Dim 27 Déc 2009 - 21:58
Arf, je n'avais pas vu la réponse...
Shame on me -_-"
Au cas où tu repasserais par là...
Pour les stats, ça multiplie les stats originales par la variable qui correspond.
Si tu as choisis facile,
Au début du Scene_Battle, tu as: @facile = x
x correspond au coefficient de diminution des stats de l'ennemi.
Tu dois mettre un chiffre entre 0 et 1.
Si tu met 0.5 par exemple, les stats seront divisées par 2.
Même principe pour difficile mais tu dois mettre un nombre plus grand que 1 (sinon c'est pas logique) pour augmenter les stats.
Shame on me -_-"
Au cas où tu repasserais par là...
Pour les stats, ça multiplie les stats originales par la variable qui correspond.
Si tu as choisis facile,
Au début du Scene_Battle, tu as: @facile = x
x correspond au coefficient de diminution des stats de l'ennemi.
Tu dois mettre un chiffre entre 0 et 1.
Si tu met 0.5 par exemple, les stats seront divisées par 2.
- Code:
enemy.agi * @facile -> agilité*0.5
Même principe pour difficile mais tu dois mettre un nombre plus grand que 1 (sinon c'est pas logique) pour augmenter les stats.
- Jojo la vache AKA la failMembre
- Nombre de messages : 146
Age : 28
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 15:35
Merci beaucoup !
Ce script m'est très utile, et peut-être il le sera pour d'autres !
Ce script m'est très utile, et peut-être il le sera pour d'autres !
- ruijinMembre
- Nombre de messages : 232
Age : 27
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 17:25
Ce script marche pour un jeu d'énigme?
- Pixelvengeur360Membre
- Nombre de messages : 638
Age : 30
Localisation : Metz/France
Distinction : Gracié par nous autres, dieux.
DRUGS : I've told you that was bad !
Date d'inscription : 21/12/2008
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 17:30
Hein ?C'est un script de difficulté qui change les variables des caractéristiques, pour un jeu d'énigme tu doits forcement evenementer.Ce script marche pour un jeu d'énigme?
- ruijinMembre
- Nombre de messages : 232
Age : 27
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 17:33
Pixelvengeur360! a écrit:Hein ?C'est un script de difficulté qui change les variables des caractéristiques, pour un jeu d'énigme tu doits forcement evenementer.Ce script marche pour un jeu d'énigme?
Je veut dire faire des énigmes différentes à chaque niveau...Facile = Ben énigmes facile , Normal: Ben énigme normal
Enfin voila quoi
- Pixelvengeur360Membre
- Nombre de messages : 638
Age : 30
Localisation : Metz/France
Distinction : Gracié par nous autres, dieux.
DRUGS : I've told you that was bad !
Date d'inscription : 21/12/2008
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 19:14
C'est se que j'ai dit, c'est un évent dans se cas là, et non un script dont tu as besoin.
- InvitéInvité
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 19:39
TUUUTUUUTUUUUUT!!!
Goombi arrive avec un event sur mesure pour la situation^^ Je suis dans le HS mais bon, comme je n'avais rien à faire...
A ta place, pour faire un niveau de difficulté pour des énigmes, je metrais dés le début du jeu
Et a chaque énigme, tu fais un truc du genre! Et viva les event!
Ca ressemblerais a un truc comme ça.
Moi, c'est comme ça que j'aurais fait^^
[HS] Elles était bien mes énigmes? [/HS]
Goombi arrive avec un event sur mesure pour la situation^^ Je suis dans le HS mais bon, comme je n'avais rien à faire...
A ta place, pour faire un niveau de difficulté pour des énigmes, je metrais dés le début du jeu
- Spoiler:
- "Choississez le niveau de difficultée"
Proposer un choix [Simple; Normal; Ardru]
> Simple
>> Modifié une variable "Difficulté" == 0
> Fin
> Normal
>> Modifié une variable "Difficulté" == 1
> Fin
> Ardru
>> Modifié une variable "Difficulté" == 2
> Fin
Fin
Et a chaque énigme, tu fais un truc du genre! Et viva les event!
- Spoiler:
- Placer une ettiquette "Erreur"
Enigme n°X
Proposer un choix [Continuer, Abandonner]
> Continuer
> Fin
> Abandonner
>> Aller à une ettiquette "Fin"
> Fin
Fin
Condition; Si la variable "Difficulté" = 0
> Combien d'oeuf pond un coq chaque jour?
> Proposer un choix [6; 15; 0]
>> 6
>>> "Mauvaise réponse!"
>>> Aller à une ettiquette "Erreur"
>> Fin
>> 15
>>> "Mauvaise réponse!"
>>> Aller à une ettiquette "Erreur"
>> Fin
>> 0
>>> "Correct! Un coq ne pond pas d'oeuf!"
>>> Aller à une ettiquette "Bonne réponse"
>> Fin
> Fin
Fin de condition
Condition; Si la variable "Difficulté" = 1
> "Complétez cette suite logique"
> "Brasero, hideux, vingt-quatre, saucisse, fuite..."
> Proposer un choix [maison; indice; bouteille]
>> maison
>>> "Mauvaise réponse!"
>>> Aller à une ettiquette "Erreur"
>> Fin
>> indice
>>> "Correct! A la fin de chaque terme on entend en phonétique un chiffre."
>>> "Bra ZERO hi DEUX vingt QUATRE sau SIX f HUIT. 0, 2, 4, 6, 8, 10! in DIX!"
>>> Aller à une ettiquette "Bonne réponse"
>> Fin
>> bouteille
>>> "Mauvaise réponse!"
>>> Aller à une ettiquette "Erreur"
>> Fin
> Fin
Fin de condition
Condition; Si la variable "Difficulté" = 2
> "Quel mot de quatre lettres ne conserve que la deuxieme, les 3 autres changeant,
quand on le passe au pluriel?"
> Entré le nom du héros 004"" 4 lettres
> Condition; Le héros 004 a pour nom: Oeil
>> "Oui! Oeil deient Yeux! Seul le e reste inchangé!"
>> Aller à une ettiquette "Bonne réponse"
> Sinon
>> "Mauvaise réponse!"
>> Aller à une ettiquette "Erreur"
Fin de condition
Placer une ettiquette "Bonne réponse"
"Tu est intelligent! Tu peut passer bonhomme!"
Modifié un interrupteur, Passage vers le chateau ouvert Activé
Placer une ettiquette "Fin"
"Bon courage!"
Ca ressemblerais a un truc comme ça.
Moi, c'est comme ça que j'aurais fait^^
[HS] Elles était bien mes énigmes? [/HS]
- ruijinMembre
- Nombre de messages : 232
Age : 27
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009
Re: Script de difficulté pour VX
Lun 28 Déc 2009 - 21:22
Mouais... Je pense que j'essayerais mais d'abord je vais deja essayer de finir le jeu comme ça... x) Mais pour les énigmes par contre x) sympa mais facile x)
- ZangtherOldMembre
- Nombre de messages : 1711
Date d'inscription : 07/08/2009
Re: Script de difficulté pour VX
Mer 24 Fév 2010 - 13:43
Pourquoi ne pas essayer ? =-="
Tu verrais tout de suite si ca marche ou pas.
Tu verrais tout de suite si ca marche ou pas.
Re: Script de difficulté pour VX
Mer 24 Fév 2010 - 17:25
Personnellement, je ne sais pas... (j'ai testé pour SBS et combats de base uniquement, enfin il me semble...)
Mais Zangther a raison...
On ne fais mieux les choses que par soi même. (j'ai un doute sur ma phrase...)
En clair, mieux vaut éviter de poser une question dont on pourrait trouver la réponse par soi même.
Mais c'est bien d'avoir demandé.
Je vais voir si j'ai un projet en ABS puis j'édite.
EDIT:
Effectivement, ça fonctionne...
En même temps, on modifie le Game_Enemy, là où les caractéristiques des montres gérées...
Je pense que ça fonctionne aussi pour le TBS.
Mais Zangther a raison...
On ne fais mieux les choses que par soi même. (j'ai un doute sur ma phrase...)
En clair, mieux vaut éviter de poser une question dont on pourrait trouver la réponse par soi même.
Mais c'est bien d'avoir demandé.
Je vais voir si j'ai un projet en ABS puis j'édite.
EDIT:
Effectivement, ça fonctionne...
En même temps, on modifie le Game_Enemy, là où les caractéristiques des montres gérées...
Je pense que ça fonctionne aussi pour le TBS.
- [résolu]script de difficulté
- Problème avec un script de difficulté dynamique HELP s'il vous plaît SUPER URGENT
- [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^
- [SCRIPT] Aide pour script de quête s'il vous plaît
- script pour pouvoir avoir une imfiniter de couche pour mapper!!!
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum