Aller au contenu


[résolu] Problème De Dialogue.


  • Veuillez vous connecter pour répondre
11 réponses à ce sujet

#1 Dallara

Dallara

    Fortificateur fortiche


Posté 19 février 2010 - 17:02

Bonjour,

J'ai en ce moment un petit souci: J'ai un Result dans un dialogue qui marche pas. Toute les conditions sont remplies le dialogue s'affiche mais le result de marche pas.

Le Result:
Journal CDH_espionnage 10
Player->AddItem CDH_Espionnage_message_01

Pourquoi sa ne marche pas ?

Merci Dallara

Modifié par Dallara, 21 février 2010 - 11:35.

Heureux qui comme la rivière peu suivre son cours sans quitter son lit.

Le travail c'est la santé, laisse le au malade.

Mieux vaut arriver en retard qu'en corbillard!

VGM

#2 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 19 février 2010 - 17:04

http://wiwiki.wiwila...ripting#AddItem

Il manque le nombre d'items ajoutés.

#3 elendell

elendell

    Mécano Dell'Arte


Posté 19 février 2010 - 18:28

Bonjour Dallara,

Le sujet n'est pas à la bonne place, je le déplace...

#4 Dallara

Dallara

    Fortificateur fortiche


Posté 20 février 2010 - 17:51

Bonjour,

Merci pour ton aide mais malheureusement sa marche encore moins...
Maintenant sa plante et retour sur le Bureau quand je veux afficher le dialogue. ^^
J'ai pourtant vérifier si l'élément à ajouter ou l'entrée du journal existait et oui.

Le Result:
Journal CDH_espionnage 10
Player->AddItem CDH_Espionnage_message_01 1

Est-ce que le fait d'avoir mis un script pourrais changer quelque chose ?

le Script:
Spoiler

Merci

Dallara
Heureux qui comme la rivière peu suivre son cours sans quitter son lit.

Le travail c'est la santé, laisse le au malade.

Mieux vaut arriver en retard qu'en corbillard!

VGM

#5 Phant

Phant

    Plus pro, plus propre !


Posté 20 février 2010 - 17:59

Voir le messageDallara, le 20.02.2010 à 18:05, dit :

Bonjour,

Merci pour ton aide mais malheureusement sa marche encore moins...
Maintenant sa plante et retour sur le Bureau quand je veux afficher le dialogue. ^^
J'ai pourtant vérifier si l'élément à ajouter ou l'entrée du journal existait et oui.

Le Result:
Journal CDH_espionnage 10
Player->AddItem CDH_Espionnage_message_01 1

Bonjour Dallara,

C'est ton result "Player->AddItem..." qui a un problème je pense, tu a omis de mettre des " autour de l'ID de ton objet.

Citation

Player->AddItem "CDH_Espionnage_message_01" 1
Ceci devrait mieux fonctionner.

Edit: pourquoi faudrait t'il un script ?


A bientôt,
Phant

Modifié par l-phant, 20 février 2010 - 18:39.

"Dans la vie, rien n'est à craindre, tout est à comprendre."

#6 Orann

Orann

    Nérévarine de Pertevue


Posté 20 février 2010 - 18:30

Je ne comprends pas la syntaxe de ton script:

if ( Player-> RemoveItem "CDH_Espionnage_message_01" )

Je ne crois pas qu'on puisse utiliser la fonction removeitem de cette façon.
Si tu veux savoir si un joueur a enlevé de son inventaire un objet précis, tu dois utiliser "Getitemcount".
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#7 elendell

elendell

    Mécano Dell'Arte


Posté 20 février 2010 - 18:46

Bonjour,


Voir le messagel-phant, le 20.02.2010 à 18:13, dit :

C'est ton result "Player->AddItem..." qui a un problème je pense, tu a omis de mettre des " autour de l'ID de ton objet.
Les guillemets ne sont pas nécessaires, sauf quand il y a un espace dans l'ID ou qu'elle commence par un caractère spécial tel que : "_" (à ne pas faire). Ceci dit, quand ça ne fonctionne pas, il faut effectivement essayer ça aussi.

Voir le messageDallara, le 20.02.2010 à 18:05, dit :

Est-ce que le fait d'avoir mis un script pourrais changer quelque chose ?
Tu ne le précises pas alors je suppose que ton script est un local attaché à "CDH_Espionnage_message_01". (Pense à préciser ces détails dans tes énoncés de bugs).

Voir le messageDallara, le 20.02.2010 à 18:05, dit :

le Script:
Spoiler

Je vois deux problèmes dans ce script :

- Il y a un espace en trop après la flèche. Les espaces en trop ou manquants sont source de bugs aléatoires.

- Tu testes "if ( Player->RemoveItem... ) mais le PJ ne peux pas faire lui-même "RemoveItem". Il faut donc que tu testes plutôt si l'objet est oui ou non dans l'inventaire.

A part ça, je ne comprends pas à quoi sert ce script. Peux-tu nous le dire ?


EDIT : Grillé par Orann  :lol:

#8 Dallara

Dallara

    Fortificateur fortiche


Posté 20 février 2010 - 23:04

Bonsoir,

