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 22:58:37
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 |
LtSich Acolyte Messages: 37 |
Bonjour, je débute dans les codes, je n'en suis vraiment qu'a mes tout début... Je recherche un moyen de me faire soigner par un prêtre, ou qu'il me donne des bénédictions etc... J'ai un script, le début fonctionne mais le sort lui ne passe pas.. Si vous avez une idée je suis prenneur...
Code : void main()
{ SpeakString("test script de soins"); ActionCastSpellAtObject ( SPELL_CURE_CRITICAL_WOUNDS, GetPCSpeaker()); } le speakstring fonctionne, mais pas la suite... Je dois me planter quelque part.. Mais où ? Au passage j'ai remarqué qu'apparemment certains script de la campagne n'était pas éditable... Notamment ceux des mercenaires qui m'intérrèsse bcp.. Et aussi, est-il possible d'avoir une liste des "Get" ? Getobjet, getpcspeaker, etc etc... Désolé de vous poser ces questions qui vous sembles simple mais je débutte et j'ai un peu de mal à décoller... Merci à vous. LtSich |
Revenir en haut | |
Ak Darkster Grand Maître Chanteur du Conseil Messages: 1354 Localisation: canada |
Euh, je m'y connais pas trop en NWScripts, mais l'espace avant SPELL, ça pourrait pas être ça, le problème?
_________________ On doit tous mourir un jour... mais pour moi, c'est pas demain la veille, alors sort tes armes sale dragon!!! |
Revenir en haut | |
LtSich Acolyte Messages: 37 |
Code :
void main()
{ object oPC = GetPCSpeaker(); ActionCastFakeSpellAtObject(SPELL_GREATER_RESTORATION, oPC); } si je mets ça (au dessus), ça ne marche pas... si je mets ça (en dessous), ça passe.. Code : void main()
{ object oPC = GetPCSpeaker(); GiveGoldToCreature(oPC, 100); } Pourquoi ça passe pour l'argent et pas pour le spell ? Et evidemment j'ai pareil avec henchman... Je ne vois pas où peux être l'erreur dans mon code... help... LtSich |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
(Mets des balises [ code] et [ /code] quand tu mets du code c plus clair)
Si tu utilises ActionCastFakeSpell ça risque pas de fonctionner : comme son nom l'indique ActionCastFAKESpell lance un FAUX sort, juste l'effet visuel et sonore associé au sort. Pour le script à proprement parler, il existe qque part dans le jeu, je sais plus comment il s'appelle, mais je te remets ça : Code : void FakeRestore(object oTarget);
void main() { // les déclarations ci dessous définissent les objets à soigner object oPC = GetPCSpeaker(); object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC); object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC); object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oPC); object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED,oPC); object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC); ActionPauseConversation(); ActionCastFakeSpellAtObject(SPELL_GREATER_RESTORATION, OBJECT_SELF); ActionDoCommand(FakeRestore(oPC)); if(GetIsObjectValid(oHenchman)) { ActionDoCommand(FakeRestore(oHenchman)); // Vérifie s'il a une potion de restoration critique sur lui, sinon, le crée. if (!GetIsObjectValid(GetItemPossessedBy(oHenchman,"NW_IT_MPOTION003"))) { CreateItemOnObject("NW_IT_MPOTION003",oHenchman,3); } } if(GetIsObjectValid(oAnimal)) { ActionDoCommand(FakeRestore(oAnimal)); } if(GetIsObjectValid(oFamiliar)) { ActionDoCommand(FakeRestore(oFamiliar)); } if(GetIsObjectValid(oDominated)) { ActionDoCommand(FakeRestore(oDominated)); } if(GetIsObjectValid(oSummoned)) { ActionDoCommand(FakeRestore(oSummoned)); } ActionResumeConversation(); } void FakeRestore(object oTarget) { //définition des effets négatifs à analyser effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION_GREATER); effect eBad = GetFirstEffect(oTarget); //Cherche les effets négatifs while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || GetEffectType(eBad) == EFFECT_TYPE_DEAF || GetEffectType(eBad) == EFFECT_TYPE_CURSE || GetEffectType(eBad) == EFFECT_TYPE_DISEASE || GetEffectType(eBad) == EFFECT_TYPE_POISON || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) { //Et annulation de ceux-ci. RemoveEffect(oTarget, eBad); } eBad = GetNextEffect(oTarget); } if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD) { //Applique les effets int nHeal = GetMaxHitPoints(oTarget) - GetCurrentHitPoints(oTarget); effect eHeal = EffectHeal(nHeal); if (nHeal > 0) ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); } ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget); } Voilà, ça correspond à peu près au script d'Aribeth dans la campagne officielle du jeu. Bye ! _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
LtSich Acolyte Messages: 37 |
ça fonctionne en effet. Il est juste dommage que je ne sache pas pourquoi mon script ne fonctionnait pas... Pis que ce n'est pas moi qui est écrit le code ce qui fait que je ne sais pas trop pourquoi ça marche, mais je vais chercher. Merci bcp en tout cas, ça va bien me dépanner.
LtSich |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
Ak Darkster> l'espace est ignoré.
pour la liste des fonctions ainsi que ce qu'elles font tu as en anglais le Lexicon (qui doit sûrement être traduit pas quelqu'un ...) http://www.reapers.org/nwn/reference/ sinon, une question bête, est ce que le prêtre avait le sort ? car avec les varaibles par défaut de ta fonction, il faut que le prêtre puisse lancer le sort pour qu'il le fasse ! si tu veux absolument qu'il ne fasse que lancer un sort, essaye ça : Code : void main() { object oPC = GetPCSpeaker(); ActionCastSpellAtObject(SPELL_GREATER_RESTORATION, oPC, METAMAGIC_ANY, TRUE); } Dernière édition par Wololo le 11/05/2003 23:38:21; édité 1 fois
|
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Là n'est pas la question LtSich : ce script est dans son ensemble assez complexe, donc regarde le et de proche en proche et par imitation tu pigeras comment il fonctionne.
Pour en revenir au CastFakeSpell, je redis ce que j'ai déjà dit : cette commande permet d'assigner un FAUX effet magique : seuls les éléments visuels et sonores sont présents et pas les effets correspondants au sort. Donc je crois que le pnj ait ou n'ait pas sort ne change rien à l'affaire. Le PJ a l'impression que le pnj lance un sort (il incante, il lève les bras etc.) mais il n'y a aucun effet, juste du visuel. C'est pour faire joli _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
tu as raison, j'ai corrigé le code !
Mais la premier code posté par LtSich n'avait pas de Fake ! |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
LtSich a écrit : Et aussi, est-il possible d'avoir une liste des "Get" ? Getobjet, getpcspeaker, etc etc... Pour ça rien de plus facile : dans l'éditeur de script, tape "Get" dans la zone de texte en haut à droite et il va te sortir toutes les commandes contenant "get" (c'est très pratique pour trouver ce qui nous intéresse).
A part ça, pour ton premier script qui ne se lançait pas, ça doit être un problème de syntaxe, tu n'as pas mis tous les paramètres dans la ligne de commande. Bon, normalement on y est pas obligés (c'est sensé se faire tout seul ), mais je te conseille de mettre les paramètres par défaut plutôt que de les zapper, ça n'en marchera que mieux... (pour voir les paramètres possibles pour une commande, tape la commande dans la ligne de texte en haut et/ou sélectionne la commande dans la liste, il t'indiquera tout ce que tu peux faire avec en bas) Bienvenu dans le monde merveilleux des scripts EDIT : et pour ta question concernant les henchmen, j'avais fait il y a pas mal de temps un sujet récapitulant les scripts à mettre sur le PNJ, il est là si ça peut t'aider _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
LtSich Acolyte Messages: 37 |
merci merci merci C'est vraiment sympas c'est super Vraiment merci ça marche, c tt beau, tt joli, tt magnifique Encore merci
LtSich |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Hahaha ! Cassin t'as fait un heureux là
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
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