Aus einen Textdraw string auslesen

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


    Ich habe mal ne Frage wie kann ich aus den Textdraw Die Spieler auslesen die am Meisten geld haben?


    Textdraw0 = TextDrawCreate(219.000000, 337.000000, "Anticheat~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 1);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 0xFFFFFF66);
    TextDrawTextSize(Textdraw0, 437.000000, 169.000000);


    Ich habe schon alles versucht was mir einfiel nur es klappte nicht
    Ich hoffe, das ihr mir dabei helfen könnt

  • Textdraw string zwischen speichern und dann aufsplitten
    oder
    mach mehrere Textdraws

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • ich habe es ja mit einen string versucht nur dann kommt das draw nicht mehr und zu viele wollte ich auch nicht mehr machen

  • format(blubb,sizeof(blubb),"Anticheat~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$");
    Textdraw0 = TextDrawCreate(219.000000, 337.000000, blubb);
    so wäre das einiger maßen sinnvoll


    Wenn das dann nicht angezeigt wird, TextDrawShowForPlayer ??


    Oder warte bis morgen 17h dann bastel ich dir was ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Black so hab ich das


    /*
    Filterscript generated using Zamaroht's TextDraw Editor Version 1.0.
    Designed for SA-MP 0.3a.


    Time and Date: 2012-4-1 @ 21:42:6


    Instructions:
    1- Compile this file using the compiler provided with the sa-mp server package.
    2- Copy the .amx file to the filterscripts directory.
    3- Add the filterscripts in the server.cfg file (more info here:
    http://wiki.sa-mp.com/wiki/Server.cfg)
    4- Run the server!


    Disclaimer:
    You have full rights over this file. You can distribute it, modify it, and
    change it as much as you want, without having to give any special credits.
    */


    #include <a_samp>


    new Text:Textdraw11;


    public OnFilterScriptInit()
    {
    print("Textdraw file generated by");
    print(" Zamaroht's textdraw editor was loaded.");


    // Create the textdraws:
    new check[1024];
    format(check,sizeof check,"Anticheat~n~%s: %i$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$");
    Textdraw11 = TextDrawCreate(219.000000, 337.000000, check);
    TextDrawBackgroundColor(Textdraw11, 255);
    TextDrawFont(Textdraw11, 1);
    TextDrawLetterSize(Textdraw11, 0.500000, 1.000000);
    TextDrawColor(Textdraw11, -1);
    TextDrawSetOutline(Textdraw11, 1);
    TextDrawSetProportional(Textdraw11, 1);
    TextDrawUseBox(Textdraw11, 1);
    TextDrawBoxColor(Textdraw11, 0xFFFFFF66);
    TextDrawTextSize(Textdraw11, 437.000000, 169.000000);

    for(new i; i < MAX_PLAYERS; i ++)
    {
    if(IsPlayerConnected(i))
    {
    TextDrawShowForPlayer(i, Textdraw11);
    }
    }
    return 1;
    }


    public OnFilterScriptExit()
    {
    TextDrawHideForAll(Textdraw11);
    TextDrawDestroy(Textdraw11);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid, Textdraw11);
    TextDrawShowForPlayer(playerid, Textdraw11);
    return 1;
    }


    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }

    Oder warte bis morgen 17h dann bastel ich dir was ;)

    Alles klar

  • Hat etwas länger gedauert sorry


    new string[69]; //global


    //beim erstellen
    format(string,69,"Anticheat~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$~n~%s: xx$");
    Textdraw0 = TextDrawCreate(219.000000, 337.000000, string);
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 1);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawUseBox(Textdraw0, 1);
    TextDrawBoxColor(Textdraw0, 0xFFFFFF66);
    TextDrawTextSize(Textdraw0, 437.000000, 169.000000);


    //auslesen
    new n,i,strings[35],ID,len,tmpID,mon,tmpmon;
    while(strfind(string,"~n~",false)!=-1)
    {
    n=strfind(string,"~n~",false,n);
    if(n+35>strlen(string)) strmid(strings[i],string,n,n+strlen(string));
    else strmid(strings[i],string,n,n+35);
    GetPlayerIDAndNameLen(strings,ID,len); // hier finden wir die ID zum Name und die Länge des Namens
    strdel(strings,0,len); // wir brauchen ja den Namen nicht
    len=strlen(strings);
    strdel(strings,len,len+1);//wir brauchen das $ nicht :D
    mon=strval(strings); // ein string wäre ja nutzlos als ein int :D
    if(tmpmon<mon) tmpID=ID,tmpmon=mon;
    i++;
    }
    //extra stock
    stock GetPlayerIDAndNameLen(s[],&ID,&len)
    {
    new n[MAX_PLAYER_NAME],tmp[MAX_PLAYER_NAME];
    for(new i;i!=MAX_PLAYERS;i++)
    {
    format(tmp,MAX_PLAYER_NAME,s);
    GetPlayerName(i,n,MAX_PLAYER_NAME);
    strdel(tmp,MAX_PLAYER_NAME-(MAX_PLAYER_NAME-strlen(n)),MAX_PLAYER_NAME);
    if(!strcmp(tmp,n,true)) return ID=i,len=strlen(n);
    }
    return INVALID_PLAYER_ID;
    }


    Ungetestet ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • häää??


    jetzt bin ich voll durcheinander


    Ich wollte ja in der Box das haben:


    1 NAME Geldbetrag des reichsten Spieler
    2 NAME Geldbetrag des 2. reichsten Spieler
    3 NAME Geldbetrag des 3. reichsten Spieler

  • Sowas einfaches wolltest du?


    Das schaffste ja wohl selber.


    Schleife, dann prüfen wer das meiste Geld hat.
    Kannst von mir aus 5 schleifen machen und machst dann halt immer eine Ausnahme rein.
    Du dann haste deine IDs
    dann lieste die Namen aus und das Geld.
    Das trägst du einfach in den Textdraw ein.



    Und da lässt du mich einfach werklen und dann so was :pinch:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • das is ja mein Problem....


    Ich hab schon vieles versucht nur es klappt einfach nicht


    //edit


    hab das jetzt so nur es wird im 1. string nur 0$ angezeigt der name kommt erst garnicht nur wie mach ich es das der reichste zu erst rankommt? und der rest dann danach?
    new check[1024];
    for(new i; i < MAX_PLAYERS; i ++)
    {
    format(check,sizeof check,"Anticheat~n~%s: %i$~n~%s: %i$~n~%s: %i$~n~%s: %i$~n~%s: %i$~n~%s: %i$",SpielerName(i),GetPlayerMoney(i));
    }
    Textdraw11 = TextDrawCreate(219.000000, 337.000000, check);
    TextDrawSetString(Textdraw11,check);
    TextDrawBackgroundColor(Textdraw11, 255);
    TextDrawFont(Textdraw11, 1);
    TextDrawLetterSize(Textdraw11, 0.500000, 1.000000);
    TextDrawColor(Textdraw11, -1);
    TextDrawSetOutline(Textdraw11, 1);
    TextDrawSetProportional(Textdraw11, 1);
    TextDrawUseBox(Textdraw11, 1);
    TextDrawBoxColor(Textdraw11, 0xFFFFFF66);
    TextDrawTextSize(Textdraw11, 437.000000, 169.000000);

    Einmal editiert, zuletzt von Angelo_Merte ()