Aller au contenu

midtownmad

MacreaBoss
  • Compteur de contenus

    3 219
  • Inscription

  • Dernière visite

Messages posté(e)s par midtownmad

  1. Moi je suis contre, je trouve que le forum parle beaucoup plus de la taverne que de GTA, alors qu'a la base c'est censé parler presque exclusivement de GTA.

    Créé un topic de ce genre continuerait à couler le forum encore plus qu'il ne l'est déjà...

     

    Le forum n'est pas exclusivement celui de GTA Macreators, mais celui du nework Macreators.

    La taverne est le coin de détente où on parle de tout. Il y a des forums pour GTA, comme il y a des forums pour Unreal, Macrea-File, MacreaBlog...

  2. je suis assez d' accord avec ce qui c' est dit plus haut , la lourdeur du topic :/

     

    aprés il y a d' autres solutions , comme un vampires ouvert plus tot et 24h le week end , comme ça il sera consultable une fois fermé et ne sera pas un topic à rallonge (donc lourd)

     

    Je suis contre un autre topic façon vampires.

    Pourquoi ne pas utiliser les tags dans le titre du sujet, genre : "[vidéo] Mon chien à la plage".

  3. Bien que ce post soit adressé aux modérateurs, j'imagine que tout avis est le bienvenu

     

    Je suis plutot contre le fait d'instaurer un topic officiel de videos car :

    • il y a fort à parier que des topics officiels pour les images, les histoires droles, les photos de vos chiens... vont être réclamés
    • il sera difficile de determiner quelle video doit rester ou non dans le sujet. Les gouts et les couleurs, surtout ceux de Badboy... :-þ
    • l'interet d'un forum est de pouvoir créer des sujets autour desquels on peut débattre (bien que pour certains, débattre consiste à flooder du moment qu'on participe). Si on concentre toutes les videos sympas en un endroit, soit on interdit de faire des commentaires dans ce sujet (sinon, ça risque d'être la foire), soit il faut se taper toutes les pages pour voir les commentaires sur une video precise (les gros post, on finit toujours par s'y perdre)
    • avoir un sujet pour une video ou un ensemble de videos autour d'un theme precis, ca permet via la fonction rechercher de retrouver facilement ce qu'on veut. Dans un gros sujet, c'est toujours plus difficile
    Par contre, (et je ne sais pas si c'est faisable et surtout utile), peut etre que la possibilité pour les inscrits d'accorder une note entre 1 et 5 pour chaque sujet pourrait être sympa. Ca permettrait aux personnes qui n'ont que 5 minutes pour consulter le forum d'acceder aux meilleurs sujets. M'enfin, cette idée devrait peut-être être débattue dans un autre sujet.

     

    Bref, à vous les studios

     

    Il est possible de noter les sujets. Suffit d'activer l'option :P. Reste à savoir si c'est intéréssant, des avis sur ce sujet ?

  4. Je ne suis pas contre.

     

    Pour ce qui est de ne pas compte les posts : pas d'accord, sinon on en vient à penser à quoi ça sert et quand faut-il compter les posts ?

    Pour ce qui est de virer les vidéos ou non, les goûts et les couleurs... lol c'est un grand débat lol. Je pense que les vidéos qui ne rentrent pas dans le cadre de la charte doivent être virées (normal) et que les autres doivent restées (à l'exception de vidéos vraiment inutiles).

     

    A vous de voir. Le débat est lancé...

  5. Vice Builder 1.3 pour GTA : Vice City


    telecharger vice builder 1.3 ici:
    http://www.home.no/bobby-stalefish/

    -----------------------------------------------
    avoir plus de vie et d'armure au debut du jeu:
    -----------------------------------------------

    aller a la ligne 27 036 ou faite "edit/find" et metter "03A4: name_thread
    "INITIAL" dans recherche

    entre les lignes:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values

    et

    0005: $5C = .0625 ;; floating-point values

    insérer ceci:

    055E: set_player $PLAYER_CHAR max_health += 150
    055F: set_player $PLAYER_CHAR max_armour += 150

    se qui donne normalement:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values
    055E: set_player $PLAYER_CHAR max_health += *150*
    055F: set_player $PLAYER_CHAR max_armour += *150*
    0005: $5C = .0625 ;; floating-point values

    maintenand il faus régler le nombre de points de vie et d'armure que vous
    voulez:

    remplacer les 150 entre les 2 * par le nombres de point de vie et d'armure
    en plus de 100 que vous voulez
    (ex: si vous mettez 150 vous orer 250 point de vie et d'armure dans le jeu)

    voilà c'est fini ;)

    -------------------------------------------
    pouvoir courir a l'infini au debut du jeu:
    -------------------------------------------

    aller a la ligne 27 036 ou faite "edit/find" et metter "03A4: name_thread
    "INITIAL" dans recherche

    entre les lignes:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values

    et

    0005: $5C = .0625 ;; floating-point values

    insérer ceci:

    0330: set_player $PLAYER_CHAR infinite_run_to 1 (true)

    se qui donne normalement:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values
    0330: set_player $PLAYER_CHAR infinite_run_to 1 (true)
    0005: $5C = .0625 ;; floating-point values

    voilà c'est fini maintenand le tommy cour et ne se fatigue jamais ;)

    -------------------------------
    avoir du fric au debut du jeu:
    -------------------------------


    aller a la ligne 27 036 ou faite "edit/find" et metter "03A4: name_thread
    "INITIAL" dans recherche

    entre les lignes:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values

    et

    0005: $5C = .0625 ;; floating-point values

    insérer ceci:

    0109: player $PLAYER_CHAR money += 1000

    se qui donne normalement:

    0004: $DEFAULT_WAIT_TIME = 250 ;; integer values
    0109: player $PLAYER_CHAR money += *1000*
    0005: $5C = .0625 ;; floating-point values

    maintenand il faus régler le nombre de sous que vous voulez:

    remplacer le 1000 entre les 2 * par le nombres de sous en plus que vous
    voulez
    (ex: si vous mettez 1000 vous orer 1000$ au debut du jeu)

    voilà c'est fini ;)


  6. Vice Builder 0.22 pour GTA : Vice City


    -------------------------
    créer de nouveau garage:
    -------------------------

    ouvrez le fichier "main.scm" a l'aide de "vice builder 0.22" et rendez vous a la ligne "591"
    Là il devré y avoir des lignes dans se genre là:
    "0219: 2724?? = create_garage_type 5? from -914.129! -1263.54! 10.706! to -906.3! -1266.9! 14.421! front -907.137! -1246.626!

    et bien sélectionner cette ligne:

    0219: 2744?? = create_garage_type 1? from -362.12! -550.214! 11.722! to -353.12! -550.214! 15.16! front -362.12! -539.484!
    03BB: set_garage 2744?? door_type_to_swing_open
    03DA: set_garage 2744?? camera_follows_player
    057A: set_garage 2744?? max_cars_to 2?

    et copier la en faisant un clik droit et après "copy"
    ensuite aller a la première ligne de cette liste qui est normalement:

    0219: 2724?? = create_garage_type 5? from -914.129! -1263.54! 10.706! to -906.3! -1266.9! 14.421! front -907.137! -1246.626!

    et là coller votre ligne au dessus de celle là

    maintenand vous devez régler les paramètres de votre garage et de son emplacement:

    0219: 2744?? = create_garage_type #1#? from (-362.12! -550.214! 11.722!) to \-353.12! -550.214! 15.16!/ front +-362.12! -539.484!+
    03BB: set_garage 2744?? door_type_to_swing_open
    03DA: set_garage 2744?? camera_follows_player
    057A: set_garage 2744?? max_cars_to *2*?

    le chiffre entre les 2# est le type de garage que vous voulez voici tous les types existant (en anglais mais j'ai traduit les plus important):

    1 - Placeholder, DummyID. (doesn't do anything,
    initial garages get 1, and change type when
    a certain asset is bought)---------------------------} ne pas mettre ce type de garage car c'est pour les garages des maisons a acheter
    3 - BombShop (8ball)-------------------------------------} pour que votre garage soit un poseur de bombe pour piéger les caisses
    5 - Pay and Spray----------------------------------------} pour que se soit un pay and spray
    7 - Car Eater, haven't got a clue what this is
    suppose to be, not sunshine autos anyways...---------} ne pas utiliser ceci
    8 - Sunshines Autos Carshop, List 1----------------------} ne pas utiliser ceci seulement pour que votre garage devienne le garage ou il faut ramener la 1ère liste de caisse du sunshine
    9 - Sunshines Autos Carshop, List 2----------------------} ne pas utiliser ceci seulement pour que votre garage devienne le garage ou il faut ramener la 2ème liste de caisse du sunshine
    10 - Sunshines Autos Carshop, List 3
    13 - DO NOT USE, CORRUPTS SAVEGAMES!---------------------} ne surtout pas pas utiliser ceci
    16..18 - In use Saving Garages---------------------------} je sais pas se que c'est dsl mais ne pas utiliser
    19 - Garage where you beat the cops up during------------} ne pas utiliser ceci réservé a la mission "copland"
    "Copland"
    22 - Sunshines Autos Carshop, List 4---------------------} ne pas utiliser ceci seulement pour que votre garage devienne le garage ou il faut ramener la 4ème liste de caisse du sunshine
    23 - Garage to park the tank in during "Sir, Yes---------} ne pas utiliser ceci réservé a la mission "sir, yes sir"
    Sir!"
    24..31 - In use Saving Garages---------------------------} je sais pas se que c'est dsl mais ne pas utiliser
    32 - Unused Saving Garage--------------------------------} autiliser pour que votre garage soit un garage gratuit donc c'est celui que je vais prendre

    le chiffre entre les 2* est le nom bre de caisse max a garé dans votre garage donc pour un garage de 10 places mettre le chiffre 10 a la place etc.....

    voilà la partie dificile:

    les chiffre entre ( et ) sont les 1ère coordonné du garage (il y en a 3 en tout) pour savoir les coordonné de votre garage utilisé moomapper:

    vous devez utiliser l'objet n°526 c'est un ballon pour repéré le coin arrière en bas a gauche de votre garage:

    screen 1

    donc dans mon exemple je doit remplacé les chiffres entres ( et ):

    -362.12! -550.214! 11.722!

    par

    -1104.32! -1338.28! 10.35!

    ensuite il ya la 2ème ligne de coordonnées celles entre \ et /

    se sont les coordonnées du coin arrière en haut a droite a la hauteur du haut de la porte qu'il vous faut:

    screen 2

    pour moi la hauteur de la porte est 14.55 donc a la place de sa:

    -353.12! -550.214! 15.16!

    vous devrez mettre sa pour mon exemple:

    -1086.03! -1345.65! 14.55!

    et voilà la 3ème ligne de coordonnées c'est celle du coin en haut a droite de la porte et il n'y a pas besoin de la hauteur elle est entre + et +:

    screen 3

    a la place de sa:

    -362.12! -539.484!

    mettez sa:

    -1090.75! -1311.31!

    faite maintenand "run/compile & copy" ou cliquer sur la touche "F6" pour enregistré les modification
    attention nouvelle partie obligatoire

    et voilà c'est fini allez dans le jeu en lancant une nouvelle partie et allez devant votre garage et celui ci devré s'ouvrir
    si se n'est pas le cas alors contacté moi: uxybo@hotmail.com

    -----------------------------------------------
    créer de nouvelle caisses garée dans vice city:
    -----------------------------------------------

    rendez vous a la ligne 27 860 et la il devrait y avoir quelque chose comme sa:

    014B: 7968?? = init_parked_car_generator #ADMIRAL 8? 8? 0? alarm 50? door_lock 0? 0? 10000& at -401.2715! -534.6655! 11.7534! angle 149.2032!
    014C: set_parked_car_generator 7968?? cars_to_generate_to 101?

    se sont les lignes des caisses garée dans vice city

    et bien copier cette ligne et après coller la au dessus de la 1ère ligne et cela devré donner sa:


    014B: 7968?? = init_parked_car_generator #ADMIRAL 8? 8? 0? alarm 50? door_lock 0? 0? 10000& at -401.2715! -534.6655! 11.7534! angle 149.2032!
    014C: set_parked_car_generator 7968?? cars_to_generate_to 101?
    014B: 7964?? = init_parked_car_generator #VICECHEE -1? -1? 0? alarm 0? door_lock 0? 0? 10000& at -870.4673! -717.2427! 10.1069! angle 94.1213!
    014C: set_parked_car_generator 7964?? cars_to_generate_to 101?
    014B: 7960?? = init_parked_car_generator #LOVEFIST -1? -1? 0? alarm 0? door_lock 0? 0? 10000& at -865.2949! 1158.359! 9.8204! angle 2.347!
    014C: set_parked_car_generator 7960?? cars_to_generate_to 0?
    .......................

    014B: 7968?? = init_parked_car_generator #"ADMIRAL" 8? 8? 0? µalarm 50? door_lock 0? 0?µ 10000& at +-401.2715! -534.6655! 11.7534!+ angle (149.2032!)
    014C: set_parked_car_generator 7968?? cars_to_generate_to *101*?

    maintenand vous allez choisir la caisse que vous voulez garée quelque part c'est le nom entre les 2"

    et bien vous choisissez un nom entre toutes celle de vice city (ex:HOTRING,CHEETAH,SKIMMER,HUNTER,etc.....)

    ensuite vous allez placer cette caisses dans vice city en modifiant les coordonnées entres les 2+ en vous servant de moomapper et de l'objet n°526 (le ballon)

    screen 4

    donc pour moi à la place de sa:

    -401.2715! -534.6655! 11.7534!

    j'oré sa:

    -738.624! -1434.51! 11!

    mettez aussi tous les chiffres entres les 2 µ a 0 pour ne pas avoir de caisse avec alarme ou fermée a clef
    et assuré vous aussi que le dernier chiffre de la ligne celui entre les 2* est bien 101 sinon la modification ne marchera pas

    vous pouvez aussi modifier l'angle de la voiture (sud,nord,est et ouest) en modifiant le chifre entre ( et )

    et voilà c'est fini faite maintenand "run/compile & copy" ou cliquer sur la touche "F6" pour enregistré les modification
    attention nouvelle partie obligatoire

    -------------------------------
    ajouter des armes a vice city:
    -------------------------------

    maintenand voici comment ajouter de nouvelles armes a vice city:

    rendez vous a la ligne 28 200 et il devré y avoir ceci:

    0213: 7996?? = create_pickup #§BAT§ type 2? at +206.7! -1254.4! 12!+
    032B: 8000?? = create_weapon_pickup #§COLT45§ 15? ammo 34? at +-228.4! -1318.2! 9.1!+

    la 1ère ligne et a copier pour de nouvelles armes blanche et la seconde pour des flingues et
    la ligne copier et a rajouter au sommet de cette liste

    il vous suffit juste de changer le nom de l'arme entre les 2§ par le nom de l'arme que
    vous voulez (ex:MINIGUN,KATANA,etc.............)

    et les coordonnées a l'aide de moomapper et de l'objet n°526 qui se troiuve entre les 2+

    et nrien d'autre n'est a changé il vous suffit juste de fair"run/compile & copy" et c'est fini

    ---------------------------------------
    ajouter de nouveaux bonus a vice city:
    ---------------------------------------

    bonus = coeur,gilet parballe,adrenaline et paquet cachées

    allez a la ligne 28 230 pour avoir en 1er les coeurs ensuite les gilet parballe puis les adrenaline puis les paquets chachées

    pour commencer copier l'une des lignes:

    coeur= 0213: 8148?? = create_pickup -86? (HEALTH) type 1? at -113.2! -975.7! 10.4!
    gilet parballe= 0213: 8256?? = create_pickup -18? (BODYARMOUR) type 15? at 148.8! -349.9! 8.7!
    adrenaline= 0213: 8336?? = create_pickup -87? (ADRENALINE) type 15? at 428.4! 947.5! 13.2!
    paquets cachées= 02EC: put_hidden_package_at 479.6! -1718.5! 15.6!

    et changer juste les coordonnées a l'aide de moomapper et de l'objet n°526 et rajouter la ligne modifier au sommet de sa liste

    et voilà c'est deja fini plus qu'a fair "run/compile & copy" et c'est fini

    bon jeu a tous et n'oubliez pas nouvelle partie obligatoire


  7. Pose des textures sous Zmodeler
    Ce tutorial a été créé à l'origine pour Midtown Madness 2, mais le principe est le même pour la pose de textures...

    Une des questions qu'un créateur peut se poser est : maintenant que mon model 3D est fait, comment pose-t-on les textures dessus ? â€" C'est à cette question que je vais répondre dans ce tutorial sur le mapping.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping1.jpg

    Alors en premier lieu, sélectionnez sur votre model 3D les faces à texturer.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping2.jpg

    Après allez dans Material Editor par l'îcone dans la barre d'outils ou en préssant la touche E, une fois la boîte de dialogue lancée, ajoutez une matière en la nommant dans la zone de texte et en validant par le bouton add (dans notre exemple, on l'appelera : matajt), puis sélectionnez le deuxième nom de la liste et non le premier, cela aurrai pour conséquences de modifier la matière par défault ! â€" Cochez la case Primary texture, cliquez sur le bouton Load Map, puis ouvrez votre texure en fichier .tga/.bmp/.tif et fermez la fenêtre Material Editor en validant par OK.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping3.jpg

    Maintenant on va attribuer la matière qu'on vient de créer aux faces qu'on a sélectionnée, pour cela, préssez les touches CTRL+A ou faîtes un clic droit sur le nom de votre objet dans la liste des objets et faîtes Facesâ€">Properties pour ouvrir la boîte de dialogue Attributes et dans la liste, sélectionnnez le deuxième nom (dans notre exemple, sélectionnez le second matajt) puis validez par OK.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping4.jpg

    Maintenant faîtes Surfacesâ€">Mappingâ€">Assign UV dans le menu, sélectionnez le bouton SEL et cliquez dans votre vue.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping5.jpg

    Vous pouvez voir dans la vue 3D votre texture posée en mosaïque. Pour rectifier cela, faîtes un clic droit sur le petit bouton en haut à gauche de votre vue et cliquez sur UVMapper â€" Là vous voyez apparaître votre texture...
    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping6.jpg
    ...ainsi que les faces sélectionnées précédement (si vous ne les voyez pas, faîtes un zoom arrière).
    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping7.jpg
    Cliquez sur le bouton Objects de la barre d'outils et déselectionnez le bouton SEL, faîtes Modifyâ€">Move dans le menu et là vous pouvez déplacer vos faces dans la vue UVMapper, pour les redimensionner, faîtes Modifyâ€">Scale...
    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29273/zmodeler_mapping8.jpg
    ...pour déplacer les points cliquez sur le bouton Vertices de la barre d'outils et cliquez sur les faces dans la vue UVMapper et là vous pourrez déplacer les points des faces â€" Attention : quand vous bougez les points, vous bougez les points d'une seule face à la fois, pour bouger les points normalement liés, sélectionnez le bouton MUL.

    Voilà pour ce qui concerne le mapping.

    Par midtownmad.
  8. Création d'une forme face par face sous Zmodeler

    Beaucoup d'entres vous aimeraient pouvoir créer des formes sous Zmodeler, et bien c'est ce que je vais essayer de vous apprendre.
    Nous allons créer une forme quelconque, histoire de vous lancer dans le monde de la 3D, mais si vous voulez savoir comment créer un véhicule en integrale, vous vous êtes trompé de chemin, voir de site. Car j'ai envis que vous découvriez vous-même toutes les autres formes de la 3D et que vous puissiez dire que c'est vous qui l'vez découvert et que vous ne l'avez pas lu quelque part.

    Bien finis les discours, rangez les mouchoirs, accrochez-vous bien, c'est partit.
    Tout d'abord, il faut que vous sachiez que sous Zmodeler (enfin d'après ca que je sais), il faut en premier lieu créer un rectangle (formé du nombre de polygons que vous voulez) qui nous servira de base. Pour le créer, faîtes Create-Surfaces-Flat et tracez un rectangle dans une des vues voulue (mise à part la vue 3D).

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29272/zmodeler_createface2.gif

    Une fois ce rectangle tracé, une fenêtre s'ouvre, vous demandans le nombre de droites horizontales et le nombre de droites verticales à l'intérieur du rectangle précédement tracé ; pour notre exemple, nous allons donner comme valeurs : 0 horizontales et 1 verticale.
    Vous devriez voir dans la vue où vous avez tracé votre rectangle, le rectangle lui-même avec plusieurs triangles à l'intérieur (des polygons dans le jargon de la 3D), leur nombres diffère celon le nombre de verticales et d'horizontales créées (dans notre exemple, il y a 4 polygons).
    Maintenant que la base a été créée, nous allons nous attaquer à créer un polygons seul. Pour cela, sélectionnez l'outil Verticles, http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29272/zmodeler_createface1.gif puis faîtes Create-Face-Single, allez dans la vue où la base a été créée et cliquez sur un point du contour du rectangle puis sur un autre du contour (celui à côter de préférence) et cliquez à l'extérieur de la base de façon à créer un polygon, là vous devriez voir voter base + un triangle déssinés.
    Voyez le résultat dans la vue 3D.

    http://www.grandtheftauto.fr/imgs/tutoriaux_forum/29272/zmodeler_createface3.gif

    Remarque : les deux autres outils dans Create-Face sont concus, un pour créer plusieurs polygons autour d'un point, et l'autre pour créer plusieurs polygons à suivre.

    Voilà, maintenant vous savez créer une forme face par face, biensûr dans notre exemple, nous n'avons créé qu'une seule face mais ça aurai été une perte de temps de vous expliquer la même chose que je viens de vous expliquer.
    Maintenant laissez libre cours à votre imagination.

    Par midtownmad.
  9. Créér un saut en parachute


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

    1. Présentation et objectifs
    Vous me direz, c'est plutôt simple de créer un saut en parachute, vous donner un parachute au joueur et vous le faites apparaitre en hauteur pour qu'il tombe. Et bien non, vous aurez beau essayer comme ca, ca ne marchera pas !

    Voilà ce que ca donne quand on spawn en l'air le joueur et qu'on lui donne un parachute : Le joueur marche en l'air et s'écrase par terre, impossible d'ouvrir le parachute ou quoi que ce soit !
    http://z.vicolaships.moi.fr/saut1.jpg

    2. Donner le parachute au joueur

    Ici, nous allons donner le parachute au joueur, ce qui n'est pas compliqué, mais il fallait y penser. Nous allons donner une arme nommé "GUN_PARA" (parachute arme). Pour ceci, il faut charger le modèle de l'arme puis la donner au joueur. On prend un main basic, et on rajoute un nouveau label :

    :Label_2
    Model.Load(#GUN_PARA)
    038B: load_requested_models 
    01B2: give actor $PLAYER_ACTOR weapon 46 ammo 1


    Mais comment fait-on pour savoir quel modèle il faut charger, et quel numéro correspond à quel arme ? On utilises tout simplement la documentation SCM et en cherchant un tout petit peu, on trouve : 46 371 #gun_para
    Le numero d'arme est 46 et le modèle 3D est #gun_para

    Notre joueur ne tombe plus les mains vide, mais désormais avec son parachute, dommage qu'il ne puisse pas l'ouvrir !

    3. Script parachute

    Dans le main original, le parachute est un script externe, nous allons intégrer à notre main basic ce script externe mais il ne sera plus externe, il sera directement dans le main. Voilà comment nous allons procéder :

    • Définir les deux objets qui seront utilisés dans le script.
    • Créér un label pour le script
    • Inserer le script
    Pour définir les objets, ce ne sera pas très dificile, il suffit d'ajouter 2 lignes et de modifier une valeur :
    DEFINE OBJECTS 3
    DEFINE OBJECT (noname)
    DEFINE OBJECT PARACHUTE                 
    DEFINE OBJECT PARA_COLLISION



    Ensuite, il nous faut créér un label pour le script, le problème c'est qu'il faut que le script du parachute soit lu mais aussi que le script ou on donne le parachute soit lu.

    On va utiliser la fonction Create_thread @Labelx qui permet de lire plusieurs labels en même temps, grâce à cette fonction vous pourrez faire lire au jeu 2 labels en même temps, le label après "Create thread" et le label indiqué dans le create thread. On placera donc cette fonction juste avant le label ou on donne le parachute

    create_thread @PLCHUTE
    
    :Label_2
    Model.Load(#GUN_PARA)
    038B: load_requested_models
    01B2: give actor $PLAYER_ACTOR weapon 46 ammo 1
    fade 1 3000
    004E: end_thread



    On à donc le code entier suivant :

    DEFINE OBJECTS 3
    DEFINE OBJECT (noname)
    DEFINE OBJECT PARACHUTE                
    DEFINE OBJECT PARA_COLLISION
    
    DEFINE MISSIONS 0
    DEFINE EXTERNAL_SCRIPTS -1 // Use -1 in order not to compile AAA script
    DEFINE UNKNOWN_EMPTY_SEGMENT 0
    DEFINE UNKNOWN_THREADS_MEMORY 0
    
    //-------------MAIN---------------
    03A4: name_thread 'MAIN'
    042C: set_total_missions_to 0
    030D: set_total_mission_points_to 187
    0997: (unknown) 1339
    01F0: set_max_wanted_level_to 0
    0111: set_wasted_busted_check_to 0
    00C0: set_current_time 10 0
    016A: fade 0 10 ms
    01B6: set_weather 3
    04BB: select_interior 0   
    04E4: unknown_refresh_game_renderer_at 0.0 0.0 300.0
    03CB: set_camera 0.0 0.0 300.0 
    0053: $PLAYER_CHAR = create_player #NULL at 0.0 0.0 300.0
    
    :Label_1
    07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
    01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
    0373: set_camera_directly_behind_player
    0173: set_actor $PLAYER_ACTOR z_angle_to 262.0
    0001: wait 100
    087B: set_player $PLAYER_CHAR clothes "VEST" "VEST" body_part 0
    087B: set_player $PLAYER_CHAR clothes "JEANSDENIM" "JEANS" body_part 2
    087B: set_player $PLAYER_CHAR clothes "SNEAKERBINCBLK" "SNEAKER" body_part 3
    087B: set_player $PLAYER_CHAR clothes "PLAYER_FACE" "HEAD" body_part 1
    070D: build_player $PLAYER_CHAR
    016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0
    016D: restart_if_busted at 1550.6801 -1675.49 14.51 angle 90.0 unknown 0
    create_thread @PLCHUTE
    
    :Label_2
    Model.Load(#GUN_PARA)
    038B: load_requested_models
    wait 100
    01B2: give actor $PLAYER_ACTOR weapon 46 ammo 1
    fade 1 3000
    004E: end_thread



    Il nous suffit maintenant d'ajouter le script du parachute (dont le premier label s'apellera PLCHUTE puisque c'est le nom donné dans le create thread)
    Le code est celui-ci : (il est long et compliqué, pas la peine de tout comprendre, moi même je ne comprends pas tout)

    :PLCHUTE
    03A4: name_thread 'PLCHUTE'
    0004: $1498 = 0 
    0004: $1513 = 0 
    0004: $1497 = 0 
    0005: $1500 =  5.0
    0005: $1501 = -5.0
    0005: $1503 = -1.5
    0005: $1504 = -30.0
    0005: $1505 =  32.0
    0005: $1506 =  0.0
    0004: $1512 =  0                                                                      
    0004: $1513 =  0
    
    :PLCHUTE_100
    0001: wait  0 ms
    0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
    00A0: store_actor $PLAYER_ACTOR position_to $69 $70 $71
    00D6: if  and
    0020: 7@ > 50.0 
    80DF:   NOT  actor $PLAYER_ACTOR driving
    8118:   not  actor $PLAYER_ACTOR dead
    83EE:   NOT  player $PLAYER_CHAR controllable
    004D: jump_if_false @PLCHUTE_100
    
    :PLCHUTE_118
    0001: wait 0 ms 
    00D6: if 
     8118: not actor $PLAYER_ACTOR dead 
    004D: jump_if_false @PLCHUTE_5455 
    00D6: if 
     8800: not (unknown) 
    004D: jump_if_false @PLCHUTE_5455 
    00D6: if 
     8038: not $1513 == 0  
    004D: jump_if_false @PLCHUTE_176 
    0992: set_player $PLAYER_CHAR weapons_scrollable 0 
    
    :PLCHUTE_176
    00D6: if 
     0018: $1497 > 0  
    004D: jump_if_false @PLCHUTE_219 
    00D6: if 
     8491: not actor $PLAYER_ACTOR has_weapon 46 
    004D: jump_if_false @PLCHUTE_219 
    0002: jump @PLCHUTE_5521 
    
    :PLCHUTE_219
    00D6: if 
     0038: $1497 == 0  
    004D: jump_if_false @PLCHUTE_274 
    00D6: if 
     0491: actor $PLAYER_ACTOR has_weapon 46 
    004D: jump_if_false @PLCHUTE_274 
    0247: request_model #PARACHUTE 
    0004: $1497 = 1  
    0004: $1498 = 0  
    
    :PLCHUTE_274
    00D6: if 
     0038: $1497 == 1  
    004D: jump_if_false @PLCHUTE_377 
    00D6: if 
     0248: model #PARACHUTE available 
    004D: jump_if_false @PLCHUTE_377 
    0107: 17@ = create_object #PARACHUTE at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD 
    069B: attach_object 17@ to_actor $PLAYER_ACTOR at_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 
    0750: (unknown) 17@ 0 
    0004: $1497 = 2  
    
    :PLCHUTE_377
    00D6: if and
     0038: $1497 == 2  
     0038: $1513 == 1  
    004D: jump_if_false @PLCHUTE_409 
    0004: $1497 = 3  
    
    :PLCHUTE_409
    00D6: if and
     0038: $1513 == 0  
     0018: $1497 > 0  
    004D: jump_if_false @PLCHUTE_565 
    00D6: if 
     0818: (unknown) $PLAYER_ACTOR 
    004D: jump_if_false @PLCHUTE_565 
    083D: (unknown) $PLAYER_ACTOR $1507 $1508 $1509 
    00D6: if 
     0022: -10.0 > $1509  
    004D: jump_if_false @PLCHUTE_565 
    0819: 7@ = actor $PLAYER_ACTOR distance_from_ground 
    00D6: if 
     0021: 7@ > 20.0  
    004D: jump_if_false @PLCHUTE_565 
    097A: (unknown) -1000.0 -1000.0 -1000.0 1037 
    0004: $1513 = 1  
    01B9: set_actor $PLAYER_ACTOR armed_weapon_to 46 
    0006: 0@ = 0  
    0005: $8268 = 0.0  
    
    :PLCHUTE_565
    00D6: if 
     0038: $1513 == 1  
    004D: jump_if_false @PLCHUTE_2386 
    00D6: if 
     0039: 0@ == 0  
    004D: jump_if_false @PLCHUTE_608 
    0006: 0@ = 2  
    
    :PLCHUTE_608
    00D6: if 
     0039: 0@ == 2  
    004D: jump_if_false @PLCHUTE_729 
    062E: (unknown) $PLAYER_ACTOR 2066 27@ 
    00D6: if 
     04A4: (unknown) 27@ 7 
    004D: jump_if_false @PLCHUTE_729 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED" 1.0 1 0 0 0 -1 
    04ED: load_animation "PARACHUTE" 
    0006: 15@ = 1  
    0172: 1@ = actor $PLAYER_ACTOR z_angle 
    0006: 0@ = 3  
    
    :PLCHUTE_729
    00D6: if 
     0039: 0@ == 3  
    004D: jump_if_false @PLCHUTE_2386 
    062E: (unknown) $PLAYER_ACTOR 2066 27@ 
    00D6: if 
     04A4: (unknown) 27@ 7 
    004D: jump_if_false @PLCHUTE_815 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED" 1.0 1 0 0 0 -1 
    
    :PLCHUTE_815
    0819: 7@ = actor $PLAYER_ACTOR distance_from_ground 
    00D6: if and
     0023: 100.0 > 7@  
     0021: 7@ > 60.0  
    004D: jump_if_false @PLCHUTE_912 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_912 
    00D6: if 
     0038: $ONMISSION == 0  
    004D: jump_if_false @PLCHUTE_912 
    00BC: text_highpriority 'PARA_01' 1000 ms 1  // ~s~Open your parachute!
    
    :PLCHUTE_912
    0494: get_joystick_data 0 10@ 11@ 12@ 12@ 
    00D6: if 
     0038: $1511 == 1  
    004D: jump_if_false @PLCHUTE_960 
    0006: 10@ = 0  
    0006: 11@ = 0  
    
    :PLCHUTE_960
    0093: 21@ = integer_to_float 10@ 
    0017: 21@ /= 4.267  
    0063: 21@ -= 2@  
    0017: 21@ /= 20.0  
    005B: 2@ += 21@  
    0087: 21@ = 2@  
    0017: 21@ /= 5.0  
    0063: 1@ -= 21@  
    00D6: if 
     0021: 1@ > 180.0  
    004D: jump_if_false @PLCHUTE_1061 
    000F: 1@ -= 360.0  
    
    :PLCHUTE_1061
    00D6: if 
     0023: -180.0 > 1@  
    004D: jump_if_false @PLCHUTE_1092 
    000B: 1@ += 360.0  
    
    :PLCHUTE_1092
    0093: 22@ = integer_to_float 11@ 
    0017: 22@ /= 4.267  
    0063: 22@ -= 3@  
    0017: 22@ /= 20.0  
    005B: 3@ += 22@  
    083D: (unknown) $PLAYER_ACTOR 8@ 9@ $1509 
    00D6: if 
     0024: $1504 > $1509  
    004D: jump_if_false @PLCHUTE_1177 
    0086: $1509 = $1504  
    
    :PLCHUTE_1177
    00D6: if 
     0024: $8268 > $1509  
    004D: jump_if_false @PLCHUTE_1204 
    0086: $8268 = $1509  
    
    :PLCHUTE_1204
    00D6: if 
     0024: $1504 > $8268  
    004D: jump_if_false @PLCHUTE_1231 
    0086: $8268 = $1504  
    
    :PLCHUTE_1231
    00D6: if and
     0024: $1509 > $8268  
     8038: not $1902 == 1  
    004D: jump_if_false @PLCHUTE_1407 
    00D6: if 
     84AD: not actor $PLAYER_ACTOR touching_water 
    004D: jump_if_false @PLCHUTE_1361 
    00D6: if 
     0022: -20.0 > $8268  
    004D: jump_if_false @PLCHUTE_1308 
    0004: $1513 = 2  
    0002: jump @PLCHUTE_1354 
    
    :PLCHUTE_1308
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED" 1.0 1 0 0 0 100 
    0004: $1513 = 7  
    
    :PLCHUTE_1354
    0002: jump @PLCHUTE_1407 
    
    :PLCHUTE_1361
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED" 1.0 1 0 0 0 100 
    0004: $1513 = 7  
    
    :PLCHUTE_1407
    0087: 4@ = 3@  
    0017: 4@ /= 30.0  
    006F: 4@ *= $1505  
    02F6: $1507 = cosine 1@ // sinus swapped with cosine 
    02F7: $1508 = sinus 1@ // cosine swapped with sinus 
    006D: $1507 *= 4@  
    006D: $1508 *= 4@  
    0011: $1508 *= -1.0  
    0059: $1508 += $1506  
    0087: 21@ = 8@  
    0065: 21@ -= $1507  
    0013: 21@ *= 0.01  
    0088: $1507 = 8@  
    0067: $1507 -= 21@  
    0087: 21@ = 9@  
    0065: 21@ -= $1508  
    0013: 21@ *= 0.01  
    0088: $1508 = 9@  
    0067: $1508 -= 21@  
    0085: 12@ = 10@  and handles 
    0085: 13@ = 11@  and handles 
    0095: make 12@ absolute_integer 
    0095: make 13@ absolute_integer 
    00D6: if or
     0019: 12@ > 40  
     0019: 13@ > 40  
    004D: jump_if_false @PLCHUTE_2109 
    00D6: if 
     001D: 12@ > 13@  
    004D: jump_if_false @PLCHUTE_1872 
    00D6: if 
     0029: 10@ >= 0  
    004D: jump_if_false @PLCHUTE_1751 
    00D6: if 
     8039: not 15@ == 2  
    004D: jump_if_false @PLCHUTE_1751 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_1744 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_R" "PARACHUTE" 1.0 1 0 0 1 -2 
    
    :PLCHUTE_1744
    0006: 15@ = 2  
    
    :PLCHUTE_1751
    00D6: if 
     001B: 0 > 10@  
    004D: jump_if_false @PLCHUTE_1865 
    00D6: if 
     8039: not 15@ == 3  
    004D: jump_if_false @PLCHUTE_1865 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_1858 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_L" "PARACHUTE" 1.0 1 0 0 1 -2 
    
    :PLCHUTE_1858
    0006: 15@ = 3  
    
    :PLCHUTE_1865
    0002: jump @PLCHUTE_2102 
    
    :PLCHUTE_1872
    00D6: if 
     0029: 11@ >= 0  
    004D: jump_if_false @PLCHUTE_1984 
    00D6: if 
     8039: not 15@ == 4  
    004D: jump_if_false @PLCHUTE_1984 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_1977 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PARACHUTE" 1.0 1 0 0 1 -2 
    
    :PLCHUTE_1977
    0006: 15@ = 4  
    
    :PLCHUTE_1984
    00D6: if 
     001B: 0 > 11@  
    004D: jump_if_false @PLCHUTE_2102 
    00D6: if 
     8039: not 15@ == 5  
    004D: jump_if_false @PLCHUTE_2102 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_2095 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_ACCEL" "PARACHUTE" 1.0 1 0 0 1 -2 
    
    :PLCHUTE_2095
    0006: 15@ = 5  
    
    :PLCHUTE_2102
    0002: jump @PLCHUTE_2203 
    
    :PLCHUTE_2109
    00D6: if 
     8039: not 15@ == 1  
    004D: jump_if_false @PLCHUTE_2203 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_2203 
    0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PARACHUTE" 1.0 1 0 0 1 -2 
    0006: 15@ = 1  
    
    :PLCHUTE_2203
    00D6: if or
     00E1: key_pressed 0 17 
     0038: $1512 == 1  
    004D: jump_if_false @PLCHUTE_2386 
    00D6: if 
     8038: not $1902 == 1  
    004D: jump_if_false @PLCHUTE_2386 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_2386 
    00D6: if and
     0038: $1497 == 3  
     0038: $1511 == 0  
    004D: jump_if_false @PLCHUTE_2386 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_OPEN" "PARACHUTE" 8.0 0 0 0 1 -2 
    097A: (unknown) -1000.0 -1000.0 -1000.0 1038 
    008A: $8270 = 32@  and handles 
    0008: $8270 += 1100  
    0004: $1513 = 3  
    0006: 0@ = 0  
    
    :PLCHUTE_2386
    00D6: if 
     0038: $1513 == 2  
    004D: jump_if_false @PLCHUTE_2504 
    00D6: if 
     04EE: animation "PARACHUTE" loaded 
    004D: jump_if_false @PLCHUTE_2492 
    0173: set_actor $PLAYER_ACTOR z_angle_to 1@ 
    0829: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_DIE" "PARACHUTE" 1000.0 0 
    09F1: (unknown) $PLAYER_ACTOR 1189 
    0002: jump @PLCHUTE_2497 
    
    :PLCHUTE_2492
    05BE: AS_kill_actor $PLAYER_ACTOR 
    
    :PLCHUTE_2497
    0002: jump @PLCHUTE_5521 
    
    :PLCHUTE_2504
    00D6: if 
     0038: $1513 == 3  
    004D: jump_if_false @PLCHUTE_4781 
    00D6: if 
     0018: $8270 > 0  
    004D: jump_if_false @PLCHUTE_2586 
    00D6: if 
     001F: 32@ > $8270  
    004D: jump_if_false @PLCHUTE_2586 
    097A: (unknown) -1000.0 -1000.0 -1000.0 1039 
    0004: $8270 = 0  
    
    :PLCHUTE_2586
    00D6: if 
     0039: 0@ == 0  
    004D: jump_if_false @PLCHUTE_2689 
    0087: 25@ = 3@  
    0017: 25@ /= 500.0  
    0087: 26@ = 2@  
    0017: 26@ /= 500.0  
    0085: 18@ = 32@  and handles 
    0085: 19@ = 32@  and handles 
    0087: 5@ = 4@  
    0013: 5@ *= -1.0  
    0089: 6@ = $1509  
    0006: 0@ = 1  
    
    :PLCHUTE_2689
    00D6: if 
     0039: 0@ == 1  
    004D: jump_if_false @PLCHUTE_2856 
    0085: 10@ = 32@  and handles 
    0062: 10@ -= 19@  
    00D6: if 
     001B: 500 > 10@  
    004D: jump_if_false @PLCHUTE_2829 
    0085: 10@ = 32@  and handles 
    0062: 10@ -= 18@  
    0085: 18@ = 32@  and handles 
    0093: 21@ = integer_to_float 10@ 
    0087: 22@ = 25@  
    006B: 22@ *= 21@  
    0087: 23@ = 26@  
    006B: 23@ *= 21@  
    0063: 3@ -= 22@  
    0063: 2@ -= 23@  
    0002: jump @PLCHUTE_2856 
    
    :PLCHUTE_2829
    0007: 2@ = 0.0  
    0007: 3@ = 0.0  
    0006: 0@ = 2  
    
    :PLCHUTE_2856
    00D6: if 
     0039: 0@ == 2  
    004D: jump_if_false @PLCHUTE_2964 
    00D6: if 
     03CA: object 17@ exists 
    004D: jump_if_false @PLCHUTE_2964 
    0750: (unknown) 17@ 1 
    08D2: object 17@ scale_model 0.0 
    0085: 19@ = 32@  and handles 
    0001: wait 0 ms 
    075A: (unknown) 17@ "PARA_OPEN_O" "PARACHUTE" 1000.0 0 1 
    0006: 0@ = 3  
    
    :PLCHUTE_2964
    00D6: if 
     0039: 0@ == 3  
    004D: jump_if_false @PLCHUTE_3067 
    0085: 10@ = 32@  and handles 
    0062: 10@ -= 19@  
    00D6: if 
     001B: 500 > 10@  
    004D: jump_if_false @PLCHUTE_3050 
    0093: 21@ = integer_to_float 10@ 
    0017: 21@ /= 500.0  
    08D2: object 17@ scale_model 21@ 
    0002: jump @PLCHUTE_3067 
    
    :PLCHUTE_3050
    08D2: object 17@ scale_model 1.0 
    0006: 0@ = 4  
    
    :PLCHUTE_3067
    00D6: if 
     0039: 0@ == 5  
    004D: jump_if_false @PLCHUTE_3136 
    0107: 20@ = create_object #PARA_COLLISION at 0.0 0.0 0.0 
    0750: (unknown) 20@ 0 
    0392: object 20@ toggle_in_moving_list 1 
    04D9: object 20@ set_scripted_collision_check 1 
    0006: 0@ = 6  
    
    :PLCHUTE_3136
    00D6: if 
     0039: 0@ == 6  
    004D: jump_if_false @PLCHUTE_4354 
    0494: get_joystick_data 0 10@ 11@ 12@ 12@ 
    00D6: if 
     0038: $1511 == 1  
    004D: jump_if_false @PLCHUTE_3202 
    0006: 10@ = 0  
    0006: 11@ = 0  
    
    :PLCHUTE_3202
    0093: 21@ = integer_to_float 10@ 
    0017: 21@ /= 4.267  
    0063: 21@ -= 2@  
    0017: 21@ /= 20.0  
    005B: 2@ += 21@  
    0087: 21@ = 2@  
    0017: 21@ /= 15.0  
    0063: 1@ -= 21@  
    00D6: if 
     0021: 1@ > 180.0  
    004D: jump_if_false @PLCHUTE_3303 
    000F: 1@ -= 360.0  
    
    :PLCHUTE_3303
    00D6: if 
     0023: -180.0 > 1@  
    004D: jump_if_false @PLCHUTE_3334 
    000B: 1@ += 360.0  
    
    :PLCHUTE_3334
    02F6: $1507 = cosine 1@ // sinus swapped with cosine 
    02F7: $1508 = sinus 1@ // cosine swapped with sinus 
    0069: $1507 *= $1500  
    0069: $1508 *= $1500  
    0011: $1507 *= -1.0  
    0085: 12@ = 10@  and handles 
    0085: 13@ = 11@  and handles 
    0095: make 12@ absolute_integer 
    0095: make 13@ absolute_integer 
    00D6: if or
     0019: 12@ > 40  
     0019: 13@ > 40  
    004D: jump_if_false @PLCHUTE_4066 
    00D6: if 
     001D: 12@ > 13@  
    004D: jump_if_false @PLCHUTE_3741 
    0089: 21@ = $1501  
    0065: 21@ -= $1509  
    0017: 21@ /= 20.0  
    005F: $1509 += 21@  
    00D6: if 
     0029: 10@ >= 0  
    004D: jump_if_false @PLCHUTE_3607 
    00D6: if 
     8039: not 15@ == 2  
    004D: jump_if_false @PLCHUTE_3607 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_STEERR" "PARACHUTE" 1.0 1 0 0 1 -2 
    075A: (unknown) 17@ "PARA_STEERR_O" "PARACHUTE" 1.0 1 1 
    0006: 15@ = 2  
    
    :PLCHUTE_3607
    00D6: if 
     001B: 0 > 10@  
    004D: jump_if_false @PLCHUTE_3734 
    00D6: if 
     8039: not 15@ == 3  
    004D: jump_if_false @PLCHUTE_3734 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_STEERL" "PARACHUTE" 1.0 1 0 0 1 -2 
    075A: (unknown) 17@ "PARA_STEERL_O" "PARACHUTE" 1.0 1 1 
    0006: 15@ = 3  
    
    :PLCHUTE_3734
    0002: jump @PLCHUTE_4059 
    
    :PLCHUTE_3741
    00D6: if 
     0029: 11@ >= 0  
    004D: jump_if_false @PLCHUTE_3900 
    0089: 21@ = $1503  
    0065: 21@ -= $1509  
    0017: 21@ /= 20.0  
    005F: $1509 += 21@  
    00D6: if 
     8039: not 15@ == 4  
    004D: jump_if_false @PLCHUTE_3900 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_DECEL" "PARACHUTE" 1.0 1 0 0 1 -2 
    075A: (unknown) 17@ "PARA_DECEL_O" "PARACHUTE" 1.0 1 1 
    0006: 15@ = 4  
    
    :PLCHUTE_3900
    00D6: if 
     001B: 0 > 11@  
    004D: jump_if_false @PLCHUTE_4059 
    0089: 21@ = $1501  
    0065: 21@ -= $1509  
    0017: 21@ /= 20.0  
    005F: $1509 += 21@  
    00D6: if 
     8039: not 15@ == 5  
    004D: jump_if_false @PLCHUTE_4059 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_FLOAT" "PARACHUTE" 1.0 1 0 0 1 -2 
    075A: (unknown) 17@ "PARA_FLOAT_O" "PARACHUTE" 1.0 1 1 
    0006: 15@ = 5  
    
    :PLCHUTE_4059
    0002: jump @PLCHUTE_4225 
    
    :PLCHUTE_4066
    0089: 21@ = $1501  
    0065: 21@ -= $1509  
    0017: 21@ /= 20.0  
    005F: $1509 += 21@  
    00D6: if 
     8039: not 15@ == 5  
    004D: jump_if_false @PLCHUTE_4225 
    00D6: if 
     8039: not 15@ == 1  
    004D: jump_if_false @PLCHUTE_4225 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_FLOAT" "PARACHUTE" 1.0 1 0 0 1 -2 
    075A: (unknown) 17@ "PARA_FLOAT_O" "PARACHUTE" 1.0 1 1 
    0006: 15@ = 1  
    
    :PLCHUTE_4225
    01BB: store_object 17@ position_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_2 
    0815: (unknown) 20@ $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_2 
    00D6: if 
     04DA: has_object 20@ collided 
    004D: jump_if_false @PLCHUTE_4318 
    075A: (unknown) 17@ "PARA_RIP_LOOP_O" "PARACHUTE" 8.0 1 1 
    0006: 0@ = 7  
    
    :PLCHUTE_4318
    00D6: if 
     00E1: key_pressed 0 15 
    004D: jump_if_false @PLCHUTE_4354 
    0792: (unknown) $PLAYER_ACTOR 
    0004: $1513 = 6  
    0004: $1498 = 3  
    
    :PLCHUTE_4354
    00D6: if 
     03CA: object 17@ exists 
    004D: jump_if_false @PLCHUTE_4593 
    00D6: if 
     0837: (unknown) 17@ "PARA_OPEN_O" 
    004D: jump_if_false @PLCHUTE_4593 
    0839: (unknown) 17@ "PARA_OPEN_O" 21@ 
    0087: 22@ = 6@  
    0065: 22@ -= $1501  
    0087: 23@ = 22@  
    006B: 23@ *= 21@  
    0088: $1509 = 6@  
    0067: $1509 -= 23@  
    0087: 22@ = 5@  
    0065: 22@ -= $1500  
    0087: 23@ = 22@  
    006B: 23@ *= 21@  
    0087: 4@ = 5@  
    0063: 4@ -= 23@  
    02F6: $1507 = cosine 1@ // sinus swapped with cosine 
    02F7: $1508 = sinus 1@ // cosine swapped with sinus 
    006D: $1507 *= 4@  
    006D: $1508 *= 4@  
    0011: $1507 *= -1.0  
    00D6: if and
     0043: 21@ == 1.0  
     0039: 0@ == 4  
    004D: jump_if_false @PLCHUTE_4593 
    0006: 0@ = 5  
    
    :PLCHUTE_4593
    00D6: if 
     8118: not actor $PLAYER_ACTOR dead 
    004D: jump_if_false @PLCHUTE_4781 
    00D6: if 
     04AD: actor $PLAYER_ACTOR touching_water 
    004D: jump_if_false @PLCHUTE_4732 
    0812: unknown_action_sequence $PLAYER_ACTOR "PARA_LAND_WATER" "PARACHUTE" 8.0 1 1 0 0 1000 
    075A: (unknown) 17@ "PARA_LAND_WATER_O" "PARACHUTE" 1000.0 0 1 
    0004: $1513 = 5  
    0006: 0@ = 0  
    
    :PLCHUTE_4732
    083D: (unknown) $PLAYER_ACTOR 21@ 21@ 23@ 
    00D6: if 
     0021: 23@ > -0.1  
    004D: jump_if_false @PLCHUTE_4781 
    0004: $1513 = 4  
    0006: 0@ = 0  
    
    :PLCHUTE_4781
    00D6: if 
     0038: $1513 == 4  
    004D: jump_if_false @PLCHUTE_5271 
    00D6: if 
     0039: 0@ == 0  
    004D: jump_if_false @PLCHUTE_5168 
    0004: $1498 = 1  
    00A0: store_actor $PLAYER_ACTOR position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD 
    000D: $TEMPVAR_Z_COORD -= 1.0  
    00A1: put_actor $PLAYER_ACTOR at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD 
    083E: (unknown) $PLAYER_ACTOR 0.0 0.0 1@ 
    00D6: if 
     0022: -10.0 > $1509  
    004D: jump_if_false @PLCHUTE_4922 
    0004: $1513 = 2  
    0006: 0@ = 0  
    0002: jump @PLCHUTE_5092 
    
    :PLCHUTE_4922
    00D6: if 
     0022: -4.0 > $1509  
    004D: jump_if_false @PLCHUTE_5047 
    0615: define_action_sequences 14@ 
    0812: unknown_action_sequence -1 "FALL_FRONT" "PED" 20.0 0 0 0 1 700 
    0812: unknown_action_sequence -1 "GETUP_FRONT" "PED" 8.0 0 1 0 0 -2 
    0616: define_action_sequences_end 14@ 
    0618: assign_actor $PLAYER_ACTOR to_action_sequences 14@ 
    061B: remove_references_to_action_sequences 14@ 
    0002: jump @PLCHUTE_5085 
    
    :PLCHUTE_5047
    0812: unknown_action_sequence $PLAYER_ACTOR "RUN_PLAYER" "PED" 8.0 1 1 0 0 1000 
    
    :PLCHUTE_5085
    0006: 0@ = 1  
    
    :PLCHUTE_5092
    075A: (unknown) 17@ "PARA_LAND_O" "PARACHUTE" 1000.0 0 1 
    0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0 
    0085: 18@ = 32@  and handles 
    000A: 18@ += 1000  
    
    :PLCHUTE_5168
    00D6: if 
     0039: 0@ == 1  
    004D: jump_if_false @PLCHUTE_5271 
    00D6: if 
     0837: (unknown) 17@ "PARA_LAND_O" 
    004D: jump_if_false @PLCHUTE_5271 
    0839: (unknown) 17@ "PARA_LAND_O" 21@ 
    00D6: if 
     0043: 21@ == 1.0  
    004D: jump_if_false @PLCHUTE_5271 
    0004: $1498 = 2  
    0002: jump @PLCHUTE_5521 
    
    :PLCHUTE_5271
    00D6: if 
     0038: $1513 == 5  
    004D: jump_if_false @PLCHUTE_5328 
    0004: $1498 = 1  
    00D6: if 
     0039: 0@ == 0  
    004D: jump_if_false @PLCHUTE_5328 
    0004: $1498 = 2  
    0002: jump @PLCHUTE_5521 
    
    :PLCHUTE_5328
    00D6: if and
     0018: $1513 > 0  
     001A: 4 > $1513  
    004D: jump_if_false @PLCHUTE_5405 
    00D6: if 
     8118: not actor $PLAYER_ACTOR dead 
    004D: jump_if_false @PLCHUTE_5405 
    083C: (unknown) $PLAYER_ACTOR $1507 $1508 $1509 
    0173: set_actor $PLAYER_ACTOR z_angle_to 1@ 
    083E: (unknown) $PLAYER_ACTOR 3@ 2@ 1@ 
    
    :PLCHUTE_5405
    00D6: if 
     0038: $1513 == 6  
    004D: jump_if_false @PLCHUTE_5430 
    0002: jump @PLCHUTE_5521 
    
    :PLCHUTE_5430
    00D6: if 
     0038: $1513 == 7  
    004D: jump_if_false @PLCHUTE_5455 
    0002: jump @PLCHUTE_5462 
    
    :PLCHUTE_5455
    0002: jump @PLCHUTE_118 
    
    :PLCHUTE_5462
    //0004: $1513 = 0  
    0006: 0@ = 0  
    0249: release_model #PARACHUTE 
    04EF: release_animation "PARACHUTE" 
    083E: (unknown) $PLAYER_ACTOR 0.0 0.0 1@ 
    0992: set_player $PLAYER_CHAR weapons_scrollable 1 
    0002: jump @PLCHUTE_5455 
    
    :PLCHUTE_5521
    0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0 
    09A2: (unknown) 17@ 
    0108: destroy_object 20@ 
    0555: remove_weapon 46 from_actor $PLAYER_ACTOR 
    0004: $1513 = 0  
    0004: $1497 = 0  
    0006: 0@ = 0  
    0249: release_model #PARACHUTE 
    04EF: release_animation "PARACHUTE" 
    0249: release_model #GUN_PARA 
    083E: (unknown) $PLAYER_ACTOR 0.0 0.0 1@ 
    0992: set_player $PLAYER_CHAR weapons_scrollable 1 
    004E: end_thread



    4. Synthèse et tests

    Maintenant que nous avons notre script complet il ne reste plus qu'a tester (si vous n'avez pas réussi voilà un Script complet)

    Maintenant :
    http://z.vicolaships.moi.fr/saut2.jpg

    http://z.vicolaships.moi.fr/saut2-2.jpg


    5. Modification des données

    Vous pouvez aussi modifier les paramètres de parachutage, la vitesse de chute sans parachute ou encore avec parachute, combien plier les jambes vous ralentira etc... Tout se joue ici :

    :PLCHUTE
    03A4: name_thread 'PLCHUTE'
    0004: $1498 = 0 
    0004: $1513 = 0 
    0004: $1497 = 0 
    0005: $1500 =  5.0
    0005: $1501 = -5.0 
    0005: $1503 = -1.5
    0005: $1504 = -30.0
    0005: $1505 =  32.0
    0005: $1506 =  0.0
    0004: $1512 =  0
    0004: $1513 =  0



    0005: $1500 = 5.0 : C'est la valeur qui vous fait avancer en parachute : si vous mettez 0 vous tomberez sur place, si vous mettez 50 vous avancerez beaucoup en tombant
    0005: $1501 = -5.0: C'est la valeur de chute avec votre parachute lorsque vous ne tirez pas les cordes.
    0005: $1503 = -1.5: C'est la valeur de chute avec votre parachute lorsque vous tirez les cordes.
    0005: $1504 = -30.0: C'est la valeur de chute sans votre parachute (quelque soit la position).
    0005: $1505 = 32.0: C'est la valeur qui gère la position (sans parachute) pour aller plus vite, plus elle sera grande, plus vous irez vite en avant.
    0005: $1506 = 0.0: C'est la valeur qui gère la position (sans parachute) normale, plus elle sera grande, plus vous irez vite en avant.

    Je n'ai pas vu de modification avec les autres valeurs, voilà un saut en parachute qui me parait plus réaliste que le saut normal :

    :PLCHUTE
    03A4: name_thread 'PLCHUTE'
    0004: $1498 = 0 
    0004: $1513 = 0 
    0004: $1497 = 0 
    0005: $1500 =  10.0
    0005: $1501 = -8.0 
    0005: $1503 = -2.5
    0005: $1504 = -35.0
    0005: $1505 =  38.0
    0005: $1506 =  5.0
    0004: $1512 =  0
    0004: $1513 =  0



    Par Vicolaships
  10. Les différents types de texte

     

    Ce tutorial est à la porté d'un débutant en SCM, même s'il est conseillé d'avoir réalisé les tutoriels précédents.

     

    1. Présentation et objectifs

    Dans ce tutorial nous allons essayer de tester et de voir à quoi correspondent tous les types de textes dans San Andreas à l'aide de SannyBuilder

     

    2. Diffénrents types de textes

    2.1 On créé un main basic et on insere un wait 1000 après le fade et avant le end_thread

    On recherche ensuite dans les Opcodes tous les types de textes, on utilisera le mod clé "text", je n'ai retenu que les plus importants :

     

    00BA: text_styled 'GXT' 1000 ms 2  // ...

    C'est la police de texte utilisée pour les nom de missions

     

    00BB: text_lowpriority 'GXT' 3000 ms 1  // ...
    00BC: text_highpriority 'GXT' 3000 ms 1  //...

    Je n'ai pas vu de différence entre ces deux textes, le texte en centré en bas de l'écran écrit en blanc comme quand les perso parlent.

     

    033E: text_draw 320.0 180.333 'GXT'  // ...

    Petit texte au centre de l'écran modifiable via les paramètres

    320.0 180.333 = Texte centré à l'écran

     

    Plus la première valeur sera élevée plus le texte ira vers la droite (maximum : 500)

    Plus la deuxième valeur sera élevée plus le texte ira vers le bas (maximum : 400)

     

    03E5: text_box "GXT" // ...
    wait X
    03E6: remove_text_box

    Texte d'aide, avec fond gris en haut à gauche de l'écran

     

    • Note: Les "//" à la fin des opcodes permettent de mettre des notes, on le place après n'importe quel opcode et ce ne sera pas lu par le jeu.
    4. Utilisation de GXT Editor

    4.1 Téléchargez GXT Editor

    Lancez GXT Editor et ouvre le fichier "french.gxt" situé dans le dossier "/GTA San Andreas/text/"

     

    4.2 Vous pouvez rechercher un texte ou en ajouter un, pour rechercher un texte utilisez la fonction "Chercher une valeur" et pour chercher le nom attribué au texte utiliser "Chercher un nom"

     

    Pour ajouter un texte faites, "Entrée" puis "Ajouter". On vous demandera alors de donner un nom à votre texte, c'est le nom que vous inserez dans le main. Dans les exemples données précédement tous les noms de textes sont "GXT", le nom du texte est entre guillemets ('nom')

     

    Si vous appelez votre texte "texte-01" et que vous voulez l'inserez dans votre script cela donnera :

    00BA: text_styled 'texte-01' 1000 ms 2  // ...

     

    Par Vicolaships
  11. La charte des forums vient d'être mise à jour. Celle-ci concerne les images sur le forum, tant dans les messages que dans la signature des membres.

    Je vous invite donc à relire la charte à cette adresse : http://forum.macreators.com/index.php?act=boardrules

     

     

    Partie de la charte mise à jour :

    Vous vous engagez à ne pas diffuser dans tout message ou toute information quelque soit sa forme ou sa nature :

     

    - des smileys (images "émotions") autres que sur les serveurs du forum MACREATORS,

    - des smileys en grand nombre,

    - des images de plus de 200 ko ; pour les images ne respectant pas cette taille, veuillez créer un lien vers celles-ci,

    - des images à caractère injurieux, diffamatoire, raciste, xénophobe, homophobe, révisionniste ou portant atteinte à l'honneur ou la réputation d'autrui.

     

    Vous vous engagez à ne pas diffuser dans votre signature ou avatar :

     

    - des smileys (images "émotions") autres que sur les serveurs du forum MACREATORS,

    - des smileys en grand nombre,

    - une image de plus de 640x120 pixels et de plus de 60 ko pour la signature ; mettre plusieurs images dans la signature n'est pas autorisé,

    - une image de plus de 150x150 pixels et de plus de 25 ko pour l'avatar,

    - des images à caractère injurieux, diffamatoire, raciste, xénophobe, homophobe, révisionniste ou portant atteinte à l'honneur ou la réputation d'autrui,

    - tout message de publicité incitant le visiteur à cliquer sur un lien... ; vous pouvez inscrire dans votre signature l'adresse de votre site tout en respectant la charte.

  12. bonjour

    je voudrait savoire porquoi je ne peut envoyer et reçevoir des Messages Privés ?

    et quand j'essaye d'en envoyer :

    :blink:

    quelqun peut repondre a ma question ?

     

    D'autres personnes ont le même problème ?

    Tu essai d'envoyer des messages à des membres spécifiques ? ou à n'importe qui ?

×
×
  • Créer...