• 07 Mai 2025, 05:41:16


Auteur Sujet: CMD /fouiller  (Lu 3132 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
CMD /fouiller
« le: 06 Novembre 2009, 19:01:02 »
Bonsoir a tous, j'ai créer cette commande:


    http://pastebin.com/m475e1890

Quand je fait /fouiller il me dit toujours arme: Aucune
« Modifié: 08 Novembre 2009, 12:33:42 par scott1 »
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : CMD /fouiller
« Réponse #1 le: 06 Novembre 2009, 23:40:28 »
Sa vient du GetPlayerWeaponData car toutes les armes que tu vérifie ne viennent pas forcement du slot n°1.

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #2 le: 07 Novembre 2009, 16:17:09 »
mais si j'ai une arme elle est automatiquement dans le slot 1 si je l'est pas en main?
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : CMD /fouiller
« Réponse #3 le: 07 Novembre 2009, 16:47:21 »
Salut,

le slot de l'arme correspond à son type

par exemple une mitraillette n'est pas dans le même slot que le m4 ou encore le minigun

++Sim++





Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #4 le: 07 Novembre 2009, 18:31:37 »
Peut tu me dire a quoi correspond le slot 1 stp ? Car j'ai copîer d'un code préexistant que j'ai transformer et en cmd.
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : CMD /fouiller
« Réponse #5 le: 07 Novembre 2009, 23:24:20 »
Tiens, vas à ce lien : http://wiki.sa-mp.com/wiki/Weapons

Sinon :
- GetPlayerWeaponData donne l'arme que possède le joueur dans un slot donné. On se sert de cette fonction pour faire la liste des armes que possède un joueur (cf plus bas).
- GetPlayerWeapon sert à connaître l'arme que le joueur à en main (celle qu'il est en train d'utiliser)

Il y a un slot par type d'arme et chaque slot ne peux contenir qu'une seule arme (ce qui explique pourquoi on ne peux pas avoir en même temps un couteau et une batte de basebal ou un 9mm et un Desert Eagle)

Voici un bout de script qui permet de récupérer pour chaque slot l'arme que le joueur possède (donc au final de faire la liste de toutes les armes possédées par le joueur) :
new Armes[13][2];
for (i=0 ; i<12 ; i++)
{
  GetPlayerWeaponData (Target, i, Armes[i][0], Armes[i][1]);
}
Une fois ce bout de script exécuté, le tableau Armes contient pour chaque slot, l'arme et le nombre de munition.
Si on trouve la valeur -1 comme arme c'est que le slot est vide (le joueur ne possède pas d'arme de ce type).
Certaines armes sans munitions (parachute ou couteau par exemple) ont -1 comme nombre de munitions.

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #6 le: 08 Novembre 2009, 12:35:42 »
Je ne vois pas comment je pourrai intégré ceci dan smon code, car il enverai toujours le meme nom de l'arme puisque les nom sont les même pour les 13slot :/
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : CMD /fouiller
« Réponse #7 le: 08 Novembre 2009, 13:28:51 »
sa te renveras seulement si il y a une arme dans le slot
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #8 le: 08 Novembre 2009, 14:06:58 »
En fait j'aimerai que si il a une arme on lui envoi Arme: Nomarme avec x munitions
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : CMD /fouiller
« Réponse #9 le: 09 Novembre 2009, 09:43:51 »
Si tu veux savoir le nom de l'arme que le joueur à dans le main, tu fais un GetPlayerWeapon et tu convertis l'ID retourné par cette fonction en nom. Ensuite, si l'ID est différent de -1, tu fais un GetPlayerAmmo pour connaître le nombre de munition (si le nombre de munitions est -1 c'est que l'arme en question n'a pas de munition).
Pour convertir l'ID de l'arme en nom, tu t'aides du lien que je t'ai donné dans ma première réponse.

Sinon, tu parcours le tableau Arme après l'avoir rempli et chaque fois que Arme[ i ][0] != -1, tu convertis en nom et tu utilise Arme[ i ][1] pour avoir le nombre de munitions.

Je te conseille la deuxième solution car il semblerait que GetPlayerAmmunition ne fonctionne pas selon le Wiki SAMP mais je n'ai pas testé cette fonction.

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #10 le: 09 Novembre 2009, 16:57:27 »

Sinon, tu parcours le tableau Arme après l'avoir rempli et chaque fois que Arme[ i ][0] != -1, tu convertis en nom et tu utilise Arme[ i ][1] pour avoir le nombre de munitions.


Pas compris :D
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : CMD /fouiller
« Réponse #11 le: 09 Novembre 2009, 22:21:25 »
"Parcourir un tableau" veut dire "tester chacun de ses éléments".
"Remplir un tableau" veut dire "affecter une valeur à chacun de ses éléments".
"Convertir en nom" veut dire "transformer un chiffre (l'ID de l'arme) en mot (le nom de l'arme)"
"Utiliser un élément du tableau" veut dire "se servir de sa valeur".

Comme tu risques de me dire que tu ne comprend pas mieux, je vais te donner un petit bout de code (que je ne vais pas tester).
A toi de le compléter.

Tout d'abord, une ébauche d'un fonction qui converti un ID d'arme en nom d'arme :
strcpy (Dest[], Source[])
{
new i=0;
while ((Dest[i]=Source[i])) i++;
}

DonnerNomArme (IDArme, NomArme[])
{
   switch (IDArme)
   {
      case 0:
      {
         strcpy (NomArme, "Non armé");
      }
      case 1:
      {
         strcpy (NomArme, "Poing américain");
      }
      case 2:
      {
         strcpy (NomArme, "Club de golf");
      }

      /* A TOI DE COMPLETER */

      default:
      {
         strcpy (NomArme, "Aucune arme");
      }
   }
}

Ensuite, une petite boucle qui affiche le nom de toutes les armes d'un joueur (avec le nombre de munition associé le cas échéant)
new i;
new Arme;
new Munitions;
new NomArme[128];

/* Boucle sur les slots du joueur */
for (i=0 ; i<12 ; i++)
{
   GetPlayerWeaponData (playerid, i, Armes, Munitions);

   /* Si il y a une arme dans ce slot */
   if (Arme != -1)
   {
      /* On récupère le nom de l'arme */
      DonnerNomArme (Arme, NomArme);

      /* Si il y a des munitions pour cette arme */
      if (Munitions != -1)
      {
         printf ("Slot %d : %s avec %d munition(s)", i, NomArme, Munitions);
      }
      else
      {
         printf ("Slot %d : %s", i, NomArme);
      }
}
NB : Tu peux remplacer les printf par des format suivis de SendClientMessage

PS : Je vous laisse admirer ma fonction strcpy (ou comment rendre presque incompréhensible quelque chose de très simple).

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #12 le: 09 Novembre 2009, 22:29:35 »


PS : Je vous laisse admirer ma fonction strcpy (ou comment rendre presque incompréhensible quelque chose de très simple).

++
Syg

Bien se que je me disait tu est tordu ! ^^ Grand merci j'essayerai demain
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #13 le: 10 Novembre 2009, 03:06:33 »
Salut,

PS : Je vous laisse admirer ma fonction strcpy (ou comment rendre presque incompréhensible quelque chose de très simple).

je la fait pratiquement de la même façon :P

on peut aussi l'écrire de plein d'autres façons, celle de Syg étant la plus simple,

je préfère néanmoins celle ci:

strcpy(Dest[], Source[])
{
    new i = 0;
    while((Dest[i] = Source[i]))
    {
        i++;
    }
    Dest[i] = '\0';//on marque la fin du string pour être certain
    return 1;
}

++Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : CMD /fouiller
« Réponse #14 le: 10 Novembre 2009, 07:55:22 »
Moi comme cella

strcpy (&Dest[],Source[])
{
format(Dest,sizeof(Dest),"%s",Source);
}

^^ encore moi compliquez lol



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog