Forum Bar Mafieuso
http://forummafieuso.free.fr/forum/

Scripts pour simulation de conduite
http://forummafieuso.free.fr/forum/viewtopic.php?f=8&t=2907
Page 6 sur 11

Auteur:  Kévin [ 27 Juil 2008, 11:17 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Condor a écrit:
Dans DC||ED, quel est le nom exact de l'appel d'i3d ?


J'ai "Gare Routière" (dans "Model Object" sous "Object") et "Gare Routière.Base borne" (dans "Scripts" sous "Objects definitions"). Plus curieux, j'ai également un "Gare Routière" dans les voitures !! (sous "Car")...

Condor a écrit:
Y a-t-il un mannequin du même nom (« Gare R(r)outière.Base borne ») dans DC||ED (Standard Object) ?


Non.

Condor a écrit:
Et y a-t-il, parmi toutes les armatures (Objects), un objet portant le nom de « Gare R(r)outière » (sans .Base borne) ?


Oui.

Edition : Je pense avoir déterminé la cause du soucis. Pour déterminer la distance entre la gare routière et le car, le script se base sur la gare en elle même, l'axe de la gare routière étant en plein milieu de la place (et plutôt lointain de la borne !), le passage du car ne déclenche pas l'ouverture.

Seconde édition : En fait non. Le script est bien attribué à la base de la borne, dans le nom de l'objet de script (Gare routière.Base borne). Aucune réaction supplémentaire.
Par contre j'ai trouvé la cause du Tommy vandale : curieusement, les pieds d'un panneau mis à l'entrée de la gare routière étaient en plein milieu de la borne, malgré toutes mes tentatives de recentrage des axes. De même, toutes les putains de boîte attribuées à des objets modélisés étaient déplaçables (l'objet déplacé avec)... Après suppression du panneau tout est rentré dans l'ordre. Ca a du être l'ouverture avec DC|ED qui a semé le trouble...
Il se trouve que maintenant la borne est en position basse, elle ne se lève plus contrairement à avant sous le règne du panneau. Curieux, je vous dit.

Auteur:  Kévin [ 28 Juil 2008, 22:12 ]
Sujet du message:  Re: Scripts pour simulation de conduite

En attendant de résoudre ce problème de gare routière j'ai commencé à préparer (toujours sur la gare) l'affichage aux quais. Pour cela j'ai placé des écrans à diodes (même fonctionnement que les girouettes) sur lesquels les messages correspondant aux voies doivent s'afficher automatiquement selon la girouette affichée sur le car. A chaque voie sa ligne de transport.

J'ai commencé par adapter le script de la girouette :

Code:
Dim_Act 2
GetActivePlayer 0
FindActor 1, "Car Keolis 1"

Dim_Frm 19
FindFrame 0, "Car Keolis 1.PG0"
FindFrame 1, "Car Keolis 1.PG1"
FindFrame 2, "Car Keolis 1.PG2"
FindFrame 3, "Car Keolis 1.PG3"
FindFrame 4, "Car Keolis 1.PG4"
FindFrame 5, "Car Keolis 1.PG5"
FindFrame 6, "Car Keolis 1.PG6"
FindFrame 7, "Car Keolis 1.PG7"
FindFrame 8, "Car Keolis 1.PG8"
FindFrame 9, "Car Keolis 1.PG9"
FindFrame 10, "Car Keolis 1.PG10"

FindFrame 11, "Gare Routière_Voie 1"
FindFrame 12, "Gare Routière_Voie 2"
FindFrame 13, "Gare Routière_Voie 3"
FindFrame 14, "Gare Routière_Voie 4"
FindFrame 15, "Gare Routière_Voie 5"
FindFrame 16, "Gare Routière_Voie 6"
FindFrame 17, "Gare Routière_Voie 7"
FindFrame 18, "Gare Routière_Defaut"

Frm_SetOn 0, 1
Frm_SetOn 1, 0
Frm_SetOn 2, 0
Frm_SetOn 3, 0
Frm_SetOn 4, 0
Frm_SetOn 5, 0
Frm_SetOn 6, 0
Frm_SetOn 7, 0
Frm_SetOn 8, 0
Frm_SetOn 9, 0
Frm_SetOn 10, 0

Frm_SetOn 11, 0
Frm_SetOn 12, 0
Frm_SetOn 13, 0
Frm_SetOn 14, 0
Frm_SetOn 15, 0
Frm_SetOn 16, 0
Frm_SetOn 17, 0
Frm_SetOn 18, 1

Dim_Flt 4

// Nombre de choix
//
Let Flt[1] = 11
//
// ############


Let Flt[1] = Flt[1] - 1

