Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Une transition qui ne se déclanche que pour une certaine classe de personnage
Une transition qui ne se déclenche que pour une certaine classe de personnage
Par Mastokk le 24/11/2002 Ã 0:27:04 (#2629718)
void main()
{
object oClicker = GetClickingObject();
// restriction base sur la classe du personnage
int iPassed = 0;
if(GetLevelByClass(CLASS_TYPE_DRUID, GetClickingObject()) >= 1)
iPassed = 1;
// Activer la transition de zone
object oTarget = GetTransitionTarget(OBJECT_SELF);
location lLoc = GetLocation(oTarget);
AssignCommand(oClicker,JumpToLocation(lLoc));
// phrase expliquant l'interdiction d'accès
if(iPassed == 0)
ActionSpeakString("Une barriere magique vous empeche d'entrer") ;
}
Je n'ai aucune erreur de compilation mais ça n'empèche en rien la transition de zone pour les personnages non druides. Si vous pouviez aider la larve que je suis... ce serait bien aimable :).
Par miriandel le 24/11/2002 Ã 0:57:32 (#2629839)
void main()
{
object oClicker = GetClickingObject();
// restriction base sur la classe du personnage
if(GetLevelByClass(CLASS_TYPE_DRUID, GetClickingObject()) >= 1) {
// Activer la transition de zone
object oTarget = GetTransitionTarget(OBJECT_SELF);
location lLoc = GetLocation(oTarget);
AssignCommand(oClicker,JumpToLocation(lLoc));
} else // phrase expliquant l'interdiction d'accès
ActionSpeakString("Une barriere magique vous empeche d'entrer") ;
}
Juste des problèmes de placement des accolades dans ton script.
Par shadoh le 24/11/2002 Ã 1:03:19 (#2629872)
void main()
{
int nClass1 = 1;
int nClass2 = 2;
int nClass3 = 3;
object oPC = GetClickingObject();
if (GetClassByPosition(nClass1,oPC) == CLASS_TYPE_DRUID || GetClassByPosition(nClass2,oPC) == CLASS_TYPE_DRUID || GetClassByPosition(nClass3,oPC) == CLASS_TYPE_DRUID)
{
}
else
{
ClearAllActions();
AssignCommand(oPC,JumpToObject(GetObjectByTag("tag du WP de destination")));
}
}
/////////////////////////////////////////////////////////////////////////
Edit : Je ne sais pas si tu peux faire apparaitre un texte au dessus d'une porte avec la commande SpeakString ou ActionSpeakString.
Si c'est possible, tu peux rajouter la ligne de commande :
ActionSpeakString("texte que tu veux faire dire à la porte");
entre les {} du premier if.
Sinon, tu peux placer un object invisible à l'endroit ou se trouve ta porte et rajouter toujours au meme endroit cette ligne de commande :
AssignCommand(GetObjectByTag("tag de l'object invisible"), ActionSpeakString("texte que tu veux faire dire à l'endroit ou se trouve l'objet invisible"))
Par Mastokk le 24/11/2002 Ã 1:10:34 (#2629906)
Je te remercie aussi Shadow mais je vais me contenter du script de base qui fonctionne bien :).
Par shadoh le 24/11/2002 Ã 1:16:43 (#2629925)
Par coolstar le 24/11/2002 Ã 1:24:40 (#2629966)
Par Mastokk le 24/11/2002 Ã 2:02:47 (#2630118)
void main()
{
object oClicker = GetClickingObject();
// restriction base sur la classe du personnage
if(GetLevelByClass(CLASS_TYPE_DRUID, GetClickingObject()) >= 1)
{
// Activer la transition de zone
object oTarget = GetTransitionTarget(OBJECT_SELF);
location lLoc = GetLocation(oTarget);
AssignCommand(oClicker,JumpToLocation(lLoc));
}
else
// phrase expliquant l'interdiction d'accès
ActionSpeakString("Une barriere magique vous empeche d'entrer") ;
ActionCloseDoor(OBJECT_SELF);
}
Par shadoh le 24/11/2002 Ã 2:03:10 (#2630120)
Donc, apres que la classe en position 1 puis la classe en position 2 puis la classe en position 3 ait été vérifie, le script execute la commande JumpToObject sur le PJ si celui ci n'a pas la classe de druide dans une de ses classes (ça couvre le cas des multiclassés et des monoclassés). Si le joueur est monoclassé druide ou multiclassé druid, alors le joueur ne sera pas envoyé à la destination indiqué par JumToObject.
Il y a toujours plein de moyens de parvenir à ses fins par le biais des scripts. Moi j'ai procédé de la sorte. Mais à partir du moment ou les 2 marchent, c'est un choix personnel apres lol :).
Par coolstar le 24/11/2002 Ã 2:17:32 (#2630177)
Par Drakalien o Taurind le 24/11/2002 Ã 11:32:52 (#2631315)
déclancher s'écrit déclencher
Bon, maintenant on a un correcteur orthographique, mais un petit rappel ne fera pas de mal, n'est-ce pas ? :rolleyes:
Par coolstar le 24/11/2002 Ã 13:31:48 (#2632015)
Par Drakalien o Taurind le 24/11/2002 Ã 14:39:35 (#2632417)
Qu'est-ce que tu veux que je te dises, je ne suis pas un académiste totalitaire mais quand je vois "déclanché" écrit comme ça, je trouve ça vraiment moche. Si tu me dis que tout le monde écrit ça comme ça, ok j'essairai de changer mes habitudes.
Par Mastokk le 24/11/2002 Ã 15:17:48 (#2632680)
Par shadoh le 24/11/2002 Ã 16:03:22 (#2632910)
Premièrement, c'est une intervention HS (la charte dit d'éviter les HS). Secondo, ça fait remonter un sujet qui était clos.
Il y a déjà eu plusieurs débats sur l'orthographe. D'une manière générale, ce qui en est ressorti c'est que tant que le texte reste lisible, tout le monde peut faire des erreurs. Et vu que la faute en question n'a pas été corrigé via le correcteur, et attendu que le message a été posté, il n'y a plus de moyens pour corriger cette faute. Seul un modo peut encore la corriger. Et ceci ne mérite pas un post mais un MP a un modo :).
Par Drakalien o Taurind le 25/11/2002 Ã 18:31:00 (#2641601)
Mais bon si vous me dites que vous n'en avez rien à fiche d'apprendre l'orthographe correcte d'un mot que vous utilisez souvent, eh bien je me tairai à jamais et mon immense savoir restera connu de moi seul. :bouffon:
Par coolstar le 25/11/2002 Ã 18:42:52 (#2641730)
Par Drakalien o Taurind le 25/11/2002 Ã 18:55:36 (#2641848)
Par Drakalien o Taurind le 25/11/2002 Ã 18:56:20 (#2641853)
Bon d'accord, je m'enfouis sous terre et je ressors dans 500 ans lorsque l'on rigolera de ces misérables terriens de l'an 2000 qui passaient leur vie dans un ridicule espace de 40 000 km² à travailler et à taper sur des trucs devant un écran préhistorique minuscule...
Et voilà , vous m'obligez à faire du HS, c'est malin ça !
Par coolstar le 25/11/2002 Ã 19:16:49 (#2642020)
JOL Archives 1.0.1
@ JOL / JeuxOnLine