La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 18:41:08


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Albator003
Invité


Répondre en citant
Posté le : 13/03/2003 13:17:06 Sujet du message : script = galere

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 Smile
 
Revenir en haut
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 13/03/2003 14:09:23 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Konrad
Grand Maître Chanteur du Conseil
Inscrit le: 30 Sep 2002
Messages: 1258
Localisation: Empire d'Halöven
Répondre en citant
Posté le : 13/03/2003 14:13:35 Sujet du message :

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 ! Surprised

Laughing

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. Smile


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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 13/03/2003 15:41:39 Sujet du message :

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... Rolling Eyes

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 13/03/2003 20:57:25 Sujet du message :

Au risque de te contredire Razz , 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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 13/03/2003 22:38:38 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 13/03/2003 22:45:47 Sujet du message :

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 - Very Happy)

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 Smile
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 13/03/2003 23:02:09 Sujet du message :

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
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 13/03/2003 23:05:46 Sujet du message :

Certes oui, disons que ça te fait 3 cas possibles au lieu de 9. Cool
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
aschendor
Grand Sage du Conseil
Inscrit le: 07 Fév 2003
Messages: 640
Localisation: Algalord
Répondre en citant
Posté le : 13/03/2003 23:16:50 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 13/03/2003 23:21:20 Sujet du message : modif

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
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 14/03/2003 01:29:35 Sujet du message :

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 Cool
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 15/03/2003 12:31:31 Sujet du message : no problem

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
Inscrit le: 14 Nov 2002
Messages: 89
Localisation: Le Havre, ville pourrie
Répondre en citant
Posté le : 15/03/2003 14:39:44 Sujet du message :

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. Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 15/03/2003 15:54:13 Sujet du message : stop

G fini le script il est dispo sur un new topic comme le dis Konrad Smile 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
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 15/03/2003 16:37:13 Sujet du message :

Effectivement, c'est 30 fois plus simple comme ça Very Happy Surprised
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 31.258ms