Beiträge von Ditti

    Ich rieche Unwissen.
    Texte/Strings werden immer mit strcmp verglichen und das gibt 0 zurück, wenn es gleich ist:
    New gname[MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, gname, sizeof(gname));
    if(!strcmp(gname, TaxiInfo[i][FahrerName])) return 0;
    //Hier geht's mit dem Code weiter, wenn gname und der Fahrername nicht gleich sind

    Komplett unsichtbar machen kann man die Namen nicht, spätestens wenn man darauf klickt, werden sie weiß. (Also in der Spielerliste, die via Tab zu erreichen ist)
    MitSetPlayerColor(playerid, 0x11111100);kann man den Spielernamen aber relativ unsichtbar machen.
    Ich hab mal einen Screenshot gemacht, der obere Name ist hier zu beachten:


    Besser geht es leider nicht zu machen.

    new string[20], Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    format(string, sizeof(string), "Zustand: %d%%", floatround(health / 10));
    Das sollte das machen, was du möchtest.


    Warum sollte Strassensperren ein Float sein ? Und seit wann, kann ein Float ein Array sein ?


    Ein Array kann ja auch ein int sein. :p
    Bin mir da gerade nicht sicher gewesen, wäre halt einen Versuch wert gewesen.
    Und es sollen floats sein, da er über seine Funktion als Parameter floats reinkriegt.

    Du hast in deinem Enum für "Strassensperren" vermutlich nur integer, keine floats verwendet und versuchst nun, den integern float-Werte zuzuweisen.

    Die offset.inc ist wirklich nicht zu finden. Schreib da mal testweise überall eine 0 statt SkinCapOffset[][]. Dann sitzt die Mütze zwar nicht richtig, aber das solltest du dann anpassen können und du Fehler wären weg. ;)

    Es ist davon auszugehen, dass er für jeden Spieler ein DutyLabel hat. Also wäre
    DeletePlayer3DTextLabel(playerid, DutyLabel[playerid]); voraussichtlich richtig.

    Inspiriert von Runcorn bzw durch diesen Thread: [HILFE] User name problem hab ich mich mal fix an eine klitzekleine Include gesetzt.


    Hinweis: Es geht sicherlich besser, aber das war ein 5min-Projekt und es sollte nur funktionieren. ;)


    Was ist checkname.inc?
    Das ist recht schnell erklärt:
    Spieler A registriert sich mit dem Namen "Spieler".
    Spieler B will sich mit dem Namen "spieler" registrieren, wird aber gekickt, da es schon "Spieler" gibt.


    Funktionen
    RegisterPlayerName(playerid, dininame) - Fügt zur Dini-Datei den Spielername in korrekter Groß- und Kleinschreibung hinzu
    CheckPlayerName(playerid) - Prüft den Spielername und ruft nach Bedarf RegisterPlayer(playerid) und LogPlayerIn(playerid) auf.


    Voraussetzungen
    Die Funktionen RegisterPlayer(playerid, dininame[]) und LogPlayerIn(playerid, dininame[]) müssen vorhanden sein. Diese dürfen in der Include gern anders genannt werden.
    Zudem muss die Datei für den Spieler so wie der Spieler heißen, nur alles klein geschrieben. So wird also aus "PlAyEr" "player.txt".
    Und natürlich muss die dini.inc inkludiert sein.


    Ein kleines How-To
    In RegisterPlayer(playerid, dininame[]) muss die Funktion RegisterPlayerName(playerid, dininame[]) aufgerufen werden, um den Spielernamen einzutragen.
    CheckPlayerName(playerid) wird am besten in OnPlayerConnect noch vor jeglichen Login-Funktionen aufgerufen.


    Ein Mini-Beispiel:
    #include <checkname>


    public OnPlayerConnect(playerid)
    {
    CheckPlayerName(playerid);
    return 1;
    }


    //...
    stock RegisterPlayer(playerid, dininame[])
    {
    dini_Create(dininame); //RegisterPlayer wird nur aufgerufen, wenn die Datei nicht existiert.
    //...
    RegisterPlayerName(playerid, dininame);
    return 1;
    }


    stock LogPlayerIn(playerid, dininame[])
    {
    ShowPlayerDialog(); //...
    return 1;
    }
    Beim obigen Beispiel beinhaltet dininame[] den Namen der Spielerdatei.


    Download
    Zum Download gibt es die Include hier: http://download.riditt.de/checkname.inc und auf Pastebin findet man sie hier: http://pastebin.com/uTca8t3M


    Ich würde sagen, dass das alles war. Bei Fragen stehe ich selbstverständlich zur Verfügung. Viel Spaß und tschüss.