Forum du Secteur-lambda
Nous sommes le 09 Sep 2010 08:19 21

Heures au format UTC + 2 heures




Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
 Sujet du message: (TUTO) Les bases de l'ACS
MessagePosté: 13 Mar 2010 18:56 32 
Hors ligne
Modérateurs
Avatar de l’utilisateur

Inscription: 27 Mar 2009 16:31 23
Messages: 107
Localisation: nontron (24)
IMPORTANT
Avant de commencer votre mapping et vos scripts il faut absolument configurer votre port correctement:

ZDOOM et ZDAEMON
Dans configuration choisissez zdoom in hexen format.
Sinon impossible d’ouvrir « l’EDIT BEHAVIOR LUMP » qui permet de réaliser des scripts.

GZDOOM
Aucun soucis ce port possède déjà toutes les actions d’hexen.

I MON PREMIER SCRIPT
1.introduction

Le script ACS est un langage puissant :
Il est composé d’une bibliothèque contenant un large nombre de fonctions:
Pour chaque map que vous réaliserez, il faudra toujours introduire votre script par cette directive :

#include « zcommon.acs »

Puis ensuite nos scripts, c’est a dire ou l’on entrera toutes nos informations:

Image

Votre script, notre numéro de script, (void) signifie vide.
Les accolades indiquent le début et la fin de notre script 1

2.La map

Créez une nouvelle map et placez y une porte et un interrupteur :

Image
Vous devriez obtenir a peu près cela.

Maintenant passons a nos ligne d’actions :
Pour l’interrupteur attribuez lui la ligne d’action 80.

Image

« La ligne d’action 80 » permet d’exécuter un script
« Script number »  c’est votre numéro de script 

Ensuite pour votre porte:
Identifiez votre secteur tag et mettez lui la valeur 1


3. Le script

Maintenant on va l’ouvrir cette porte!
Mais par script histoire que vous compreniez doucement le principe du codage ACS

Image

Copiez le code ci-dessus.


La fonction DOOR_OPEN permet d’ouvrir une porte
Elle prend deux arguments que l’on inscrit entre parenthèses.

