Nous sommes le 19 Sep 2019, 14:55

Heures au format UTC + 2 heures




Poster un nouveau sujet Répondre au sujet  [ 16 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Armoire à pharmacie, impossible à copier.
MessagePosté: 21 Sep 2009, 12:40 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Bonjour,

Je cherche à dispatcher quelques meubles à pharmacie, afin d'éviter d'aller systématiquement à l'hosto pour récupérer des points vie.

J'ai repéré le scripte "lekarna", son modèle et son scripte qui l'accompagne.
Le meuble va ou je veux. Mais sans le scripte qui l'accompagne.
Et je suis incapable de faire un scripte adapté.

J'ai pensé faire des copies.

Avec BScript View 6.
Lorsque je passe par insert > other. On ne peux pas lui attribuer son modèle.
Et par insert > things. La page de droite ne permet pas de coller un scripte.
J'ai essayé les autres possibilité au pif. Sans résultat.

Avec DCED2_v.1
Alors avec lui, je ne comprend très peu de chose. Je commence juste à y bosser. (pour ce projet)
A part le copier/coller qui n'a pas fonctionné non plus.

Pouvez vous me dire quel genre de script est ce fichier "lekarna"? Objet, un script...?
De quelle manière je dois m'y prendre.
Je ne comprend pas, je n'ai pas eu ce genre de soucis avec d'autre scripte.

Merci de votre aide.


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 21 Sep 2009, 22:09 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
J'étais occupé de te faire un paquet avec tout ce qu'il faut pour avoir une belle pharmacie ayant une porte qui s'ouvre. Mais DC||ED n'arrête pas de salir les fichiers... et je suis fatigué.

Donc je vais d'abord juste te passer le script que j'avais récupéré à l'époque.

Objets :
  • Pharmacie.Box02 : c'est la porte. "Pharmacie" est le nom de l'armature de la pharmacie, soit le modèle 3d. Le "." c'est pour indiquer qu'on veut l'objet "Box02" contenu dans le fichier "9lekarna.4ds". Dans DC||ED, c'est typiquement : Object Definition > Door.
  • PlacementTom : c'est une armature, Standard Object dans DC||ED.
  • Pharmacie : ça doit être le nom du modèle 3d (Object > Model) et aussi le nom du script (Object Definition > Script). Ceci illustre bien le système Armature-Acteur (Modèle-Script, dans ce cas) de Mafia.

Code:
Dim_Act 2
Dim_Flt 1
Dim_Frm 1

GetActivePlayer 0
FindActor 1, "Pharmacie.Box02" // Porte de la pharmacie.

FindFrame 0, "PlacementTom" // Placement de Tom au moment de l'animation.


Label Pharmacie

Door_Enableus 1, 0

Detector_WaitForUse Id_texte_à_afficher

Player_LockControls 1

SetNoAnimHit 0, 1 // Aucune idée de l'utilité.
Actor_SetPlacement 0, 0
Door_Open 1, 1
Person_PlayAnim 0, "sbirani zvrchu.i3d", 0, simple
Let Flt[0] = Flt[0] - 323
Wait Flt[0]
Person_StopAnim 0
Human_GetProperty 0, 0, Energy
Let Flt[0] = Flt[0] + 100
If Flt[0] > 100, -1, Energie
Let Flt[0] = 100

Label Energie
Human_SetProperty 0, Flt[0], Energy
SetNoAnimHit 0, 0
Door_Open 1, 0

Player_LockControls 0

Goto Pharmacie


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 22 Sep 2009, 15:49 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Super merci Arès,
DC||ED a l'air capricieux d'après le forum. Mais ta réponse à l'air bien détaillé. Je vais l'essayer et l''étudier plus tard. Je repars de zéro avec Mafia, car capone et MafiaDataXTactor ne démarre plus. je pense avoir trop bidouillé, le registre a du en prendre un coup.

Si j'ai bien compris tes explications, je dois utiliser DC||ED.


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 22 Sep 2009, 20:47 
Hors ligne
Son Excellence
Avatar de l’utilisateur

Inscription: 22 Aoû 2004, 23:09
Messages: 12259
Localisation: France
Je vois que tu permets au joueur de pouvoir se soigner indéfiniment dans la même pharmacie, Arès.

La commande que t'ignores permet d'éviter à Tommy qu'une autre animation due à une attaque ne vienne annuler l'animation pour se soigner.



Par contre, méthodiquement, je prendrais d'abord les deux objets de la pharmacie aux développeurs puis créerais le mannequin en même temps que le script avec BSV pour ensuite placer le modèle de la pharmacie avec Capone et la position de Tommy avec Mafia, sans oublier de corriger le défaut de coordonnées globales de BSV grâce à DC||ED qui les affiche comme additionnal.

_________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 22 Sep 2009, 23:17 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Si ça peux arranger le problème dont parle Condor. Je souhaite juste que tommy se soigne un peu partout dans LH afin d'éviter les trajet pour l'hosto.
La porte et l'animation ne m'interresse pas plus que ça.
A terme, l'idée serait d'avoir des soins complet à l'hosto et partiel (genre 80) dans le reste de LH. Afin de nuancer les soins.
... Vu comment ca présente, je n'ose même pas vous parler de la suite de ce projet. Je verrais plus tard.

Ce que je ne comprend pas c'est ce script, accompagné du modèle de sa boite, incopiable (dans BSV c'est sur) dont je parle dans mon 1er message.

