• 04 Juin 2026, 22:53:00


Auteur Sujet: Probleme texte pour une personne  (Lu 6001 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #15 le: 19 Septembre 2007, 20:41:40 »
ok mais la je compren dvrament plus rien  :blink  ;D car g preparer un code pour les armure mais sois i m'affiche pas le bon texte ou il y'a un bug au niveaut des pick up (i un autre apparait diretement quand je le prend) et don la fonction na pas le temps d'agire et donc le personne a tout sa vie le phenomene de la double appartition se manifester a partir deu deuxime pickup

new pickgp; //au debut apres les include

    //sf
pickgp = AddStaticPickup(1242, 2, -1614.8715,686.6466,7.1875);
pickgp = AddStaticPickup(1242, 2, -1617.3870,686.5842,7.1875);
pickgp = AddStaticPickup(1242, 2, -1614.8715,686.6466,7.1875);
pickgp = AddStaticPickup(1242, 2, -1619.9105,692.9993,7.1875);
pickgp = AddStaticPickup(1242, 2, -1600.9403,730.5913,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1599.4857,730.3182,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1596.2815,730.4917,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1590.8850,733.8392,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1593.2040,734.7852,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1595.4840,735.1523,-4.9063);
pickgp = AddStaticPickup(1242, 2, -1598.3239,735.3124,-4.9063);

//lv
pickgp = AddStaticPickup(1242, 2, 301.5684,170.4484,1007.1719);
pickgp = AddStaticPickup(1242, 2, 301.7295,172.0406,1007.1719);  //sa dans [b]OnGameModeInit[/b]

public OnPlayerPickUpPickup(playerid, pickupid){
{
if (pickupid == pickgp)
{
if(gTeam[playerid] == POLICE || gTeam[playerid] == ADM )
SendClientMessage(playerid,0x8000FFFF,"Ne le gaspille pas");
}else{
SendClientMessage(playerid,0xFF0000FF,"Desoler mais tu ne fait pas parti de la police");
SetPlayerArmour(playerid,0.0);
}

}
return 1;
} //sa ver la fin

je comprend pas ma faute elle dois etre toute bette mais je vois vraiment pas

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #16 le: 19 Septembre 2007, 21:37:56 »
Premièrement, tu utilises la même variable pour tous les pickups.
Si je te montre les lignes suivantes :
a=1;
a=2;
a=3;

Combien vaut a ?
3 bien évidement et bien pour tes pickups c'est pareil, ta variable contient l'ID du dernier pickup que tu as crée.

Deux cas se présente à toi :

1 - Si tu n'as que des armures comme pickups (c'est à dire que tu veux faire la même chose quand un joueur prend un pickup quelconque:

Oublies la variable pickgp, tu n'en n'as pas besoin.
Ton code devient donc :

   AddStaticPickup (1242, .......);

public OnPlayerPickUpPickup(playerid, pickupid)
{
   if(gTeam[playerid] == POLICE || gTeam[playerid] == ADM )
   {
      SendClientMessage(playerid,0x8000FFFF,"Ne le gaspilles pas");
   }
   else
   {
      SendClientMessage(playerid,0xFF0000FF,"Désolé mais tu ne fais pas partie de la police"); // J'ai corrigé les fautes au passage
      SetPlayerArmour(playerid,0.0);
   }
   return 1;
}


2 - Tu as plusieurs types de pickups :

Tu dois stocker les ID des pickups dans un tableau :

#define NB_MAX_ARMURES     13
new pickgp[NB_MAX_ARMURES];

   pickgp[0] = AddStaticPickup (1242, ....);
   pickgp[1] = AddStaticPickup (1242, ....);
   ...
   pickgp[12] = AddStaticPickup (1242, ....);

public OnPlayerPickUpPickup(playerid, pickupid)
{
   for (new j=0 ; j<NB_MAX_ARMURES ; j++)
   {
      if (pickupid == pigp[j])
      {
         if(gTeam[playerid] == POLICE || gTeam[playerid] == ADM )
         {
            SendClientMessage(playerid,0x8000FFFF,"Ne le gaspilles pas");
         }
         else
         {
            SendClientMessage(playerid,0xFF0000FF,"Désolé mais tu ne fais pas partie de la police"); // J'ai corrigé les fautes au passage
            SetPlayerArmour(playerid,0.0);
         }
         /* Permet de sortir de la boucle si on a trouvé le pickup */
         j = NB_MAX_ARMURES;
      }
   }
   return 1;
}


Deuxièmement, concernant les pickups, tu as mis 2 comme deuxième paramètre à ta fonction AddStaticPickup.
Si tu vas voir à ce lien, tu verras que 2 veux dire que le pickup réapparait au bout d'un certaint temps.
Pour que le pickup ne réapparaisse pas, il faut mettre la valeur 3, mais il ne réapparaitra plus jamais jusqu'au prochain redémarrage du mode.

++
Syg
Courtesy of GtaManiac

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #17 le: 19 Septembre 2007, 22:23:10 »
merci syg vraiment merci , ton en C et C++ doit etre haut car une boucle j'y aurait jamais pencer.

tu n'est certe pas un maitre jedi mais tu est un maitre codeur et encore je ne cite pas les insigne qui vont avec se grades

aller j'arrette le hs

ps; juste pour etre sur : "j" je peut mettre "a" "b" ou d'otre lettres a la place

pss : desoler pour les faute dans les texte mais je jongle entre mapping et codding donc je stres a fond car je me suis imposer une limite de temps

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #18 le: 20 Septembre 2007, 01:18:45 »
Oui Tetra-S, à la place de j tu peux mettre a, b ou NumeroPickUp ou JaimeLaSaucisseQuandElleEstFraiche, c'est toi qui choisi, faut juste éviter de mettre un mot reservé.

Pour les fautes, c'estparce que j'ai copié/collé ton code et que vu mon âge, je fais attention à l'orthographe.

++
Syg

Courtesy of GtaManiac

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #19 le: 20 Septembre 2007, 06:55:40 »
ok merci maintenant que g les clef en mains g plus que a les adater en fontion du pickup

ps : la page que tu ma donner regorge de lien mais aucun na un rapport avec les pickup et sur la page il n'y a rien sur les pickup appart le nombres max

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Re : Probleme texte pour une personne
« Réponse #20 le: 20 Septembre 2007, 13:59:12 »
Urbanghetto, ton test if (pick1) est erroné.
Un test c'est un comparaison entre deux valeurs et dans le tien, il n'y en a qu'une.

Par défaut, le compilateur va remplacer ton test pas if (pick1 != 0)
C'est à dire que si pick1 vaut 0, on n'exécute pas le code.
Par contre, pour toutes les autres valeurs 1,2,3, ... -1, -2, ..., le code sera exécuté.

Et pour le cas qui nous occupe, ton test aurait du être :
if (pickupid = = pick1)

++
Syg

Désolé j'été pas bien concentrer  :P

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #21 le: 20 Septembre 2007, 14:27:44 »
Tetra-S
Si si, le lien que je t'ai donné t'amène directement au post n° 1582 d'un certain Postaly qui traite des types de pickups.

Urbanghetto
Pas grave ça arrive à tout le monde de faire des erreurs.

++
Syg
Courtesy of GtaManiac

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Probleme texte pour une personne
« Réponse #22 le: 20 Septembre 2007, 14:40:09 »
Citer
Here's the pickup ID's for health, armor, and adrenaline pill:

1240 health
1241 adrenaline pill
1242 armor

enjoy.

Comme il a dis, Enjoy  ;)

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #23 le: 20 Septembre 2007, 18:53:25 »
SYG je crois que je v pleurer mais maitenant le message apparaisse plus je c vrament pas d'ou sa vien   ;D :dejadehors
sa m'enerve car j'en ai vraiment besion
public OnPlayerPickUpPickup(playerid, pickupid)
{
   for (new j=0 ; j<NB_MAX_ARMURES ; j++)
   {
      if (pickupid == pickgp[j])
      {
         if(gTeam[playerid] == POLICE || gTeam[playerid] == ADM )
         {
            SendClientMessage(playerid,0x8000FFFF,"Ne le gaspilles pas");
         }
         else
         {
            SendClientMessage(playerid,0xFF0000FF,"Désolé mais tu ne fais pas partie de la police"); // J'ai corrigé les fautes au passage
            SetPlayerArmour(playerid,0.0);
         }
         /* Permet de sortir de la boucle si on a trouvé le pickup */
         j = NB_MAX_ARMURES;
      }
   }
   return 1;
}

         if(gTeam[playerid] == POLICE || gTeam[playerid] == ADM )
j'ai tenter de remplacer le texte en rouge pas max_players mais sa me met un erreur
« Modifié: 20 Septembre 2007, 18:55:49 par Tetra-S »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #24 le: 20 Septembre 2007, 22:03:22 »
Ton erreur peux venir de plusieurs facteurs, il faudrait voir le script en entier pour le dire.

Mais bon, tout d'abord, il faut t'assurer que toutes les variables utilisées dans les tests ont la bonne valeur, c'est à dire être sûr qu'elles ont été initialisées correctement dans les autres parties de ton script.
Ceci concerne les variables pickgp[j] et gTeam[playerid].

Je pense que ton problème vient de pickgp[j] sinon on verrait quand même un des deux messages.
pickgp[j] doit être initialisée quand tu fais un appel à AddStaticPickup :

pickgp[0] = AdStaticPickup (...);
pickgp[1] = AdStaticPickup (...);
... etc

Donc regardes dans OnGameModeInit si tu fais bien ça.
Sinon, tu peux toujours mettre ton script dans le pastebin.

++
Syg
Courtesy of GtaManiac

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #25 le: 20 Septembre 2007, 22:25:55 »
ok normalement je ne donne pas mon script entier pour sa mais je v faire une exeption je post demain

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme texte pour une personne
« Réponse #26 le: 20 Septembre 2007, 22:57:35 »
Si tu veux pas montrer ton script à tout le monde, on peut faire ça par MSN.
Je t'ai envoyé un message privé pour de donner mon MSN.

++
Syg
Courtesy of GtaManiac