- _DaRk_ a écrit:
- Y'a des gens doués en ACS dans le coin? Je cherche à créer un secret "inter-compatible". En activant un switch sur Map01, on déverrouille une porte sur Map02.
Tu t'y connais certainement plus que moi en ACS, mais je vois peut-être une solution : d'après ce que j'ai compris, il y a un lump BEHAVIOR spécifique pour chaque map, c'est ça ?
Donc en gros, une variable déclarée dans un lump BEHAVIOR ne pourra pas servir dans le lump BEHAVIOR d'une autre map.
La solution ? Manipuler une variable qui pourra être lue par les deux lumps.
Si j'ai bien suivi, chaque lump commence par un truc du genre #include zcommon.acs.
Il te faut donc créer un fichier dark.acs avec une variable entière, mise par exemple à 0.
Dans les deux lumps BEHAVIORs des maps 01 et 02, il faudrait ajouter #include dark.acs au début.
Ensuite, dans la map 01, si on trouve le bouton secret, mets la variable à 1, par exemple. Là, il faudrait vraiment que ça soit modifié en dur dans le fichier, je sais pas si ACS permet ça.
Dans le lump de la map 02, pour ta porte, teste si la valeur de ta variable vaut 0 ou 1, et rajoute le code correspondant à l'action voulue.
C'est le concept de variable globale en programmation, je sais pas si c'est possible en ACS vu que je ne m'y intéresse pas, mais essaye, ça peut peut-être marcher !
Edit : J'en profite pour faire un nouveau sujet, ça peut toujours aider d'autres gens si on trouve une solution, plutôt que de se taper 500 pages de la discussion mapping.
Edit 2 : Si on ne peut pas modifier les fichiers .acs à partir du code, essaye de contourner en écrivant dans le fichier .cfg, rajoute une ligne bidon avec une variable, que tu effaceras à la fermeture
C'est un peu crade mais bon, faut ce qu'il faut. Des experts en ACS donneront sans doute une meilleure solution !
Edit 3 : Enfin bon, il doit forcément y avoir un moyen, vu que ACS ça vient de Hexen et que Hexen repose sur des hubs avec des maps qui communiquent entre-elles....