Aller au contenu


Mon Premier Mod.


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

#1 BowserSK

BowserSK

Posté 05 août 2009 - 20:20

Bonjour à tous.
Je me suis récemment mis en tête de vouloir créer un mod pour oblivion (ce soir même), et je ne sais pas quel script utiliser pour mettre un objet dans l'inventaire d'un pnj. J'ai essayé la commande "monpnj.additem monobjet x" mais apparemment, ça ne fonctionne que pour le joueur... (je crée une quête qui consiste à rendre son équipement à quelqu'un, bref un truc pas trop compliqué)
Merci d'avance.

PS : J'ai encore plein de problèmes, mais je préfère les règler un par un, je vous ferai part des autres plus tard.

Modifié par BowserSK, 09 août 2009 - 20:41.


#2 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 07 août 2009 - 19:26

Bonjour,

On ne peut pas t'aider si:
-On ne sait pas ce que tu comptes faire exactement.
-On ne sait pas ce que tu as fait exactement.

Parce que la fonction Additem fonctionne parfaitement sur un pnj, il y a donc un problème ailleurs. :green:

#3 BowserSK

BowserSK

Posté 08 août 2009 - 14:12

Voir le messageShadow she-wolf, le 07.08.2009 à 20:25, dit :

Bonjour,

On ne peut pas t'aider si:
-On ne sait pas ce que tu comptes faire exactement.
-On ne sait pas ce que tu as fait exactement.

Parce que la fonction Additem fonctionne parfaitement sur un pnj, il y a donc un problème ailleurs. ;)

Désolé, je n'ai peut-être pas été suffisamment précis dans ma demande.
Pour commencer, voici une description brève de la quête que je tente de créer :
J'ai posté vers l'entrée de Bravil un nordique qui ne porte qu'un pantalon, il se plaint d'avoir été attaqué par deux vilains qui lui ont volé son équipement (une armure orc (bottes, jambières, cuirasse, gants) et un marteau en acier. Le nordique nomme les agresseurs, un orc et un bosmer, qui sont quelque part à Bravil, et qu'on devra tuer pour récupérer l'équipement et le rendre à notre ami nordique. Suite à cette "aventure", le nordique se propose comme compagnon.
Je préfère m'occuper de la partie "compagnon" plus tard, je me concentre d'abord sur la quête.

Voici ce que j'ai fait :
J'ai créé les 3 PNJs cités plus haut grâce au tuto sur le wiwiki, et je les ai placés à Bravil.
J'ai créé une quête à propos du nordique afin qu'on puisse discuter de son agression. Et ça fonctionne.

Voici maintenant mes problèmes :

J'ai essayé de faire en sorte de démarrer la quête lorsque l'on aborde le sujet avec le nordique en rentrant dans "Result Script" : "StartQuest Maquete" dans la fenêtre du topic. (je ne sais pas si je suis clair) Sans résultat.

Le bosmer que j'ai créé est invincible, il est considéré comme important dans le jeu et ne peut pas être tué, or je n'ai pas coché la case "Essential" dans son "Profil".

Ma quête est en 3 étapes : Parler au nordique, récupérer son équipement, lui rendre.
Dans les conditions de la 2e étape, je n'ai pas trouvé comment faire pour qu'elle s'active lorsque l'équipement en question est dans notre inventaire. Je me suis contenté de la fonction "GetEquipped" pour le moment.

Lors de la dernière étape, "rendre", j'ai entré dans "Result Script" ceci :
player.removeItem OrcishCuirass 1
player.removeItem OrcishGauntlets 1
player.removeItem OrcishGreaves 1
player.removeItem WeapSteelWarhammer 1

Je n'ai pas encore testé ingame, mais ça ne semble pas poser de problèmes.

Cependant lorsque je rentre :
"monpnj.additem objet 1"
J'ai le message suivant qui apprait :
"Script 'Maquete', line6:
Syntax error. Invalid reference 'Monpnj' (only object references and reference variable are allowed in this context)."

Je dois avouer que je ne saisi pas entièrement le message. Seul les objets et les variables peuvent être soumis au script "additem" ? >_>

Voilà pour les précisions, j'espère que vous pourrez m'aider.

#4 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 08 août 2009 - 14:43

Voir le messageBowserSK, le 08.08.2009 à 15:11, dit :

J'ai essayé de faire en sorte de démarrer la quête lorsque l'on aborde le sujet avec le nordique en rentrant dans "Result Script" : "StartQuest Maquete" dans la fenêtre du topic. (je ne sais pas si je suis clair) Sans résultat.
Si j'ai bien compris ce que tu as fait, il n'y a pas besoin de ça.
La fonction "StartQuest" n'est que peu utile, quand on créer une nouvelle, la case "Start Game Enable" est cochée sur l'onglet Quest Data. Ça indique que la quête est activée dès le lancement du jeu, ce n'est pas grave, elle ne sera visible dans le journal que lorsqu'il y aura les premières entrées journal. La plupart des quêtes du jeu de base sont comme cela. ;)
Ça a une influence infinitésimale sur les performances en jeu alors bon...