Label Verrou
CommandBlock 0
CommandBlock 1
CompareOwnerWithEx 0, 1,  -1, Verrou
Ctrl_ReadEx 2, SniperMode
If Flt[2] = 1, -1, Verrou
Console_AddText 99970023
PlaySound "beep50.wav", 0, 20, 0.3, -1
GoTo GareRoutière

Label DVerrou
CommandBlock 0
CommandBlock 1
CompareOwnerWithEx 0, 1,  -1, DVerrou
Ctrl_ReadEx 2, SniperMode
If Flt[2] ! 1, -1, Retour

Frm_SetOn 11, 0
Frm_SetOn 12, 0
Frm_SetOn 13, 0
Frm_SetOn 14, 0
Frm_SetOn 15, 0
Frm_SetOn 16, 0
Frm_SetOn 17, 0
Frm_SetOn 18, 1

Ctrl_ReadEx 2, Down
If Flt[2] = 1, -1, Moins
Let Flt[0] = Flt[0] + 1
If Flt[0] > Flt[1], -1, Choix
Let Flt[0] = 0
GoTo Choix

Label Moins
Ctrl_ReadEx 2, Down
If Flt[2] = 1, -1, DVerrou
Let Flt[0] = Flt[0] - 1
If Flt[0] < 0, -1, Choix
Let Flt[0] = Flt[1]
GoTo Choix


Label Retour
Console_AddText 99970022
PlaySound "beep50.wav", 0, 20, 0.3, -1
GoTo Verrou


Label Choix
PlaySound "00_kompas.wav", 0, 25, 0.3, -1
GoTo Flt[0]

Label 0
Console_AddText 99970011
Frm_SetOn 10, 0
Frm_SetOn 0, 1
Frm_SetOn 1, 0
Let Flt[3] = 7
GoTo DVerrou

Label 1
Console_AddText 99970012
Frm_SetOn 0, 0
Frm_SetOn 1, 1
Frm_SetOn 2, 0
Let Flt[3] = 3
GoTo DVerrou

Label 2
Console_AddText 99970013
Frm_SetOn 1, 0
Frm_SetOn 2, 1
Frm_SetOn 3, 0
Let Flt[3] = 4
GoTo DVerrou

Label 3
Console_AddText 99970014
Frm_SetOn 2, 0
Frm_SetOn 3, 1
Frm_SetOn 4, 0
Let Flt[3] = 5
GoTo DVerrou

Label 4
Console_AddText 99970015
Frm_SetOn 3, 0
Frm_SetOn 4, 1
Frm_SetOn 5, 0
Let Flt[3] = 6
GoTo DVerrou

Label 5
Console_AddText 99970016
Frm_SetOn 4, 0
Frm_SetOn 5, 1
Frm_SetOn 6, 0
Let Flt[3] = 7
GoTo DVerrou

Label 6
Console_AddText 99970017
Frm_SetOn 5, 0
Frm_SetOn 6, 1
Frm_SetOn 7, 0
Let Flt[3] = 2
GoTo DVerrou

Label 7
Console_AddText 99970018
Frm_SetOn 6, 0
Frm_SetOn 7, 1
Frm_SetOn 8, 0
Let Flt[3] = 1
GoTo DVerrou

Label 8
Console_AddText 99970019
Frm_SetOn 7, 0
Frm_SetOn 8, 1
Frm_SetOn 9, 0
Let Flt[3] = 7
GoTo DVerrou

Label 9
Console_AddText 99970020
Frm_SetOn 8, 0
Frm_SetOn 9, 1
Frm_SetOn 10, 0
Let Flt[3] = 7
GoTo DVerrou

Label 10
Console_AddText 99970021
Frm_SetOn 9, 0
Frm_SetOn 10, 1
Frm_SetOn 0, 0
Let Flt[3] = 7
GoTo DVerrou

Label GareRoutière
If Flt[3] = 1, -1, Voie2
Frm_SetOn 11, 1
Frm_SetOn 18, 0
Label Voie2
If Flt[3] = 2, -1, Voie3
Frm_SetOn 12, 1
Frm_SetOn 18, 0
Label Voie3
If Flt[3] = 3, -1, Voie4
Frm_SetOn 13, 1
Frm_SetOn 18, 0
Label Voie4
If Flt[3] = 4, -1, Voie5
Frm_SetOn 14, 1
Frm_SetOn 18, 0
Label Voie5
If Flt[3] = 5, -1, Voie6
Frm_SetOn 15, 1
Frm_SetOn 18, 0
Label Voie6
If Flt[3] = 6, -1, Voie7
Frm_SetOn 16, 1
Frm_SetOn 18, 0
Label Voie7
If Flt[3] = 7, -1, DVerrou
Frm_SetOn 17, 1
Frm_SetOn 18, 0

// Assignations par défaut des touches

// SniperMode = [G]
// Up = [Haut]
// Down = [Bas]


// Correspondances des textes

// 99970011 = Girouette : Depot. Valider, suivante ou précédente ?
// 99970012 = Girouette : Scolaire A. Valider, suivante ou précédente ?
// 99970013 = Girouette : Scolaire B. Valider, suivante ou précédente ?
// 99970014 = Girouette : Scolaire C. Valider, suivante ou précédente ?
// 99970015 = Girouette : Scolaire D. Valider, suivante ou précédente ?
// 99970016 = Girouette : City Express. Valider, suivante ou précédente ?
// 99970017 = Girouette : Express OH. Valider, suivante ou précédente ?
// 99970018 = Girouette : Sesame. Valider, suivante ou précédente ?
// 99970019 = Girouette : Ligne Verte. Valider, suivante ou précédente ?
// 99970020 = Girouette : Scolaire Special. Valider, suivante ou précédente ?
// 99970021 = Girouette : Special. Valider, suivante ou précédente ?
// 99970022 = Girouette validée !
// 99970023 = Choisir une girouette...


Puis à faire un script correspondant à la voie attribuée au véhicule. En l'occurence, lorsque le joueur choisit la girouette n°7 (correspondant à la ligne "Sésame"), la voie attribuée est la voie 1. Le script correspondant à la voie 1 est donc activé :

Code:
Dim_Flt 3
Dim_Frm 17

// Rayon de détection
//
Let Flt[1] = 10
//
// ################

// Déclaration des afficheurs
//
FindFrame 0, "Gare Routière.Regulier"
FindFrame 1, "Gare Routière.Scolaire"
FindFrame 2, "Gare Routière.Occ_Girouette"
FindFrame 3, "Gare Routière.Sésame_Ouvert"
FindFrame 4, "Gare Routière.Sésame_Fermé"
FindFrame 5, "Gare Routière.ExOh_Ouvert"
FindFrame 6, "Gare Routière.ExOh_Fermé"
FindFrame 7, "Gare Routière.ScolA_Ouvert"
FindFrame 8, "Gare Routière.ScolA_Fermé"
FindFrame 9, "Gare Routière.ScolB_Ouvert"
FindFrame 10, "Gare Routière.ScolB_Fermé"
FindFrame 11, "Gare Routière.ScolC_Ouvert"
FindFrame 12, "Gare Routière.ScolC_Fermé"
FindFrame 13, "Gare Routière.ScolD_Ouvert"
FindFrame 14, "Gare Routière.ScolD_Fermé"
FindFrame 15, "Gare Routière.Occ_Ouvert"
FindFrame 16, "Gare Routière.Occ_Fermé"
//
// ################

Label Réinitialisation

Frm_SetOn 0, 0
Frm_SetOn 1, 0
Frm_SetOn 2, 1
Frm_SetOn 3, 0
Frm_SetOn 4, 1
Frm_SetOn 5, 0
Frm_SetOn 6, 1
Frm_SetOn 7, 0
Frm_SetOn 8, 1
Frm_SetOn 9, 0
Frm_SetOn 10, 1
Frm_SetOn 11, 0
Frm_SetOn 12, 1
Frm_SetOn 13, 0
Frm_SetOn 14, 1
Frm_SetOn 15, 0
Frm_SetOn 16, 0

Dim_Act 5
FindActor 0, "Gare Routière.Base borne"
GetActivePlayer 1
SetNullActor 2

Label Attente
CommandBlock 0
CommandBlock 1

Label Detecte
CompareOwnerWithEx 1, 2, Distance, -1
Human_GetOwner 1, 3
Label Distance

GetActorsDist 0, 3, 0
If Flt[0] < Flt[1], -1, Detecte

GetCarLineNumFromTable 3, 2
If Flt[2] = 57, Afficher, -1
If Flt[2] = 58, Afficher, -1
If Flt[2] = 61, Afficher, -1
GoTo Detecte

Label Afficher
Frm_SetOn 0, 1

Frm_SetOn 3, 1
Frm_SetOn 4, 0

Label DetecteEntrée
FindActor 4, "Gare Routière.Sésame_Ouvert"
GetActorsDist 4, 3, 0
If Flt[0] < 5, -1, DetecteEntrée

Frm_SetOn 3, 0
Frm_SetOn 4, 1

Label Départ
GetActorsDist 4, 3, 0
If Flt[0] > 30, -1, Départ

GoTo Réinitialisation


