AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




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
Illusionniste Lv.12
Illusionniste Lv.12
avatar


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

MessageSujet: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Ven 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

_________________


Merci à Kouett pour :
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Seigneur Lv.18
Seigneur Lv.18
avatar


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

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

Merci du partage, c'est intéressant Very Happy

_________________

Je Soutien :
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vagabond Lv.5
Vagabond Lv.5
avatar


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

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

*-* C'est ce que je cherchais
Merci du partage.

_________________


Venez lire ma serie [Fabriquer son Personnage] :
 Fiche 1
Je soutiens:
Spoiler:
 

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Maître des Duels
Maître des Duels
avatar


Masculin Age : 25
Inscrit le : 29/07/2009
Messages : 7838

MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Ven 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 ?

_________________
Gimme a hell yeah.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Illusionniste Lv.12
Illusionniste Lv.12
avatar


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

MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Ven 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

_________________


Merci à Kouett pour :
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Illusionniste Lv.12
Illusionniste Lv.12
avatar


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

MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Ven 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.

_________________
Titou
Mog Power !!! Rejoint Le Côté Obscur Des Mogs!!!






[center]Keep Smiling No Matter What Happens And Belive
[size=18]
Alae Spe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Maître des Duels
Maître des Duels
avatar


Masculin Age : 25
Inscrit le : 29/07/2009
Messages : 7838

MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Sam 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 !

_________________
Gimme a hell yeah.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Sam 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é



MessageSujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires   Sam 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é




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

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

-
» Obtenir le nombre de caractère d'un fichier sans le charger en mémoire vive
» Affichier une infobulle au pointage d'un contrôle
» nombre d'images dans un gif
» [Resolu] nombre de pages dans le sprite livre ??
» Voir le nombre de points qu'à votre forum

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