Beiträge von Pille

    Du könntest erst mal beim Format das "sizeof(query)" Entfernen da du die Größe schon kennst, also gegen 128 ersetzten.


    Soweit ich weiß wandelt pawno beim kompilieren das automatisch in die Zahl um.
    Das mit 128 zu ersetzen würde also höchstens ein Bruchteil einer Millisekunde beim kompilieren bringen ^^

    Das würde so auch keiner machen.
    Ich setze schon vorraus, dass der Threadersteller ein bisschen mitdenken kann,
    dass er das kann, sieht man ja an seinem Code im ersten Beitrag :)

    Außerdem hast du da nen fail drin kannst ja mal testen dann sollteste ihn bemerken


    Ich hab sowas in meinem Script auch mit strcat gearbeitet und es funktioniert problemlos..
    Weiß nicht was du meinst, zumal ich ja nichtmal einen Code hier geschrieben habe ^^

    Und wozu strcat nutzen?


    strcat hängt string1 an string2.


    Du machst das mit format - kann man auch machen,
    strcat ist allerdings extra für solche Zwecke konzipiert
    und bringt deswegen einen kleinen Leistungsschub bei solchen Aufgaben.

    Du musst folgendes in die Schleife packen:


    1. Abfrage ob der Spieler i Admin ist. Wenn nicht, nutze continue;
    2. wenn der Spieler Admin ist, speicherst du seinen Namen in einen string und fügst ihn mit strcat (oder strins) an einen großen, außerhalb der Schleife liegenden string.


    Erst wenn alle Spieler durchgegangen sind, gibst du den Dialog aus.



    Am besten überprüfst du noch mit einer außerhalb der SChleife liegenden Boolean Variable,
    ob überhaupt ein Admin gefunden wurde. Wenn nicht, kommt nach der schleife die entsprechende Meldung.



    Noch Fragen? Viel Glück :)

    Der Code von Pille funktioniert schon...nur es kann evtl sein, dass der Code ziemlich LANGE brauch, bis er diesen einen random Spieler gefunden hat.


    Da hast du allerdings recht..


    Ich würde um dem vorzubeugen eine globale Variable erstellen, die immer den Wert der höchsten SpielerID auf den Server hat.
    Dann ist die Chance sehr gering, dass es länger als ein Fingerschnipsen braucht :thumbup:


    Hatte ein ! vergessen.



    GetRandomPlayerID()
    {
    new id=random(MAX_PLAYERS);
    while(!IsPlayerConnected(id)) id=random(MAX_PLAYERS);
    return id;
    }


    Das ist dann übrigens exakt derselbe Gedankengang wie du ihn hattest,
    und du hast meinen Code als Müll bezeichnet 8o


    Bitte - etwas mehr mitdenken, nicht gleich irgendwelche Sprüche raushaun.

    Möglichkeit 1:
    Bau in dein Hauptscript folgende Funktion ein:
    forward RF_GetPlayerAdminLevel(playerid);
    public RF_GetPlayerAdminLevel(playerid)
    {
    return PlayerInfo[playerid][Admin]; //Anpassen je nachdem was für ein Script du benutzt
    }


    Jetzt kannst du bei OnPlayerConnect (evtl. OnPlayerSpawn) im Filterscript folgendes schreiben:
    if(CallRemoteFunction("RF_GetPlayerAdminLevel","i",playerid)>0)
    {
    //alles weitere - Nametag vergeben etc.
    }



    Möglichkeit 2:
    Du verbindest dich im Filterscript mit dem MySQL Server bei OnFilterScriptInit und liest das Adminlevel aus:

    SQL
    SELECT Adminlevel FROM tabellenname WHERE Name = 'Name'



    Möglichkeit 3:
    Du erstellst eine Whitelist, also eine Datei, wo alle Admins drinstehen.
    Beim Connecten auf den Server wird überporüft ob der Name des Spielers in dieser Datei steht,
    wenn ja, bekommt er einen Nametag.
    Dazu brauchst du allerdings noch Befehle wie /add un /delete, oder du machst das manuell.