• 03 Mai 2025, 22:42:59


Auteur Sujet: CMD /fouiller  (Lu 3130 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : CMD /fouiller
« Réponse #15 le: 10 Novembre 2009, 11:08:50 »
Sim : Ta fonction est exactement identique à celle que j'ai donné sauf que tu as ajouté plein de trucs qui ne servent à rien (les accolades, le forçage du 0 en fin de chaîne et le return 1). D'ailleurs, si tu enlèves tout ça, tu retombes sur la fonction de mon post précédent.
NB : En terme de rapidité, ta fonction fait deux instructions supplémentaires (affectation du 0 de fin de chaîne et return 1;) donc elle est forcément moins rapide.

Sazuke : Ta fonction est certainement moins rapide qu'un while qui n'a pas à décortiquer une chaîne de format. De plus, ce qui est gênant dans format, c'est le sizeof (Dest) qui dépend de la déclaration de la chaîne et qui n'est pas connu dans la fonction (ceci provoque un warning du compilo).
Le "%s" est ici inutile car la chaîne source peut tout à fait servir de format.
Voici une version peut-être moins rapide, en tous cas plus jolie :
strcpy (Dest[],Source[])
{
   format (Dest, strlen(Dest)+1, Source);
}
NB : Le & devant Dest n'est pas nécessaire ici car on a affaire à des tableaux qui sont toujours passés en paramètre en tant que pointeurs. D'ailleurs, en PAWN, ceci provoque une erreur

Sinon, on peut aussi utiliser memcpy (mais ce n'est pas la version la plus optimisée) :
strcpy (Dest[],Source[])
{
   memcpy (Dest, strlen(Dest)+1, Source);
}

NB : Pour les considérations de vitesse, tout ceci reste abstrait sur des machines aussi puissantes que les PC actuels, la différence de temps d'exécution entre ces fonctions est infime.

++
Syg
Courtesy of GtaManiac

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #16 le: 17 Novembre 2009, 18:35:08 »
Je n'y arrive toujours pas :/ j'ai chercher et chercher masi ça ne marche pas:/

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 #17 le: 18 Novembre 2009, 00:33:44 »
Salut,

pour l'affectation du 0...je n'avais pas pensé que le source est en fait copier dans la chaine destination puis testé ce qui entraine l'affectation du 0 puisque la source devrait le comprendre...

par contre, je trouve qu'il est pratique de placer un return à la fin de la fonction afin de pouvoir faire un test si la fonction s'est bien exécutée ou non...même si les risque d'erreurs graves sont très minces

mais en ce qui concerne le problème de scott1 (pour revenir au sujet original), ce serait bien de nous informer de la partie que tu n'arrive pas à faire. La fonction indiquée par Syg te permettant de donner le nom désirée à une arme fonctionne?
si c'est plutôt en ce qui concerne d'envoyer le message avec l'arme ou non, le dernier code de Syg (dans son super méga génial post du 9 novembre) devrait te permettre de comprendre comment y parvenir

++Sim++





Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #18 le: 18 Novembre 2009, 16:24:18 »
si c'est plutôt en ce qui concerne d'envoyer le message avec l'arme ou non, le dernier code de Syg (dans son super méga génial post du 9 novembre) devrait te permettre de comprendre comment y parvenir

++Sim++


J'ai essayer mais je n'y arrive pas :s
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 #19 le: 18 Novembre 2009, 18:37:11 »
donc cherche la commande dans le forum samp elle y est :)
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 #20 le: 19 Novembre 2009, 19:10:04 »
J'ai reussi merci.
Autre question, voici mon code

for(i = 1;i <= 12;i++)
{
GetPlayerWeaponData(giveplayerid,i,Player_Weapons[i],Player_Ammos[i]);
                            if(Player_Weapons[i] != 0)
{
new weaponName[256];
GetWeaponName(Player_Weapons[i],weaponName,255);
format(string, sizeof(string), "Arme: %s avec %d munitions",weaponName,Player_Ammos[i]);
SendClientMessage(playerid, COLOR_GREY, string);
}
}

Comment faire pour que si il n'y a aucune arme on me dise "Arme: Aucune"

Car quand je fait
for(i = 1;i <= 12;i++)
{
GetPlayerWeaponData(giveplayerid,i,Player_Weapons[i],Player_Ammos[i]);
                            if(Player_Weapons[i] != 0)
{
new weaponName[256];
GetWeaponName(Player_Weapons[i],weaponName,255);
format(string, sizeof(string), "Arme: %s avec %d munitions",weaponName,Player_Ammos[i]);
SendClientMessage(playerid, COLOR_GREY, string);
}
                                                        else
                                                                SendClientMessage(playerid, COLOR_GREY, "Arme: Aucune");
                                                        }
}

Il m'envoi 12fois arme aucune.

Merci
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 sizeof(Raw);

  • *
  • Criminel
  • Messages: 33
    • Voir le profil
Re : CMD /fouiller
« Réponse #21 le: 19 Novembre 2009, 19:15:25 »
Hmm, il faut que tu mette le else juste en dessous de ta callback déjà. ^^
Mes pseudos :

- World of Warcraft (WoW) : Lariewin
- San Andreas MultiPlayers : John_Moreno

Mon Serveur :

San Francisco RP : 18%


Mes réalisations :

- Anti-Nom, Anti-IP (v0.2)

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #22 le: 19 Novembre 2009, 20:41:36 »
Hmm, il faut que tu mette le else juste en dessous de ta callback déjà. ^^

T'inquiette ils sont alligné sur le gm, mais avec le fofo sa beug
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 #23 le: 19 Novembre 2009, 23:10:45 »
Salut,

ce que tu peut faire c,est une variable qui indique le nombre d'arme du joueur, il te suffit d'augmenter la valeur de la variable de 1 à chaque fois que tu trouve une arme
Par la suite, après la loop, si la variable n'a pas changé de valeur, c'est que le joueur n'a aucune arme

++Sim++





Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : CMD /fouiller
« Réponse #24 le: 20 Novembre 2009, 11:31:05 »
Salut,

ce que tu peut faire c,est une variable qui indique le nombre d'arme du joueur, il te suffit d'augmenter la valeur de la variable de 1 à chaque fois que tu trouve une arme
Par la suite, après la loop, si la variable n'a pas changé de valeur, c'est que le joueur n'a aucune arme

++Sim++

Et pour les noob comme moi ça veux dire?
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 #25 le: 20 Novembre 2009, 15:25:00 »
Salut,

....

ça veut dire un truc du genre:

on crée une petite variable;
for(une boucle sur toutes les armes)
{
    récupérer l'arme du joueur
    si (le joueur a une arme dans cet emplacement)
    {
        tu lui envoie ton message
        tu ajoute 1 à la variable créé au début
    }
}

allez, amuse toi ;)

++Sim++





Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : CMD /fouiller
« Réponse #26 le: 20 Novembre 2009, 16:32:32 »
Du style:

new armes;
for(i = 1;i <= 12;i++)
{
GetPlayerWeaponData(giveplayerid,i,Player_Weapons[i],Player_Ammos[i]);
                            if(Player_Weapons[i] != 0)
{
new weaponName[256];
GetWeaponName(Player_Weapons[i],weaponName,255);
format(string, sizeof(string), "Arme: %s avec %d munitions",weaponName,Player_Ammos[i]);
SendClientMessage(playerid, COLOR_GREY, string);
armes ++;
}
}
if(armes == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Arme: Aucune");
}
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