Je vais essayer tous ces petits trucs maintenant.
Le script sers enfaite a faire que quand le PJ dépose cet objet sa mette la fonction active à 1 et cela est une conditions pour que un autre script se lance.
Donc enfaite le script sert à que quand on lâche l'objet sa lance un autre script (je sais c'est tordu).
(le deuxième script pourras peut-être aider a comprendre donc je le met.)
Spoiler

Merci encore.

Dallara

EDIT: Effectivement j'ai oublier de préciser, le script est bien sur l'objet "CDH_Espionnage_message_01"
EDIT2: (désolé) le deuxième script est sur un autre objet nommé "CDH_Espionnage_message_03"

Modifié par Dallara, 20 février 2010 - 23:11.

Heureux qui comme la rivière peu suivre son cours sans quitter son lit.

Le travail c'est la santé, laisse le au malade.

Mieux vaut arriver en retard qu'en corbillard!

VGM

#9 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 20 février 2010 - 23:10

Voir le messageDallara, le 20.02.2010 à 23:18, dit :

Le script sers enfaite a faire que quand le PJ dépose cet objet sa mette la fonction active à 1 et cela est une conditions pour que un autre script se lance.
Il faut plutôt utiliser la fonction OnPCDrop qui détecte lorsque le PJ dépose l'objet. (voir la page 34 du MsfD8)

#10 Dallara

Dallara

    Fortificateur fortiche


Posté 21 février 2010 - 11:24

Voir le messageShadow she-wolf, le 20.02.2010 à 23:24, dit :

Voir le messageDallara, le 20.02.2010 à 23:18, dit :

Le script sers enfaite a faire que quand le PJ dépose cet objet sa mette la fonction active à 1 et cela est une conditions pour que un autre script se lance.
Il faut plutôt utiliser la fonction OnPCDrop qui détecte lorsque le PJ dépose l'objet. (voir la page 34 du MsfD8)

Effectivement c'était sa qui faisait tout planter merci beaucoup Shadow.
Quelques petits détailles à régler et tout sera parfait.

Modifié par Dallara, 21 février 2010 - 11:25.

Heureux qui comme la rivière peu suivre son cours sans quitter son lit.

Le travail c'est la santé, laisse le au malade.

Mieux vaut arriver en retard qu'en corbillard!

VGM

#11 elendell

elendell

    Mécano Dell'Arte


Posté 21 février 2010 - 23:57

Bonjour,

Un peu hors sujet mais en relation avec ce qui est dit ici :

"OnPCDrop" est effectivement la fonction à utiliser pour savoir si le PJ pose un objet mais elle ne doit pas être utilisée pour savoir si le PJ enlève un objet de son inventaire car si l'objet est déposé dans un conteneur ou s'il est vendu, "OnPCDrop" ne renverra pas 1.


Quelques points me posent question dans le script "CDH_espionnage_02" :

Spoiler

Tel que je le comprends, l'objet qui a ce script est "disabled" tant quand le PJ n'a pas posé l'autre objet. Ensuite, le topic "claquettes" est ajouté et l'objet est rendu "enabled" pendant un jour (tant que "localdaysPassed == 1"), puis il est à nouveau "disabled" pour tout le reste du jeu. Est-ce bien ce que tu veux ?

Si oui, cela pourrait d'une part être optimisé mais surtout, tu risques d'avoir un problème dans certaines situations :

- Le "AddTopic" sera fait à chaque frame pendant toute une journée, si le PJ reste en présence de l'objet.

- Pendant cette journée, le script fera à chaque frame : "disable" + "enable".

- Si le PJ pose le premier objet à 23h59 minutes et 59 secondes, le deuxième (qui porte ce script) ne restera visible par le joueur que pendant une seconde !  :D  (Essaye-le dans cette situation.)


A part ça :
set localdaysPassed to localdaysPassed + 1
- Est-ce une variable globale ? Et si oui, pourquoi l'avoir déclarée en globale et non en locale ?
- Cette syntaxe fonctionne mais personnellement, j'aurais tendance à lui préférer : "set localdaysPassed to ( localdaysPassed + 1 )"

#12 Dallara

Dallara

    Fortificateur fortiche


Posté 22 février 2010 - 12:18

Bonjour,

Voir le messageelendell, le 22.02.2010 à 00:11, dit :

Tel que je le comprends, l'objet qui a ce script est "disabled" tant quand le PJ n'a pas posé l'autre objet. Ensuite, le topic "claquettes" est ajouté et l'objet est rendu "enabled" pendant un jour (tant que "localdaysPassed == 1"), puis il est à nouveau "disabled" pour tout le reste du jeu. Est-ce bien ce que tu veux ?

Heu non c'est pas tout a fais se que je voulais...
Ce que je veux c'est que quand le PC dépose l'objet (pas dans un container), dans un jour l'autre objet apparaisse pour tout le jeu.

Voir le messageelendell, le 22.02.2010 à 00:11, dit :

A part ça :
set localdaysPassed to localdaysPassed + 1
- Est-ce une variable globale ? Et si oui, pourquoi l'avoir déclarée en globale et non en locale ?
- Cette syntaxe fonctionne mais personnellement, j'aurais tendance à lui préférer : "set localdaysPassed to ( localdaysPassed + 1 )"

je vais changer je me suis effectivement planter ^^.

Dallara
Heureux qui comme la rivière peu suivre son cours sans quitter son lit.

Le travail c'est la santé, laisse le au malade.

Mieux vaut arriver en retard qu'en corbillard!

VGM




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)