Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

test de carac ??

Par Claedeus le 18/1/2003 à 0:35:57 (#3045849)

Bonjour tous le monde ! =)

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)

Personnellement, je te conseillerais d'aller faire un petit saut sur ce post http://forums.jeuxonline.info/showthread.php?s=&threadid=101936 bcp de chose sur les dialogue y sont expliqué.

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)

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.

nah

Par Claedeus le 18/1/2003 à 1:56:24 (#3046185)

en effect il y a plein d option .. mais l option qui fait un test de carac elle n'y est pas

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)

En fait c'est surement moi qui me suis mal exprimer .. voila ce que je voudrais + clairement :


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)

Si tu as mis la condition telquel comme i l'a noté normal que ça ne compile pas, de plus pour les condition sur les dialogues, tu dois remplacer le main() classique par un int StartConditional().

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)

Oui Prophetia=) j avais pas vu ton Edit .. je test ca desuite merci encore

ok juste un defaut

Par Claedeus le 18/1/2003 à 2:45:36 (#3046318)

alors voila ce que j ai fait :

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)

Heuu oui le signe ">=" est bon, d'ailleurs si il ne l'était pas, tu aurais eu une erreur de compilation....
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)

Tout est ok =) ca marche =) merci pour tout !

Par Prophetia Astrae le 18/1/2003 à 11:40:42 (#3047342)

A ton service :merci:

JOL Archives 1.0.1
@ JOL / JeuxOnLine