c'est quoi le "left bracket"? car dans les deux scripts ca compile pas a cause de ca !
juste au début de chaque : if !GetIsPC(oPC) et oAcquirer
sinon en parcourant d'autres forums, je suis tombé la dessus :
Bon alors, tout d'abord, il faut différencier les joueurs avant de leur appliquer quoi que ce soit : c'est à cela que servent les variables.
Prenons un exemple : dans ton module, tu désires créer deux factions qui s'affrontent. Il faudra donc, à un moment ou à un autre, que les joueurs décident à quelle faction ils souhaitent appartenir. Ici nous ferons choisir la faction au cours d'un dialogue :
Citation:
[PNJ] - Quelle faction souhaitez-vous rejoindre ?
[Joueur] - Les méchants.
[Joueur] - Les gentils.
Le choix "Les méchants" aura le script suivant dans "actions conséquentes" :
Code:
void main() { object oPC = GetPCSpeaker(); SetCampaignString("Module Personnel", "Faction", "Méchant", oPC); }
Le choix "Les gentils" aura le script suivant dans "actions conséquentes" :
Code:
void main() { object oPC = GetPCSpeaker(); SetCampaignString("Module Personnel", "Faction", "Gentil", oPC); }
Ce petit dialogue et ces deux scripts permettent de reconnaître à quelle faction les joueurs appartiennent par l'intermédiaire de la CampaignString "Faction" qui prend la valeur "Méchant" si l'on rejoint la faction des méchants et la valeur "Gentil" si l'on rejoint la faction des gentils.
Il suffit maintenant de rendre les porteurs de la string "Gentil" hostiles envers les porteurs de la string "Méchant", et inversement. Pour celà on place ce petit bout de script dans le OnClientEnter :
Code:
void main() { object oPC = GetEnteringObject(); //Défini le joueur entrant sur le module string sFaction = GetCampaignString("Module Personnel", "Faction", oPC); //Prend la valeur (ici "Gentil" ou "Méchant", de la CampaignString "Faction") if(sFaction == "Gentil") { object oOtherPC = GetFirstPC(); while(GetIsObjectValid(oOtherPC)) //boucle servant à vérifier tous les joueurs afin d'ajuster leur hostilité envers le joueur venant d'entrer sur le module { string sFactionOtherPC = GetCampaignString("Module Personnel", "Faction", oOtherPC); if(sFactionOtherPC == "Méchant") { SetPCDislike(oPC, oOtherPC); SetPCDislike(oOtherPC, oPC); oOtherPC = GetNextPC(); } else { oOtherPC = GetNextPC(); } } } else if(sFaction == "Méchant") { object oOtherPC = GetFirstPC(); while(GetIsObjectValid(oOtherPC)) //boucle servant à vérifier tous les joueurs afin d'ajuster leur hostilité envers le joueur venant d'entrer sur le module { string sFactionOtherPC = GetCampaignString("Module Personnel", "Faction", oOtherPC); if(sFactionOtherPC == "Gentil") { SetPCDislike(oPC, oOtherPC); SetPCDislike(oOtherPC, oPC); oOtherPC = GetNextPC(); } else { oOtherPC = GetNextPC(); } } } }
mais deux questions se posent :
1. en ce qui concerne les factions :
une nouvelle faction porte t elle son nom? je m'explique :
dans cette ligne
SetCampaignString("Module Personnel", "Faction", "Méchant", oPC);
si mon module s'appelle le_petit_module et ma faction méchante s'appelle Mamie est ce que ca va donner ca
SetCampaignString("le_petit_module", "Faction", "Mamie", oPC);
2. comme c'est dans le OnClientEnter (le grand script) est ce que là, ca ne va pas faire lagger le server?
car cette option semble plus simple ! mais si moins avantageuse, je la laisse tomber
|