News Forum Livre d'or Membres Telechargements
       Forum

[Tuto] Synchroniser les multijoueur< Sujet précédent  Sujet suivant >
Index du Forum -> Forum halo full CE trial et 2 -> HALO CE
AuteurMessage
2GAIGHER2
Moderator



Messages : 500
Inscrit(e) le: 01/04/2007
Posté le 22/08/2010 20:43  
[Tuto] Synchroniser les multijoueur
Hello les Halo

Voici un scripte .hsc pour synchroniser les .device_machine dans les multijoueur
Se scripte peut certainement synchroniser d'autre chose...
La c'est pour que les veicules ouvre les portes en multijoueur

Le scripte:

Code :

(script continuous "door_opened"
(if ( = (volume_test_object trigger vehicle) true)
(begin (object_teleport vehicle_crusher flag_biped) (sleep 02) )
(begin (object_teleport vehicle_crusher flag_none) (sleep 02) )
)

(if ( < (unit_get_health biped) 0.1 )
(begin (device_set_position door 1) (object_create_anew biped) (sleep 01) )
)
)


Pour ajouter le scripte sur la map
Crée un .hsc avec un Bloc-notes
Le maitre a "Halo Custom Edition\\data\\levels\\NOM DE MAP\\scripts"
Vous pouvez lui doné le nom que vous voulez , sé l'extension qui comte
Pour ajouter le scripts dans le .scenario
Avec sapien fait "File>Compile scripts"
Puis "Save scenario" pour sauvegarder le .scenario avec le scripte


Dans Sapien:


Placez le .device_machine
et donner lui le nom "door"
( a la case "name" dans la fenêtre "Properties palette" )

Placez une trigger qui englobe largement le .device_machine
et donner lui le nom "trigger"
(Allez a "Mission>Game data>Trigger volumes" dans la fenêtre "Hierarchy view"
Clique droit pour placer le trigger sur la map)

Placez un véhicule
et donner lui le nom "vehicle"
( sa sera le véhicule qui ouvrira la porte )

Placez 2 Flags , asser espacée
et donner leur le nom "flag_none" et "flag_biped"
(Allez a "Mission>Game data>Flags" dans la fenêtre "Hierarchy view"
Clique droit pour placer un flags sur la map)

Placez un biped en desou du Flags "flag_biped"
et donner lui le nom "biped"
Choisissez un petit biped de préférance

Placez un véhicule
et donner lui le nom "vehicle_crusher"
( sa sera le véhicule qui broilleura le biped )


Explication:
Lorsque le "vehicle" pénètre dans le "trigger" , le "vehicle_crusher" se téléportera sur "flag_biped" , se qui tue le "biped" , la door s'ouvre.
Le "vehicle" sort du "trigger" , le "vehicle_crusher" se téléportera sur "flag_none" , se qui ne tue pas le "biped" , la door se ferme.


Revenir en haut
luc

Messages : 24
Inscrit(e) le: 28/06/2009
Posté le 01/09/2010 21:42  
RE : [Tuto] Synchroniser les multijoueur
marche pas très bien pour moi
quand je met le vehicle dans le trigger il ne se passe rien je doit me mêtre en tireur et tuer plusieurs fois le biped pour que le vehicle_crucher se telleporte et que la door s'ouvre
par contre quand je sort le vehiclr du trigger la door se ferme bien et le vehicle_crucher se telleport esur l autre flag

Revenir en haut
2GAIGHER2
Moderator



Messages : 500
Inscrit(e) le: 01/04/2007
Posté le 02/09/2010 09:44  
RE : [Tuto] Synchroniser les multijoueur
Vérifie que ta trigger est asser large pour pouvoir contenir le véhicule entier
Et que son poing est pas en dehors de la map , et qu'il reste visible
Et que tou et la ou il doi étre

J'ai remarqué que deux biped apparaissent pour le No Host.
Et parfois, le 1er pousse la 2ème à l'extérieur.
(Au-delà de la portée de crusher)

(Après plusieurs ouvertures un biped est à l'extérieur, pour le No Host)

Au-delà de la portée de crusher.
(La porte se referme pour le No Host alors quel est ouvert pour le Host)

Faut bien positionner le biped et pas utiliser un véhicule trop petit

Revenir en haut
luc

Messages : 24
Inscrit(e) le: 28/06/2009
Posté le 02/09/2010 18:21  
RE : [Tuto] Synchroniser les multijoueur
j'ai bouger le flag_biped
et sa marche excuse pour l'embêtement

a et une question pourquoi ne pas juste dire que quand le vehicle et dans le trigger la door s'ouvre ??

Revenir en haut
2GAIGHER2
Moderator



Messages : 500
Inscrit(e) le: 01/04/2007
Posté le 04/09/2010 18:17  
RE : [Tuto] Synchroniser les multijoueur
Oui mais sa fonctionne pas en multy
Mais j'aurais du le placer quand même dans le tuto , sa peu aitre valide pour des solo

le voila

Code :

(script continuous "door_open"
(if (= (volume_test_object trigger vehicle) true)
(device_set_position door 1.0)
)
)


Place le .device_machine
et donne lui le nom "door"

Place une trigger qui englobe largement le .device_machine
et donne lui le nom "trigger"

Place un véhicule
et donne lui le nom "vehicle"
( sa sera le véhicule qui ouvrira la porte )


Explication:
Le "vehicle" entre dans la "trigger" , la "door" s'ouvre.
Le "vehicle" sort de la "trigger" le scripte deviens nul , la "door" se ferme.

Revenir en haut
luc

Messages : 24
Inscrit(e) le: 28/06/2009
Posté le 17/09/2010 14:39  
RE : [Tuto] Synchroniser les multijoueur
peut on utiliser le même principe avec un interrupteur

Revenir en haut
2GAIGHER2
Moderator



Messages : 500
Inscrit(e) le: 01/04/2007
Posté le 23/07/2011 11:38  
RE : [Tuto] Synchroniser les multijoueur
Oui
Voici le scripte (non synchroniser)
Code :
(script continuous "door_open_bouton"
(if ( = (device_get_position bouton) 1 )
(device_set_position door 1)
)
)


Place le .device_machine
et donne lui le nom "door"
Panse a valider la case "does not operate automactically" a "Properties palette" dans Sapien
(pour que ton device ne s'ouvre pas quand tu l'approche)

Place un .device_control ( "objects" > "Devices" > "Controls" dans sapien )
et donne lui le nom "bouton"


Explication:
Si "bouton" est activer, "door" s'active.




Il est préférable de rajouter se scripte
(pour que la porte se ferme au-bout d'un moment)
Code :
(script continuous "door_close_bouton_auto"
(sleep_until ( = (device_get_position bouton) 1 ) )
(sleep 300)
(device_set_position bouton 0)
)


Explication:
Quand bouton est activer, patienter 300 et fermer le
Se qui fermera la door



Voila se que sa donne avec les 2 scripte:
Code :
(script continuous "door_open_bouton"
(if ( = (device_get_position bouton) 1 )
(device_set_position door 1)
)
)

(script continuous "door_close_bouton_auto"
(sleep_until ( = (device_get_position bouton) 1 ) )
(sleep 300)
(device_set_position bouton 0)
)


Revenir en haut