MacreaCity - Forums Macreators: [sa] Créer Une Jauge De Ralentit - MacreaCity - Forums Macreators

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

[sa] Créer Une Jauge De Ralentit SCM Noter : -----

#1 L'utilisateur est hors-ligne   Vicolaships Icône

  • .:: MacreaCodeur ::.
  • PipPipPipPipPip
  • Groupe : MacreaCitizen
  • Messages : 2 305
  • Inscrit(e) : 15-mars 05

Icône du message  Posté 26 août 2008 - 01:20

Créer une jauge de ralentit


Ce tutoriel est à la porté d'un codeur SCM initié, il est vivement conseillé d'avoir réalisé les tutoriels précédents.

1. Présentation et objectifs
Dans ce tutoriel vous allez apprendre à créer et gérer une jauge de ralentit dans GTA San Andreas

2. Etapes de bases:
2.1 Créez un main basic (cf tuto: Le langage SCM)
2.2 Créer un label pour y insérer le code
2.3 Nous allons tout d'abord créer une jauge puis un script pour créer un ralentit.

2.4 Nous allons utiliser l'ocpode
Code
04F7: status text $ralent 1 ligne 1 '1'
('1' sera le textte affiché à l'écran, cette référence n'existe pas donc aucune texte ne sera affiché à côté de la jauge)

Et pour que la jauge soit pleine dès le départ
Code
0004: $ralent = 100

3. Création du ralentit:
3.1 Pour que le ralentit soit déclenché par le joueur nous allons assigner une touche dans une condition, et si cette est pressé le ralentit sera acitvé
Code
:barre_ralentit
04F7: status text $ralent 1 ligne 1 '1'
0004: $ralent = 100

:ralent
wait 0
if
00E1: key_pressed 0 17
jf @ralent
015D: set gamespeed 0.5
(gamespeed 1.0 = normal | 0.5 = 2x plus lent | 0.1 = 10x plus lent)

Maintenant, si vous testez vous aurez bien un ralentit mais la jauge ne se vide pas et le ralentit ne s'arrête jamais, il va donc falloir créer un script qui vas réduire la valeur de la jauge jusqu'a 0 régulièrement et qu'on puisse arrêter (pour pas que la jauge ne passe dans les nombres négatifs !)

Code
:ralent_moins
thread 'moins'
wait 50
000C: $ralent -= 1
jump @ralent_moins
end_thread

:ralent_vide
wait 0
if
0042: $ralent == 0
jf @ralent_vide
wait 0
015D: set gamespeed 1.0
end_thread_named 'moins'


Ce code est pratique car avec un simple calcul vous pourrez définir la durée du ralentit (la vitesse de consommation de la jauge). 50 ms = 0.05 seconde, votre jauge à 100 unités, 0.05 * 100 * 2 = 10. Votre jauge durrera 5 secondes.
L'expression pour calculer la durée de votre ralentit est donc : conso (secondes) * 100 * 1/gamespeed)

Pour l'instant on obtient le code suivant :
Code
:barre_ralentit
04F7: status text $ralent 1 ligne 1 '1'
0004: $ralent = 100

:ralent
wait 0
if
00E1: key_pressed 0 17
jf @ralent
015D: set gamespeed 0.5
create_thread @ralent_vide

:ralent_moins
thread 'moins'
wait 50
000C: $ralent -= 1
jump @ralent_moins
end_thread

:ralent_vide
wait 0
if
0042: $ralent == 0
jf @ralent_vide
wait 0
015D: set gamespeed 1.0
end_thread_named 'moins'

4. Jauge complexe:
4.1 Désormais on veut que la jauge se remplisse une fois vide et qu'on puisse la remettre en marche une fois pleine.

Pour cela il faut qu'une fois la jauge vide, elle se re remplisse et qu'une fois pleine le remplissage s'arrête et que le script retourne au début
Code
:ralent_plus
thread 'plus'
wait 50
0008: $ralent += 1
jump @ralent_plus
end_thread

:ralent_plein
wait 0
if
0028: $ralent >= 100
jf @ralent_plein
wait 0
end_thread_named 'plus'
jump @ralent

5. Conclusion:

Nous avons crée une jauge de ralentit complètement fonctionnelle, qui activera un ralentit, se videra, une fois vide se remplira et une fois pleine sera de nouveau fonctionnelle
Code
:barre_ralentit
04F7: status text $ralent 1 ligne 1 '1'
0004: $ralent = 100

:ralent
wait 0
if
00E1: key_pressed 0 17
jf @ralent
015D: set gamespeed 0.5
create_thread @ralent_vide

:ralent_moins
thread 'moins'
wait 50
000C: $ralent -= 1
jump @ralent_moins
end_thread

:ralent_vide
wait 0
if
0042: $ralent == 0
jf @ralent_vide
wait 0
015D: set gamespeed 1.0
end_thread_named 'moins'
create_thread @ralent_plein

:ralent_plus
thread 'plus'
wait 50
0008: $ralent += 1
jump @ralent_plus
end_thread

:ralent_plein
wait 0
if
0028: $ralent >= 100
jf @ralent_plein
wait 0
end_thread_named 'plus'
jump @ralent


Par Vicolaships

0

#2 L'utilisateur est hors-ligne   Dylan Icône

  • Squatteur
  • Groupe : MacreaCitizen
  • Messages : 63
  • Inscrit(e) : 20-janvier 08

Posté 16 août 2009 - 11:37

Salut! super tuto! je me demandais s'il serait possible de faire le même mais pour en faire une jauge de vie ( pour gta vice city ) ?
0

#3 L'utilisateur est hors-ligne   Vicolaships Icône

  • .:: MacreaCodeur ::.
  • PipPipPipPipPip
  • Groupe : MacreaCitizen
  • Messages : 2 305
  • Inscrit(e) : 15-mars 05

Posté 17 août 2009 - 10:42

Tu veux faire une jauge qui affiche la vie d'un joueur ou acteur du jeu? J'ai pas tout à fait saisi ton idée
0

#4 L'utilisateur est hors-ligne   sonicfan Icône

  • Squatteur
  • Groupe : MacreaCitizen
  • Messages : 24
  • Inscrit(e) : 19-août 09

Posté 19 août 2009 - 10:24

Sa donne quoi? Je regarde toujours les "previews" avant de download quoi que ce soit wink.gif .
Signature non conforme avec la charte
0

#5 L'utilisateur est hors-ligne   Vicolaships Icône

  • .:: MacreaCodeur ::.
  • PipPipPipPipPip
  • Groupe : MacreaCitizen
  • Messages : 2 305
  • Inscrit(e) : 15-mars 05

Posté 20 août 2009 - 10:47

Ya rien à télécharger, mais si ca t'intéresse ca donne ce genre de choses:


0

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)