[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

  • 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:

  • 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:

  • Hast du dir auch einen Skin gesetzt?
    Mache mal einen Befehl /skin mit dem du dir die Skin ID 50 setzt, und schaue dann, ob es den Skin anzeigt, wenn der Timer erneut aufgerufen wird.


    Habe einen skin befehl erstellt und mir selbst mit der skin id 50 gemacht. Es geht leider nicht.. Aber in der Datenbank wird mit der SKIN ID 50 angezigt

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

  • Kann mir jemand erklären wie ich eine Gangzone erstelle ich verstehe das nicht ganz..
    So, ist das in meinem Script.
    new FightSystem[][fsSyS]={
    /*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
    {1060.145,-1721.339,1166.624,-1583.168,1072.4016,-1619.3834,20.4583},//Kaufhaus
    {990.2909,1821.38,1177.724,2057.332,1067.5798,1884.2932,10.8203},//Container
    {-887.5186,1377.989,-583.8938,1634.903,-813.6335,1525.2080,26.5065},//Wüste
    {-2506.7,740.0255,-2383.094,826.8147,2459.4094,787.3281,35.1719},//Markt
    {-1850.044,1438.284,-1710.987,1584.248,-1789.1478,1543.3608,7.1875},//Hafen
    {-1891.4263,857.8361,-1722.0261,1095.5897,-1720.0752,1018.2902,17.5859},//Bank
    {1828.318,-1938.465,2071.699,-1760.817,1958.6156,-1853.2424,4.3392},//Tanke
    {1828.0573,-2161.2705,1956.4136,-2057.7964,1924.0941,-2125.0146,13.5826},//Airport(LS)
    {2757.8887,1223.3120,12.3516,1223.3120,2861.1313,1383.1230,12.4219} //LCN - Yakuza Zone
    };
    Ich weiß, bloß nicht wie ich das anstellen soll diese MinX, MinY usw verwirren mich..
    Mit diesen Coords möchte ich das machen, aber ka wie ich das anstellen soll..
    Ihr könnt ja damit ein Beispiel machen.
    Wäre sehr nett
    AddPlayerClass(113,2861.1313,1383.1230,12.4219,324.8553,0,0,0,0,0,0); // LCN vs Yakuza | 1 Ecke
    AddPlayerClass(113,2757.8887,1223.3120,12.3516,328.8958,0,0,0,0,0,0); // LCN vs Yakuza | 2 Ecke