Murloc Cult

Retour aux archives

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 CanPacketReceive repè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.Debug trace les décisions (chemin, distance, ligne de vue, type de mouvement) sans répétition.