AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

Partagez
 

 [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Tiroflan
Illusionniste Lv.12
Illusionniste Lv.12
Tiroflan


Masculin Age : 33
Inscrit le : 14/02/2010
Messages : 796

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 13:27

Salut ! Un mini code qui m'est venu à la suite de rencontres aléatoires intempestives. Rien de plus rageant que d'avoir des combats aléatoires toutes les deux cases, et malheureusement le système de base de rmvx rend ce genre de désagréments possibles.

Donc, ce code propose de réduire considérablement la probabilité qu'il y ait deux combats très rapprochés en terme de pas marchés sur la carte. Si par exemple, vous avez mis rencontre tous les 10 pas en moyenne sur votre map, alors le combat aura vraisemblablement lieu entre 6 et 14 pas, alors que dans le combat de base l'intervalle serait plutôt de 2 à 18 pas.

Le code est plug&play, il suffit de le mettre au dessus de main dans l'éditeur de scripts. Cependant, il est possible d'agir vous même sur la taille des intervalles qui vous intéressent. Pour cela il faut modifier la valeur de p à la ligne 25 (par défaut à 0.5) par une valeur comprise entre 0 et 1 (et différente de 0 et de 1). Si vous vous approchez de 1, les intervalles seront serrés (par exemple, avec 0.9 on aurait l'intervalle 8-12 pas), et si vous vous approchez de 0, a contraire, l'intervalle s'élargit (auquel cas je recommande de laisser le système normal, ça aurait le même effet).

Avec quelques chiffres pour illustrer l'effet de p et l'effet du script, pour un nombre de pas moyens égal à 10 :

Système normal -> Intervalle = [2,18]
p = 0.1 -> Intervalle = [4,16]
p = 0.5 -> Intervalle = [6,14]
p = 0.9 -> Intervalle = [8,12]
L'intervalle signifie que le nombre de pas calculé a 95% de chances de se trouver à l'intérieur de cet intervalle.

Voilà, si vous avez pas du tout envie de vous embrouiller avec des chiffres, contentez vous de copier coller, et les chances d'avoir deux rencontres simultanées sur une carte avec moyenne de 10 passeront de 1/100 à 1/50000.

Code pour VX :

Code:
### Contrôle du nombre de pas en rencontres aléatoires ###
### Par Tiroflan, le 10/08/2012 ###
###########################
#
# Ce code est a destination des joueurs utilisant les rencontres aléatoires pour affronter des monstres.
# Dans le système de base, il est possible d'être attaqué 1 case à peine après le combat précédent.
# Ce script propose de modifier l'intervalle autour de la valeur du nombre de pas moyen.
# (celle qui est entrée dans l'éditeur de maps)
# Aucune configuration n'est nécessaire, cependant, si vous voulez changer la taille des intervalles, c'est possible,
# en modifiant la valeur du nombre p (ligne 25) dans le script. Si vous vous rapprochez de 1,
# vous resserez l'intervalle autour de la valeur moyenne, au contraire, vous l'élargissez en vous approchant de 0.
# Attention à ne pas entrer 0 ou 1, cela causerait une erreur !
# Se rapprocher trop près de 0 augmente le calcul inutilement, pour un effet équivalent au système normal.
# Des exemples numériques sont disponibles sur le topic de présentation du script.
#
#
# Note : la méthode make_encounter_count est réécrite. Si un autre script propose ce genre de fonctionnalité,
# il peut y avoir incompatibilité.
#
class Game_Player < Game_Character

  def make_encounter_count
    if $game_map.map_id != 0
      n = $game_map.encounter_step
      p = 0.5  # Nombre compris entre 0 et 1 (attention, différent de 0 et de 1 !)
      nb_bernouilli = (n/p)
      @encounter_count = 1 
      for i in 1...nb_bernouilli
        if rand(0)<p
          @encounter_count +=1
        end
      end
    end
  end
 
end

Le même pour Ace : (une ligne de modif dans le code source)

Code:
### Contrôle du nombre de pas en rencontres aléatoires ###
### Par Tiroflan, le 10/08/2012 ###
###########################
#
# Ce code est a destination des joueurs utilisant les rencontres aléatoires pour affronter des monstres.
# Dans le système de base, il est possible d'être attaqué 1 case à peine après le combat précédent.
# Ce script propose de modifier l'intervalle autour de la valeur du nombre de pas moyen.
# (celle qui est entrée dans l'éditeur de maps)
# Aucune configuration n'est nécessaire, cependant, si vous voulez changer la taille des intervalles, c'est possible,
# en modifiant la valeur du nombre p (ligne 25) dans le script. Si vous vous rapprochez de 1,
# vous resserez l'intervalle autour de la valeur moyenne, au contraire, vous l'élargissez en vous approchant de 0.
# Attention à ne pas entrer 0 ou 1, cela causerait une erreur !
# Se rapprocher trop près de 0 augmente le calcul inutilement, pour un effet équivalent au système normal.
# Des exemples numériques sont disponibles sur le topic de présentation du script.
#
#
# Note : la méthode make_encounter_count est réécrite. Si un autre script propose ce genre de fonctionnalité,
# il peut y avoir incompatibilité.
#
class Game_Player < Game_Character

  def make_encounter_count
      n = $game_map.encounter_step
      p = 0.5  # Nombre compris entre 0 et 1 (attention, différent de 0 et de 1 !)
      nb_bernouilli = (n/p)
      @encounter_count = 1 
      for i in 1...nb_bernouilli
        if rand(0)<p
          @encounter_count +=1
        end
      end
  end
 
end
Revenir en haut Aller en bas
Brandobscure001
Seigneur Lv.18
Seigneur Lv.18
Brandobscure001


Masculin Age : 27
Inscrit le : 26/12/2010
Messages : 2220

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 13:33

Merci du partage, c'est intéressant Very Happy
Revenir en haut Aller en bas
Cracks86
Vagabond Lv.5
Vagabond Lv.5
Cracks86


Masculin Age : 28
Inscrit le : 08/08/2012
Messages : 87

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 14:28

*-* C'est ce que je cherchais
Merci du partage.
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 18:24

Bernouilli ? R U SIRIUS BRO ?
Plus sérieusement y'a un truc que j'ai pas vraiment compris. Ça change quoi par rapport au système de base ?
Revenir en haut Aller en bas
Tiroflan
Illusionniste Lv.12
Illusionniste Lv.12
Tiroflan


Masculin Age : 33
Inscrit le : 14/02/2010
Messages : 796

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 23:27

En terme de stats, le nombre de pas généré aléatoirement avec le système de base est tiré selon une loi uniforme (utilisation de rand()), et ici avec une loi binomiale, ce qui réduit de beaucoup la variance du tirage, ce qui fait qu'on a bien moins souvent des réalisations extrêmes (par exemple, une loi uniforme centrée sur 10 a environ 1% de chances de tirer 1 comme nombre de pas, une loi binomiale de paramètre 0.5 et de moyenne 10 aura 0.002% de chances de tirer 1).

Après, bernouilli lol, une loi binomiale c'est une somme de loi de bernouilli et j'avais pas d'idée plus sympa sous la main :p
Revenir en haut Aller en bas
Titou
Illusionniste Lv.12
Illusionniste Lv.12
Titou


Masculin Inscrit le : 22/05/2012
Messages : 773

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeVen 10 Aoû 2012 - 23:50

Merci du partage Bro!!!
C'est un truc qui est vraiment emmerdant quand ta 1 combat toute les deux cases, donc c'est super pratique.
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeSam 11 Aoû 2012 - 8:49

Ouais, je doute quand même de l'utilité de tout ça.
Si on veut moins de rencontres, suffit juste d'augmenter le nombre de pas moyen.

M'enfin je déplace quand même en t'ajoutant des pts de participations. Merci pour ton travail !
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeSam 11 Aoû 2012 - 9:30

juste par soucis de forme, les liens d'héritages ne sont pas nécessaire dans du monkeypatching.
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitimeSam 11 Aoû 2012 - 9:43

C'est pas "moins de rencontres", vu que la moyenne reste toujours la même. ça ressert juste les probabilités autour de la valeur moyenne. Dans le cas limite, on aurait que le nombre de pas serait exactement le nombre de pas moyen à tous les coups.

En gros ça ne diminue pas le nombre de rencontres, juste les probabilités critiques.

Je trouve ça utile perso, c'est très rageant de tomber sur un monstre juste après en avoir combattu un autre.
Revenir en haut Aller en bas
Contenu sponsorisé




[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Empty
MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires Icon_minitime

Revenir en haut Aller en bas
 

[VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» [VXAce] Contrôle du nombre de pas en rencontres aléatoires
» [VX] Arrêter les rencontres aléatoires
» problème controle
» Controle avec la souris
» [Résolu] Script - Contrôle de choix

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Divers-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forumactif.com