Pilote automatique : le serveur joue même quand le client est connecté
Quand son propriétaire est connecté mais ne touche à rien depuis 20 s, Crashtroller continue de jouer seul sous ses yeux. Le moindre geste humain (clavier, sort, attaque, clic sur un PNJ) suspend l'IA. Ajout d'un mode débogage des décisions.
- Commit
- 2bf59b3
- Build
- Build réussi (1 min) · Cible worldserver
Pourquoi
Premier essai : le client du propriétaire s'est reconnecté 5 s après le démarrage, l'IA a rendu la main… et le personnage est resté immobile. Un personnage indépendant doit jouer aussi quand on le regarde.
Comment
- Le hook
CanPacketReceiverepère les gestes volontaires d'un client (MSG_MOVE_START_*,MSG_MOVE_JUMP,CMSG_CAST_SPELL,CMSG_ATTACKSWING,CMSG_USE_ITEM,CMSG_GAMEOBJ_USE,CMSG_GOSSIP_HELLO,CMSG_QUESTGIVER_HELLO,CMSG_LOOT, vols) et horodate la dernière action humaine. - Après
FreeWill.AutopilotAfter(20 s) sans action, le même cerveau pilote le personnage via la session du client : le joueur voit son personnage marcher, combattre et rendre ses quêtes. - Une action humaine arrête net le déplacement en cours : l'humain a toujours la priorité.
- Statut de contrôle :
ai(sans client),autopilot,human,offline. - Correctif : plus de faux « propriétaire parti » pendant le chargement du personnage.
FreeWill.Debugtrace les décisions (chemin, distance, ligne de vue, type de mouvement) sans répétition.