problem mit kick-dialog -.-

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • hi community, ich habe ein problem: ich habe ein kickbefehl gemacht, wo man beim 1. dialog die id eingeben muss und beim 2. den grund.


    #define DIALOG_KICK 24
    #define DIALOG_KICKGRUND 26
    if(dialogid == 24)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    new kickid;
    kickid = strval(inputtext);
    ShowPlayerDialog(playerid,26,DIALOG_STYLE_INPUT,"Grund","Bitte Grund eingeben:","Kick","Abbrechen");
    }
    if(dialogid == 26)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    new string[164];
    new kickgrund[64];
    new kickid;
    new pID;
    strmid(kickgrund, inputtext, 0, strlen(inputtext), 255);
    format(string,sizeof(string),"%s wurde von Admin %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),kickgrund);
    SendClientMessageToAll(Orange,string);
    format(string,sizeof(string),"%s",kickgrund);
    Kick(kickid);
    }
    }
    return 1;
    }


    so, dann compile ich, und dann sagt pawno, das er im 2. dialog die kickid nicht lesen kann und das es nicht definiert wurde -.-


    C:\Users\Dennis\Desktop\Rockstar Games\Grand Theft Auto San Andreas\pawn\gamemodes\Übung.pwn(1597) : warning 204: symbol is assigned a value that is never used: "kickid"


    1597 = zeile 12


    kann mir bitte einer helfen, also wie ich im 2. dialog die kickid auslesen kann, ich habe schon viele gefragt, aber niemand konnte mit helfen-.-


    wer mir helfen will, der hilft mir bitte mit meinem beispiel :)


    mfg fuchsii

  • Du musst :


    #define DIALOG_KICK 24
    #define DIALOG_KICKGRUND 26
    if(dialogid == 24)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    new kickid;
    kickid = strval(inputtext);
    ShowPlayerDialog(playerid,26,DIALOG_STYLE_INPUT,"Grund","Bitte Grund eingeben:","Kick","Abbrechen");
    }
    if(dialogid == 26)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    new string[164];
    new kickgrund[64];
    new kickid;
    new pID;
    strmid(kickgrund, inputtext, 0, strlen(inputtext), 255);
    format(string,sizeof(string),"%s wurde von Admin %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),kickgrund);
    SendClientMessageToAll(Orange,string);
    format(string,sizeof(string),"%s",kickgrund);
    Kick(pID); // du willst ja die pID kicken..
    }
    }
    return 1;
    }

    Mit unfreundlichen Grüßen
    Buschmensch

  • ja ich will die mit dem inputtext kicken, und oben hab ich ja geschrieben, das die id aus dem dialog verwendet werden soll, da hab ich auch kickid definiert, also denke ich mal, das das nicht mit pID gehen kann ^^

  • hab ich grade, und da kamen 2 warnings


    C:\Users\Dennis\Desktop\Rockstar Games\Grand Theft Auto San Andreas\pawn\gamemodes\Übung.pwn(1597) : warning 204: symbol is assigned a value that is never used: "kickid"
    C:\Users\Dennis\Desktop\Rockstar Games\Grand Theft Auto San Andreas\pawn\gamemodes\Übung.pwn(1610) : warning 203: symbol is never used: "kickid"

  • Ihr habt aber schon gemerkt,dass er im Dialog "24" ( DIALOG_KICK ) nie die SpielerID abspeichert für die spätere Verwendung in Dialog "26" DIALOG_KICKGRUND ? Das müsste er Global in irgendeiner Variable speichern.
    Nur "new pID" zu schreiben und diese dann zu kicken,ohne jemals einen Wert zuzuweisen bringt nichts.Es wird immer der Spieler mit der ID 0 gekickt.


    Noch was nebenbei.Wieso hast du die Dialoge definiert als DIALOG_KICKGRUND und DIALOG_KICK,verwendest diese aber nicht bei OnDialogResponse ?


    Tipp:
    new KickPlayer[MAX_PLAYERS];

  • Du musst eine Globale Variable erstellen.
    Hier versuchs mal damit:


    #define DIALOG_KICK 24
    #define DIALOG_KICKGRUND 26
    new kickid[MAX_PLAYERS];


    if(dialogid == 24)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    kickid[playerid] = strval(inputtext);
    ShowPlayerDialog(playerid,26,DIALOG_STYLE_INPUT,"Grund","Bitte Grund eingeben:","Kick","Abbrechen");
    }
    }
    if(dialogid == 26)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen!");
    }
    if(response == 1)
    {
    new string[164];
    new kickgrund[64];
    format(kickgrund,sizeof kickgrund,"%s",strval(inputtext));
    //strmid(kickgrund, inputtext, 0, strlen(inputtext), 255);
    format(string,sizeof(string),"%s wurde von Admin %s gekickt. Grund: %s",SpielerName(kickid[playerid]),SpielerName(playerid),kickgrund);
    SendClientMessageToAll(Orange,string);
    Kick(kickid[playerid]); // du willst ja die pID kicken..
    }
    }


    MfG.
    Me

  • Quatsch, das kickt die ID die in deiner "Variable" drin ist.
    Wenn man sich selber kicken wollte müsste da nur Kick(playerid); stehen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Wenn du das hier zuweist
    kickid[playerid] = strval(inputtext);
    muss da eine Zahl drin stehen
    Das ist soweit schon richtig

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Das muss so funktionieren ;)


    Wenn du das von BlackAce meinst, guck unter mir ^^
    vvvvvvv

    Nur wenn man das Unmögliche versucht kann man das absolut Mögliche erreichen
    Hermann Hesse


    „Was manche Menschen sich selber vormachen, das macht ihnen so schnell keiner nach.”
    Gerhard Uhlenbruck

  • if(kickid[playerid] == playerid) return SendClientMessage(playerid,-1,"Du kannst dich nicht selber kicken");

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen