CramaL a écrit :Pierstroval : dans ta fiche, il y a un problème dans le calcul de l'attaque qui ne prends pas en compte le domaine. Enfin peut-être est-ce volontaire.
C'est "Pierstoval"

Mais oui, c'est tout-à-fait volontaire étant donné que l'attaque peut être faite au CàC ou à distance, et qu'il y a deux domaines pour ça

Lorsque j'aurai implémenté le système d'armes, une fois que ton arme sera affichée, tu verras le bonus à ajouter (donc arme + domaine) à côté, mais pour l'instant, je dois commencer à créer la section psychologie
CramaL a écrit :Pour des fiches jolies à imprimer, le mieux que j'ai vu c'est d'écrire par dessus une image de fond (qui reprends la fiche de perso officielle par exemple, issue d'un scan ou d'un document pdf)
Tout-à-fait, grâce aux fonctions createimage() de PHP, on peut récupérer une image existante, et ajouter du texte à certaines coordonnées. Ainsi, l'image est créée "sur place" par PHP (via une page indépendante) et les fonctions ajoutent le texte à l'image. Une fois fait, le navigateur charge la page PHP avec un ContentType = "image/(png|jpg)". Ou alors, on peut l'enregistrer en changeant le header en tant que download.
Yueyehua a écrit :Salutations à vous !
@Pierstoval
Pour la version imprimable, c'est tout à fait faisable. Je n'ai juste pas fini de faire ma feuille css qui est un peu laissée en plan.
Je ferai également une transformation pdf si j'en ai le temps. (Il doit certainement y avoir une lib php pour ça, non ?)
Voir ci-dessus
Yueyehua a écrit :Pour la sauvegarde, je pensais à un window.open("save.php", "_blank") pour charger une page qui permet de télécharger la page en cours à laquelle on concatènerait un xml rempli avec les informations de la fiche. Pour ce faire, je ferai juste une fonction js pour chercher toutes les informations et structurer sous forme de xml.
Pour le chargement, je ferai le travail inverse. Mais je n'y suis pas encore.
Pourquoi n'optes-tu pas pour une base de données SQL ? Tu sembles avoir un hébergeur, tu devrais en profiter pour créer une BDD (si tu veux, je peux te refiler un dump de la mienne, pour que justement on puisse faire marcher la compatibilité entrer nos applis plus tard

)
Yueyehua a écrit :Pierstoval a écrit :Sinon, je constate aussi que ta page HTML est chargée en texte, de même pour ta source javascript. As-tu pensé à utiliser jQuery ? C'est un outil qui permet de faire des merveilles ! (et tu peux voir un guide de néophyte ICI)
Je n'ai pas bien compris la notion de "chargée en texte" mais effectivement, je n'ai pas pensé à utiliser JQuery. Au début, je pensais que ce serait plus simple et que je n'avais pas besoin d'une lib aussi lourde que JQuery pour faire la fiche mais, au final, je me demande si ce serait pas plus pratique. Mais pour maintenant, j'avoue avoir un peu la flemme d'inclure JQuery et devoir retoucher tout le reste.
Dommage, parce que quand je dis "chargé en texte", je te dis que j'ai environ 15000 caractères de code javascript (compressé sur
http://javascriptcompressor.com/) , et toi 11000 alors que tu as moins de fonctionnalités (puisque tu n'as pas de système pour gérer les métiers & co). D'où l'intérêt de passer à jQuery, pour pouvoir par exemple remplacer ça :
Code : Tout sélectionner
function doubleDesavantagesRefractor(){
var doubled = 0;
for(i = 1; i <= 5; i++){
if(document.getElementById('double_desavantage' + i).checked){
doubled = i;
}
}
if(doubled != 0){
for(i = 1; i <= 5; i++){
if(doubled != i){
document.getElementById('double_desavantage' + i).disabled = true;
}
}
}else{
for(i = 1; i <= 5; i++){
document.getElementById('double_desavantage' + i).disabled = false;
}
}
}
par ça :
Code : Tout sélectionner
function doubleDesavantagesRefractor() {
var doubled = 0,
i = 0,
dbldesv = '#double_desavantage' + i;
for (i = 1; i <= 5; i++) { if ($(dbldesv)[0].checked) { doubled = i; } }
if (doubled != 0) {
for (i = 1; i <= 5; i++) { if (doubled != i) { $(dbldesv)[0].disabled = true; } }
} else { $(dbldesv)[0].disabled = false; }
}
On passe de 19 lignes et 485 caractères à 9 lignes et 339 caractères en non compressé, ce qui n'est carrément pas négligeable
Si je peux me permettre d'apporter une optimisation aussi, je vois ta fonction calculateGlobalDisciplineTotals() qui est assez longue.
Je te proposerais de la remplacer par ceci :
Code : Tout sélectionner
function calculateGlobalDisciplineTotals(){
var i = 0;
for (i = 0; i <= 16; i++) { calculateDisciplineTotal('discipline' + i); }
}
Je t'invite également à beaucoup utiliser
http://www.jslint.com/ pour valider ton javascript. Y'a pas de norme W3C, mais JSLint permet de vérifier les éventuelles erreurs de variables non déclarées, des variables non utilisées, des problèmes de "{" ou "}" en trop et/ou manquants, de voir les fonctions déclarées avant ou après certaines autres (crée des problèmes sur IE et parfois Opera).
Après, l'avantage que tu as, c'est que si tu restes simple dans ton appli, elle sera certainement compatible avec beaucoup plus de navigateurs que la mienne (qui utilise presque à outrance le javascript, et donc n'est pas compatible avec IE8 par exemple).
Ah aussi, penses à faire
valider ta page au W3C au moins de temps en temps pour éviter les trucs moche !
Yueyehua a écrit :Enfin, je n'ai aucune intention de faire un duel de pokemon entre nos deux fiches (mais comme j'aime pas perdre, je risque de relever le défi).

Je serais plutôt d'avis de mettre en commun nos travaux (une fois terminé) pour donner aux joueurs et meneurs les meilleurs outils pour la création et l'évolution de leur personnage. En ce sens, il serait peut-être intéressant qu'on discute d'une dtd ou d'un rng pour rendre compatible entre nos deux fiches toutes les extractions (de type xml) de personnages.
Qu'en penses-tu ?
Je sais que ça va te paraître vieux chieur, mais je continuerai dans tous les cas mon site, quoiqu'il advienne. Je préfèrerais clairement que l'on s'entre-aide chacun l'un et l'autre, car je suis vraiment trop intransigeant pour laisser quelqu'un toucher à mon travail, et ma méthode risque de ne pas être compatible avec la tienne (puisque tu penses à utiliser du xml, et moi je stocke tout dans une BDD).
En plus de ça, j'ai l'intention d'implémenter une pléthore d'autres systèmes, notamment de la modification, un système de gain d'xp, de liste de parties avec quel personnage est dans quelle partie, de sorte que le MJ puisse modifier également chaque personnage, rajouter lui-même de l'xp à ses personnages, etc.
Et tout un tas d'autres idées qui ne me sont pas encore venues en tête, mais dont je sais pertinemment qu'elles apparaitront à un moment ou un autre dans mon crâne-boite-à-idées
