Aller au contenu

[main.scm] Scrips Externes


Messages recommandés

Salut à tous,

je suis en train de faire un InGame menu rassemblant tout un tas d'outils : remplir la vie, donner des armes, faire aparaitre des voitures... mais le script est devenu trop gros (le je plantait en quelques secondes et il n'y avait pas de bug)

J'ai alors essayé de le passer en script externe (je ne sais pas trop comment les utiliser) et j'ai trouvé ça.

 

J'ai bien suivi les instructions et voilà ce que j'ai fait :

 

DEFINE EXTERNAL_SCRIPTS  80 (79 par défaut)
...
DEFINE EXTERNAL_SCRIPT_NAME CHEATBOX;  79

(placé avec les autres autour de la ligne 600)

 

0914: init_external_script  79 (CHEATBOX)

(placé avec les autres autour de la ligne 890)

 

004F: create_thread ££CHEATBOX_laucher_1

(placé avec les autres autour de la ligne 980)

 

:CHEATBOX_laucher_1
03A4: name_thread 'CBLAUCH'  

:CHEATBOX_laucher_2
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CHEATBOX_laucher_2
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££CHEATBOX_laucher_2
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status  79 (CHEATBOX)
00D6: if  0
0038:   $EXTERNAL_SCRIPT_STATUS ==  0;; integer values
004D: jump_if_false ££CHEATBOX_laucher_2
08A9: load_external_script  79 (CHEATBOX)
00D6: if  0
08AB:   external_script  79 (CHEATBOX) loaded
004D: jump_if_false ££CHEATBOX_laucher_2
0913: run_external_script  79 (CHEATBOX)  
004E: end_thread

(juste au dessous de :MAIN_642 à la ligne 1362)

 

et tout à la fin :

;-----------------------------------------------------
DEFINE EXTERNAL_SCRIPT_START CHEATBOX            

:CHEATBOX_1 
;Menu principal de cheatbox
03A4: name_thread 'CHTBOX'
0004: $pgod =  0;; Invincibilité du joueur 
0004: $cgod =  0;; Invincibilité de la voiture
0004: $pdrunk =  0;; Alcool 
0004: $infrun =  0;; Sprint infini

:CHEATBOX_2
0001: wait  50 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CHEATBOX_2
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££CHEATBOX_2  
00D6: if  0
80DF: NOT  actor $PLAYER_ACTOR driving
004D: jump_if_false ££CHEATBOX_2a
00D6: if 2
00E1:   key pressed  0  9; Group Control Back
00E1:   key pressed  0  10; Conversation No
004D: jump_if_false ££CHEATBOX_2
0002: jump ££CHEATBOX_3
0051: return     
...........

 

Et maintenant, le je plante immédiatement :ouin: (après le chargement et avant la cutscene d'intro)

 

J'ai ensuite essayé de remettre le script copié dans un SCM vierge (pour voir si j'avair rien oublié) et ça marçhait... enfin comme avant (quelques secondes)

 

Qu'est ce qui ne va pas ?

Modifié par jlf6
Lien vers le commentaire
Partager sur d’autres sites

En fait je n'avais pas bien lu le topic de GTAforums :wall:  : il fallait faire les jumps laucaux au script externe avec un £ et pas 2.

 

[HS] c'est normal que je ne puisse pas éditer le premier post ??

 

 

 

c'est malheureseusement normal oui !

tu es en train de modifier le main.scm de gta sa ?

As tu eu des resultts convaincant sans bug et tu voulai faire quoi ?

As tu reussit ?

Lien vers le commentaire
Partager sur d’autres sites

Je suis en train de modifier San Andreas et depuis que j'ai passé le mod en script externe, je n'ai plus de problèmes de stabilité (le mod fait maintenant près de 4000 lignes).

 

Le mod est en fait comme un trainer géré par le jeu et où l'on peut naviguer par des menus. Enfin je donnerais tous les détails quand je le posterai dans l'expo.

 

