Miltiades
Inscrit le: 05 Nov 2006
Messages: 175
Posté le: 14/12/2006 12:50 Sujet du message: Script refoulant les personnages
Voilà je voulais savoir si quelqu'un connaissait un script empêchant les PJ d'entrer dans un lieu selon leur alignement?
Par exemple, un CM ne peut pas rentrer dans un temple LB car une barrière magique l'en empêche.
Est-il possible aussi de mettre un float disant que "Le mal émanant de vous vous empêche de rentrer en ces lieux ".
Merci ^^
SlaineFr
Inscrit le: 13 Aoû 2006
Messages: 6
Posté le: 14/12/2006 13:38 Sujet du message:
Sur la transition tu peux utiliser un script sur le OnActivated (Script déclenché par un clic) ou le OnEnter.
Dedans tu fais un test sur l'alignement :
GetAlignmentGoodEvil(object oCreature);
GetAlignmentLawChaos(object oCreature);
avec ces 2 fonctions tu dois pouvoir récupérer le niveau dans chaque type d'alignement.
Ensuite si l'alignement corresponds à ce que tu veux tu lances la transition.
Sinon tu peux lui envoyer un message avec la fonction :
FloatingTextStringOnCreature(string sStringToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE, float fDuration=5.0,...
PS Marrant j'ai pas la suite du texte dans l'aide de l'éditeur de fonctions :p
Miltiades
Inscrit le: 05 Nov 2006
Messages: 175
Posté le: 14/12/2006 18:59 Sujet du message:
Je vais essayer mais je ne suis pas très fort en script ^^
merci ^^
Miltiades
Inscrit le: 05 Nov 2006
Messages: 175
Posté le: 19/12/2006 12:57 Sujet du message:
J'ai essayé avec un logiciel créant des scripts mais je n'y arrive
Un gentil scripteur pourrait m'aider svp??
merci ^^
Tatav
Inscrit le: 04 Oct 2006
Messages: 79
Posté le: 19/12/2006 16:55 Sujet du message:
Je me sers de ce genre de script pour limiter l'accès à des portes et des transitions selon le niveau du PJ mais en l'adaptant un peu ca doit donner ca.
Code: |
const string CONST_STRING_ARRIVEE ="Monpointdarrivee";
void main()
{
object oPC= GetClickingObject();
if ((GetAlignmentGoodEvil(oPC)==ALIGNMENT_ALL) && (GetAlignmentLawChaos(oPC)==ALIGNMENT_ALL))
AssignCommand(oPC,ActionJumpToObject(GetNearestObjectByTag(CONST_STRING_ARRIVEE)));
else
FloatingTextStringOnCreature("Tu ne mérites pas de passer ici....",oPC);
} |
Ce script est à placer dans le "script déclenché par un click". Il ne faut pas oublier de mettre une transition tout de même ( même pipo ) à la porte sinon ca restera une porte classique sans transition donc le script ne fera pas effet car celui ci se lance quand on click sur l'Area transition en fait.
Il faut aussi que tu joues sur les constantes d'alignement pour choisir le bon, la tout le monde doit pouvoir passer.
changer "ALIGNMENT_ALL" en ALIGNMENT_GOOD ou ALIGNMENT_LOYAL selon le type d'alignement que tu testes.
pour qu'un LB seulement passe le if donnera:
Code: |
if ((GetAlignmentGoodEvil(oPC)==ALIGNMENT_GOOD) && (GetAlignmentLawChaos(oPC)==ALIGNMENT_LOYAL )) |
Ensuite, tu peux généraliser ce script pour toutes les portes et tous les alignements en stockant en int local sur l'objet les alignements de ceux qui ont le droit de passer ou non.
Miltiades
Inscrit le: 05 Nov 2006
Messages: 175
Posté le: 19/12/2006 17:48 Sujet du message:
merci à toi , je vais tester dès que possible ^^