Sachant que quand aucun car ne circule, il faut tout de même gérer l'affichage (afficheurs éteints - fond noir - sauf la voie 7 dédiée au transport spécial hors ligne), j'ai placé un script par défaut, des plus simples (celui-ci fonctionne, je l'ai testé "seul") pour désactiver les armatures des affichages inutiles. Pour ne pas faire d'interférence, le script avec les girouettes désactive celui par défaut au moment d'activer celui de la voie à afficher.

J'ai un problème : Le script correspondant à l'affichage sur la voie doit avoir une erreur puisqu'au démarrage d'une partie, le jeu fonctionne les premières secondes puis lorsqu'il a terminé de charger le scene2.bin (et donc qu'il a lu mon script, qui est en dernière position) il se bloque. Je l'ai testé de manière isolée, c'est bien ce script qui pose problème. J'ai pourtant essayé de le faire propre et clair...

Auteur:  Kévin [ 06 Sep 2008, 18:55 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Au final, j'arrive à faire descendre la borne, mais elle descend trop peu. Au lieu de rentrer complètement dans son socle comme je t'avais demandé dans les images, elle s'abaisse peut être jusqu'à l'axe du mannequin "APG BORNE". C'est pas suffisant, les bus et autres véhicules s'y frottent.

Mais dans le principe, c'est bon. L'animation est bonne. Juste la profondeur à revoir, peux tu m'indiquer comment m'y prendre pour la règler ?

En revanche là où je tique, c'est à la faculté de cette borne d'attirer les Fucking box. A la manière d'un aimant.
Par exemple, certains objets temporaires, comme les abribus dont je me sers en attendant l'inauguration de la gare routière, sont collisionnés par des "putains de boites". Mais une fois le script de la borne posé, certains objets 3d (pas tous, étonnement) servant de boites sont automatiquements aspirés et collés sur la borne. Et ils descendent/montent avec.

Je veux bien encore me débrouiller pour ne plus rien mettre en Fucking box, mais comment faire alors s'il y a une nouvelle borne à poser ? :reflex:

Edition du message : Je précise également, que toutes les Fucking box sont transformées en vraies boîtes que l'on peut porter, toujours suite à ce script.

Auteur:  Condor [ 10 Sep 2008, 22:04 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Je croyais que t'étais passé à autre chose. :reflex:

Auteur:  Kévin [ 11 Sep 2008, 07:08 ]
Sujet du message:  Re: Scripts pour simulation de conduite

J'abandonne pas. Je persévère.

Si tu trouves pas on pourra passer à une barrière rotative pour remplacer la borne :lol2:

Auteur:  Berliet7 [ 11 Sep 2008, 08:50 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Pourquoi toujours intégrer le grand manitou pour tes travaux :?:

Auteur:  Condor [ 11 Sep 2008, 13:21 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Bah, je t'avais demandé ton scene2.bin et t'avais répondu que ce n'était pas la peine.

À un moment rare où j'étais prêt à chercher l'erreur. :shock:

Auteur:  Kévin [ 11 Jan 2009, 17:33 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Le scene2.bin est dans ta boite MP depuis un moment déjà, Condor.
S'il n'est pas possible de faire fonctionner correctement la borne, est-il plus facile de mettre une barrière comme celle du passage à niveau ? Fonctionnant avec une animation 5ds, elle serait sans doute moins agaçante...

Auteur:  Condor [ 11 Jan 2009, 17:37 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Ça serait plus joli, surtout.

Mais à peine plus facile en script.

Auteur:  Kévin [ 11 Jan 2009, 17:41 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Plus facile, donc, tu serais plus enclin à le faire sous cette forme ? Je suis conscient d'être chiant mais j'arrive à rien sans toi :lol2:

Auteur:  Condor [ 11 Jan 2009, 17:46 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Dans les deux cas faut revoir le script.


Pour la borne, le problème c'est qu'il y a une valeur manquante qui fait qu'il se base sur des valeurs uniquement positives.

Et comme ta borne dans ton script se trouve pile au milieu de la hauteur, son niveau le plus bas (donc ouvert) est dans les valeurs négative et quand il est au plus haut, dans le positif.

Auteur:  Kévin [ 11 Jan 2009, 17:47 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Et cette valeur, c'est quoi ?

Auteur:  Condor [ 11 Jan 2009, 17:48 ]
Sujet du message:  Re: Scripts pour simulation de conduite

:lol2: là comme ça, je sais pas.

Auteur:  Arès [ 11 Jan 2009, 23:12 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Kévin a écrit:
[...] est-il plus facile de mettre une barrière comme celle du passage à niveau ? Fonctionnant avec une animation 5ds, elle serait sans doute moins agaçante...
Pour cette barrière il y a toujours moyen de la mettre comme une porte. :lol2:

Auteur:  Condor [ 11 Jan 2009, 23:38 ]
Sujet du message:  Re: Scripts pour simulation de conduite

Bien vu, c'est vrai, c'est même mieux.

Page 6 sur 11 Heures au format UTC + 2 heures
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/