Script Avec Des Variables

Répondre
Partager Rechercher
2 fois que je réécris ce topic, pour cause de site qui répond pas Pô grave

Bon voila je recommence donc. J'ai un petit problème avec des variables dans un script. Sur le On used d'un siege. Voila l' bestiau : J'ai mis que la partie des variables du script
Code PHP:

void main()
{
     
object oPC GetLastUsedBy ();
      {
       
// Inspecter variables locales
    
if(!(GetLocalInt(oPC"PhraseTroneApprentieVoleur") <= 2))
        {
         
SetLocalInt(oPC"PhraseTroneApprentieVoleur"3);
        }
     if(!(
GetLocalInt(oPC"PhraseTroneApprentieVoleur") ==3))
        {
       
SetLocalInt(oPC"PhraseTroneApprentieVoleur"3);
         }
      if(!(
GetLocalInt(oPC"PhraseTroneApprentieVoleur") ==4))
        {
       
SetLocalInt(oPC"PhraseTroneApprentieVoleur"4);
        }
       else
        {
       
SetLocalInt(oPC"PhraseTroneApprentieVoleurChemA"1);
        }

     }

Bon tout es dis la dedans je crois, mais je reéxplique quand même car je fais sûrement une erreur quelque part
Quand la variable 1, 2 ou 3 est détecté, assigné au PJ la variable 3. Sinon mettre la variable Chem A pour les autres à 1. Mais je veux que si la variable 4 et 56 soient détectées , quels restent comme ça. Pas de Chem A.
Je sais pas si je suis clair.
Mais une petite vérification de mon script serait le bienvenus
Merci d'avoir tout lut
- Pour info, si tu utilise IE, il te suffit de recliquer sur Rafraichir pour retenter d'inscrire ton texte : pas besoin de tout retaper, normalement. ^^


- Pour ton script, le pb vient de tes !Get

en gros, il gere trop de cas ou c'est different, et ne sait plus quoi gerer.

Je te conseille ca :

Code PHP:

void main ()
{
object oPC GetLastUsedBy ();
int nTest GetLocalInt(oPC"PhraseTroneApprentieVoleur") ;

if (
nTest 3) {return;}

if (
nTest <= 3){SetLocalInt(oPC"PhraseTroneApprentieVoleurChemA"1);
SetLocalInt(oPC"PhraseTroneApprentieVoleur"3);}

La, normalement, il ne fait rien si nTest est 4,5 ou 6, et sinon, il met ChemA a 1 et nTest a 3

C'est ca ?
La structure:

Code PHP:

switch (maVariable) {
  case 
valeur1:
    
actions;
    break;
  case 
valeur2:
    ...
  default:
    
action;
    break;

n'est-elle pas aussi utilisable?
Je ne dis pas qu'elle est mieux mais (au contraire dans ce cas elle est pas top), c'est une question que je me pose
la structure switch sera interessante dans le cas ou tu maitrise les valeur susceptible d'etre presente pour nTest.

L'interet du if, ici, reside dans le >= ou le <

Mais switch aura put fonctionner avec un
case 1 : Set...; return;
case 2 : Set...; return;
case 3 : Set...; return;

et rien pour le reste, dans ton cas precis.
Bon voila, sous ta lanterne eMRaistlin, j'ai donc SIMPLFIER mon script (Ouah ah quel doux mot à entendre ). Ca m'a fait réviser mes cours du lycée et ça f'sait un pt'it moment.
Faut dire j'débute dans les scripts!!!!
Alors Voila, après revérification de mes dialogues, c'est un peu différents que ma première version.

Code PHP:

  {

    
int nTest GetLocalInt(oPC"PhraseTroneApprentieVoleur") ;

    if (
nTest 4)
        {
        return;
        }
    if (
nTest 5)
        {
        return;
        }
    if (
nTest <= 3)
        {
        
SetLocalInt(oPC"PhraseTroneApprentieVoleur"3);
        }
    else
     
SetLocalInt(oPC"PhraseTroneApprentieVoleurChemA"1);
    } 
Voila. Donc explication plus simple. Faut faire simple.
Si PJ est 3, 4 ou 5, alors pas de changement
Si PJ 1 ou 2 alors 3.
Sinon le reste (tout ce qui n'est pas 1, 2, 3,4 et 5) on donne Chem A à 1

Me serais-je encore trompé

Vé voir dans mes vieux grimoires mathématiques tout poussiéreux

Merci bien en tout cas

EDIT : Ah oui j'oubliais, le object oPC = GetLastUsedBy est plus haut dans une autre branche de PC
Mmmmmh j'crois qu'c'est mieux là :

Code PHP:


object oPC 
GetLastUsedBy (); 
int nTest GetLocalInt(oPC"PhraseTroneApprentieVoleur") ; 
     if (
nTest 4
            { 
            return; 
            } 
     if (
nTest 5
            { 
            return; 
            } 
     else if (
nTest <= 3
            { 
            
SetLocalInt(oPC"PhraseTroneApprentieVoleur"3); 
            } 
     else 
            { 
            
SetLocalInt(oPC"PhraseTroneApprentieVoleurChemA"1); 
Mais j'suis pas sûr
génial alors je viens de comprendre aujourd'hui le jeux des else if, if et else. Ca simplifie bien la vie^^. Merci eMRaistlin pour la confirmation j'en avais besoin. Et pour le cours de simplification
Bien pratique ma fois
Je suis encore débutant mais le deviens de moins en moins grâce à la comunauté NWN.

Répondre

Connectés sur ce fil

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