Citation

Le bosmer que j'ai créé est invincible, il est considéré comme important dans le jeu et ne peut pas être tué, or je n'ai pas coché la case "Essential" dans son "Profil".
Si dans son profil la case n'est pas cochée, c'est qu'alors un script le rend invincible par la fonction SetEssential.


Citation

Dans les conditions de la 2e étape, je n'ai pas trouvé comment faire pour qu'elle s'active lorsque l'équipement en question est dans notre inventaire. Je me suis contenté de la fonction "GetEquipped" pour le moment.
Il vaut mieux utiliser la fonction GetItemCount. Mais pour ce faire (même chose pour GetEquipped), il vaut mieux créer de nouvelles pièces d'armures et une nouvelle arme (il suffit de changer l'ID des existant, le tescs te demandera si tu veux dupliquer ou changer l'ID, tu dis que tu dupliques). Comme cela, ça évitera que le dialogue s'active si le joueur se trouve avec une armure orc et un marteau en acier ramassés n'importe où sur lui.


Citation

Cependant lorsque je rentre :
"monpnj.additem objet 1"
J'ai le message suivant qui apprait :
"Script 'Maquete', line6:
Syntax error. Invalid reference 'Monpnj' (only object references and reference variable are allowed in this context)."
Ce que te demande le tescs, c'est d'utiliser une "référence persistante".
Car en fait, quand tu créer un PNJ, rien ne t'empêche de le placer un nombre incalculable de fois dans le monde, donc le jeu, pour les différencier leur donne une référence unique, et c'est ce que te demande le tescs.
Soit tu utilises le code hexadécimal, soit tu lui donne une référence.
Pour ce faire, double-clic sur le personnage placé dans le monde, et remplis le champ "Reference Editor ID". C'est ce qu'il te faudra utiliser dans les scripts.
Le jeu a proposé une convention, pour un PNJ unique d'ID monpnj, on utilise monpnjREF, si monpnj est utilisé plusieurs fois, on utilisera plutôt monpnjREFXX, où XX est un nombre, 01, 02, 03...


Mais tout ça, c'est se compliquer les choses, les références persistantes ne sont utile que dans les scripts indépendants d'un objet. Par exemple pour les scripts de quêtes, ou les Result Script d'un Stage. Tandis que pour un dialogue ou un script attaché à un PNJ, si la fonction de script ne concerne que le PNJ qui parle/à qui est attaché le script, il n'y a même pas besoin de le nommer. :mrgreen:
Donc utiliser "Additem Objet1 1" suffit quand tu veux ajouter un objet au personnage qui parle.

#5 BowserSK

BowserSK

Posté 08 août 2009 - 15:33

J'ai suivi tes indications et tout a l'air bon au niveau de la quête, merci bien. ^^
Reste quelques soucis :

Je n'ai utilisé aucun script tel que "SetEssential" en ce qui concerne le bosmer, je ne comprends donc pas pourquoi il est invincible.
J'ai cependant créé une faction pour cette quête, dont le bosmer et l'orc font partie, est-ce que ça pourrait être source de problème ?
En créant cette faction, j'espérais faire en sorte que l'orc défende le bosmer et inversement, mais ça n'a pas l'air d'être aussi simple... Une idée ?
Je viens de remarquer que je n'ai pas placé de marqueurs de quête... Et que je ne comprends pas vraiment ce que je dois changer dans l'onglet "Quest Target"... Que dois-je faire ?

Encore merci pour ton coup de main.

#6 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 08 août 2009 - 16:06

Voir le messageBowserSK, le 08.08.2009 à 16:32, dit :

En créant cette faction, j'espérais faire en sorte que l'orc défende le bosmer et inversement, mais ça n'a pas l'air d'être aussi simple... Une idée ?
Il faut que la faction s'aime elle-même, pour se faire, dans l'éditeur de faction, il y a un champ "Interaction Faction", fait un clic droit dessus et choisi New, il ne te reste plus qu'a dire que MaFaction aime MaFaction à 100.
Tu peux mettre des valeurs négatives aussi, tel que -100.
Plus une faction aimera une autre (valeurs positives), plus elle aura de chance de l'aider au combat, moins elle en aime une (valeurs négatives), plus elle a de chance de l'attaquer sans préavis (!). l'IA de chaque acteur (PNJ et Creatures) membres de la faction influe sur les valeurs des seuils d'aide/attaque. La valeur du "neutre" étant logiquement 0.

Quant au bosmer, il y a forcément une chose avec la valeur essentiel quelque part, que se soit un script ou sur la fiche profile, c'est obligatoire.

Citation

Je viens de remarquer que je n'ai pas placé de marqueurs de quête... Et que je ne comprends pas vraiment ce que je dois changer dans l'onglet "Quest Target"... Que dois-je faire ?
Là-dessus, je te laisse potasser le wiwiki, car moi, je n'aime pas les marqueurs, donc je ne les utilisent pas donc je ne sais pas comment ils fonctionnent, et si j'ai eu l'occasion de les manipuler pour le pno, j'ai oublié pour les raisons précédentes.

#7 BowserSK

BowserSK

Posté 08 août 2009 - 17:52

J'ai réussi à placer des marqueurs en fouillant tout seul, j'avais pas vu ta réponse. -_-'
Merci pour l'astuce des relations entre faction, je pense que ça va fonctionner.
Mais ce bosmer reste désespérément invincible, j'ai vérifié partout où j'aurai pu toucher "Essential" de quelque manière que ce soit, je n'ai rien trouvé. >_<

EDIT : Je pensais avoir règlé le problème des marqueurs... ben non. >_>
J'ai supprimé le bosmer et je l'ai remplacé, ça règle le problème d'invincibilité.
Pour passer à l'étape "rendre l'équipement", j'ai bien mis les conditions "GetItemCount" pour chaque objet à récupérer... Et l'étape ne s'active pas lorsque je les ai dans mon inventaire... Je continue de chercher à propos de ça.

EDIT2 : Cette fois je crois que je susi bon niveau marqueur, c'était un problème de référence persistante.
Reste l'étape de quête.

Modifié par BowserSK, 08 août 2009 - 18:44.


#8 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 09 août 2009 - 13:27

Voir le messageBowserSK, le 08.08.2009 à 18:51, dit :

Pour passer à l'étape "rendre l'équipement", j'ai bien mis les conditions "GetItemCount" pour chaque objet à récupérer... Et l'étape ne s'active pas lorsque je les ai dans mon inventaire... Je continue de chercher à propos de ça.
Pour ce genre de condition, il faut cocher la case Run On Target.
Son nom est suffisamment clair: la condition fonctionne sur la cible, soit la personne à qui parle le PNJ (le joueur dans notre cas). :yahoo:

#9 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 14:54

Citation

Pour ce genre de condition, il faut cocher la case Run On Target.
Son nom est suffisamment clair: la condition fonctionne sur la cible, soit la personne à qui parle le PNJ (le joueur dans notre cas).

Oui, il faut que tu es Yes dans la première colone des conditions de dialogues au lieu de no (par contre, je dirai pas que s'est si simple à appréhender au début, car, il faut parfois se faire un noeud au cerveau entre le fait qu'on utilise un GetIn ou un GetIs ou un GetPc, un IS etc...).