Tag : qui est la valeur de l’étiquetage de notre porte (donc 1 ici)
Speed : qui détermine la vitesse d’ouverture (voyez un petit peu par vous même en changeant la valeur de « speed ».

Après votre parenthèse surtout n’oubliez pas le « ; » qui determine la fin de votre fonction.


Ensuite compilez

4.le message d’erreur


Heureusement que dans l’éditeur de scripts, on sait a peu près ou se situent les erreurs.
En général avant la ligne ou se situe la croix.
Ici ce code ACS contient une erreur évidente

Et voilà ce qui arrive quand on oublie le« ; » a la fin de notre fonction!

Image


Bon ce script ne sert pour l’instant pas a grand chose vu que cette porte, on l’a fait ouvrir par une ligne d’action en général

Nous allons voir les avantages du script ACS


II Les avantages du script ACS


Dans doom builder, il est impossible de donner plus d’une action a un secteur, avec une seule ligne d’action en même temps

Exemple : on ne peut pas dire à notre porte de s’ouvrir et que le sol du secteur de cette porte descende en même temps.
Et pourtant c’est l’exercice que je vais vous proposer

Nous allons reprendre notre carte et monter le secteur de la porte à 64px
Et remonter notre porte au niveau de ce nouveau sol

Exemple : si vous partez d’un sol de 0px et d’un plafond de 128px
Metez les valeurs suivantes:
-Ceiling 64
-Floor 64


Puis testez ce code

Image

FLOOR_LOWERBYVALUE
Cette fonction prend 3 valeurs:
-le tag
-le speed
-la valeur dont on abaisse le sol

Compilez puis testez votre map .

Bien maintenant nous allons faire apparaître un message à l’écran!!
Exemple : au moment ou vous ouvrez la porte, le message vous indique que la mission est accomplie

Copiez ce code ACS

Image

PRINT et PRINTBOLD sont deux fonctions qui permettent d’afficher du texte à l’écran
Entre parenthèses (s: ) fait appel à une chaine de caractère qui permet d’écrire du texte entre guillemets .

Voilà vous pouvez maintenant écrire le message que vous souhaitez!!


la suite pour bientôt...

_________________
Je dis "tiptronic"
Tu dois l'accepter!!


Haut
 Profil Envoyer un e-mail  
 
 Sujet du message: Re: (TUTO) Les bases de l'ACS
MessagePosté: 07 Mai 2010 11:02 46 
Hors ligne
Modérateurs
Avatar de l’utilisateur

Inscription: 27 Mar 2009 16:31 23
Messages: 107
Localisation: nontron (24)
CHAPITRE 2 : PRINT et ID THINGS


Maintenant que vous savez faire deux trois petits scripts, on va se concentrer un peu plus dans une première partie sur la fonction « print ».

COLORER VOS MESSAGES
Nous allons voir dans un premier temps comment colorer nos messages à l’écran :
Reprenons notre « script 1 » et nous allons le colorer en bleu.

Copiez ce code

Image


Regardez bien la fonction print :
-Le \c indique qu’on colore une chaine de caractères.
-Et [blue] indique la couleur que l’on donne à notre message.

Essayez le meme code en remplaçant « blue » par :
« green » « black »
« yellow » « red »
« white » « purple »
« black » « gold »

Il en existe d’autre : pour les connaître je vous invite à consulter le wiki zdoom :
http://zdoom.org/wiki/Print


PLUSIEURS MESSAGES A L’ECRAN

AH!! Ici nous allons voir une nouvelle fonction que vous utiliserez très souvent pour l’animation.
Et pour plein d’autre script!!

-Vous allez mettre un second message à l’écran en dessous du premier.
-Colorez le en vert
-Ecrivez à l’interieur « nouvelle mission ».

Puis entre les deux une fonction « delay » qui va permettre d’animer un peu nos messages

Le delay va vous donner un temps d’attente entre les deux messages
Il se mesure en « tics »
Il faut savoir que 35 tics = 1 seconde

Voici le code complet :

Image


Retenez bien ceci cette fonction delay on va très vite s’en reservir!!


ID THING ET MAP SPOT

Cette partie va être un petit peu plus longue mais assez simple :

Dans la carte placez un interrupteur et un nouveau secteur.
Dans ce nouveau secteur nous allons fabriquer une cage.
Peu importe la texture que vous lui donnez.

(Rappel : n’oubliez pas de texturer les "backside middle" et "frontside middle" puis de cocher les cases « impassible » « double side » et « lower umpegged »)

Sélectionnez ici notre texture pour la cage :

Image

Allez « linedef action »
Attribuez lui la ligne d’action 121
Et mettez la valeur 1 à « set thing ID»

C’est quoi un « ID THING » et ça sert à QUOI? :-?

En gros avant on ne pouvait que donner des actions (tag) par rapport à un secteur.
Vous venez de donner une valeur à une ligne cette fois ci!! Vous pouvez identifier un « thing » de la meme manière d’où le nom ID thing.!!

ET là vous allez pouvoir en créer des choses!!Place à votre imagination!!

Bon aller!! Au boulot!! :-x
Maintenant on va faire en sorte que notre petit interrupteur nous enlève cette cage!!
Et surtout qu’on puisse passer en suite de l’autre côté!!
Bon!! Il va falloir créer un deuxième script. (script 2 (void))

Donc cliquez sur la ligne du deuxième interrupteur et mettez lui l’action 80 (pour exécuter un script).
Et mettez lui la valeur 2 (puisque ça sera le script 2).

Ensuite nous n’avons plus qu’à écrire notre script !! :-D

Copiez ce code à la suite du premier script et je vous explique tout ensuite :

Image

Ce script permet d’enlever la texture de la cage et de passer à travers la texture.

-SETLINETEXTURE
: cette fonction permet d’ajouter une texture a la ligne de l’ID thing.
Elle prend comme argument (l’ID thing choisi, le coté de la texture, l’endroit de la texture, le nom de la texture.

Sur cette première ligne de code, on s’intéresse à la texture en "Front Side" (plan visible de devant)
L’ID thing à la valeur 1, mais vu qu’on décide d’enlever la texture on utilise le « - » entre guillemets:
Et oui à chaque fois que vous ferez appel à une texture ou pas il faudra toujours la mettre entre guillemets.

-SETLINEBLOCKING : cette fonction active (ou désactive) une ligne infranchissable.
Elle prend comme argument (l’ID thing, OFF ou ON)

Je vous laisse deviner que "on" ajoute une ligne infranchissable et que "off" fait le contraire. :P


On fait de même pour la texture en "Back side" (plan de derrière) ne l’oubliez pas !!
Sinon il y aura un bug quand vous voudrez revenir dans les premiers secteurs!!

Rien de bien complexe pour les "ID thing" !!

LES MAP SPOT

Rassurez vous c’est encore plus facile!!
Vous allez placer un "map spot" au début de votre map.
Il se trouve dans les things précisément dans l’onglet zdoom.

Cliquez dessus et allez dans l'onglet Effects :
-Attribuez lui l’action 121 (dans Thing Action).
-mettez la valeur de l’ID thing =2 (thing tag).

Image

Ensuite on passe au script!!
Reprenez votre script 2 et copiez le code suivant à la suite de celui ci dans les accolades.

Image

THING_SPAWN : comme son nom l’indique va donner une action à notre map spot. (téléport d'un thing)
Ici on téléporte "quelque chose" à l’endroit du map spot.

Les arguments sont (thing tag, *spawn number(1) , l’angle , et un autre argument :-? )
* en fait ça peut etre n’importe quel thing !! Il vous faut une liste de tout les thing de doom?

Ok le temps de comprendre ce qu’il se passe testez votre map!!


Je vous donne la liste des « spawn numbers »
http://zdoom.org/wiki/Doom_spawn_numbers

Voilà un chapitre qui se termine et j’espère que vous allez bien vous amuser avec tout ça!!

Bientôt nous aborderons l’animation et plus tard petit peu de programmation avec des conditions, des variables et des boucles!!


Exercez vous!! ;)

_________________
Je dis "tiptronic"
Tu dois l'accepter!!


Haut
 Profil Envoyer un e-mail  
 
 Sujet du message: Re: (TUTO) Les bases de l'ACS
MessagePosté: 07 Mai 2010 11:16 43 
Hors ligne
Admin
Avatar de l’utilisateur

Inscription: 29 Aoû 2007 22:35 37
Messages: 1049
Localisation: local
Bon boulot tony,
pour les spam id on avait deja bien commencé le ressencement ici même:
viewtopic.php?f=2&t=51
et mieu détaillé au passage :)

_________________
Image
Image

Pierre qui roule n'amasse pas mousse...
Loués soient les Lambdiens.


Haut
 Profil  
 
 Sujet du message: Re: (TUTO) Les bases de l'ACS
MessagePosté: 07 Mai 2010 11:37 56 
Hors ligne
Modérateurs
Avatar de l’utilisateur

Inscription: 27 Mar 2009 16:31 23
Messages: 107
Localisation: nontron (24)
Oui c'est clair que c'est beaucoup mieux et en français en plus :D
J'éditerai le dernier post pour mettre la suite!!

_________________
Je dis "tiptronic"
Tu dois l'accepter!!


Haut
 Profil Envoyer un e-mail  
 
 Sujet du message: Re: (TUTO) Les bases de l'ACS
MessagePosté: 05 Juil 2010 16:41 56 
Hors ligne
Lambdien
Avatar de l’utilisateur

Inscription: 11 Avr 2007 21:42 34
Messages: 1221
Localisation: Angers
Va falloir penser à ajouter ça dans la partie mapping.

_________________
La dictature, c'est ferme ta gueule. La démocratie, c'est cause toujours.
- Coluche


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 

Heures au format UTC + 2 heures


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group

Secteur-lambda © 2002-2010