GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 06 Février 2010, 18:08:37
-
Salut, j'ai un problème, j'ai créer une fonction pour rename un fichier et un joueur, voilà la fonction principale de ce que j'ai fait :
SetPlayerName(giveplayerid, tmp);
format(string, sizeof(string), "AdmCMD: %s(%i) a changé votre nom en %s", sendername, playerid, tmp);
SendClientMessage(giveplayerid, COLOR_DBLUE, string);
format(string, sizeof(string), "AdmCMD: Vous avez changé le nom de l'ID %i en %s", giveplayerid, tmp);
SendClientMessage(playerid, COLOR_DBLUE, string);
format(string, 256, "AdmWarning: %s a changé le nom de %s en %s.", sendername,giveplayer, tmp);
ABroadCast(COLOR_YELLOW,string,1);
new string1[156];
format(string, sizeof(string), "%s.ini", giveplayer);
format(string1, sizeof(string1), "%s.ini", tmp);
frename(string, string1);
fremove(string);
Pourtant, ça créer le nouveau fichier et ca ne supprime pas l'ancien...
Help !
Double post
Désolé du double post, mais j'ai un autre problème.
Voilà ma condition :
if(string == "" && string1 == "" && string2 == "")
Voilà l'erreur :
error 001: expected token: "-string end-", but found "-identifier-"
Que faire pour réglé ce problème ? Merci !
-
Salut,
si ce que tu veut c'est testé si un string est vide, utilise plutôt la macro isnull de Y_Less:
#define isnull(%0) (%0[0] == '\0 || (%0[1] == '\0' && %0[0] == '\1'))
qui s'utilise:
if(isnull(string) && isnull(string1) && isnull(string2))
++Sim++
-
error 027: invalid character constant
:blink
-
suffit d'ouvrire l'oeil
#define isnull(%0) (%0[0] == '\0' || (%0[1] == '\0' && %0[0] == '\1'))
-
Ah oui, j'avais pas vu.
Un peu up pour ma première question, le frename du plugin de YSF ne marche pas, et donc je sais pas comment faire.
-
Salut,
bah tu peut faire une fonction en PAWN:
stock filerename(original[], newname[])
{
new ret = 0;
if(!fexist(newname))
{
new File:ofile, Float:nfile;
ofile = fopen(original, io_read);
if(ofile)
{
nfile = fopen(newname, io_write)
if(nfile)
{
new tmp[256];
while(fread(ofile, tmp, sizeof(tmp)))
{
fwrite(nfile, tmp);
}
fclose(nfile);
ret = 1;
}
fclose(ofile);
}
}
return ret;
}
ps. code fais rapidement et non-testé, il peut comporter certaines erreurs
++Sim++
-
Merci, ça marche, mais pas totalement, ça créer le nouveau fichier mais ne supprime pas l'ancien...
J'ai fait un fremove(originale); mais ça ne marche pas.
-
Up !
-
Salut,
j'ai déjà entendu un truc de ce genre, je crois que fremove n'enlève pas vraiment le fichier, il ne fait qu'effacer les données contenues dans le fichier...faudrait vérifier....
++Sim++
-
Salut,
j'ai déjà entendu un truc de ce genre, je crois que fremove n'enlève pas vraiment le fichier, il ne fait qu'effacer les données contenues dans le fichier...faudrait vérifier....
++Sim++
Ou sinon regarder dans le Dini car lui enleve tout car je l'utilise pour suprimer des course
-
Salut,
Salut,
j'ai déjà entendu un truc de ce genre, je crois que fremove n'enlève pas vraiment le fichier, il ne fait qu'effacer les données contenues dans le fichier...faudrait vérifier....
++Sim++
Ou sinon regarder dans le Dini car lui enleve tout car je l'utilise pour suprimer des course
dini ne fait que rediriger vers fremove...
essaie de regarder si tu donne le bon fichier (avec le bon dossier et tout)
++Sim++
-
Aaaaa, le dossier, j'ai carrément loupé xD