Limiter un dialogue aux adeptes d'une certaine religion, d'une certaine race, d'une certaine classe, etc.

Tout ce que vous pouvez imaginer, ça se résume à faire des tests qu'on rajoute dans "Text Appears When .." pour l'apparition ou pas d'une branche de dialogue.

Voici un exemple pour faire passer une batterie de tests absurdes :


int StartingConditional
()
{
    
object oPC GetPCSpeaker();
    
int iResult;
    if (
GetDeity(oPC) == "Lloth"// Test de divinité
      
iResult TRUE; else iResult FALSE;
    if (
GetRacialType(oPC) == RACIAL_TYPE_ELF// Test de la race
      
iResult iResult; else iResult FALSE;
    if (
GetSubRace(oPC) == "Drow"// Test de la sous-race
      
iResult iResult; else iResult FALSE;
    if (
GetGender(oPC) == GENDER_FEMALE// Test du sexe
      
iResult iResult; else iResult FALSE;
    if (
GetAge(oPC) >= 40// Test de l'age
      
iResult iResult; else iResult FALSE;
    if (
GetClassByPosition(1oPC) == CLASS_TYPE_CLERIC// Test de la classe principale
      
iResult iResult; else iResult FALSE;
    return 
iResult;
}



On peut simplifier au moins de deux manieres :
- remplacer les "iResult = iResult;" par ";" seulement, puisque cette instruction ne fait rien.
- transformer les "iResult = FALSE;" en "return FALSE;" directement.

Mais je laisse comme ça pour des raisons de lisibilité pour les débutants dans l'utilisation des tests avec if().

Bon, je ne l'ai pas mis, mais vous pouvez faire pareil pour :
- un test d'xp
- un test d'or transporté
- un test de score dans une caractéristique
- un test de score dans une compétence
- un test variable ou aléatoire avec l'utilisation de d10(), d20(), d100()
- des tests de conditions inverses en remplaçant "==" par "!="
- des tests de conditions additionnelles ou exclusives avec "&&" (signifie ET) et "||" (signifie OU)

__________________
Lumina, dame de la Vie
Aventurière des Mondes Fantastiques