Aller au contenu

Tutoriaux


midtownmad

Messages recommandés

Liste des tutoriaux disponibles sur la création d'addons pour les Grand Theft Auto :

 

- Tutorial sur la création d'une forme face par face (Zmodeler) par midtownmad.

- Tutorial sur la pose des textures (Zmodeler) par midtownmad.

 

- Créer Un Véhicule En 3d Pour Débutant (Zmodeler2) par xiorxorn.

 

- Tutorial pour Vice Builder 0.22 pour GTA : Vice City par =M-F= Uxybo

- Tutorial pour Vice Builder 1.3 pour GTA : Vice City par =M-F= Uxybo

- Tutorial pour MooMapper 0.90 pour GTA : Vice City par =M-F= Uxybo

 

- Créer Des véhicules garés pour Vice City par matkilsa.

 

 

- Les Normals sous Zmodeler par CrAzY

- Texturer sous Zmodeler par CrAzY

- Création et texturisation d'une platine vinylsous Zmodeler par Yopkiwi

 

- Tutorial pour créer des fichiers collisions pour GTA : Vice City par =M-F= Uxybo

- Tutorial pour modifier le perso sous Blender par MageBlanc

- Tutorial créer les .col avec beaucoup de poly sous zmod par JFIFI

 

- Tutorial pour créer des maps sous 3D Smax ou Gmax par Poussecompagny

- Tutorial pour créer des LOD par Poussecompagny

 

- Tutorial pour AJOUTER et non pas REMPLACER des vêtements dans GTA : San Andreas par GTABOYS

 

- Débuter avec SannyBuilder (éditeur de main.scm) par dedepc

- Tutorial : Le Language SCM dans GTA : San Andreas par Vicolaships

- Tutorial : Créer une mission simple dans GTA : San Andreas par Vicolaships

- Tutorial : Les différents types de texte dans GTA : San Andreas par Vicolaships

- Tutorial : Créér un saut en parachute dans GTA : San Andreas par Vicolaships

 

- Changer Les Sons de GTA : San Andreas par DeadPixel

 

 

Vous pouvez envoyer vos tutoriaux avec vos images par mail en cliquant ici.

 

Joignez vos images et votre tutorial à ce mail.

Dans votre tutorial, là où doit s'afficher une image, inscrivez le nom du fichier de cette image... je réorganiserais tout par la suite.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Tutorial sur la création d'une forme face par face (Zmodeler) par midtownmad.

 

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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.

Lien vers le commentaire
Partager sur d’autres sites

Tutorial sur la pose des textures (Zmodeler) par midtownmad.

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.gta-macreators.com/images/tutoriaux/zmodeler_mapping1.jpg

 

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

 

http://www.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.gta-macreators.com/images/tutoriaux/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.

Lien vers le commentaire
Partager sur d’autres sites

  • 10 mois après...
TUTORIAL POUR 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


Rédigé par =M-F= Uxybo
Modifié par paki-77
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
TUTORIAL POUR 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 ;)


Rédigé par =M-F= Uxybo
Modifié par paki-77
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Voici un tutorial en image pour apprendre en autre à utiliser les fonctions "Detach" et UnitSelect" mais surtout pour pouvoir régler ses normals sur son véhicule ce qui est indispensable pour une création de qualité ;)

 

Dans ce tutorial j'ai pris exempel sur une de mes premières créations.

Il est conseillé aux personnes ayant un niveau moyen et non débutant. Il faut connaittre un minimum de base sur Zmodeler bien que tout est expliqué.

 

 

 

 

-- > Voici mon Boxer à l'état normal avec des normals classique ! Il est moche ...

 

http://www.mm2x.com/upload/files/bo1.jpg

 

-- > Et ici vous pouvez voir des tâches noirs et autres imperfections :

 

http://www.mm2x.com/upload/files/bo2.jpg

 

Donc pour remédié à ce problème je vais détacher des faces pour les recoller ensuite. Ainsi les polygones ne seront plus connectés entre eux et ressortiront beaucoup mieux !

 

-- > Pour cela je dois les séléctionnés : Dans le Menu " Select/Single " ou " Select/Quadr " a choix ... Personnelemnt j'utilise Quadr mais pour déséléctionné en cas d'erreur j'utilise "Single". Vous devez aussi passé en Mode Face en haut au dessus de vos vues. Exemple sur l'image :

 

http://www.mm2x.com/upload/files/bo3.jpg

 

-- > Ensuite vous devez donc séléctionné les faces que vous désirez détacher !

Comme sur l'image ci-contre - (Pour séléctionné il faut appuyé sur le clik droit avec l'outils "Single", ou Resté appuyé sur le clik droit et déplacé le curseur sur les polys avec le rectangle pour l'outils "Quadr" )

 

http://www.mm2x.com/upload/files/bo4.jpg

http://www.mm2x.com/upload/files/bo5.jpg

 

