GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nikko™ le 19 Janvier 2009, 20:59:25

Titre: Quesition .. bug..
Posté par: Nikko™ le 19 Janvier 2009, 20:59:25
Bonsoir à tous,

Voila, jai mit un chat admin, et j'ai ajouter une fonction (qui vien du R@S) qui permet de stocker les phrase dans un scriptfile.
Voila la commande+fonction:

if(strcmp(cmdtext, "!!", true, 2) == 0)
{
if(AdminLvL[playerid] < 1)  return 1;
new tmp[255];
new tmpp[256];
new tmppp[256];
        new pName[MAX_PLAYER_NAME];
  new Year, Month, Day;
new Hour, Minute;
gettime(Hour, Minute);
getdate(Year, Month, Day);

tmp = strtok (cmdtext, idx);
        GetPlayerName(playerid, pName, sizeof(pName));
if (strlen (tmp) == 0)
{
SendClientMessage(playerid, COLOR_ORANGE, "Utilisation: !! (texte)");
return 1;
}
if (strlen (cmdtext[3]) != 0)
{
format(tmpp, sizeof(tmpp), "[Admin Chat] %s: %s", pName, cmdtext[3]);
SendAdminChat(vertfluo, tmpp);
format(tmpp, sizeof(tmpp), "[%02d/%02d/%02d][%02dh%02d][Admin Chat] %s: %s", Day, Month, Year, Hour, Minute,pName, cmdtext[3]);
}
ACL(tmppp);
return 1 ;
}

ACL(string[])
{
new tmp[256];
format(tmp, sizeof(tmp), "%s \r\n",string);
new File:hFile;
hFile = fopen("LOGS/Adminchat.txt", io_append);
fwrite(hFile, tmp);
fclose(hFile);
}

Le probleme c'est que la phrase avec la date et l'heure ne veut pas s'afficher dans le log. Si je choisi d'enregistrer la phrase SANS la date, ca marche ...
(je précise, la date c'est uniquement pour le log, pas ingame ..)
Voila si vous trouvé la solution .. :)
MErci

++
nikko
Titre: Re : Quesition .. bug..
Posté par: Azz45 le 19 Janvier 2009, 21:04:16
Salut,

Tu veut juste que sa affiche la date?

Titre: Re : Quesition .. bug..
Posté par: Nikko™ le 19 Janvier 2009, 21:18:37
En fait, jai fait en sorte que quand on fasse la commande, ca affiche normal ingame aux admin.
Mais que ca mette la date, et heure + le texte dans le log.

++
nikko
Titre: Re : Quesition .. bug..
Posté par: Azz45 le 19 Janvier 2009, 21:30:59
Exemple :


In Game /a et nikko est un low a css ( exemple )

et que sa fasse automatiquement


/chatadmin.log ( car il doit être en .log ) 21:30 19/01/2009 : /a et nikko est un low a css.

Inspire toi du kick.log ( d'un mod RPG ) ou du /report ( de rAF ).
Titre: Re : Quesition .. bug..
Posté par: Nikko™ le 19 Janvier 2009, 21:37:34
Ouai ca fait casiment ca.
Mais lce que je ne comprend pas, c'est qu'avec un log de chat général (je fait des autres log car je ne peux pas lire le log original [brouiillé par linux])

J'ai mi ca dans onplayertext, et ca marche niquel, ca met met dans un fichier 'chat.txt'
new idx;
new tmp[255];
    new pName[MAX_PLAYER_NAME];
new tmpp[256];
new Year, Month, Day;
new Hour, Minute;
gettime(Hour, Minute);
getdate(Year, Month, Day);
tmp = strtok (text, idx);
    GetPlayerName(playerid, pName, sizeof(pName));
format(tmpp, sizeof(tmpp), "[%02d/%02d/%02d][%02dh%02d][%s]: %s", Day, Month, Year, Hour, Minute,pName, text);
CGL(tmpp);

Resultat dans le log: [19/12/2008][21h33][Nikko]: lool
Je vois vraiment pas ce qui cloche dans l'autre truc ...

++
nikko
Titre: Re : Quesition .. bug..
Posté par: Azz45 le 19 Janvier 2009, 21:55:03
Problème résolu sur msn.
Titre: Re : Quesition .. bug..
Posté par: Nikko™ le 19 Janvier 2009, 22:02:11
Oui probleme résolu, je donne quand meme la raison, jai inversé le tmpp et le temppp ^^ Tout bete.
Merci quand meme.

++
nikko
Titre: Re : Quesition .. bug..
Posté par: S!m le 23 Janvier 2009, 03:43:44
Salut,

ce problème à été résolu il y a maintenant 3 jours mais je viens proposés de petites optimisations à ce code.

Premièrement, il contient plein de variables inutiles,
Deuxièmement, les string sont d'une taille inutile (longueur maximale des textes provenant du client: 128)
Troisièmement, bah c'est pas mal ça....

new tmp[172];//environ car on as un max de 128 pour le texte, 24 pour le nom en ajoutant les heures/dates,
//on pourrait également faire un #define MAX_STRING 128 et mettre MAX_STRING+MAX_PLAYER_NAME+22 pour la longueur du string (expression constante)
        new pName[MAX_PLAYER_NAME];
new Year, Month, Day;
new Hour, Minute;
gettime(Hour, Minute);
getdate(Year, Month, Day);
        GetPlayerName(playerid, pName, sizeof(pName));
format(tmp, sizeof(tmp), "[%02d/%02d/%02d][%02dh%02d][%s]: %s", Day, Month, Year, Hour, Minute,pName, text[3]);
CGL(tmp);

++Sim++
Titre: Re : Quesition .. bug..
Posté par: Nikko™ le 23 Janvier 2009, 12:37:24
D'ailleur, jai encore une petite question au sujet d'un probleme.
Quand je test ce code sur mon ordi, tout va bien, tout s'enregistre tres bien, mais quand je le met en ligne (il est hebergé sur linux il me semble) et bah ca ne marche pas...
Et je me demande POURQUOI ? ^^

++
nikko
Titre: Re : Quesition .. bug..
Posté par: spykerc8 le 23 Janvier 2009, 16:52:54
Une des fonctions ne doit pas fonctionner sous linux.
Titre: Re : Quesition .. bug..
Posté par: Nikko™ le 23 Janvier 2009, 17:28:26
j'aimerai bien savoir par quoi je peu les remplacées.
En fait, je fait tout ca car je ne peux peu pas lire le log, il est illisible, des symboles entre toutes les phrases ... enfin bref ...
Je sais pas quoi faire ..

++
nikko

EDIT: pb réglé, il suffisait d'ouvrir le log avec un autre type de fichier (word)