12-10-2008, 04:17 PM
Je suis loin d'avoir les compétences requises pour m'assurer et assurer les lecteurs du post qu'il n'y a pas d'erreurs dans ce que je vais avancer. J'attends donc de nos experts qu'ils critiquent / amendent / corrigent mon post, en espérant qu'à terme, un véritable tutoriel sur la sécurité voit le jour (oui je suis intéressé )
Je vais m'essayer à proposer une "architecture" (le mot est pompeux) suite à une conversation que j'ai eu cette semaine pour éviter certaines failles.
J'utiliserais les termes Javascript pour n'importe quel langage "exécuté sur le poste du joueur" et PHP pour n'importe quel langage "exécuté sur le serveur"
Considérons le sujet d'un simple combat (je gagne ou je perd) entre un personnage joueur (PJ) et un monstre (Mob).
La situation initiale :
Le PJ décide de combattre le Mob.
On peut identifier les différentes étapes de résolution (cette liste est indicative peu importe dans le débat si c'est ce qui doit être fait ou s'il en manque)
1) vérification de la capacité du PJ d'attaquer le Mob
As t'il assez de points d'action, est il à bonne distance, etc... ?
si oui alors on lance l'ordre du combat. Je vais formaliser cet ordre sous un format un peu particulier (une fonction, des variables que je nomme)
Je vais m'essayer à proposer une "architecture" (le mot est pompeux) suite à une conversation que j'ai eu cette semaine pour éviter certaines failles.
J'utiliserais les termes Javascript pour n'importe quel langage "exécuté sur le poste du joueur" et PHP pour n'importe quel langage "exécuté sur le serveur"
Considérons le sujet d'un simple combat (je gagne ou je perd) entre un personnage joueur (PJ) et un monstre (Mob).
La situation initiale :
Le PJ décide de combattre le Mob.
On peut identifier les différentes étapes de résolution (cette liste est indicative peu importe dans le débat si c'est ce qui doit être fait ou s'il en manque)
1) vérification de la capacité du PJ d'attaquer le Mob
As t'il assez de points d'action, est il à bonne distance, etc... ?
si oui alors on lance l'ordre du combat. Je vais formaliser cet ordre sous un format un peu particulier (une fonction, des variables que je nomme)
Code PHP :
<?php
function Test()
if (PJ peut se battre avec MOB )
{
Combattre (
{
Combattant 1 : PJ,
Combattant 2 : MOB
}
);
}
}
2) démarrage du combat,
On fait les calculs et on détermine qui est le vainqueur. C'est la fonction Combattre appelée dans le 1)
Code PHP :
<?php
function Combattre ( Combattant 1 , Combattant 2 )
{
/*récupère les données */
.....
/* fait les calculs */
.....
/* lance l'ordre de mise à jour de la bdd via une fonction même format que 1 */
Resultat (
{
Vainqueur : X,
Vaincu : Y
}
);
}