Schleife funktioniert nicht, Textlabel zu hoch!

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
  • ocmd:admins(playerid,params[])
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerAnAdmin(i,1))return SendClientMessage(playerid,Rot,"Es ist kein Admin online!");
    {
    new string[100];
    SendClientMessage(playerid,Weiß,"Admins:");
    format(string, sizeof(string),"Name: %s",SpielerName(i));
    SendClientMessage(playerid, Orange, string);
    return 1;
    }
    }
    return 1;
    }
    Es wird immer nur ein Admin angezeigt.


    Der Text ist zu hoch über den Spieler würde gerne die höhe verändern das wäre doch in dem Fall die 1?
    Wenn ich die aber zu 0.8 ändere, kommt ein Error "misstach misachtet"!
    AdminText[playerid] = Create3DTextLabel("Test",Rot,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(AdminText[playerid], playerid,0.0, 0.0, 0.45);

  • Schreib deinen Admins Befehl so:


    ocmd:admins(playerid) {
    new string[MAX_PLAYER_NAME + 7];
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerAnAdmin(i,1)) continue;
    if(!string[0]) SendClientMessage(playerid,Weiß,"Admins:");
    format(string, sizeof(string),"Name: %s",SpielerName(i));
    SendClientMessage(playerid, Orange, string);
    }
    return (!string[0]) ? SendClientMessage(playerid,Rot,"Es ist kein Admin online!") : 1;
    }


    Und unteres, einfach so schreiben:


    Attach3DTextLabelToPlayer(AdminText[playerid], playerid,0.0, 0.0, 0.3);


    //Edit: Nein die höhe ist hier die Z-Achse vom dem Attachten Label ;)


    Dann sollte es gehen ;)


    mfg. :thumbup:


    //edit: nicht richtig gelsen

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Dann schreib doch wenigestens dabei warum er immer aus der schleife gegangen ist :)


    Na, wenn man 2 returns..in einer schleife verwendet...hmm lass mich überlegen :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S




  • Verstehe diesen Abschnitt nicht so ganz:
    ocmd:admins(playerid) {
    new string[MAX_PLAYER_NAME + 7];
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerAnAdmin(i,1)) continue;
    if(!string[0]) SendClientMessage(playerid,Weiß,"Admins:");
    format(string, sizeof(string),"Name: %s",SpielerName(i));
    SendClientMessage(playerid, Orange, string);
    }
    return (!string[0]) ? SendClientMessage(playerid,Rot,"Es ist kein Admin online!") : 1;
    }


    Wieso MAX_PLAYER_NAME + 7?

  • Wieso MAX_PLAYER_NAME + 7

    Das ist die länge des Strings. MAX_PLAYER_NAME für die maximale Länge des Namen von SA:MP. Dann +7 für das "Name: ".