Roh, j'avais posté un super message, mais JVC l'a annulé ou je ne sait quoi, du coup ça a rien envoyé 
En fait, je disais que la seule solution pour ça c'est que tu tp le joueur au zombie, puis de nouveau à la cabine, et tu détectes les coordonnées du zombie pour savoir quand il est dans une caverne par exemple.
D'ailleurs si tu as du mal à détecter quand le zombie entre dans une caverne, tu peux très bien mettre des vitres à la couche 255 aux endroits où il y a des grottes, et tu fais cette commande en répétition :
/execute @e[name=Jeff] ~ ~ ~ testforblock ~ 255 ~ minecraft:glass
Tu peux adapter la commande en faisant par exemple des vitres jaunes là où il y a des grottes, des vitres bleues là où il y a des forêts, si tu veux faire en sorte qu'il y ait quelque chose qui change selon l'endroit (une night vision dans la grotte mais pas dans la forêt...) du coup tu adaptes la commande, un comparateur et tu sais quand le zombie entre dans la grotte, tu peux appliquer les effets si tu veux qu'il y en ait et tu tp le joueur au zombie, dès que le zombie sort de la grotte (quand le comparateur s'éteint), tu tp à nouveau le joueur à sa cabine. Mieux, tu peux mettre des vitres en couche 255 quand il n'y a rien, et quand il y a de la grotte ou quoi, des vitres colorées, ça te permettra si ta grotte débouche sur une forêt de ne pas te faire tp à nouveau à la cabine ;)