• 04 Juin 2026, 16:32:28


Auteur Sujet: Millisecondes et Regroupement de fonction  (Lu 2517 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Millisecondes et Regroupement de fonction
« le: 26 Mars 2011, 11:50:46 »
Bonjour,

Je m'amuse actuellement à scripté mais déjà quelques problèmes s'offre à moi. ^^
Tout d'abord lors de mon tutorial RP j'aimerais savoir si il est possible de pouvoir mettre des millisecondes au lieu de secondes.
   else if(TutTime[i] == 60)
   {
       ClearChatbox(i, 10);
       SendClientMessage(i, COLOR_WHITE, "Alors toi joueur de Role play c'est quoi ton style ?");
}
   else if(TutTime[i] == 65)
   {
       ClearChatbox(i, 10);
       SetPlayerPos(i, 2471.7776,-1675.6060,10.3335);
       SetPlayerCameraPos(i, 2478.2747,-1677.5876,13.3395);
SetPlayerCameraLookAt(i, 2505.2361,-1683.4340,13.5469);
       SetPlayerInterior(i, 0);
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_WHITE, " ");
SendClientMessage(i, COLOR_YELLOW, "                                             .:: GANGSTA ::.");
SendClientMessage(i, COLOR_WHITE, "");
SendClientMessage(i, COLOR_YELLOW2, "Plûtot gangsta , vivant dans la délinquance , traffiquant de la drogue ,");
SendClientMessage(i, COLOR_YELLOW2, "ou volant des voitures ,achetant des armes pour se faire respecter ?");
   }


Et ensuite j'ai créer une commande /etage [Numéro de l'étage] pour un Immeuble de 20 étage
if(strcmp(cmd,"/etage",true)==0)
{
        if(IsPlayerConnected(playerid))
{
            if(PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188))
            {
Ici je n'ai pu mettre que 6 étage pour pouvoir faire la commande /etage
Mais j'aimerais faire que depuis chaque etage l'on puisse accèder aux autres, mais pour cela il faut que je fasse une ligne gigantesque de "PlayerToPoint" et la compilation ne marche pas.
J'aimerais moi compressé plein de PlayerToPoint dans une seule fonction pour pouvoir ainsi raccourcir ma phrase


Je me demandais aussi si il était possible de faire un Fondu dans SAMP

Merci d'avance.
Ytyse
« Modifié: 26 Mars 2011, 11:57:47 par Ytyse »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Millisecondes et Regroupement de fonction
« Réponse #1 le: 26 Mars 2011, 12:50:10 »
Pour ta première question, il faudrait modifier une bonne partie du code pour passer toutes les valeurs en millisecondes car la modification de la variable TutTime s'aide d'une boucle qui s'incrémente toutes les secondes.

unjailtimer = SetTimer("SetPlayerUnjail", 1000, 1);

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #2 le: 26 Mars 2011, 13:10:18 »
Faut-il que je recréer une boucle à ma sauce ou alors je peux peut-être modifié le TutTime
Mais je ne l'ai pas trouvé dans le script ...

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Millisecondes et Regroupement de fonction
« Réponse #3 le: 26 Mars 2011, 14:08:25 »
Il faudrait modifier toutes les valeurs en millisecondes.

Hors ligne mjlayak

  • *
  • Tueur en série
  • Messages: 150
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #4 le: 26 Mars 2011, 20:31:15 »
Pour le deuxieme tu peux faire un menu . Et pour les PlayerToPoint , fais une public avec le code des PlayerToPoint dedant puis ensuite tu fais une condition avec le public .

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #5 le: 28 Mars 2011, 19:11:16 »
Merci pour votre aide,
Cependant j'ai encore quelques questions.

Pour les millisecondes, j'ai regardé mon script et j'ai en effet le même code que toi Xartrick,
Et beaucoup d'autres fonction sont en milliseconde,
Dois-je comprendre qu'elles ne suivent pas la même boucle ?
Le problème c'est que je n'ai vu nulle part que TutTime était associé à un temps défini.

Ensuite j'ai créer le public(j'espère qu'il est correct),
Mais par contre je ne sais pas comment formulé ma condition

public Alletage(playerid)
{
    if(IsPlayerConnected(playerid))
    {
    PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188)/*1*/ ||PlayerToPoint(4.0, playerid,1786.6885,-1300.6246,22.2109)/*2*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,27.6719)/*3*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,33.1250)/*4*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,38.5781)/*5*/;
    PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,44.0391)/*6*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,49.4453)/*7*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,54.9063)/*8*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,60.3594)/*9*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,65.8125)/*10*/;
    PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,71.2734)/*11*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,76.6719)/*12*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,82.1328)/*13*/ ||PlayerToPoint(4.0, playerid,1787.1576,-1300.6011,87.5859)/*14*/ ||PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,93.0391)/*15*/;
    PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,98.5000)/*16*/ ||PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,103.8984)/*17*/ ||PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,109.3594)/*18*/ ||PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,114.8125)/*19*/ ||PlayerToPoint(4.0, playerid,1787.1233,-1300.5280,120.2656)/*20*/;
    }
}

