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 19:21:16
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 |
Albator003 Invité |
je suis entrain d'essayer de faire un script pour changer l'alignement du player. En faite quand le joueur dis quelque chose l'alignement hcnage helas j'ai pas vu de script qui ressemble a sa et dans les tutoriaux ya 2 ou 3 truc qui mon aider pour le commencer mais j'ai un probleme au nivo d'une constante car dans adjust alignement il y a un truc du genre "int nAlignment chais pas comment faire ce truc...si qqun vois comment m'aider je suis preneur
|
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Je ne pense pas qu'on puisse changer l'alignement d'un joueur, ou du moins pas directement.
Tu dois jouer sur les alignements Bon/Mauvais et Loyal/Chaotique (en ajoutant et retirant des points sur ces échelles), mais c'est assez chaud : faudrait connaître à l'avance l'alignement du joueur pour adapter ton script à tes besoins... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
Heu... faut que je cherche mais c'est pas trop dur je crois....
Dis, un petit conseille au passage. Quand tu créé un nouveau sujet ne mais pas "Je suis nul en script", "j'y arrive pas", "A mort la programmation". ça n'aide pas beaucoup les gens qui veulent/peuvent d'aider. Si par exemple pour ce topic tu mets "Comment changer l'alignement d'un perso" tu as plus de chance d'avoir une réponse rapide et en plus ça évitera que quelqu'un d'autre qui à la même question en tête reposte la même question où cherche pendant des heures. voilà. --------- Edit : super Cassin, super rapide ! Il existe une nouvelle fonction qui permet de connaitre l'alignement d'un psero. Regardez les lisezmoi du patch 1.29 je crois que c'est dedans. Il est bien ce patch décidement. Bon, on va voir ce que l'on peut faire pour toi cassin ? _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Déjà je m'aperçois que je me suis emmêlé les pinceaux et que j'ai fais un amalgamme entre les alignements et les factions...
Pas grave, de toutes façons ce que j'ai dis reste valable, pour changer un alignement il faut jouer avec les échelles Bon / Mauvais et Loyal / Chaotique, comme sur la campagne solo quoi (sauf qu'elle ne le fait que sur Bon / Mauvais). La commande à utiliser est Code : AdjustAlignment(oSubject, nAlignment, nShift)
où oSubject est évidemment le joueur, nAlignement est l'un des alignements (ALIGNMENT_CHAOTIC, ALIGNMENT_LAWFUL, ALIGNMENT_EVIL, ALIGNMENT_GOOD et ALIGNMENT_NEUTRAL) et nShift la valeur à laquelle tu veux fixer l'alignement définit avant. Par exemple si c'est dans une conversation tu peux mettre : Code : void main()
{ AdjustAlignement (GetPCSpeaker(), ALIGNMENT_GOOD, 80); } ça fixera l'alignement de ton joueur à 80 sur l'échelle Bon / Mauvais. _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
Au risque de te contredire , cher Cassin, il me semble qu'un ajustement se définit comme augmentant ou réduisant la valeur de l'alignement et non en la changeant en la valeur de l'ajustement ! Ainsi, en mettant 80, un joueur qui a par exemple 6 points en aura 86 après et non 80.
_________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Je crois qu'on peut faire les deux, dans la description de la fonction c'est indiqué qu'on fixe à la valeur indiquée, mais en mettant +x ou -y, on additionne ou soustrait à la place...
_________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Je ne sais pas si c'est uniquement dispo depuis la version 1.29, mais il existe 2 fonctions idéales pour connaître l'alignement du PC :
GetAlignmentGoodEvil(object oCreature) ...et... GetAlignmentLawChaos(object oCreature) Donc si tu veux pouvoir changer l'alignement du PC selon son alignement de départ, tu peux facilement envisager un script du genre : Code : void main()
{ object oPC = GetFirstPC(); int BM = GetAlignmentGoodEvil(oPC); // Pour Bon -> Mauvais int LC = GetAlignmentLawChaos(oPC); // Pour Loyal -> Chaotique if (LC <= 20) // -> CHAOTIQUE { if (BM <= 20) // -> Mauvais { // Instructions conséquentes } if ((BM > 20) && (BM < 80)) // -> Neutre { // Instructions conséquentes } if (BM >= 80) // -> Bon { // Instructions conséquentes } } } Ainsi de suite en envisageant les 2 autres cas principaux, à savoir Neutre et Loyal (et les "sous-cas" Mauvais, Neutre et Bon). C'est sans doute assez lourd à gérer mais c'est à mon avis le seul moyen de ne pas faire de changement très lourd sur l'alignement du PC, ce qui à mon avis serait pas très réaliste (on ne passe pas du statut de tueur sanguinaire canibal à celui d'ange rédempteur en un clin d'oeil - sauf moi - ) Du coup, tu peux y ajouter des exceptions pour limiter la casse quand tu touches à l'alignement du PC, afin d'éviter ce genre de changement draconien (par exemple limiter à un niveau d'alignement les changements possibles en une fois) Note : je ne suis pas sûr du tout des chiffres limites pour le passage d'un alignement à l'autre, avis à ceux qui savent _________________ » 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 | |
Albator003 Invité |
ouais ca a l'air plus complexe que je le croyais je vais plutot faire spawn le PJ a different endroit selon son alignement juste bon ou mauvais dans ce cas je dois quand meme utiliser ton script pour savoir son alignement de depart me manque plus que a faire que si lui bon lui aller la si lui mauvais lui aller et pour neutre idem sera bcp plus simple
|
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Certes oui, disons que ça te fait 3 cas possibles au lieu de 9.
_________________ » 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 | |
aschendor Grand Sage du Conseil Messages: 640 Localisation: Algalord |
ouais ben dans le jeu officiel on commence suivant l'alignement à 15 50 85
En sachant que 15 c'est pour chaotique ou mauvais 50 pour neutre 85 pour loyal ou bon Mais il me semble que les limites sont à 30/50/70 à confirmer Vu que j'étais paladin, j'est plafonné à 85 / 100 (Loyal Bon) J'ai pas trouvé comment augmenté le coté loyal dans le jeu (ça doit pas être géré) [Edit]Bien sur quand j'ai mis 30/50/70, il fallait comprendre al<30, 30<al<70 et al>70 Le 50 n'a rien à faire dans les limites _________________ La différence entre un aventurier et un idiot peut se résumer à çà : les idiots vivent plus vieux Dernière édition par aschendor le 13/03/2003 23:27:50; édité 1 fois
|
Revenir en haut | |
Albator003 Invité |
j'ai modifier tes fourchette dalignement g mis -40 = mal 40a60 = neutre et +60 = bien mais la g un pb pour dire si PJ alignement est bien le teleporte la bas g pas l'habitude des gros script et je c pas ou mettre ca lol
|
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Alors voilà ce que je te propose :
(Les destinations de téléportations sont dans mon exemple des waypoints dont les tags sont respectivement "WP1" pour 1er cas, "WP2" et "WP3" pour les suivants) Code : void main()
{ object oPC = GetFirstPC(); int BM = GetAlignmentGoodEvil(oPC); // Pour Bon -> Mauvais location lDest1 = GetLocation(GetWaypointByTag("WP1")); location lDest2 = GetLocation(GetWaypointByTag("WP2")); location lDest3 = GetLocation(GetWaypointByTag("WP3")); // -> 1er cas if (BM <= 40) { AssignCommand(oPC, ActionJumpToLocation(lDest1)); } // -> 2ème cas if ((BM > 40) && (BM < 60)) { AssignCommand(oPC, ActionJumpToLocation(lDest2)); } // -> 3ème cas if (BM >= 60) { AssignCommand(oPC, ActionJumpToLocation(lDest3)); } } ... à quelque erreur de parenthèse près, ça doit marcher. Maintenant, à savoir où tu le mets, tout dépend de la manière dont tu veux que ça arrive. Si c'est à l'utilisation d'un objet, c'est sur le onUsed de l'objet. Si c'est sur une conversation, tu le mets sur le "action taken" ("action conséquente") de la phrase qui déclenche ton script. Bon courage _________________ » 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 | |
Albator003 Invité |
j'ai tout le script deja pret et sans erreur il me fallai juste ajouter ce que tu ma mis le truc ca va etre les parentrhse mais je v me debrouiller une fois que g fini mon script je vous le donne merci a tous pour votre aide
|
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Désolé de vous contredire, mais ça ne marchera pas du tout vu que GetAlignmentGoodEvil() ne renvoit pas la valeur de l'alignement bien mal (ça c'est GetGoodEvilValue() ) mais bien une constante qui indique de quel alignement est la cible, je vous propose donc :
Code : void main() { object oPC = GetEnteringObject(); //si l'on est dans un OnEnter if(GetIsPC( oPC )) { string sTag; switch( GetAlignmentGoodEvil(oPC) ) { case ALIGNMENT_EVIL : sTag = "WP1"; break; case ALIGNMENT_NEUTRAL : sTag = "WP2"; break; case ALIGNMENT_GOOD : sTag = "WP3"; break; } AssignCommand( oPC, ClearAllActions(TRUE) ); AssignCommand( oPC, JumpToObject( GetWaypointByTag( sTag ))); } } Ca marchera sans problème. |
Revenir en haut | |
Albator003 Invité |
G fini le script il est dispo sur un new topic comme le dis Konrad c plus clair comme ca ...
Il est dispo sur "script de spawn delon alignment du PJ Merci pour tout |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Effectivement, c'est 30 fois plus simple comme ça
_________________ » 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