• 05 Juin 2026, 04:16:03


Auteur Sujet: Changer le nom d'un fichier dini  (Lu 1684 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne LePtitClown

  • [M2R]LePtitClown
  • *
  • Bandit
  • Messages: 342
    • Voir le profil
Changer le nom d'un fichier dini
« le: 10 Juin 2012, 16:15:21 »
Slt

Est il possible de changer le nom d'un fichier dini directement dans le jeu tout en gardant les variables qu'il contient

Merci d'avance

A+ ;)

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : Changer le nom d'un fichier dini
« Réponse #1 le: 10 Juin 2012, 16:47:43 »
Regarde du coté de DINI_fcopytextfile(oldname[],newname[]);, ca risque de t'interesser ;)

Hors ligne LePtitClown

  • [M2R]LePtitClown
  • *
  • Bandit
  • Messages: 342
    • Voir le profil
Re : Changer le nom d'un fichier dini
« Réponse #2 le: 10 Juin 2012, 17:57:42 »
ça a l'air de correspondre, merci. Plus qu'à décrypter tout ça

Résultat des comptes, tout n'est pas copié. Je m'explique, il y a juste le nom des variables qui est copié mais en aucun cas leur contenu. Voici mon code:

dcmd_asetname(playerid,params[])
{
    if(leveladmin[playerid] >1 || IsPlayerAdmin(playerid))
    {
if(dini_Exists(CompteJoueur(playerid)))
{
new pid,idx, tmp[256], tmpp[256];
tmpp = strtok(params, idx);
if (!strlen(tmpp))
{
SendClientMessage(playerid, COLOR_ADMINCMD, "USAGE: /asetname [playerid] [nouveau pseudo pour compte]");
return 1;
}
pid = strval(tmpp);
if (!(IsPlayerConnected(pid)))
{
SendClientMessage(playerid, COLOR_ADMINCMD, "Ce joueur n'est pas connecté!");
return 1;
}
   if(PI[pid][car] != -1)
{
   ERRORMSG("Vous ne pouvez pas renommer ce joueur car il a un véhicule (risque de bug)");
}
new ancienpseudo[MAX_PLAYER_NAME];
GetPlayerName(pid,ancienpseudo,sizeof(ancienpseudo));

new str3[MAX_PLAYER_NAME+20];//avant c'était +5
format(str3,sizeof(str3),"%s.data",ancienpseudo);

tmp = strtok(params, idx);
SetPlayerName(pid,tmp);
new nouveaupseudo[MAX_PLAYER_NAME];
GetPlayerName(pid,nouveaupseudo,sizeof(nouveaupseudo));
GetPlayerName(pid, initialname[pid], 100);

new str4[MAX_PLAYER_NAME+20];
format(str4,sizeof(str4),"%s.data",nouveaupseudo);
DINI_fcopytextfile(str3,str4);

login(pid);
format(string2, sizeof(string2), "[ADMIN] On a changé le pseudo lié à ton compte en %s. Tu devras donc déormais utilisé ce pseudo pour ton compte ", nouveaupseudo);
SendClientMessage(pid,COLOR_INFO, string2);
}
}
else
{
   SystemMsg(playerid,"Vous n'avez pas le niveau requis pour utiliser cette commande");//rajoutertest
}
return 1;
}
« Modifié: 10 Juin 2012, 19:58:24 par LePtitClown »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Changer le nom d'un fichier dini
« Réponse #3 le: 10 Juin 2012, 21:46:30 »
bizard je n'ai jamais eu ce soucis
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 LePtitClown

  • [M2R]LePtitClown
  • *
  • Bandit
  • Messages: 342
    • Voir le profil
Re : Changer le nom d'un fichier dini
« Réponse #4 le: 11 Juin 2012, 11:51:56 »
Le fait que tu n'es jamais eu ce soucis m'a fait réfléchir. J'ai donc regardé ce que j'avais de différent.
Voici la bête noire: login(pid);

Cette fonction stock qui me permet normalement de loguer les différentes variables du compte. Comme elle n'est pas vraiment utile à cette endroit vu qu'il s'agit juste d'un changement de pseudo, je l'ai viré et ça marche nickel:

Un grand merci à vous deux :)

A+ ;)