Partagez
Aller en bas
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Script de difficulté pour VX Empty Script de difficulté pour VX

le 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...)

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
Script de difficulté pour VX Scenetitlesu4
par

Code:
$scene = Scene_Difficulte.new
Script de difficulté pour VX Scenetitleio1
Ensuite modifiez le Game_Enemy
Ajoutez
Code:

EASY_SWITCH = 4
HARD_SWITCH = 5
juste avant class Game_Enemy
Script de difficulté pour VX Scenetitleys2


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
avant
Code:
@hp = maxhp
@mp = maxmp
Comme sur l'image:
Script de difficulté pour VX Scenetitlewj9


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 !


Dernière édition par wilkyo le Sam 5 Sep 2015 - 23:00, édité 20 fois
Anonymous
Invité
Invité

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Dim 14 Déc 2008 - 10:07
Bien Wink 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 Wink

Wilkyo fait une amélioration de ma démonstration... (Dommage...) Bref, la démo arrive bientôt !
Jojo la vache AKA la fail
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 23
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Mer 18 Nov 2009 - 19:09
Euh...
On peut le bidouiller, ce script, pour ajouter des difficultés ? Script de difficulté pour VX 485497
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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.
Jojo la vache AKA la fail
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 23
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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 ? Script de difficulté pour VX 556879 ( c'est pô marqué...)
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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.
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 fail
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 23
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Lun 28 Déc 2009 - 15:35
Merci beaucoup ! Script de difficulté pour VX 434126
Ce script m'est très utile, et peut-être il le sera pour d'autres !
ruijin
ruijin
Membre

Nombre de messages : 232
Age : 21
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Lun 28 Déc 2009 - 17:25
Ce script marche pour un jeu d'énigme? Very Happy
Pixelvengeur360
Pixelvengeur360
Membre

Nombre de messages : 638
Age : 25
Localisation : Metz/France
Distinction : Gracié par nous autres, dieux.
DRUGS : I've told you that was bad !
Date d'inscription : 21/12/2008

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Lun 28 Déc 2009 - 17:30
Ce script marche pour un jeu d'énigme?
Hein ?C'est un script de difficulté qui change les variables des caractéristiques, pour un jeu d'énigme tu doits forcement evenementer.
ruijin
ruijin
Membre

Nombre de messages : 232
Age : 21
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Lun 28 Déc 2009 - 17:33
Pixelvengeur360! a écrit:
Ce script marche pour un jeu d'énigme?
Hein ?C'est un script de difficulté qui change les variables des caractéristiques, pour un jeu d'énigme tu doits forcement evenementer.

Je veut dire faire des énigmes différentes à chaque niveau...Facile = Ben énigmes facile , Normal: Ben énigme normal

Enfin voila quoi
Pixelvengeur360
Pixelvengeur360
Membre

Nombre de messages : 638
Age : 25
Localisation : Metz/France
Distinction : Gracié par nous autres, dieux.
DRUGS : I've told you that was bad !
Date d'inscription : 21/12/2008

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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.
Anonymous
Invité
Invité

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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
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]
ruijin
ruijin
Membre

Nombre de messages : 232
Age : 21
Localisation : Dans ton *Bam* Bon je ne le citerai pas...
Distinction : aucune
Date d'inscription : 15/12/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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)
ZangtherOld
ZangtherOld
Membre

Nombre de messages : 1711
Date d'inscription : 07/08/2009

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le Mer 24 Fév 2010 - 13:43
Pourquoi ne pas essayer ? =-="

Tu verrais tout de suite si ca marche ou pas.
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

le 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.
Contenu sponsorisé

Script de difficulté pour VX Empty Re: Script de difficulté pour VX

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum