Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[SCRIPT] Comment faire disparaître une créature par téléportation ?

Répondre
Avatar du membre
Anomaly
Grand Gourou
Golem de pierre
Messages : 3283
Enregistré le : lun. 28 juin 2004, 01:12
Localisation : Somme (Picardie)
Contact :
Statut : Hors ligne

[SCRIPT] Comment faire disparaître une créature par téléportation ?

.

Message par Anomaly »

Bonjour,

Ayant des bugs réellement pénibles et surtout aléatoires avec ça, je voudrais savoir si déjà je procède bien pour faire l'animation de départ de quelqu'un par téléportation (et sa disparition du jeu jusqu'à recréation après écoulement d'un compte à rebours).

Jusque là je faisais :

Code : Tout sélectionner

ForceSpell(Myself, WIZARD_DIMENSION_DOOR)
CreateVisualEffectObject("SPDIMNDR", Myself)
DestroySelf()
Mais j'ai vu d'autres codes qui utilise plutôt le sort DRYAD_TELEPORT ? Est-ce mieux ? Pareil ? Moins bien ?

Y'a-t-il un moyen d'obtenir automatiquement le sort d'animation de la téléportation, comme l'animation "inverse" obtenue par CreateCreatureDoor() ?

Est-ce que le DestroySelf() est indispensable ? Si je ne l'utilise pas, est-ce que la créature continue à exister (bien qu'on ne la voit plus) ? Si oui, où se trouve-t-elle ?

Merci d'avance :)
Administrateur en charge de la technique et de la rubrique Neverwinter Nights - Modérateur du Bazar de l'Aventurier et de Baldur's Gate Enhanced Edition
Sous Nain
Statut : Hors ligne
.

Message par Sous Nain »

Plusieurs choses :

En ce qui concerne ton code initial :

Code : Tout sélectionner

ForceSpell(Myself, WIZARD_DIMENSION_DOOR)
CreateVisualEffectObject("SPDIMNDR", Myself)
DestroySelf()
Ici les deux premières lignes font grosso-modo la même chose :

- la première fait lancer le sort de téléportation sur soi-même, et donc fait juste apparaître l'animation de la porte dimensionnelle
- la deuxième fait évidement l'animation

Cela dit, ça devrait marcher, il me semble... donc je ne comprends pas bien quel genre de bug tu peux avoir avec ça.



Le sort DRYAD_TELEPORT joue à la fois l'animation de téléportation et détruit la créature, c'est donc une bonne solution pour faire disparaître n'importe quoi en une ligne de code. Auquel cas, un DestroySelf() est inutile.


Y'a-t-il un moyen d'obtenir automatiquement le sort d'animation de la téléportation, comme l'animation "inverse" obtenue par CreateCreatureDoor() ?
Je ne crois pas qu'il y ait de commande de destruction de créature avec l'animation de la téléportation, si c'est bien ce que tu veux dire.
Avatar du membre
Anomaly
Grand Gourou
Golem de pierre
Messages : 3283
Enregistré le : lun. 28 juin 2004, 01:12
Localisation : Somme (Picardie)
Contact :
Statut : Hors ligne
.

Message par Anomaly »

Encore une fois, tu me sauves, Sous-Nain ! Merci à toi, tu m'as aidé à comprendre et maintenant mon code fonctionne parfaitement. :)

En fait, tout buggait à cause de mon DestroySelf(). Si je faisais

Code : Tout sélectionner

ForceSpell(Myself, WIZARD_DIMENSION_DOOR)
DestroySelf()
Le perso lance son sort et est détruit avant qu'apparaisse l'animation de la porte dimensionnelle. C'est pour cette raison uniquement que j'avais lancé l'animation manuellement. Ça marchait la plupart du temps... mais parfois il arrivait que le DestroySelf() ne se fasse pas et que le perso reste sur l'écran (c'était mon bug).

Le même phénomène se produisait si je faisais

Code : Tout sélectionner

ForceSpell(Myself, DRYAD_TELEPORT)
DestroySelf()
Dans ce cas, la disparition du perso est quasi instantanée, sans animation.

Sans le DestroySelf(), le WIZARD_DIMENSION_DOOR fait bien apparaître l'animation de la porte, mais le perso ne s'en va pas. Par contre, DRYAD_TELEPORT fait à la fois l'animation et la disparition du perso, ce qui est exactement ce que je voulais.

Il fallait donc utiliser ForceSpell(Myself, DRYAD_TELEPORT) tout seul.

Merci encore pour ta réponse, tu m'as retiré une sacré épine du pied. :)
Administrateur en charge de la technique et de la rubrique Neverwinter Nights - Modérateur du Bazar de l'Aventurier et de Baldur's Gate Enhanced Edition
Répondre

Retourner vers « Scripts »

Qui est en ligne

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