Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > test de carac ??
test de carac ??
Par Claedeus le 18/1/2003 à 0:35:57 (#3045849)
Voila, je me pose la question .. je n'arrive pas a y faire.. en fait voila mon exemple :
dans un dialogue, je voudrais introduire un test de 2 caracteristiques qui donnerais acces a une reponse autre que celle de base genre :
--ca va ?
1) Oui ca va ..
2) Ho !! je te reconnait toi !!! ( avec un test d'inteligence + Charisme )
PS ne me demander pas pkoi charisme ) c etait juste pour la 2 carac a tester =)
Biensur si kkun a deja expliker cela ( je n ai pas trouvé ) juste mettez moi lien je me ferais un plaisir de lire tout ca =)
Merci d avance !!
Par Prophetia Astrae le 18/1/2003 à 1:26:12 (#3046076)
Sinon pour faire un teste de Caractéristique, utilise la function GetAbilityScore :Get the ability score of a specific type for a creature.
int GetAbilityScore(
object oCreature,
int nAbilityType
);
Parameters
oCreature
The creature whose ability score is sought.
nAbilityType
ABILITY_*
Description
Returns the ability score of type nAbilityType for oCreature (otherwise 0).
en ce qui concerne le parametre nAbilityType, voila les valeurs possible:
ABILITY_CHARISMA One of the standard six ability scores; measures a character's persuasiveness, personal magnetism, and ability to lead. Abbreviated "CHR".
ABILITY_CONSTITUTION One of the standard six ability scores; encompasses his physique, fitness, health, and physical resistance to hardship, injury, and disease. Abbreviated as "CON".
ABILITY_DEXTERITY One of the standard six ability scores; encompasses several physical attributes including hand-eye coordination, agility, reaction speed, reflexes, and balance. Abbreviated as "DEX".
ABILITY_INTELLIGENCE One of the standard six ability scores; represents a character's memory, reasoning, and learning ability, including areas outside those measured by the written word. Abbreviated as "INT".
ABILITY_STRENGTH One of the standard six ability scores; measures a character's muscle, endurance, and stamina. Abbreviated as "STR".
ABILITY_WISDOM One of the standard six ability scores; describes a composite of the character's enlightenment, judgment, guile, willpower, common sense, and intuition. Abbreviated as "WIS".
Tu devrais pouvoir t'en sortir avec ça ;)
Prophetia
Par Mastokk le 18/1/2003 à 1:52:10 (#3046173)
nah
Par Claedeus le 18/1/2003 à 1:56:24 (#3046185)
en fait .. je ne veux pas regarder si l'Intelligence du joueur est superieur a 15 ( par exemple ) .. mais je veux ke 1d20 + l inteligence du joeur soit superieur a une certaine valeur
Par Prophetia Astrae le 18/1/2003 à 1:57:35 (#3046188)
Provient du message de Mastokk
Si tu veux faire ton truc dans un dialogue, ça se fait simplement en utilisant le scripteur automatique de Bioware lorsque tu fais ton dialogue. Tu sélectionnes la phrase qui ne doit apparaître que si ces caracs sont à une certaine valeur, et tu cliques sur le petit chapeau dans l'onglet "condition d'exécution" en bas à droite. Là tu auras plein d'options.
C'est aussi une solution ;)
Essais ça:int StartingConditional()
{
object oPC = GetPCSpeaker();
if(d20() + GetAbilityScore(oPC, ABILITY_INTELLIGENCE) > tavaleur){
return TRUE;
}
return FALSE;
}
et si tu veux tester le charisme en plus de l'inteligence de la meme maniere:int StartingConditional()
{
object oPC = GetPCSpeaker();
int iInt = d20() + GetAbilityScore(oPC, ABILITY_INTELLIGENCE);
int iChar = d20() + GetAbilityScore(oPC, ABILITY_CHARISMA);
if(iInt > tavaleur && iChar > tonautrevaleur){
return TRUE;
}
return FALSE;
}
Par eMRaistlin le 18/1/2003 à 2:04:45 (#3046203)
en fait .. je ne veux pas regarder si l'Intelligence du joueur est superieur a 15 ( par exemple ) .. mais je veux ke 1d20 + l inteligence du joeur soit superieur a une certaine valeur
Bein... justement...
tu fais
if (GetAbilityScore(oPC,ABILITY_CHARISMA)+d20()) > 15)
{
Blah Blah Blah...
}
pour verifier ^^
(a noter que j'ai pris 15 comme j'aurais put prendre 1...)
(A noter aussi qu'il exite des fonction pre-construite pour faire des jet de Save... mais c'est deja plus pareil ;))
Hmm ...
Par Claedeus le 18/1/2003 à 2:20:27 (#3046249)
PNJ : Bonjour !
PJ : - Bonjour .. ca va ?
*ou*
- Toi !! je te reconnais !
Bon voila ou est le soucis :
la phrase : 'Bonjour .. ca va ?' est accessible au PJ que si il rate 2 jets de carac de valeur 20 , ou un seul ( Intelligence et charisme )
la phrase : 'Toi !! je te reconnais ! est accessible que si il reussis ces 2 jets
Je me doute bien ke vos fonctions marchent .. mais mon probleme c est OU les mettre exactement ?
j'ai mis ta fonction eMRaistlin dans un script au 'Text appear when..' mais biensur ca ne compile pas ..
Par Prophetia Astrae le 18/1/2003 à 2:30:05 (#3046272)
les valeur renvoyé par la fonction sont TRUE => la phrase s'affiche ou FALSE => la phrase ne s'affiche pas.
Reprend mes fonctions, c'est les memes test que eMRaistlin, mais je t'ai mis la fonction complete, il ne te resterra plus qu'à l'arranger à ta sauce. évidement, tu met dans le 'Text appear when..'
yup
Par Claedeus le 18/1/2003 à 2:32:11 (#3046283)
ok juste un defaut
Par Claedeus le 18/1/2003 à 2:45:36 (#3046318)
Pour la reussite :
int StartingConditional()
{
object oPC = GetPCSpeaker();
if(d20() + GetAbilityScore(oPC, ABILITY_INTELLIGENCE) >= 22){
return TRUE;
}
return FALSE;
}
Pour l echec :
int StartingConditional()
{
object oPC = GetPCSpeaker();
if(d20() + GetAbilityScore(oPC, ABILITY_INTELLIGENCE) =' est bon non pourtant ?
Par Prophetia Astrae le 18/1/2003 à 11:38:37 (#3047333)
Donc là je t'avoue que je ne vois pas pourquoi des fois ça bug....
Essais peut être de remplacer le ">= 22" par un "> 21" dans l'absolu, ça revient au même mais peut être cela réglera le problème...
à tester
Prophetia
c'est ok
Par Claedeus le 18/1/2003 à 11:39:40 (#3047336)
Par Prophetia Astrae le 18/1/2003 à 11:40:42 (#3047342)
JOL Archives 1.0.1
@ JOL / JeuxOnLine