tolonduler a écrit:

Avec BScript View 6.
Lorsque je passe par insert > other. On ne peux pas lui attribuer son modèle.
Et par insert > things. La page de droite ne permet pas de coller un scripte.
J'ai essayé les autres possibilité au pif. Sans résultat.

Avec DCED2_v.1
Alors avec lui, je ne comprend très peu de chose. Je commence juste à y bosser. (pour ce projet)
A part le copier/coller qui n'a pas fonctionné non plus.


La boite "objet", modèle "9lekarna.i3d" ne peuvent pas être copié avec BSV.
Ne peut on pas ajouter une commande au script excitant, qui appellerait la boite?


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 23 Sep 2009, 12:05 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
Si tu ne veux que la récupération de vie, tu peux tout faire avec BSV.

De manière grossière (avec DC||ED tu peux mieux contrôler le lien Armature-Acteur) :
  1. Tu insères le modèle 3d de la pharmacie : Insert > Building.
  2. Tu insères un script aux mêmes coordonnées que le modèle 3d : Insert > Other (option No script décochée).
  3. Dans la zone de script de ce dernier élément, tu colles ce script :
Code:
Dim_Act 1
Dim_Flt 1

GetActivePlayer 0


Label Pharmacie

Detector_WaitForUse Id_texte_à_afficher

Human_GetProperty 0, 0, Energy
Let Flt[0] = Flt[0] + 100
If Flt[0] > 100, -1, Energie
Let Flt[0] = 100

Label Energie
Human_SetProperty 0, Flt[0], Energy

Goto Pharmacie


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 23 Sep 2009, 13:19 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Merci pour ta réponse Alès.

C'est donc mieux avec BSV ou DCED?

Lorsque tu dis:

"De manière grossière (avec DC||ED tu peux mieux contrôler le lien Armature-Acteur)"

Je ne saisis pas la nuance entre, manière grossière et mieux contrôler le lien Armature-Acteur.

Mais pour l'instant, je doit résoudre un big problème avec MafiaDataXTactor qui ne veux plus ce lancer. C'est arrivé hier après un nouvelle installation de Mafia complètement.


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 23 Sep 2009, 14:30 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
Condor a écrit:
Je vois que tu permets au joueur de pouvoir se soigner indéfiniment dans la même pharmacie, Arès.
Oui et puis c'est ce que tolonduler veut, j'imagine.

Condor a écrit:
La commande que t'ignores permet d'éviter à Tommy qu'une autre animation due à une attaque ne vienne annuler l'animation pour se soigner.
Tiens... Et c'est aussi ça qui bloque les ennemis lors d'animations ? Par exemple dans la mission « 12-02 Une affaire géniale ! - Parking », tout le monde s'arrête quand Tom ramasse les grenades.

