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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Ouvrir une trappe ? rien de plus simple ?

Par Launi Osaka le 24/7/2002 à 23:43:35 (#1856804)

Alors là, je suis completement perdu !
J'ai une trappe qui est fermée à la base.
Pour l'ouvrir, il faut utiliser un objet (pas sur la trappe elle même, c'est pas une clé, il faut juste cliquer sur l'objet).
On utilise l'objet et la trappe s'ouvre puis si on clique sur la trappe, ca doit nous transporter vers une cachette.
Et bien j'y arrive pas :(
Voici les 2 scipts que j'utilise (honteusement pompé sur un mod français) :
Pour l'objet à cliquer pour ouvrir la trappe (placé dans OnUsed) :

void main()
{
int ntrap1;
object otrap = GetNearestObjectByTag("TagDeLaTrappe");
ntrap1=GetLocalInt(otrap,"ntrap");
// verifie si la trappe est deja ouverte
// "0" si fermee et "1" si ouverte
if (ntrap1=0)
{
SetLocalInt(otrap,"ntrap",1);
ActionUnlockObject(otrap);
}
}


Le script de la trappe (placé aussi dans OnUsed) [C'est celui là que j'ai pompé, mais bon c'est mon premier test alors je commence doucement] :

void main()
{
int ntrap;
// ntrap represente l'etat de la trappe
if (ntrap==1)
{
// Transporte le joueur dans la cachette
object oPC = GetPCSpeaker();
object oWaypoint = GetObjectByTag("LeWPDansLAutreZone");
location lLocation = GetLocation(oWaypoint);
SetAreaTransitionBMP(AREA_TRANSITION_INTERIOR_01);
AssignCommand(oPC,ClearAllActions());
AssignCommand(oPC,ActionJumpToLocation(lLocation));
AssignCommand(oPC,SetFacing(GetFacing(oWaypoint)));
PlaySound("as_cv_gongring3");
}
}


Je me demande ce qui cloche....
J'ai même enlevé la condition if (ntrap==1)... de manière à ce que le script s'exécute automatiquement. Rien de rien. le perso stagne devant sa pauvre trappe.

Vous avez une idée ? Merci d'avance pour votre aide.

Launi Osaka.

P.S. : avant de poster j'ai fait une recherche pour voir si le sujet avait déja ete traité mais j'ai rien trouvé...

Par Kemay le 25/7/2002 à 0:02:28 (#1856908)

oula EDIT j'avais mal lu les scripts :p

Premier Script : Premier problème

if (ntrap1=0)

En script cela veut ceci est toujours faux, ne jamais exécuter ce qui suit.
L'effet voulu (je suppose) était de verifier si ntrap1 est égal à 0, ce qui se script ainsi
if ( ntrap1 == 0 )


Deuxième script : Deuxième problème
Le script de la trappe (placé aussi dans OnUsed)

et dans le script on lit :
object oPC = GetPCSpeaker();

pour définir la personne qui utilise la trappe, il faudrait utiliser GetLastUsedBy(). GetPCSpeaker signifiant "le joueur qui parle"

en corrigeant ces deux erreurs le script devrait fonctionner mais il reste pas mal de détails à modifier, j'avais tout expliqué sous forme de mini tutorial et je viens de tout effacer en voulant prévisualiser... Donc je fais une pause, je fume une clope et je recommencerai plus tard. :rolleyes:

Par Launi Osaka le 25/7/2002 à 18:23:24 (#1858346)

MERCI !!!!!! :)
J'ai vraiment honte ! c'était tellement évident !
Merci bcppppppp.
Tout marche à la perfection !

Par mobidique le 25/7/2002 à 18:45:08 (#1858476)

Le pb de la trappe m'a embété un moment ... Ton script est bien mais ta trappe ne sera plus jamais fermé si je me goure pas ... Vu que lorsqu'elle est ouverte le OnUsed te transporte forcément ... Enfin ... moi ça m'embétait qu'elle reste ouverte ...

Dans le thread "Les scripts qui marchent là haut", j'ai donné un script (qui marche) permetant de faire ouvrir la trappe, déplacer le joueur et fermer la trappe ... Simple et de bon gout comme d'hab' ;)

Mob'.

Par Launi Osaka le 26/7/2002 à 18:16:51 (#1864298)

C'est bon une fois que la trappe est ouverte, pour l'instant, je veut pas la refermer... Mais bon si je change je jetterai un coup d'oeil à ton script. Merci bcp.

JOL Archives 1.0.1
@ JOL / JeuxOnLine