Page 1 sur 1

[SCRIPT] attribuer une death variable à une créature n'en ayant pas

Posté : mer. 26 juil. 2017, 18:52
par Pélagie
Tout est dans le titre :)

Est-t-il possible d'attribuer une death variable à une créature déjà existante dans le jeu?
Peut-être via le tp2?
J'en aurais besoin pour déclencher une réaction chez KupGup (dialogue déclenché entre le joueur et KupGup via script) à la vue d'une créature en particulier.
Or cette créature générique (encore un maudit kobold) n'a ni death variable, ni DLG.

Merci d'avance.

Posté : mer. 26 juil. 2017, 19:20
par Pélagie
hum...
Je n'y avais pas pensé, mais je pourrais essayer avec la race en fait....

IF Detect([0.0.KOBOLD])

Je teste et je viens partager le résultat XD

Posté : mer. 26 juil. 2017, 19:27
par Freddy_Gwendo
Facile ! (En lisant le titre, j'ai craint un moment beaucoup plus compliqué ;) ).

Code : Tout sélectionner

COPY_EXISTING ~tacreature.cre~ ~override~
    WRITE_ASCII DEATHVAR ~tonscript~ #8
    WRITE_ASCII DIALOG ~tondialogue~ #8
BUT_ONLY
Notes :
  • DEATHVAR est un mot clé WeiDU qui correspond à l'offset 0x280.
  • DIALOG est un mot clé WeiDU qui correspond à l'offset 0x2cc.
  • tonscript et tondialogue ne doivent pas comporter plus de 8 caractères.
  • :!: si d'autres mods font la même chose que toi, selon l'ordre d'installation, soit tu écraseras leurs modifs, soit ce sont eux qui le feront.

Posté : mer. 26 juil. 2017, 19:27
par Pélagie
Bon, en effet ça marche :$
J'utilise souvent cette méthode dans les scripts de combat, je ne sais pas pourquoi je n'y avais pas pensé dans le cadre d'un dialogue :gign:
Je laisse quand même le post, au cas où ça servirait à quelqu'un.

Posté : mer. 26 juil. 2017, 19:31
par Pélagie
Freddy_Gwendo a écrit :Facile ! (En lisant le titre, j'ai craint un moment beaucoup plus compliqué ;) ).

Code : Tout sélectionner

COPY_EXISTING ~tacreature.cre~ ~override~
    WRITE_ASCII DEATHVAR ~tonscript~ #8
    WRITE_ASCII DIALOG ~tondialogue~ #8
BUT_ONLY
Notes :
  • DEATHVAR est un mot clé WeiDU qui correspond à l'offset 0x280.
  • DIALOG est un mot clé WeiDU qui correspond à l'offset 0x2cc.
  • tonscript et tondialogue ne doivent pas comporter plus de 8 caractères.
  • :!: si d'autres mods font la même chose que toi, selon l'ordre d'installation, soit tu écraseras leurs modifs, soit ce sont eux qui le feront.
Super, je ne connaissais pas cette tactique!
En fait je ne connais pas grand chose au TP2, il faudrait que je m'avale le tuto weidu à ce sujet.
Merci, je garde cette info sous le coude.
Dans la situation précise j'ai réussi à contourner le problème (puisque le dial doit se déclencher dès qu'on croise le premier kobold, donc c'est faisable avec "detect [kobold]"). Mais cela ne le sera pas dans tous les cas. Donc c'est bon à savoir :)
Merci :k:

Posté : sam. 29 juil. 2017, 12:11
par Isaya
En principe scriptname / deathvariable font jusqu'à 32 caractères (cf. IESDP). Mais tous ne sont pas utilisables car il faut laisser la place pour ajouter SPRITE_IS_DEAD dans les variables (elles aussi limitées à 32 caractères) pour que le jeu puisse reconnaître qu'un personnage est mort. La limite est donc de 18 caractères en principe.
BG utilisait déjà des scriptname supérieure à 8 caractères pour certains fichiers CRE.

Du coup tu peux remplacer #8 par #18 pour DEATHVAR.

Posté : sam. 29 juil. 2017, 12:37
par Freddy_Gwendo
Effectivement, j'avais oublié. :$

Mais je conseille d'attribuer la même valeur au ScriptName et au Dialogue d'une créature pour ne pas s'emmêler les pinceaux et retrouver ses petits quand on crée des dizaines de fichiers CRE, d'où ma limitation à 8 caractères. ;)