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 23/11/2024 20:53:26
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 |
Télépathe Novice Messages: 19 |
Bonjour à tous
Existe-t-il une fonction qui permet à un NPC de lancer un objet, style bombe incendiaire , sur une porte, par exemple . Merci d'avance |
Revenir en haut | |
SiDi_Revolucion Ecuyer Messages: 48 Localisation: Mince, un trou de mémoire! C'est bien en Espagne la Bretagne? |
Je pense que c'est possible de faire cà.
Je vais dire quoi faire à nos aimbles scripteurs pro. Dans le On-click de la porte, il s'agit de vérifier que le PJ possède la bombe incendiaire. puis, et c'est là que j'ai besoin d'une GROSSE aide, lancer un dialogue si la bombe est présente: Premier choix: lancer la bombe Second choix : ouvrir la porte inteligemment sans tout détruire Dernier choix: partir comme un ... Minsc ( pour rester poli) Alors il faudrait ensuite que le choix lancer la bombe imite le lancer de l'objet Bombe incendiaire et détruise la porte. Sinon en plus simple tu peux simplement lancer la bombe incendiaire à côté de la porte qui sera alors détruite. Et oui, la bombe incendiaire est considérée comme un sort à effet de zone. A moins bien sur, que la porte soit en intrigue. Allez bonne chance aux scripteurs! Ciao _________________ SiDi_Revolucion |
Revenir en haut | |
SiDi_Revolucion Ecuyer Messages: 48 Localisation: Mince, un trou de mémoire! C'est bien en Espagne la Bretagne? |
A ... mince j'avais pas vu qu'il s'agissait d'un NPC.
Bon je retire tout ce que j'ai dit, mais ca pourra servir alors je laisse. Donc, LAXAN AU SECOURS ! Ciao _________________ SiDi_Revolucion |
Revenir en haut | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
Pour un NPC tout dépend de la condition qui vas faire que le perso lance la bombe.
Par exemple si c'est à l'approche d'un joueurs, tu mets un trigger sur le sol qui va déclancher un script qui va lancer une annimation sur le NPC simulant le lancer d'un objet puis 1 sec plutart, tu cré une explosion sur le porte et tu détruit la porte. Dis comme ça sa peux sembler compliquer m'est c'est pas très dur. Ce qu'il manque pour bien faire c'est le déclancheur. C'est quoi la condition ? Un dialogue ou autre ? _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Télépathe Novice Messages: 19 |
Bonjour à tous
Mes conditions sont : Si un PC passe sur le Trigger, il déclenche l'apparition du NPC qui se déplace vers un Waypoint, lance la bombe incendiaire sur la porte et repart vers un autre waypoint avant de disparaître. Je vais essayer d'inclure un effet d'explosion et que la porte soit détruite dans le script. Dès que mon lecteur CD sera réparé, je testerais et donnerais des nouvelles. |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Pardonnez-moi, mais je n'arrive pas à cerner la fonction pour lancer un objet de type bombe... Action??? de même pour l'Animation??? En épluchant l'éditeur, je n'ai rien trouvé, c'est à l'instar des sorts (ActionCastFakeSpellAtObject) ?? Merci d'avance pour vos lumières. _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
lendraste Grand Maître Chanteur du Conseil Messages: 1403 Localisation: Quelque part ailleurs |
Longbow a écrit : Hum, hum...
En utilisant ActionCastSpellAtLocation ou ActionCastSpellAtObject (je pense qu'il faut mettre le bCheat à TRUE) avec les constantes de sort parues dans HotU
Pardonnez-moi, mais je n'arrive pas à cerner la fonction pour lancer un objet de type bombe... Action??? de même pour l'Animation??? En épluchant l'éditeur, je n'ai rien trouvé, c'est à l'instar des sorts (ActionCastFakeSpellAtObject) ?? Merci d'avance pour vos lumières. 744 pour une bombe de feu (je ne connais pas la constante chaine de caractère qui lui correspond, il suffit de chercher dans nwscript.nss) 745 pour une bombe d'acide. L'effet visuel correspondant doit pouvoir être retrouvé à partir du script qui gère les effets de ces "sorts", dans x2_s3_bomb (je te laisse chercher ) _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Merci pour cette semi-clarté... ActionCastSpellAtObject(int nSpell ??...) A trouver ds le nwscript.nss ?? Une idée pour l'animation ? _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
lendraste Grand Maître Chanteur du Conseil Messages: 1403 Localisation: Quelque part ailleurs |
Longbow a écrit : Hum, hum...
Voici le script x2_s3_bomb qui est lancé par l'appel aux sort 744 et 745 :
Merci pour cette semi-clarté... ActionCastSpellAtObject(int nSpell ??...) A trouver ds le nwscript.nss ?? Une idée pour l'animation ? NWScript :
//:///////////////////////// ///////////////////// //:: Improved Grenade weapons script //:: x2_s3_bomb //:: Copyright (c) 2003 Bioware Corp. //:///////////////////////// //////////////////// /* More powerful versions of the standard grenade weapons. They do 10d6 points of damage and create an persistant AOE effect for a 5 rounds */ //:///////////////////////// //////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-08-18 //:///////////////////////// //////////////////// #include "x0_i0_spells" void main() { int nSpell = GetSpellId(); if (nSpell == 745) // acid bomb { DoGrenade(d6(10),1, VFX_IMP_ACID_L, VFX_FNF_LOS_NORMAL_30,DAMAGE_TYPE_ACID,RADIUS_SIZE_HUGE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectAreaOfEffect(AOE_PER_FOGACID), GetSpellTargetLocation(), RoundsToSeconds(5)); } else if (nSpell == 744) { DoGrenade(d6(10),1, VFX_IMP_FLAME_M, VFX_FNF_FIREBALL,DAMAGE_TYPE_FIRE,RADIUS_SIZE_HUGE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectAreaOfEffect(AOE_PER_FOGFIRE), GetSpellTargetLocation(), RoundsToSeconds(5)); } } Les effets visuels qui sont ici passé en paramètres sont utilisés dans la fonction DoGrenade pour matérialiser le résultat d'un jet d'une bombe de feu ou d'acide mais non le lancer lui-même. En effet, le lancer est entièrement géré par le moteur de jeu et le système des "projectiles" intégré au lancer des sorts. Quand on regarde les lignes du fichier spells.2da correspondant à ces deux sorts, les colonnes préfixées par "proj" définissent les caractéristique du projectile en question. En l'occurence, le "modèle" 3D du projectile est un item fort connu "it_potion_000.mdl". Donc, concrètement, si l'on veut créer une animation d'un lancer de fiole, le mieux est d'utiliser le ActionCastFakeSpellAtLocation ou le ActionCastFakeSpellAtObject avec les ID de sort adéquat (on peut utiliser les valeurs numériques par ailleurs, connaître les constantes sous formes de chaine de caractère, c'est du luxe) qui exploitera le moteur de lancer de sort (donc le système de projectile). Le script suivant fonctionne très bien : NWScript :
void main() { object oTarget=GetObjectByTag("OBJET_VISE"); object oCaster=GetFirstPC(); AssignCommand(oCaster, ClearAllActions()); AssignCommand(oCaster, ActionCastFakeSpellAtObject(744, oTarget)); } Par curiosité, j'ai cherché les noms des constantes associées aux valeurs 744 et 745 et en fait il n'y en a pas. Ce qui est compréhensible car même si cette action exploite le système de lancement de sort, il ne s'agit pas pour autant d'un sort identifié. Donc pas le choix, il faut utiliser les valeurs numériques. Tout cela signifie aussi que si l'on veux créer d'autres type de projectile de ce genre, il suffit de créer un nouveau "sort" dans le spells.2da dans lequel on peut exploiter n'importe quel fichier "mdl" modélisant un item ou un plaçable. Cela a été fait dans HotU où des Géants projètent véritablement des rochers. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Et bien merci pour ces éclaircissements lumineux. Je m'incline respecteusement et m'en retourne au sombre royaume duegar.
_________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Télépathe Novice Messages: 19 |
Bonjour à tous et merci pour vos recherches
Ayant un nouveau lecteur CD et ayant passé le weekend avec mon frère, j'ai finalement opté non pas le lancer, mais la pose d'une bombe. J'étudierais vos scripts car cela me semble intéressant pour la suite de mon module. Voici ce que j'ai fait. Je pense que cela pourrait servir à d'autres débutants. Dans le OnEnter du trigger : Code : void main()
{ object oCreature = GetEnteringObject(); object oTarget1 = GetObjectByTag ("WP_p1"); // Tag du 1eme waypoint location lWay1 = GetLocation(oTarget1); if (GetIsPC(oCreature)) { CreateObject(OBJECT_TYPE_CREATURE,"eclaireurpicte",lWay1); } DestroyObject(OBJECT_SELF); //Pour que cela ne fonctionne qu'une fois } Dans le OnSpawn du NPC (éclaireur Picte) : Code : void main() { object oBombe = GetObjectByTag("bombe"); // Tag de la bombe object oTotem = GetObjectByTag("totem"); // Tag du totem object oPicte = GetObjectByTag("eclaireurpicte"); // Tag du NPC object oTarget2 = GetNearestObjectByTag ("WP_p2"); // Tag du 2eme waypoint object oTarget3 = GetNearestObjectByTag ("WP_p3"); // Tag du 3eme waypoint object oTarget4 = GetNearestObjectByTag ("WP_p4"); // Tag du 4eme waypoint location lWay2 = GetLocation(oTarget2); location lWay3 = GetLocation(oTarget3); location lWay4 = GetLocation(oTarget4); if (GetIsObjectValid(oPicte)) { ActionMoveToLocation(lWay2, TRUE); //deplacement DelayCommand(2.0,ActionPutDownItem(oTotem)); // pose du totem de la tribu Picte DelayCommand(5.0,ActionMoveToLocation(lWay3, TRUE)); // deplacement DelayCommand(7.0,ActionPutDownItem(oBombe)) ; // pose la bombe pres de la cible DelayCommand(9.0,ActionMoveToLocation(lWay4, TRUE));// deplacement loin de la bombe DelayCommand(11.0,DestroyObject(oPicte)); // destruction du NPC pour simuler sa disparition dans l'epaisse foret } } et enfin ce morceau de script à ajouter ans le OnUnAcquireItem du module : Code : object oPicte = GetObjectByTag ("eclaireurpicte"); object oTarget2 = GetObjectByTag ("WP_p2"); object oTarget3 = GetObjectByTag ("WP_p3"); object oCible = GetObjectByTag ("Portail1"); // Tag de la porte a endommager ou à detruire object oItem = GetModuleItemLost(); location lWay2 = GetLocation(oTarget2); location lWay3 = GetLocation(oTarget3); location lCible = GetLocation(oCible); string tag = GetTag(oItem); if(tag == "Totem1") { DestroyObject(oItem); AssignCommand(oPicte,SpeakString("Retournez en enfer..!")); ActionWait(1.0); CreateObject(OBJECT_TYPE_PLACEABLE,"Totem2",lWay2); } if(tag == "Bombe") { DelayCommand(2.0,ApplyEffectAtLocation (DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION), lCible)); DelayCommand(2.1,ApplyEffectToObject (DURATION_TYPE_INSTANT,EffectDamage(DAMAGE_BONUS_2d12), oCible)); DelayCommand(2.3,ApplyEffectToObject (DURATION_TYPE_INSTANT,EffectDamage(DAMAGE_BONUS_2d12), oCible)); DelayCommand(2.0,DestroyObject(oItem)); } Voilà, j'espère que cela permettra d'aider d'autres personnes. Merci encore Longue vie à ce forum |
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