• 06 Juin 2026, 10:49:23


Auteur Sujet: Fonction pour ignorer quelqu'un  (Lu 3164 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Fonction pour ignorer quelqu'un
« le: 13 Octobre 2007, 19:45:52 »
Bonjour,

J'aimerais créer une commande pour ignorer tel membre - du style /ignore 21 et là on ne voit pas les messages de l'id 21- mais je ne sais pas trop comment faire; je suis assez faible en pawn et si vous avez du copier-coller je suis preneur :happy sinon merci de m'éclairer un peu pour réaliser ce code. :)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Fonction pour ignorer quelqu'un
« Réponse #1 le: 13 Octobre 2007, 19:51:47 »
Ouais tu veu mettre un player en silence pendant un laspse de temps ?? c'est ça ?
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Fonction pour ignorer quelqu'un
« Réponse #2 le: 13 Octobre 2007, 20:20:20 »
tu peux utiliser XtremeAdmin2 avec /wire pour sa ;)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Fonction pour ignorer quelqu'un
« Réponse #3 le: 13 Octobre 2007, 21:00:17 »
J'hésite a te mettre la commande... d'une parce que je n'ait pas l'autorisation et de deux parce qu'elle est complexe... Et qu'il faut plein de truk et tout.. :-[

Bon aller je te la met, mais ne copie colle pas, c'est sur que sa ne marchera pas ^^

}
dcmd_wire(playerid,params[]) {
    if(IsPlayerCommandLevel(playerid,"wire")) {
    if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/WIRE <NICK OR ID> (<REASON>)\".");
        new tmp[256],Index; tmp = strtok(params,Index);
    new id; if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp); else id = strval(tmp);
if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
    if(!Variables[id][Wired]) {
        SendCommandMessageToAdmins(playerid,"WIRE");
    new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
    if(!strlen(params[strlen(tmp)+1])) format(string,256,"\"%s\" has been wired by Administrator \"%s\".",ActionName,name);
else format(string,256,"\"%s\" has been wired by Administrator \"%s\". (Reason: %s)",ActionName,name,params[strlen(tmp)+1]);
Variables[id][Wired] = true, Variables[id][WiredWarnings] = Config[WiredWarnings];
    return SendClientMessageToAll(yellow,string);
} else return SendClientMessage(playerid,red,"ERROR: This player has already been wired.");
} else return SendClientMessage(playerid,red,"ERROR: You can not wire yourself or a disconnected player.");
} else return SendLevelErrorMessage(playerid,"wire");
}
dcmd_unwire(playerid,params[]) {
    if(IsPlayerCommandLevel(playerid,"unwire")) {
    if(!strlen(params)) return SendClientMessage(playerid,red,"Syntax Error: \"/UNWIRE <NICK OR ID>\".");
    new id; if(!IsNumeric(params)) id = ReturnPlayerID(params); else id = strval(params);
if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
    if(Variables[id][Wired]) {
        SendCommandMessageToAdmins(playerid,"UNWIRE");
    new string[256],name[24],ActionName[24]; GetPlayerName(playerid,name,24); GetPlayerName(id,ActionName,24);
Variables[id][Wired] = false, Variables[id][WiredWarnings] = Config[WiredWarnings];
    if(id != playerid) { format(string,256,"\"%s\" has been unwired by Administrator \"%s\".",ActionName,name); return SendClientMessageToAll(yellow,string); }
    else return SendClientMessage(playerid,yellow,"You have successfully unwired yourself.");
        } else return SendClientMessage(playerid,red,"ERROR: This player is not wired.");
} else return SendClientMessage(playerid,red,"ERROR: You can not unwire a disconnected player.");
} else return SendLevelErrorMessage(playerid,"unwire");
}

donc la tu a DEUX commnades, la "wire" et la "unwire" qui permet de désactiver la mise en silence du player ^^ bon courage  :laugh :bangin

edit:

Estce qu'un admin peu supprimer mon message juste au dessus SVP ^^ il sert a rien  :laugh
« Modifié: 13 Octobre 2007, 21:02:34 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Fonction pour ignorer quelqu'un
« Réponse #4 le: 14 Octobre 2007, 02:53:06 »
Le problème c'est que quand tu postes des bouts de code comme ça, il manque tout un tas de variables et que les gens ne pourront jamais compiler sans le réécrire en entier...
Tu devrais essayer de le simplifier avant de le poster, il est pas bien difficile à refaire, mais dans l'état actuel, il est inutilisable.


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Fonction pour ignorer quelqu'un
« Réponse #5 le: 14 Octobre 2007, 13:24:57 »
Bon je me suis mal exprimer apperament *_*

Enfait j'aimerais que lorsque tel membre fait /wire 21 il ne voyent plus les messages de joueur 21, mais il serait le seul à ne plus les voir; les autres verront les messages de joueur 21 quand même ;)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Fonction pour ignorer quelqu'un
« Réponse #6 le: 14 Octobre 2007, 18:40:19 »
Ha.... ça ce complique....

pour Spykerc8 : j'ais posté ce bout de script pas pour qu'il le copi colle... Pour qu'il ce donne une idée de ce que c'est ;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Fonction pour ignorer quelqu'un
« Réponse #7 le: 15 Octobre 2007, 00:13:45 »
Houla, Viruz prOd, tu cherches pas la facilité.
Le truc que tu veux faire, c'est faisable mais vachement compliqué à mettre en oeuvre.

Tout d'abord, il faut que tu définisses un tableau pour chaque joueur.
Ce tableau aura MAX_PLAYERS éléments et chaque élément indiquera si l'ID correspondant à l'élément doit être "vu" par le joueur.
Ce qui nous fait un tableau comme ceci :
new TabVision[MAX_PLAYERS][MAX_PLAYERS];
Tout les éléments du tableau sont à 0 par défaut et si le joueur 12 ne veut pas voir ce que dit le joueur 27 alors TabVision[12][27] = 1;

Ensuite, il faut que tu interceptes tous les textes tapés par les joueurs dans OnPlayerText et que tu les redistribues aux joueurs qui veulent les voir (en faisant des tests sur le fameux tableau en question).

L'idée est bonne mais :
- Il faut aussi prévoir d'afficher la liste des joueurs qu'un joueur à "désactivé" (par exemple si le joueur 17 à désactiver les joueurs 11, 5 et 12 et qu'il veut savoir qui il a désactivé
- Il faut aussi gérer les PM (est-ce qu'on les laisse passer ou bien doit-on les intercépter aussi ...)
- Et d'autre trucs auxquels je n'ai pas encore penser

Sinon, pour simplifié, tu peux faire en sorte que chaque joueur n'ai droit de "couper la parole" qu'à un seul autre joueur.

Bon courage.

++
Syg
Courtesy of GtaManiac

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Fonction pour ignorer quelqu'un
« Réponse #8 le: 15 Octobre 2007, 17:11:29 »
Bon et bien merci beaucoup Syg :)

Même si je comprend pas tout tu m'as motivé pour m'y remettre :happy

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Fonction pour ignorer quelqu'un
« Réponse #9 le: 15 Octobre 2007, 23:54:07 »
Je suis pret à répondre à toutes tes questions concernant ce sujet.

++
Syg
Courtesy of GtaManiac