[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Und die nächste Frage... : ich habe bei meinen Login /Register Vorgang halt Textdraws.. Ist ja schön und gut, aber etwas weiter unten habe ich noch eine " Kiste " erstellt extra für Skins, die er beim ablesen reinmachen soll. Also z.b.: Spieler A hat Skin ID 0 , So wird es in der Kiste angezeigt. Wie macht man das ? Oder geht sowas überhaupt?

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:


  • http://wiki.sa-mp.com/wiki/TextDrawSetPreviewModel
    Dort dann die SkinID
    zb. GetPlayerSkin oder aus einer Variable


    Ich versteh es einfach irgendwie nicht... Es wird zwar ein Skin angezeigt , aber nur immer den CJ Skin also ID 0


    new skinID;
    GetPVarInt(playerid, SpielerInfo[playerid][pSkin]);
    skinID = GetPlayerSkin(playerid);
    TextDrawSetPreviewModel(Textdraw7, skinID);

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zeig uns mal bitte deinen bisherigen Code.



    //SkinboxTextdraw
    Textdraw7[playerid] = CreatePlayerTextDraw(playerid, 526.000000, 292.444458, "LD_SPAC:white");
    PlayerTextDrawLetterSize(playerid, Textdraw7[playerid], 0.000000, 0.000000);
    PlayerTextDrawTextSize(playerid, Textdraw7[playerid], 104.500000, 131.911102);
    PlayerTextDrawAlignment(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw7[playerid], -1);
    PlayerTextDrawSetShadow(playerid, Textdraw7[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw7[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, Textdraw7[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw7[playerid], 4);


    //und das halt unter einen Timer, weil ich dass nach einer Bestimmten Zeit haben möchte:
    //Skinanzeige
    PlayerTextDrawSetPreviewModel(playerid,Textdraw7[playerid], GetPlayerSkin(playerid));
    PlayerTextDrawShow(playerid, Textdraw7[playerid]);


    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • PlayerTextDrawFont(playerid, Textdraw7[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);


    Alles klar ich probier es gleich.. aber ich komm einfach nicht an diese Errors weiter:



    ocmd:makeadmin(playerid,params[])
    {
    new pID,string[256],adminname[MAX_PLAYERS],spielername[MAX_PLAYERS],arank;
    GetPlayerName(playerid, adminname, sizeof(adminname));
    GetPlayerName(playerid, spielername, sizeof(spielername));
    if(!IsPlayerConnected(playerid))return SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Die angegebende SpielerID ist nicht online!");
    SpielerInfo[playerid][pAlevel] = arank;
    if(arank < 0 || arank > 7) return SendClientMessage(playerid,Rot, "[FEHLER] {FFFFFF}Du kannst nur das Adminlevel von 0 - 7 vergeben!");
    if(SpielerInfo[playerid][pAlevel] == 8)
    {
    if(SpielerInfo[playerid][pAlevel] == 0)
    {
    format(string, sizeof string, "[INFO] {FFFFFF}Serverleiter %s hat dich aus dem Team entfernt!",adminname);
    format(string, sizeof string, "[A-INFO] {FFFFFF}Serverleiter %s hat %s aus dem Team entfernt!",adminname,spielername);
    SendClientMessage(playerid,Rot,string);
    SendAdminMessage(Rot,string);
    SpielerInfo[pID][pAlevel] = 0;
    SavePlayer(playerid);
    }
    else if(SpielerInfo[playerid][pAlevel] >= 1)
    {
    if(SpielerInfo[playerid][pAlevel] == 1) { arank = "Supporter"; }
    else if(SpielerInfo[playerid][pAlevel] == 2) { arank = "Administrator Level 1"; }//ab hier sind die errors: " error 006: must be assigned to an array "
    else if(SpielerInfo[playerid][pAlevel] == 3) { arank = "Administrator Level 2"; }
    else if(SpielerInfo[playerid][pAlevel] == 4) { arank = "Administrator Level 3"; }
    else if(SpielerInfo[playerid][pAlevel] == 5) { arank = "High Administrator"; }
    else if(SpielerInfo[playerid][pAlevel] == 6) { arank = "Entwickler"; }
    else if(SpielerInfo[playerid][pAlevel] == 7) { arank = "Stelv. Serverleiter"; }

    format(string, sizeof string, "[INFO] {FFFFFF}Serverleiter %s hat dich zum %s befördert!",adminname,arank);
    format(string, sizeof string, "[A-INFO] {FFFFFF}Serverleiter %s hat %s zum %s befördert!",adminname,spielername,arank);
    SendClientMessage(playerid,Rot,string);
    SendAdminMessage(Rot,string);
    SpielerInfo[pID][pAlevel] = arank;
    SavePlayer(playerid);
    }
    return 1;
    }
    return 1;
    }

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • arank ist ein Integer, es muss aber ein String (=Array) sein. Da nehmen wir eine neue Variable hinzu (rankstr).
    ocmd:makeadmin(playerid,params[])
    {
    new pID,string[256],adminname[MAX_PLAYERS],spielername[MAX_PLAYERS],arank;
    GetPlayerName(playerid, adminname, sizeof(adminname));
    GetPlayerName(playerid, spielername, sizeof(spielername));
    if(!IsPlayerConnected(playerid))return SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Die angegebende SpielerID ist nicht online!");
    SpielerInfo[playerid][pAlevel] = arank;
    if(arank < 0 || arank > 7) return SendClientMessage(playerid,Rot, "[FEHLER] {FFFFFF}Du kannst nur das Adminlevel von 0 - 7 vergeben!");
    if(SpielerInfo[playerid][pAlevel] == 8)
    {
    if(SpielerInfo[playerid][pAlevel] == 0)
    {
    format(string, sizeof string, "[INFO] {FFFFFF}Serverleiter %s hat dich aus dem Team entfernt!",adminname);
    format(string, sizeof string, "[A-INFO] {FFFFFF}Serverleiter %s hat %s aus dem Team entfernt!",adminname,spielername);
    SendClientMessage(playerid,Rot,string);
    SendAdminMessage(Rot,string);
    SpielerInfo[pID][pAlevel] = 0;
    SavePlayer(playerid);
    }
    else if(SpielerInfo[playerid][pAlevel] >= 1)
    {
    new rankstr[64];
    if(SpielerInfo[playerid][pAlevel] == 1)
    {
    rankstr = "Supporter";
    }
    else if(SpielerInfo[playerid][pAlevel] == 2)
    {
    rankstr = "Administrator Level 1";
    }
    else if(SpielerInfo[playerid][pAlevel] == 3)
    {
    rankstr = "Administrator Level 2";
    }
    else if(SpielerInfo[playerid][pAlevel] == 4)
    {
    rankstr = "Administrator Level 3";
    }
    else if(SpielerInfo[playerid][pAlevel] == 5)
    {
    rankstr = "High Administrator";
    }
    else if(SpielerInfo[playerid][pAlevel] == 6)
    {
    rankstr = "Entwickler";
    }
    else if(SpielerInfo[playerid][pAlevel] == 7)
    {
    rankstr = "Stelv. Serverleiter";
    }
    format(string, sizeof string, "[INFO] {FFFFFF}Serverleiter %s hat dich zum %s befördert!",adminname,rankstr);
    format(string, sizeof string, "[A-INFO] {FFFFFF}Serverleiter %s hat %s zum %s befördert!",adminname,spielername,rankstr);
    SendClientMessage(playerid,Rot,string);
    SendAdminMessage(Rot,string);
    SpielerInfo[pID][pAlevel] = arank;
    SavePlayer(playerid);
    }
    return 1;
    }
    return 1;
    }


  • alles klar danke es geht nun, aber jetzt zur Box: Es wird zwar wieder ein Skin angezeigt , aber nicht der den ich will... nur wieder CJ

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:


  • Wird der Timer denn überhaupt ausgeführt?


    Jap. als erstes kommt bei mir ein "ladebildschirm" dann kommen die textdraws mit login/register + die Skinanzeige...


    Hier nochmal alle Codes:




    //der timer + wo der skin normalerweise ausgewählt werden soll


    public loginregistertextdraws(playerid)
    {
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw5);
    TextDrawShowForPlayer(playerid, Textdraw6);
    PlayerTextDrawShow(playerid, Textdraw7[playerid]);

    //Skinanzeige
    PlayerTextDrawSetPreviewModel(playerid,Textdraw7[playerid], GetPlayerSkin(playerid)); //hier ist das was ich eingefügt habe!
    return 1;
    }


    //Hier derTextdraws:
    Textdraw7[playerid] = CreatePlayerTextDraw(playerid, 526.000000, 292.444458, "LD_SPAC:white");
    PlayerTextDrawLetterSize(playerid, Textdraw7[playerid], 0.000000, 0.000000);
    PlayerTextDrawTextSize(playerid, Textdraw7[playerid], 104.500000, 131.911102);
    PlayerTextDrawAlignment(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw7[playerid], -1);
    PlayerTextDrawSetShadow(playerid, Textdraw7[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw7[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, Textdraw7[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw7[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);


    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

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