Condor a écrit:
Par contre, méthodiquement, je prendrais d'abord les deux objets de la pharmacie aux développeurs puis créerais le mannequin en même temps que le script avec BSV pour ensuite placer le modèle de la pharmacie avec Capone et la position de Tommy avec Mafia, sans oublier de corriger le défaut de coordonnées globales de BSV grâce à DC||ED qui les affiche comme additionnal.
En fait avant j'avais pris la porte, la position de Tom et peut-être la caméra (il n'y en a pas dans ce script) aux développeurs.

Arès a écrit:
De manière grossière (avec DC||ED tu peux mieux contrôler le lien Armature-Acteur) :
  1. Tu insères le modèle 3d de la pharmacie : Insert > Building.
  2. Tu insères un script aux mêmes coordonnées que le modèle 3d : Insert > Other (option No script décochée).
  3. Dans la zone de script de ce dernier élément, tu colles ce script :
Là j'expliquais la méthode avec BSV. "Insert > ..." c'est typique de ce programme.


Petites explications (les points d'en haut trouvent leur correspondance ci-dessous) :
  1. Créer un modèle 3d dans BSV revient à créer une armature : Model Object dans DC||ED.
  2. Quand tu crées un script avec BSV, il crée une armature (l'emplacement du script dans la scène du jeu, Standard Object dans DC||ED) et un acteur (le script, Definition Object dans DC||ED).

Puisque DC||ED sépare les armatures des acteurs, leur gestion est plus contrôlée. Au lieu d'utiliser deux armatures (modèle et emplacement du script), mon idée serait d'en utiliser seulement une : le modèle remplacerait l'emplacement du script, il aurait donc une double utilité.
Ce qui se résume dans DC||ED :
  1. 1 Model Object : 9lekarna.i3d avec les coordonnées appropriées.
  2. 1 Definition Object : le script avec le même nom que l'armature précédente.

Mais pour faire simple, utilise BSV avec la méthode de mon message précédent.


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 05 Nov 2010, 21:39 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
... Un an après
Arès a écrit:

Mais pour faire simple, utilise BSV avec la méthode de mon message précédent.


C'est finalement ce que j'ai fait. Et si j'ai mis tout ce temps c'est aussi parce que j'avais décide de bossé sur les scripts. Chose très difficile avec la liste des commandes incomplète et en anglais traduit avec Google... C'est pas la joie.

Voici le 1er script de ma composition assez satisfaisant, que je jumelle à Sara et redonne des points de vie. Des dialogues perso en texte y sont additionné.

Code:
dim_flt 10
dim_act 10
dim_flt 10
findactor 0,"Tommy"

label 101
detector_waitforuse 08970005

human_getproperty 0,0,Energy
if flt[0]>100,-1,102
human_talk 0,00950084
human_talk 0,02950251
goto 101

Label 102
policeitchforplayer 0
if flt[0]>0,-1,BEZPOLDU
human_getproperty 0,0,Energy
if flt[0]>50,-1,103
human_talk 0,00950083

goto 101

Label 103
human_talk 0,00950082
PLAYER_LOCKCONTROLS 1
human_setproperty 0,50,Energy
human_talk 0, 07020120
Goto 105

label BEZPOLDU
PLAYER_LOCKCONTROLS 1
human_talk 0, 07020030
zatmyse 1
wait 1000
zatmyse 0
human_setproperty 0,100,Energy
human_talk 0, 07020120

Label 105
PLAYER_LOCKCONTROLS 0
human_talk 0, 07020130
goto 101


Je commence à comprendre certaine flt, mais pour les frames, je comprend très peu de chose, à part qu'elle informe sur des positions pour un script, un acteur...??


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 05 Nov 2010, 22:44 
Hors ligne
Son Excellence
Avatar de l’utilisateur

Inscription: 22 Aoû 2004, 23:09
Messages: 12259
Localisation: France
Tu t'emmerdes avec ça, vient donc sur le forum poser des questions même si c'est que pour connaître une seule fonction sur laquelle t'as un doute, c'est fait pour ça.



Je peux déjà t'expliquer rapidement les bases.


Les Dim_Frm, Dim_Act, Dim_Flt sont les allocateurs, ils réservent une sorte de tableau dans la mémoire de ton ordinateur avec le nombre d'éléments que tu lui définis.

Ainsi, Dim_Frm 3 va allouer trois éléments pour les armatures en identifiant le premier élément par 0.

Ensuite sont liés les déclarateurs qui permettent de remplir ces fameux éléments.

Code:
Dim_Frm 3

FindFrame 0, "Tommy"
FindFrame 2
FindFrame 3, "Sarah"
    Le premier élément (0) est rempli par l'armature de Tommy ;
    Le second élément (1) est perdu, réservé inutilement ;
    Le troisième élément (2), n'ayant pas d'appel, est rempli par l'armature du script courant ;
    Et le quatrième élément (3), comme il n'y en a pas, Sarah n'aura aucune place dans la mémoire, ce déclarateur n'a donc aucune effet.

Pour économiser la mémoire, on normalise les allocateurs, c'est-à-dire qu'on fait en sorte qu'il n'y ait aucun élément réservé inutilement.



Maintenant, voyons cette histoire d'armatures, d'acteurs et de flottants...


Une armature (frame) est la partie visible et sonore de l'objet, avec ses coordonnées dans l'espace.

L'acteur est obligatoirement un plus de l'armature, c'est ce qui lui donne vie, c'est l'âme voire la physique de l'objet.

Ainsi, tous les objets sont au départ une armature (lumière, son, modèle, mannequin...).


Par exemple :

Une voiture est une armature qui affiche un modèle 3D à laquelle on va donner vie avec un acteur voiture qui porte le même nom. Pareil pour un humain.

Un script, c'est un mannequin, une sorte de point invisible dans l'espace auquel on associe un acteur qui contient les lignes de commande.


Et les flottants (flt), ce sont simplement des variables qu'on remplies avec « Let » (ou des fonctions du jeu).

Pour mieux t'en rendre compte, utilise le compteur d'argent pour afficher leur valeur en jeu.

Code:
FreeRide_ScoreOn 1 // Active l'affichage du compteur

Dim_Flt 1 // Alloue de la place pour une seule variable

Let Flt[0] = 1515 // Remplit la variable 0 avec la valeur 1515
FreeRide_ScoreSet Flt[0] // Affiche la valeur de la variable 0



Pour les étiquettes (Label), tu peux leur donner un nom de 11 caractères mais ne mets jamais de commentaire sur la même ligne sinon Mafia prend ça pour le nom de l'étiquette.

N'hésite pas à leur donner des noms plus clairs en lettre et en français histoire qu'un autre scripteur voit qu'il s'agit du travail d'un Français, un peu de fierté culturelle ne peut pas faire de mal.

_________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 06 Nov 2010, 11:35 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Message bien reçu, Condor.

Ces affaires de mémoires etc, sont très intéressantes pour le bon fonctionnement d'un mod.

Je fini avec les collisions et je reviens.

Merci

Edité: 1


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 06 Nov 2010, 19:24 
Hors ligne
Son Excellence
Avatar de l’utilisateur

Inscription: 22 Aoû 2004, 23:09
Messages: 12259
Localisation: France
Sinon tu peux aussi faire un petit script qui te permet d'avoir la santé à fond quand tu montes dans une ambulance.

Ou encore, pouvoir balader des trousses de soins à la place d'une arme mais c'est une modification plus complexe, là.

_________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 20 Fév 2011, 03:40 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Condor a écrit:

Ainsi, Dim_Frm 3 va allouer trois éléments pour les armatures en identifiant le premier élément par 0.

Ensuite sont liés les déclarateurs qui permettent de remplir ces fameux éléments.

Dim_Frm 3

FindFrame 0, "Tommy"
FindFrame 2
FindFrame 3, "Sarah"
Le premier élément (0) est rempli par l'armature de Tommy ;
Le second élément (1) est perdu, réservé inutilement ;
Le troisième élément (2), n'ayant pas d'appel, est rempli par l'armature du script courant ;
Et le quatrième élément (3), comme il n'y en a pas, Sarah n'aura aucune place dans la mémoire, ce déclarateur n'a donc aucune effet.


Pour économiser la mémoire, on normalise les allocateurs, c'est-à-dire qu'on fait en sorte qu'il n'y ait aucun élément réservé inutilement.

Ça c'est compris. De plus je saisit le déclarateur absent.



Condor a écrit:
Une armature (frame) est la partie visible et sonore de l'objet, avec ses coordonnées dans l'espace.

L'acteur est obligatoirement un plus de l'armature, c'est ce qui lui donne vie, c'est l'âme voire la physique de l'objet.

Ainsi, tous les objets sont au départ une armature (lumière, son, modèle, mannequin...).


Par exemple :

Une voiture est une armature qui affiche un modèle 3D à laquelle on va donner vie avec un acteur voiture qui porte le même nom. Pareil pour un humain.


Ce que je ne comprend pas c'est une voiture, dans certain scripte peux être déclaré à la fois dans un FindFrame et un FindActor.



Code:
FreeRide_ScoreOn 1 // Active l'affichage du compteur

Dim_Flt 1 // Alloue de la place pour une seule variable

Let Flt[0] = 1515 // Remplit la variable 0 avec la valeur 1515
FreeRide_ScoreSet Flt[0] // Affiche la valeur de la variable 0

Je l'ai essayé tel quel, il m'affiche: -99$. Je comprend pas

Condor a écrit:
Pour les étiquettes (Label), tu peux leur donner un nom de 11 caractères mais ne mets jamais de commentaire sur la même ligne sinon Mafia prend ça pour le nom de l'étiquette.


C'est noté.


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 20 Fév 2011, 14:37 
Hors ligne
Son Excellence
Avatar de l’utilisateur

Inscription: 22 Aoû 2004, 23:09
Messages: 12259
Localisation: France
C'est à cause du commentaire que ça ne marche pas. Il faut toujours soupçonner les commentaires en premier.


Pour la déclaration, le but n'est pas de créer une armature ou un acteur mais de l'identifier, lui donner un numéro.

L'exemple le plus typique est le fait de cacher un objet comme un humain. J'en profite pour montrer l'utilisation des conditions sur les variables (flottants) dans ce script permettant de faire apparaître un humain pendant une seconde quand on utilise la touche du frein à main :


Code:
Dim_Frm 1
Dim_Act 2
Dim_Flt 3

FindFrame 0, "Humain" // Permet au script d'identifier comme 0 l'armature de l'objet Humain afin d'agir sur cette partie de l'objet.
FindActor 1, "Humain" // Pareil mais pour la partie acteur et avec l'identifiant 1.


Label Désactive
Frm_SetOn 0, 0 // Éteint l'armature 0 (son modèle visible et la place qu'il prend dans la mémoire vidéo).
Act_SetState 1, Inactive // [Commentaire gênant] Désactive l'acteur 1 (sa collision, son animation, son IA...).

Label Contrôle
Ctrl_Read 2, HandBrake // La variable 2 prend la valeur 1 si la touche du frein à main est enfoncée.
If Flt[2] = 1, -1, Contrôle // [Commentaire gênant] Si la variable 2 vaut 1, passer à la suite (l'étiquette -1 n'existant pas) sinon fermer la boucle (l'étiquette Contrôle étant avant).

Frm_SetOn 0, 1 // Allume l'armature 0.
Act_SetState 1, Active // [Commentaire gênant] Active l'acteur 1.
Wait 1000 // Pause d'une seconde.

GoTo Désactive

Attention, j'alloue volontairement plus qu'il ne faut dans le but d'avoir un chiffre différent pour cet exemple entre acteur, armature et flottant.


La version propre de ce script serait donc ainsi :

Code:
Dim_Frm 1
Dim_Act 1
Dim_Flt 1

FindFrame 0, "Humain"
FindActor 0, "Humain"


Label Désactive
Frm_SetOn 0, 0
Act_SetState 0, Inactive

Label Contrôle
Ctrl_Read 0, HandBrake
If Flt[0] = 1, -1, Contrôle

Frm_SetOn 0, 1
Act_SetState 0, Active
Wait 1000

GoTo Désactive

_________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Haut
 Profil  
 
 Sujet du message: Re: Armoire à pharmacie, impossible à copier.
MessagePosté: 21 Fév 2011, 17:34 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mar 2008, 17:42
Messages: 62
Localisation: Clamart (92) FR
Condor,
Avec ton script propre ci-dessus (au passage, merci de l'attention), il faut insérer un humain en plus, non?

Celui d'avant, en enlevant les commentaires ne fonction toujours pas?


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 16 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 2 heures


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com