Beiträge von YaBroo

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Ich habe jetzt schon bestimmt 40-50 verschiedene Methoden probiert, es zum laufen zu kriegen.
    Darunter auch dies.


    Folgen INGame:
    Es wird angezeigt, das der 2. Spieler gekickt wurde, aber wirklich gekickt wurde er nicht.
    Trotzdem danke für deinen Beitrag.


    //Edit damit man alles nachvollziehen kann, hier auch der zwischen Dialog.


    new aN[128], str[128], pN[128];
    GetPlayerName(playerid, aN, sizeof(aN)), GetPlayerName(strval(pN), pN, sizeof(pN));
    if(dialogid == DIALOG_SPIELER_KICKEN)
    {
    if(response == 1)
    {
    format(str,sizeof(str),"Bitte gebe den Grund ein weshalb der Spieler %s gekickt werden soll.",pN);
    ShowPlayerDialog(playerid,22,DIALOG_STYLE_INPUT,"Spieler kicken", str,"Weiter","Weiter");
    return 1;
    }
    return 1;
    }
    if(dialogid == 22)
    {
    if(response == 1)
    {
    if(!IsPlayerConnected(strval(pN))) return SendClientMessage(playerid, ROT, "Ungültiger Spieler");
    new string[125], strii[125];
    SendClientMessageToAll(GELB ," [NEWS]jj[NEWS]");
    format(string, sizeof(string),""#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"gekickt "#COL_MAGENTA"(Grund: %s)",pN, aN,inputtext);
    SendClientMessageToAll(grün, string);
    format(strii, sizeof(strii), "{D1A513}Server Regeln{FFFFFF}\nSupport-Tickets\nCheater-Meldungen\nAbstimmungen\nSpieler beobachten\nSpieler muten\nSpieler kicken\nSpieler bannen\nStatistiken bearbeiten\nEigenen Namen ändern | %s\nEigenes Passwort ändern\nServer Einstellungen", SpielerName(playerid));
    ShowPlayerDialog(playerid,Adminpanel,DIALOG_STYLE_LIST, "{FF0066}A{FFFFFF}dmin {FF0066}C{FFFFFF}ontrol {FF0066}P{FFFFFF}anel", strii,"Ausführen","Spielen");
    Kick(strval(pN));
    return 1;
    }

    Servus Leute, so dann mache ich mal mein Problem public.
    Ich habe bisher


    if(listitem == 6)
    {
    new string[MAX_PLAYER_NAME*MAX_PLAYERS];
    for(new i; i != GetMaxPlayers(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    new dName[MAX_PLAYER_NAME];
    GetPlayerName(i, dName, sizeof dName);
    format(string, sizeof string, "%s\n%s", string, dName);
    item[playerid][iItem] = i;
    iItem ++;
    }
    ShowPlayerDialog(playerid, DIALOG_SPIELER_KICKEN, DIALOG_STYLE_LIST, "{FF0066}A{FFFFFF}dmin {FF0066}C{FFFFFF}ontrol {FF0066}P{FFFFFF}anel", string,"Ausführen","Spielen");
    return 1;
    }


    if(dialogid == 22)
    {
    if(response == 1)
    {
    if(!IsPlayerConnected(strval(pN))) return SendClientMessage(playerid, ROT, "Ungültiger Spieler");
    new string[125], strii[125];
    SendClientMessageToAll(GELB ," [NEWS]jj[NEWS]");
    format(string, sizeof(string),""#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"gekickt "#COL_MAGENTA"(Grund: %s)",pN, aN,inputtext);
    SendClientMessageToAll(grün, string);
    format(strii, sizeof(strii), "{D1A513}Server Regeln{FFFFFF}\nSupport-Tickets\nCheater-Meldungen\nAbstimmungen\nSpieler beobachten\nSpieler muten\nSpieler kicken\nSpieler bannen\nStatistiken bearbeiten\nEigenen Namen ändern | %s\nEigenes Passwort ändern\nServer Einstellungen", SpielerName(playerid));
    ShowPlayerDialog(playerid,Adminpanel,DIALOG_STYLE_LIST, "{FF0066}A{FFFFFF}dmin {FF0066}C{FFFFFF}ontrol {FF0066}P{FFFFFF}anel", strii,"Ausführen","Spielen");
    Kick(strval(pN));
    return 1;
    }
    return 1;
    }


    Den ersten Spieler kann man kicken, jedoch bei jedem weiteren kommt Ungültiger Spieler
    Wie muss ich nun die Ausgabe verändern, damit es im Zusammenhang zu dem vorgestellten MAXPLAYER System von SynonymousZ funktioniert?
    Jegliche andere Methoden die zur Lösung des Problems führen sind natürlich auch gerne gesehen :)


    mfg

    Räum mal etwas auf, damit es übersichtlicher wird.
    So wie es für mich aussieht hast du viele Sachen doppelt, was komplett überflüssig ist.
    Schmeiß mal alles was doppelt ist raus und zeig den neuen Code her.

    Gefällt mir.
    Ich werde es mal ausprobieren.


    //Edit
    Wenn du schon Includes verwendest wäre es empfehlenswert diese auch samt Filterscript zu uppen.
    Die rede ist vom banfix Include.


    [ INCLUDE ] Kick/Ban Fix
    mfg

    Nutze STRG & Z falls du Script Fehler gemacht hast um die letzten Vorgänge im Script rückgängig zu machen.
    Solltest du das Script so runtergeladen und compilt haben, kann dir aus freier geistiger Hilfe keiner helfen.


    Das hilft dir sicherlich weiter:
    MAX_PLAYERS - Dialog


    if(listitem == 6)
    {
    new iItem;
    new string[MAX_PLAYER_NAME*MAX_PLAYERS];
    for(new i; i != GetMaxPlayers(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    new dName[MAX_PLAYER_NAME];
    GetPlayerName(i, dName, sizeof dName);
    format(string, sizeof string, "%s\n%s", string, dName);
    item[playerid][iItem] = i;
    iItem ++;
    }
    ShowPlayerDialog(playerid, DIALOG_SPIELER_KICKEN, DIALOG_STYLE_LIST, "{FF0066}A{FFFFFF}dmin {FF0066}C{FFFFFF}ontrol {FF0066}P{FFFFFF}anel", string,"Ausführen","Spielen");
    return 1;
    }


    if(dialogid == 22)
    {
    if(response == 1)
    {
    if(!IsPlayerConnected(strval(pN))) return SendClientMessage(playerid, ROT, "Ungültiger Spieler");
    new string[125];
    SendClientMessageToAll(GELB ," [NEWS]dsada[NEWS]");
    format(string, sizeof(string),""#COL_MAGENTA"Spieler %s "#COL_YELLOW"wurde von "#COL_MAGENTA"%s "#COL_YELLOW"gekickt "#COL_MAGENTA"(Grund: %s)",pN, aN,inputtext);
    SendClientMessageToAll(grün, string);
    Kick(strval(pN));
    return 1;
    }
    return 1;
    }


    Wenn man einen kickt, ist das Problem noch das selbe. Muss wohl am Code liegen. Die restlichen Spieler werden ja angezeigt, jedoch sagt er eifnach Ungültiger Spieler trotz das ich den richtige anwähle.
    //Edit Kann es einfach sein das er abfragt ob pN on ist und wenn ich den ersten kicke fliegt er ja raus, aber er soll ja eig. abfragen ob der Spieler den ich angeklickt hab auch on ist


    //Edit naja wenn ich die Zeile entferne kommt zwar der Text, aber gekickt wird er nicht.


    /e


    Immer?

    Y_Less hat mal eine Funktion erstellt, welche nach vollzieht ob der Spieler ESC sprich sich außerhalb oder innerhalb des Spiel befand. Such ein wenig und du wirst fündig.
    Tipp: Verwende auch englische Begriffe ;)

    Dazu kann ich leider nix sagen.


    Ich hab auf jedenfall immer mit dem strval so wie oben beschrieben gearbeitet, (strval geht übrigens nur für Zahlen / Integer) ;)


    und mit ReturnUser (Wobei die Methode nicht zu empfehlen ist. :D)


    Find's jetzt auch net so berauschend. Dann warte ich noch ein wenig, bis der allwissende SynonymousZ zu uns stößt :)