Hors ligne mjlayak

  • *
  • Tueur en série
  • Messages: 150
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #6 le: 29 Mars 2011, 20:59:43 »
Pour la condition tu fais .

if(Alletage(playerid))
{
....
return 1;
}


Par contre je penses que le code va faire que le joueur sera  Tp si la condition est juste , or il y a pas de condition juste puisque sa tp ,donc je penses que tu a raté .

Tu peux faire .

public Alletage(playerid)
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint( ... 5 fois
                        if(PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint( ... 5 fois
    if(PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint( ... 5 fois
                        if(PlayerToPoint(4.0, playerid,1786.5812,-1300.8330,13.6188) || PlayerToPoint( ... 5 fois
return 1;
   }
return 0;

}

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #7 le: 30 Mars 2011, 15:49:17 »
Mon problème s'éclaire un peu plus grâce à toi, merci :)
Cependant je reçois ce type d'erreur:

(58996) : warning 225: unreachable code
else
{
SendClientMessage(playerid, COLOR_WHITE, "Etage incorrect");
return 1;
}
58996 return 1;
}
else
        {
                            SendClientMessage(playerid, COLOR_WHITE, "Vous n'êtes pas devant l'acsenseur de l'immeuble");
                            return 1;
                        }
}
}

Hors ligne mjlayak

  • *
  • Tueur en série
  • Messages: 150
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #8 le: 30 Mars 2011, 16:21:42 »
Le Return 1; que tu a placé ne sert a rien .
Return 1; veut que , l'action ( la suite du code ) n'est plus lus , sa s'arete la . Et la ton return 1; et placé entre 2 morceaux de acolade fermante . Donc sa vient de la

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #9 le: 30 Mars 2011, 17:21:38 »
A quoi sert le return 1; dans mon else ?
(Au passage le return 1;  de 58996 c'est décalé vers la gauche au copié coller)

Les Return c'est pour faire revenir une variable en 1 ou 0 non ? ( genre en position inital ?)

Hors ligne mjlayak

  • *
  • Tueur en série
  • Messages: 150
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #10 le: 30 Mars 2011, 17:25:22 »
Sa veut dire que si la condition ( Else ) et utilisé , la lecture du code va stopé . Si tu en mes pas sa continue . Tu dois retirer le Return 1; de la ligne 58996

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #11 le: 31 Mars 2011, 09:52:47 »
Le warning "Unreachable code" indique que le compilateur a détecté qu'une partie de ton code ne sera jamais exécuté.

Dans ton cas (et même si on ne le voit pas dans le bout de script que tu as posté), tu as une condition avec un else. Soit deux blocs d'instructions (un bloc d'instruction c'est tout le code entre une accolade ouvrante et une accolade fermante).
Et dans chacun de tes blocs, tu fait un return qui force la sortie de la fonction.

Voici un exemple simple :

MafonctionALaCon (a)
{
   if (a==0)
   {
      return 0;
   }
   else
   {
      return 1;
   }

   return 2; // On atteindra jamais cette ligne puisque qu'on sortira de la fonction
             // soit par le return 0 soit par le return 1
             // Le compilateur te l'indique car c'est certainement un erreur de conception
}

Dans ton cas, ça ne prête peut-être pas a conséquence mais ce warning reste important et il convient de le corriger car il indique une erreur de conception de la fonction.

++
Syg
Courtesy of GtaManiac

Hors ligne Ytyse

  • *
  • Nouveau
  • Messages: 8
    • Voir le profil
Re : Millisecondes et Regroupement de fonction
« Réponse #12 le: 31 Mars 2011, 19:07:49 »
Merci à tous !
Tout me parait enfin clair et la commande marche à merveille !
 :D