Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Restreindre l'accès à son module
Restreindre l'accès à son module
Par Cassin le 15/10/2002 Ă 16:24:01 (#2340192)
C'est encore moi ;)
Aller, c'est la dernière question afin de boucler défintivement mon module (enfin, hors cinématique d'intro encore à peaufiner ;) ) :
Comment restreindre l'accès à mon module aux persos uniquement d'alignement Bon ?
Je sais que pour jouer en multi, il suffit de cocher une case, mais pour jouer en solo ? (parce que c'est avant tout un module solo)
J'ai déjà vu un module uniquement jouables par les personnages pré-générés par l'auteur (module Lone Wolf, sur ma page), mais ce n'est pas exactement ce que je voulais ;), et en plus je ne vois comment il a put faire... :confus:
Alors comment qu'on fait-y, plize ? ;)
Par eMRaistlin le 15/10/2002 Ă 16:46:08 (#2340366)
Par LeProctophantasmiste le 15/10/2002 Ă 16:47:22 (#2340376)
Sinon, je vais regarder dans le toolset, il me semble être tombé sur une fonction permettant quelque chose de plus radical.
Par Cassin le 15/10/2002 Ă 16:50:44 (#2340400)
Par eMRaistlin le 15/10/2002 Ă 16:55:40 (#2340437)
, mais s'il y a une meilleure solution...
Vi, je sais...
Voici les fonction relatives aux alignement :
AdjustAlignment
AutoAlignE
AutoAlignG
GetAlignmentGoodEvil
GetAlignmentLawChaos
GetFactionAverageGoodEvilAlignment
GetFactionAverageLawChaosAlignment
GetGoodEvilValue
GetLawChaosValue
GetReactionAdjustment
VersusAlignmentEffect
Je te conseille plus particulierement, si tu veux pas de l'antichambre, le AdjustAlignement, mais bon, ca force le joueur un tout petit peu trop a mon gout...
pour rappel : action AdjustAlignment(
object oSubject,
int nAlignment,
int nShift
);Constants
Constant Description
ALIGNMENT_ALL Symbolizes any of the standard alignment settings and performs different effects dependent upon the calling function.
ALIGNMENT_CHAOTIC Chaotic characters follow their consciences, resent being told what to do, favor new ideas over tradition, and do what they promise if they feel like it. The chaotic ethos includes the three standard dispositions good (CG - "Rebel"), neutral (CN - "Free Spirit"), and evil (CE - "Destroyer").
ALIGNMENT_EVIL Evil implies hurting, oppressing, and killing others, whether for fun or profit.
ALIGNMENT_GOOD Good implies altruism, respect for life, and a concern for the dignity of sentient beings.
ALIGNMENT_LAWFUL Lawful characters tell the truth, keep their word, respect authority, honor tradition, and judge those who fall short of their duties. The lawful ethos includes the three standard dispositions: good (LG - "Crusader"), neutral (LN - "Judge"), and evil (LE - "Dominator").
ALIGNMENT_NEUTRAL This constant represents both the ethos and disposition of neutral. Characters who are neutral in ethos have a normal respect for authority and feel nether a compulsion to obey nor to rebel. The neutral ethos includes the three standard dispositions good (NG - "Benefactor"), neutral (N, "Undecided"), and evil (NE - "Malefactor").
Par Cassin le 15/10/2002 Ă 17:12:12 (#2340513)
De plus ça risque de poser quelques problèmes à propos des classes...
Non ben tant pis, je vais faire une antichambre avec un zoli dragon qui va expliquer tout ça au joueur... :D
Par LeProctophantasmiste le 15/10/2002 Ă 17:52:09 (#2340752)
Proposition: Tu pourrais fournir la possibilité de changer d'alignement dans l'antichambre, comme ça si ça ne pose pas de problème pour sa classe, le joueur n'aura pas à recréer un perso, c'est mons frustrant à mon avis.
EDIT: houlĂ (o!)
Par Jaha Effect le 15/10/2002 Ă 17:52:37 (#2340756)
Provient du message de Cassin
En effet, forcer l'alignement ne me plaît pas trop, surtout que je fais surtout ce choix pour une question RP, alors...
De plus ça risque de poser quelques problèmes à propos des classes...
Non ben tant pis, je vais faire une antichambre avec un zoli dragon qui va expliquer tout ça au joueur... :D
Et on ne discute pas avec un dragon... on ecoute !!!
Jaha Effect :D
Par Tyn' le 15/10/2002 Ă 18:16:54 (#2340922)
Dans OnClientEnter du module :void main()
{
//On récupère le joueur
object oPC = GetEnteringObject();
if(GetIsPC(oPC) && GetAlignmentGoodEvil(oPC) != ALIGNMENT_GOOD)
{
//Le joueur n'est pas bon, on vérifie si c'est du SP ou du MP
SendMessageToPC(oPC,"Ce module nécessite un alignement Bon. Veuillez en changer et réessayer.");
int nPlayerCount = 0;
object oPlayerCount = GetFirstPC();
while(GetIsObjectValid(oPlayerCount))
{
nPlayerCount++;
oPlayerCount = GetNextPC();
}
if(nPlayerCount == 1)
{
//C'est du solo (ou y'a 1 joueur en multi, là ca fait rebooter le serveur, désolé)
DelayCommand(10.0f,EndGame("));
}else{
//C'est du multi
DelayCommand(10.0f,BootPC(oPC));
}
}
}
Par Tyn' le 15/10/2002 Ă 18:26:02 (#2340977)
void main()
Avec un dialogue appellé changer_alignement :
{
object oPC = GetEnteringObject();
if(GetIsPC(oPC) && GetAlignmentGoodEvil(oPC) != ALIGNMENT_GOOD))
{
AssignCommand(oPC,ClearAllActions());
AssignCommand(oPC,ActionStartConversation(oPC,"changer_alignement",TRUE);
}
}-> Attention, ce module nécessite un alignement Bon, ce qui n'est pas votre cas. Voulez-vous en changer ?
Dans les actions conséquentes de Oui, changez mon alignement. :
--> Oui, changez mon alignement.
--> Non, je préfère quitter.void main()
Et dans les actions conséquentes de Non, je préfère quitter :
{
object oPC = GetPCSpeaker();
AdjustAlignment(oPC,ALIGNMENT_GOOD,100);
SendMessageToPC(oPC,"Votre alignement a été changé à Bon, bonne continuation dans ce module.");
}void main()
{
object oPC = GetPCSpeaker();
int nPlayerCount = 0;
object oPlayerCount = GetFirstPC();
while(GetIsObjectValid(oPlayerCount))
{
nPlayerCount++;
oPlayerCount = GetNextPC();
}
if(nPlayerCount == 1)
{
//C'est du solo (ou y'a 1 joueur en multi, là ca fait rebooter le serveur, désolé)
DelayCommand(10.0f,EndGame("));
}else{
//C'est du multi
DelayCommand(10.0f,BootPC(oPC));
}
}
Par Cassin le 16/10/2002 Ă 8:39:11 (#2343762)
Par eMRaistlin le 16/10/2002 Ă 9:56:30 (#2344013)
Un autre truc au fait : Online, tu met un pass, et une description adequate ^^
Par Cassin le 16/10/2002 Ă 10:31:22 (#2344180)
Et dans l'antichambre je vais donner la possibilité de modifier l'alignement, même si je n'aime pas trop ça... ;)
(ou bien je sauve l'alignement d'origine du joueur et je la lui restitue Ă la fin du module :D)
(mais ça risque de poser problème quand j'enchaînerais sur le prochain module de la campagne...)
(mais je verrais ça plus tard ! :D)
(OK, j'arrête avec mes parenthèses :mdr: )
JOL Archives 1.0.1
@ JOL / JeuxOnLine