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 10/11/2024 19:18:29
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
EVIl Novice Messages: 13 |
bonjour bonjour
Voilà je cherche à créer une aura d'électricité autour d'un pj, apres activation d'un objet qui ne blesserais pas le pj , mais les creatures au tour |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Pourrais-tu préciser ce que tu entends réellement par aura d'électricité ? As-tu un effet visuel précis en tête ou juste des dégats de type électrique... _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
EVIl Novice Messages: 13 |
heu vi bien sur je parle des auras des creatues ( pour etre plus pricis Caractéristiques du monstre ) ce que je cherche a en faire c une aura pour pj
|
Revenir en haut | |
Gorkk Site Admin Messages: 1768 Localisation: Ici et ailleurs |
Longbow a écrit : en tête ou juste des dégats de type électrique... Et donc par rapport à cette question ? _________________ Sacred - FR - La Bibliothèque de Neverwinter - Titan Quest - FR Bloqué dans SoU ? La solution n'est pas loin... HotU vous pose des problèmes ? Une seule solution |
Revenir en haut | |
Tzeentsh Ecuyer Messages: 41 |
Tu appliques un effect : EffectAreaOfEffect(). En gros cela te créera une zone circulaire avec pour centre le pj. Cette aire d'effet peut utiliser plusieurs scripts : dans le OnEnter, le OnExit et le OnHeartBeat. Dans ton cas il faudrait utiliser un script dans le OnHeartBeat qui infligerait des dommages électriques à toutes les créatures présentes dans l'air d'effet.
|
Revenir en haut | |
EVIl Novice Messages: 13 |
[quote="Gorkk"]
Longbow a écrit : en tête ou juste des dégats de type électrique... oups dsl j'etait dans les nuage
pour repondre correctement je connais pas trop les effet visuel donc , il serais possible d"en trouvé un qui représente l'électrique et oui je veut aussi les degats Citation : Tu appliques un effect : EffectAreaOfEffect(). En gros cela te créera une zone circulaire avec pour centre le pj. Cette aire d'effet peut utiliser plusieurs scripts : dans le OnEnter, le OnExit et le OnHeartBeat. Dans ton cas il faudrait utiliser un script dans le OnHeartBeat qui infligerait des dommages électriques à toutes les créatures présentes dans l'air d'effet.] mais bon la je suis totalement dépassé |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Pour une première tentative voici la synthaxe... A placer par exemple dans le OnEnter d'un trigger NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. Par contre, je ne vois pas de possibilité d'immunité pour le joueur qui trinquera comme les autres... C'est pourquoi je cherche dans une autre direction... _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
voila le fruit de mes expériences: 1. Tu places un objet invisible (peu importe où). 2. Tu lui colles le script suivant dans son HeartBeat NWScript :
void main() { object oTest = GetFirstObjectInArea(); // au bout de 15 HBeat, l'effet disparaitra... if (GetLocalInt(OBJECT_SELF, "eclairtest") <= 15) { SetLocalInt(OBJECT_SELF,"eclairtest",GetLocalInt(OBJECT_SELF,"eclairtest") + 1); while(GetIsObjectValid(oTest)==TRUE) { if( (GetIsPC(oTest) == FALSE) && (GetDistanceBetween(OBJECT_SELF, oTest)<= 10.0)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(5, DAMAGE_TYPE_ELECTRICAL), oTest); ApplyEffectToObject( DURATION_TYPE_TEMPORARY,EffectBeam(VFX_BEAM_LIGHTNING,OBJECT_SELF ,BODY_NODE_CHEST,FALSE),oTest , 4.0); } oTest = GetNextObjectInArea(); } } else {DestroyObject(OBJECT_SELF);} } 3. Bouton droit sur l'objet... Ajouter dans la palette avec dans son onglet Avancées, ResRef Blueprint :"eclairbase". 4. Tu supprimes l'objet qui t'as servis de base.. 5. Pour le test, j'ai crée un trigger avec ce script dans le OnEnter... NWScript :
void main() { object oPC = GetEnteringObject(); if (GetIsPC(oPC)) { location lLoc = GetLocation(oPC); string sRef = "eclairbase"; // petit effet pour le plaisir... ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_LIGHTNING_M ),lLoc); CreateObject(OBJECT_TYPE_PLACEABLE, sRef, lLoc, TRUE); DestroyObject(OBJECT_SELF,1.0); } } Ca fonctionne et ca attaque même les objets autour du Joueur( qui n'est pas touché...) Rq: à la place de l'effet Beam, on peut placer l'effet d'intro sur chaque victime... à toi de voir... ENJOY _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
EVIl Novice Messages: 13 |
merci je vais testé ca apres le taff et je te tien au courant
|
Revenir en haut | |
Age Novice Messages: 14 |
Voici la syntaxe d'AreaOfEffect :
NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. Donc si tu desires appliquer une zone d'effet et que tu ne specifies pas de script ceux par defaut seront utilisés. Pour connaitre les scripts par defaut, tu dois regarder le fichier vfx_persistent.2da, qui repertorie les aoe du jeu. Il en existe une qui est utilisée par la capacité aura d'electricité dont voici le code : NWScript :
//::////////////////////////// ///////////////////// //:: Aura of Electricity //:: NW_S1_AuraElec.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////// //////////////////// /* Prolonged exposure to the aura of the creature causes electrical damage to all within the aura. */ //::////////////////////////// //////////////////// //:: Created By: Preston Watamaniuk //:: Created On: May 25, 2001 //::////////////////////////// //////////////////// void main() { //Set and apply AOE object effect eAOE = EffectAreaOfEffect(AOE_MOB_ELECTRICAL); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, HoursToSeconds(100)); } Ici il ne defenie pas de script car il utilise ceux par defaut qui sont d'apres le fichier cité si dessus : rien pour le onExit et rien pour le onEnter; nw_s1_auraElecC pour le OnHeartBeat. Ce qui va donc ce passer c'est : rien lorsque quelqu'un entre ou sort de la zone; et ce que decrit le script nw_s1_auraElecC toute les 6 secondes. Maintenant de 2 choses : -soit ce script fait ce que tu desires et dans ce cas la, tu mets le script suivant dans l'evenement a partir duquel tu desires qu'il y ai une aura : NWScript : $
void main() { //oTarget represente le perso auquel tu veux donner l'aura object oTarget = ??; // fDur represente le temps que durera l'effet float fDur = ??; effect eAOE = EffectAreaOfEffect(AOE_MOB_ELECTRICAL); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, otarget, fDur); } -soit le script ne te plait pas et te en crées un autre, eventuellement basé sur celui par defaut, et au moment ou tu desires appliquer l'effet tu places le script suivant presque similaire au dernier : NWScript : void main() { //oTarget represente le perso auquel tu veux donner l'aura object oTarget = ??; // fDur represente le temps que durera l'effet float fDur = ??; // ici "ton_script" est le nom de ton nouveau script effect eAOE = EffectAreaOfEffect(AOE_MOB_ELECTRICAL, "", "ton_script",""); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, otarget, fDur); } |
Revenir en haut | |
EVIl Novice Messages: 13 |
Merci @ Longbow ça marche super pour les dégâts, mais l"effet autour du perso je le vois pas
Age j'ai pas encore trop u le temps d’essaye, mais le problème va sûrement être le mm non ? sauf pour l'aura si je comprend bien le script Reste encore le problème que l’auras soit maintenant activé par une ‘bague exemple’ alors la question est que ça serais réalisable ? |
Revenir en haut | |
Age Novice Messages: 14 |
Dans le cas d'une aoe, l'effet visuel est déjà pris en compte au moment ou tu appliques l'effet aoe. Dans le cas de la méthode de Longbow, il te faut ajouter l'effet visuel toi même. Si je reprend son script ça donne :
NWScript :
void main() { object oPC = GetEnteringObject(); if (GetIsPC(oPC)) { location lLoc = GetLocation(oPC); string sRef = "eclairbase"; // petit effet pour le plaisir... ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_LIGHTNING_M ),lLoc); // effet lumineux de l'aura, j'ai choisis l'effet d'aura electrique, mais il y en a d'autre effect eAura = EffectVisualEffect(SPELLABILITY_AURA_ELECTRICITY); //remplace les ?? par le temps en seconde pendant lequel tu desires voir l'aura, // dans son exemple Longbow calcule 15 HeartBeat, donc ce sera en seconde 15 * 6 sec ApplyEffectToObject(DURATION_TYPE_TEMPORARY , eAura, oPC, ??); CreateObject(OBJECT_TYPE_PLACEABLE, sRef, lLoc, TRUE); DestroyObject(OBJECT_SELF,1.0); } } Maintenant reste la question du moment ou tu veux appliquer l'aura. Si tu veux le faire a partir d'un anneau, il te faux utiliser le pouvoir unique d'un objet. |
Revenir en haut | |
EVIl Novice Messages: 13 |
merci age
J’ai testé, mais voila encore une foi je vois pas l'auras donc impossible de dire quel soit encore active Donc j’ai un peut cherché j’arrive a ça donc l’auras visible NWScript :
void main() { object oPC = GetEnteringObject(); if (GetIsPC(oPC)) { location lLoc = GetLocation(oPC); string sRef = "eclairbase"; // petit effet pour le plaisir... ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_LIGHTNING_M ),lLoc); // effet lumineux de l'aura, j'ai choisis l'effet d'aura electrique, mais il y en a d'autre effect eAOE = EffectAreaOfEffect(AOE_MOB_ELECTRICAL, "", "test1",""); //remplace les ?? par le temps en seconde pendant lequel tu desires voir l'aura, // dans son exemple Longbow calcule 15 HeartBeat, donc ce sera en seconde 15 * 6 sec ApplyEffectToObject(DURATION_TYPE_TEMPORARY , eAOE, oPC, 100.0); CreateObject(OBJECT_TYPE_PLACEABLE, sRef, lLoc, TRUE); DestroyObject(OBJECT_SELF,1.0); } } Bon si l'aura tue une créature le PJ n'as pas d'xp je vois pas non plus les dommage que l'électricité fait (oui je le sais car c moi qui ais mis les dmgs, mais je me met a la place du PJ qui lui ne le sais pas) éternel question est ce possible de faire en sorte que le PJ gagne l'xp de la créature et voient les dmg |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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