Porte lockpick

Répondre
Partager Rechercher
Bonjour,
Je cherche pour une sim rp un script de porte lockpick full perm.
En fait ce qu'il nous faudrait c'est un script qu'on puisse configurer des cette manière

1) une personne veut entrer elle est dans la liste des personnes qui ont acces à la porte. La porte s'ouvre normalement

2) une personne veut entre mais n'est pas dans la liste, un menu s'ouvre et deux choix "forcer la porte" ou " quitter"
a) la porte forcée a un pourcentage de chance réussite, soit elle s'ouvre, soit elle reste bloquée .
b) si elle s'ouvre on utilise la fonction llDie(); pour detruire la porte rp parlant , jusqu'a ce qu'elle soit remplacée par une autre .

Merci d'avance pour votre aide
Bonjour.....essaye ça....mais evite de lier la porte au reste du batiment
Code PHP:

integer canal;
list 
ordonne_boutons(list boutons)
{
    return 
llList2List(boutons, -3, -1) + llList2List(boutons, -6, -4)
        + 
llList2List(boutons, -9, -7) + llList2List(boutons, -12, -10);
}
list 
menu_boutons;
integer handler;
initialisations()
{
menu_boutons = ["forcer""quitter"];
 
  
canal= (integer) (llFrand(-1000000000.0) - 1000000000.0);
 
}
sleep()
{
    
llListenRemove(handler);
    
llSetTimerEvent(0.0);
}
key Xxx "ade66a1f-dd49-470a-be49-09067e371cc3";//ajouter les clés des personnes autorisées
key Yyy;
key Zzz;
 
float aleat;
vector largeurPorte;
float ferm_auto 15.0//change le temps de fermeture automatique en sec.
animation(float angle
{
integer i;
for(;
<85; ++i//modif angle d' ouverture
{
vector posPorte llGetLocalPos();
rotation rot llAxisAngle2Rot(llRot2Up(llGetLocalRot()), DEG_TO_RAD angle);
vector vecteur = -(largeurPorte 2.0) * llGetLocalRot();//modif coté d' ouverture   ajoutez ou enlevez "-" 
vector posAxe posPorte vecteur;
vector rotVecteur vecteur rot;
vector nouvellePosition posAxe rotVecteur;
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_ROTATIONllGetRot() * rot,
PRIM_POSITIONnouvellePosition]);
llSleep(.00);//modif de la vitesse d'ouverture.  augmentez pour ralentir, decommentez pour vitesse max.
}
}
default 
{
    
on_rez(integer start_param)
    {
     
llResetScript();
    }
    
state_entry()
    {
  
llSetTimerEvent(0.0);
    
llPlaySound("e7ff1054-003d-d134-66be-207573f2b535"0.7);//modif son et intensité du son  de 0.0 à 1.0
    
vector dimensions llGetScale();
    
largeurPorte = <dimensions.x.0.0>;
    }
    
touch_end(integer total_number
    {
         
key id llDetectedKey(0);
        if(
id == Xxx|| id == Yyy|| id == Zzz)
        {
        
llPlaySound("cb340647-9680-dd5e-49c0-86edfa01b3ac"0.7);
        
animation(1.0);//modif du sens d'ouverture  (1.0) ou (-1.0)
        
llWhisper(0,"bienvenu "llKey2Name(id));
        
state ouvert;
        }
        else
        {
        
handler=llListen(canal,"",id,"");
        
llSay(0,"vous n'êtes pas habilité à ouvrir cette porte");
         
llDialog(id,"\nChoisissez une option :\n",   ordonne_boutons (["forcer""quitter"]),canal);
        }
    }
 
    
listen(integer chanelstring nomkey idstring message)
   {    
   
llWhisper(0,llKey2Name(id)+" vous avez choisis de " " "message" la porte");
   if (
message == "forcer")
        {
        
aleat =llFrand(1.0);
        if( 
aleat<0.5)
{
    
llWhisper(0,"porte fracturée avec succès!");
        
llDie();
}
        else
{
    
llWhisper(0,"effraction ratée!");
        
sleep();
        }
 
    }
 
    
timer()
    {
    
sleep();
    }
}
state ouvert 
{
    
state_entry()
    {
    
llSetTimerEvent(ferm_auto);
    }
    
touch_end(integer total_number
    {
    
animation(-1.0);//signe inverse par rapport à ligne 46
    
state default;
    }
    
timer()
    {
    
animation(-1.0);//signe inverse par rapport à ligne 46
    
state default;
    }


Dernière modification par MenthalOH ; 07/02/2014 à 15h34.
Bonjour je viens encore vous embêter :
Je me sers tjs de ce script en zone rp en ayant fait quelques modifications (porte devenant fantome ou lieu de se détruire et qui se répare via un mot de passe)
Mais voilà,
j'aimerai pouvoir relier certains paramètres directement dans une notecard, ça m’éviterais de tjs trifouiller le script

j'ai essayé de comprendre comment fonctionne la lecture de notecard de configuration, mais j'avoue de ne pas tout saisir, donc j'aimerai que la note comporte :

les Clés des personnes pouvant ouvrir la porte sans avoir à la crocheter
Le temps de fermeture auto
le son d'ouverture de la porte
le mot de passe pour réparer la porte

et que la note de configuration fonctionne avec le script

Pouvez vous m'aider ? Merci
Je ne vois pas trop l' interêt de passer par une notecard dans le cas présent. Ca complique le script, et au lieu d' être obligé d' ouvrir et d' enregistrer de nouvelles données dans le script, tu vas être obligé d' ouvrir et d' enregistrer de nouvelles données dans une notecard.....
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés