mod-free-will : Crashtroller devient un joueur autonome joué par le serveur
Nouveau module écrit de zéro sur le core officiel : le serveur connecte lui-même Crashtroller dans une session sans client et le fait jouer comme un humain — quêtes, combat, butin, repos, mort, marchand, maître de classe, talents, équipement — sans aucune triche.
- Commit
- 2bf59b3
- Build
- Build réussi (7 min) · Cible worldserver
Principe
Aucun module tiers : mod-free-will est écrit pour ce royaume, sur AzerothCore officiel.
- Session sans client : quand aucun humain ne joue Crashtroller, le serveur ouvre une
WorldSessionsans socket et charge le personnage par le même chemin qu'un vrai client (LoginQueryHolder→HandlePlayerLoginFromDB). - Passation : dès que le propriétaire sélectionne le personnage (
CMSG_PLAYER_LOGIN, traité dans le thread monde), l'IA le sauvegarde et le libère de façon synchrone ; le core le recharge pour l'humain. - Aucune triche : chaque action passe par les gestionnaires de paquets du core (accepter/rendre une quête, fouiller un cadavre, vendre, réparer, s'entraîner, apprendre un talent, s'équiper, libérer l'esprit, reprendre son corps) ou par des sorts non déclenchés — coûts, portées, recharges et règles appliqués comme pour un client.
- Déplacements naturels : chemins calculés sur le maillage de navigation (mmaps) puis suivis en spline ; jamais de téléportation ni de ligne droite à travers un mur.
Le cerveau
Boucle de décision exécutée dans le thread monde (cartes à l'arrêt), avec des temps de réaction aléatoires :
- mort → attendre, libérer l'esprit, courir vers son cadavre, attendre que la zone soit sûre, ressusciter (gardien des esprits en dernier recours) ;
- combat → rotation par classe (10 classes), tir à distance pour le chasseur, mêlée au contact ;
- butin, repos assis / nourriture / boisson ;
- marchand (vente des objets gris et inutiles, réparation, munitions, vivres), maître de classe à chaque niveau ;
- quêtes : rendre, prendre (au camp d'abord), remplir les objectifs (tuer, ramasser, explorer) ; abandon d'une quête sans progrès en 25 min ;
- chasse à son niveau, puis flânerie (et un salut aux joueurs qui passent).
Connaissance du monde
Construite au démarrage en ~120 ms : 17 462 entrées de créatures, 2 545 objets de quête localisés (qui les lâche, quel coffre les contient), PNJ de service, zones d'exploration.
Monitoring
Fichier de statut JSON réécrit toutes les 5 s (contrôle, niveau, XP, position, quêtes, activité, objectif, statistiques) et journal des événements.
Premier test
Connecté par le serveur, Crashtroller est allé voir Kaltunk, a accepté « Your Place In The World » et l'a rendue seul.