← GeekServers.gg [DEBUG:1782456837]
Salutation !

Je ne compte plus le nombre de fois où un joueur est tombé des nues lorsque je lui ai appris que n'importe qui peut proposer son script pour aider le serveur. Mais je comprends que ce domaine soit peu abordable au premier coup d’œil et c'est pourquoi je vous propose un petit guide sur comment fonctionne le scripting et comment débuter.


I - Introduction

Avant de commencer, il est important d'aborder quelques notions :

* Un serveur WoW, c'est quoi ? *
Un serveur comme Nostalgeek est un émulateur reproduisant au mieux le comportement d'un serveur officiel de l'époque. Cela signifie notamment que TOUT a été reconstruit de A à Z. Il existe plusieurs projets d'émulateur, la plus part open-source, celui sur lequel est basé NG se nomme C-Mangos.


* Un langage informatique, c'est quoi ? *
Un ordinateur n'est qu'une énorme calculatrice. Il ne peut réaliser que des opérations mathématiques et en plus, il ne comprend que les 0 et 1... Pas facile de communiquer avec lui ! Un langage informatique est justement là pour cela. Il permet de créer une série d'instruction lisible pour nous qui sera ensuite "traduite" en langage machine.

C-Mangos utilise le langage nommé C++.


* Et un script alors..? *
Ce qui est appelé un "script" (souvent sans vraiment savoir ce que c'est réellement) est une série d'instruction visant à créer un effet quelconque souhaité. Lorsqu'on souhaite que notre serveur fasse une nouvelle chose, il faut lui dire de le faire et lui expliquer comment le faire. Scripter le serveur revient à écrire des séries d'instruction qui, une fois implémentée, feront ce pour quoi on les a créées (et si elles le font mal, ça crée des bugs, dont vous connaissez sûrement déjà l’existence).


* Une DB ? *
Une DB (DataBase) est un énorme tableau (comme une grande étagère avec pleins de niveaux et pleins de rangement) dans lequel est rangé plein de données. Pour le cas de notre serveur, c'est là où sont stockés les informations des pnjs, des quêtes, des objets, des chemins de patrouille, ... et même certains scripts simples.


* Un développeur sur NG ? *
Un développeur n'est pas une sorte de magicien qui peut résoudre tous les problèmes d'un claquement de doigt (ce n'est pas non plus un pygargue). Ce n'est pas non plus forcément un Maître du jeu, qui ne sont pas non plus des magiciens.

C'est un joueur comme tous les autres qui a décidé d'arrêter d'attendre (et de se plaindre) sans agir et a pris son courage à deux mains pour aider du mieux qu'il peut le serveur. Il n'est donc pas nécessaire de lui taper sur les doigts si le bug que vous souhaitez voir mourir est toujours là, bien au contraire.

Son passe-temps, c'est de créer ou corriger des scripts afin que les autres puissent jouer tranquille.



II - Je suis volontaire ! Par quoi débuter ?

Afin de bien débuter, il vous faut commencer par apprendre à coder en un langage, et autant commencer par celui qui nous intéresse, le C++. De nombreux guides sont disponibles, tel que celui d'Openclassroom. N'ayez pas peur, cela n'a rien d'insurmontable pour le commun des mortels. Il existe même des langages pour enfant en bas âge pour programmer des robots.

Commencez par faire des petits programmes. Prenez le temps de bien vous exercer.


Même s'il est préférable d'avoir une bonne base en programmation avant, vous pouvez toutefois suivre mon guide pas à pas pour lancer votre propre serveur en local (pas en ligne) et commencer à bidouiller. Cela vous donnera un bon aperçu de l'étendu du travail.


N'essayez pas de résoudre un problème complexe dès le premier jour. Modifiez un peu un script d'instance pour vous entraîner et vous familiariser avec C-Mangos, cela sera déjà pas mal.


Sans même toucher au code, vous pouvez déjà faire beaucoup avec la DB. De la documentation (souvent fragmentaire) est disponible un peu partout sur le net, comme par exemple ici.



III - Premiers scripts

Vous êtes arrivé jusqu'ici ? Félicitations !

Avant de mal coder votre premier correctif, voilà quelques conseils sur comment bien le réaliser :


* Vérifier et revérifier les sources. *
Si vous passez 60h sur un bug et que finalement, cela n'en était pas un ou cela n'était pas comme ça qu'il fallait le corriger... Vous allez l'avoir mauvaise, très mauvaise. Vérifier la solidité des sources avant de vous lancer !


* Bien comprendre le problème *
Pour bien coder votre correctif, il faut déjà bien comprendre comment cela devrait se passer. Assurez-vous d'avoir compris l'ensemble du problème et d'avoir déjà une plus ou moins vague idée de comment résoudre celui-ci.


* Faites relire votre travail par un dev plus expérimenté *
N'hésitez pas à demander de l'aide et surtout à faire corriger/ajuster votre script par un dev avec de l'expérience.


* Ne vous découragez pas ! *
Vous allez passer plusieurs jours rien que pour vous faire à la structure de C-Mangos. Cela va être long et flou, surtout au début. C'est normal de vous sentir perdu sur un projet de cette taille.

Avancez à votre rythme, ne cherchez pas à brûler les étapes et vous y arriverez !



IV - La NostalGeek Scripting Collaboration

Afin de mettre en commun nos efforts et former les nouveaux, j'ai créé une petite équipe avec les autres développeurs amateurs volontaires. Elle est ouverte à tous, en particulier aux débutants.

Nous travaillons ensemble afin d'augmenter la cadence de correction des bugs et permettre à Lorh de s'occuper plus rapidement d'autres développements en attente. Chaque bug corrigé par la communauté, aussi petit soit-il, est un bug en moins sur lequel Lorh n'aura pas besoin de perdre son temps.

J'insiste bien sur le fait que n'importe qui peut apprendre à coder. Cela ne demande aucune compétence physique ou mentale particulière, juste quelques notions de logique à apprendre et beaucoup d'expérience à acquérir avec la pratique.

Je me propose personnellement comme formatrice à tout volontaire le souhaitant. Ne restez pas sur un à priori.



V - Respectez les développeurs (et tous les autres)

Essayez de ne pas oublier que tous les développeurs sont des bénévoles (et qu'en dehors de Lorh, ils sont tous amateurs). Ils ne vous doivent rien et travaillent sur leur temps libre pour votre plaisir.

Evitez donc de vous plaindre que "votre" bug, si facile à corriger, n'est pas résolu avant un autre (surtout si vous n'avez même pas essayé de participer à son correctif). Personnellement, lorsque ce genre de messages désagréables apparaît sur un report, le bug, aussi embêtant soit-il, passe en dernière position sur ma todo-list.

Chaque développeur n'a que 2 mains, est souvent également un joueur et a une vie à côté. Ce que vous pouvez faire de mieux pour l'aider, c'est de participer au scripting.



Si quelque chose n'est pas clair, s'il y a des fautes, ou que vous avez la moindre question, n'hésitez pas à vous exprimer en réponse à ce guide.
Alizia

Maître de jeu


Promis mon fix est pour avant 2018 xD
NOUS AURONT UN JIN'DO FONCTIONNEL ! *agite un drapeau*
Lilianos

<Certified>


Et si on arrive à "débugger" un script (ou a faire en sorte qu'il fonctionne mieux) où est-ce qu'on le propose à l'intégration sur le core de nostalgeek ?
Drielle

<Forsaken>


Drielle a écrit:Et si on arrive à "débugger" un script (ou a faire en sorte qu'il fonctionne mieux) où est-ce qu'on le propose à l'intégration sur le core de nostalgeek ?

Oui
Lilianos

<Certified>


Lilianos a écrit:
Drielle a écrit:Et si on arrive à "débugger" un script (ou a faire en sorte qu'il fonctionne mieux) où est-ce qu'on le propose à l'intégration sur le core de nostalgeek ?

Oui


le coeur de la question c'est "où" :) la réponse ne peut pas être "oui" ;)
Drielle

<Forsaken>


Drielle a écrit:le coeur de la question c'est "où" :) la réponse ne peut pas être "oui" ;)


Pardonnez Lili, les gnomes sont un peu limités.

Je pense que le plus simple est de le poster sur le report bug en rapport avec le dit-script (ou d'en créer un s'il n'existe pas encore).

N'hésitez pas à m'envoyer vos travaux en MP.
Alizia

Maître de jeu


Alizia a écrit:
Drielle a écrit:Pardonnez Lili, les gnomes sont un peu limités.

Image

This.
Prop

<Asylium>


Always look on the bright side of light.
Drielle a écrit:
Lilianos a écrit:
Drielle a écrit:Et si on arrive à "débugger" un script (ou a faire en sorte qu'il fonctionne mieux) où est-ce qu'on le propose à l'intégration sur le core de nostalgeek ?

Oui


le coeur de la question c'est "où" :) la réponse ne peut pas être "oui" ;)

Oh shit, euh bah Alizia a repondu
Prop a écrit:
Alizia a écrit:
Drielle a écrit:Pardonnez Lili, les gnomes sont un peu limités.

Image

This.

Incredible
Lilianos

<Certified>


J'ai corrigé une petite erreur de lien pour la DB (le lien de téléchargement reste le même). Pensez à retélécharger le pdf !
Alizia

Maître de jeu


Même si le C++ vous fait peur, la DB est bien plus accessible et offre une capacité d'action importante sur les bugs.

N'hésitez plus, toute aide est la bienvenue et vous apprendrez énormément.
Wolper


Site avec d'autres hébergeurs pour NG/TGC
http://wow-support.000webhostapp.com/
J'ai essayé de suivre le guide pour créer le serveur, mais perso j'ai eu beaucoups de problèmes pour le créer la, je suis bloqué avec des erreurs lors de la création des extracteur de vmaps, tout ça.. et je comprends pas trop, j'imagine que avec les mises à jour des différents softs le tuto n'est plus trop d'actualité.. Quelqu'un aurait une marche à suivre pour créer un serveur avec les softs mis à jour ?
Glougloubib

<Wipe Forever>


Le tuto n'a que quelques mois, le fonctionnement est donc strictement le même, et si tu suis point par point ce dernier tu ne devrais pas rencontrer de problème.

Pour ce qui est de la NGSC, je doute qu'Alizia donne signe de vie suite au dernier incident.

Quels sont les soucis avec les extracteurs ? Tu parles au niveau de la compilation ?
Wolper


Site avec d'autres hébergeurs pour NG/TGC
http://wow-support.000webhostapp.com/
J'ai réussi à régler mon problème simple problème de Librairie, mais je me demandais si c'était normal que lorsque je rempli la DB Mangos avec scriptDev2.sql il y a des erreurs pendant l'importation? J'ai pas trop suivie ce qu'il s'est passé de quel incident tu parles ? Je suis pas du tout au courant de ce qu'il s'est passé :/
Glougloubib

<Wipe Forever>


L'incident ne concerne que le staff et Alizia, passons.

Concernant les erreurs comme toujours faut donner l'erreur si tu veux avoir des réponses.
Wolper


Site avec d'autres hébergeurs pour NG/TGC
http://wow-support.000webhostapp.com/
J'ai cette erreur lorsque je mets à jour le la DB mangos à partir du z2698

Query:
ALTER TABLE db_version CHANGE COLUMN required_z2697_02_mangos_gameobjects required_z2698_01_mangos_gossip_menu_option bit

Error occured at:2018-08-21 21:40:06
Line no.:1
Error Code: 1054 - Champ 'required_z2697_02_mangos_gameobjects' inconnu dans db_version

J'ai l'impression que je dois mettre à jour en utilisant tous les fichiers dans updates et archives, mais il y en a tellement, j'espère que je dois pas tout faire un à un sinon ça va très long !
Glougloubib

<Wipe Forever>


Oui, il faut bien faire les updates.
Tout ceci est marqué dans le guide pas à pas d'Alizia d'ailleurs (ou le Wiki Cmangos).
Wolper


Site avec d'autres hébergeurs pour NG/TGC
http://wow-support.000webhostapp.com/



Conditions générales d'utilisation et mentions légales - Code de conduite des forums - Contact