-- > Une fois les faces séléctionnées il faut les détacher. Pouer ceci il faut cocher la case SEL au dessus du menu Object ( Cette options permet en face de selectionner les faces séléctionnées C'est bête mais c'est comme ca... Car si vous ne cocher pas cette case au moiment de détacher il ne détachera qu'une case ) Ensuite dans le menu vous irez dans " Create/Object/Detach " comme sur l'image ci-dessous, puis vous cliquerez une fois sur l'un des polys. Une fenêtre apparaittra et il suffira de mettre Ok.

 

http://www.mm2x.com/upload/files/bo6.jpg

 

-- > Une fois cette opération terminée vous aurez un nouvel objet nommé " Detach[0] " ( Peu importe ). Ensuite il faudra décocher la case SEL puis passer en mode Object. Il faut aussi séléctionné l'objet de base - Corps du véhicule d'où les faces ont été détachées - en fesant un clik droit sur l'objet dans le Menu et en fesant "Selected" comme sur l'image ci-dessous. Puis pour finir il faut se mettre en " Create/Object/UnitSelect" dans le menu. Une fois la manipulation faite une nouvelle fenêtre va apparaîttre et il suffira de mettre Ok comme précédement

 

http://www.mm2x.com/upload/files/bo7.jpg

 

-- > Et pour finir il suffit de faire un Calculate de l'objet ! Rien de plus facile il vous faut être en mode Objet ( Par défaut vous devez y être déjà ) et faire cette manipulation " Surface/Normals/Calculate" et vous verrez la différence

 

Voici le résultat de turotial ici :

 

http://www.mm2x.com/upload/files/bo9.jpg

 

http://www.mm2x.com/upload/files/bo8.jpg

 

Et voici le résultat après plusieurs retouches par ci par là . Le résultat est flagrant

 

 

http://www.mm2x.com/upload/files/avant.jpg

 

http://www.mm2x.com/upload/files/apres.jpg

 

 

Voilà sur ce j'éspère que mon tutorial vous sera compréhensible et utile !

 

Rédigé par CrAzY
Modifié par paki-77
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

-----------------------------------------------------------------------------------------------

___________________________________________________________

+++++++++++++++++++++++++++++++++++++++++++++++++++++

TUTORIAL POUR CREE DES FICHIERS DE COLISION POUR GTA VICE CITY

CREER PAR =M-F= UXYBO

+++++++++++++++++++++++++++++++++++++++++++++++++++++

___________________________________________________________

-----------------------------------------------------------------------------------------------

 

 

-----------------------------------------------------------------------------------------------

CE TUTO EXPLIQUE LA CREATION DE FICHIER .COL POUR DES OBJETS NE DEPASSANT PAS LES 800 POLYGONES

-----------------------------------------------------------------------------------------------

 

 

Logiciel utiliser:

 

- zmodeler 1.07 >>> http://gta-action.com/dlm/download2.php?id=469

 

- vice txd fr >>> http://www.gta-macreators.com/fichiers/5/104.php

 

- coll maker 1.0 >>> http://site.voila.fr/vdf-mod/collmaker.zip

 

- coll editor fr >>> http://www.gta-macreators.com/fichiers/5/105.php

 

--------

ETAPE 1:

--------

 

- Démarrer le logiciel "zmodeler" et charger votre création dedans

 

- !!! Attention !!! >>> Maintenand il faus que votre création soit en un seul morceau dans zmodeler

et pas en plusieurs parties et aussi que les textures de l'objet soit dans zmodeler donc exporter

les .bmp du .txd en .tga à l'aide de "vice txd"

 

http://site.voila.fr/vdf-mod/col1.jpg

 

- Maintenand faite "File/export..." et donner un nom au fichier a exporter en mettant bien .dff a

la fin et dans la case en bas choississez .dff ou .col et faite enregistrer et choississez

"gta vice city"

 

http://site.voila.fr/vdf-mod/col2.jpg

 

- Maintenand re-faite "File/export..." et donner a nouveau le même nom que pour l'export precedant

(ex: valise) mais ne mettez pas .dff a la fin cette fois et choississez "Direct x file meshes (.x)"

dans la case en bas cette fois si puis enregictrez

 

http://site.voila.fr/vdf-mod/col3.jpg

 

- Quitter zmodeler

 

--------

ETAPE 2:

--------

 

maintenand démarré "coll maker" et faite:

 

- "options/mirror.." cochez la case "x axis" et faite "Ok"

 

- "file/load text" et charger le texte .x que vous avez créer tout a l'heure sous zmodeler

 

- Dans la case "object name" donner le même nom a l'objet que celui donner au fichier .x

 

http://site.voila.fr/vdf-mod/col4.jpg

 

- Faite maintenand "Make collision file" et donner a nouveau le même nom que dans la case "object name"

et enregistrer le .col ou vous le voulez

 

http://site.voila.fr/vdf-mod/col5.jpg

 

- Quitter coll maker

 

--------------------------

 

Voilà vous possédez a présent un fichier .col de votre objet .dff que vous pouvez regardé à l'aide

de "coll editor"

 

http://site.voila.fr/vdf-mod/col6.jpg

 

--------------------------------------

 

Tuto écris par =M-F= Uxybo

 

--------------------------------------------------

Modifié par paki-77
Lien vers le commentaire
Partager sur d’autres sites

Voila comme promis je vais vous expliquez comment modifier le player ds vice city

et pour les pietons c le meme tuto

 

d'abord ce kil vous faut : - blender 2.34 TELECHARGER LE ICI avec le script pour importer il fo prendre les 2 version sur ce site ICI

 

- un modele de perso 3d ou des accessoire en 3d comme des lunettes chapeaux etc .. cela depend de ce ke vous voulez faire

 

- les fichier des perso originaux en dff et txd

 

1-PREPARATION

 

donc pour commencer il fo installer blender 2.34 ensuite extraire le script ("gta_IE 01c.py" il se nomme) ds le repertoire script de blender ensuite il fo mettre ds un meme repertoire le txd et dff du player et extraire du txd l'image en BMP ainsi ke le fichier tommy skeleton se trouvant ds l'archive du 01b tjs ds le meme repertoire voila tout est pret on peux commencer !

 

2-CONNAITRE UN PEU BLENDER

 

voila a koi ca ressemble une fois lance

http://img39.exs.cx/img39/4915/image78.th.jpg

 

donc il y a plein d'icone partout je ne vais vous expliquer ke ce utiliser pour ce tuto

 

http://img28.exs.cx/img28/4848/image68.th.jpg

 

Menus : c la ke l'on navique pour avoir la vue 3d, animation, text editor, script window etc ...

 

change de type : c le type de selection en fait. mode vertices (edit mode) correspond au mode point (possibilite de selectionner point par point) il y aussi mode uv paint etc..

 

Dif modes : ce sont les modes d'affichage en wireframe en solid ou en texturer

 

et enfin Layer : ce sont les couches a chaque couche peut etre affecter des modele 3d differents ( ce sera notre cas car les dummy seront en layer 5 )

 

SE DEPLACER DS BLENDER : avec la souris et le pavé numerique

 

-molette ds la vue 3d sert pour le zoom

-molette maintenue enfonce bouge s la vue 3D

-la touche shift maintenue et avec la molette vous ne bougez ke sur le plan 2d

 

-clique droit c pour bouger l'objet ( garder le clique droit enfonce au moins 1 seconde et ensuite bouger la ouris et l'objet bougera

 

-clique gauche c pour selectionner un objet ( pour deselectionner il faut appuyer sur la touche "a")

 

le pave numerique : 7 c pour avoir la vue de face

3 c pour la vue de cote

1 c pour la vue de dessous

* c la vue de dessus

 

et (+ -) c pour le zoom 5 pour la perspective et / zoom sur le pointeur ( c la petit cible ki se deplace kan vs faite un clique n'importe ou ds la vue 3d)

voila maintenant on va lancer le script !!

 

3-IMPORTER LE MODELE PLAYER DE VICE CITY

d'abord faite file-->new-->erase all

ensuite faite "suppr" pour virer le cube

allez ds la liste des menus et choisissez " Text Editor"

faite file-->open

http://img60.exs.cx/img60/2954/image03.th.jpg

choisissez ds le repertoire scripts le fichier en surbrillance

http://img60.exs.cx/img60/359/image04.th.jpg

puis faite open vous ave maintenant a l'ecran une page de text ( ben keske je v faire de ca ?)

et ben fait juste "alt+p" :P et vs aurez ceci

http://img26.exs.cx/img26/9696/image06.th.jpg

 

1- choisissez le repertoire avec vos fichier dff txd et bmp du player

2- cette option c pour la compatibilite avec zmodeler si vous avez besoin de modifer sous zmodeler

3- bpatch creer les dummy pour blender a selectionner obligatoirement pour les pietons et le player

4-vs pouvez importer

5- vs passez maintenat en mode 3D view

 

bon la version 2.34 met les dummies sur le layer 1 avec le persos donc faite un clique droit sur le perso il devient rose faite M et cliquez

http://img16.exs.cx/img16/7051/image150.th.jpg puis faite OK

 

ensuite vs pouvez charger un autre script pour importer des fichier LWO il y aussi 3ds mais je c pas si ca marche g pas teste pour modifer ou mettre un autre model de perso ( il ne doit etre ke de une seule partie nomme "Root_mesh") donc une fois le perso modifier les accessoire mis ou le nouvo player model importer vous selectionner tous les objets d'abord et apres le player (si vous avez importe un nouvo model n'oubliez pas de supprimer l'original apres ke le votre soit de meme taille et bien positionnez ds le meme sens ) puis faite "CTRL+J" pour ne faire ke une seule partie

 

maintenat c la partie ou il ne fo pas se tromper il fo definir les parents

d'abord on va faire kkchose allez ds file en haut puis append et allez cherchez le fichier tommyskeleton.bend ki etait ds l'archive "gta_ie_01b" et selectionnez le vs aures alors comme des repertoire clique sur objects et tommyskeleton puis sur load library et vs avez le skelette de tommy ds votre vue 3D

 

alors on va selectionner le player model ki normalement si vs avez tout bien suivi s'appelle Root_mesh ensuite maintenez shift et clique pour allez ds layer 1 puis faite select by layer et cliquez sur 1 vs avez normalement le player et les dummies de selectionne pas le skeleton si c bon faite object--> make parents

ensuite vous selectionnez a nouveau le player puis le skeleton et faite pareil make parents mais vs avez un menu en plus avec : " use bone , use armature c celui ci ke l'on choisi ensuite dans le nouvo menu deroulant si vous choisissez "create from closest bones" il fera l'association des dummy tout seul sinon faite "creat new groups" et vs ferez vs meme les association dummy tete avec la tete du perso etc.. pour juste essayer votre perso rapidement ds vice city choisissez "create from closest bone" mais auparavant vous avez ete en mode "edit mode" et vs avez bougez les bones pour kelle corresponde a votre modele

 

maintenant vs deselectionnez tout et vous ne gardez selectionne ke le player (attention une seule texture autorise le player.bmp pour le cas du player mais c la meme chose pour tous pieton ou player) vs repartez ds votre script window pour exporter si vs n'avez plus le script gta rechargez le regardez le debut du tuto je v pas le reexpliquer et verifier ke vs etes bien encore sur le fichier dff ke vs avez charger puis choisissez la ou il y a ecris VC vehicle et choisissez VC human puis faite Export normalement si c bon vous verez ds le cadre noir :

 

- laoding bone patch

-exporting 1 meshe and 24 dummies

- xxx bytes exported c:\xxx\xxx\player1.dff ( si vs avez charger player.dff il sauvegarde sous player1.dff car il ne reecris par dessus il cree un nouvo)

 

mainteant prenez img tool supprimer ou faite un backup de celui ke vous devez remplacer mettez a jour le txd si vs changez la texture faire rebuild archive lancez le jeu et si vs arrivez ds le jeu c ke c bon !!

 

voila j'espere ke je me suis bien expliquer sinon poster vos probleme et j'y repondrais !!!

 

Rédigé par MageBlanc
Lien vers le commentaire
Partager sur d’autres sites

Voilà ça fesait un bon bout de moment que je voulais le mettre en ligne.

 

Faire un fichiers col qui peut atteindre les 2000 à 3000 polygones selon vos envies.

 

 

Il vous faut :

 

Zmodeler de Oleg

 

Col Io de Delfi

 

Coll Editor de Steve-M

 

N’importe quel fichier col exporté dans un dossier.

 

 

 

Informations : Nous allons utiliser Col Io de Delfi qui n’a qu’une capacité de 800 polygones mais qui fait des col d’excellente qualité. L’exemple ici sera mon Pentagone pour Myriad Islands et donc les normals sont appliqués.

 

 

 

Etape 1 : Zmodeler

 

Une fois votre création terminée, vous devez assembler toutes les pièces et savoir le nombre de polys qu’elle contient en tout. Pour cela, cliquez sur « faces » dans la barre d’outils et selectionnez toutes la créations. Le nombre de polys devrait s’afficher en bas.

 

Screen

 

Ensuite, désectionnez tous les polygones et cliquez sur « Objects » à droite de « faces ». Il faut faire une rotation de 180° à la création. Pour cela, cliquez sur « modify » et après sur « rotate ». Vérifiez aussi que dans la barre d’outil, les cases avec la lettre « H » et « V » soient séléctionner. (Remarque : mon pentagone étant symétrique, la rotation ne se voit pas et n’est pas utile)

 

Screen

 

Si votre création a trop de polys, vous pouvez remplacer un ordinateur par un cube afin d’économiser des polys. En tout cas c’est ce que je fais (je supprimes aussi les textures, elles ne me serviront à rien). Voici le résultat :

 

Screen

 

De 3956 faces, je suis passé à 1388, ce qui va largement nous faciliter la tâche.

 

Maintenant, il va falloir coupé votre création en plusieurs parties de 600 à 700 polys (et ouais c’est comme ça). Recliquez sur « faces » et sélectionner des faces (vérifier le nombre de polys en bas) puis faites « creates », « objects » et « detach ». Deux fenêtres doivent s’ouvrir, cliquez sur ok.

 

Vous avez maintenant 2 objets.

 

Vous allez supprimer le 2ème et exporter le 1er en 3ds (on va le nommer 1) et après on va revenir en arrière avec notre bon vieux ctrl-Z et supprimer le premier et exportez ensuite le 2ème qu’on nommera 2. C’est un peu chiant mais c’est nécessaire.

 

Après cette manipulation vous pouvez fermer Zmodeler, on n’en aura plus besoin.

 

 

 

Etape 2 : Col Io

 

Ouvrez Col Io, une fenêtre va s’ouvrir, cherchez le col que vous avez préparé avant la manipulation et cliquez sur ok. Vous devrez avoir ceci :

 

Screen

 

Ensuite, cliquez sur « import faces from 3ds model », une fenêtre va s’ouvrir, cliquez sur OK. Une deuxième fenêtre va s’ouvrir, cherchez votre premier fichier 3ds et cliquez sur « ouvrir », laissez Col Io travailler et ensuite faite « export to new col file… » et nommez le 1. Ensuite refaites la manipulation pour le deuxième 3ds et renommez le 2 (vous n’avez juste qu’à cliquez sur « import… » et ensuite sur « export… »

 

Fermez Col Io ensuite.

 

Screen

 

Etape 3 : Coll Editor

 

Ouvrez 1.col que vous venez juste de faire et cliquez sur « import » pour ouvrir 2.col. (normalement après la fenêtre pour chercher votre fichier, une deuxième va s’ouvrir, pour importer votre fichier, vous devez le mettre en surbrillance)

 

Voici ce que ça donne normalement :

 

 

 

Maintenant pour les assembler, allez dans le menu « coll » puis « merge ». Une fenêtre va s’ouvrir. Voici comment vous devez procéder : en haut, le nom du premier col, au mileu, celui du deuxième et en bas celui du nouveau.

 

Screen

 

Maintenant un troisième col va se créer, supprimer les deux premiers.

 

Votre fichier collision est fait. Voici le résultat :

 

 

Screen

 

 

Fin du tutorial.

 

 

Rédigé par JFIFI
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
-----------------------------------------------------------------------------------------------
___________________________________________________________
+++++++++++++++++++++++++++++++++++++++++++++++++++++
TUTORIAL POUR MOOMAPPER POUR GTA VICE CITY
CREE PAR =M-F= UXYBO
+++++++++++++++++++++++++++++++++++++++++++++++++++++
___________________________________________________________
-----------------------------------------------------------------------------------------------


------------------
Logiciel utilisé:
------------------

moomapper 0.90 >>> se trouve ici : http://www.grandtheftauto.fr/downloads/c53...pper-090-fr.php

------
Intro:
------

- Alors pour commencer démarré le logiciel en cliquant sur le bouton
« Grand theft auto vice city » et aussi sur le bouton
« All models+All textures (very slow) » et ensuite cliqué sur
« Launch Moomapper ! » le logiciel devrait démarrer et les décors apparaîtront en couleurs.

- On va commencer par quelque chose de simple : on va dupliquer un objet.
Pour commencer nous allons faire apparaître une carte de vice city pour
nous aider à nous repéré, pour faire apparaître la carte cliquer sur le
bouton « background map » qui se trouve en haut à gauche du logiciel.

- Ensuite sélectionner une partie de la ville ou plusieurs en cliquant sur
l’un des boutons de droite (ex : »DATA/MAPS/golf/golf.IPL ») et des décors
devrait apparaître

- Ensuite double cliquer sur l’objet que vous voulez dupliquer et une fenêtre
devrait apparaître

- Ensuite cliquer sur le bouton « duplicate »
Voilà votre objet viens d’être dupliquer et il faut maintenant le placer à
l’endroit voulu et pour cela il faut maintenant modifier les chiffres qui se
situe en haut à droite de la fenêtre qui est apparue tout à l’heure quand vous
avez double cliquer sur l’objet

- Pour déplacer l’objet de haut en bas il faut modifier le 3ème nombre et pour
faire aller l’objet à gauche ou à droite il faut modifier les 2 autres chiffres

- Astuce : pour déplacer l’objet de gauche à droite plus rapidement il suffit
de rester appuyer sur « ctrl » et aussi de rester appuyer sur la touche gauche de la souris.

- Moi j’ai déplacée la maison qui se trouve au golf
Vous pouvez aussi bouger l’objet dans d’autre sens en cliquant sur les petites
flèche qui se trouve à côté des lettres X,Y et Z à droite de la fenêtre de l’objet

- Vous pouvez aussi renommer l’objet en changent le nom écrit dans la case « Model name ».

- Voilà après avoir terminer de modifier vice city il faut sauvegarder en
cliquant sur « File » puis sur « Save modified files »
Si vous voulez suprimer un objet alors double cliquer dessus et ensuite
cliquer sur « delete Item»

- Maintenant je vais vous expliquer comment ajouter un objet sens avoir besoin de le dupliquer :

- Tout d’abord cliquer sur le bouton « Add item » et une fenêtre devrait apparaître.

- Vous devez maintenant rentré le numéro de l’un des objet de vice city dans la case
« ID number » (comme exemple j’ai choisi de faire apparaître le looping du dirtring
de vice city qui a comme numéro le 4498).

- Voilà vous savez maintenant comment faire apparaître de nouveaux objets,il ne vous reste plus qu’à le placer au bonne endroit comme il est expliquer plus haut dans se tutorial.


------------------------------
Etape 1: Créer des IPL et IDE:
------------------------------

- Tout d'abord rendez vous dans le repertoir "GTA vice city/data/maps/ de votre jeux et créer
un nouveau dossier ou vous mettrez vos futur .IPL et .IDE

Image

- Démarrer "moomapper" et cliquer sur le bouton "new" en haut à gauche

Image

- Ensuite donner un nom a votre futur .IPL et sauvegarder le dans le repertoir "maps/test"

- Maintenand que vous avez créer votre fichier .IPL il vous faus créer un .IDE donc cliquer
sur "Object definition" qui se trouve en haut à gauche puis sur "new"

Image

- Ensuite donner un nom a votre futur .IDE et sauvegarder le dans le repertoir "maps/test"

- Sauvegardez et quitter "moomapper" et rendez vous dans le repertoir "gta vice city/data"

- OUvrez le fichier "gta-vc.DAT" et ajouter la ligne de raccourci de votre .IDE à la suite
de celle là: "IDE DATA\MAPS\haitin\haitin.IDE"

Image

- Faite de même pour le .IPL mais ajouter là après la ligne: "IPL DATA\MAPS\stadint\stadint.IPL"


Image

- Voilà vous avez créer un new .IPL et un new .IDE


------------------------------------------------
Etape 2: Ajouter un new objet a votre vice city:
------------------------------------------------

- Démarrer votre "moomapper" et charger votre new .IPL dans la colonne de droite

Image

- Maintenand cliquer sur "Object definition" en haut à gauche et selectionner votre .IDE dans la liste en dessous

Image

- Ensuite cliquer sur "Add" et une fenêtre apparait

Image

- Ne touchez pas au numero qu'il y a dans la case c'est le numero d'identiter de votre objet dans mon exemple c'est le numero 4794

- Cliquer sur les 3 petits points qui se trouvent a coter de la case "model name" et charger votre fichier .dff que vous voulez ajouter à votre vice city

- Cliquer sur les 3 petits points qui se trouvent a coter de la case "texture lib" et charger le fichier .txd qui contient les textures de l'objet .dff que vous venez d'ajouter à votre jeux

- maintenand dans la case LOD Value mettez le chiffre 300 si votre objet est un objet normal ou 1800 si votre objet est un LOD

Image

- Voilà ne touchez a rien d'autre que cela et maintenand cliquer sur "item placement" en haut à gauche et selectionner votre .IPL dans la liste en dessous

Image

- Maintenand cliquer sur "Add" et dans la fenêtre qui apparait rentrer le numero d'identiter de votre new objet dans la case "ID number" (dans mon exemple c'est 4794) et rentrer le nom de votre objet dans la case "model name" (dans mon exemple c'est "player")

- Voilà vous avez ajouter un new objet a votre vice city maintenand pour changer sa place dans le jeu changer c'e'st coordonné à l'aide de la case position (X,Y et Z)

- !!!ATTENTION!!! pour que votre objet fonctionne bien dans le jeu il faus lui fair un .COL

- >>> explication pour les .COL >>> <<<

---------------------------------------------
Comment ajouter les fichier .COL à vice city:
---------------------------------------------

- Mettez le fichier .COL de l'objet que vous avez ajouter à votre jeux dans le même dossier
que là ou vous avez mis votre .IPL et .IDE "gta vice city/data/maps/test"

- Ensuite ouvrez le fichier "gta-vc.DAT" "gta vice city/data" et ajouter la ligne de votre
objet en dessous de la ligne "COLFILE 0 MODELS\COLL\GENERIC.COL"

Image

- Voilà votre objet ora maintenand une colision dans votre jeux

--------------------------------------

Rédigé par =M-F= Uxybo
Modifié par mimiduchat
Lien vers le commentaire
Partager sur d’autres sites

TUTORIAL POUR TEXTURER SOUS ZANOZA MODELER


Je voudrais que ce topic reste propre alors SVP ne postez pas si c'est inutile ou HS !

Ici seul les questions en rapport avec le tutorial ou Zmodeler seront tolérer. Merci.


Ce tutorial vous apprendra à texturer une surface dans Zanoza Modeler (toutes versions).

1. Une fois que vous avez lancé ZModeler. Vous allez créer une surface pour pouvoir appliquer votre texture sur celle-ci.
Rien de plus simple, il suffit d'aller dans le menu (Main Toolbox) et de suivre l'exemple "Create/Surface/Flat".
Ensuite dans une des vues (sauf 3D ou UV Mapper) vous allez faire un rectangle en maintenant le bouton gauche de la souris enfoncé puis une fenêtre vous demandant de nommer votre surface va apparaître comme ceci. Mettez les valeurs 1 & 1, ce qui correspond à 1 ligne verticale et 1 ligne horizontale.

Image 1

2. Maintenant il va falloir charger la texture dans le Materiel Editor (raccourci clavier : E).
Nous cochons la case "Primary Texture", puis nous fesons "Load Map", ensuite "Add" pour ajouter une texture dans la liste. Puis il faut valider avec OK.

Image 2

Il faut bien vérifier que la texture est en mode "Mix Whit Colors" comme sur l'image et le format doit être en *.TGA (non compressé) ou *.BMP Ensuite il faut nommer la texture en haut puis valider avec COPY.
Pour ma part je la nomme par le nom de la texture, exemple si la texture est dédiée aux phares avants (headlights.tga), ce sera headlights0 (il vaut mieux mettre un chiffre après chaque nom dans le Material Editor si non vous risquez d'avoir des problèmes). Autre conseil, c'est mieux d'utiliser des *.TGA que des *.BMP en effet le chemin de chaque image *.TGA est toujours gardé en mémoire (pour autant que les images ne changent pas de place).

3. Maintenant il va falloir texturer ! Ce n'est pas le plus compliqué mais il faut suivre et ne rien oublier.
Il va falloir séléctionner les faces que nous voulons texturer. Pour ça nous allons dans le menu et nous choisissons "Select/Single", puis nous passons en mode Face - Carré à gauche de carré Rouge en haut - et nous
changeons l'une des vues en "UV Mapper".

Image 3

Une fois les faces séléctionnés nous allons cocher la case SEL au dessus du menu Object. C'est une sorte de séléction des faces séléctionnées ... Car quand nous allons assigner si nous ne cochons pas cette case une seul face va être prise dans la texture tandis que si nous la cochons toutes les faces seront dans la texture.
Après nous allons dans le menu et nous fesons "Surface/Mapping/Assign UV".
Puis nous cliquons une fois sur l'un des polys dans une des vues. Si tout est fait correctement vous devriez voir dans la vue UV Mapper votre séléction plus ou moins à côté de la texture.

Image 4

Maintenant il va falloir passer en mode Object (cube rouge en haut), nous décochons la case SEL pour passer en mode MUL (n'oubliez pas cette case sinon tout les sommets seront détaché et vous aurez du mal) et nous allons maintenant bouger les sommets sur la texture. Pour ceci il faut aller dans le menu et faire "Modify/move".

Image 5

Maintenant il y a plusieurs choix. Soit nous pouvons bouger les sommets 1 par 1 pour les adapter sur la texture, soit nous pouvons d'abord scaler toute la surface pour respecter les proportions (conseillé si vous débutez) puis après nous finirons en bougeant les points.

*Pour scaler il faut faire "Modify/Scale" (toujours en étant en mode Object, cube rouge). En maintenant la touche SHIFT ou MAJ enfoncée nous scalons dans tout les axes (X, Y). L'axe Z étant la profondeur ne compte pas ici, nous appliquons une texture en 2D ou nous pouvons scaler en suivant 1 seul axe à la fois sans toucher à la touche SHIFT mais en choisissant X ou Y en haut. Puis pour plus de précisions en cas de texture détaillée vous pouvez passer en mode Vertice (sommet, le cube le plus à
gauche) et bouger les points manuellement.

Si vous avez des questions, remarques, suggestions n'hésitez pas à m'en faire part sur le forum, par message Privé ou en posant une question dans le support technique.

Rédigé par CrAzY
Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...
CREATION ET TEXTURATION D UNE PLATINE VINYL


Tuto ecri par yopkiwi le 10/01/2005
Niveau debutant

Preliminaire
------------

Dans ce tuto on vas surtout apprendre a texturé
voir les fonction move , scale puis la creation de cube
cylindre ect...
Commencons par prendre l'image puis enregistrée la au format .bmp
256*256
512*512
1024*1024
http://www.mm2x.com/upload/files/image1.PNG
pour les tailles
Plus l'image est grande , meilleur sera la qualité
Ensuite nous allons allez dans z modeler :) allez dans options
normals puis cochez "automatique uptade"


Creation du model 3d
--------------------

Cliquez sur l'icone d'un cube en haut
http://www.mm2x.com/upload/files/image2.PNG
nous allons bien regarder la texture faites le
avant puis regarder la forme .... pour que notre cube
ressemble à la platine dans ce cas on utilisera modife scale
http://www.mm2x.com/upload/files/image3.PNG
Puis cliquez sur toogle local axis et la vous aurrez acces au axe!( axe c'est pour pouvoir bouger en profondeur
hauteur ect...)
http://www.mm2x.com/upload/files/image4.PNG
Voila apres ses petit reglage si on peu dire vous etes enfin pret!
scalé dans la vue right y , z ou x
Maintenant on va cré un cercle !
utilisez modifie move pour le deplacer
puis scal comme pour le cube
faites ensuite les details !
bouton ect toujour avec scale et move
faite les pieds , le bras toujour avec les cube cylindre et scale ainsi
que move!
Si vous m'avez bien ecoutez vous devriez avvoir ca :
http://www.mm2x.com/upload/files/image5.PNG
Voila maintenant ! on vas texturée la platine ! mais avant toute chose on vas tout
reattachez pour que nous n'ayons plus qu'une seule piece
Faites select --> all puis cliquez sur le caré rouge en haut , le dernier et faite
clic droit sur la platine...
elle aparaitra en rouge voila le model 3d est fini

Les textures
------------

Appuyez sur E
Cliquez sur primarie texture et mettez votre texture
(facultatif mettez une texture chrome dans l'onglet reflection map
ca permet d'avoir du chrome ;)tres jolie effet ma fois
cliquez sur assigner selection !
Utilsez l'outil rectangle easy selector
Mettez vous en mode faces
Selectionez le tout !
http://www.mm2x.com/upload/files/image6.PNG
Faites surface , mapping , assign uv puis cochez sel en bas
Cliquez dans le vide... de la vue right
ensuite dans la vue top mettez vous en uv mapper et la vous verrez la texture avec la platine en 3d ...
http://www.mm2x.com/upload/files/image7.PNG
Faite select none pour tout deselectioner
Decochez sel
Utilisez move et scale pour ajuster la texture dans uv mapper par raport a la platine 3d dans uv mapper
regardez le resultat dans la vue 3d general normalement ca vous donnera ca :
http://www.mm2x.com/upload/files/image8.PNG
********************************************************************



Rédigé par Yopkiwi
Modifié par paki-77
Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...
Ce tuto va vous apprendre à creer une map dans GTA San Andreas à partir de 3dsmax ou Gmax
(les deux sont compatibles)






-les points important du tuto sont indiqués en ROUGE


I) Création de la map

-Installez les scripts dans le répertoire s'installation (par défaut C:\progam files\autodesk\3dsmax\ )
FACULTATIF
-décompressez l'archive de San Andreas nommée gta3.img (1 Go^^) dans un dossier.
-lancez le script "MAP IO" présent à droite dans les outils.
-ouvrez l'onglet "IO control" et recherchez le dossier de l'archive.
[image]
-importez la partie de map que vous voulez
-pour ma part j'ai choisi l'ipl "DATA\MAPS\LA\LAs.ipl"
[image]

-maintenant que les préparatifs sont pret il s'agit de creer une map.
-commencez par creer un plan et changez les paramétres :
[image]
-placez votre plan.
[image]
-faite un click droit >> convert to >> editable mesh.
[image]
-passez en mod "select and move" puis en "vertex".
[image]
-déplacez les polys du contour un à un pour faire un peu plus réaliste.
-ensuite passez en mod "polygon" et selectionnez tous ces derniers, cliquez sur le bouton "extrude" et entrez la valeur 10 appuyez[Entrée] puis 5 appuyer [Entrée].
[image]
-repassez en "vertex" et selectionnez les vertex du haut, passez en mode "scale" puis placez votre souris dans le rond bleu jusqu'a ce qu'une image apparaisse puis cliker et déplacez votre sourri de haut en bas.
[image]
-renouvellez l'opération pour les vertex du bas et formez ainsi une île naturelle.
-vous pouvez creez des objets sur votre map, des maisons et autres.
-rapellez vous que la map de gta n'est pas là pour faire beau mais pour vous donner une idée de la taille des objets et par la suite pour placer votre map dans le GTA.
-construisez par la même un pont de la meme façon que vous avez fait votre map, vous pouvez utilisez la fonction "cylindre" ou "sphere" mais évitez la fonction "box".


II) texturisation

-passons au moment le plus aprécié : la texturisation
-La partie de San Andreas n'est plus utile une fois que la map est faite.
-lancez l'éditeur de materiaux et cliker sur "new" puis sur "GTA Material".
[image]
-clickez sur le "none" à coté du "color" et selectionnez votre texture à partir d'une bitmap.
[image]
-le bouton fléche vous permez de revenir à l'éditeur et le bouton dés bleu et blanc vous permez de voir votre texture dans le "vue 3d" ou "user".
-cliquez sur la boule et faite glissez sur la map.
-puis clickez sur la map et allez dans l'onglet des modification et dans la liste des modifications choisissez "UVW mapping"
[image]
-entrez les valeurs 10 ; 10 ; 10 dans "length" "width" et "height"
-votre map est maintenant parfaitement texturisée !
-mais nous allons mettre une autre texture de roche pour faire plus réaliste.
-allez dans l'éditeur faite "new" "none" du "color" puis "bitmap" et choisissez une texture de pierre.
-faite un click droit sur le "UVW mapping" et choisissez "collapse all" ceci permet de revenir à notre map de base tout en gardant les modifications dessus.
[image]
-une sorte de message d'erreur apparait clickez sur "yes"
-passez en mod "polygon" selectionnez les poly du bas. Puis retournez à l'editeur de matériaux et selectionnez la boule et glissez là sur la map. Utilisez l'icone cube bleu et blanc pour vérifiez et admirez votre travail.


III)convertir la map à San Andreas



-attachez la map et tous les objets en appuyant sur "attach" et en selectionnant tout les objets (ou clickez sur "attach list" puis "all" et "Attach" )
[image]
-creez un cylindre de 300 de rayon et placez le sur la map de façon y ce qu'il couvre une partie seulement ou tout si la map est petite.
[image]
-passez en mod poly et selectionnez les poly de votre map contenu dans le cylindre.
-clickez sur detach et appelez votre map n°1 par exemple map01 (ce sera le nom de votre .dff)
[image]
-selectionnez la map et passez en "hierarchy", "affect pivot only" puis placez le "pivot" de votre map au centre du cylindre.
[image]
-faite la même chose pour la deuxième partie de l' île renommée "map02"
-suprimez le cylindre.
-lancez le "MAP IO" et selectionnez l'objet map01 et clickez sur "get".
-message d'erreur "yes".
-entrez 19001 dans l'id (par exemple mais pas seulement par exemple) et le nom de votre .txd par exemple "map" pour faire simple.
-cliquez sur "set" pour sauvegarder les changements.
[image]
-renouvellez l'opération pour l'objet map02 en changant l'id 19002 et en gardant le même .txd
-maintenant ouvrez le "max script listener" en appuyant sur [F11].
-passez dans l'onglet "IO Control" du script "MAP IO".
-exportez l' IDE
[image]
-creez un nouveau dossier dans le dossier ~\data\maps\ nommez le "map"
-copiez collez un ide du jeu et un ipl du jeu dans ce dossier "map" et renommez les en map.ide et map.ipl (ne pas mettre l'extension)
[image]
-ouvrez ces fichiez et copiez collez le "max script listener" suivant l'IDE ou l'IPL.
[image]
-maintenant exportez (pour les utilisateurs de Gmax j'ai quelques problèmes à ce niveau là mais rassurez vous je travail dessus ;) ) les objets en .dff comme il suit :
[image]
-bien mettre "skip col"
-vous selectionnez un objet et vous exportez puis vous selectionnez l'autre et vous exportez.
-ensuite resetez la scene et importez l'objet n°1 "map.dff"
-ouvrez le colision IO
-cliquez sur "collision Mesh" et pointez votre map.
-passez en [COLL] et notez map01 puis exportez.
[image]
-renouvelez l'opération en resetant la scene.
-maintenant fermez 3ds ou Gmax.

IV) Inserrer la map à SA

-retournez dans le dossier où vous avez creez les deux fichiers ide et ipl.
-mettez vos deux fichiers .dff et .col dedans
-copiez l' archive .img "~\models\cutscene.img" et collez là dans le dossier "map" que vous avez créé.
-renommez là map.img (sans l'extension)
-ouvrez là, suprimmez tout sauf le dernier fichier et resconstruisez l'archive.
-exportez le dernier fichier dans le dossier "map" (preq_cargo.txd)
-renommez ce fichier en map.txd (sans l'extension)
-allez cherchez les textures que vous avez utilisées et mettez les dans ce dossier.
-voilà à qoi doit ressembler ce dossier maintenant.
[image]
-ouvrez le .txd et remplacez les textures par les votres en dupliquant celle d'origine.
[image]
-ouvrez l'un des col et importez l'autre dedans puis sauvegardez ce nouveau col en le nommant map.col (sans l'extension)
[image]
-ouvrez votre archive et importez le fichier map.col , map01.dff , map02.dff et map.txd
-suprimez le fichier restant à l'origine et reconstruisez l'archive.
[image]
-votre boulot et terminé il ne vous reste plus qu'a inserrer 3 lignes dans le gta.dat
-la premiére pour le img :
IMG DATA\MAPS\MAP\MAP.IMG
-la seconde pour l'ipl :
IPL DATA\MAPS\MAP\MAP.IPL
-la troisième pour l'ide :
IDE DATA\MAPS\MAP\MAP.IDE
-mettez les lignes avec les memes fichiers d'extension pour question de pratique.
-enregistrez et lancez GTA

vous pouvez admirer votre travail :

Pour ma pars un pont pour mon col (sans texture) sur lequel il falait que je teste les possibilités de collisions.
Mais pour vous la futur grande map !
Demain vous aurrez la suite :

-la création d'un LOD (pour pouvoir voir votre objet depuis tout San Andreas et non pas juste en étant devant à 5 métres)

Par Poussecompagny
Lien vers le commentaire
Partager sur d’autres sites

Tutorial création d'un LOD

 

-La création d'un LOD est une chose trés simple.

-pour cela vous n'avez ni besoin de 3dsmax mais juste du bloc-note, de img tool v2 et du coll editor II

-ouvrez le fichier col de vos objets, faites un click droit "copy as LOD"

-renommez ces col en LOD[nomdevotreobjet] par exemple pour nous : LODmap01 et LOD map02

-Les LOD n'ont pas de fichier colision.

-Enregistrez et ouvrez le fichier map.ide mettez les lignes dedans :

 

19004, LODmap02, map, 1500, 0

19003, LODmap01, map, 1500, 0

 

19003 > N° de l'ID

LODmap01 > nom du DFF

map > le txd

1500 > la distance d'affichage c'est à dire 1500 mettres (vous pouvez mettre moin mais c'est honorable)

 

-Passez à l' IPL en faisant un copié collé des lignes des objets et en changeant dessus l'ID et le nom du DFF

 

19004, LODmap02, 0, 1129.7, -2630.21, 0.0, 0.0, 0.0, 0.0, 1.0, -1

19003, LODmap01, 0, 842.572, -2639.95, 0.0, 0.0, 0.0, 0.0, 1.0, -1

 

-maintenant ouvrez votre archive img et suprimez le .col.

-importez le nouveau col et importez les deux objets map01.dff et map02.dff puis renommez les en LODmap01.dff et en LODmap02.dff

-reconstruisez l'archive et admirez votre travail.

 

Nota Bene : Votre GTA d'origine ne peut pas supporter plus de 5 objets suplémentaires soit 5 .dff pensez à regroupez vos col en 1 et à faire des lod de toute votre map.

 

Avec un LOD vous pouvez voir votre map depuis tout GTA :

http://poussecompagny.free.fr/poussie/image/gallery341.jpg

 

Par Poussecompagny
Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...
Comment AJOUTER et non pas REMPLACER des vêtements dans GTA SA sans modifier le "main.scm"


pour ça il vous faut : GTA-SA Ultimate editor
et .. microsoft word

°par exemple je veux 1 débardeur en plus : je le crée ( vous ne créez que la texture ) et vous la nommez vestpers.txd par exemple.
°Importeez le fichier dans player.img.
°Allez dans data et ouvrez shopping.dat ; copiez la ligne "vest" et mettez-là en dernier de la zone de vêtements juste avant le "end"

vestpers VESTWH vest 0 respect 2 sexy 3 99


°Fermee shopping.dat.
°Ouvrez GTA-SA ulltimate editor.
°Allez dans la rubrique : "store editor" puis "clothes" séléctionnez le magasin ou vous voulez que soit votre vêtement.
°sélectionez "vestpers" dans "tout l'inventaire" puis faites "ajouter" et enfin "économiser (sauvegarder)"
°Fermez GTA-SA Ultimte éditor
°JOUEZ ( ATTENTION le vêtement créé n'est pas achetable il est directement dans votre pendrie et il aura le méme nom que le vêtement dont vous avez copié la ligne dans shopping.dat, par exemple votre vêtement s'apellera "débardeur blanc" )

Par GTABOYS
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
Débuter avec SannyBuilder (éditeur de main.scm)



1/ TELECHARGER SANNYBUILDER

Vous pouvez vous procurez sanny builder qui édite GTA III, GTA VC et SA à l'adresse suivante...

2/ MATERIEL NECESSAIRE

Rien de particulier à avoir en plus, sauf le main.scm de GTA SA :lol:

3/ PREPARATIFS

Avant de faire quoique ce soit faites une copie de votre main.scm original, ainsi que script.img pour les crashs, erreurs éventuels (situé normallement dans C:\Program Files\Rockstar Games\GTA San Andreas\data\script\main.scm)...

Une fois cela terminé décompressez Sanny à l'aide de 7-zip vous devriez avoir 4 dossiers et 3 fichiers dont 1 executable !
+------------------------------------------------------------------+
Dossiers : DATA ; EXAMPLES ; HELP ; LANG
Fichiers : OST Readme ; Readme ; Sanny.exe
+------------------------------------------------------------------+
Vous pouvez maintenant executer "sanny.exe"
http://www.gta-macreators.com/images/tutoriaux/sanny1iconecu9.png
Vous arrivez normallement à cette page blanche !
http://www.gta-macreators.com/images/tutoriaux/sanny2blanchehc4.png

4/ CONFIGURATION

Faites immédiatement F10, le menu de configuration apparaît !
Vérifiez le mode de jeu ; les cases à cocher ; le chemin vers le dossier San Andreas
http://www.gta-macreators.com/images/tutoriaux/sanny3generalpt5.png

Puis dans l'onglet Formats il ne faut normallement rien changer !
http://www.gta-macreators.com/images/tutoriaux/sanny4formatsap4.png

Ensuite l'onglet Editor a vous de paramètrer vos couleurs de fond et des polices (suivre la légende) vérifier si necessaire les cases à cocher !
http://www.gta-macreators.com/images/tutoriaux/sanny5editorsq3.png

Dans l'onglet HighLighter même chose que l'onglet Editor paramètrer vos couleurs pour :
- Les commentaires (//press h to...)
- Les labels (:CARSPAWN)
- Les variables (12$, $PLAYER_CHAR)
- Les nombres (wait 1000 ms)
- Les noms court (text_highpriority 'SWE2_B')
- Les noms de modèle
- Les classes
- Les commandes

Voilà une fois tout cela fait appuyer sur "OK"

5/ DECOMPILATION

Nous allons maintenant décompiler le main.scm original ; faites ouvrir ou CTRL+O, sélectionnez SCM pour le type de fichier à ouvrir et ouvrez votre main.scm ! une décompilation se fait (vous pouvez suivre sa progression en bas à droite du programme)
Et voilà !! vous vous retrouvez devant un superbe fichier avec 535202 lignes :lol:

Maintenant gardez une copie de toutes ces lignes pour vos recherches d'opcodes et coller mon main.scm basic ou le main.scm hyper basic de Vico à la place de tout cela !

6/ COMPILATION ET TEST

Voilà vous pouvez maintenant compiler votre main.scm pour cela cliquez sur les deux petits bonhomme vert ou alors Faites F6 puis F7, vous devrez a chaque fois valider l'information (taille du fichier,...) puis cliquez sur l'icone de SA ou faites F8 pour lancer le jeu !
http://www.gta-macreators.com/images/tutoriaux/sanny6iconesd0.png

#/ REGLE POUR SANNY BUILDER

Attention vous ne devez jamais décompiler un .scm que vous avez déjà compilé car cela entraine des erreurs (d'après ce que j'ai pu en conclure) donc ouvrez toujours le fichier TEXTE lié a votre .scm

Voilà bonne création...

Rédigé par dedepc
Lien vers le commentaire
Partager sur d’autres sites

Le Language SCM


1. Matériel et conaissances nécessaires

1.1 Matériel : Vous aurez besoin de SannyBuilder et de San Andreas

1.2 Conaissances : Vous pouvez très bien partir de rien, moi même n'ayant absolument aucune autre notion de code que le SCM

2. Création d'un SCM basic

2.1 Démarrage : Démarrer SannyBuilder, charger le fichier main.scm contenu dans le dossier */San Andreas/data/script

Un chargement va s'effectuer le le main.scm sera chargé, vous pouvez constater la longueur considérable du code (Environ 535.000 lignes). Mais nous n'allons pas travailler sur ce main là, nous allons supprimer l'intégrallité du contenu du fichier (Ctrl + A > Supprimer).

Nous allons maintenant inserez ce que j'apelle un Main Basic, c'est un code très court qui ne contient aucune missions aucun paquet cachés etc... On à seulement gardé le scrict minimum.

{$VERSION 3.1.0000}

DEFINE OBJECTS 0 

DEFINE MISSIONS 0

DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0

//-------------MAIN---------------
thread 'MAIN' 
042C: set_total_missions_to 0
01F0: set_max_wanted_level_to 6 
00C0: set_current_time 8 0 
0997: (unknown) 1339
set_weather 0
set_wb_check_to 0 
fade 0 10 
select_interior 0 
04E4: unknown_refresh_game_renderer_at 2488.5623 -1666.8645 
Camera.SetAtPos(2488.5623, -1666.8645, 13.3757)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1668.86, 12.87)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Camera.SetBehindPlayer
Actor.Angle($PLAYER_ACTOR) = 262.0
wait 1
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.Build($PLAYER_CHAR)
wait 1
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 
07FB: set_interior 'MADDOGS' accessible 0  // Madd Dogg's Crib
07FB: set_interior 'MDDOGS' accessible 0  // Madd Dogg's Crib
fade 1 1000



Inserez ce code dans le main et compliez (F7), cela permet d'enregistrer votre fichier en quelque sorte.
Démarrez une partie (F8 dans Sanny) ou par un racourci (SannyBuilder et le main peuvent rester ouvert).

Comme vous pouvez le voir vous commencez près de la maison de CJ et tout est normal sauf qu'il n'y à pas de video d'intro, de missions etc...

2.2 Premiers abords :

Nous allons maintenant de tenter de comprendre ce language, tout d'abord on remarque qu'il est en Anglais (logique) donc si vous avez du mal avec l'anglais utilisez un outil de traduction.

Prennons les choses dans l'ordre :

{$VERSION 3.1.0000}

DEFINE OBJECTS 0  

DEFINE MISSIONS 0

DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0



> Sans grand interet

{$VERSION 3.1.0000}

DÉFINIR LES OBJETS 0
DÉFINIR LES MISSIONS 0
DÉFINIR l'utilisation -1 de scripts externes 0 // pour ne pas compiler le manuscrit de D.C.A.
DÉFINISSENT UNKNOWN_EMPTY_SEGMENT 0
DÉFINIR UNKNOWN_THREADS_MEMORY 0


On passe à la suite qui va être plus qu'interessante, maintenant je ne fais plus une traduction Google (qui reste limité) mais je la fais moi même. Je ne garde que les lignes que j'ai compris / qui sont importantes

042C: set_total_missions_to 0
01F0: set_max_wanted_level_to 6 
00C0: set_current_time 8 0 
set_weather 0
fade 0 10 
select_interior 0 
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1668.86, 12.87)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Camera.SetBehindPlayer
Actor.Angle($PLAYER_ACTOR) = 262.0
wait 1
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.Build($PLAYER_CHAR)
wait 1
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 
07FB: set_interior 'MADDOGS' accessible 0  // Madd Dogg's Crib
fade 1 1000



042C: set_total_missions_to 0
042C : C'est le préfixe du code, parfois il n'y est pas car SannyBuilder raccourci l'Opcode
set_total_mission_to 0 : Il n'y a aucune mission

01F0: set_max_wanted_level_to 6 : Le niveau maximal de recherche est de 6 (si la valeur est à zero on ne peut plus avoir de police au trousses)

[...]

fade 0 10 : Fade = fondu, un fondu c'est quand on passe du transparent vers une couleur, d'une couleur vers du transparent ou d'une couleur vers du transparent. C'est une sorte de calque qu'on rajoute par dessus l'écran. Un fade 0 sera un fondu qui ira du transparent vers le noir. Un fade 1 sera un fondu qui ira du noir vers le transparent (par défault). La deuxième valeur est exprimé en milisecondes (1000 ms = 1s)

fade 0 10 : Fondu du transparent vers le noir en 10 milisecondes
fade 1 1000 : Fondu du noir vers le transparent en 1 seconde

[...]

$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1668.86, 12.87)
$PLAYER_CHAR = Joueur (nous) Cet opcode détermine l'endroit ou vous apparaitrez dans le jeu, les coordonées se font suivants les axe X Y et Z. (Dans l'exemple on apparaissera devant la maison de CJ)

[...]

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

Wasted = Mort
Busted = "Choppé"

--

De cette facon, la plupart des Opcodes sont compréhensibles, même si certains restent de mystères pour vous et aussi pour moi. (Vous pouvez toujours me demander par MP au cas ou je saurais)

--

Les valeurs de temps sont exprimées en milisecondes.
Opcode = Syntaxe d'une ligne, action ou constation, ensembles de toutes les choses possibles dans San Andreas.

Par Vicolaships

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
Changer Les Sons (GTA : SA)


Bon, alors voilà un tuto que j'avais fait pour CEA mais qui, je me suis rendu compte, doit quand même passer ici (sisi ^^). Donc voilà déja comment modifier les fichier streams (les musiques et radio, les SFX je ferais la suite plus tard).

Tout d'abord, téléchargez le logiciel nécéssaire : San Andreas Audio Toolkit(™), alias SAAT, par ici.

Extrayez-le dans le dossier de San Andreas. Ensuite passez dans l'Invite de commandes (Démarrer > Exécuter > tapez cmd). Passez dans le dossier de San Andreas (si, par exemple, c'est C:\Program Files\Rockstar Games\GTA San Andreas, tapez C: pour aller à la racine du disque puis cd Program Files\Rockstar Games\GTA San Andreas.)

Ensuite tapez la ligne de commandes ci-dessous pour faire une extraction simple de radio ou des musique (streams) :

saat_stream -e <fichier source> <destination>



Donc pour extraire les musiques d'ambiances dans C:\Temp\Ambiance, tapez :

saat_stream -e audio\streams\AMBIENCE C:\Temp



Après quelques secondes, vous retrouverez dans un nouveau dossier (Ambience, situé dans C:\Temp) les 40 pistes d'ambiance en OGG Vorbis (ça s'ouvre et ça se modifie avec Audacity)

Voilààà ! Déja vous pouvez extraire tous les morceaux des radios, les émissions, les pubs et les musique d'ambiances (celles qu'il y a dans les casinos, le Bloodring, la mer, le vent...).



