• 06 Juin 2026, 10:52:31


Auteur Sujet: Suppression de ce qu'il y a avant une lettre.  (Lu 2413 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Suppression de ce qu'il y a avant une lettre.
« le: 07 Juillet 2009, 21:02:37 »
Bonsoir,
Je souhaiterais supprimer ce qu'il y a avant un caractère spécial, par exemple Tintin_Milou, il n'y a que le "Milou" qui s'enregistre dans une variable.
j'ai déjà trouvé ça dans un script, mais ca ne prend que "Tintin"..

new playername2[MAX_PLAYER_NAME];
new playernamesplit[3][MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
split(playername2, playernamesplit, '_');

/cartman

  • Invité
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #1 le: 07 Juillet 2009, 21:59:54 »
un truque tou béte tu a esayer d'inverser " playernamesplit, '_'   " ?

ou au pir de définir le prénon devant ?? =>    " playerPRéNONplit, '_' , playerNONplit "   .

je c'est pas si sa marche test ;)

++

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #2 le: 07 Juillet 2009, 22:33:04 »
Bah.. non  :(
Je pense que c'est comme le PHP, avec les "explode", mais ca marche pas..

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #3 le: 07 Juillet 2009, 23:43:52 »
Salut,

passe par un strfind et format

un indice supplémentaire:

new idx = strfind(name, "_", true);
format(tavariable, sizeof(tavariable), "%s", name[idx]);

++Sim++





Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #4 le: 08 Juillet 2009, 11:18:01 »
Si je met un new idx, ca me met pleins de shadows variable  ???

new idx = strfind(name, "_", true); format(string, sizeof(string), "%s %s dit: %s", playernamesplit1[0],name[idx], text);

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #5 le: 10 Juillet 2009, 22:31:56 »
Up  ;)

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #6 le: 11 Juillet 2009, 16:40:00 »
Salut,

c'est simplement parce que idx est déjà défini, si tu ne t'en sert plus après cette petite parcelle de code, tu peut simplement enlever le new, sinon change le nom de la variable

++Sim++





Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #7 le: 12 Juillet 2009, 11:48:59 »
Je n'y arrive toujours pas :

new name;
GetPlayerName(playerid, name, sizeof(name));
new idx = strfind(name, "_", true);
format(string, sizeof(string), "%s", name[idx]);

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #8 le: 24 Août 2009, 16:27:19 »
Je reprend le topic, UP !

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #9 le: 24 Août 2009, 16:31:21 »
Sim voulait dire ceci

new idx5 = strfind(name, "_", true);
format(tavariable, sizeof(tavariable), "%s", name[idx5]);
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 ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #10 le: 25 Août 2009, 08:11:32 »
Tout ça m'a l'air bon, aucune erreur, je vais tester.
Merci à vous !

Double post
Arf, ça ne marche pas.
Je vais vous donner mon code complet :

GetPlayerName(playerid, sendername, sizeof(sendername));
new name[MAX_PLAYERS];

new idx5 = strfind(name, "_", true);
new playernamesplit[3][MAX_PLAYER_NAME];
split(sendername, playernamesplit, '_');

if(!IsPlayerInAnyVehicle(playerid))
{
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "Un inconnu dit: %s", text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
else
{
format(string, sizeof(string), "%s %s dit: %s", name[idx5], playernamesplit[0], text);
    //format(string, sizeof(string), "%s", name[idx]);
    ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
}

Ca me dit :
Citer
Machin_Truc: Text
Il n'y a même pas le "dit:", je ne comprend pas...

Merci de m'aider !
« Modifié: 25 Août 2009, 08:39:49 par lepro49 »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #11 le: 25 Août 2009, 09:30:17 »
en gros j'ai rien compris a t'on histoire
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 ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #12 le: 25 Août 2009, 09:32:40 »
Arf, je viens de recorriger quelque chose, mais il y a toujours un truc qui va pas.
Donc voilà mon script :
GetPlayerName(playerid, sendername, sizeof(sendername));
new name[MAX_PLAYER_NAME];
new sendername1[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new idx5 = strfind(name, "_", true);
new playernamesplit[3][MAX_PLAYER_NAME];
split(sendername1, playernamesplit, '_');

if(!IsPlayerInAnyVehicle(playerid))
{
if(PlayerInfo[playerid][pMaskuse] == 1)
{
format(string, sizeof(string), "Un inconnu dit: %s", text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
else
{
format(string, sizeof(string), "%s %s dit: %s",playernamesplit[0],name[idx5],text);
    //format(string, sizeof(string), "%s", name[idx]);
    ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
}

Le problème c'est que quand je l'utilise IG, voilà ce que j'obtient :
Citer
_Truc dit : texte
Alros que mon nom est Machin_Truc.
Je ne trouve pas l'erreur...
Et ce que je veux est :
Citer
Machin Truc dit : Texte

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #13 le: 25 Août 2009, 09:41:13 »
ah je comprend mieux ^^ mais je n'est pas reponse la personnellement "_" sa vaut un espace donc bon
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 ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Suppression de ce qu'il y a avant une lettre.
« Réponse #14 le: 25 Août 2009, 10:06:39 »
Justement, au final il faut remplacé ça par un espace.