Vous n'êtes pas identifié.
Salut,
J'avais cru comprendre que le bonus apporté par une œuvre d'Art était variable, mais j'obtiens toujours le même type de bonus (j'ai attendu de faire plusieurs œuvres avant de signaler un éventuel problème).
Normal, pas normal ?
Dernière modification par Bernephos (18-12-2010 00:55:54)
Hors ligne
A priori normal d'après la description de l'aptitude en interne, la variation se faisant ressentir sur le long terme ou entre artistes différents.
Plus tard ça peut faire partie des changements envisageable pour des aptitudes moins figées.
Je laisse un codeur vérifier si bug il y a ou non.
Hors ligne
/!\ infos tirées du code /!\
D'après ce que j'ai lu du code :
Pour avoir un bonus de 2, avec disons le niveau 5 en art, il faut avoir >35 en dex ou esp(selon le type d'œuvre que l'on cherche à faire).
Avec le niveau 10, il faut > 15 en dex ou esp.
Avec le niveau 1, il faut >150 en dex/esp
Avec le niveau 20, il faut ~10 en dex/esp
La bonne nouvelle, c'est que les bonus sont pris en compte
La mauvaise ,c'est qu'actuellement seule la carac la plus importante de base est utilisée pour déterminer le type de bonus.
Dernière modification par Guigolum (19-12-2010 19:04:32)
Hors ligne
Hummm... Çà, tu pourrais le supprimer ASAP Guigolum s'il te plaît : tout le monde n'a pas envie de le savoir d'une part et d'autre part, il est interdit de dévoiler de telles informations sur le forum officiel (surtout lorsqu'il s'agit d'infos tirées du code !).
Hors ligne
Eh les gars, vous faîtes quoi à ces heures indues sur le forum ?
Vous êtes d'astreinte neige toute la nuit ?
Ronce qui est d'astreinte ce matin
Dernière modification par Ronce (18-12-2010 09:19:57)
Hors ligne
Guigolum a écrit:
La mauvaise ,c'est qu'actuellement seule la carac la plus importante de base est utilisée pour déterminer le type de bonus.
Ah ben là c'est louche dans ce cas, j'ai eu trois fois de suite le même bonus, alors que j'ai 4 caracs au même niveau (bientôt 5).
Hors ligne
Va savoir, en cas d'égalité c'est peut-être la caractéristique principale du marchand qui est choisie.
Ou alors c'est par ordre alphabétique ou équivalent
Hors ligne
C'est ordonné, effectivement.
Donc en cas d'égalité, ce sera toujours la même.
C'est pas très difficile de choisir aléatoirement entre toutes les caracs égales, mais ce n'est pas le cas actuellement.
Hors ligne
John Gindrelli a écrit:
C'est ordonné, effectivement.
Donc en cas d'égalité, ce sera toujours la même.
C'est pas très difficile de choisir aléatoirement entre toutes les caracs égales, mais ce n'est pas le cas actuellement.
Effectivement, pour avoir eu autant en PER qu'en DEX, je ne faisais plus que des toiles PER.
Et ce que je trouve dommage, c'est qu'un bonus temporaire de +1 DEX ne permettait pas de faire des toiles DEX.
Hors ligne
Erkenbrand a écrit:
Hummm... Çà, tu pourrais le supprimer ASAP Guigolum s'il te plaît : tout le monde n'a pas envie de le savoir d'une part et d'autre part, il est interdit de dévoiler de telles informations sur le forum officiel (surtout lorsqu'il s'agit d'infos tirées du code !).
C'est pourtant la réponse la plus adéquate qu'il me semble à la question originelle. Et à "je laisse un codeur vérifier si bug il y a".
Mais je mets un avertissement. Et je supprime les indications de bonus au delà de 2
Ronce a écrit:
Eh les gars, vous faîtes quoi à ces heures indues sur le forum ?
Vous êtes d'astreinte neige toute la nuit ?
Ronce qui est d'astreinte ce matin
Je rentre de soirée, pourquoi ?
John Gindrelli a écrit:
C'est ordonné, effectivement.
Donc en cas d'égalité, ce sera toujours la même.
C'est pas très difficile de choisir aléatoirement entre toutes les caracs égales, mais ce n'est pas le cas actuellement.
patch it ?D'ailleurs, le dernier if est en trop, vu que le else fait exactement la même chose.
Dernière modification par Guigolum (18-12-2010 13:09:31)
Hors ligne
John Gindrelli a écrit:
C'est ordonné, effectivement.
Donc en cas d'égalité, ce sera toujours la même.
C'est pas très difficile de choisir aléatoirement entre toutes les caracs égales, mais ce n'est pas le cas actuellement.
Oui, c'est dommage et si c'est facile à modifier, ce serait déjà une modification à apporter. Le fait de prendre en compte les bonus pourrait permettre de chambouler volontairement cet aléatoire comme le propose Zephyr.
Hors ligne
pourquoi pas utiliser directement la valeur bonusée, puis la valeur de base en cas d'égalité, plutôt ?
Hors ligne
Guigolum a écrit:
patch it ?D'ailleurs, le dernier if est en trop, vu que le else fait exactement la même chose.
J'ai déjà un truc prêt en local, et il n'y a plus aucun if
Hors ligne
oO ? Pas un seul if pour choisir la carac qui est modifiée ?
Moi j'aurais fait un parcours sur les caracs du joueur, afin de récupérer la plus haute de base, et en cas d'égalité, la plus haute avec les bonus, et en cas d'égalité, un tir aléatoire entre l'ancienne plus haute et celle en cours de parcours. Mais ça fait pas mal de if.
Et pourquoi les valeurs 'Vitalite', 'vitalite_bonus_malus' , … ne sont pas externalisées ? Ça éviterait pas mal d'erreurs possibles
Au passage, tu utilises quoi pour le dev ? Y'a moyen d'avoir un IDE avec location correcte des déclarations des variables et fonctions, et lancement de scripts php simples (tests) ?
Dernière modification par Guigolum (18-12-2010 13:28:37)
Hors ligne
Bof, une moyenne pondérée en tenant compte des bonus, avec un soupçon d'aléa me paraîtrait bien moi.
En même temps je ne suis pas artiste dans l'âme (on ne peut pas tout être, j'ai déjà 11 aptitudes)
Hors ligne
Moi je pensais à un jet aléatoire pondéré par les caracs, mais ce genre de propale n'aurait pas sa place ici, puisque le sujet est l'existence possible d'un bug, et la correction d'un autre, dans l'art, pas la modification de son fonctionnement.
perso j'aurais fait un code du genre
$bonused_carac=null;
$rnd = random(); // dans [0,1[
$sum = $joueur->sum_carac_conus();
$seuil=0;
for $carac in allCaracs() {//allCaracs est une énumération
seuil+=$carac->getBonused($joueur);// allCaracs.vitalite.getBonused($joueur) renvoie $joueur.totalVitalite
if($seuil/$sum >$rnd) {
$bonused_carac=$carac;
break;
}
}
if($bonused_carac==null) {
system.log.critical('failure on getting the bonused carac, trace : '.getStackTrace().', player : '.$joueur->fullDescription());
$joueur->log("Il y a eu une erreur lors de l'attribution des caractéristiques");
$bonused_carac=allCaracs.vitalite
}
Dernière modification par Guigolum (18-12-2010 13:51:43)
Hors ligne
Et à "je laisse un codeur vérifier si bug il y a".
Un "d'après le code c'est effectivement normal" aurait été suffisant
Je t'encourage quand même à éditer les informations chiffrées maintenant qu'on a eu ce qui était nécessaire pour discuter.
A part cela, le système actuel a au moins l'effet d'éviter l'aléatoire. On peut voir ça comme négatif comme dans le cas de Bernephos, mais ça peut être aussi positif, comme le disait Zephyr sur un autre sujet : parce que l'art est une aptitude couteuse, on peut vouloir obtenir le résultat souhaité plutôt qu'être soumis à l'aléatoire. Surtout selon l'usage qu'on veut faire des toiles.
Une modification qui pourrait être positive dans certains cas pourrait également rendre l'art moins intéressant à d'autres. Idéalement je préfèrerai un système qui puisse éviter cette situation.
Hors ligne
@Asteria : Comme pour le reste, je ne sais pas "ce qui est bien" (c'est pas mon truc), mais je peux faire "ce qui est demandé"
Quand je propose des solutions, c'est juste par rapport aux avis que j'ai lus ^^
@Guigolum : Pas besoin de if.
A moins que j'ai mal compris, le but est de sélectionner un nom aléatoirement entre toutes les variables ayant la valeur max.
Perso, je fais ça de cette manière :
$premier = 2; $second = 5; $troisieme = 5; $quatrieme = 4;
$tableau[$premier][] = 'premier';
$tableau[$second][] = 'second';
$tableau[$troisieme][] = 'troisieme';
$tableau[$quatrieme][] = 'quatrieme';
ksort($tableau);
$max = array_pop($tableau);
echo 'Valeur choisie : ' . $max[mt_rand(0, count($max)-1)] . "\n";
Ici, on aura 'second' ou 'troisieme' de choisi, aléatoirement (et de manière équiprobable)
Pour le dev, va lire mon topic dans la section "Arkhan - DEV" ^^
J'utilise un serveur (sous Debian 5.0) pour exécuter le PHP (via apache ou en console, peu importe).
Dernière modification par John Gindrelli (18-12-2010 14:26:37)
Hors ligne
John Gindrelli, il n'y a pas de souci
Hors ligne
J'ai pas compris ton code :
$tableau[$premier][] = 'x', ça veut dire que j'affecte la valeur 'x' au premier indice non utilisé dans $tableau[$premier] ? Un genre de $tableau[$premier][lastIndexOf($tableau)+1]='x' ?
Ensuite, pourquoi fais tu un tri sur le tableau ? Il ne suffit pas de récupérer la dernière valeur stockée dans le tableau ?
Pour le dev, je ne cherche pas à installer le jeu, mais à exécuter des scripts sur des installations partielles facilement. Du genre, charger rapidement un snapshot partiel, et dans l'autre sens, générer des snapshots partiels (suppression de certaines données selon leur age, des mps) modifiés (déplacement automatique des joueurs. Cela permettrait de tester plus facilement certains bugs et certaines fonctionnalités.
Mais je retourne(rai) voir, j'ai peut être lu le mauvais post.
Hors ligne
(Je réponds en MP pour éviter de dévier trop le topic ^^)
Hors ligne
Guigolum a écrit:
/!\ infos tirées du code /!\
D'après ce que j'ai lu du code :
Pour avoir un bonus de 2, avec disons le niveau 5 en art, il faut avoir >35 en dex ou esp(selon le type d'œuvre que l'on cherche à faire).
Avec le niveau 10, il faut > 15 en dex ou esp.
Avec le niveau 1, il faut >150 en dex/esp
Avec le niveau 20, il faut ~10 en dex/esp
La bonne nouvelle, c'est que les bonus sont pris en compte
La mauvaise ,c'est qu'actuellement seule la carac la plus importante de base est utilisée pour déterminer le type de bonus.
Bouhhhh !
C'est pas ca x)
En tout cas j'ai ma meilleure carac à 35, art 6, et ma toile ne m'a donné qu'un bonus +1 pour 3h, comme d'hab, en fait.
Mauvaise lecture du code ou bug ?
Hors ligne
Une remarque, une question :
- Il dit supérieur à 35, ça peut donc être strictement supérieur, ou supérieur ou égal. Donc c'est possible que 35 ne soit pas suffisant et qu'il faille 36.
- Ta meilleure carac, c'est également la carac qui compte pour fabriquer l'oeuvre ? (Dex ou esp, selon le type)
(Sous réserve que les chiffres donnés par Guigolum soient justes, mais je n'ai pas accès au code)
Hors ligne
Hum ....
Ouais Ok, j'ai rien dit, je reviendrai quand je serai lvl 7 en art, pour avoir des oeuvres qui donneront vraiment +2
En fait, erreur de lecture de ma part, j'avais compté avec la carac bonus de l'oeuvre, plutôt que la dex (je fais des peintures).
Hors ligne