Ciblage, vision et mémoire
Le zombie verrouille en continu sur l'entité vivante valide la plus proche qu'il voit : l'acquisition d'une cible passe uniquement par la vue. L'ouïe ne verrouille jamais rien, elle n'inscrit qu'une position à aller inspecter. Il bascule sur une cible relevée seulement si elle est nettement plus proche que l'actuelle (marge de commutation configurable), sinon reste verrouillé sur sa cible actuelle, et conserve en mémoire la dernière position connue pendant environ 10 secondes après rupture totale du contact.
"Plus proche" autoritaire
Les goals de ciblage vanilla sont retirés au spawn pour que le protocole "plus proche" du
mod reste toujours prioritaire. Sont exclus du verrouillage : les autres zombies, les boss, les armor
stands, toute entité vivante de plus de 5 blocs de haut (géants et grosses créatures de mods), et les sujets
en créatif/spectateur (sauf activation explicite de
targetCreativePlayers, désactivée par défaut). Si
targetPlayersOnly est actif, tout ce qui n'est pas un joueur est écarté en plus.
Vision
Ligne de vue calculée par pas de 0.5 bloc, bloquée uniquement par les blocs réellement opaques. Le verre et la glace, transparents, ne bloquent jamais la vue d'un zombie.
Ouïe
Un bruit ne porte que s'il est réellement produit : marche (vitesse suffisante et sujet non
accroupi), action (attaque, pose, minage, manger, boire), ou cri de douleur. La portée n'est pas fixe. Elle
part de soundBaseRadius (24 blocs) et grandit avec l'intensité : un pas de joueur
porte à 24 blocs multipliés par 1 + la distance parcourue dans le tick, plafonné au double, soit 48 blocs au
maximum. Une action bruyante (casse de bloc, coup de bras) porte d'office à 24 × soundLoudMultiplier,
soit 48 blocs par défaut.
Le silence protège vraiment. Un sujet immobile, accroupi et silencieux derrière un mur opaque est totalement indétectable : ni vu, ni entendu.
Mémoire courte
Une fois la cible totalement perdue (ni vue ni entendue), le zombie continue de se diriger vers sa dernière position connue pendant 200 ticks (10 secondes) avant d'abandonner la piste. Toute détection en direct, vue ou ouïe, écrase instantanément cette mémoire par la position réelle relevée. À l'arrivée sur le point mémorisé sans rien y trouver (moins de 2.5 blocs de distance), il abandonne immédiatement plutôt que d'errer sur place.
Configuration
| Champ | Description | Défaut |
|---|---|---|
| forceNearestTarget | Supprime les goals de ciblage vanilla au spawn. | true |
| targetCreativePlayers | Autorise le ciblage des joueurs créatif/spectateur (champ vit dans FlowConfig, pas TargetingConfig). | false |
| targetSwitchMargin | Marge de stickiness : ne change de cible que si la nouvelle est plus proche que (distance actuelle ÷ marge). | 1.5 |
| soundBaseRadius | Rayon de base d'un bruit normal, multiplié ensuite selon l'intensité. | 24.0 |
| soundLoudMultiplier | Multiplicateur de rayon pour un bruit fort (casse de bloc, coup de bras). | 2.0 |
| soundMoveThreshold | Vitesse minimale pour produire un bruit de déplacement. | 0.08 |
| soundArriveDistance | Distance d'abandon à l'arrivée sur le dernier point connu. | 2.5 |
| targetMemoryTicks | Durée de mémorisation après perte totale du contact. | 200 (10s) |
| failOnAiConflict | Rend fatale la détection d'un mod modifiant l'IA des zombies. À false, le mod démarre malgré le conflit et le comportement devient imprévisible, voir Compatibilité. | true |