Illusionniste Lv.12
Age : 34 Inscrit le : 14/02/2010 Messages : 796
| Sujet: [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 |
|
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
| Sujet: 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 |
|
Vagabond Lv.5
Age : 29 Inscrit le : 08/08/2012 Messages : 87
| Sujet: 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. |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: 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 ? |
|
Illusionniste Lv.12
Age : 34 Inscrit le : 14/02/2010 Messages : 796
| Sujet: 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 |
|
Illusionniste Lv.12
Inscrit le : 22/05/2012 Messages : 773
| Sujet: 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. |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: 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 ! |
|
Invité
| Sujet: 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. |
|
Invité
| Sujet: 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. |
|
| Sujet: Re: [VX-VXAce] Contrôle du nombre de pas en rencontres aléatoires | |
| |
|