• 06 Juin 2026, 21:53:39


Auteur Sujet: Problème avec commande kick  (Lu 2193 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Problème avec commande kick
« le: 22 Août 2012, 15:41:02 »
Bonjour, bon comme à chaque fois que je fais une commande /kick en ZCMD j'ai toujours une erreur dans le If(!IsPlayerConnected) et le Kick(pName);...

Et franchement j'en ais ras la casquette ! :)

Voici le code de la commande /kick :
CMD:kick(playerid, params[])
{
new pName[MAX_PLAYER_NAME],string[30],message[60];
if(!sscanf(params,"us",pName,string))
{
   
    if(pRang[playerid] == USER_ADMINISTRATOR || pRang[playerid] == USER_MODERATOR)
    {
        if(!IsPlayerConnected(pName))
        {
        GetPlayerName(playerid, pName, sizeof(pName));
        format(message, sizeof(message), "[ADMIN]%s a été kické pour : %s", pName, string);
        SendClientMessageToAll(orange, message);
    Kick(pName);
        }

    }
   
}
return 1;
}

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème avec commande kick
« Réponse #1 le: 22 Août 2012, 15:54:35 »
Salut.

Je ne suis pas certains, mais ici tu dis que playerid et pname sont la même personne ;)
Pour régler le problème, il faut que tu ajoutes une variable du genre "new idjoueur = strval(tmp); et c'est idjoueur que tu vas appeler pour savoir s'il est connecté, pour le Kicker et c'est lui que tu vas récupérer dans GetPlayerName ;)

Je ne sais pas si ma réponse a été claire, mais je pourrais sans doute te donner un petit exemple si tu ne comprends pas ;)
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème avec commande kick
« Réponse #2 le: 22 Août 2012, 15:59:40 »
new idjoueur = strval(tmp); ??

J'utilise ZCMD moi ...  :king

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème avec commande kick
« Réponse #3 le: 22 Août 2012, 16:13:20 »
Moi non :P

En claire, tu as mis que pName correspondait au Pseudo de celui qui fait la commande. Il faut donc que tu récupères l'id du joueur que tu veux kicker dans une variable, et c'est cette variable que tu vas mettre dans IsPlayerConnected et dans Kick.

De plus, le ! devant quelque-chose veut dire l'inverse. Ici tu l'as mis devant le IsPlayerConnected donc cela signifie "Si la personne n'est pas connecté tu prends quand même son Pseudo pour le Kick"
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème avec commande kick
« Réponse #4 le: 22 Août 2012, 19:05:49 »
CMD:kick(playerid, params[])
{
new pName[MAX_PLAYER_NAME],string[30],message[60];
if(!sscanf(params,"us",pName,string))
{

    if(pRang[playerid] == USER_ADMINISTRATOR || pRang[playerid] == USER_MODERATOR)
    {
        if(IsPlayerConnected(pName))
        {
        GetPlayerName(pName, pName, sizeof(pName));
        format(message, sizeof(message), "[ADMIN]%s a été kické pour : %s", pName, string);
        SendClientMessageToAll(orange, message);
    Kick(pName);
        }

    }

}
return 1;
}

Je comprends pas ... :( J'ai mis GetPlayerName(pName et non playerid ...);
Au final je vais peut-être faire une Dialog si un admin double clic sur le pseudo du joueur (TAB)

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème avec commande kick
« Réponse #5 le: 22 Août 2012, 19:52:52 »
Réfléchis un petit peu et regarde ce que tu viens de faire. Ce n'est pas parce que tu changes playerid en pName dans GetPlayerName que ton problème va se résoudre, bien au contraire.
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème avec commande kick
« Réponse #6 le: 22 Août 2012, 20:07:44 »
Mais je vois rien qui change là ! :)

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Problème avec commande kick
« Réponse #7 le: 22 Août 2012, 21:01:14 »
Je pense pouvoir t'expliquer. Il faut recuperer le nom du joueur grace a son id marquer derriere la commande "/kick" et apres le kicker.

[/url]

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème avec commande kick
« Réponse #8 le: 22 Août 2012, 23:11:01 »
Je crois que tu comprends pas le ZCMD.

if(!sscanf(params, "us", pName, string)) Permet de recuperer les paramètres de la commande donc ce que j'ai fais est bon mais il bug quelque part

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème avec commande kick
« Réponse #9 le: 22 Août 2012, 23:23:38 »
Et toi tu l'as comprends au moins ta ZCMD ??

Moi je ne connais sans doute pas ce type de commande, mais au moins je sais que l'ID d'une personne est différent de son Pseudo et je sais également que si playerid est celui qui tape la commande, il ne peut pas être une 2ème personne.

Regarde comment tes autres commandes sont faites (regarde par exemple un /ban ou tout autre commande qui fait intervenir une 2è personne et à laquelle on récupère son Id et son Pseudo) et essaye de faire pareil pour ton /kick.



EDIT :

Je ne suis pas certains, mais à force de regarder ta commande, je crois que je commence à comprendre le ZCMD.
Je ne sais donc pas si ça va fonctionner ou non, mais essaye ça :

CMD:kick(playerid, params[])
{
        new playerid2;
new pName[MAX_PLAYER_NAME],string[30],message[60];
if(!sscanf(params,"us",playerid2,string))
{
   
    if(pRang[playerid] == USER_ADMINISTRATOR || pRang[playerid] == USER_MODERATOR)
    {
        if(IsPlayerConnected(playerid2))
        {
        GetPlayerName(playerid2, pName, sizeof(pName));
        format(message, sizeof(message), "[ADMIN]%s a été kické pour : %s", pName, string);
        SendClientMessageToAll(orange, message);
Kick(playerid2);
        }

    }
   
}
return 1;
}

Etant donné que c'est la première fois que je fait une commande de ce genre, il y a des chances que ça ne fonctionne pas, mais test quand même et dit nous ce qu'il en est ;)
« Modifié: 23 Août 2012, 00:58:04 par Diablo62 »
Merci à Colonel Marco pour la Signature

Hors ligne Kevin_Carter

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Problème avec commande kick
« Réponse #10 le: 23 Août 2012, 02:18:37 »
Ahh oui je comprends ce que tu voulais dire/faire et je te remercie pour ce code qui fonctionne à merveille, en plus de tes faibles connaissances de ZCMD tu as quand même pu règler mon problème et je te dis bravo et surtout merci !

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème avec commande kick
« Réponse #11 le: 23 Août 2012, 12:27:23 »
C'est juste qu'il a réfléchit pour comprendre le problème ...



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog