Page 1 sur 1

[SCRIPT] Comment créer un clone de Charname en PNJ ?

Posté : mer. 29 mai 2013, 10:42
par Cocrane
Est il possible d'avoir un PNJ à l'image du Charname via un script?
J'aurai besoin de modifier son équipement ensuite.

Cocrane

Posté : mer. 29 mai 2013, 11:41
par Freddy_Gwendo
Lorsque l'on retourne à Athkatla après s'être échappé de Spellhold, une rencontre aléatoire nous oppose à un "double" du groupe.

Il faudrait retrouver les scripts la concernant pour trouver la réponse à ta question. Malheureusement, je ne me souviens plus de leur nom...

Posté : mer. 29 mai 2013, 12:02
par Haplo74
Le mod SCSii fournit aussi dans le combat contre Irenicus à l'asile une copie conforme des personnages, équipement compris.
Il faudrait retrouver comment est codé:
~SCSII/SETUP-SCSII.TP2~ #4 #7078 // Combat contre Irenicus a l'asile ameliore: v21

Haplo74

Posté : jeu. 30 mai 2013, 03:36
par deratiseur
Pour ce qui est des doubles du groupe dans Spellhold, c'est une phase sandard du jeu, ce n'est pas SCS qui le rajoute. J'ai cherché comment faire, et j'ai eu une réponse ici.

Posté : jeu. 30 mai 2013, 07:43
par Freddy_Gwendo
deratiseur a écrit :Pour ce qui est des doubles du groupe dans Spellhold, c'est une phase sandard du jeu, ce n'est pas SCS qui le rajoute. J'ai cherché comment faire, et j'ai eu une réponse ici.
Arghh ! Grillé par derat ! ;)

Tant pis, je poste quand même le fruit de mes recherches.

Effectivement, la création de clones est initialisée dans le script PPJON.BCS avec l'action CreateCreatureObjectCopy() :

Code : Tout sélectionner

[color="#009900"]IF[/color]
  [color="#0033FF"]See[/color]([color="#9900cc"]NearestEnemyOf[/color]([color="#0033FF"]Myself[/color]))
  [color="#0033FF"]Global[/color]("AsylumPlot","GLOBAL",[color="#FF0000"]54[/color])
  [color="#0033FF"]Global[/color]("Sim","[color="#0033FF"]LOCALS[/color]",[color="#FF0000"]0[/color])
[color="#009900"]THEN[/color]
  RESPONSE #[color="#FF0000"]100[/color]
    [color="#0033FF"]CloseDoor[/color]("Door11")
    [color="#0033FF"]Lock[/color]("Door11")
    [color="#0033FF"]ForceSpell[/color]([color="#0033FF"]Myself[/color],[color="#0033FF"]DO_NOTHING[/color])
    [color="#0033FF"]DisplayString[/color]([color="#0033FF"]Myself[/color],[color="#FF0000"]48812[/color]) // Clones

// [color="#00FFFF"]Début de la création des clones[/color]
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player1[/color])
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player2[/color])
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player3[/color])
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player4[/color])
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player5[/color])
    [color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player6[/color])
    [color="#0033FF"]Wait[/color]([color="#FF0000"]2[/color])
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player1[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player2[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player3[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player4[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player5[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
    [color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player6[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // Calahan
// [color="#00FFFF"]Fin de la création des clônes[/color]

    [color="#0033FF"]MoveToPoint[/color]([[color="#FF0000"]937.976[/color]])
    [color="#0033FF"]SetGlobal[/color]("Sim","[color="#0033FF"]LOCALS[/color]",[color="#FF0000"]1[/color])
[color="#009900"]END[/color]

Le code employé par SSCII est beaucoup plus pointu : il effectue la même opération par un sort et gère l'I.A. des clones.
Mais je te laisse le consulter : il se trouve dans clone.tph du répertoire misc.

Posté : jeu. 30 mai 2013, 10:05
par Cocrane
Je vous remercie pour l'ensemble de vos réponses. ;)

C'est donc faisable! Ca me plait bien comme réponse! :whistle3:

Je vois que l'on peut créer le clone avec "CreateVisualEffectObject" et je suppose que ce mot clé "CreateCreatureObjectCopy" gère l'équipement?
Si je veux gérer un équipement et un fichier de dialogue particulier comment dois je faire?
Le clone a t'il le même portrait?

Cocrane

Posté : jeu. 30 mai 2013, 11:41
par Armand
De ce qu'il me semble me souvenir ça gère l'équipement de base mais pas l'actuel de la "cible" et de ce que semble indiqué iesdp ça gère l'animation actuelle de la cible par contre. Donc de base oui il a le même portrait.

Si tu veux gérer un dialogue spécifique ou autre le mieux est de créer un cre dédié à cela mais pour cela il faut connaitre le cre de charname et ça me semble délicat. La solution la plus efficace selon moi c'est de créer un fichier cre selon tes besoins puis de changer l'animation via un :

Code : Tout sélectionner

ChangeAnimation("Player1")
En remplaçant l'animation de fichier dédié par celui de charname. Mais j’avoue ne pas être totalement sur de la manip...

Posté : ven. 31 mai 2013, 12:01
par Freddy_Gwendo
Cocrane a écrit :Je vois que l'on peut créer le clone avec "CreateVisualEffectObject" et je suppose que ce mot clé "CreateCreatureObjectCopy" gère l'équipement?
Non, c'est l'action CreateCreatureObjectCopy() qui crée le clône. CreateVisualEffectObject() affiche un effet visuel sur la cible.

Si je reprends le code précédent, ça donne ceci :

Code : Tout sélectionner

[color="#0033FF"]CreateVisualEffectObject[/color]("SPPROIMG",[color="#0033FF"]Player1[/color]) // [color="#FFFF00"]Effet visuel appliqué sur Player 1[/color]
[color="#0033FF"]Wait[/color]([color="#FF0000"]2[/color])
[color="#0033FF"]CreateCreatureObjectCopy[/color]("jclone01",[color="#0033FF"]Player1[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color],[color="#FF0000"]0[/color]) // [color="#FFFF00"]Clônage de Player1[/color]
Quant à l'équipement, si mes souvenirs sont exacts, je crains qu'il ne recopie pas les équipements propres à chaque cible sur son clône. :$

Posté : ven. 31 mai 2013, 12:07
par Haplo74
Freddy_Gwendo a écrit : Quant à l'équipement, si mes souvenirs sont exacts, je crains qu'il ne recopie pas les équipements propres à chaque cible sur son clône. :$
Ben, il faut regarder comment fait SCSii. Car à l'asile, si tu as un perso avec Furie Céleste d'une main et Sanshudokku de l'autre par exemple, son clone a les mêmes et tu morfles sévère (tout doit être flaggué comme non-dropable évidemment).

Haplo74

Posté : mar. 04 juin 2013, 19:23
par Cocrane
OK. Je ferai des tests lorsque je commencerai mon mod.

Cocrane