La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 22/11/2024 23:53:02
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Inquisiteur-Loh Acolyte Messages: 22 |
Hello,
Je me heurte à un problème avec un script tout bête. Ce que le script doit faire : Quand la créature propriétaire du script subit au moins un point de dégât, elle explose (en lançant le sort de "boule de feu" centré sur elle même avec un NLS de 5) Le script réalisé : NWScript :
//Terro-gobelin, version de test void main() { object oTarget; oTarget = OBJECT_SELF; ActionCastSpellAtObject(SPELL_FIREBALL, oTarget, METAMAGIC_ANY, TRUE, 5, PROJECTILE_PATH_TYPE_DEFAULT, TRUE); ActionSpeakString("BOOOOOMMMMM !!!"); } Le problème : Le gobelin n'explose pas quand je le tabasse Attention, le gobelin ne doit pas lancer le sort de boule de feu sur l'attaquant, mais bien sur lui même (genre de bestiole à dégommer à l'arc et si possible quand il est au milieu de ses petits copains). Suppositions : Un monstre ne peut pas se cibler avec un sort hostile ? Certains éléments du script par défaut à laisser ? (je dois oublier plein de trucs...) Utiliser plutot un OnUserDefined ? Je me met le doigt dans l'oeil ? Merci d'avance pour vos indices _________________ Inquisiteur Loh |
Revenir en haut | |
Djezebel Héros Messages: 252 |
Essayes plutôt :
NWScript :
void main() { ActionSpeakString("BOOOOOMMMMM !!!"); ActionCastSpellAtObject(SPELL_FIREBALL, OBJECT_SELF, METAMAGIC_ANY, TRUE, 5, PROJECTILE_PATH_TYPE_DEFAULT, TRUE); ActionDoCommand(DestroyObject(OBJECT_SELF)); } Essaye de mettre ça sur le "onDamage" de la créature et normalement ça devrait fonctionner. Est-ce que ton gobelin dit au moins le BOOOOM ? Sinon il faudra passer par les effets : Tu mets un effet de domages, un effet visuel et le tour est joué. |
Revenir en haut | |
Inquisiteur-Loh Acolyte Messages: 22 |
Hello,
Le gobelin dit son "BOOOOMMMM" avec ta version. Mais il a toujours autant d'efficacité qu'un pétard mouillé... lol Citation : Sinon il faudra passer par les effets :
Je vais voir ce que je peux bricoler (un effet visuel ca va, mais l'associer à des dégâts je ne sais pas si j'en serais capable). Je vous post mon prochain script si il marche (ou si il ne marche pas pour que vous m'aidiez niarf niarf niarf).
Tu mets un effet de domages, un effet visuel et le tour est joué. Si ca se trouve je l'ai frappé trop fort ce gobelin... Merci à toi _________________ Inquisiteur Loh |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
lol, tu mets un ApplyEffectToObject pour ton effet de Fire Ball, et un autre ApplyEffectToObject qui cette fois est pour le tué (EffectDeath() je crois)... à la place des deux fonctions en dessous du "BOOM".
BK _________________ [http] |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Bonjour bonjour,
Cela marche dans le 1, peut être que dans le 2 aussi. Si non il ne doit y avoir que quelques modifications. NWScript : #include "NW_I0_SPELLS" void main() { //Declare major variables object oCaster = OBJECT_SELF; int nMetaMagic = GetMetaMagicFeat(); int nDamage; float fDelay; effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eDam; location lTarget = GetLocation(OBJECT_SELF); //Applique l'effet visuel de l'explosion ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); //Prend la premiere cible dans la zone d'explosion (sphere) object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); while (GetIsObjectValid(oTarget)) { SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL)); fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) { nDamage = GetReflexAdjustedDamage(50, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE); eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); if(nDamage > 0) { DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); //Cet effet visuel n'est pas celui de l'explosion mais juste des flammes la cible DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); } } //Selectionne la prochaine cible dans la zone d'explosion. oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR); } } _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum