| [19/02/2005] Aider à l'évolution de TDS | Retour index |
| Pour un meilleur jeu |
| wawash | 19/02/2005 - 12:12 | ||||||||||||||||
| [pid:7402] | Comment aider TDS ? Je vous encourage à lire la page "Nous Aider" qui vous indique les nombreuses façons de contribuer à l'amélioration et à l'évolution du jeu. Ci-dessous vous trouverez le détail concernant une aide au niveau du codage du jeu. Pourquoi nous aider au développement ? Que vous vouliez vous faire la main sur le PHP, que vous vouliez voir apparaître dans le jeu vos idées (faites de vos mains), que vous vouliez que le développement aille plus vite, que vous vouliez être généreux, que vous vous vouliez apporter votre pierre à l'édifice, que vous vouliez faire des trucs de fou, que vous vouliez tout ce que vous voulez .... Nous accepterons votre travail ! Comment ? Tout simplement en créant des modules. A l'heure actuelle je prépare la possibilité de créer des PNJ et des sorts pour la magie. Ci-dessous j'expliquerai comment faire pour chaque type de module. Il ne vous restera plus qu'à coder votre PNJ ou votre nouveau sort, et une fois terminé je l'intégrerai au jeu. |
||||||||||||||||
| wawash | 01/03/2005 - 15:27 | ||||||||||||||||
| [pid:8095] | PHP et HTML : késako Je ne puis faire ici un cours exhaustif sur le HTML et le PHP en plus des tutorials sur les modules de TDS. Par contre je vais essayer de réunir ici les meilleurs liens pour apprendre et comprendre à la fois le HTML (langage de base d'internet) et de PHP (langage évolué qui permet de rendre interactif le HTML). http://www.siteduzero.com/ http://www.az-php.com/ |
||||||||||||||||
| wawash | 01/03/2005 - 17:04 | ||||||||||||||||
| [pid:8099] | Création d'un nouveau type PNJ : Vous pouvez créer vos propres métiers de PNJ. Par exemple à l'heure d'aujourd'hui il manque les métiers de tavernier, vendeur de potion, banquier, etc... Vous trouverez en fin d'explications qui s'occupe de quoi. Nous restons ouverts à toute proposition de métier non prévu. SOMMAIRE A - Définir le métier B - Création du fichier PHP C - Préparation du fichier PHP D - Les éléments de base E - Ajouter des fonctionnalités F - Les variables G - Tester son PNJ H - Fiche perso I - Récapitulatif et envoi de son travail J - Créations en cours TELECHARGER LE PHP DE BASE ET UN EXEMPLE POUR PNJ >>> ICI <<< A - Définir le métier : Tout d'abord il vous faudra choisir quel métier vous voulez coder. C'est ce que nous allons appeler PNJ_TYPE. Exemple pour les moines, PNJ_TYPE = MOINE Chaque moine repose donc sur le même code. B - Création du fichier PHP : La gestion des métiers des PNJ est modulaire au niveau du code source. Vous devrez donc me fournir un fichier portant le nom : pnj.{PNJ_TYPE}.php Exemple pour les moines on a le fichier pnj.moine.php Donc créer un fichier PHP (personnelement je créé un fichier texte que je renomme en .php). Ensuite ouvrez votre éditeur favoris PHP (perso j'utilise EditPlus2) et on est partie ! C - Préparation du fichier PHP : bah c'est simple il suffit de copier/coller dans votre fichier le code ci-dessous : ATTENTION ! Le code ci dessous est donné à titre d'apprentissage, pour le fichier de base complet cliquer sur le lien en dessous du sommaire !!!
Quatre variables principales sont obligatoires dans le codage du PNJ. $PNJ est tout ce qui concerne le PNJ, à savoir son nom, son indice de quête etc. $PERS est tout les caractéristiques du perso entrain de parler au PNJ $texte_pnj est les paroles du PNJ $texte_joueur est les paroles du perso Le module se décompose en étapes définies dans le SWITCH, alors que la fonction func_pnj_affichage assure l'affichage de l'étape. Les quatres étapes définies ci-dessus sont obligatoires : chaque PNJ débute sa conversation par "debut" et la quitte par "fin", mais répond également à une question sur une quête dans "quete" ou à une demande d'indices/astuces sur TDS dans "histoire". D - Les éléments de base Comment une discussion avec un PNJ se passe-t-elle ? A l'exception de "fin", dans toutes les étapes le PNJ parle à l'aide de la variable $texte_pnj et le perso répond à l'aide de la variable $texte_joueur, sauf que ce dernier doit permettre le choix entre une ou plusieurs réponses à travers des balises <input type=radio>.
Bon dans ce cas ce n'est pas trés interactif car on ne sait pas vers quelle étape se diriger une fois que le joueur a sélectionné sa réponse. Nous allons donc ajouter à chaque "input radio" le champ name='etape' et value='{ma prochaine etape}'. Par exemple si on modifie l'exemple ci-dessus on aura :
Donc dans cet exemple si je choisis "Je veux une astuce" et qu'on valide, on va directement à l'étape "histoire" où le PNJ est censé raconter une astuce. Dans le cas de l'étape 'fin', seul le PNJ parle, donc la variable $texte_joueur ne doit pas apparaître !
Avant de passer à l'ajout de fonctionnalités spécifiques au métier de votre PNJ, les quatres étapes que nous venons de voir sont obligatoires et sont déjà implémentées dans le fihier PHP de base téléchargeable au début de ce message. Seules les paroles du PNJ et du joueur sont modifiables. Note : n'oubliez pas de metre la valeur "checked" à UN des "input radio" du joueur pour chaque étape afin d'avoir un choix par défaut ! E - Ajouter des fonctionnalités Bon notre bonhome ne fait pas grand chose là ! Nous allons donc le spécifier un peu et nous prenons pour exemple un jeu (utile pour le tavernier par exemple). Imaginons tout simplement que votre personnage choissise entre 1 et 2, et le PNJ le "devine". C'est partie ! Tout d'abord il faut comprendre que nous utiliserons un formulaire HTML caché ! Je vous conseille de vous rapprocher d'un tutorial HTML et/ou PHP pour mieux comprendre. Pour notre exemple nous allons déjà permettre au joueur de choisir "Je veux faire un test" avec le code suivant :
Nous voyons ici que l'étape appelée si on clique sur "Je veux faire un test" est "test1". Donc nous devons rajouter une étape "test1".
Ok sauf que là il ne se passe rien ... Il faut coder le "test1". Ajoutons donc au joueur la possibilité de choisir entre 2 chiffres à l'aide des balises HTML <select> et <option>. Ce qui nous donne :
On remarque ici que le joueur choisit son chiffre (par défaut le chiffre 1 est proposé) et lorsqu'il valide sa réponse, l'étape suivante est "test2" pour traitement de son choix. Dans l'étape "test2" on va récupérer le choix du joueur grâce à la variable PHP $_POST['{nom de votre réponse}']. Ici le <select> porte le nom de "mon_test" donc le résultat se retrouvera dans $_POST['mon_test']. Enfin il suffit juste de mettre en forme le résultat dans la bouche du PNJ, ce qui donne :
J'ai même ajouté - une fois que le PNJ a trouvé le chiffre - la possibilité au joueur de rejouer (en allant directement à l'étape "test1") ou bien de revenir au début de la conversation. F - Les variables Nous avons vu les 2 variables qui permettent d'afficher les paroles du PNJ et du joueur, à savoir $texte_pnj et $texte_joueur. Nous avons aussi $PNJ. Cette variable est un tableau et elle contient - hormis les valeurs que vous rajoutez comme vu dans la partie précédente - les colonnes suivantes : $PNJ['pnj_pseudo'] : il s'agit du nom du PNJ $PNJ['pnj_texte'] : indice pour la quête $PNJ['etape'] : donne l'étape en cours dans la discussion Concernant $PERS son statut est un peu particulier, elle contient les caractéristiques du joueur qui parle. Je verrais au fur et à mesure les infos que je donnerais pour cette variable. N'hésitez pas à me demander coment avoir accès à telle ou telle info de la BDD (nombre de PA, Vie, etc.) Pour vos propres variables : pas de variables globales, si vous voulez conserver des infos faites les passer par le formulaire ! G - Tester son PNJ Une interface de test est disponible dans le package à télécharger au début de ce message. Il permet de tester votre fichier pnj.base.php. Pour pouvoir l'utiliser il vous faudra installer EasyPHP (c'est le plus simple), copier tous les fichiers du package dans le répertoire C:\{répertoire d'EasyPHP}\www\tds. Pour tester, ouvrez votre navigateur internet favori et taper l'adresse : http://localhost/tds/interface.php. Par défaut l'interface pointe vers le fichier pnj.exemple.php (cela vous permet de vérifier le bon fonctionnement). Ensuite il vous faudra modifier la fin du fichier interface.php en modifiant l'include : mettre include ("pnj.{votre type}.php");. En haut du fichier vous trouverez la définition de la variable $PNJ que vous pouvez modifier à votre guise. Si vous avez des questions ou rencontrez des difficultés, n'hésitez pas à poser des questions. H - Fiche perso Comme tout travail mérite salaire, en plus d'avoir son code (s'il est validé) en ligne sur TDS, vous aurez la possibilité de créer un PNJ du métier que vous avez créé. Voici les informations dont j'ai besoin pour créer votre perso : Son type (PNJ_TYPE) Son avatar Son nom Sa phrase par défaut quand il n'y a pas de quête en cours (exemple : Je sens que notre monde est en danger....) I - Récapitulatif et envoi de son travail Envoyez votre travail (ou vos questions) directement sur mon adresse email : wawash AT hotmail DOT com avec comme sujet "TDS : DEV PNJ [(le type de PNJ)] (votre pseudo)" Vous me joigniez à votre mail en pièce jointe votre fichier PHP portant le nom défini plus haut (pnj.{PNJ_TYPE}.php). N'oubliez pas de bien commenter votre code et de compléter les champs en commentaire en début de fichier (votre nom, date, version, votre email, nom perso, etc.) Dans le message du mail vous me mettez ce qui est demandé en H. Une fois envoyé, je vais tester et valider votre code. Vous aurez une réponse plus ou moins rapidement, donc patience ! Pour toutes questions, demande de conseils, etc, je suis joignable souvent sur IRC #terres-divines, sur MSN et par mail. J - Créations en cours tavernier : Camus banquier : Jarel (en cours) vendeur de potions : Sendara (en cours) bibliothécaire : Sunblade (en test) indicateur : Dethol dalicéros : Sendara cartomancienne : Seghmittem (en test) je reste ouvert à toutes propositions de nouveaux PNJs |
||||||||||||||||