Maintenant, attaquons-nous à autre chose : va falloir les modifier. Donc bon, on va dire que je vais modifier Track_023.ogg (vous pouvez en choisir une autre bien sûr selon ce que vous voulez modifier) et la remplacer par une autre musique de votre séléction personnelle (Korn dans mon cas :P). Convertissez-le en OGG (stéréo obligatoirement !) et enregistrez-le par exemple sous ma_zik.ogg dans le dossier Ambience. Pensez à vérifier la longueur du son et convertissez-la en millisecondes (ex : 3 mn 51 = 35000).

Ensuite, ouvrez le fichier stream_import.cfg et rendez-vous jusqu'à Track_023 :

[Track_023]
beat_total = 0
filename = ma_zik.ogg
length_extra = 35000
length_index = 0.



Dans filename, remplacez track_023.ogg par ma_zik.ogg et dans lenght_extra, mettez la longueur en millisecondes.

Enregistrez, puis retour dans l'invite de commande pour importer ça. La syntaxe est :

saat_stream -i <destination> <fichier d'import INI> audio\CONFIG\TrakLkup.dat



(le dernier est celui des pistes, il faut le changer si vous changez d'autres fichiers)
Donc notre ligne est :

saat_stream -i audio\streams\AMBIENCE c:\temp\AMBIENCE\stream_import.ini audio\CONFIG\TrakLkup.dat



Voilààà ! Z'avez plus qu'à lancer le jeu et à aller vérifier que ça marche.

Par DeadPixel

Lien vers le commentaire
Partager sur d’autres sites

Créer une mission simple


Ce tutorial est la suite du tutorial "Le language SCM". Il est conseillé de l'avoir lu pour pouvoir faire ce tutorial.

1. Création du SCM
  • Démarrez Sanny Builder
  • Crééz un SCM Basic (cf: tuto précédent)
  • Il va falloir ajouter une mission, c'est à dire un marqueur rouge de début de mission, mais aussi du contenu et une fin.
2. Création de la mission
  • Pour créér une mission, nous n'allons pas utilisez la ligne "DEFINE MISSIONS 0" et créé une mission comme dans le jeu, car pour certaines choses le jeu bug (je ne sais pas pourquoi), le genre de bug peut être par exemple lors de la création d'un personnage, on veut en créér un seul et le jeu en créér 3 :ph34r: (Ce qui entraine des bugs si vous dites à celui de monter dans un véhicule)
  • Nous allons tout simplement mettre notre mission (ou script) juste derrière le main et entre le "end_thread" qui signale la fin de lecture (si la mission est mise après elle ne sera pas lue).

    Mais on ne va pas mettre notre mission comme ca, entre 2 paragraphes, il va falloir créé ce que l'on appelle un "Label". Pour le créér, rien de plus simple > ":Nomdulabel123" (Lettres et chiffres acceptées).
    Pour une meilleur relecture on l'appellera : ":Mission01"
  • Pour créér une mission avec un marqueur il faut chercher l'ocpode qui permet de créé un marqueur, on pourrait chercher "marker" qui serait logique mais dans cas ce n'est pas logique, il faut chercher dans "sphere" jusqu'a trouver la ligne : "03BC: 20@ = create_sphere 2009.0 -1491.30 3.45 5.0"
Note: Pour chercher un Opcode, soit vous faites la combinaison Ctrl + Alt + 2 dans SannyBuilder soit vous faites la recherche dans le bloc note en ouvrant le fichier des Ocpodes (contenu dans le dossier de Sanny Builder)
  • Nous allons transformer l'ocpode en ce que j'appellerais un opcode "litéral" qui ne marche pas dans le jeu. Le principe est simple, transformer toutes les valeurs numériques en lettres.

    Ce qui donne : "03BC: X@ = create_sphere X Y Z B"

    X = Numero du marqueur (/de la sphere)
    X Y Z = Coordonées du marqueur
    B = Rayon de la sphere
Note: Les coordonnées sont toujours notées X, Y et Z qui corresepondent au 3 axes qui permettent de placer un objet dans un espace par rapport à un repère 0
  • Nous allons maintenant transformer l'opcode pour qu'il puisse marcher dans le jeu, un opcode littéral permet seulement d'y voir plus clair quand on ne le comprend pas.
    On prendra :
    X= 1
    X Y Z = 2485.5 -1658.86 12.88
    B = 2.0
Il faut ensuite inserez cette ligne derrière (et à la ligne) ":Mission01" mais avant "end_thread"
On rajouteras aussi un "wait 100" entre le label et l'opcode, dès fois sans le wait le jeu bug...

Note: Pour créér des coordonnées, j'utilise SA Place Manager qui est utilie mais il faut lancer le jeu à chaque foi pour créér des coordonées, ce qui est long...
  • Nous avons créé notre marqueur, si vous démarrez le jeu (Coordonnées de création de CJ :2480.0 -1658.86 12.88) et que vous allez dans le marqueur, rien ne se passe, logique...
  • Nous allons maintenant créér une condition, c'est un point essentiel pour coder, si vous ne savez pas créér une condition vous n'arriverez pratiquement à rien...

    Voici le mode de fonctionement d'une condition :

    :X
    if
    CONDITION
    jf @X
    EXECUTION


    X= Nom du label

    On créé toujours un nouveau label pour une condition. (on le met à la suite). Si le nom de label est "C123" alors la ligne "jf @Label" deviendra "jf @C123"

    En fait si je traduis en français "compréhensible" cela donne : Si la condition est remplie, alors passer à l'execution/ Si la condition est remplie, alors faire les actions.
    Un exemple : Si le joueur marche, alors donner au joueur 100$ (ce qui est un peu bête je le reconnais)
  • Maintenant, il faut adapter ce "script" pour qu'il fonctionne sous San Andreas, notre but (ce que vous ne savez pas encore) c'est de créér :

    Si le joueur est arreté sur le marqueur (a pied), alors démarrer une mission
    Mais "démarer une mission" c'est un peu simple, cela se traduit par : Fondu vers le noir, destruction du marqueur pendant le fondu, et fondu vers le transparent.

    Cela donne en cherchant dans les opcodes (J'ai pas tout mis en litéral)

    :Label
    wait 100
    if
    0101: actor A stopped_near_point X Y Z radius B B B' sphere 1
    jf @Label
    wait 250
    fade 0 500wait 1000
    03BD: destroy_sphere X@
    wait 1000
    fade 1 500


    A= Acteur dont la condition dépendra
    X Y Z = C'est les coordonées ou on à créé le marqueur
    B B B' = Là vous me direz que c'est bizarre un diamètre avec 3 coordonées. En fait les 2 premières on met la même chose, le dernier ce sera le plan Z (la hauteur) on met donc 10 comme ca même si la coordonée Z qu'on à prise est pas très précise ca marchera.
  • Passons aux valeurs numériques : (Même s'il y en avait déjà avant)
    :ConditionMission
    wait 100
    if
    0101: actor $PLAYER_ACTOR stopped_near_point 485.5 -1658.86 12.88 radius 2.0 2.0 10.0 sphere 1
    jf @ConditionMission
    wait 250
    fade 0 500
    wait 1000
    03BD: destroy_sphere 1@
    wait 1000
    fade 1 500


    Voilà qui est fait, on insere le label avant le "end_thread" et après le label "Mission01"
  • Du début jusqu'ici on obitient le petit (très petit) script suivant :

    :Mission01
    wait 100
    03BC: 1@ = create_sphere 2485.5 -1658.86 12.88 radius 2.0

    :ConditionMission
    wait 100
    if
    0101: actor $PLAYER_ACTOR stopped_near_point 2485.5 -1658.86 12.88 radius 2.0 2.0 10.0 sphere 1
    jf @ConditionMission
    wait 250
    fade 0 500
    wait 1000
    03BD: destroy_sphere 1@
    wait 1000
    fade 1 500
3. Contenu de la mission
  • Maintenant que nous avons notre début de missions il faut y ajouter du contenu, je vous propose quelque chose de très simple: Un personnage est créé et on doit se battre contre lui, si le joueur tue l'enemi il remporte 500$ et un Uzi et s'il se fait tuer il réapparait avec seulement 50 de vies

  • Tout d'abord il va falloir créér l'enemi, on va le créér pendant le fade pour ne pas le voir se créé, voilà la suite d'opcodes :
    Model.Load(#X)
    038B: load_requested_models
    wait 10
    009A: $A = create_actor 23 #X at X Y Z

    Pour savoir quel personnage prendre on va utiliser le fichier peds.ide (GTA SA > Data). On choisira le piéton BALLAS1.

    Ce qui nous donnera la suite d'ocpodes :
    Model.Load(#BALLAS1)
    038B: load_requested_models
    wait 10
    009A: $ENNEMI = create_actor 23 #BALLAS1 at 2485.5 -1650.0 13.0


  • Maintenant il faut donner à l'acteur une arme et lui dire d'attaquer, pour donner une arme on utilisera la suite d'ocpode suivante :
    Model.Load(#X)
    038B: load_requested_models
    wait 10
    01B2: give_actor $ENNEMI weapon X ammo Z


    On charge le model de l'arme avant de l'utiliser sinon l'arme n'apparaitra pas et dès que le joueur essayera de l'utiliser le jeu buggera.
    Pour savoir les noms d'armes on utilise le fichier "[sA] Weapon numbers.txt" fourni avec SannyBuilder (Dossier help)

    On donnera a l'enemi une bate :
    Model.Load(#BAT)
    038B: load_requested_models
    wait 10
    01B2: give_actor $ENNEMI weapon 5 ammo 1


  • Autant regrouper le tout pour faire plus court et plus lisible, ce qui donne :
    Model.Load(#BALLAS1)
    Model.Load(#BAT)
    038B: load_requested_models
    wait 10
    009A: $ENNEMI = create_actor 23 #BALLAS1 at 2485.5 -1650.0 13.0
    01B2: give_actor $ENNEMI weapon 5 ammo 1


  • Maintenant nous allons dire à cet enemi d'attaquer le joueur car pour l'instant il ne fait rien. On crééra aussi un marker sur celui-ci pour voir la cible
    On utilisera l'opcode :05E2: AS_actor $ENNEMI kill_actor $PLAYER_ACTOR
    Il est préférable de le placer après le fade pour ne pas se faire attaquer pendant que l'écran est noir

    On utilisera l'opcode : 0187: $MARKER_ENNEMI = create_marker_above_actor $ENNEMI
    On le met avant ou après le fade, comme on veut...

    > Ne pas oublier de mettre des "wait 10" ou sinon le jeu buggera

  • Maintenant il va falloir faire 2 conditions en même temps, c'est là que ce compliquent les choses...
    Si le joueur tue l'enemi alors mission accomplie et le joueur gagne 500$ et un UZI et s'il se fait tuer il réaparait avec seulement 50 de vies.

    On va utiliser la suite d'opcode ci-dessou :

    ...
    Create_thread @Joueur_gagne
    Create_thread @Joueur_perd

    :Joueur_gagne
    03A4: name_thread 'GAGNE'
    wait 100
    if
    Actor.Dead($ENNEMI)
    jf @Joueur_gagne
    wait 10
    Marker.Disable($MARKER_ENNEMI)
    wait 1000
    Model.Load(#MICRO_UZI)
    038B: load_requested_models
    wait 10
    01B2: give_actor $PLAYER_ACTOR weapon 28 ammo 1000
    jump @Fin

    :Joueur_perd
    03A4: name_thread 'PERD'
    wait 100
    if
    Actor.Dead($PLAYER_ACTOR)
    jf @Joueur_perd
    wait 10
    Marker.Disable($MARKER_ENNEMI)
    00BA: text_styled 'M_FAIL' 5000 ms 1 // Mission ratée !
    wait 10000
    0223: set_actor $PLAYER_ACTOR health_to 50
    wait 500
    jump @Fin

    :Fin
    wait 100
    end_thread_named 'GAGNE'
    wait 100
    end_thread_named 'PERD'
    wait 100
    05BE: AS_kill_actor $ENNEMI


  • Le create_thread sert à lire plusieurs labels en même temps (d'habitude ils sont lus à la suite). C'est à dire que les labels Joueur_gagne et Joueur_perd seront lus en même temps

  • Le jump @Fin sert à ce que si le label Joueur_gagne est activé le label Joueur_perd ne soit pas lu 2 fois. E le label @Fin désactive les deux labels précédents grace à la fonction end_thread_label


Par Vicolaships
Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...