J'en profite pour relever un autre point important que j'ai mis du temps à appréhender (malgré les tuto, pas que ce ne soit pas marqué quelque part, mais avec toutes les sommes d'informations à ingurgiter, on passe facilement à côté) :

Citation

Ce que te demande le tescs, c'est d'utiliser une "référence persistante".
Car en fait, quand tu créer un PNJ, rien ne t'empêche de le placer un nombre incalculable de fois dans le monde, donc le jeu, pour les différencier leur donne une référence unique, et c'est ce que te demande le tescs.
Soit tu utilises le code hexadécimal, soit tu lui donne une référence.
Pour ce faire, double-clic sur le personnage placé dans le monde, et remplis le champ "Reference Editor ID". C'est ce qu'il te faudra utiliser dans les scripts.
Le jeu a proposé une convention, pour un PNJ unique d'ID monpnj, on utilise monpnjREF, si monpnj est utilisé plusieurs fois, on utilisera plutôt monpnjREFXX, où XX est un nombre, 01, 02, 03...

Troisième point, pour ta faction, pour que les PNJs de Bravil attaquent le PJ, je te conseil plutôt que mettre -100 dés le départ envers PlayerFaction de ne rien mettre (donc ils n'attaquent pas le PJ) avant que le StageQuest où le PJ parle au Nordique à Bruma soit validé, alors tu mets un ModFactionReaction MaFaction PlayerFaction -100. Dés lors les PNJs attaqueront le PJ, cela évitera d'avoir des PNJs qui t'attaque à Bravil alors que tu sais pas pourquoi car tu n'as pas commencé la quête...

Modifié par Dorje, 09 août 2009 - 14:55.

Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#10 BowserSK

BowserSK

Posté 09 août 2009 - 15:04

Je suis pas sûr de bien comprendre...
Voilà les screens des étapes de la quête, j'ai coché "Run on Target" comme tu as dit, mais sa fonction reste un peu flou pour moi, et ça ne semble pas règler le problème :

http://www.noelshack...-3187ec1421.bmp
http://www.noelshack...-58301f9639.bmp
http://www.noelshack...-ca2295dc31.bmp
http://www.noelshack...-97be0d3360.bmp

Les screen parleront pour moi, je vois pas ce que je peux dire d'autre alors je préfère te laisser analyser ça. :/

EDIT : Dorje, tu as posté pendant que j'écrivais mon message. ^^
Je vais prendre en compte tes deux premiers conseil pour revoir un peu tout ce que j'ai déjà fait, par contre pour l'histoire des PNJ qui m'attaquent, je ne comprends pas trop ce que tu veux dire. ^^'
J'ai juste créé une faction pour les deux PNJ que je dois tuer, une faction de type "evil" pour ne pas avoir des problèmes avec les gardes. Le but de la faction, c'est que leurs membres (les deux PNJs) s'entraident, ils sont cependant neutres envers le joueur.

Modifié par BowserSK, 09 août 2009 - 15:10.


#11 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 09 août 2009 - 15:37

Ah d'accord. :cool:

Je crois que tu n'as pas saisit le fonctionnement des Stage, se sont des éléments passifs, il ne s'activent pas tout seuls.
J'ai expliqué ici pour Fallout comment ça fonctionne. Ne te préoccupe pas des Objectives, qui sont un truc propre à Fallout.

Du coup, les conditions GetItemCount ne servent à rien là, il faut les placer dans le dialogue qui appellera le Stage correspondant.


ps: accessoirement, préfère utiliser des images au format jpeg, (voir png mais c'est un peu inutile dans cette situation...) plutôt qu'au format bmp. :blush:
Le bmp est une image brute, non-compressée, de très bonne qualité, mais aussi super lourd. Le jpeg est compressé, de moindre qualité (mais largement suffisant) et donc, il est beaucoup plus léger.
Ta bande passante et la notre t'en remercieront. :yahoo:

#12 BowserSK

BowserSK

Posté 09 août 2009 - 16:11

Désolé pour le bmp, je n'y ai repensé qu'après l'upload, j'ai fait ça à l'arrache avec paint. Enfin passons.

Je dois avouer que je commence à être un peu perdu au niveau des quêtes et des conditions. -_-'
Quand tu parles de "dialogue", tu veux dire le script de la quête, (auquel je n'ai pas touché) ou d'un dialogue avec un PNJ ? (noob inside)

#13 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 16:25

Citation

J'ai juste créé une faction pour les deux PNJ que je dois tuer, une faction de type "evil" pour ne pas avoir des problèmes avec les gardes. Le but de la faction, c'est que leurs membres (les deux PNJs) s'entraident, ils sont cependant neutres envers le joueur.

Ok cela peut fonctionner, mais pour que tes PNJs combattent le PJ en + d'avoir une faction "Evil" il faut régler leur agressivité et leur disposition (sinon ils n'attaqueront pas le PJ, le PJ peut trés bien donner le premier coup, mais s'ils ne sont pas agressifs et n'ont pas une "mauvaise" disposition envers le PJ ils risquent fortement d'interompre le combat... Donc tu peux mettre directement dans ta faction des ModDisposition envers d'autres factions et notamment la "PlayerFaction" qui est une "fausse" faction régissant les réations vis à vis du joueur _regarde les différentes factions du jeu, par exemple Daedra faction, la Player Faction, Créature Faction etc...).

Le problème étant que, si tu mets dans ta faction un -100 envers le PJ, ceux-ci vont l'attaquer à vue sans que je joueur ne sache pourquoi (au cas où il n'aurait pas commencer ta quête). Par contre si tu ne met rien dans ta faction, mais que dans ta quête tu mets dans un résult script une ligne de commande faisant évoluer l'agression et la disposition, c'est OK : En gros tu dis au jeu : si cette étape de stage est validé, les PNJs de cette faction verront leur disposition envers le PJ réduite de 100 et leur agressivité augmenté de X (si tu met une valeur d'agressivité trop élevé à tes PNJs de base (cela se règle dans AI, là où on met les packtages des PNJs) ils y a de trés fortes chance qu'ils se battent à vue avec tous PNJs passant par là n'étant pas membre de leur faction : donc dans une ville.... ).

Voilà, j'espère avoir était plus clair :yahoo:

(et oui tes screenshots sont super lourds à charger)


EDIT :

Pour les Setstages : Tu les mets dans les Résul Scripts de tes dialogues. En gros, il faut comprendre cela ainsi : si mon PNJ dit tel phrase cela écris dans le journal telle étape de quête, dés lors je peux me servir du fait que cette étape de quête est eu lieu et soit validé pour l'utiliser comme condition pour mon prochain dialogue avec le PNJ.

Ex :

Dans l'onglet Topic (Dialogues)

PNJ dit : "Va me chercher du Gateau"

Résul Scrpit :
Setstage Maquête 2

dans l'onglet Quest Satage
texte : PNJ m'a dit d'aller chercher du gateau.

Lors d'un prochain dialogue avec ce PNJ tu pourras lui mettre ton Queststage en condition, du type :

PNJ dit : "Alors tu me l'a trouvé mon gateau"

avec dans les conditions tu as :
Getstage == 2

Tu peux alors par exemple lui remettre un autre résul script de quest stage dans l'onglet de dialogue

Setstage Maquête 3

texte dans onglet Quest stage "PNJ m'a encore demandé si je lui avais ramené son gâteau" etc etc etc etc.....

Re-message aprés EDIT :

Oui, dialogues = onglet Topic.

C'est là que tu met des conditions pour que tes lignes de dialogues apparaissent ou non (dont le fameux GetItemCount)

Modifié par Dorje, 09 août 2009 - 16:22.

Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#14 BowserSK

BowserSK

Posté 09 août 2009 - 16:27

Ah ok, Dorje, j'ai compris ce que tu voulais dire.

En fait dans mon idée, c'est le joueur qui doit attaquer les PNJs et non l'inverse, car si c'est le joueur un peu faible, il va se faire lyncher à chaque fois qu'il va à Bravil s'il a le malheur de lancer la quête.
De plus, je compte booster un peu ces PNJs pour que le joueur mérite vraiment d'avoir le nordique comme compagnon, car au niveau 1, il a tendance à tuer nos ennemis en un coup. Enfin ça, c'est une autre histoire.

Je pourrais cependant utiliser tes conseils si jamais les PNJs à tuer ont tendance à fuir, je règlerai ça au fur et à mesure des tests.
Merci bien. ^^

EDIT : Je viens de voir ton edit, je vais regarder un peu ça.

EDIT2 : J'ai réfléchi, et je pense que tu n'as pas compris ce que je comptais, je me suis peut-être mal exprimé.
En fait je voulais faire plutôt un truc du genre :

Dans le journal : "PNJ m'a dit d'aller chercher son équipement"
Je vais le chercher, sans parler au PNJ.
Dans le journal : "J'ai obtenu son équipement"
Puis je vais lui parler pour lui rendre.

Je voudrais que le fais d'avoir ces objets dans l'inventaire provoque le passage à l'étape suivante de la quête, sans passer par le dialogue.

Modifié par BowserSK, 09 août 2009 - 16:39.


#15 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 09 août 2009 - 16:42

Voir le messageBowserSK, le 09.08.2009 à 17:26, dit :

Je pourrais cependant utiliser tes conseils si jamais les PNJs à tuer ont tendance à fuir, je règlerai ça au fur et à mesure des tests.

Pour la fuite, ça n'a pas grand chose à voir avec les Faction, mais avec l'AI.
Chaque PNJ a sa propre AI, il y a le bouton dédié sur sa fiche profile.
La valeur Confidence (confiance en anglais) indique la confiance qu'a le PNJ en lui, donc si il a une valeur 0, il n'a aucune confiance et s'enfuit tout le temps, à 100, c'est un type qui n'a même pas conscience de la mort et se battra donc jusqu'à la mort quoi qu'il arrive.

Par contre, oui désolée, je parlais de script de quête sur l'autre sujet car c'est ce qu'il fallait utiliser dans son cas.
Mais un Stage peut être appelé pas n'importe quel type de script. :yahoo:

Voir le messageBowserSK, le 09.08.2009 à 17:26, dit :

Je voudrais que le fais d'avoir ces objets dans l'inventaire provoque le passage à l'étape suivante de la quête, sans passer par le dialogue.

C'est là qu'entre en jeu le fameux script de quête.
Ça reprend le même système que le script que j'avais proposé à Ziboo, sauf qu'au lieu d'utiliser une unique fonction GetHasNote (n'existe pas dans oblivion), là il faudra utiliser plusieurs fonctions GetItemCount.

#16 BowserSK

BowserSK

Posté 09 août 2009 - 16:44

Voir le messageShadow she-wolf, le 09.08.2009 à 17:35, dit :

Par contre, oui désolée, je parlais de script de quête sur l'autre sujet car c'est ce qu'il fallait utiliser dans son cas.
Mais un Stage peut être appelé pas n'importe quel type de script. :yahoo:

Eh bien dans le "Result Script" de l'étape 1, j'avais mis "SetStage MaQuete 2" avec comme condition pour l'étape 2 d'avoir récupèré l'équipement. Je pensais que ça suffirais.
Si je comprends bien, je dois mettre les conditions directement dans le script avec le "SetStage" ?
Si oui, je risque d'avoir besoin d'un peu d'aide. Je sais juste que je devrais utilier "if", mais ensuite... ^^'

EDIT : On finit par s'embrouiller avec les éditions...
Bah je vais bidouiller ce script de quête !

Modifié par BowserSK, 09 août 2009 - 16:46.


#17 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 09 août 2009 - 16:54

Voir le messageBowserSK, le 09.08.2009 à 17:43, dit :

Eh bien dans le "Result Script" de l'étape 1, j'avais mis "SetStage MaQuete 2" avec comme condition pour l'étape 2 d'avoir récupèré l'équipement. Je pensais que ça suffirais.

Les stages, en plus d'être passifs, sont évènementiels, ils ne fonctionnent qu'à la frame (image) pendant laquelle ils ont été appelés.
Donc ce que tu as fait, c'est lorsque le Stage 1 devient vrai, l'entrée journal du Stage 2 est appelée par le premier, sauf que les conditions de l'entrée journal du Stage 2 ne sont pas remplis, on ne voit pas l'entrée journal.

Par contre, même si on ne voit pas l'entrée journal, le jeu est tout de même passé au Stage 2, ce qui peut poser tout un tas de problèmes...


Un Stage, comme je l'ai dis sur l'autre sujet, c'est avant-tout une étape, il n'est donc pas forcément composé d'une entrée journal, de même qu'il peut avoir plusieurs entrée journal (avec, de préférences des conditions qui s'opposent, tel que le sexe du PJ, pour écrire soit le journal au masculin, soit au féminin).
De même, il peut avoir une entrée journal vierge, qui ne sera pas visible dans le journal, mais permet d'utiliser son Result Script.

Une petite chose, il vaut mieux utiliser des dizaines que des unités pour les Stage, au cas où tu souhaites ajouter de nouveaux Stage intermédiaires.


Citation

Si je comprends bien, je dois mettre les conditions directement dans le script avec le "SetStage" ?
Si oui, je risque d'avoir besoin d'un peu d'aide. Je sais juste que je devrais utilier "if", mais ensuite... ^^'
Regarde mon script sur l'autre sujet, potasse légèrement le wiwiki, ce n'est pas très compliqué. :yahoo:

#18 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 17:06

Ok, pour cela tu devras je pense en passer par une message box et donc un script...

C'est toi qui voit, mais pourquoi te compliquer la vie :

1°/ PNJ envoi mon PJ chercher son pantalon
2°/ PJ trouve Pantalon (et donc l'a dés lors dans son inventaire)
3°/ PJ va reparler au PNJ : S'il a le pantalon PNJ lui dit une phrase "ah vous avez retrouvez mon pantalon" qui pour qu'elle se déclenche doit avoir en condition (dans l'onglet topic) GetItemCount Pantalon == 1. Dans le Résult script du dualogue tu peux alors mettre Setstage Maquete X, ce qui écrira par exemple dans le journal (et donc l'onglet Quest Stage, le stage X du genre : "j'ai retrouvé et donné le pantalon au nordique").

tu mets également dans un résult script tes additem et removeitem (là peut importe que ce soit dans les dialogues ou dans les étapes de quête du journal).

Cela est bianire, mais tu peux complexifier la chose à l'infini : par exemple en 3°/ PNJ me dis "ah vous avez retrouvez mon pantalon, donnez le moi" en "choice" sur le côté tu mets un addtopic "Oui" et "Non".

Si oui, Result srcipt dans topic : Setstage Maquete 2
"j'ai donné le pantalon au nordique"

Si non, Result srcipt dans topic : Setstage Maquete 3
"j'ai refusé de donner le pantalon au nordique"

Tu peux par exemple alors avoir 2 nouveaux greeting pour ton nordique qui auraient comme condition :
_ si Setstage Maquete == 2 ou < 3 "salut l'ami qui m'avait ramené mon pantalon".
_ si Setstage Maquete == ou >=3 "je ne parle pas au voleur de pantalon" + une fonction Googbye.
Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#19 BowserSK

BowserSK

Posté 09 août 2009 - 17:06

Après un moment de lecture, j'ai tenté de rédiger mon premier script : (on ne se moque pas)
scriptname "VHscript"

Begin GameMode
	If player.GetItemCount VHBoots == 1
	   player.GetItemCount VHCuirass == 1
	   player.GetItemCount VHGreaves == 1
	   player.GetItemCount VHGauntlets == 1
	   player.GetItemCount VHWarhammer == 1
	EndIf
		SetStage AiderVanHammer == 2
End

Je sais, il est "faux", le TESC n'en veut pas, mais je ne saisi pas où est l'erreur...
Sinon c'est dans l'idée ? ^^"

EDIT : J'ai modifié en mettant ça :
scriptname "VHscript"

Begin GameMode
	If player.GetItemCount VHBoots == 1 && player.GetItemCount VHCuirass == 1 && player.GetItemCount VHGreaves == 1 
	&& player.GetItemCount VHGauntlets == 1 && player.GetItemCount VHWarhammer == 1
	EndIf
		SetStage AiderVanHammer 2
End

Et ça a l'air d'être bon. \o/

Dorje, tu veux me faire passer par une phase de dialogue avec le PNJ, or je ne souhaite pas passer par là... Désolé, je ne doute pas que ta méthode fonctionne très bien elle aussi.

EDIT : J'ai sauté une ligne avant un "&&" pour ne pas déformer la page, je ne l'ai pas fait dans le TESC.
Bref, à présent, l'étape de la quête s'active \o/... Sans que j'ai récupéré quoi que ce soit. -_-'

EDIT2 :

scriptname "VHscript"

Begin GameMode
	If player.GetItemCount VHBoots == 1 && player.GetItemCount VHCuirass == 1 && player.GetItemCount VHGreaves == 1 
	&& player.GetItemCount VHGauntlets == 1 && player.GetItemCount VHWarhammer == 1
	SetStage AiderVanHammer 2
Endif
End

Comme ça, ça marche ! :nerd:
Reste à bidouiller quelques soucis mineurs et la quête devrait être terminée ! Je n'ai pas réussi à mettre des marqueurs, mais tant pis, ça fera une difficulté de plus pour mériter d'avoir ce nordique comme compagnon.

Modifié par BowserSK, 09 août 2009 - 17:36.


#20 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 17:34

Citation

Dorje, tu veux me faire passer par une phase de dialogue avec le PNJ, or je ne souhaite pas passer par là... Désolé, je ne doute pas que ta méthode fonctionne très bien elle aussi.
OK.

Juste une petite chose pour ton script : Oui il faut que les IF soit sur la même ligne, avec des && pour "ET" ou des II pour des "OU", cependant ton Endif n'est pas au bon endroit, là il vérifie mais ne produira rien. Ecris le plutôt ainsi :

Begin GameMode

en première ligne : 
If blablablablabla (ta ou tes conditions)

en deuxième ligne : 
ta ou tes résultantes (dans ton cas ton stage de quête)

Endif

End

Modifié par Dorje, 09 août 2009 - 17:36.

Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#21 BowserSK

BowserSK

Posté 09 août 2009 - 18:02

Oui, ça marche mieux comme ça, merci ! ^^

Reste quelques soucis :
Le nordique dois devenir mon compagnon à la fin de la quête, mais je dois avant cela accepter son offre, or il commence dès qu'on lui rend ses affaires, alors qu'il ne devrait pas.
Je l'ai "équippé" lors de sa création d'un AI package de type "follow" avec comme cible le joueur, mais il ne me suis pas avant que je lui rende ses affaires, j'ai donc utilisé "StopWait suivre" comme script result lorsqu'on lui demande de nous suivre, mais vu qu'il nous suis avant... >_>

Je n'arrive pas non plus à retrouver comment faire en sorte qu'il ignore les attaques alliées...

EDIT : Le problème de "compagnonage" est règlé, j'avais fait une fausse manip.
Reste le "feu allié" comme on dit dans le jargon FPS.

Modifié par BowserSK, 09 août 2009 - 18:36.


#22 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 09 août 2009 - 18:47

Voir le messageBowserSK, le 09.08.2009 à 19:01, dit :

Le nordique dois devenir mon compagnon à la fin de la quête, mais je dois avant cela accepter son offre, or il commence dès qu'on lui rend ses affaires, alors qu'il ne devrait pas.
Je l'ai "équippé" lors de sa création d'un AI package de type "follow" avec comme cible le joueur, mais il ne me suis pas avant que je lui rende ses affaires, j'ai donc utilisé "StopWait suivre" comme script result lorsqu'on lui demande de nous suivre, mais vu qu'il nous suis avant... >_>

Oula, faire un vrai compagnon, c'est compliqué, et ce n'est pas du tout mon domaine.
Donc je ne vais que t'expliquer les principes de base des PackageAI, pour le reste, je ne pourrais pas t'aider:

Comme tu as sûrement pu le remarquer, on peut mettre plusieurs packages sur un même PNJ, donc le jeu, pour les choisir, il procède comme les dialogues; il les teste tous, du premier (celui le plus en haut de la liste) au dernier (celui le plus en bas de la liste) jusqu'à ce qu'il trouve un package dont toutes les conditions sont remplies. Si il n'en trouve pas, le PNJ ne fait rien.

Dès lors qu'il a trouvé un package, il l'exécute pendant une heure (sauf tags d'exceptions), à la fin de cette heure, il relance un test de package, soit il trouve un nouveau package qu'il exécute à la place de l'ancien, soit il continu le précédent si ses conditions sont toujours vraies.

Voila, donc dans ton cas, il faut mettre des conditions à ton package follow.
Par contre, comme je l'ai dit, les tests de packages se font toutes les heures, mais il y a une commande pour forcer ces tests: evp.
Il faut l'utiliser au moment où il doit commencer à suivre le PJ, si on ne l'utilise pas, il commencera à suivre le PJ qu'à partir de la nouvelle heure. :yahoo:


Par contre, faire un vrai compagnon, c'est bien plus compliqué que cela, là ce que j'ai expliqué c'est juste pour les "compagnons" temporaires (genre Mazoga l'orc). Et faire ce genre de compagnon aussi simpliste de manière permanente à tendance à taper sur le système des joueurs.
Donc, puisque tu débutes, je te conseille de laisser ça de coté le temps que tu termine tout le reste, une fois cela fait, tu gardes ce que tu as fais bien au chaud, puis tu pourras te pencher sur le problème du compagnonnage.
Mais ce n'est qu'un conseil, tu fais ce que tu veux. :blush:


EDIT: pour le feu ami, il suffit de donner au nordique une faction qui aime PlayerFaction.

#23 BowserSK

BowserSK

Posté 09 août 2009 - 18:57

Pour ce qui est du compagnonnage, c'est bon, en fouillant un peu sur le forum j'ai trouvé la solution, il peut suivre, attendre, nager et chuter.
C'est un nordique, donc pas besoin de sneak, il suffira de lui dire d'attendre.

Merci pour l'astuce du feu allié... Et pour tout le reste du mod d'ailleurs. :)

Tout ce qu'il me reste à faire c'est rendre son inventaire accessible...
Je compte utiliser le mod "Inventaire du compagnon", cependant j'aimerai que ça puisse fonctionner sans avoir les deux mods installés, d'où ma question : Comment "fusionner" des mods ?
(L'auteur ne sera pas oublié dans la description.)

#24 Dorjé

Dorjé

    3e433ème effet d'un papillon tibétain


Posté 09 août 2009 - 19:05

Je dois déconnecter pour aller manger dans une fête.

Mais rapidement pour t'aider à répondre à tes nouvelles interrogations :
_ Pourquoi ne fais-tu pas tout simplement un mod compatible avec CM Partener (un mod de script traduit en français) qui permet de faire des partenaires en ayant tous les menus déja fait (télécharge le mod + 1 des partenaires dispo et regardes comment cela est géré _ dispo me semble sur la confrérie des traducteurs_).
_ Pour fusionner des mods, s'est TES4Gecko (va voir sur le wiwiki et fais une recherche dans la section adéquat du forum il y a de nombreux sujets à ce propos).
Essayer ne veut rien dire. Fais le ou ne le fais pas ! (maître Yoda :) )

Lien : PROJET MORROWIND 3E433 (Morrowind dans Oblivion !)

#25 BowserSK

BowserSK

Posté 09 août 2009 - 19:10

Voir le messageDorje, le 09.08.2009 à 20:04, dit :

_ Pourquoi ne fais-tu pas tout simplement un mod compatible avec CM Partener (un mod de script traduit en français) qui permet de faire des partenaires en ayant tous les menus déja fait (télécharge le mod + 1 des partenaires dispo et regardes comment cela est géré _ dispo me semble sur la confrérie des traducteurs_).

Parceque je ne savais pas qu'il existait et que de toute façon, maintenant j'ai fini...
Bon appétit, et encore merci. :)

EDIT : J'ai "fusionné" mon mod et "Inventaire du compagnon", j'ai suivi les instructions du lisezmoi et... ça marche, sauf que mon PNJ n'équipe pas ce qu'on lui donne, pire, il se retrouve en slip dès qu'on change son inventaire... Je ne comprends pas.

EDIT2 : Le problème est règlé !
C'était une histoire d'ordre dans les IA package, comme quoi tout peut buguer pour pas grand chose. xD
Mon premier mod est donc terminé.

Je tiens à remercier Shadow she-wolf et Dorje pour toute l'aide qu'ils m'ont fournie et sans qui je n'aurai jamais fini ce mod.
La section compagnon n'étant pas très remplie, je vais faire en sorte que ce mod arrive sur wiwiland sous peu. ;)

Modifié par BowserSK, 09 août 2009 - 23:11.





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

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