[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
  • Hi, hab 2 Fragen.


    1 Frage:
    Nach einem relog verschwindet eine Textdraw Box die aber vor dem relog noch da war. Die anderen Textdraws sind vorhanden nur die Box nicht.



    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 641.666687, 399.307403, "Balkenu");
    PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.000000, 5.214200);
    PlayerTextDrawTextSize(playerid, Textdraw0[playerid], -2.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawColor(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawUseBox(playerid, Textdraw1[playerid], true);
    PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], 255);
    PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw0[playerid], 0);


    2 Frage:
    Ich möchte Anzeigen lassen, wie viele Teammitglieder zurzeit Online sind als Textdraw, das problem ist es zeigt Ingame nicht an.



    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][padmin] > 1)
    {
    new string3[80];
    format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", i);
    PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);
    }
    }


    Ich bedanke mich schon mal im Voraus :)


    Mit freundlichen Grüßen
    Grapefruit


    • for(new i = 0; i < MAX_PLAYERS; i++)
    • {
    • if(PlayerInfo[playerid][padmin] > 1)
    • {
    • new string3[80];
    • format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", i);
    • PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);
    • }
    • }

    zu



    • new var = 0;
    • for(new i = 0; i < MAX_PLAYERS; i++)
    • {
    • if(PlayerInfo[playerid][padmin] > 1)
    • {
    • var++;
    • }
    • }
    • new string3[80];
    • format(string3, sizeof(string3), "Davon sind ~r~%i~n~~w~Teammitglieder Online!", var);
    • PlayerTextDrawSetString(playerid, Textdraw21[playerid], string3);


    Bitteschön :)

  • Ich verstehe nicht wieso es nicht geladen wird. Bzw in meinen string angezeigt wird.


    cache_get_field_content(0, "1Primaerwaffe",WaffenDaten[playerid][w_1Primaerwaffe]);


    in der mysql_log wird zwar alles angezeigt dass es richtig geladen wurde und auch der Richtige wert wurde rausgelesen aber wird nicht im string angezeigt? Liegt es da dran?

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

  • Okay, habt es jetzt so:




    new result[20];
    cache_get_field_content(0, "1Sekundaerwaffe", result);
    printf("%s ", result);


    -> und der Wert der angegeben ist , wird auch angezeigt. Aber ich möchte es gern in diesen WaffenDaten[playerid][w_1Primaerwaffe] drin haben: . Z.b.:



    WaffenDaten[playerid][w_1Primaerwaffe] = result;
    //Habe ich schon probiert, geht leider nicht :/

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

  • Kann man i-wie es so machen dass im DIALOG_STYLE_LIST es so angezeigt wird:


    9mm - Kostet: 500
    Deagle - Kostet: 1000
    TITEL1 - TITEL2
    TITEL1 - TITEL2



    -> Also schön untereinander, und nicht:


    9mm - Kostest: 500
    Deagle - Kostest: 700


    Also das es einen immer einen Bestimmten ABSTAND hat bis zum nächsten Wort

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

  • Hi, warum erstellt sich kein 3D Text auf dem Spieler den ich per ID auswähle?



    CMD:paint(playerid,params[])
    {



    if(!CheckAdminName(playerid)) return 0;
    new pID, tmp[20], idx;
    tmp = strtok(params, idx);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new PlayerText3D:playertextid;
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(!strlen(tmp)) return SendClientMessage(playerid,0x6FFFFFFF,"ERROR:: /paint [ID]");
    if(IsNumeric(tmp)) pID = strval(tmp);
    else pID = ReturnPlayerID(tmp);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0x6FFFFFFF,"The Player is not online");
    playertextid = CreatePlayer3DTextLabel(playerid,"Test",0xFF0000FF,X,Y,Z,350.0, pID, INVALID_VEHICLE_ID, 1);
    //UpdatePlayer3DTextLabelText(pID, playertextid, 0xFF0000FF, "%s");
    return 1;
    }


    Und wie update ich den Text, das da der Name des Spielers erscheint?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Das X, Y, Z ist das Offset, wenn man das Label attached. Daher so:


    playertextid = CreatePlayer3DTextLabel(playerid,"Test",0xFF0000FF,X,Y,Z,350.0, pID, INVALID_VEHICLE_ID, 1);
    zu:
    new str[32];
    format(str, sizeof(str), "Name: %s", name);
    playertextid = CreatePlayer3DTextLabel(playerid,str,0xFF0000FF,0,0,2.0,350.0, pID, INVALID_VEHICLE_ID, 1);


    Achte auch darauf, wenn du wieder auf das Label zugreifen willst, nach dem Befehl, dann musst du es in ein globales Array (für jeden Spieler -> [playerid]) speichern.