4t4chris Posted March 31, 2018 Share Posted March 31, 2018 Dans Radiant Dessinez un brush (porte) par défaut : 96 de haut / 56 de haut / 2 epaisseur à l'opposé de la poignée, dessinez un brush (qui touche la porte, c'est la charnière ou axe de rotation) de la même hauteur de la porte , mais de largeur 1 unité avec la texture (tools, origin) comme ceci Une fois fait, dé sélectionnez tous les éléments. Sélectionnez la porte en premier , puis le brush Origin, et dans votre écran 2D (clic droit souris) allez dans Script>brushmodel Les 2 éléments vont prendre la couleur bleue. Maintenant nous allons dessiner un brush Trigger , de la même hauteur de la porte mais plus grand devant et derrière. (c'est la zone, ou le joueur, verra un message pour ouvrir et ou fermer la poste) une fois le brush dessiné et toujours sélectionné, depuis l'écran 2D , clic droit souris pour ouvrir le menu et allez dans trigger>use_touch. Avec le Trigger séléctionné , appuyez sur la touche "N" pour ouvrir la fenêtre "Entity", et entrez les Clé (key) /Valeurs (value) suivantes : Key: targetname Value: door_trig Key: hintstring Value: PLATFORM_HOLD_TO_USE Key: cursorhint Value: HINT_ACTIVATE Key: count Value: 90 (90 ou -90 suivant l'angle d'ouverture) Maintenant, le Trigger est configuré, il suffit de lier le Trigger à la porte (et à la charnière), et comme la porte et la charnière sont déjà une famille de script_brushmodel, nous sélectionnons tout d'abord le Trigger, puis une seule pièce de la porte, et appuyez sur "W". Une LIGNE bleue avec une flèche pointant du Trigger vers la porte devrait maintenant être visible. Et tous les brush doivent être sélectionnés. Porte, charnière et trigger. Côté SCRIPT(le joueur peut ouvrir et ou fermer la porte) Récupérez le contenu du scrip, et copiez le dans un fichier nommé "mp_votremap_doors.gsc", dans le dossier "..\raw\maps\mp\ main() { thread player_closing_doors(); } player_closing_doors() { doors = getentarray("door_trig","targetname"); for(i=0; i<doors.size; i++) { doors[i] thread door_think(); } } door_think() { self.doormoving = false; self.doorclosed = true; self.doormodel = getent(self.target, "targetname"); while(1) { self waittill("trigger"); if(!self.doormoving) { self thread door_move(); } } } door_move() { self.doormoving = true; if(self.doorclosed) { self.doormodel playsound("metal_open"); self.doormodel rotateyaw(self.count, 2, 0.5, 0.5); self.doormodel waittill("rotatedone"); self.doorclosed = false; } else { self.doormodel playsound("metal_close"); self.doormodel rotateyaw((self.count * -1), 2, 0.5, 0.5); self.doormodel waittill("rotatedone"); self.doorclosed = true; } self.doormoving = false; } Mise à jour de vos fichiers 1) Votre fichier : ..\raw\maps\mp\mp_votremap.gsc ajoutez la ligne suivante : maps\mp\mp_votremap_doors::main(); 2) Votre fichier de Zone : \zone_source\mp_votremap.csv ajoutez la ligne suivante : rawfile,maps/mp/mp_votremap_doors.gsc Compiletools et testez votre porte dans le jeu ! Voir la totalité de tutoriel Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.