Voici un premier screen du mod

http://img241.imageshack.us/img241/1889/gtasamod0so.th.jpg

Modifié par jlf6
Lien vers le commentaire
Partager sur d’autres sites

Alors là, je comprend plus rien : le script marche très bien lors d'une nouvelle partie mais quand on sauvegarde et qu'on charge la partie sauvegardée... plus rien : le jeu marche mais pas le mod :( .

 

J'ai essayé plein de trucs et il n'y a rien a faire. Le script utilisé est le même qu'au premier post.

 

J'ai aussi essayé de faire afficher un texte :

:CHEATBOX_laucher_2
0001: wait  250 ms
0001: wait  10000 ms  <==
01E4: text_1number_lowpriority 'HJ_IS' 000  2000 ms  1 ; INSANE STUNT BONUS: $~1~   <==
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CHEATBOX_laucher_2
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££CHEATBOX_laucher_2
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status  79 (CHEATBOX)
00D6: if  0
0038:   $EXTERNAL_SCRIPT_STATUS ==  0;; integer values
004D: jump_if_false ££CHEATBOX_laucher_2
08A9: load_external_script  79 (CHEATBOX)
00D6: if  0
08AB:   external_script  79 (CHEATBOX) loaded
004D: jump_if_false ££CHEATBOX_laucher_2
0913: run_external_script  79 (CHEATBOX)  
004E: end_thread

 

Et il n'apparait pas avec la sauvegarde chargée. Ce qui veut dire que le problème vient peut-être du create_thread qui est pourtant avec les autres.

 

Si quelqu'un peut m'aider, ça serait sympa

Lien vers le commentaire
Partager sur d’autres sites

Comment ça un crash ? au chargement ou en nouvelle partie ?

tu as essayé de faire quoi ?

 

Tu as pensé à faire des jumps laucaux dans le script externe ?

Et pour le 'lanceur' tu as bien mis ma dernière modif ?

 

Voila la version finale du lanceur

:CHEATBOX_laucher_2
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CHEATBOX_laucher_2
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££CHEATBOX_laucher_2
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status  79 (CHEATBOX)
00D6: if  0
0038:   $EXTERNAL_SCRIPT_STATUS ==  0;; integer values
004D: jump_if_false ££CHEATBOX_laucher_2
08A9: load_external_script  79 (CHEATBOX)
00D6: if  0
08AB:   external_script  79 (CHEATBOX) loaded
004D: jump_if_false ££CHEATBOX_laucher_2
0913: run_external_script  79 (CHEATBOX)  
0002: jump ££CHEATBOX_laucher_2

Modifié par jlf6
Lien vers le commentaire
Partager sur d’autres sites

Comment ça un crash ? au chargement ou en nouvelle partie ?

tu as essayé de faire quoi ?

 

Tu as pensé à faire des jumps laucaux dans le script externe ?

Et pour le 'lanceur' tu as bien mis ma dernière modif ?

 

Voila la version finale du lanceur

:CHEATBOX_laucher_2
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CHEATBOX_laucher_2
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false ££CHEATBOX_laucher_2
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status  79 (CHEATBOX)
00D6: if  0
0038:   $EXTERNAL_SCRIPT_STATUS ==  0;; integer values
004D: jump_if_false ££CHEATBOX_laucher_2
08A9: load_external_script  79 (CHEATBOX)
00D6: if  0
08AB:   external_script  79 (CHEATBOX) loaded
004D: jump_if_false ££CHEATBOX_laucher_2
0913: run_external_script  79 (CHEATBOX)  
0002: jump ££CHEATBOX_laucher_2

 

 

 

un crash en nouvelle partie, j'ai mis un thread label et un nouveau label pour rajouter un objet mais crash

 

 

j'ai testé ce truc y'a plus d'un mois, je vais le faire avec ta version finale (c'est au début ces lignes ???)

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...