• 03 Mai 2025, 11:45:04


Auteur Sujet: Aide pour une commande  (Lu 1625 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Aide pour une commande
« le: 06 Décembre 2010, 00:07:06 »
Bonjour,

J'ai besoin d'aide pour "finaliser" une commande.

Enfaite, lorsqu'un admin banni un joueur, il doit commenter son ban, le commentaire et ensuite sauvegardé dans un fichier texte.
La commande est :
!COMMENTAIRE
et sa enregistre dans Banlog.txt :
|Commentaire BAN| Admin: X | Commantaire: COMMENTAIRE
Actuellement tout fonctionne mais je souhaiterais faire pour que sa enregistre:
|Commentaire BAN| Admin: X | Joueur bannis: NOM | Commentaire: COMMENTAIRE

Il faut que l'admin tape le nom du joueur vu qu'il vient d'être bannis, exemple:
!martin commentaire
Qui enregistrerait :
|Commentaire BAN| Admin: X | Joueur bannis: martin | Commentaire: commentaire

Mais je ne sais pas comment faire du tout, voici mon code :
public OnPlayerText(playerid, text[])
{
if(text[0] == '!' && AccInfo[playerid][Level] >= 1)
{
   new string[128]; GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"|Commentaire BAN| Admin: %s | Commentaire: %s.",string,text[1]);
SaveIn("BanLog",string);
SendClientMessage(playerid,red,"Merci d'avoir d'ajouté plus d'informations à votre ban, votre commentaire doit être COMPLET (circonstances, préciser la raison, duré du ban...).");
   return 0;
}


Merci de votre aide :)
« Modifié: 06 Décembre 2010, 00:16:28 par Winklevows »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Aide pour une commande
« Réponse #1 le: 06 Décembre 2010, 00:16:08 »
Pour pouvoir récupérer le nom du joueur et celui de l'admin, il faudrait demander plus d'information en commentaire.
Par exemple:


![ID] [Commentaire]
! - Ajout d'un commentaire
ID - ID du joueur (pas de l'admin, l'ID de l'admin est contenue dans playerid)
Commentaire - Commentaire !

Je te conseillerais de donner des noms explicites à tes commandes...


/ajoutercommentaire [ID] [Commentaire]
! - Ajout d'un commentaire
ID - ID du joueur (pas de l'admin, l'ID de l'admin est contenue dans playerid)
Commentaire - Commentaire !

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Aide pour une commande
« Réponse #2 le: 06 Décembre 2010, 00:35:03 »
Merci de ta réponse mais j'ai pas trop compris ^^

En faite, ma commande commentaire enregistre plus d'information sur la raison d'un ban dans un fichier texte.
Par exemple, un admin bannis le joueur "antoine" pour spam (/ban id raison)
Une semaine plus tard ce joueur vient sur mon forum faire une demande de "débannisage" :
"Bonjour, mon pseudo a été bannis pour spam mais je n'ai absolument pas spammé quoi que ce soit"
Là, je vais voir mes logs, effectivement Antoine a bien été bannis pour spam mais je n'en sais pas plus.
MAIS vu que l'admin qui l'a bannis à commenté son ban, je peux lire que Antoine a été bannis par Mathieu, et que Mathieu a indiqué : "il a spammé 13 fois le texte "Vive moi, fuck les autres", ne pas le débannir s'il fait une demande car il perturbait tout le monde"

Ma commande permet déjà d'enregistrer DANS le fichier text BanLogs le nom de l'admin, et la description de son ban.

je voudrais que si par exemple il tape !Antoine il a spammé 13 fois le texte "Vive moi, fuck les autres", ne pas le débannir s'il fait une demande car il perturbait tout le monde

Sa enregistre DISTINCTEMENT Antoine de il a spammé..... et donc que sa enregistre dans le fichier:
|Commentaire BAN| Admin: %s | Nom du joueur: %s | Commantaire: %s.

A l'heure actuelle sa enregistre :
|Commentaire BAN| Admin: Mathieu | Nom du joueur: Antoine il a spammé 13 fois le texte "Vive moi, fuck les autres", ne pas le débannir s'il fait une demande car il perturbait tout le monde | Commantaire: %s.

Normal car il ne discerne pas le nom du joueur et le commentaire.

Et je ne peux pas récupérer le nom du joueur ou son id, car le joueur est déjà bannis (donc plus sur serveur).

En résumé je voudrais faire que CEQUEJETAPEICI "se mette" dans %s

pour après si je fais
!CEQUEJETAPEICI1 CEQUEJETAPEICI2
sa enregistre le fichier :
blablabla CEQUEJETAPEICI1 blablalbla CEQUEJETAPEICI2
« Modifié: 06 Décembre 2010, 00:42:20 par Winklevows »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Aide pour une commande
« Réponse #3 le: 06 Décembre 2010, 00:44:29 »
Le mieux serait que tu te créé ta fonction pour bannir des personnes et que tu enregistre les informations dans un autre fichier.

Pourquoi ?

- Tu pourra être plus à l'aise pour ajouté des logs
- Tu pourra utiliser la fonction Ban

Référence:

- http://www.gtaonline.fr/forums/index.php/topic,8555.0.html
- http://wiki.sa-mp.com/wiki/Ban

Dernier conseil, effectue toutes les actions tels que l'ajout de logs, etc... avant de bannir l'utilisateur !
Le mieux est de créer une commande pour bannir les utilisateurs et ajouter un commentaire en même temps !



Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Re : Aide pour une commande
« Réponse #4 le: 06 Décembre 2010, 00:51:12 »

Le mieux est de créer une commande pour bannir les utilisateurs et ajouter un commentaire en même temps ![/b]


J'y ai pensé mais je me suis dit que c'était plus simple de pas le faire en même temps.

Je veux bannir l'id 4:
/ban [id] [raison] [commentairepourlesadmins]
donc je fais :
/ban 4 maraison moncommentaire
L'id 4 voit sur son écran :
Vous avez été bannis par Admin. Raison : maraison

Mais bien sur sans lui afficher le commentaire pour les admins.

Je pense pas que sa soit possible pour sa que je voulais le faire séparer
« Modifié: 06 Décembre 2010, 00:52:44 par Winklevows »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Aide pour une commande
« Réponse #5 le: 06 Décembre 2010, 00:52:59 »
Le plus simple est de tout faire en même temps et de le bannir à la fin de ces opérations.
Avec les liens que je t'ai donné, tu devrais facilement pouvoir faire ce que tu désire !

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Aide pour une commande
« Réponse #6 le: 06 Décembre 2010, 01:02:46 »
Merci :)

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Re : Aide pour une commande
« Réponse #7 le: 06 Décembre 2010, 01:06:52 »
Le plus simple est de tout faire en même temps et de le bannir à la fin de ces opérations.
Avec les liens que je t'ai donné, tu devrais facilement pouvoir faire ce que tu désire !


Ceci est encore mieux

http://wiki.sa-mp.com/wiki/BanEx
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 Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Aide pour une commande
« Réponse #8 le: 06 Décembre 2010, 01:12:37 »
Je ne pense pas que ceci corresponde à ses attentes, c'est pour cela que je lui est conseillais d'utiliser Ban et d'ajouter une trace du bannissement dans un fichier indépendant.

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Aide pour une commande
« Réponse #9 le: 06 Décembre 2010, 01:15:38 »
public BanLog(string[])
{
new entry[256];
format(entry, sizeof(entry), "%s\n",string);
new File:hFile;
hFile = fopen("ban.log", io_append);
fwrite(hFile, entry);
fclose(hFile);
}
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 Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Aide pour une commande
« Réponse #10 le: 06 Décembre 2010, 01:25:18 »
Pour l'exemple, j'ai utilisé zcmd de Zeex et sscanf2 de Y_Less, il est tard donc j'ai un peu la flème !

#include <a_samp>
#include <zcmd>
#include <sscanf2>

main(){}

CMD:bannir(playerid, params[])
{
new bannedplayerid = 0, reason[256], admincomment[256];

if (sscanf(params, "iss", bannedplayerid, reason, admincomment))
{
SendClientMessage(playerid, 0xFFFFFFAA, "Usage: /bannir <id> <raison> <commentaire>");
   
return 0;
}
else
{
new adminname[256], playername[256], string[256];
   
GetPlayerName(playerid, adminname, sizeof(adminname));
GetPlayerName(bannedplayerid, playername, sizeof(playername));
   
format(string, sizeof(string), "Vous avez été banni par %s (Raison: %s)",  adminname, reason);
SendClientMessage(playerid, 0xFFFFFFAA, string);
   
new File:BansLogs;

BansLogs = fopen("bans.log", io_write);
   
format(string, sizeof(string), "Pseudo: %s (ID: %d) | Raison: %s | Commentaire: %s\n", playername, bannedplayerid, reason, admincomment);

fwrite(BansLogs, string);
fclose(BansLogs);
   
Ban(bannedplayerid);
}

return 1;
}

Résultat:

Citer
/bannir 0 Insultes Ne_pas_débannir_!

Vous avez été banni par Xartrick (Raison: Insultes)

Citation de: bans.log
Pseudo: Joueur (ID: 0) | Raison: Insultes | Commentaire: Ne_pas_débannir_!
« Modifié: 06 Décembre 2010, 01:30:06 par Xartrick »

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Aide pour une commande
« Réponse #11 le: 09 Décembre 2010, 11:48:22 »
C'est exactement ce que je souhaitais ! Merci beaucoup :)